mediasfu-angular 1.0.1 → 2.0.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 (474) hide show
  1. package/README.md +871 -769
  2. package/dist/README.md +870 -769
  3. package/dist/fesm2022/mediasfu-angular.mjs +13241 -3372
  4. package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
  5. package/dist/lib/@types/types.d.ts +22 -1
  6. package/dist/lib/components/background-components/background-modal/background-modal.component.d.ts +36 -0
  7. package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +51 -0
  8. package/dist/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.d.ts +48 -0
  9. package/dist/lib/components/co-host-components/co-host-modal/co-host-modal.component.d.ts +62 -0
  10. package/dist/lib/components/display-components/alert-component/alert.component.component.d.ts +24 -18
  11. package/dist/lib/components/display-components/audio-card/audio-card.component.d.ts +59 -0
  12. package/dist/lib/components/display-components/audio-grid/audio-grid.component.d.ts +20 -0
  13. package/dist/lib/components/display-components/card-video-display/card-video-display.component.d.ts +35 -0
  14. package/dist/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.d.ts +38 -0
  15. package/dist/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.d.ts +24 -40
  16. package/dist/lib/components/display-components/control-widgets/menu-participants-widget.component.d.ts +21 -0
  17. package/dist/lib/components/display-components/control-widgets/menu-record-widget.component.d.ts +22 -0
  18. package/dist/lib/components/display-components/control-widgets/menu-widget.component.d.ts +23 -0
  19. package/dist/lib/components/display-components/control-widgets/message-widget.component.d.ts +23 -0
  20. package/dist/lib/components/display-components/control-widgets/record-timer-widget.component.d.ts +15 -0
  21. package/dist/lib/components/display-components/control-widgets/screenshare-widget.component.d.ts +27 -0
  22. package/dist/lib/components/display-components/flexible-grid/flexible-grid.component.d.ts +27 -18
  23. package/dist/lib/components/display-components/flexible-video/flexible-video.component.d.ts +30 -45
  24. package/dist/lib/components/display-components/loading-modal/loading-modal.component.d.ts +19 -17
  25. package/dist/lib/components/display-components/main-aspect-component/main-aspect-component.component.d.ts +32 -24
  26. package/dist/lib/components/display-components/main-container-component/main-container-component.component.d.ts +28 -16
  27. package/dist/lib/components/display-components/main-grid-component/main-grid-component.component.d.ts +28 -14
  28. package/dist/lib/components/display-components/main-screen-component/main-screen-component.component.d.ts +43 -22
  29. package/dist/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.d.ts +25 -30
  30. package/dist/lib/components/display-components/mini-audio/mini-audio.component.d.ts +55 -62
  31. package/dist/lib/components/display-components/mini-card/mini-card.component.d.ts +19 -23
  32. package/dist/lib/components/display-components/mini-card-audio/mini-card-audio.component.d.ts +39 -39
  33. package/dist/lib/components/display-components/other-grid-component/other-grid-component.component.d.ts +28 -13
  34. package/dist/lib/components/display-components/pagination/pagination.component.d.ts +29 -23
  35. package/dist/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.d.ts +18 -24
  36. package/dist/lib/components/display-components/video-card/video-card.component.d.ts +62 -0
  37. package/dist/lib/components/display-settings-components/display-settings-modal.component.d.ts +28 -17
  38. package/dist/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.d.ts +47 -38
  39. package/dist/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.d.ts +35 -22
  40. package/dist/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.d.ts +35 -24
  41. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +258 -117
  42. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +254 -117
  43. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +312 -162
  44. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +312 -162
  45. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +310 -162
  46. package/dist/lib/components/menu-components/custom-buttons/custom-buttons.component.d.ts +49 -51
  47. package/dist/lib/components/menu-components/meeting-id-component/meeting-id-component.component.d.ts +6 -1
  48. package/dist/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.d.ts +5 -0
  49. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +27 -29
  50. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +20 -15
  51. package/dist/lib/components/message-components/message-panel/message-panel.component.d.ts +24 -0
  52. package/dist/lib/components/message-components/messages-modal/messages-modal.component.d.ts +34 -0
  53. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +20 -35
  54. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +79 -66
  55. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +19 -1
  56. package/dist/lib/components/misc-components/welcome-page/welcome-page.component.d.ts +15 -0
  57. package/dist/lib/components/participants-components/participant-list/participant-list.component.d.ts +19 -0
  58. package/dist/lib/components/participants-components/participant-list-item/participant-list-item.component.d.ts +19 -0
  59. package/dist/lib/components/participants-components/participant-list-others/participant-list-others.component.d.ts +17 -0
  60. package/dist/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.d.ts +17 -0
  61. package/dist/lib/components/participants-components/participants-modal/participants-modal.component.d.ts +24 -0
  62. package/dist/lib/components/polls-components/poll-modal/poll-modal.component.d.ts +27 -0
  63. package/dist/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.d.ts +15 -0
  64. package/dist/lib/components/recording-components/recording-modal/recording-modal.component.d.ts +12 -0
  65. package/dist/lib/components/recording-components/standard-panel-component/standard-panel-component.component.d.ts +5 -0
  66. package/dist/lib/components/requests-components/render-request-component/render-request-component.component.d.ts +22 -0
  67. package/dist/lib/components/requests-components/requests-modal/requests-modal.component.d.ts +17 -0
  68. package/dist/lib/components/screenboard-components/screenboard/screenboard.component.d.ts +10 -0
  69. package/dist/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.d.ts +11 -0
  70. package/dist/lib/components/waiting-components/waiting-room-modal.component.d.ts +59 -0
  71. package/dist/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.d.ts +21 -0
  72. package/dist/lib/components/whiteboard-components/whiteboard/whiteboard.component.d.ts +49 -0
  73. package/dist/lib/consumers/add-videos-grid.service.d.ts +49 -0
  74. package/dist/lib/consumers/auto-adjust.service.d.ts +26 -0
  75. package/dist/lib/consumers/calculate-rows-and-columns.service.d.ts +18 -0
  76. package/dist/lib/consumers/change-vids.service.d.ts +131 -66
  77. package/dist/lib/consumers/check-grid.service.d.ts +32 -18
  78. package/dist/lib/consumers/check-permission.service.d.ts +25 -0
  79. package/dist/lib/consumers/check-screen-share.service.d.ts +35 -0
  80. package/dist/lib/consumers/close-and-resize.service.d.ts +102 -0
  81. package/dist/lib/consumers/compare-active-names.service.d.ts +31 -0
  82. package/dist/lib/consumers/compare-screen-states.service.d.ts +35 -0
  83. package/dist/lib/consumers/connect-ips.service.d.ts +42 -0
  84. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  85. package/dist/lib/consumers/connect-recv-transport.service.d.ts +33 -0
  86. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +81 -11
  87. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +96 -15
  88. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +101 -11
  89. package/dist/lib/consumers/connect-send-transport.service.d.ts +59 -1
  90. package/dist/lib/consumers/consumer-resume.service.d.ts +36 -0
  91. package/dist/lib/consumers/control-media.service.d.ts +45 -0
  92. package/dist/lib/consumers/create-send-transport.service.d.ts +149 -13
  93. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +100 -13
  94. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +75 -2
  95. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +99 -17
  96. package/dist/lib/consumers/disp-streams.service.d.ts +92 -0
  97. package/dist/lib/consumers/generate-page-content.service.d.ts +47 -0
  98. package/dist/lib/consumers/get-estimate.service.d.ts +50 -0
  99. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +38 -1
  100. package/dist/lib/consumers/get-producers-piped.service.d.ts +33 -0
  101. package/dist/lib/consumers/get-videos.service.d.ts +33 -0
  102. package/dist/lib/consumers/mix-streams.service.d.ts +22 -0
  103. package/dist/lib/consumers/on-screen-changes.service.d.ts +40 -0
  104. package/dist/lib/consumers/prepopulate-user-media.service.d.ts +99 -0
  105. package/dist/lib/consumers/process-consumer-transports-audio.service.d.ts +29 -0
  106. package/dist/lib/consumers/process-consumer-transports.service.d.ts +37 -0
  107. package/dist/lib/consumers/re-port.service.d.ts +48 -0
  108. package/dist/lib/consumers/re-update-inter.service.d.ts +82 -0
  109. package/dist/lib/consumers/readjust.service.d.ts +50 -0
  110. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +36 -1
  111. package/dist/lib/consumers/receive-room-messages.service.d.ts +27 -0
  112. package/dist/lib/consumers/reorder-streams.service.d.ts +58 -0
  113. package/dist/lib/consumers/request-screen-share.service.d.ts +34 -0
  114. package/dist/lib/consumers/resume-pause-audio-streams.service.d.ts +51 -0
  115. package/dist/lib/consumers/resume-pause-streams.service.d.ts +33 -0
  116. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +76 -7
  117. package/dist/lib/consumers/signal-new-consumer-transport.service.d.ts +37 -37
  118. package/dist/lib/consumers/socket-receive-methods/join-consume-room.service.d.ts +33 -0
  119. package/dist/lib/consumers/socket-receive-methods/new-pipe-producer.service.d.ts +39 -0
  120. package/dist/lib/consumers/socket-receive-methods/producer-closed.service.d.ts +27 -0
  121. package/dist/lib/consumers/start-share-screen.service.d.ts +40 -0
  122. package/dist/lib/consumers/stop-share-screen.service.d.ts +55 -0
  123. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +148 -11
  124. package/dist/lib/consumers/stream-success-audio.service.d.ts +61 -0
  125. package/dist/lib/consumers/stream-success-screen.service.d.ts +50 -0
  126. package/dist/lib/consumers/stream-success-video.service.d.ts +58 -0
  127. package/dist/lib/consumers/switch-user-audio.service.d.ts +33 -0
  128. package/dist/lib/consumers/switch-user-video-alt.service.d.ts +32 -0
  129. package/dist/lib/consumers/switch-user-video.service.d.ts +47 -0
  130. package/dist/lib/consumers/trigger.service.d.ts +41 -0
  131. package/dist/lib/consumers/update-mini-cards-grid.service.d.ts +54 -0
  132. package/dist/lib/consumers/update-participant-audio-decibels.service.d.ts +45 -0
  133. package/dist/lib/methods/background-methods/launch-background.service.d.ts +25 -0
  134. package/dist/lib/methods/breakout-room-methods/breakout-room-updated.service.d.ts +71 -0
  135. package/dist/lib/methods/breakout-room-methods/launch-breakout-rooms.service.d.ts +24 -0
  136. package/dist/lib/methods/co-host-methods/launch-co-host.service.d.ts +24 -0
  137. package/dist/lib/methods/co-host-methods/modify-co-host-settings.service.d.ts +44 -0
  138. package/dist/lib/methods/display-settings-methods/launch-display-settings.service.d.ts +22 -0
  139. package/dist/lib/methods/display-settings-methods/modify-display-settings.service.d.ts +75 -0
  140. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +29 -1
  141. package/dist/lib/methods/exit-methods/launch-confirm-exit.service.d.ts +20 -0
  142. package/dist/lib/methods/media-settings-methods/launch-media-settings.service.d.ts +35 -0
  143. package/dist/lib/methods/menu-methods/launch-menu-modal.service.d.ts +22 -0
  144. package/dist/lib/methods/message-methods/launch-messages.service.d.ts +22 -0
  145. package/dist/lib/methods/message-methods/send-message.service.d.ts +49 -0
  146. package/dist/lib/methods/participants-methods/launch-participants.service.d.ts +24 -0
  147. package/dist/lib/methods/participants-methods/message-participants.service.d.ts +46 -0
  148. package/dist/lib/methods/participants-methods/mute-participants.service.d.ts +39 -0
  149. package/dist/lib/methods/participants-methods/remove-participants.service.d.ts +45 -0
  150. package/dist/lib/methods/polls-methods/handle-create-poll.service.d.ts +38 -0
  151. package/dist/lib/methods/polls-methods/handle-end-poll.service.d.ts +32 -0
  152. package/dist/lib/methods/polls-methods/handle-vote-poll.service.d.ts +34 -0
  153. package/dist/lib/methods/polls-methods/launch-poll.service.d.ts +20 -0
  154. package/dist/lib/methods/polls-methods/poll-updated.service.d.ts +31 -0
  155. package/dist/lib/methods/recording-methods/check-pause-state.service.d.ts +24 -0
  156. package/dist/lib/methods/recording-methods/check-resume-state.service.d.ts +22 -0
  157. package/dist/lib/methods/recording-methods/confirm-recording.service.d.ts +63 -0
  158. package/dist/lib/methods/recording-methods/launch-recording.service.d.ts +43 -0
  159. package/dist/lib/methods/recording-methods/record-pause-timer.service.d.ts +27 -0
  160. package/dist/lib/methods/recording-methods/record-resume-timer.service.d.ts +44 -0
  161. package/dist/lib/methods/recording-methods/record-start-timer.service.d.ts +45 -0
  162. package/dist/lib/methods/recording-methods/record-update-timer.service.d.ts +32 -0
  163. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +53 -0
  164. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +42 -1
  165. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +51 -0
  166. package/dist/lib/methods/requests-methods/launch-requests.service.d.ts +25 -0
  167. package/dist/lib/methods/requests-methods/respond-to-requests.service.d.ts +39 -0
  168. package/dist/lib/methods/settings-methods/launch-settings.service.d.ts +25 -0
  169. package/dist/lib/methods/settings-methods/modify-settings.service.d.ts +42 -0
  170. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +100 -0
  171. package/dist/lib/methods/stream-methods/click-chat.service.d.ts +31 -0
  172. package/dist/lib/methods/stream-methods/click-screen-share.service.d.ts +68 -0
  173. package/dist/lib/methods/stream-methods/click-video.service.d.ts +88 -0
  174. package/dist/lib/methods/stream-methods/switch-audio.service.d.ts +47 -0
  175. package/dist/lib/methods/stream-methods/switch-video-alt.service.d.ts +50 -0
  176. package/dist/lib/methods/stream-methods/switch-video.service.d.ts +56 -0
  177. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  178. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  179. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  180. package/dist/lib/methods/utils/format-number.service.d.ts +26 -14
  181. package/dist/lib/methods/utils/generate-random-messages.service.d.ts +33 -0
  182. package/dist/lib/methods/utils/generate-random-participants.service.d.ts +27 -0
  183. package/dist/lib/methods/utils/generate-random-polls.service.d.ts +26 -0
  184. package/dist/lib/methods/utils/generate-random-request-list.service.d.ts +36 -0
  185. package/dist/lib/methods/utils/generate-random-waiting-room-list.service.d.ts +21 -0
  186. package/dist/lib/methods/utils/get-modal-position.util.d.ts +13 -3
  187. package/dist/lib/methods/utils/get-overlay-position.util.d.ts +13 -3
  188. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  189. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  190. package/dist/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.d.ts +37 -0
  191. package/dist/lib/methods/utils/mini-audio-player/mini-audio-player.component.d.ts +55 -0
  192. package/dist/lib/methods/utils/producer/a-params.service.d.ts +37 -0
  193. package/dist/lib/methods/utils/producer/h-params.service.d.ts +50 -0
  194. package/dist/lib/methods/utils/producer/screen-params.service.d.ts +37 -0
  195. package/dist/lib/methods/utils/producer/v-params.service.d.ts +50 -0
  196. package/dist/lib/methods/utils/producer/video-capture-constraints.service.d.ts +46 -0
  197. package/dist/lib/methods/utils/sleep.util.d.ts +9 -3
  198. package/dist/lib/methods/utils/sound-player.service.d.ts +21 -0
  199. package/dist/lib/methods/utils/validate-alphanumeric.service.d.ts +16 -0
  200. package/dist/lib/methods/waiting-methods/launch-waiting.service.d.ts +18 -0
  201. package/dist/lib/methods/waiting-methods/respond-to-waiting.service.d.ts +29 -0
  202. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +46 -0
  203. package/dist/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.d.ts +20 -0
  204. package/dist/lib/producer-client/producer-client-emits/create-device-client.service.d.ts +23 -0
  205. package/dist/lib/producer-client/producer-client-emits/join-room-client.service.d.ts +31 -0
  206. package/dist/lib/producer-client/producer-client-emits/update-room-parameters-client.service.d.ts +44 -0
  207. package/dist/lib/producers/producer-emits/join-con-room.service.d.ts +38 -0
  208. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  209. package/dist/lib/producers/producer-emits/join-room.service.d.ts +38 -0
  210. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +80 -2
  211. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +78 -2
  212. package/dist/lib/producers/socket-receive-methods/all-waiting-room-members.service.d.ts +27 -0
  213. package/dist/lib/producers/socket-receive-methods/ban-participant.service.d.ts +36 -0
  214. package/dist/lib/producers/socket-receive-methods/control-media-host.service.d.ts +37 -0
  215. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +29 -1
  216. package/dist/lib/producers/socket-receive-methods/disconnect.service.d.ts +26 -0
  217. package/dist/lib/producers/socket-receive-methods/get-domains.service.d.ts +24 -9
  218. package/dist/lib/producers/socket-receive-methods/host-request-response.service.d.ts +31 -48
  219. package/dist/lib/producers/socket-receive-methods/meeting-ended.service.d.ts +29 -0
  220. package/dist/lib/producers/socket-receive-methods/meeting-still-there.service.d.ts +23 -0
  221. package/dist/lib/producers/socket-receive-methods/meeting-time-remaining.service.d.ts +27 -0
  222. package/dist/lib/producers/socket-receive-methods/participant-requested.service.d.ts +31 -0
  223. package/dist/lib/producers/socket-receive-methods/person-joined.service.d.ts +25 -0
  224. package/dist/lib/producers/socket-receive-methods/producer-media-closed.service.d.ts +61 -0
  225. package/dist/lib/producers/socket-receive-methods/producer-media-paused.service.d.ts +62 -0
  226. package/dist/lib/producers/socket-receive-methods/producer-media-resumed.service.d.ts +45 -0
  227. package/dist/lib/producers/socket-receive-methods/re-initiate-recording.service.d.ts +29 -0
  228. package/dist/lib/producers/socket-receive-methods/receive-message.service.d.ts +38 -0
  229. package/dist/lib/producers/socket-receive-methods/recording-notice.service.d.ts +38 -0
  230. package/dist/lib/producers/socket-receive-methods/room-record-params.service.d.ts +62 -0
  231. package/dist/lib/producers/socket-receive-methods/screen-producer-id.service.d.ts +41 -0
  232. package/dist/lib/producers/socket-receive-methods/start-records.service.d.ts +25 -0
  233. package/dist/lib/producers/socket-receive-methods/stopped-recording.service.d.ts +25 -0
  234. package/dist/lib/producers/socket-receive-methods/time-left-recording.service.d.ts +21 -0
  235. package/dist/lib/producers/socket-receive-methods/update-consuming-domains.service.d.ts +42 -0
  236. package/dist/lib/producers/socket-receive-methods/update-media-settings.service.d.ts +30 -0
  237. package/dist/lib/producers/socket-receive-methods/updated-co-host.service.d.ts +40 -0
  238. package/dist/lib/producers/socket-receive-methods/user-waiting.service.d.ts +14 -40
  239. package/dist/lib/sockets/socket-manager.service.d.ts +130 -0
  240. package/dist/public-api.d.ts +11 -1
  241. package/package.json +17 -20
  242. package/dist/esm2022/lib/@types/types.mjs +0 -2
  243. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -763
  244. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -316
  245. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -95
  246. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  247. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -246
  248. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -73
  249. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -297
  250. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -60
  251. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -94
  252. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -100
  253. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  254. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -298
  255. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -61
  256. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -43
  257. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -114
  258. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -114
  259. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -36
  260. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -74
  261. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -142
  262. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -265
  263. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -100
  264. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -132
  265. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -119
  266. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -106
  267. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -180
  268. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -120
  269. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -326
  270. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -165
  271. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  272. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -111
  273. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -328
  274. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -118
  275. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -330
  276. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -95
  277. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -190
  278. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -119
  279. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -209
  280. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4189
  281. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3705
  282. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5024
  283. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5333
  284. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5023
  285. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -85
  286. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -22
  287. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -22
  288. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -132
  289. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -104
  290. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -204
  291. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -243
  292. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -147
  293. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -335
  294. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -113
  295. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -226
  296. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -63
  297. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -120
  298. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -23
  299. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -43
  300. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -100
  301. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -174
  302. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -77
  303. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -121
  304. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -85
  305. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -59
  306. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -130
  307. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -617
  308. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -380
  309. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -142
  310. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -265
  311. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1784
  312. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -296
  313. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -83
  314. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -42
  315. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -486
  316. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -79
  317. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -80
  318. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -71
  319. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -229
  320. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -75
  321. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -63
  322. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -112
  323. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -113
  324. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -46
  325. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -62
  326. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -55
  327. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -86
  328. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -332
  329. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -68
  330. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -126
  331. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -58
  332. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -45
  333. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -56
  334. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -421
  335. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -59
  336. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -70
  337. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -49
  338. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -46
  339. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -58
  340. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -73
  341. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -63
  342. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -442
  343. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -72
  344. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -91
  345. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -66
  346. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -157
  347. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -123
  348. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -56
  349. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -42
  350. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -181
  351. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -67
  352. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -99
  353. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -70
  354. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -55
  355. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  356. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -63
  357. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -61
  358. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -51
  359. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -80
  360. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -120
  361. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -132
  362. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -149
  363. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -143
  364. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -202
  365. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -87
  366. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -228
  367. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -125
  368. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -172
  369. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -81
  370. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -39
  371. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -23
  372. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -112
  373. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -22
  374. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -22
  375. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -60
  376. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -24
  377. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -119
  378. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -28
  379. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -22
  380. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -50
  381. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -22
  382. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -23
  383. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -94
  384. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -23
  385. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -52
  386. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -57
  387. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -62
  388. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -37
  389. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -40
  390. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -49
  391. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -23
  392. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -64
  393. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -45
  394. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -34
  395. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -215
  396. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -82
  397. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -40
  398. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -86
  399. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -89
  400. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -48
  401. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -147
  402. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -74
  403. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -224
  404. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -26
  405. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -45
  406. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -26
  407. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -67
  408. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -178
  409. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -44
  410. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -110
  411. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -183
  412. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -33
  413. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -66
  414. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -76
  415. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -45
  416. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -87
  417. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -99
  418. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -52
  419. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -54
  420. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -38
  421. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -22
  422. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -21
  423. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  424. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -59
  425. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -260
  426. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -21
  427. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -37
  428. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -24
  429. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -37
  430. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -38
  431. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -11
  432. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -42
  433. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -33
  434. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -23
  435. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -40
  436. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -69
  437. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -24
  438. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -51
  439. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -65
  440. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -232
  441. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -114
  442. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -114
  443. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -155
  444. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -147
  445. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -30
  446. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -40
  447. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -146
  448. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -26
  449. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -38
  450. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -63
  451. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -167
  452. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -44
  453. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -24
  454. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -36
  455. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -32
  456. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -29
  457. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -68
  458. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -90
  459. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -54
  460. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -38
  461. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -96
  462. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -195
  463. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -59
  464. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -45
  465. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -35
  466. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -37
  467. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -36
  468. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -63
  469. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -36
  470. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -56
  471. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -78
  472. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -73
  473. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  474. package/dist/esm2022/public-api.mjs +0 -187
@@ -1,75 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CompareActiveNames {
4
- /**
5
- * Compares the current active names with the previous active names and triggers an action if there are changes.
6
- *
7
- * @param {Object} options - The options for comparing active names.
8
- * @param {boolean} [options.restart=false] - Whether to restart the comparison.
9
- * @param {CompareActiveNamesOptions} options.parameters - The parameters for the comparison.
10
- * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
11
- * @param {string[]} options.parameters.activeNames - The current active names.
12
- * @param {string[]} options.parameters.prevActiveNames - The previous active names.
13
- * @param {Function} options.parameters.updatePrevActiveNames - Function to update the previous active names.
14
- * @param {Function} options.parameters.trigger - Function to trigger an action when names change.
15
- *
16
- * @returns {Promise<void>} A promise that resolves when the comparison is complete.
17
- *
18
- * @throws Will log an error message if an error occurs during the comparison.
19
- */
20
- async compareActiveNames({ restart = false, parameters, }) {
21
- try {
22
- let { getUpdatedAllParams } = parameters;
23
- parameters = getUpdatedAllParams();
24
- let { activeNames, prevActiveNames, updatePrevActiveNames, trigger } = parameters;
25
- // Restart the comparison if needed
26
- if (restart) {
27
- await trigger({ ref_ActiveNames: activeNames, parameters });
28
- return;
29
- }
30
- // Array to track changes in activeNames
31
- let nameChanged = [];
32
- // Compare each name in activeNames
33
- for (let i = 0; i < activeNames.length; i++) {
34
- const currentName = activeNames[i];
35
- // Check if the name is present in prevActiveNames
36
- const hasNameChanged = !prevActiveNames.includes(currentName);
37
- if (hasNameChanged) {
38
- nameChanged.push(true);
39
- trigger({ ref_ActiveNames: activeNames, parameters });
40
- break;
41
- }
42
- }
43
- // Count the number of true in nameChanged
44
- let count = nameChanged.filter((value) => value === true).length;
45
- if (count < 1) {
46
- // Check for new names in prevActiveNames
47
- for (let i = 0; i < prevActiveNames.length; i++) {
48
- const currentName = prevActiveNames[i];
49
- // Check if the name is present in activeNames
50
- const hasNameChanged = !activeNames.includes(currentName);
51
- // Signal change if the name is new
52
- if (hasNameChanged) {
53
- trigger({ ref_ActiveNames: activeNames, parameters });
54
- break;
55
- }
56
- }
57
- }
58
- // Update prevActiveNames with current activeNames
59
- prevActiveNames = [...activeNames];
60
- updatePrevActiveNames(prevActiveNames);
61
- }
62
- catch (error) {
63
- console.log('compareActiveNames error', error);
64
- }
65
- }
66
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CompareActiveNames, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CompareActiveNames, providedIn: 'root' });
68
- }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CompareActiveNames, decorators: [{
70
- type: Injectable,
71
- args: [{
72
- providedIn: 'root',
73
- }]
74
- }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1hY3RpdmUtbmFtZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvY29tcGFyZS1hY3RpdmUtbmFtZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTBCM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUM3Qjs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFDdkIsT0FBTyxHQUFHLEtBQUssRUFDZixVQUFVLEdBQ2dCO1FBQzFCLElBQUksQ0FBQztZQUNILElBQUksRUFBRSxtQkFBbUIsRUFBRSxHQUFHLFVBQVUsQ0FBQztZQUN6QyxVQUFVLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztZQUVuQyxJQUFJLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFFbEYsbUNBQW1DO1lBQ25DLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osTUFBTSxPQUFPLENBQUMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzVELE9BQU87WUFDVCxDQUFDO1lBRUQsd0NBQXdDO1lBQ3hDLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUVyQixtQ0FBbUM7WUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVuQyxrREFBa0Q7Z0JBQ2xELE1BQU0sY0FBYyxHQUFHLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFOUQsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDbkIsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkIsT0FBTyxDQUFDLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUN0RCxNQUFNO2dCQUNSLENBQUM7WUFDSCxDQUFDO1lBRUQsMENBQTBDO1lBQzFDLElBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFFakUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2QseUNBQXlDO2dCQUN6QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNoRCxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXZDLDhDQUE4QztvQkFDOUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUUxRCxtQ0FBbUM7b0JBQ25DLElBQUksY0FBYyxFQUFFLENBQUM7d0JBQ25CLE9BQU8sQ0FBQyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQzt3QkFDdEQsTUFBTTtvQkFDUixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsa0RBQWtEO1lBQ2xELGVBQWUsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDbkMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDO3VHQTNFVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJpZ2dlclR5cGUsIFRyaWdnZXJQYXJhbWV0ZXJzIH0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21wYXJlQWN0aXZlTmFtZXNQYXJhbWV0ZXJzIGV4dGVuZHMgVHJpZ2dlclBhcmFtZXRlcnMge1xuICBhY3RpdmVOYW1lczogc3RyaW5nW107XG4gIHByZXZBY3RpdmVOYW1lczogc3RyaW5nW107XG4gIHVwZGF0ZUFjdGl2ZU5hbWVzOiAoYWN0aXZlTmFtZXM6IHN0cmluZ1tdKSA9PiB2b2lkO1xuICB1cGRhdGVQcmV2QWN0aXZlTmFtZXM6IChwcmV2QWN0aXZlTmFtZXM6IHN0cmluZ1tdKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICB0cmlnZ2VyOiBUcmlnZ2VyVHlwZTtcbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gQ29tcGFyZUFjdGl2ZU5hbWVzUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhcmVBY3RpdmVOYW1lc09wdGlvbnMge1xuICByZXN0YXJ0PzogYm9vbGVhbjtcbiAgcGFyYW1ldGVyczogQ29tcGFyZUFjdGl2ZU5hbWVzUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgQ29tcGFyZUFjdGl2ZU5hbWVzVHlwZSA9IChvcHRpb25zOiBDb21wYXJlQWN0aXZlTmFtZXNPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tcGFyZUFjdGl2ZU5hbWVzIHtcbiAgLyoqXG4gICAqIENvbXBhcmVzIHRoZSBjdXJyZW50IGFjdGl2ZSBuYW1lcyB3aXRoIHRoZSBwcmV2aW91cyBhY3RpdmUgbmFtZXMgYW5kIHRyaWdnZXJzIGFuIGFjdGlvbiBpZiB0aGVyZSBhcmUgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgY29tcGFyaW5nIGFjdGl2ZSBuYW1lcy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5yZXN0YXJ0PWZhbHNlXSAtIFdoZXRoZXIgdG8gcmVzdGFydCB0aGUgY29tcGFyaXNvbi5cbiAgICogQHBhcmFtIHtDb21wYXJlQWN0aXZlTmFtZXNPcHRpb25zfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbXBhcmlzb24uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zIC0gRnVuY3Rpb24gdG8gZ2V0IHVwZGF0ZWQgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gb3B0aW9ucy5wYXJhbWV0ZXJzLmFjdGl2ZU5hbWVzIC0gVGhlIGN1cnJlbnQgYWN0aXZlIG5hbWVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBvcHRpb25zLnBhcmFtZXRlcnMucHJldkFjdGl2ZU5hbWVzIC0gVGhlIHByZXZpb3VzIGFjdGl2ZSBuYW1lcy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZVByZXZBY3RpdmVOYW1lcyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcHJldmlvdXMgYWN0aXZlIG5hbWVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudHJpZ2dlciAtIEZ1bmN0aW9uIHRvIHRyaWdnZXIgYW4gYWN0aW9uIHdoZW4gbmFtZXMgY2hhbmdlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29tcGFyaXNvbiBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHRocm93cyBXaWxsIGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGNvbXBhcmlzb24uXG4gICAqL1xuICBhc3luYyBjb21wYXJlQWN0aXZlTmFtZXMoe1xuICAgIHJlc3RhcnQgPSBmYWxzZSxcbiAgICBwYXJhbWV0ZXJzLFxuICB9OiBDb21wYXJlQWN0aXZlTmFtZXNPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB7IGdldFVwZGF0ZWRBbGxQYXJhbXMgfSA9IHBhcmFtZXRlcnM7XG4gICAgICBwYXJhbWV0ZXJzID0gZ2V0VXBkYXRlZEFsbFBhcmFtcygpO1xuXG4gICAgICBsZXQgeyBhY3RpdmVOYW1lcywgcHJldkFjdGl2ZU5hbWVzLCB1cGRhdGVQcmV2QWN0aXZlTmFtZXMsIHRyaWdnZXIgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICAgIC8vIFJlc3RhcnQgdGhlIGNvbXBhcmlzb24gaWYgbmVlZGVkXG4gICAgICBpZiAocmVzdGFydCkge1xuICAgICAgICBhd2FpdCB0cmlnZ2VyKHsgcmVmX0FjdGl2ZU5hbWVzOiBhY3RpdmVOYW1lcywgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBBcnJheSB0byB0cmFjayBjaGFuZ2VzIGluIGFjdGl2ZU5hbWVzXG4gICAgICBsZXQgbmFtZUNoYW5nZWQgPSBbXTtcblxuICAgICAgLy8gQ29tcGFyZSBlYWNoIG5hbWUgaW4gYWN0aXZlTmFtZXNcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWN0aXZlTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY3VycmVudE5hbWUgPSBhY3RpdmVOYW1lc1tpXTtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgbmFtZSBpcyBwcmVzZW50IGluIHByZXZBY3RpdmVOYW1lc1xuICAgICAgICBjb25zdCBoYXNOYW1lQ2hhbmdlZCA9ICFwcmV2QWN0aXZlTmFtZXMuaW5jbHVkZXMoY3VycmVudE5hbWUpO1xuXG4gICAgICAgIGlmIChoYXNOYW1lQ2hhbmdlZCkge1xuICAgICAgICAgIG5hbWVDaGFuZ2VkLnB1c2godHJ1ZSk7XG4gICAgICAgICAgdHJpZ2dlcih7IHJlZl9BY3RpdmVOYW1lczogYWN0aXZlTmFtZXMsIHBhcmFtZXRlcnMgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQ291bnQgdGhlIG51bWJlciBvZiB0cnVlIGluIG5hbWVDaGFuZ2VkXG4gICAgICBsZXQgY291bnQgPSBuYW1lQ2hhbmdlZC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gdHJ1ZSkubGVuZ3RoO1xuXG4gICAgICBpZiAoY291bnQgPCAxKSB7XG4gICAgICAgIC8vIENoZWNrIGZvciBuZXcgbmFtZXMgaW4gcHJldkFjdGl2ZU5hbWVzXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldkFjdGl2ZU5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudE5hbWUgPSBwcmV2QWN0aXZlTmFtZXNbaV07XG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgbmFtZSBpcyBwcmVzZW50IGluIGFjdGl2ZU5hbWVzXG4gICAgICAgICAgY29uc3QgaGFzTmFtZUNoYW5nZWQgPSAhYWN0aXZlTmFtZXMuaW5jbHVkZXMoY3VycmVudE5hbWUpO1xuXG4gICAgICAgICAgLy8gU2lnbmFsIGNoYW5nZSBpZiB0aGUgbmFtZSBpcyBuZXdcbiAgICAgICAgICBpZiAoaGFzTmFtZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRyaWdnZXIoeyByZWZfQWN0aXZlTmFtZXM6IGFjdGl2ZU5hbWVzLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFVwZGF0ZSBwcmV2QWN0aXZlTmFtZXMgd2l0aCBjdXJyZW50IGFjdGl2ZU5hbWVzXG4gICAgICBwcmV2QWN0aXZlTmFtZXMgPSBbLi4uYWN0aXZlTmFtZXNdO1xuICAgICAgdXBkYXRlUHJldkFjdGl2ZU5hbWVzKHByZXZBY3RpdmVOYW1lcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdjb21wYXJlQWN0aXZlTmFtZXMgZXJyb3InLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,63 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CompareScreenStates {
4
- /**
5
- * Compares the current screen states with the previous screen states and triggers actions based on changes.
6
- *
7
- * @param {Object} options - The options for comparing screen states.
8
- * @param {boolean} [options.restart=false] - Whether to restart the comparison process.
9
- * @param {CompareScreenStatesOptions} options.parameters - The parameters for the comparison.
10
- * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
11
- * @param {string} options.parameters.recordingDisplayType - The type of display being recorded.
12
- * @param {boolean} options.parameters.recordingVideoOptimized - Whether the recording is optimized for video.
13
- * @param {Array<ScreenState>} options.parameters.screenStates - The current screen states.
14
- * @param {Array<ScreenState>} options.parameters.prevScreenStates - The previous screen states.
15
- * @param {Array<string>} options.parameters.activeNames - The active names in the current context.
16
- * @param {Function} options.parameters.trigger - Function to trigger actions based on changes.
17
- *
18
- * @returns {Promise<void>} A promise that resolves when the comparison and any triggered actions are complete.
19
- *
20
- * @throws Will log an error message if an error occurs during the comparison process.
21
- */
22
- async compareScreenStates({ restart = false, parameters, }) {
23
- try {
24
- let { getUpdatedAllParams } = parameters;
25
- parameters = getUpdatedAllParams();
26
- let { recordingDisplayType, recordingVideoOptimized, screenStates, prevScreenStates, activeNames, trigger, } = parameters;
27
- // Restart the comparison if needed
28
- if (restart) {
29
- // Perform necessary actions on restart
30
- return;
31
- }
32
- // Compare each key-value pair in the screenStates objects
33
- for (let i = 0; i < screenStates.length; i++) {
34
- const currentScreenState = screenStates[i];
35
- const prevScreenState = prevScreenStates[i];
36
- // Check if any value has changed
37
- const hasChanged = Object.keys(currentScreenState).some((key) => currentScreenState[key] !== prevScreenState[key]);
38
- // Signal change if any value has changed
39
- if (hasChanged) {
40
- // Perform actions or trigger events based on the change
41
- if (recordingDisplayType === 'video' && recordingVideoOptimized) {
42
- await trigger({ ref_ActiveNames: activeNames, parameters });
43
- break;
44
- }
45
- await trigger({ ref_ActiveNames: activeNames, parameters });
46
- break;
47
- }
48
- }
49
- }
50
- catch (error) {
51
- console.log('compareScreenStates error', error);
52
- }
53
- }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CompareScreenStates, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
55
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CompareScreenStates, providedIn: 'root' });
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CompareScreenStates, decorators: [{
58
- type: Injectable,
59
- args: [{
60
- providedIn: 'root',
61
- }]
62
- }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1zY3JlZW4tc3RhdGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL2NvbXBhcmUtc2NyZWVuLXN0YXRlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBNEIzQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUN4QixPQUFPLEdBQUcsS0FBSyxFQUNmLFVBQVUsR0FDaUI7UUFDM0IsSUFBSSxDQUFDO1lBQ0gsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQ3pDLFVBQVUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1lBRW5DLElBQUksRUFDRixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLE9BQU8sR0FDUixHQUFHLFVBQVUsQ0FBQztZQUVmLG1DQUFtQztZQUNuQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLHVDQUF1QztnQkFDdkMsT0FBTztZQUNULENBQUM7WUFFRCwwREFBMEQ7WUFDMUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDN0MsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU1QyxpQ0FBaUM7Z0JBQ2pDLE1BQU0sVUFBVSxHQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQTJCLENBQUMsSUFBSSxDQUNoRixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUMxRCxDQUFDO2dCQUVGLHlDQUF5QztnQkFDekMsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZix3REFBd0Q7b0JBQ3hELElBQUksb0JBQW9CLEtBQUssT0FBTyxJQUFJLHVCQUF1QixFQUFFLENBQUM7d0JBQ2hFLE1BQU0sT0FBTyxDQUFDLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO3dCQUM1RCxNQUFNO29CQUNSLENBQUM7b0JBQ0QsTUFBTSxPQUFPLENBQUMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQzVELE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7dUdBbEVVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNjcmVlblN0YXRlLCBUcmlnZ2VyVHlwZSwgVHJpZ2dlclBhcmFtZXRlcnMgfSBmcm9tICcuLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBhcmVTY3JlZW5TdGF0ZXNQYXJhbWV0ZXJzIGV4dGVuZHMgVHJpZ2dlclBhcmFtZXRlcnMge1xuICByZWNvcmRpbmdEaXNwbGF5VHlwZTogJ3ZpZGVvJyB8ICdtZWRpYScgfCAnYWxsJztcbiAgcmVjb3JkaW5nVmlkZW9PcHRpbWl6ZWQ6IGJvb2xlYW47XG4gIHNjcmVlblN0YXRlczogU2NyZWVuU3RhdGVbXTtcbiAgcHJldlNjcmVlblN0YXRlczogU2NyZWVuU3RhdGVbXTtcbiAgYWN0aXZlTmFtZXM6IHN0cmluZ1tdO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICB0cmlnZ2VyOiBUcmlnZ2VyVHlwZTtcbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gQ29tcGFyZVNjcmVlblN0YXRlc1BhcmFtZXRlcnM7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wYXJlU2NyZWVuU3RhdGVzT3B0aW9ucyB7XG4gIHJlc3RhcnQ/OiBib29sZWFuO1xuICBwYXJhbWV0ZXJzOiBDb21wYXJlU2NyZWVuU3RhdGVzUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgQ29tcGFyZVNjcmVlblN0YXRlc1R5cGUgPSAob3B0aW9uczogQ29tcGFyZVNjcmVlblN0YXRlc09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wYXJlU2NyZWVuU3RhdGVzIHtcbiAgLyoqXG4gICAqIENvbXBhcmVzIHRoZSBjdXJyZW50IHNjcmVlbiBzdGF0ZXMgd2l0aCB0aGUgcHJldmlvdXMgc2NyZWVuIHN0YXRlcyBhbmQgdHJpZ2dlcnMgYWN0aW9ucyBiYXNlZCBvbiBjaGFuZ2VzLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBjb21wYXJpbmcgc2NyZWVuIHN0YXRlcy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5yZXN0YXJ0PWZhbHNlXSAtIFdoZXRoZXIgdG8gcmVzdGFydCB0aGUgY29tcGFyaXNvbiBwcm9jZXNzLlxuICAgKiBAcGFyYW0ge0NvbXBhcmVTY3JlZW5TdGF0ZXNPcHRpb25zfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbXBhcmlzb24uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zIC0gRnVuY3Rpb24gdG8gZ2V0IHVwZGF0ZWQgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5yZWNvcmRpbmdEaXNwbGF5VHlwZSAtIFRoZSB0eXBlIG9mIGRpc3BsYXkgYmVpbmcgcmVjb3JkZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnJlY29yZGluZ1ZpZGVvT3B0aW1pemVkIC0gV2hldGhlciB0aGUgcmVjb3JkaW5nIGlzIG9wdGltaXplZCBmb3IgdmlkZW8uXG4gICAqIEBwYXJhbSB7QXJyYXk8U2NyZWVuU3RhdGU+fSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuU3RhdGVzIC0gVGhlIGN1cnJlbnQgc2NyZWVuIHN0YXRlcy5cbiAgICogQHBhcmFtIHtBcnJheTxTY3JlZW5TdGF0ZT59IG9wdGlvbnMucGFyYW1ldGVycy5wcmV2U2NyZWVuU3RhdGVzIC0gVGhlIHByZXZpb3VzIHNjcmVlbiBzdGF0ZXMuXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmFjdGl2ZU5hbWVzIC0gVGhlIGFjdGl2ZSBuYW1lcyBpbiB0aGUgY3VycmVudCBjb250ZXh0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudHJpZ2dlciAtIEZ1bmN0aW9uIHRvIHRyaWdnZXIgYWN0aW9ucyBiYXNlZCBvbiBjaGFuZ2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29tcGFyaXNvbiBhbmQgYW55IHRyaWdnZXJlZCBhY3Rpb25zIGFyZSBjb21wbGV0ZS5cbiAgICpcbiAgICogQHRocm93cyBXaWxsIGxvZyBhbiBlcnJvciBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGNvbXBhcmlzb24gcHJvY2Vzcy5cbiAgICovXG4gIGFzeW5jIGNvbXBhcmVTY3JlZW5TdGF0ZXMoe1xuICAgIHJlc3RhcnQgPSBmYWxzZSxcbiAgICBwYXJhbWV0ZXJzLFxuICB9OiBDb21wYXJlU2NyZWVuU3RhdGVzT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBsZXQgeyBnZXRVcGRhdGVkQWxsUGFyYW1zIH0gPSBwYXJhbWV0ZXJzO1xuICAgICAgcGFyYW1ldGVycyA9IGdldFVwZGF0ZWRBbGxQYXJhbXMoKTtcblxuICAgICAgbGV0IHtcbiAgICAgICAgcmVjb3JkaW5nRGlzcGxheVR5cGUsXG4gICAgICAgIHJlY29yZGluZ1ZpZGVvT3B0aW1pemVkLFxuICAgICAgICBzY3JlZW5TdGF0ZXMsXG4gICAgICAgIHByZXZTY3JlZW5TdGF0ZXMsXG4gICAgICAgIGFjdGl2ZU5hbWVzLFxuICAgICAgICB0cmlnZ2VyLFxuICAgICAgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICAgIC8vIFJlc3RhcnQgdGhlIGNvbXBhcmlzb24gaWYgbmVlZGVkXG4gICAgICBpZiAocmVzdGFydCkge1xuICAgICAgICAvLyBQZXJmb3JtIG5lY2Vzc2FyeSBhY3Rpb25zIG9uIHJlc3RhcnRcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBDb21wYXJlIGVhY2gga2V5LXZhbHVlIHBhaXIgaW4gdGhlIHNjcmVlblN0YXRlcyBvYmplY3RzXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNjcmVlblN0YXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjdXJyZW50U2NyZWVuU3RhdGUgPSBzY3JlZW5TdGF0ZXNbaV07XG4gICAgICAgIGNvbnN0IHByZXZTY3JlZW5TdGF0ZSA9IHByZXZTY3JlZW5TdGF0ZXNbaV07XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgYW55IHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSAoT2JqZWN0LmtleXMoY3VycmVudFNjcmVlblN0YXRlKSBhcyAoa2V5b2YgU2NyZWVuU3RhdGUpW10pLnNvbWUoXG4gICAgICAgICAgKGtleSkgPT4gY3VycmVudFNjcmVlblN0YXRlW2tleV0gIT09IHByZXZTY3JlZW5TdGF0ZVtrZXldLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFNpZ25hbCBjaGFuZ2UgaWYgYW55IHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgICAgIGlmIChoYXNDaGFuZ2VkKSB7XG4gICAgICAgICAgLy8gUGVyZm9ybSBhY3Rpb25zIG9yIHRyaWdnZXIgZXZlbnRzIGJhc2VkIG9uIHRoZSBjaGFuZ2VcbiAgICAgICAgICBpZiAocmVjb3JkaW5nRGlzcGxheVR5cGUgPT09ICd2aWRlbycgJiYgcmVjb3JkaW5nVmlkZW9PcHRpbWl6ZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRyaWdnZXIoeyByZWZfQWN0aXZlTmFtZXM6IGFjdGl2ZU5hbWVzLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IHRyaWdnZXIoeyByZWZfQWN0aXZlTmFtZXM6IGFjdGl2ZU5hbWVzLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdjb21wYXJlU2NyZWVuU3RhdGVzIGVycm9yJywgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,112 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../sockets/socket-manager.service";
4
- import * as i2 from "./socket-receive-methods/new-pipe-producer.service";
5
- import * as i3 from "./socket-receive-methods/producer-closed.service";
6
- import * as i4 from "./socket-receive-methods/join-consume-room.service";
7
- export class ConnectIps {
8
- socketManagerService;
9
- newPipeProducerService;
10
- producerClosedService;
11
- joinConsumeRoomService;
12
- constructor(socketManagerService, newPipeProducerService, producerClosedService, joinConsumeRoomService) {
13
- this.socketManagerService = socketManagerService;
14
- this.newPipeProducerService = newPipeProducerService;
15
- this.producerClosedService = producerClosedService;
16
- this.joinConsumeRoomService = joinConsumeRoomService;
17
- }
18
- /**
19
- * Connects to remote IPs and manages socket connections.
20
- *
21
- * @param {Object} options - The options for connecting IPs.
22
- * @param {Record<string, any>[]} options.consume_sockets - The array of current socket connections.
23
- * @param {string[]} options.remIP - The list of remote IPs to connect to.
24
- * @param {string} options.apiUserName - The API username for authentication.
25
- * @param {string} [options.apiKey] - The API key for authentication.
26
- * @param {string} [options.apiToken] - The API token for authentication.
27
- * @param {Function} [options.newProducerMethod=newPipeProducer] - The method to handle new pipe producer events.
28
- * @param {Function} [options.closedProducerMethod=producerClosed] - The method to handle producer closed events.
29
- * @param {Function} [options.joinConsumeRoomMethod=joinConsumeRoom] - The method to handle joining a consuming room.
30
- * @param {Object} options.parameters - Additional parameters.
31
- * @param {string[]} options.parameters.roomRecvIPs - The list of IPs that have been received in the room.
32
- * @param {Function} options.parameters.updateRoomRecvIPs - The function to update the room received IPs.
33
- * @param {Function} options.parameters.updateConsume_sockets - The function to update the consume sockets.
34
- *
35
- * @returns {Promise<[Record<string, any>[], string[]]>} A promise that resolves to an array containing the updated consume sockets and room received IPs.
36
- *
37
- * @throws Will throw an error if required parameters are missing or if there is an issue connecting to a remote IP.
38
- */
39
- connectIps = async ({ consume_sockets, remIP, apiUserName, apiKey = '', apiToken = '', newProducerMethod = this.newPipeProducerService.newPipeProducer, closedProducerMethod = this.producerClosedService.producerClosed, joinConsumeRoomMethod = this.joinConsumeRoomService.joinConsumeRoom, parameters, }) => {
40
- try {
41
- const { roomRecvIPs, updateRoomRecvIPs, updateConsume_sockets } = parameters;
42
- if (!consume_sockets || !remIP || !apiUserName || (!apiKey && !apiToken)) {
43
- console.log('Missing required parameters - consume_sockets, remIP, apiUserName, apiKey, apiToken');
44
- return [consume_sockets, roomRecvIPs];
45
- }
46
- await Promise.all(remIP.map(async (ip) => {
47
- try {
48
- // Check if the IP is already connected
49
- const matching = consume_sockets.find((socketObj) => Object.keys(socketObj)[0] == ip);
50
- if (matching || !ip || ip === '' || ip === null || ip === undefined) {
51
- // Skip if the IP is already connected
52
- return;
53
- }
54
- // Connect to the remote socket using socket.io-client
55
- const remote_sock = await this.socketManagerService.connectSocket({
56
- apiUserName,
57
- apiKey,
58
- apiToken,
59
- link: `https://${ip}.mediasfu.com`,
60
- });
61
- // Handle successful connection to the remote socket
62
- if (remote_sock.id) {
63
- // Check if the IP is in the roomRecvIPs, if not, add it
64
- if (!roomRecvIPs.includes(ip)) {
65
- roomRecvIPs.push(ip);
66
- updateRoomRecvIPs(roomRecvIPs);
67
- }
68
- // Handle new pipe producer event
69
- remote_sock.on('new-pipe-producer', async ({ producerId, islevel }) => {
70
- await newProducerMethod({ producerId, islevel, nsock: remote_sock, parameters });
71
- });
72
- // Handle producer closed event
73
- remote_sock.on('producer-closed', async ({ remoteProducerId }) => {
74
- await closedProducerMethod({ remoteProducerId, parameters });
75
- });
76
- // Handle new consuming room by joining the room
77
- const data = await joinConsumeRoomMethod({
78
- remote_sock,
79
- apiToken,
80
- apiUserName,
81
- parameters,
82
- });
83
- if (!data.rtpCapabilities) {
84
- return;
85
- }
86
- // Add the remote socket to the consume_sockets array
87
- consume_sockets.push({ [ip]: remote_sock });
88
- updateConsume_sockets(consume_sockets);
89
- }
90
- }
91
- catch (error) {
92
- // Handle the error
93
- console.log('connectIps error', error);
94
- }
95
- }));
96
- return [consume_sockets, roomRecvIPs];
97
- }
98
- catch (error) {
99
- // Handle the error
100
- console.log('connectIps error', error);
101
- }
102
- };
103
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectIps, deps: [{ token: i1.SocketManager }, { token: i2.NewPipeProducer }, { token: i3.ProducerClosed }, { token: i4.JoinConsumeRoom }], target: i0.ɵɵFactoryTarget.Injectable });
104
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectIps, providedIn: 'root' });
105
- }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectIps, decorators: [{
107
- type: Injectable,
108
- args: [{
109
- providedIn: 'root',
110
- }]
111
- }], ctorParameters: () => [{ type: i1.SocketManager }, { type: i2.NewPipeProducer }, { type: i3.ProducerClosed }, { type: i4.JoinConsumeRoom }] });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC1pcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvY29ubmVjdC1pcHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFzRDNDLE1BQU0sT0FBTyxVQUFVO0lBRVg7SUFDQTtJQUNBO0lBQ0E7SUFKVixZQUNVLG9CQUFtQyxFQUNuQyxzQkFBdUMsRUFDdkMscUJBQXFDLEVBQ3JDLHNCQUF1QztRQUh2Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQWU7UUFDbkMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFpQjtRQUN2QywwQkFBcUIsR0FBckIscUJBQXFCLENBQWdCO1FBQ3JDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBaUI7SUFDOUMsQ0FBQztJQUVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNILFVBQVUsR0FBRyxLQUFLLEVBQUUsRUFDbEIsZUFBZSxFQUNmLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxHQUFHLEVBQUUsRUFDWCxRQUFRLEdBQUcsRUFBRSxFQUNiLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQy9ELG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQ2hFLHFCQUFxQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQ25FLFVBQVUsR0FDUSxFQUFnQixFQUFFO1FBQ3BDLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFFN0UsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDekUsT0FBTyxDQUFDLEdBQUcsQ0FDVCxxRkFBcUYsQ0FDdEYsQ0FBQztnQkFDRixPQUFPLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFFRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQztvQkFDSCx1Q0FBdUM7b0JBQ3ZDLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ25DLENBQUMsU0FBYyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FDcEQsQ0FBQztvQkFFRixJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO3dCQUNwRSxzQ0FBc0M7d0JBQ3RDLE9BQU87b0JBQ1QsQ0FBQztvQkFFRCxzREFBc0Q7b0JBQ3RELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQzt3QkFDaEUsV0FBVzt3QkFDWCxNQUFNO3dCQUNOLFFBQVE7d0JBQ1IsSUFBSSxFQUFFLFdBQVcsRUFBRSxlQUFlO3FCQUNuQyxDQUFDLENBQUM7b0JBRUgsb0RBQW9EO29CQUNwRCxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDbkIsd0RBQXdEO3dCQUN4RCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDOzRCQUM5QixXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNyQixpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDakMsQ0FBQzt3QkFFRCxpQ0FBaUM7d0JBQ2pDLFdBQVcsQ0FBQyxFQUFFLENBQ1osbUJBQW1CLEVBQ25CLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTJDLEVBQUUsRUFBRTs0QkFDekUsTUFBTSxpQkFBaUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO3dCQUNuRixDQUFDLENBQ0YsQ0FBQzt3QkFFRiwrQkFBK0I7d0JBQy9CLFdBQVcsQ0FBQyxFQUFFLENBQ1osaUJBQWlCLEVBQ2pCLEtBQUssRUFBRSxFQUFFLGdCQUFnQixFQUFnQyxFQUFFLEVBQUU7NEJBQzNELE1BQU0sb0JBQW9CLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO3dCQUMvRCxDQUFDLENBQ0YsQ0FBQzt3QkFFRixnREFBZ0Q7d0JBQ2hELE1BQU0sSUFBSSxHQUFHLE1BQU0scUJBQXFCLENBQUM7NEJBQ3ZDLFdBQVc7NEJBQ1gsUUFBUTs0QkFDUixXQUFXOzRCQUNYLFVBQVU7eUJBQ1gsQ0FBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7NEJBQzFCLE9BQU87d0JBQ1QsQ0FBQzt3QkFFRCxxREFBcUQ7d0JBQ3JELGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7d0JBQzVDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUN6QyxDQUFDO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixtQkFBbUI7b0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBRUYsT0FBTyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLG1CQUFtQjtZQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDLENBQUM7dUdBMUhTLFVBQVU7MkdBQVYsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0TWFuYWdlciB9IGZyb20gJy4uL3NvY2tldHMvc29ja2V0LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOZXdQaXBlUHJvZHVjZXIgfSBmcm9tICcuL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvbmV3LXBpcGUtcHJvZHVjZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWNlckNsb3NlZCB9IGZyb20gJy4vc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9wcm9kdWNlci1jbG9zZWQuc2VydmljZSc7XG5pbXBvcnQgeyBKb2luQ29uc3VtZVJvb20gfSBmcm9tICcuL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvam9pbi1jb25zdW1lLXJvb20uc2VydmljZSc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5pbXBvcnQge1xuICBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnMsXG4gIFJlb3JkZXJTdHJlYW1zVHlwZSxcbiAgTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVycyxcbiAgTmV3UGlwZVByb2R1Y2VyVHlwZSxcbiAgUHJvZHVjZXJDbG9zZWRUeXBlLFxuICBQcm9kdWNlckNsb3NlZFBhcmFtZXRlcnMsXG4gIEpvaW5Db25zdW1lUm9vbVR5cGUsXG4gIEpvaW5Db25zdW1lUm9vbVBhcmFtZXRlcnMsXG4gIENvbnN1bWVTb2NrZXQsXG59IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdElwc1BhcmFtZXRlcnNcbiAgZXh0ZW5kcyBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnMsXG4gICAgSm9pbkNvbnN1bWVSb29tUGFyYW1ldGVycyxcbiAgICBQcm9kdWNlckNsb3NlZFBhcmFtZXRlcnMsXG4gICAgTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVycyB7XG4gIGRldmljZTogRGV2aWNlIHwgbnVsbDtcbiAgcm9vbVJlY3ZJUHM6IHN0cmluZ1tdO1xuICB1cGRhdGVSb29tUmVjdklQczogKHJvb21SZWN2SVBzOiBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgdXBkYXRlQ29uc3VtZV9zb2NrZXRzOiAoY29uc3VtZV9zb2NrZXRzOiBDb25zdW1lU29ja2V0W10pID0+IHZvaWQ7XG5cbiAgLy8gbWVkaWFzZnUgZnVuY3Rpb25zXG4gIHJlb3JkZXJTdHJlYW1zOiBSZW9yZGVyU3RyZWFtc1R5cGU7XG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IENvbm5lY3RJcHNQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdElwc09wdGlvbnMge1xuICBjb25zdW1lX3NvY2tldHM6IENvbnN1bWVTb2NrZXRbXTtcbiAgcmVtSVA6IHN0cmluZ1tdO1xuICBhcGlVc2VyTmFtZTogc3RyaW5nO1xuICBhcGlLZXk/OiBzdHJpbmc7XG4gIGFwaVRva2VuOiBzdHJpbmc7XG4gIG5ld1Byb2R1Y2VyTWV0aG9kPzogTmV3UGlwZVByb2R1Y2VyVHlwZTtcbiAgY2xvc2VkUHJvZHVjZXJNZXRob2Q/OiBQcm9kdWNlckNsb3NlZFR5cGU7XG4gIGpvaW5Db25zdW1lUm9vbU1ldGhvZD86IEpvaW5Db25zdW1lUm9vbVR5cGU7XG4gIHBhcmFtZXRlcnM6IENvbm5lY3RJcHNQYXJhbWV0ZXJzO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBDb25uZWN0SXBzVHlwZSA9IChcbiAgb3B0aW9uczogQ29ubmVjdElwc09wdGlvbnMsXG4pID0+IFByb21pc2U8W1JlY29yZDxzdHJpbmcsIGFueT5bXSwgc3RyaW5nW11dPjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RJcHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNvY2tldE1hbmFnZXJTZXJ2aWNlOiBTb2NrZXRNYW5hZ2VyLFxuICAgIHByaXZhdGUgbmV3UGlwZVByb2R1Y2VyU2VydmljZTogTmV3UGlwZVByb2R1Y2VyLFxuICAgIHByaXZhdGUgcHJvZHVjZXJDbG9zZWRTZXJ2aWNlOiBQcm9kdWNlckNsb3NlZCxcbiAgICBwcml2YXRlIGpvaW5Db25zdW1lUm9vbVNlcnZpY2U6IEpvaW5Db25zdW1lUm9vbSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDb25uZWN0cyB0byByZW1vdGUgSVBzIGFuZCBtYW5hZ2VzIHNvY2tldCBjb25uZWN0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgY29ubmVjdGluZyBJUHMuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55PltdfSBvcHRpb25zLmNvbnN1bWVfc29ja2V0cyAtIFRoZSBhcnJheSBvZiBjdXJyZW50IHNvY2tldCBjb25uZWN0aW9ucy5cbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gb3B0aW9ucy5yZW1JUCAtIFRoZSBsaXN0IG9mIHJlbW90ZSBJUHMgdG8gY29ubmVjdCB0by5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuYXBpVXNlck5hbWUgLSBUaGUgQVBJIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmFwaUtleV0gLSBUaGUgQVBJIGtleSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5hcGlUb2tlbl0gLSBUaGUgQVBJIHRva2VuIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMubmV3UHJvZHVjZXJNZXRob2Q9bmV3UGlwZVByb2R1Y2VyXSAtIFRoZSBtZXRob2QgdG8gaGFuZGxlIG5ldyBwaXBlIHByb2R1Y2VyIGV2ZW50cy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMuY2xvc2VkUHJvZHVjZXJNZXRob2Q9cHJvZHVjZXJDbG9zZWRdIC0gVGhlIG1ldGhvZCB0byBoYW5kbGUgcHJvZHVjZXIgY2xvc2VkIGV2ZW50cy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMuam9pbkNvbnN1bWVSb29tTWV0aG9kPWpvaW5Db25zdW1lUm9vbV0gLSBUaGUgbWV0aG9kIHRvIGhhbmRsZSBqb2luaW5nIGEgY29uc3VtaW5nIHJvb20uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IG9wdGlvbnMucGFyYW1ldGVycy5yb29tUmVjdklQcyAtIFRoZSBsaXN0IG9mIElQcyB0aGF0IGhhdmUgYmVlbiByZWNlaXZlZCBpbiB0aGUgcm9vbS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZVJvb21SZWN2SVBzIC0gVGhlIGZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcm9vbSByZWNlaXZlZCBJUHMuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVDb25zdW1lX3NvY2tldHMgLSBUaGUgZnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBjb25zdW1lIHNvY2tldHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFtSZWNvcmQ8c3RyaW5nLCBhbnk+W10sIHN0cmluZ1tdXT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgY29uc3VtZSBzb2NrZXRzIGFuZCByb29tIHJlY2VpdmVkIElQcy5cbiAgICpcbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIG1pc3Npbmcgb3IgaWYgdGhlcmUgaXMgYW4gaXNzdWUgY29ubmVjdGluZyB0byBhIHJlbW90ZSBJUC5cbiAgICovXG4gIGNvbm5lY3RJcHMgPSBhc3luYyAoe1xuICAgIGNvbnN1bWVfc29ja2V0cyxcbiAgICByZW1JUCxcbiAgICBhcGlVc2VyTmFtZSxcbiAgICBhcGlLZXkgPSAnJyxcbiAgICBhcGlUb2tlbiA9ICcnLFxuICAgIG5ld1Byb2R1Y2VyTWV0aG9kID0gdGhpcy5uZXdQaXBlUHJvZHVjZXJTZXJ2aWNlLm5ld1BpcGVQcm9kdWNlcixcbiAgICBjbG9zZWRQcm9kdWNlck1ldGhvZCA9IHRoaXMucHJvZHVjZXJDbG9zZWRTZXJ2aWNlLnByb2R1Y2VyQ2xvc2VkLFxuICAgIGpvaW5Db25zdW1lUm9vbU1ldGhvZCA9IHRoaXMuam9pbkNvbnN1bWVSb29tU2VydmljZS5qb2luQ29uc3VtZVJvb20sXG4gICAgcGFyYW1ldGVycyxcbiAgfTogQ29ubmVjdElwc09wdGlvbnMpOiBQcm9taXNlPGFueT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHJvb21SZWN2SVBzLCB1cGRhdGVSb29tUmVjdklQcywgdXBkYXRlQ29uc3VtZV9zb2NrZXRzIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICBpZiAoIWNvbnN1bWVfc29ja2V0cyB8fCAhcmVtSVAgfHwgIWFwaVVzZXJOYW1lIHx8ICghYXBpS2V5ICYmICFhcGlUb2tlbikpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgJ01pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVycyAtIGNvbnN1bWVfc29ja2V0cywgcmVtSVAsIGFwaVVzZXJOYW1lLCBhcGlLZXksIGFwaVRva2VuJyxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFtjb25zdW1lX3NvY2tldHMsIHJvb21SZWN2SVBzXTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHJlbUlQLm1hcChhc3luYyAoaXApID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIElQIGlzIGFscmVhZHkgY29ubmVjdGVkXG4gICAgICAgICAgICBjb25zdCBtYXRjaGluZyA9IGNvbnN1bWVfc29ja2V0cy5maW5kKFxuICAgICAgICAgICAgICAoc29ja2V0T2JqOiBhbnkpID0+IE9iamVjdC5rZXlzKHNvY2tldE9iailbMF0gPT0gaXAsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hpbmcgfHwgIWlwIHx8IGlwID09PSAnJyB8fCBpcCA9PT0gbnVsbCB8fCBpcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIC8vIFNraXAgaWYgdGhlIElQIGlzIGFscmVhZHkgY29ubmVjdGVkXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ29ubmVjdCB0byB0aGUgcmVtb3RlIHNvY2tldCB1c2luZyBzb2NrZXQuaW8tY2xpZW50XG4gICAgICAgICAgICBjb25zdCByZW1vdGVfc29jayA9IGF3YWl0IHRoaXMuc29ja2V0TWFuYWdlclNlcnZpY2UuY29ubmVjdFNvY2tldCh7XG4gICAgICAgICAgICAgIGFwaVVzZXJOYW1lLFxuICAgICAgICAgICAgICBhcGlLZXksXG4gICAgICAgICAgICAgIGFwaVRva2VuLFxuICAgICAgICAgICAgICBsaW5rOiBgaHR0cHM6Ly8ke2lwfS5tZWRpYXNmdS5jb21gLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIEhhbmRsZSBzdWNjZXNzZnVsIGNvbm5lY3Rpb24gdG8gdGhlIHJlbW90ZSBzb2NrZXRcbiAgICAgICAgICAgIGlmIChyZW1vdGVfc29jay5pZCkge1xuICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgSVAgaXMgaW4gdGhlIHJvb21SZWN2SVBzLCBpZiBub3QsIGFkZCBpdFxuICAgICAgICAgICAgICBpZiAoIXJvb21SZWN2SVBzLmluY2x1ZGVzKGlwKSkge1xuICAgICAgICAgICAgICAgIHJvb21SZWN2SVBzLnB1c2goaXApO1xuICAgICAgICAgICAgICAgIHVwZGF0ZVJvb21SZWN2SVBzKHJvb21SZWN2SVBzKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIEhhbmRsZSBuZXcgcGlwZSBwcm9kdWNlciBldmVudFxuICAgICAgICAgICAgICByZW1vdGVfc29jay5vbihcbiAgICAgICAgICAgICAgICAnbmV3LXBpcGUtcHJvZHVjZXInLFxuICAgICAgICAgICAgICAgIGFzeW5jICh7IHByb2R1Y2VySWQsIGlzbGV2ZWwgfTogeyBwcm9kdWNlcklkOiBzdHJpbmc7IGlzbGV2ZWw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICBhd2FpdCBuZXdQcm9kdWNlck1ldGhvZCh7IHByb2R1Y2VySWQsIGlzbGV2ZWwsIG5zb2NrOiByZW1vdGVfc29jaywgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIC8vIEhhbmRsZSBwcm9kdWNlciBjbG9zZWQgZXZlbnRcbiAgICAgICAgICAgICAgcmVtb3RlX3NvY2sub24oXG4gICAgICAgICAgICAgICAgJ3Byb2R1Y2VyLWNsb3NlZCcsXG4gICAgICAgICAgICAgICAgYXN5bmMgKHsgcmVtb3RlUHJvZHVjZXJJZCB9OiB7IHJlbW90ZVByb2R1Y2VySWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICBhd2FpdCBjbG9zZWRQcm9kdWNlck1ldGhvZCh7IHJlbW90ZVByb2R1Y2VySWQsIHBhcmFtZXRlcnMgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAvLyBIYW5kbGUgbmV3IGNvbnN1bWluZyByb29tIGJ5IGpvaW5pbmcgdGhlIHJvb21cbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGpvaW5Db25zdW1lUm9vbU1ldGhvZCh7XG4gICAgICAgICAgICAgICAgcmVtb3RlX3NvY2ssXG4gICAgICAgICAgICAgICAgYXBpVG9rZW4sXG4gICAgICAgICAgICAgICAgYXBpVXNlck5hbWUsXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVycyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGlmICghZGF0YS5ydHBDYXBhYmlsaXRpZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBBZGQgdGhlIHJlbW90ZSBzb2NrZXQgdG8gdGhlIGNvbnN1bWVfc29ja2V0cyBhcnJheVxuICAgICAgICAgICAgICBjb25zdW1lX3NvY2tldHMucHVzaCh7IFtpcF06IHJlbW90ZV9zb2NrIH0pO1xuICAgICAgICAgICAgICB1cGRhdGVDb25zdW1lX3NvY2tldHMoY29uc3VtZV9zb2NrZXRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBlcnJvclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2Nvbm5lY3RJcHMgZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBbY29uc3VtZV9zb2NrZXRzLCByb29tUmVjdklQc107XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEhhbmRsZSB0aGUgZXJyb3JcbiAgICAgIGNvbnNvbGUubG9nKCdjb25uZWN0SXBzIGVycm9yJywgZXJyb3IpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,113 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ConnectRecvTransport {
4
- /**
5
- * Connects the receiving transport to consume media from a remote producer.
6
- *
7
- * @param {Object} options - The options for connecting the receiving transport.
8
- * @param {Transport} options.consumerTransport - The transport used for consuming media.
9
- * @param {string} options.remoteProducerId - The ID of the remote producer.
10
- * @param {string} options.serverConsumerTransportId - The ID of the server consumer transport.
11
- * @param {Socket} options.nsock - The socket used for communication.
12
- * @param {ConnectRecvTransportOptions} options.parameters - The parameters for the connection.
13
- *
14
- * @returns {Promise<void>} A promise that resolves when the connection is established.
15
- *
16
- * @throws Will throw an error if the connection or consumption fails.
17
- *
18
- * @example
19
- * ```typescript
20
- * const options = {
21
- * consumerTransport,
22
- * remoteProducerId: 'producer-id',
23
- * serverConsumerTransportId: 'transport-id',
24
- * nsock: socket,
25
- * parameters: connectRecvTransportOptions,
26
- * };
27
- *
28
- * connectRecvTransport(options)
29
- * .then(() => {
30
- * console.log('Transport connected and consuming media');
31
- * })
32
- * .catch((error) => {
33
- * console.error('Error connecting transport:', error);
34
- * });
35
- * ```
36
- */
37
- connectRecvTransport = async ({ consumerTransport, remoteProducerId, serverConsumerTransportId, nsock, parameters, }) => {
38
- try {
39
- parameters = parameters.getUpdatedAllParams();
40
- const { device, consumerTransports, updateConsumerTransports, consumerResume } = parameters;
41
- // Emit 'consume' event to signal consumption initiation
42
- nsock.emit('consume', {
43
- rtpCapabilities: device ? device.rtpCapabilities : null,
44
- remoteProducerId,
45
- serverConsumerTransportId,
46
- }, async ({ params }) => {
47
- if (params.error) {
48
- // Handle error
49
- console.log('consume error', params.error);
50
- return;
51
- }
52
- try {
53
- // Consume media using received parameters
54
- const consumer = await consumerTransport.consume({
55
- id: params.id,
56
- producerId: params.producerId,
57
- kind: params.kind,
58
- rtpParameters: params.rtpParameters,
59
- });
60
- // Update consumerTransports array with the new consumer
61
- consumerTransports.push({
62
- consumerTransport,
63
- serverConsumerTransportId: params.id,
64
- producerId: remoteProducerId,
65
- consumer,
66
- socket_: nsock,
67
- });
68
- updateConsumerTransports(consumerTransports);
69
- // Extract track from the consumer
70
- const { track } = consumer;
71
- // Emit 'consumer-resume' event to signal consumer resumption
72
- nsock.emit('consumer-resume', { serverConsumerId: params.serverConsumerId }, async ({ resumed }) => {
73
- if (resumed) {
74
- // Consumer resumed and ready to be used
75
- try {
76
- await consumerResume({
77
- track,
78
- kind: params.kind,
79
- remoteProducerId,
80
- params,
81
- parameters,
82
- nsock,
83
- });
84
- }
85
- catch (error) {
86
- // Handle error
87
- console.log('consumerResume error', error);
88
- }
89
- }
90
- });
91
- }
92
- catch (error) {
93
- // Handle error
94
- console.log('consume error', error);
95
- return;
96
- }
97
- });
98
- }
99
- catch (error) {
100
- // Handle error
101
- console.log('connectRecvTransport error', error);
102
- }
103
- };
104
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectRecvTransport, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
105
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectRecvTransport, providedIn: 'root' });
106
- }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectRecvTransport, decorators: [{
108
- type: Injectable,
109
- args: [{
110
- providedIn: 'root',
111
- }]
112
- }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC1yZWN2LXRyYW5zcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbnN1bWVycy9jb25uZWN0LXJlY3YtdHJhbnNwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF5QzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BZ0NHO0lBRUgsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLEVBQzVCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLEtBQUssRUFDTCxVQUFVLEdBQ2tCLEVBQWlCLEVBQUU7UUFDL0MsSUFBSSxDQUFDO1lBQ0gsVUFBVSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzlDLE1BQU0sRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBRTVGLHdEQUF3RDtZQUN4RCxLQUFLLENBQUMsSUFBSSxDQUNSLFNBQVMsRUFDVDtnQkFDRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUN2RCxnQkFBZ0I7Z0JBQ2hCLHlCQUF5QjthQUMxQixFQUNELEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBc0IsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakIsZUFBZTtvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNDLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxJQUFJLENBQUM7b0JBQ0gsMENBQTBDO29CQUMxQyxNQUFNLFFBQVEsR0FBYSxNQUFNLGlCQUFpQixDQUFDLE9BQU8sQ0FBQzt3QkFDekQsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO3dCQUNiLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTt3QkFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUF5Qjt3QkFDdEMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO3FCQUNwQyxDQUFDLENBQUM7b0JBRUgsd0RBQXdEO29CQUN4RCxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7d0JBQ3RCLGlCQUFpQjt3QkFDakIseUJBQXlCLEVBQUUsTUFBTSxDQUFDLEVBQUU7d0JBQ3BDLFVBQVUsRUFBRSxnQkFBZ0I7d0JBQzVCLFFBQVE7d0JBQ1IsT0FBTyxFQUFFLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO29CQUVILHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBRTdDLGtDQUFrQztvQkFDbEMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLFFBQVEsQ0FBQztvQkFFM0IsNkRBQTZEO29CQUM3RCxLQUFLLENBQUMsSUFBSSxDQUNSLGlCQUFpQixFQUNqQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUM3QyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQU8sRUFBRSxFQUFFO3dCQUN6QixJQUFJLE9BQU8sRUFBRSxDQUFDOzRCQUNaLHdDQUF3Qzs0QkFDeEMsSUFBSSxDQUFDO2dDQUNILE1BQU0sY0FBYyxDQUFDO29DQUNuQixLQUFLO29DQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQ0FDakIsZ0JBQWdCO29DQUNoQixNQUFNO29DQUNOLFVBQVU7b0NBQ1YsS0FBSztpQ0FDTixDQUFDLENBQUM7NEJBQ0wsQ0FBQzs0QkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dDQUNmLGVBQWU7Z0NBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQzs0QkFDN0MsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUMsQ0FDRixDQUFDO2dCQUNKLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixlQUFlO29CQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNwQyxPQUFPO2dCQUNULENBQUM7WUFDSCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBZTtZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0F0SFMsb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuaW1wb3J0IHtcbiAgQ29uc3VtZXJSZXN1bWVUeXBlLFxuICBDb25zdW1lclJlc3VtZVBhcmFtZXRlcnMsXG4gIFRyYW5zcG9ydCBhcyBUcmFuc3BvcnRUeXBlLFxufSBmcm9tICcuLi9AdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHsgQ29uc3VtZXIsIERldmljZSwgVHJhbnNwb3J0IH0gZnJvbSAnbWVkaWFzb3VwLWNsaWVudC9saWIvdHlwZXMnO1xuaW50ZXJmYWNlIFBhcmFtcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb2R1Y2VySWQ6IHN0cmluZztcbiAga2luZDogc3RyaW5nO1xuICBydHBQYXJhbWV0ZXJzOiBhbnk7XG4gIHNlcnZlckNvbnN1bWVySWQ6IHN0cmluZztcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdFJlY3ZUcmFuc3BvcnRQYXJhbWV0ZXJzIGV4dGVuZHMgQ29uc3VtZXJSZXN1bWVQYXJhbWV0ZXJzIHtcbiAgZGV2aWNlOiBEZXZpY2UgfCBudWxsO1xuICBjb25zdW1lclRyYW5zcG9ydHM6IFRyYW5zcG9ydFR5cGVbXTtcbiAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzOiAodHJhbnNwb3J0czogVHJhbnNwb3J0VHlwZVtdKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBjb25zdW1lclJlc3VtZTogQ29uc3VtZXJSZXN1bWVUeXBlO1xuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBDb25uZWN0UmVjdlRyYW5zcG9ydFBhcmFtZXRlcnM7XG4gIFtrZXk6IHN0cmluZ106IGFueTsgLy8gRXh0ZW5kYWJsZSBmb3IgYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG59XG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RSZWN2VHJhbnNwb3J0T3B0aW9ucyB7XG4gIGNvbnN1bWVyVHJhbnNwb3J0OiBUcmFuc3BvcnQ7XG4gIHJlbW90ZVByb2R1Y2VySWQ6IHN0cmluZztcbiAgc2VydmVyQ29uc3VtZXJUcmFuc3BvcnRJZDogc3RyaW5nO1xuICBuc29jazogU29ja2V0O1xuICBwYXJhbWV0ZXJzOiBDb25uZWN0UmVjdlRyYW5zcG9ydFBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIENvbm5lY3RSZWN2VHJhbnNwb3J0VHlwZSA9IChvcHRpb25zOiBDb25uZWN0UmVjdlRyYW5zcG9ydE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0UmVjdlRyYW5zcG9ydCB7XG4gIC8qKlxuICAgKiBDb25uZWN0cyB0aGUgcmVjZWl2aW5nIHRyYW5zcG9ydCB0byBjb25zdW1lIG1lZGlhIGZyb20gYSByZW1vdGUgcHJvZHVjZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGNvbm5lY3RpbmcgdGhlIHJlY2VpdmluZyB0cmFuc3BvcnQuXG4gICAqIEBwYXJhbSB7VHJhbnNwb3J0fSBvcHRpb25zLmNvbnN1bWVyVHJhbnNwb3J0IC0gVGhlIHRyYW5zcG9ydCB1c2VkIGZvciBjb25zdW1pbmcgbWVkaWEuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnJlbW90ZVByb2R1Y2VySWQgLSBUaGUgSUQgb2YgdGhlIHJlbW90ZSBwcm9kdWNlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuc2VydmVyQ29uc3VtZXJUcmFuc3BvcnRJZCAtIFRoZSBJRCBvZiB0aGUgc2VydmVyIGNvbnN1bWVyIHRyYW5zcG9ydC5cbiAgICogQHBhcmFtIHtTb2NrZXR9IG9wdGlvbnMubnNvY2sgLSBUaGUgc29ja2V0IHVzZWQgZm9yIGNvbW11bmljYXRpb24uXG4gICAqIEBwYXJhbSB7Q29ubmVjdFJlY3ZUcmFuc3BvcnRPcHRpb25zfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkLlxuICAgKlxuICAgKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGNvbm5lY3Rpb24gb3IgY29uc3VtcHRpb24gZmFpbHMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qgb3B0aW9ucyA9IHtcbiAgICogICBjb25zdW1lclRyYW5zcG9ydCxcbiAgICogICByZW1vdGVQcm9kdWNlcklkOiAncHJvZHVjZXItaWQnLFxuICAgKiAgIHNlcnZlckNvbnN1bWVyVHJhbnNwb3J0SWQ6ICd0cmFuc3BvcnQtaWQnLFxuICAgKiAgIG5zb2NrOiBzb2NrZXQsXG4gICAqICAgcGFyYW1ldGVyczogY29ubmVjdFJlY3ZUcmFuc3BvcnRPcHRpb25zLFxuICAgKiB9O1xuICAgKlxuICAgKiBjb25uZWN0UmVjdlRyYW5zcG9ydChvcHRpb25zKVxuICAgKiAgIC50aGVuKCgpID0+IHtcbiAgICogICAgIGNvbnNvbGUubG9nKCdUcmFuc3BvcnQgY29ubmVjdGVkIGFuZCBjb25zdW1pbmcgbWVkaWEnKTtcbiAgICogICB9KVxuICAgKiAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICogICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNvbm5lY3RpbmcgdHJhbnNwb3J0OicsIGVycm9yKTtcbiAgICogICB9KTtcbiAgICogYGBgXG4gICAqL1xuXG4gIGNvbm5lY3RSZWN2VHJhbnNwb3J0ID0gYXN5bmMgKHtcbiAgICBjb25zdW1lclRyYW5zcG9ydCxcbiAgICByZW1vdGVQcm9kdWNlcklkLFxuICAgIHNlcnZlckNvbnN1bWVyVHJhbnNwb3J0SWQsXG4gICAgbnNvY2ssXG4gICAgcGFyYW1ldGVycyxcbiAgfTogQ29ubmVjdFJlY3ZUcmFuc3BvcnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMoKTtcbiAgICAgIGNvbnN0IHsgZGV2aWNlLCBjb25zdW1lclRyYW5zcG9ydHMsIHVwZGF0ZUNvbnN1bWVyVHJhbnNwb3J0cywgY29uc3VtZXJSZXN1bWUgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICAgIC8vIEVtaXQgJ2NvbnN1bWUnIGV2ZW50IHRvIHNpZ25hbCBjb25zdW1wdGlvbiBpbml0aWF0aW9uXG4gICAgICBuc29jay5lbWl0KFxuICAgICAgICAnY29uc3VtZScsXG4gICAgICAgIHtcbiAgICAgICAgICBydHBDYXBhYmlsaXRpZXM6IGRldmljZSA/IGRldmljZS5ydHBDYXBhYmlsaXRpZXMgOiBudWxsLFxuICAgICAgICAgIHJlbW90ZVByb2R1Y2VySWQsXG4gICAgICAgICAgc2VydmVyQ29uc3VtZXJUcmFuc3BvcnRJZCxcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgKHsgcGFyYW1zIH06IHsgcGFyYW1zOiBQYXJhbXMgfSkgPT4ge1xuICAgICAgICAgIGlmIChwYXJhbXMuZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NvbnN1bWUgZXJyb3InLCBwYXJhbXMuZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBDb25zdW1lIG1lZGlhIHVzaW5nIHJlY2VpdmVkIHBhcmFtZXRlcnNcbiAgICAgICAgICAgIGNvbnN0IGNvbnN1bWVyOiBDb25zdW1lciA9IGF3YWl0IGNvbnN1bWVyVHJhbnNwb3J0LmNvbnN1bWUoe1xuICAgICAgICAgICAgICBpZDogcGFyYW1zLmlkLFxuICAgICAgICAgICAgICBwcm9kdWNlcklkOiBwYXJhbXMucHJvZHVjZXJJZCxcbiAgICAgICAgICAgICAga2luZDogcGFyYW1zLmtpbmQgYXMgJ2F1ZGlvJyB8ICd2aWRlbycsXG4gICAgICAgICAgICAgIHJ0cFBhcmFtZXRlcnM6IHBhcmFtcy5ydHBQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSBjb25zdW1lclRyYW5zcG9ydHMgYXJyYXkgd2l0aCB0aGUgbmV3IGNvbnN1bWVyXG4gICAgICAgICAgICBjb25zdW1lclRyYW5zcG9ydHMucHVzaCh7XG4gICAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0LFxuICAgICAgICAgICAgICBzZXJ2ZXJDb25zdW1lclRyYW5zcG9ydElkOiBwYXJhbXMuaWQsXG4gICAgICAgICAgICAgIHByb2R1Y2VySWQ6IHJlbW90ZVByb2R1Y2VySWQsXG4gICAgICAgICAgICAgIGNvbnN1bWVyLFxuICAgICAgICAgICAgICBzb2NrZXRfOiBuc29jayxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB1cGRhdGVDb25zdW1lclRyYW5zcG9ydHMoY29uc3VtZXJUcmFuc3BvcnRzKTtcblxuICAgICAgICAgICAgLy8gRXh0cmFjdCB0cmFjayBmcm9tIHRoZSBjb25zdW1lclxuICAgICAgICAgICAgY29uc3QgeyB0cmFjayB9ID0gY29uc3VtZXI7XG5cbiAgICAgICAgICAgIC8vIEVtaXQgJ2NvbnN1bWVyLXJlc3VtZScgZXZlbnQgdG8gc2lnbmFsIGNvbnN1bWVyIHJlc3VtcHRpb25cbiAgICAgICAgICAgIG5zb2NrLmVtaXQoXG4gICAgICAgICAgICAgICdjb25zdW1lci1yZXN1bWUnLFxuICAgICAgICAgICAgICB7IHNlcnZlckNvbnN1bWVySWQ6IHBhcmFtcy5zZXJ2ZXJDb25zdW1lcklkIH0sXG4gICAgICAgICAgICAgIGFzeW5jICh7IHJlc3VtZWQgfTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VtZWQpIHtcbiAgICAgICAgICAgICAgICAgIC8vIENvbnN1bWVyIHJlc3VtZWQgYW5kIHJlYWR5IHRvIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGNvbnN1bWVyUmVzdW1lKHtcbiAgICAgICAgICAgICAgICAgICAgICB0cmFjayxcbiAgICAgICAgICAgICAgICAgICAgICBraW5kOiBwYXJhbXMua2luZCxcbiAgICAgICAgICAgICAgICAgICAgICByZW1vdGVQcm9kdWNlcklkLFxuICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgICAgICAgIG5zb2NrLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnY29uc3VtZXJSZXN1bWUgZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGVycm9yXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY29uc3VtZSBlcnJvcicsIGVycm9yKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JcbiAgICAgIGNvbnNvbGUubG9nKCdjb25uZWN0UmVjdlRyYW5zcG9ydCBlcnJvcicsIGVycm9yKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ConnectSendTransportAudio {
4
- /**
5
- * Connects the send transport for audio by producing audio data and updating the audio producer and producer transport objects.
6
- *
7
- * @param {Object} params - The parameters for connecting the send transport.
8
- * @param {ProducerOptions} params.audioParams - The options for the audio producer.
9
- * @param {ConnectSendTransportAudioParameters} params.parameters - The parameters containing the audio producer, producer transport, and update functions.
10
- * @param {Producer} params.parameters.audioProducer - The current audio producer.
11
- * @param {Transport} params.parameters.producerTransport - The transport used to produce audio data.
12
- * @param {Function} params.parameters.updateAudioProducer - Function to update the audio producer.
13
- * @param {Function} params.parameters.updateProducerTransport - Function to update the producer transport.
14
- *
15
- * @returns {Promise<void>} A promise that resolves when the audio transport is successfully connected.
16
- *
17
- * @throws Will throw an error if the connection fails.
18
- */
19
- async connectSendTransportAudio({ audioParams, parameters, }) {
20
- try {
21
- let { audioProducer, producerTransport, updateAudioProducer, updateProducerTransport } = parameters;
22
- // Connect the send transport for audio by producing audio data
23
- if (producerTransport) {
24
- audioProducer = await producerTransport.produce(audioParams);
25
- }
26
- else {
27
- throw new Error('Producer transport is null');
28
- }
29
- // Update the audio producer and producer transport objects
30
- updateAudioProducer(audioProducer);
31
- updateProducerTransport(producerTransport);
32
- }
33
- catch (error) {
34
- console.log('connectSendTransportAudio error', error);
35
- }
36
- }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectSendTransportAudio, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
38
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectSendTransportAudio, providedIn: 'root' });
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectSendTransportAudio, decorators: [{
41
- type: Injectable,
42
- args: [{
43
- providedIn: 'root',
44
- }]
45
- }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC1zZW5kLXRyYW5zcG9ydC1hdWRpby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbnN1bWVycy9jb25uZWN0LXNlbmQtdHJhbnNwb3J0LWF1ZGlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjNDLE1BQU0sT0FBTyx5QkFBeUI7SUFDcEM7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFFSCxLQUFLLENBQUMseUJBQXlCLENBQUMsRUFDOUIsV0FBVyxFQUNYLFVBQVUsR0FDdUI7UUFDakMsSUFBSSxDQUFDO1lBQ0gsSUFBSSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxHQUNwRixVQUFVLENBQUM7WUFFYiwrREFBK0Q7WUFDL0QsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixhQUFhLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBRUQsMkRBQTJEO1lBQzNELG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25DLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO3VHQXRDVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUcmFuc3BvcnQsIFByb2R1Y2VyLCBQcm9kdWNlck9wdGlvbnMgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RTZW5kVHJhbnNwb3J0QXVkaW9QYXJhbWV0ZXJzIHtcbiAgYXVkaW9Qcm9kdWNlcjogUHJvZHVjZXIgfCBudWxsO1xuICBwcm9kdWNlclRyYW5zcG9ydDogVHJhbnNwb3J0IHwgbnVsbDtcbiAgdXBkYXRlQXVkaW9Qcm9kdWNlcjogKHByb2R1Y2VyOiBQcm9kdWNlciB8IG51bGwpID0+IHZvaWQ7XG4gIHVwZGF0ZVByb2R1Y2VyVHJhbnNwb3J0OiAodHJhbnNwb3J0OiBUcmFuc3BvcnQgfCBudWxsKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RTZW5kVHJhbnNwb3J0QXVkaW9PcHRpb25zIHtcbiAgYXVkaW9QYXJhbXM6IFByb2R1Y2VyT3B0aW9ucztcbiAgcGFyYW1ldGVyczogQ29ubmVjdFNlbmRUcmFuc3BvcnRBdWRpb1BhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIENvbm5lY3RTZW5kVHJhbnNwb3J0QXVkaW9UeXBlID0gKFxuICBvcHRpb25zOiBDb25uZWN0U2VuZFRyYW5zcG9ydEF1ZGlvT3B0aW9ucyxcbikgPT4gUHJvbWlzZTx2b2lkPjtcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0U2VuZFRyYW5zcG9ydEF1ZGlvIHtcbiAgLyoqXG4gICAqIENvbm5lY3RzIHRoZSBzZW5kIHRyYW5zcG9ydCBmb3IgYXVkaW8gYnkgcHJvZHVjaW5nIGF1ZGlvIGRhdGEgYW5kIHVwZGF0aW5nIHRoZSBhdWRpbyBwcm9kdWNlciBhbmQgcHJvZHVjZXIgdHJhbnNwb3J0IG9iamVjdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgY29ubmVjdGluZyB0aGUgc2VuZCB0cmFuc3BvcnQuXG4gICAqIEBwYXJhbSB7UHJvZHVjZXJPcHRpb25zfSBwYXJhbXMuYXVkaW9QYXJhbXMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGF1ZGlvIHByb2R1Y2VyLlxuICAgKiBAcGFyYW0ge0Nvbm5lY3RTZW5kVHJhbnNwb3J0QXVkaW9QYXJhbWV0ZXJzfSBwYXJhbXMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIGNvbnRhaW5pbmcgdGhlIGF1ZGlvIHByb2R1Y2VyLCBwcm9kdWNlciB0cmFuc3BvcnQsIGFuZCB1cGRhdGUgZnVuY3Rpb25zLlxuICAgKiBAcGFyYW0ge1Byb2R1Y2VyfSBwYXJhbXMucGFyYW1ldGVycy5hdWRpb1Byb2R1Y2VyIC0gVGhlIGN1cnJlbnQgYXVkaW8gcHJvZHVjZXIuXG4gICAqIEBwYXJhbSB7VHJhbnNwb3J0fSBwYXJhbXMucGFyYW1ldGVycy5wcm9kdWNlclRyYW5zcG9ydCAtIFRoZSB0cmFuc3BvcnQgdXNlZCB0byBwcm9kdWNlIGF1ZGlvIGRhdGEuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IHBhcmFtcy5wYXJhbWV0ZXJzLnVwZGF0ZUF1ZGlvUHJvZHVjZXIgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIGF1ZGlvIHByb2R1Y2VyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXJhbXMucGFyYW1ldGVycy51cGRhdGVQcm9kdWNlclRyYW5zcG9ydCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcHJvZHVjZXIgdHJhbnNwb3J0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYXVkaW8gdHJhbnNwb3J0IGlzIHN1Y2Nlc3NmdWxseSBjb25uZWN0ZWQuXG4gICAqXG4gICAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgY29ubmVjdGlvbiBmYWlscy5cbiAgICovXG5cbiAgYXN5bmMgY29ubmVjdFNlbmRUcmFuc3BvcnRBdWRpbyh7XG4gICAgYXVkaW9QYXJhbXMsXG4gICAgcGFyYW1ldGVycyxcbiAgfTogQ29ubmVjdFNlbmRUcmFuc3BvcnRBdWRpb09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgbGV0IHsgYXVkaW9Qcm9kdWNlciwgcHJvZHVjZXJUcmFuc3BvcnQsIHVwZGF0ZUF1ZGlvUHJvZHVjZXIsIHVwZGF0ZVByb2R1Y2VyVHJhbnNwb3J0IH0gPVxuICAgICAgICBwYXJhbWV0ZXJzO1xuXG4gICAgICAvLyBDb25uZWN0IHRoZSBzZW5kIHRyYW5zcG9ydCBmb3IgYXVkaW8gYnkgcHJvZHVjaW5nIGF1ZGlvIGRhdGFcbiAgICAgIGlmIChwcm9kdWNlclRyYW5zcG9ydCkge1xuICAgICAgICBhdWRpb1Byb2R1Y2VyID0gYXdhaXQgcHJvZHVjZXJUcmFuc3BvcnQucHJvZHVjZShhdWRpb1BhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb2R1Y2VyIHRyYW5zcG9ydCBpcyBudWxsJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgYXVkaW8gcHJvZHVjZXIgYW5kIHByb2R1Y2VyIHRyYW5zcG9ydCBvYmplY3RzXG4gICAgICB1cGRhdGVBdWRpb1Byb2R1Y2VyKGF1ZGlvUHJvZHVjZXIpO1xuICAgICAgdXBkYXRlUHJvZHVjZXJUcmFuc3BvcnQocHJvZHVjZXJUcmFuc3BvcnQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnY29ubmVjdFNlbmRUcmFuc3BvcnRBdWRpbyBlcnJvcicsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,62 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ConnectSendTransportScreen {
4
- /**
5
- * Connects and sets up the screen sharing transport for sending video streams.
6
- *
7
- * @param {Object} options - The options for connecting the screen transport.
8
- * @param {MediaStream} options.stream - The media stream containing the screen video track.
9
- * @param {ConnectSendTransportScreenOptions} options.parameters - The parameters required for setting up the transport.
10
- * @param {Producer} options.parameters.screenProducer - The screen producer object.
11
- * @param {Device} options.parameters.device - The device object containing RTP capabilities.
12
- * @param {Promise<ScreenParams>} options.parameters.screenParams - A promise resolving to screen share parameters.
13
- * @param {Transport} options.parameters.producerTransport - The transport object used for producing the screen share.
14
- * @param {Params} options.parameters.params - The parameters for producing the screen share.
15
- * @param {Function} options.parameters.updateScreenProducer - Function to update the screen producer object.
16
- * @param {Function} options.parameters.updateProducerTransport - Function to update the producer transport object.
17
- * @param {Function} options.parameters.getUpdatedAllParams - Function to fetch updated device information.
18
- *
19
- * @returns {Promise<void>} A promise that resolves when the screen transport is successfully connected and set up.
20
- *
21
- * @throws Will throw an error if the connection or setup process fails.
22
- */
23
- async connectSendTransportScreen({ stream, parameters, }) {
24
- try {
25
- let { screenProducer, device, screenParams, producerTransport, params, updateScreenProducer, updateProducerTransport, } = parameters;
26
- device = parameters.getUpdatedAllParams().device;
27
- // Connect the send transport for screen share by producing screen video data
28
- params = screenParams;
29
- // Find VP9 codec for screen share
30
- if (!device || !device.rtpCapabilities || !device.rtpCapabilities.codecs) {
31
- throw new Error('Device or its RTP capabilities are not available.');
32
- }
33
- let codec = device.rtpCapabilities.codecs.find((codec) => codec.mimeType.toLowerCase() === 'video/vp9' && codec.kind === 'video');
34
- // Produce screen share data using the producer transport
35
- if (!producerTransport) {
36
- throw new Error('Producer transport is not available.');
37
- }
38
- screenProducer = await producerTransport.produce({
39
- track: stream?.getVideoTracks()[0],
40
- ...params,
41
- codec: codec,
42
- appData: { mediaTag: 'screen-video' },
43
- });
44
- // Update the screen producer and producer transport objects
45
- updateScreenProducer(screenProducer);
46
- updateProducerTransport(producerTransport);
47
- }
48
- catch (error) {
49
- console.log('connectSendTransportScreen error', error);
50
- throw error;
51
- }
52
- }
53
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectSendTransportScreen, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectSendTransportScreen, providedIn: 'root' });
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConnectSendTransportScreen, decorators: [{
57
- type: Injectable,
58
- args: [{
59
- providedIn: 'root',
60
- }]
61
- }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdC1zZW5kLXRyYW5zcG9ydC1zY3JlZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvY29ubmVjdC1zZW5kLXRyYW5zcG9ydC1zY3JlZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTJCM0MsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBQ0gsS0FBSyxDQUFDLDBCQUEwQixDQUFDLEVBQy9CLE1BQU0sRUFDTixVQUFVLEdBQ3dCO1FBQ2xDLElBQUksQ0FBQztZQUNILElBQUksRUFDRixjQUFjLEVBQ2QsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLG9CQUFvQixFQUNwQix1QkFBdUIsR0FDeEIsR0FBRyxVQUFVLENBQUM7WUFFZixNQUFNLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2pELDZFQUE2RTtZQUM3RSxNQUFNLEdBQUcsWUFBWSxDQUFDO1lBRXRCLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pFLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBRUQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM1QyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQ3ZGLENBQUM7WUFFRix5REFBeUQ7WUFDekQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBRUQsY0FBYyxHQUFHLE1BQU0saUJBQWlCLENBQUMsT0FBTyxDQUFDO2dCQUMvQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbEMsR0FBRyxNQUFNO2dCQUNULEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7YUFDdEMsQ0FBQyxDQUFDO1lBRUgsNERBQTREO1lBQzVELG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7dUdBbkVVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGNBRnpCLE1BQU07OzJGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc3BvcnQsIFByb2R1Y2VyLCBEZXZpY2UsIFByb2R1Y2VyT3B0aW9ucyB9IGZyb20gJ21lZGlhc291cC1jbGllbnQvbGliL3R5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW5QYXJhbWV0ZXJzIHtcbiAgc2NyZWVuUHJvZHVjZXI6IFByb2R1Y2VyIHwgbnVsbDtcbiAgZGV2aWNlOiBEZXZpY2UgfCBudWxsO1xuICBzY3JlZW5QYXJhbXM6IFByb2R1Y2VyT3B0aW9ucztcbiAgcHJvZHVjZXJUcmFuc3BvcnQ6IFRyYW5zcG9ydCB8IG51bGw7XG4gIHBhcmFtczogUHJvZHVjZXJPcHRpb25zO1xuICB1cGRhdGVTY3JlZW5Qcm9kdWNlcjogKHByb2R1Y2VyOiBQcm9kdWNlciB8IG51bGwpID0+IHZvaWQ7XG4gIHVwZGF0ZVByb2R1Y2VyVHJhbnNwb3J0OiAodHJhbnNwb3J0OiBUcmFuc3BvcnQgfCBudWxsKSA9PiB2b2lkO1xuXG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IENvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55OyAvLyBFeHRlbmRhYmxlIGZvciBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlbk9wdGlvbnMge1xuICBzdHJlYW06IE1lZGlhU3RyZWFtIHwgbnVsbDtcbiAgcGFyYW1ldGVyczogQ29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW5QYXJhbWV0ZXJzO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBDb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlblR5cGUgPSAoXG4gIG9wdGlvbnM6IENvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuT3B0aW9ucyxcbikgPT4gUHJvbWlzZTx2b2lkPjtcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlbiB7XG4gIC8qKlxuICAgKiBDb25uZWN0cyBhbmQgc2V0cyB1cCB0aGUgc2NyZWVuIHNoYXJpbmcgdHJhbnNwb3J0IGZvciBzZW5kaW5nIHZpZGVvIHN0cmVhbXMuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGNvbm5lY3RpbmcgdGhlIHNjcmVlbiB0cmFuc3BvcnQuXG4gICAqIEBwYXJhbSB7TWVkaWFTdHJlYW19IG9wdGlvbnMuc3RyZWFtIC0gVGhlIG1lZGlhIHN0cmVhbSBjb250YWluaW5nIHRoZSBzY3JlZW4gdmlkZW8gdHJhY2suXG4gICAqIEBwYXJhbSB7Q29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW5PcHRpb25zfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyByZXF1aXJlZCBmb3Igc2V0dGluZyB1cCB0aGUgdHJhbnNwb3J0LlxuICAgKiBAcGFyYW0ge1Byb2R1Y2VyfSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuUHJvZHVjZXIgLSBUaGUgc2NyZWVuIHByb2R1Y2VyIG9iamVjdC5cbiAgICogQHBhcmFtIHtEZXZpY2V9IG9wdGlvbnMucGFyYW1ldGVycy5kZXZpY2UgLSBUaGUgZGV2aWNlIG9iamVjdCBjb250YWluaW5nIFJUUCBjYXBhYmlsaXRpZXMuXG4gICAqIEBwYXJhbSB7UHJvbWlzZTxTY3JlZW5QYXJhbXM+fSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuUGFyYW1zIC0gQSBwcm9taXNlIHJlc29sdmluZyB0byBzY3JlZW4gc2hhcmUgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtUcmFuc3BvcnR9IG9wdGlvbnMucGFyYW1ldGVycy5wcm9kdWNlclRyYW5zcG9ydCAtIFRoZSB0cmFuc3BvcnQgb2JqZWN0IHVzZWQgZm9yIHByb2R1Y2luZyB0aGUgc2NyZWVuIHNoYXJlLlxuICAgKiBAcGFyYW0ge1BhcmFtc30gb3B0aW9ucy5wYXJhbWV0ZXJzLnBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBwcm9kdWNpbmcgdGhlIHNjcmVlbiBzaGFyZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZVNjcmVlblByb2R1Y2VyIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBzY3JlZW4gcHJvZHVjZXIgb2JqZWN0LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlUHJvZHVjZXJUcmFuc3BvcnQgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHByb2R1Y2VyIHRyYW5zcG9ydCBvYmplY3QuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zIC0gRnVuY3Rpb24gdG8gZmV0Y2ggdXBkYXRlZCBkZXZpY2UgaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzY3JlZW4gdHJhbnNwb3J0IGlzIHN1Y2Nlc3NmdWxseSBjb25uZWN0ZWQgYW5kIHNldCB1cC5cbiAgICpcbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBjb25uZWN0aW9uIG9yIHNldHVwIHByb2Nlc3MgZmFpbHMuXG4gICAqL1xuICBhc3luYyBjb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlbih7XG4gICAgc3RyZWFtLFxuICAgIHBhcmFtZXRlcnMsXG4gIH06IENvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBsZXQge1xuICAgICAgICBzY3JlZW5Qcm9kdWNlcixcbiAgICAgICAgZGV2aWNlLFxuICAgICAgICBzY3JlZW5QYXJhbXMsXG4gICAgICAgIHByb2R1Y2VyVHJhbnNwb3J0LFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHVwZGF0ZVNjcmVlblByb2R1Y2VyLFxuICAgICAgICB1cGRhdGVQcm9kdWNlclRyYW5zcG9ydCxcbiAgICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICBkZXZpY2UgPSBwYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMoKS5kZXZpY2U7XG4gICAgICAvLyBDb25uZWN0IHRoZSBzZW5kIHRyYW5zcG9ydCBmb3Igc2NyZWVuIHNoYXJlIGJ5IHByb2R1Y2luZyBzY3JlZW4gdmlkZW8gZGF0YVxuICAgICAgcGFyYW1zID0gc2NyZWVuUGFyYW1zO1xuXG4gICAgICAvLyBGaW5kIFZQOSBjb2RlYyBmb3Igc2NyZWVuIHNoYXJlXG4gICAgICBpZiAoIWRldmljZSB8fCAhZGV2aWNlLnJ0cENhcGFiaWxpdGllcyB8fCAhZGV2aWNlLnJ0cENhcGFiaWxpdGllcy5jb2RlY3MpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXZpY2Ugb3IgaXRzIFJUUCBjYXBhYmlsaXRpZXMgYXJlIG5vdCBhdmFpbGFibGUuJyk7XG4gICAgICB9XG5cbiAgICAgIGxldCBjb2RlYyA9IGRldmljZS5ydHBDYXBhYmlsaXRpZXMuY29kZWNzLmZpbmQoXG4gICAgICAgIChjb2RlYzogYW55KSA9PiBjb2RlYy5taW1lVHlwZS50b0xvd2VyQ2FzZSgpID09PSAndmlkZW8vdnA5JyAmJiBjb2RlYy5raW5kID09PSAndmlkZW8nLFxuICAgICAgKTtcblxuICAgICAgLy8gUHJvZHVjZSBzY3JlZW4gc2hhcmUgZGF0YSB1c2luZyB0aGUgcHJvZHVjZXIgdHJhbnNwb3J0XG4gICAgICBpZiAoIXByb2R1Y2VyVHJhbnNwb3J0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUHJvZHVjZXIgdHJhbnNwb3J0IGlzIG5vdCBhdmFpbGFibGUuJyk7XG4gICAgICB9XG5cbiAgICAgIHNjcmVlblByb2R1Y2VyID0gYXdhaXQgcHJvZHVjZXJUcmFuc3BvcnQucHJvZHVjZSh7XG4gICAgICAgIHRyYWNrOiBzdHJlYW0/LmdldFZpZGVvVHJhY2tzKClbMF0sXG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgY29kZWM6IGNvZGVjLFxuICAgICAgICBhcHBEYXRhOiB7IG1lZGlhVGFnOiAnc2NyZWVuLXZpZGVvJyB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgc2NyZWVuIHByb2R1Y2VyIGFuZCBwcm9kdWNlciB0cmFuc3BvcnQgb2JqZWN0c1xuICAgICAgdXBkYXRlU2NyZWVuUHJvZHVjZXIoc2NyZWVuUHJvZHVjZXIpO1xuICAgICAgdXBkYXRlUHJvZHVjZXJUcmFuc3BvcnQocHJvZHVjZXJUcmFuc3BvcnQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnY29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW4gZXJyb3InLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==