mediasfu-angular 1.0.2 → 2.0.1

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 (281) hide show
  1. package/README.md +686 -578
  2. package/dist/README.md +677 -578
  3. package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
  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/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
  7. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
  8. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
  9. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
  10. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
  11. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
  12. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
  13. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
  14. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
  15. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
  16. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
  17. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  18. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
  19. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
  20. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
  21. package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
  22. package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
  23. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
  24. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
  25. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
  26. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
  27. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
  28. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
  29. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
  30. package/dist/lib/consumers/trigger.service.d.ts +3 -0
  31. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
  32. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
  33. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
  34. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
  35. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
  36. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  37. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  38. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  39. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  40. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  41. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
  42. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  43. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
  44. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
  45. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
  46. package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
  47. package/dist/public-api.d.ts +11 -1
  48. package/package.json +17 -20
  49. package/dist/esm2022/lib/@types/types.mjs +0 -2
  50. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
  51. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
  52. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
  53. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  54. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
  55. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
  56. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
  57. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
  58. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
  59. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
  60. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  61. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
  62. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
  63. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
  64. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
  65. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
  66. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
  67. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
  68. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
  69. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
  70. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
  71. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
  72. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
  73. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
  74. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
  75. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
  76. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
  77. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
  78. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  79. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
  80. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
  81. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
  82. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
  83. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
  84. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
  85. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
  86. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
  87. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
  88. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
  89. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
  90. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
  91. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
  92. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
  93. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
  94. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
  95. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
  96. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
  97. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
  98. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
  99. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
  100. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
  101. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
  102. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
  103. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
  104. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
  105. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
  106. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
  107. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
  108. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
  109. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
  110. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
  111. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
  112. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
  113. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
  114. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
  115. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
  116. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
  117. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
  118. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
  119. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
  120. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
  121. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
  122. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
  123. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
  124. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
  125. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
  126. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
  127. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
  128. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
  129. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
  130. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
  131. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
  132. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
  133. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
  134. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
  135. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
  136. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
  137. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
  138. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
  139. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
  140. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
  141. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
  142. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
  143. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
  144. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
  145. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
  146. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
  147. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
  148. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
  149. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
  150. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
  151. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
  152. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
  153. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
  154. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
  155. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
  156. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
  157. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
  158. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
  159. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
  160. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
  161. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
  162. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  163. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
  164. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
  165. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
  166. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
  167. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
  168. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
  169. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
  170. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
  171. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
  172. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
  173. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
  174. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
  175. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
  176. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
  177. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
  178. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
  179. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
  180. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
  181. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
  182. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
  183. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
  184. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
  185. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
  186. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
  187. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
  188. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
  189. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
  190. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
  191. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
  192. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
  193. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
  194. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
  195. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
  196. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
  197. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
  198. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
  199. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
  200. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
  201. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
  202. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
  203. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
  204. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
  205. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
  206. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
  207. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
  208. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
  209. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
  210. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
  211. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
  212. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
  213. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
  214. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
  215. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
  216. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
  217. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
  218. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
  219. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
  220. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
  221. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
  222. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
  223. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
  224. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
  225. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
  226. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
  227. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
  228. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
  229. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
  230. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  231. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
  232. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
  233. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
  234. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
  235. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
  236. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
  237. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
  238. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
  239. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
  240. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
  241. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
  242. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
  243. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
  244. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
  245. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
  246. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
  247. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
  248. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
  249. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
  250. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
  251. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
  252. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
  253. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
  254. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
  255. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
  256. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
  257. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
  258. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
  259. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
  260. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
  261. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
  262. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
  263. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
  264. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
  265. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
  266. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
  267. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
  268. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
  269. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
  270. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
  271. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
  272. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
  273. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
  274. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
  275. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
  276. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
  277. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
  278. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
  279. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
  280. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  281. package/dist/esm2022/public-api.mjs +0 -187
@@ -1,106 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Generates the content for a specific page.
5
- *
6
- * @param {GeneratePageContentOptions} options - The options for generating page content.
7
- * @param {number | string} options.page - The page number to generate content for.
8
- * @param {GeneratePageContentParameters} options.parameters - The parameters required for generating content.
9
- * @param {Array<(Participant | Stream)[]>} options.parameters.paginatedStreams - The streams to be paginated.
10
- * @param {number} options.parameters.currentUserPage - The current page of the user.
11
- * @param {Function} options.parameters.updateMainWindow - Function to update the main window flag.
12
- * @param {Function} options.parameters.updateCurrentUserPage - Function to update the current user page.
13
- * @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window update flag.
14
- * @param {Function} options.parameters.dispStreams - Function to display streams for the specified page.
15
- * @param {number} [options.breakRoom=-1] - The break room identifier.
16
- * @param {boolean} [options.inBreakRoom=false] - Flag indicating if the user is in a break room.
17
- *
18
- * @returns {Promise<void>} A promise that resolves when the content generation is complete.
19
- *
20
- * @throws {Error} Throws an error if content generation fails.
21
- *
22
- * @example
23
- * ```typescript
24
- * const options = {
25
- * page: 1,
26
- * parameters: {
27
- * paginatedStreams: [
28
- * // Page 0 streams
29
- * [stream1, stream2],
30
- * // Page 1 streams
31
- * [stream3, stream4],
32
- * ],
33
- * currentUserPage: 0,
34
- * updateMainWindow: false,
35
- * updateCurrentUserPage: (page) => { console.log(`Current page updated to: ${page}`); },
36
- * updateUpdateMainWindow: (flag) => { console.log(`Main window update flag: ${flag}`); },
37
- * dispStreams: async ({ lStreams, ind }) => {
38
- * console.log(`Displaying streams for page ${ind}:`, lStreams);
39
- * },
40
- * getUpdatedAllParams: () => options.parameters,
41
- * },
42
- * breakRoom: -1,
43
- * inBreakRoom: false,
44
- * };
45
- *
46
- * const generatePageContentService = new GeneratePageContent();
47
- * await generatePageContentService.generatePageContent(options);
48
- * ```
49
- */
50
- export class GeneratePageContent {
51
- /**
52
- * Generates the content for a specific page.
53
- *
54
- * @param {Object} options - The options for generating page content.
55
- * @param {number | string} options.page - The page number to generate content for.
56
- * @param {Object} options.parameters - The parameters required for generating content.
57
- * @param {Array} options.parameters.paginatedStreams - The streams to be paginated.
58
- * @param {number} options.parameters.currentUserPage - The current page of the user.
59
- * @param {Function} options.parameters.updateMainWindow - Function to update the main window flag.
60
- * @param {Function} options.parameters.updateCurrentUserPage - Function to update the current user page.
61
- * @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window update flag.
62
- * @param {Function} options.parameters.dispStreams - Function to display streams for the specified page.
63
- * @param {number} [options.breakRoom=-1] - The break room identifier.
64
- * @param {boolean} [options.inBreakRoom=false] - Flag indicating if the user is in a break room.
65
- * @returns {Promise<void>} A promise that resolves when the content generation is complete.
66
- * @throws {Error} Throws an error if content generation fails.
67
- */
68
- async generatePageContent({ page, parameters, breakRoom = -1, inBreakRoom = false, }) {
69
- try {
70
- // Destructure parameters
71
- parameters = parameters.getUpdatedAllParams();
72
- let { paginatedStreams, currentUserPage, updateMainWindow, updateCurrentUserPage, updateUpdateMainWindow,
73
- // mediasfu functions
74
- dispStreams, } = parameters;
75
- // Convert page to an integer
76
- page = parseInt(page.toString(), 10);
77
- // Update current user page
78
- currentUserPage = page;
79
- updateCurrentUserPage(currentUserPage);
80
- // Update main window flag
81
- updateMainWindow = true;
82
- updateUpdateMainWindow(updateMainWindow);
83
- // Display streams for the specified page
84
- await dispStreams({
85
- lStreams: paginatedStreams[page],
86
- ind: page,
87
- parameters,
88
- breakRoom,
89
- inBreakRoom,
90
- });
91
- }
92
- catch (error) {
93
- // Handle errors during content generation
94
- console.log('Error generating page content:', error.message);
95
- }
96
- }
97
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneratePageContent, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
98
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneratePageContent, providedIn: 'root' });
99
- }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneratePageContent, decorators: [{
101
- type: Injectable,
102
- args: [{
103
- providedIn: 'root',
104
- }]
105
- }] });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGFnZS1jb250ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL2dlbmVyYXRlLXBhZ2UtY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBeUJ6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDRztBQU1MLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFDeEIsSUFBSSxFQUNKLFVBQVUsRUFDVixTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQ2QsV0FBVyxHQUFHLEtBQUssR0FDUTtRQUMzQixJQUFJLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRTlDLElBQUksRUFDRixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsc0JBQXNCO1lBQ3RCLHFCQUFxQjtZQUNyQixXQUFXLEdBQ1osR0FBRyxVQUFVLENBQUM7WUFFZiw2QkFBNkI7WUFDN0IsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFckMsMkJBQTJCO1lBQzNCLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDdkIscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFdkMsMEJBQTBCO1lBQzFCLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUN4QixzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRXpDLHlDQUF5QztZQUN6QyxNQUFNLFdBQVcsQ0FBQztnQkFDaEIsUUFBUSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDaEMsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsVUFBVTtnQkFDVixTQUFTO2dCQUNULFdBQVc7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztZQUNwQiwwQ0FBMEM7WUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7dUdBN0RVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJ0aWNpcGFudCwgU3RyZWFtLCBEaXNwU3RyZWFtc1R5cGUsIERpc3BTdHJlYW1zUGFyYW1ldGVycyB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUGFnZUNvbnRlbnRQYXJhbWV0ZXJzIGV4dGVuZHMgRGlzcFN0cmVhbXNQYXJhbWV0ZXJzIHtcbiAgcGFnaW5hdGVkU3RyZWFtczogKFBhcnRpY2lwYW50IHwgU3RyZWFtKVtdW107XG4gIGN1cnJlbnRVc2VyUGFnZTogbnVtYmVyO1xuICB1cGRhdGVNYWluV2luZG93OiBib29sZWFuO1xuICB1cGRhdGVDdXJyZW50VXNlclBhZ2U6IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG4gIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3c6IChmbGFnOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBkaXNwU3RyZWFtczogRGlzcFN0cmVhbXNUeXBlO1xuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBHZW5lcmF0ZVBhZ2VDb250ZW50UGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUGFnZUNvbnRlbnRPcHRpb25zIHtcbiAgcGFnZTogbnVtYmVyIHwgc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBHZW5lcmF0ZVBhZ2VDb250ZW50UGFyYW1ldGVycztcbiAgYnJlYWtSb29tPzogbnVtYmVyO1xuICBpbkJyZWFrUm9vbT86IGJvb2xlYW47XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEdlbmVyYXRlUGFnZUNvbnRlbnRUeXBlID0gKG9wdGlvbnM6IEdlbmVyYXRlUGFnZUNvbnRlbnRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGNvbnRlbnQgZm9yIGEgc3BlY2lmaWMgcGFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtHZW5lcmF0ZVBhZ2VDb250ZW50T3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHBhZ2UgY29udGVudC5cbiAgICogQHBhcmFtIHtudW1iZXIgfCBzdHJpbmd9IG9wdGlvbnMucGFnZSAtIFRoZSBwYWdlIG51bWJlciB0byBnZW5lcmF0ZSBjb250ZW50IGZvci5cbiAgICogQHBhcmFtIHtHZW5lcmF0ZVBhZ2VDb250ZW50UGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGdlbmVyYXRpbmcgY29udGVudC5cbiAgICogQHBhcmFtIHtBcnJheTwoUGFydGljaXBhbnQgfCBTdHJlYW0pW10+fSBvcHRpb25zLnBhcmFtZXRlcnMucGFnaW5hdGVkU3RyZWFtcyAtIFRoZSBzdHJlYW1zIHRvIGJlIHBhZ2luYXRlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5jdXJyZW50VXNlclBhZ2UgLSBUaGUgY3VycmVudCBwYWdlIG9mIHRoZSB1c2VyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlTWFpbldpbmRvdyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgbWFpbiB3aW5kb3cgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZUN1cnJlbnRVc2VyUGFnZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgY3VycmVudCB1c2VyIHBhZ2UuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVVcGRhdGVNYWluV2luZG93IC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBtYWluIHdpbmRvdyB1cGRhdGUgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmRpc3BTdHJlYW1zIC0gRnVuY3Rpb24gdG8gZGlzcGxheSBzdHJlYW1zIGZvciB0aGUgc3BlY2lmaWVkIHBhZ2UuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5icmVha1Jvb209LTFdIC0gVGhlIGJyZWFrIHJvb20gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5pbkJyZWFrUm9vbT1mYWxzZV0gLSBGbGFnIGluZGljYXRpbmcgaWYgdGhlIHVzZXIgaXMgaW4gYSBicmVhayByb29tLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBnZW5lcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIGNvbnRlbnQgZ2VuZXJhdGlvbiBmYWlscy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBvcHRpb25zID0ge1xuICAgKiAgIHBhZ2U6IDEsXG4gICAqICAgcGFyYW1ldGVyczoge1xuICAgKiAgICAgcGFnaW5hdGVkU3RyZWFtczogW1xuICAgKiAgICAgICAvLyBQYWdlIDAgc3RyZWFtc1xuICAgKiAgICAgICBbc3RyZWFtMSwgc3RyZWFtMl0sXG4gICAqICAgICAgIC8vIFBhZ2UgMSBzdHJlYW1zXG4gICAqICAgICAgIFtzdHJlYW0zLCBzdHJlYW00XSxcbiAgICogICAgIF0sXG4gICAqICAgICBjdXJyZW50VXNlclBhZ2U6IDAsXG4gICAqICAgICB1cGRhdGVNYWluV2luZG93OiBmYWxzZSxcbiAgICogICAgIHVwZGF0ZUN1cnJlbnRVc2VyUGFnZTogKHBhZ2UpID0+IHsgY29uc29sZS5sb2coYEN1cnJlbnQgcGFnZSB1cGRhdGVkIHRvOiAke3BhZ2V9YCk7IH0sXG4gICAqICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93OiAoZmxhZykgPT4geyBjb25zb2xlLmxvZyhgTWFpbiB3aW5kb3cgdXBkYXRlIGZsYWc6ICR7ZmxhZ31gKTsgfSxcbiAgICogICAgIGRpc3BTdHJlYW1zOiBhc3luYyAoeyBsU3RyZWFtcywgaW5kIH0pID0+IHtcbiAgICogICAgICAgY29uc29sZS5sb2coYERpc3BsYXlpbmcgc3RyZWFtcyBmb3IgcGFnZSAke2luZH06YCwgbFN0cmVhbXMpO1xuICAgKiAgICAgfSxcbiAgICogICAgIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IG9wdGlvbnMucGFyYW1ldGVycyxcbiAgICogICB9LFxuICAgKiAgIGJyZWFrUm9vbTogLTEsXG4gICAqICAgaW5CcmVha1Jvb206IGZhbHNlLFxuICAgKiB9O1xuICAgKlxuICAgKiBjb25zdCBnZW5lcmF0ZVBhZ2VDb250ZW50U2VydmljZSA9IG5ldyBHZW5lcmF0ZVBhZ2VDb250ZW50KCk7XG4gICAqIGF3YWl0IGdlbmVyYXRlUGFnZUNvbnRlbnRTZXJ2aWNlLmdlbmVyYXRlUGFnZUNvbnRlbnQob3B0aW9ucyk7XG4gICAqIGBgYFxuICAgKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVQYWdlQ29udGVudCB7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGNvbnRlbnQgZm9yIGEgc3BlY2lmaWMgcGFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyBwYWdlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgc3RyaW5nfSBvcHRpb25zLnBhZ2UgLSBUaGUgcGFnZSBudW1iZXIgdG8gZ2VuZXJhdGUgY29udGVudCBmb3IuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgZ2VuZXJhdGluZyBjb250ZW50LlxuICAgKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLnBhcmFtZXRlcnMucGFnaW5hdGVkU3RyZWFtcyAtIFRoZSBzdHJlYW1zIHRvIGJlIHBhZ2luYXRlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5jdXJyZW50VXNlclBhZ2UgLSBUaGUgY3VycmVudCBwYWdlIG9mIHRoZSB1c2VyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlTWFpbldpbmRvdyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgbWFpbiB3aW5kb3cgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZUN1cnJlbnRVc2VyUGFnZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgY3VycmVudCB1c2VyIHBhZ2UuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVVcGRhdGVNYWluV2luZG93IC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBtYWluIHdpbmRvdyB1cGRhdGUgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmRpc3BTdHJlYW1zIC0gRnVuY3Rpb24gdG8gZGlzcGxheSBzdHJlYW1zIGZvciB0aGUgc3BlY2lmaWVkIHBhZ2UuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5icmVha1Jvb209LTFdIC0gVGhlIGJyZWFrIHJvb20gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5pbkJyZWFrUm9vbT1mYWxzZV0gLSBGbGFnIGluZGljYXRpbmcgaWYgdGhlIHVzZXIgaXMgaW4gYSBicmVhayByb29tLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBnZW5lcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIGNvbnRlbnQgZ2VuZXJhdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIGdlbmVyYXRlUGFnZUNvbnRlbnQoe1xuICAgIHBhZ2UsXG4gICAgcGFyYW1ldGVycyxcbiAgICBicmVha1Jvb20gPSAtMSxcbiAgICBpbkJyZWFrUm9vbSA9IGZhbHNlLFxuICB9OiBHZW5lcmF0ZVBhZ2VDb250ZW50T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBEZXN0cnVjdHVyZSBwYXJhbWV0ZXJzXG4gICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG5cbiAgICAgIGxldCB7XG4gICAgICAgIHBhZ2luYXRlZFN0cmVhbXMsXG4gICAgICAgIGN1cnJlbnRVc2VyUGFnZSxcbiAgICAgICAgdXBkYXRlTWFpbldpbmRvdyxcbiAgICAgICAgdXBkYXRlQ3VycmVudFVzZXJQYWdlLFxuICAgICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93LFxuICAgICAgICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgICAgICAgZGlzcFN0cmVhbXMsXG4gICAgICB9ID0gcGFyYW1ldGVycztcblxuICAgICAgLy8gQ29udmVydCBwYWdlIHRvIGFuIGludGVnZXJcbiAgICAgIHBhZ2UgPSBwYXJzZUludChwYWdlLnRvU3RyaW5nKCksIDEwKTtcblxuICAgICAgLy8gVXBkYXRlIGN1cnJlbnQgdXNlciBwYWdlXG4gICAgICBjdXJyZW50VXNlclBhZ2UgPSBwYWdlO1xuICAgICAgdXBkYXRlQ3VycmVudFVzZXJQYWdlKGN1cnJlbnRVc2VyUGFnZSk7XG5cbiAgICAgIC8vIFVwZGF0ZSBtYWluIHdpbmRvdyBmbGFnXG4gICAgICB1cGRhdGVNYWluV2luZG93ID0gdHJ1ZTtcbiAgICAgIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3codXBkYXRlTWFpbldpbmRvdyk7XG5cbiAgICAgIC8vIERpc3BsYXkgc3RyZWFtcyBmb3IgdGhlIHNwZWNpZmllZCBwYWdlXG4gICAgICBhd2FpdCBkaXNwU3RyZWFtcyh7XG4gICAgICAgIGxTdHJlYW1zOiBwYWdpbmF0ZWRTdHJlYW1zW3BhZ2VdLFxuICAgICAgICBpbmQ6IHBhZ2UsXG4gICAgICAgIHBhcmFtZXRlcnMsXG4gICAgICAgIGJyZWFrUm9vbSxcbiAgICAgICAgaW5CcmVha1Jvb20sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGR1cmluZyBjb250ZW50IGdlbmVyYXRpb25cbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBnZW5lcmF0aW5nIHBhZ2UgY29udGVudDonLCBlcnJvci5tZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,120 +0,0 @@
1
- // estimate.service.ts
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Estimates the number of rows and columns for a given set of parameters.
6
- *
7
- * @param {GetEstimateOptions} options - The options for the estimation.
8
- * @param {number} options.n - The number of items to estimate for.
9
- * @param {GetEstimateParameters} options.parameters - The parameters for the estimation.
10
- * @param {number} options.parameters.fixedPageLimit - The fixed page limit.
11
- * @param {number} options.parameters.screenPageLimit - The screen page limit.
12
- * @param {boolean} options.parameters.shareScreenStarted - Indicates if screen sharing has started.
13
- * @param {boolean} [options.parameters.shared=false] - Indicates if sharing is active.
14
- * @param {EventType} options.parameters.eventType - The type of event (e.g., "chat", "conference").
15
- * @param {boolean} options.parameters.removeAltGrid - Indicates if the alternate grid should be removed.
16
- * @param {boolean} options.parameters.isWideScreen - Indicates if the screen is wide.
17
- * @param {boolean} options.parameters.isMediumScreen - Indicates if the screen is medium-sized.
18
- * @param {Function} options.parameters.updateRemoveAltGrid - Function to update the removeAltGrid parameter.
19
- * @param {CalculateRowsAndColumnsType} options.parameters.calculateRowsAndColumns - Function to calculate rows and columns.
20
- *
21
- * @returns {[number, number, number]} An array containing:
22
- * - Estimated number of items,
23
- * - Estimated number of rows,
24
- * - Estimated number of columns.
25
- *
26
- * @throws Will log an error message if an error occurs during estimation.
27
- *
28
- * @example
29
- * ```typescript
30
- * const estimateOptions = {
31
- * n: 20,
32
- * parameters: {
33
- * fixedPageLimit: 10,
34
- * screenPageLimit: 15,
35
- * shareScreenStarted: false,
36
- * shared: false,
37
- * eventType: 'conference',
38
- * removeAltGrid: false,
39
- * isWideScreen: true,
40
- * isMediumScreen: false,
41
- * updateRemoveAltGrid: (value) => console.log(`Remove Alt Grid: ${value}`),
42
- * calculateRowsAndColumns: ({ n }) => {
43
- * const sqrt = Math.sqrt(n);
44
- * return [Math.ceil(sqrt), Math.floor(sqrt)];
45
- * },
46
- * },
47
- * };
48
- *
49
- * const estimateService = new GetEstimate();
50
- * const [estimatedItems, estimatedRows, estimatedCols] = estimateService.getEstimate(estimateOptions);
51
- * console.log(`Estimated Items: ${estimatedItems}, Rows: ${estimatedRows}, Columns: ${estimatedCols}`);
52
- * ```
53
- */
54
- export class GetEstimate {
55
- /**
56
- * Estimates the number of rows and columns for a given set of parameters.
57
- *
58
- * @param {GetEstimateOptions} options - The options for the estimation.
59
- * @param {number} options.n - The number of items to estimate for.
60
- * @param {Object} options.parameters - The parameters for the estimation.
61
- * @param {number} options.parameters.fixedPageLimit - The fixed page limit.
62
- * @param {number} options.parameters.screenPageLimit - The screen page limit.
63
- * @param {boolean} options.parameters.shareScreenStarted - Indicates if screen sharing has started.
64
- * @param {boolean} options.parameters.shared - Indicates if sharing is active.
65
- * @param {string} options.parameters.eventType - The type of event (e.g., "chat", "conference").
66
- * @param {boolean} options.parameters.removeAltGrid - Indicates if the alternate grid should be removed.
67
- * @param {boolean} options.parameters.isWideScreen - Indicates if the screen is wide.
68
- * @param {boolean} options.parameters.isMediumScreen - Indicates if the screen is medium-sized.
69
- * @param {Function} options.parameters.updateRemoveAltGrid - Function to update the removeAltGrid parameter.
70
- * @param {Function} options.parameters.calculateRowsAndColumns - Function to calculate rows and columns.
71
- *
72
- * @returns {number[]} An array containing the estimated number of items, rows, and columns.
73
- *
74
- * @throws Will log an error message if an error occurs during estimation.
75
- */
76
- getEstimate({ n, parameters }) {
77
- try {
78
- // Destructure parameters
79
- let { fixedPageLimit, screenPageLimit, shareScreenStarted, shared, eventType, removeAltGrid, isWideScreen, isMediumScreen, updateRemoveAltGrid,
80
- // mediaSfu functions
81
- calculateRowsAndColumns, } = parameters;
82
- // Calculate rows and columns
83
- const [rows, cols] = calculateRowsAndColumns({ n });
84
- // Check conditions for removing alt grid
85
- if (n < fixedPageLimit || ((shareScreenStarted || shared) && n < screenPageLimit + 1)) {
86
- removeAltGrid = true;
87
- updateRemoveAltGrid(removeAltGrid);
88
- // Return estimated values based on screen width
89
- if (!(isMediumScreen || isWideScreen)) {
90
- return eventType === 'chat' ||
91
- (eventType === 'conference' && !(shareScreenStarted || shared))
92
- ? [n, n, 1]
93
- : [n, 1, n];
94
- }
95
- else {
96
- return eventType === 'chat' ||
97
- (eventType === 'conference' && !(shareScreenStarted || shared))
98
- ? [n, 1, n]
99
- : [n, n, 1];
100
- }
101
- }
102
- return [rows * cols, rows, cols];
103
- }
104
- catch (error) {
105
- // Handle errors during estimation
106
- console.log('Error estimating rows and columns:', error.message);
107
- // throw error;
108
- return [0, 0, 0];
109
- }
110
- }
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetEstimate, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
112
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetEstimate, providedIn: 'root' });
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetEstimate, decorators: [{
115
- type: Injectable,
116
- args: [{
117
- providedIn: 'root',
118
- }]
119
- }] });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVzdGltYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL2dldC1lc3RpbWF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQjtBQUN0QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTZCekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpREc7QUFNTCxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDSCxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFzQjtRQUMvQyxJQUFJLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsSUFBSSxFQUNGLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEVBQ1QsYUFBYSxFQUNiLFlBQVksRUFDWixjQUFjLEVBQ2QsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQix1QkFBdUIsR0FDeEIsR0FBRyxVQUFVLENBQUM7WUFFZiw2QkFBNkI7WUFDN0IsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFcEQseUNBQXlDO1lBQ3pDLElBQUksQ0FBQyxHQUFHLGNBQWMsSUFBSSxDQUFDLENBQUMsa0JBQWtCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0RixhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFFbkMsZ0RBQWdEO2dCQUNoRCxJQUFJLENBQUMsQ0FBQyxjQUFjLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsT0FBTyxTQUFTLEtBQUssTUFBTTt3QkFDekIsQ0FBQyxTQUFTLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLENBQUMsQ0FBQzt3QkFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDaEIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07d0JBQ3pCLENBQUMsU0FBUyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsa0JBQWtCLElBQUksTUFBTSxDQUFDLENBQUM7d0JBQy9ELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLGtDQUFrQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRSxlQUFlO1lBQ2YsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7dUdBcEVVLFdBQVc7MkdBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXN0aW1hdGUuc2VydmljZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDYWxjdWxhdGVSb3dzQW5kQ29sdW1uc1R5cGUsIEV2ZW50VHlwZSB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RXN0aW1hdGVQYXJhbWV0ZXJzIHtcbiAgZml4ZWRQYWdlTGltaXQ6IG51bWJlcjtcbiAgc2NyZWVuUGFnZUxpbWl0OiBudW1iZXI7XG4gIHNoYXJlU2NyZWVuU3RhcnRlZDogYm9vbGVhbjtcbiAgc2hhcmVkPzogYm9vbGVhbjtcbiAgZXZlbnRUeXBlOiBFdmVudFR5cGU7XG4gIHJlbW92ZUFsdEdyaWQ6IGJvb2xlYW47XG4gIGlzV2lkZVNjcmVlbjogYm9vbGVhbjtcbiAgaXNNZWRpdW1TY3JlZW46IGJvb2xlYW47XG4gIHVwZGF0ZVJlbW92ZUFsdEdyaWQ6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcblxuICAvLyBtZWRpYVNmdSBmdW5jdGlvbnNcbiAgY2FsY3VsYXRlUm93c0FuZENvbHVtbnM6IENhbGN1bGF0ZVJvd3NBbmRDb2x1bW5zVHlwZTtcblxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RXN0aW1hdGVPcHRpb25zIHtcbiAgbjogbnVtYmVyO1xuICBwYXJhbWV0ZXJzOiBHZXRFc3RpbWF0ZVBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEdldEVzdGltYXRlVHlwZSA9IChvcHRpb25zOiBHZXRFc3RpbWF0ZU9wdGlvbnMpID0+IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuICAvKipcbiAgICogRXN0aW1hdGVzIHRoZSBudW1iZXIgb2Ygcm93cyBhbmQgY29sdW1ucyBmb3IgYSBnaXZlbiBzZXQgb2YgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtHZXRFc3RpbWF0ZU9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGVzdGltYXRpb24uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLm4gLSBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRvIGVzdGltYXRlIGZvci5cbiAgICogQHBhcmFtIHtHZXRFc3RpbWF0ZVBhcmFtZXRlcnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZXN0aW1hdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5maXhlZFBhZ2VMaW1pdCAtIFRoZSBmaXhlZCBwYWdlIGxpbWl0LlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNjcmVlblBhZ2VMaW1pdCAtIFRoZSBzY3JlZW4gcGFnZSBsaW1pdC5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuc2hhcmVTY3JlZW5TdGFydGVkIC0gSW5kaWNhdGVzIGlmIHNjcmVlbiBzaGFyaW5nIGhhcyBzdGFydGVkLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnBhcmFtZXRlcnMuc2hhcmVkPWZhbHNlXSAtIEluZGljYXRlcyBpZiBzaGFyaW5nIGlzIGFjdGl2ZS5cbiAgICogQHBhcmFtIHtFdmVudFR5cGV9IG9wdGlvbnMucGFyYW1ldGVycy5ldmVudFR5cGUgLSBUaGUgdHlwZSBvZiBldmVudCAoZS5nLiwgXCJjaGF0XCIsIFwiY29uZmVyZW5jZVwiKS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMucmVtb3ZlQWx0R3JpZCAtIEluZGljYXRlcyBpZiB0aGUgYWx0ZXJuYXRlIGdyaWQgc2hvdWxkIGJlIHJlbW92ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzV2lkZVNjcmVlbiAtIEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIHdpZGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzTWVkaXVtU2NyZWVuIC0gSW5kaWNhdGVzIGlmIHRoZSBzY3JlZW4gaXMgbWVkaXVtLXNpemVkLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlUmVtb3ZlQWx0R3JpZCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcmVtb3ZlQWx0R3JpZCBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSB7Q2FsY3VsYXRlUm93c0FuZENvbHVtbnNUeXBlfSBvcHRpb25zLnBhcmFtZXRlcnMuY2FsY3VsYXRlUm93c0FuZENvbHVtbnMgLSBGdW5jdGlvbiB0byBjYWxjdWxhdGUgcm93cyBhbmQgY29sdW1ucy5cbiAgICpcbiAgICogQHJldHVybnMge1tudW1iZXIsIG51bWJlciwgbnVtYmVyXX0gQW4gYXJyYXkgY29udGFpbmluZzpcbiAgICogLSBFc3RpbWF0ZWQgbnVtYmVyIG9mIGl0ZW1zLFxuICAgKiAtIEVzdGltYXRlZCBudW1iZXIgb2Ygcm93cyxcbiAgICogLSBFc3RpbWF0ZWQgbnVtYmVyIG9mIGNvbHVtbnMuXG4gICAqXG4gICAqIEB0aHJvd3MgV2lsbCBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIGVzdGltYXRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgZXN0aW1hdGVPcHRpb25zID0ge1xuICAgKiAgIG46IDIwLFxuICAgKiAgIHBhcmFtZXRlcnM6IHtcbiAgICogICAgIGZpeGVkUGFnZUxpbWl0OiAxMCxcbiAgICogICAgIHNjcmVlblBhZ2VMaW1pdDogMTUsXG4gICAqICAgICBzaGFyZVNjcmVlblN0YXJ0ZWQ6IGZhbHNlLFxuICAgKiAgICAgc2hhcmVkOiBmYWxzZSxcbiAgICogICAgIGV2ZW50VHlwZTogJ2NvbmZlcmVuY2UnLFxuICAgKiAgICAgcmVtb3ZlQWx0R3JpZDogZmFsc2UsXG4gICAqICAgICBpc1dpZGVTY3JlZW46IHRydWUsXG4gICAqICAgICBpc01lZGl1bVNjcmVlbjogZmFsc2UsXG4gICAqICAgICB1cGRhdGVSZW1vdmVBbHRHcmlkOiAodmFsdWUpID0+IGNvbnNvbGUubG9nKGBSZW1vdmUgQWx0IEdyaWQ6ICR7dmFsdWV9YCksXG4gICAqICAgICBjYWxjdWxhdGVSb3dzQW5kQ29sdW1uczogKHsgbiB9KSA9PiB7XG4gICAqICAgICAgIGNvbnN0IHNxcnQgPSBNYXRoLnNxcnQobik7XG4gICAqICAgICAgIHJldHVybiBbTWF0aC5jZWlsKHNxcnQpLCBNYXRoLmZsb29yKHNxcnQpXTtcbiAgICogICAgIH0sXG4gICAqICAgfSxcbiAgICogfTtcbiAgICpcbiAgICogY29uc3QgZXN0aW1hdGVTZXJ2aWNlID0gbmV3IEdldEVzdGltYXRlKCk7XG4gICAqIGNvbnN0IFtlc3RpbWF0ZWRJdGVtcywgZXN0aW1hdGVkUm93cywgZXN0aW1hdGVkQ29sc10gPSBlc3RpbWF0ZVNlcnZpY2UuZ2V0RXN0aW1hdGUoZXN0aW1hdGVPcHRpb25zKTtcbiAgICogY29uc29sZS5sb2coYEVzdGltYXRlZCBJdGVtczogJHtlc3RpbWF0ZWRJdGVtc30sIFJvd3M6ICR7ZXN0aW1hdGVkUm93c30sIENvbHVtbnM6ICR7ZXN0aW1hdGVkQ29sc31gKTtcbiAgICogYGBgXG4gICAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHZXRFc3RpbWF0ZSB7XG4gIC8qKlxuICAgKiBFc3RpbWF0ZXMgdGhlIG51bWJlciBvZiByb3dzIGFuZCBjb2x1bW5zIGZvciBhIGdpdmVuIHNldCBvZiBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge0dldEVzdGltYXRlT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXN0aW1hdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMubiAtIFRoZSBudW1iZXIgb2YgaXRlbXMgdG8gZXN0aW1hdGUgZm9yLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBlc3RpbWF0aW9uLlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmZpeGVkUGFnZUxpbWl0IC0gVGhlIGZpeGVkIHBhZ2UgbGltaXQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuUGFnZUxpbWl0IC0gVGhlIHNjcmVlbiBwYWdlIGxpbWl0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5zaGFyZVNjcmVlblN0YXJ0ZWQgLSBJbmRpY2F0ZXMgaWYgc2NyZWVuIHNoYXJpbmcgaGFzIHN0YXJ0ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNoYXJlZCAtIEluZGljYXRlcyBpZiBzaGFyaW5nIGlzIGFjdGl2ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5ldmVudFR5cGUgLSBUaGUgdHlwZSBvZiBldmVudCAoZS5nLiwgXCJjaGF0XCIsIFwiY29uZmVyZW5jZVwiKS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMucmVtb3ZlQWx0R3JpZCAtIEluZGljYXRlcyBpZiB0aGUgYWx0ZXJuYXRlIGdyaWQgc2hvdWxkIGJlIHJlbW92ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzV2lkZVNjcmVlbiAtIEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIHdpZGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzTWVkaXVtU2NyZWVuIC0gSW5kaWNhdGVzIGlmIHRoZSBzY3JlZW4gaXMgbWVkaXVtLXNpemVkLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlUmVtb3ZlQWx0R3JpZCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcmVtb3ZlQWx0R3JpZCBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5jYWxjdWxhdGVSb3dzQW5kQ29sdW1ucyAtIEZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSByb3dzIGFuZCBjb2x1bW5zLlxuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyW119IEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVzdGltYXRlZCBudW1iZXIgb2YgaXRlbXMsIHJvd3MsIGFuZCBjb2x1bW5zLlxuICAgKlxuICAgKiBAdGhyb3dzIFdpbGwgbG9nIGFuIGVycm9yIG1lc3NhZ2UgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBlc3RpbWF0aW9uLlxuICAgKi9cbiAgZ2V0RXN0aW1hdGUoeyBuLCBwYXJhbWV0ZXJzIH06IEdldEVzdGltYXRlT3B0aW9ucyk6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIERlc3RydWN0dXJlIHBhcmFtZXRlcnNcbiAgICAgIGxldCB7XG4gICAgICAgIGZpeGVkUGFnZUxpbWl0LFxuICAgICAgICBzY3JlZW5QYWdlTGltaXQsXG4gICAgICAgIHNoYXJlU2NyZWVuU3RhcnRlZCxcbiAgICAgICAgc2hhcmVkLFxuICAgICAgICBldmVudFR5cGUsXG4gICAgICAgIHJlbW92ZUFsdEdyaWQsXG4gICAgICAgIGlzV2lkZVNjcmVlbixcbiAgICAgICAgaXNNZWRpdW1TY3JlZW4sXG4gICAgICAgIHVwZGF0ZVJlbW92ZUFsdEdyaWQsXG4gICAgICAgIC8vIG1lZGlhU2Z1IGZ1bmN0aW9uc1xuICAgICAgICBjYWxjdWxhdGVSb3dzQW5kQ29sdW1ucyxcbiAgICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgcm93cyBhbmQgY29sdW1uc1xuICAgICAgY29uc3QgW3Jvd3MsIGNvbHNdID0gY2FsY3VsYXRlUm93c0FuZENvbHVtbnMoeyBuIH0pO1xuXG4gICAgICAvLyBDaGVjayBjb25kaXRpb25zIGZvciByZW1vdmluZyBhbHQgZ3JpZFxuICAgICAgaWYgKG4gPCBmaXhlZFBhZ2VMaW1pdCB8fCAoKHNoYXJlU2NyZWVuU3RhcnRlZCB8fCBzaGFyZWQpICYmIG4gPCBzY3JlZW5QYWdlTGltaXQgKyAxKSkge1xuICAgICAgICByZW1vdmVBbHRHcmlkID0gdHJ1ZTtcbiAgICAgICAgdXBkYXRlUmVtb3ZlQWx0R3JpZChyZW1vdmVBbHRHcmlkKTtcblxuICAgICAgICAvLyBSZXR1cm4gZXN0aW1hdGVkIHZhbHVlcyBiYXNlZCBvbiBzY3JlZW4gd2lkdGhcbiAgICAgICAgaWYgKCEoaXNNZWRpdW1TY3JlZW4gfHwgaXNXaWRlU2NyZWVuKSkge1xuICAgICAgICAgIHJldHVybiBldmVudFR5cGUgPT09ICdjaGF0JyB8fFxuICAgICAgICAgICAgKGV2ZW50VHlwZSA9PT0gJ2NvbmZlcmVuY2UnICYmICEoc2hhcmVTY3JlZW5TdGFydGVkIHx8IHNoYXJlZCkpXG4gICAgICAgICAgICA/IFtuLCBuLCAxXVxuICAgICAgICAgICAgOiBbbiwgMSwgbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PT0gJ2NoYXQnIHx8XG4gICAgICAgICAgICAoZXZlbnRUeXBlID09PSAnY29uZmVyZW5jZScgJiYgIShzaGFyZVNjcmVlblN0YXJ0ZWQgfHwgc2hhcmVkKSlcbiAgICAgICAgICAgID8gW24sIDEsIG5dXG4gICAgICAgICAgICA6IFtuLCBuLCAxXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW3Jvd3MgKiBjb2xzLCByb3dzLCBjb2xzXTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGR1cmluZyBlc3RpbWF0aW9uXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgZXN0aW1hdGluZyByb3dzIGFuZCBjb2x1bW5zOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgLy8gdGhyb3cgZXJyb3I7XG4gICAgICByZXR1cm4gWzAsIDAsIDBdO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,82 +0,0 @@
1
- // piped-producers.service.ts
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Retrieves piped producers and signals new consumer transport for each retrieved producer.
6
- *
7
- * @param {GetPipedProducersAltOptions} options - The options for retrieving piped producers.
8
- * @param {Socket} options.nsock - The WebSocket instance used for communication.
9
- * @param {string} options.islevel - A flag indicating the level of the request.
10
- * @param {GetPipedProducersAltParameters} options.parameters - Additional parameters for the request.
11
- * @param {string} options.parameters.member - The member identifier.
12
- * @param {SignalNewConsumerTransportType} options.parameters.signalNewConsumerTransport - A function to signal new consumer transport.
13
- *
14
- * @returns {Promise<void>} A promise that resolves when the operation is complete.
15
- *
16
- * @throws {Error} If an error occurs during the process of retrieving producers.
17
- *
18
- * @example
19
- * ```typescript
20
- * const options = {
21
- * nsock: socketInstance,
22
- * islevel: '2',
23
- * parameters: {
24
- * member: 'user123',
25
- * signalNewConsumerTransport: async ({ nsock, remoteProducerId, islevel, parameters }) => {
26
- * // Implementation to signal new consumer transport
27
- * console.log(`Signaling new consumer transport for producer: ${remoteProducerId}`);
28
- * },
29
- * },
30
- * };
31
- *
32
- * const getPipedProducersService = new GetPipedProducersAlt();
33
- * await getPipedProducersService.getPipedProducersAlt(options);
34
- * console.log('Piped producers retrieved successfully.');
35
- * ```
36
- */
37
- export class GetPipedProducersAlt {
38
- /**
39
- * Retrieves piped producers and signals new consumer transport for each retrieved producer.
40
- *
41
- * @param {Object} options - The options for retrieving piped producers.
42
- * @param {WebSocket} options.nsock - The WebSocket instance used for communication.
43
- * @param {boolean} options.islevel - A flag indicating the level of the request.
44
- * @param {Object} options.parameters - Additional parameters for the request.
45
- * @param {string} options.parameters.member - The member identifier.
46
- * @param {Function} options.parameters.signalNewConsumerTransport - A function to signal new consumer transport.
47
- *
48
- * @returns {Promise<void>} A promise that resolves when the operation is complete.
49
- *
50
- * @throws {Error} If an error occurs during the process of retrieving producers.
51
- */
52
- async getPipedProducersAlt({ nsock, islevel, parameters, }) {
53
- try {
54
- // Destructure parameters
55
- const { member, signalNewConsumerTransport } = parameters;
56
- // Emit request to get piped producers using WebSocket
57
- nsock.emit('getProducersPipedAlt', { islevel, member }, async (producerIds) => {
58
- // Check if producers are retrieved
59
- if (producerIds.length > 0) {
60
- // Signal new consumer transport for each retrieved producer
61
- for (const id of producerIds) {
62
- await signalNewConsumerTransport({ nsock, remoteProducerId: id, islevel, parameters });
63
- }
64
- }
65
- });
66
- }
67
- catch (error) {
68
- // Handle errors during the process of retrieving producers
69
- console.log('Error getting piped producers:', error.message);
70
- // throw error;
71
- }
72
- }
73
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetPipedProducersAlt, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
74
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetPipedProducersAlt, providedIn: 'root' });
75
- }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetPipedProducersAlt, decorators: [{
77
- type: Injectable,
78
- args: [{
79
- providedIn: 'root',
80
- }]
81
- }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBpcGVkLXByb2R1Y2Vycy1hbHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvZ2V0LXBpcGVkLXByb2R1Y2Vycy1hbHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2QkFBNkI7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF5QjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUN6QixLQUFLLEVBQ0wsT0FBTyxFQUNQLFVBQVUsR0FDa0I7UUFDNUIsSUFBSSxDQUFDO1lBQ0gseUJBQXlCO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFFMUQsc0RBQXNEO1lBQ3RELEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQXFCLEVBQUUsRUFBRTtnQkFDdEYsbUNBQW1DO2dCQUNuQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLDREQUE0RDtvQkFDNUQsS0FBSyxNQUFNLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQzt3QkFDN0IsTUFBTSwwQkFBMEIsQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ3pGLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsMkRBQTJEO1lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdELGVBQWU7UUFDakIsQ0FBQztJQUNILENBQUM7dUdBdkNVLG9CQUFvQjsyR0FBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwaXBlZC1wcm9kdWNlcnMuc2VydmljZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5cbmltcG9ydCB7XG4gIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0UGFyYW1ldGVycyxcbiAgU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRUeXBlLFxufSBmcm9tICcuLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldFBpcGVkUHJvZHVjZXJzQWx0UGFyYW1ldGVycyBleHRlbmRzIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0UGFyYW1ldGVycyB7XG4gIG1lbWJlcjogc3RyaW5nO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBzaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydDogU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRUeXBlO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0UGlwZWRQcm9kdWNlcnNBbHRPcHRpb25zIHtcbiAgbnNvY2s6IFNvY2tldDtcbiAgaXNsZXZlbDogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBHZXRQaXBlZFByb2R1Y2Vyc0FsdFBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEdldFBpcGVkUHJvZHVjZXJzQWx0VHlwZSA9IChvcHRpb25zOiBHZXRQaXBlZFByb2R1Y2Vyc0FsdE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogUmV0cmlldmVzIHBpcGVkIHByb2R1Y2VycyBhbmQgc2lnbmFscyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlci5cbiAqXG4gKiBAcGFyYW0ge0dldFBpcGVkUHJvZHVjZXJzQWx0T3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZXRyaWV2aW5nIHBpcGVkIHByb2R1Y2Vycy5cbiAqIEBwYXJhbSB7U29ja2V0fSBvcHRpb25zLm5zb2NrIC0gVGhlIFdlYlNvY2tldCBpbnN0YW5jZSB1c2VkIGZvciBjb21tdW5pY2F0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXNsZXZlbCAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoZSBsZXZlbCBvZiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7R2V0UGlwZWRQcm9kdWNlcnNBbHRQYXJhbWV0ZXJzfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5tZW1iZXIgLSBUaGUgbWVtYmVyIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge1NpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0VHlwZX0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IC0gQSBmdW5jdGlvbiB0byBzaWduYWwgbmV3IGNvbnN1bWVyIHRyYW5zcG9ydC5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHJldHJpZXZpbmcgcHJvZHVjZXJzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvcHRpb25zID0ge1xuICogICBuc29jazogc29ja2V0SW5zdGFuY2UsXG4gKiAgIGlzbGV2ZWw6ICcyJyxcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIG1lbWJlcjogJ3VzZXIxMjMnLFxuICogICAgIHNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0OiBhc3luYyAoeyBuc29jaywgcmVtb3RlUHJvZHVjZXJJZCwgaXNsZXZlbCwgcGFyYW1ldGVycyB9KSA9PiB7XG4gKiAgICAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBzaWduYWwgbmV3IGNvbnN1bWVyIHRyYW5zcG9ydFxuICogICAgICAgY29uc29sZS5sb2coYFNpZ25hbGluZyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBwcm9kdWNlcjogJHtyZW1vdGVQcm9kdWNlcklkfWApO1xuICogICAgIH0sXG4gKiAgIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IGdldFBpcGVkUHJvZHVjZXJzU2VydmljZSA9IG5ldyBHZXRQaXBlZFByb2R1Y2Vyc0FsdCgpO1xuICogYXdhaXQgZ2V0UGlwZWRQcm9kdWNlcnNTZXJ2aWNlLmdldFBpcGVkUHJvZHVjZXJzQWx0KG9wdGlvbnMpO1xuICogY29uc29sZS5sb2coJ1BpcGVkIHByb2R1Y2VycyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LicpO1xuICogYGBgXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2V0UGlwZWRQcm9kdWNlcnNBbHQge1xuICAvKipcbiAgICogUmV0cmlldmVzIHBpcGVkIHByb2R1Y2VycyBhbmQgc2lnbmFscyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmV0cmlldmluZyBwaXBlZCBwcm9kdWNlcnMuXG4gICAqIEBwYXJhbSB7V2ViU29ja2V0fSBvcHRpb25zLm5zb2NrIC0gVGhlIFdlYlNvY2tldCBpbnN0YW5jZSB1c2VkIGZvciBjb21tdW5pY2F0aW9uLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuaXNsZXZlbCAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoZSBsZXZlbCBvZiB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMucGFyYW1ldGVycyAtIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMubWVtYmVyIC0gVGhlIG1lbWJlciBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMuc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQgLSBBIGZ1bmN0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXRyaWV2aW5nIHByb2R1Y2Vycy5cbiAgICovXG4gIGFzeW5jIGdldFBpcGVkUHJvZHVjZXJzQWx0KHtcbiAgICBuc29jayxcbiAgICBpc2xldmVsLFxuICAgIHBhcmFtZXRlcnMsXG4gIH06IEdldFBpcGVkUHJvZHVjZXJzQWx0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBEZXN0cnVjdHVyZSBwYXJhbWV0ZXJzXG4gICAgICBjb25zdCB7IG1lbWJlciwgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICAgIC8vIEVtaXQgcmVxdWVzdCB0byBnZXQgcGlwZWQgcHJvZHVjZXJzIHVzaW5nIFdlYlNvY2tldFxuICAgICAgbnNvY2suZW1pdCgnZ2V0UHJvZHVjZXJzUGlwZWRBbHQnLCB7IGlzbGV2ZWwsIG1lbWJlciB9LCBhc3luYyAocHJvZHVjZXJJZHM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHByb2R1Y2VycyBhcmUgcmV0cmlldmVkXG4gICAgICAgIGlmIChwcm9kdWNlcklkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gU2lnbmFsIG5ldyBjb25zdW1lciB0cmFuc3BvcnQgZm9yIGVhY2ggcmV0cmlldmVkIHByb2R1Y2VyXG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBwcm9kdWNlcklkcykge1xuICAgICAgICAgICAgYXdhaXQgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQoeyBuc29jaywgcmVtb3RlUHJvZHVjZXJJZDogaWQsIGlzbGV2ZWwsIHBhcmFtZXRlcnMgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXRyaWV2aW5nIHByb2R1Y2Vyc1xuICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGdldHRpbmcgcGlwZWQgcHJvZHVjZXJzOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgLy8gdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,79 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Retrieves piped producers and signals new consumer transport for each retrieved producer.
5
- *
6
- * @param {GetProducersPipedOptions} options - The options for getting piped producers.
7
- * @param {Socket} options.nsock - The WebSocket instance used for communication.
8
- * @param {string} options.islevel - A flag indicating the level of the operation.
9
- * @param {GetProducersPipedParameters} options.parameters - Additional parameters for the operation.
10
- * @param {string} options.parameters.member - The member identifier.
11
- * @param {SignalNewConsumerTransportType} options.parameters.signalNewConsumerTransport - The function to signal new consumer transport.
12
- *
13
- * @returns {Promise<void>} A promise that resolves when the operation is complete.
14
- *
15
- * @throws {Error} If an error occurs during the process of retrieving producers.
16
- *
17
- * @example
18
- * ```typescript
19
- * const options = {
20
- * nsock: socketInstance,
21
- * islevel: '2',
22
- * parameters: {
23
- * member: 'user123',
24
- * signalNewConsumerTransport: async ({ remoteProducerId, islevel, nsock, parameters }) => {
25
- * // Implementation to signal new consumer transport
26
- * console.log(`Signaling new consumer transport for producer: ${remoteProducerId}`);
27
- * },
28
- * },
29
- * };
30
- *
31
- * const getProducersPipedService = new GetProducersPiped();
32
- * await getProducersPipedService.getProducersPiped(options);
33
- * console.log('Piped producers retrieved successfully.');
34
- * ```
35
- */
36
- export class GetProducersPiped {
37
- /**
38
- * Retrieves piped producers and signals new consumer transport for each retrieved producer.
39
- *
40
- * @param {Object} options - The options for getting piped producers.
41
- * @param {WebSocket} options.nsock - The WebSocket instance used for communication.
42
- * @param {boolean} options.islevel - A flag indicating the level of the operation.
43
- * @param {Object} options.parameters - Additional parameters for the operation.
44
- * @param {string} options.parameters.member - The member identifier.
45
- * @param {Function} options.parameters.signalNewConsumerTransport - The function to signal new consumer transport.
46
- *
47
- * @returns {Promise<void>} A promise that resolves when the operation is complete.
48
- *
49
- * @throws {Error} If an error occurs during the process of retrieving producers.
50
- */
51
- async getProducersPiped({ nsock, islevel, parameters }) {
52
- try {
53
- // Destructure parameters
54
- const { member, signalNewConsumerTransport } = parameters;
55
- // Emit request to get piped producers using WebSocket
56
- nsock.emit('getProducersPipedAlt', { islevel, member }, async (producerIds) => {
57
- // Check if producers are retrieved
58
- if (producerIds.length > 0) {
59
- // Signal new consumer transport for each retrieved producer
60
- await Promise.all(producerIds.map((id) => signalNewConsumerTransport({ remoteProducerId: id, islevel, nsock, parameters })));
61
- }
62
- });
63
- }
64
- catch (error) {
65
- // Handle errors during the process of retrieving producers
66
- console.log('Error getting piped producers:', error.message);
67
- // throw error;
68
- }
69
- }
70
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetProducersPiped, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
71
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetProducersPiped, providedIn: 'root' });
72
- }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetProducersPiped, decorators: [{
74
- type: Injectable,
75
- args: [{
76
- providedIn: 'root',
77
- }]
78
- }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb2R1Y2Vycy1waXBlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbnN1bWVycy9nZXQtcHJvZHVjZXJzLXBpcGVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF1QjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUVILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUE0QjtRQUM5RSxJQUFJLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsTUFBTSxFQUFFLE1BQU0sRUFBRSwwQkFBMEIsRUFBRSxHQUFHLFVBQVUsQ0FBQztZQUUxRCxzREFBc0Q7WUFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBcUIsRUFBRSxFQUFFO2dCQUN0RixtQ0FBbUM7Z0JBQ25DLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsNERBQTREO29CQUM1RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ3JCLDBCQUEwQixDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FDakYsQ0FDRixDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLDJEQUEyRDtZQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxlQUFlO1FBQ2pCLENBQUM7SUFDSCxDQUFDO3VHQXRDVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQge1xuICBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFBhcmFtZXRlcnMsXG4gIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0VHlwZSxcbn0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgR2V0UHJvZHVjZXJzUGlwZWRQYXJhbWV0ZXJzIGV4dGVuZHMgU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRQYXJhbWV0ZXJzIHtcbiAgbWVtYmVyOiBzdHJpbmc7XG5cbiAgLy8gbWVkaWFzZnUgZnVuY3Rpb25zXG4gIHNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0OiBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFR5cGU7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQcm9kdWNlcnNQaXBlZE9wdGlvbnMge1xuICBuc29jazogU29ja2V0O1xuICBpc2xldmVsOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IEdldFByb2R1Y2Vyc1BpcGVkUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgR2V0UHJvZHVjZXJzUGlwZWRUeXBlID0gKG9wdGlvbnM6IEdldFByb2R1Y2Vyc1BpcGVkT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgcGlwZWQgcHJvZHVjZXJzIGFuZCBzaWduYWxzIG5ldyBjb25zdW1lciB0cmFuc3BvcnQgZm9yIGVhY2ggcmV0cmlldmVkIHByb2R1Y2VyLlxuICpcbiAqIEBwYXJhbSB7R2V0UHJvZHVjZXJzUGlwZWRPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGdldHRpbmcgcGlwZWQgcHJvZHVjZXJzLlxuICogQHBhcmFtIHtTb2NrZXR9IG9wdGlvbnMubnNvY2sgLSBUaGUgV2ViU29ja2V0IGluc3RhbmNlIHVzZWQgZm9yIGNvbW11bmljYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pc2xldmVsIC0gQSBmbGFnIGluZGljYXRpbmcgdGhlIGxldmVsIG9mIHRoZSBvcGVyYXRpb24uXG4gKiBAcGFyYW0ge0dldFByb2R1Y2Vyc1BpcGVkUGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5tZW1iZXIgLSBUaGUgbWVtYmVyIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge1NpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0VHlwZX0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IC0gVGhlIGZ1bmN0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIHByb2Nlc3Mgb2YgcmV0cmlldmluZyBwcm9kdWNlcnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIG5zb2NrOiBzb2NrZXRJbnN0YW5jZSxcbiAqICAgaXNsZXZlbDogJzInLFxuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgbWVtYmVyOiAndXNlcjEyMycsXG4gKiAgICAgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQ6IGFzeW5jICh7IHJlbW90ZVByb2R1Y2VySWQsIGlzbGV2ZWwsIG5zb2NrLCBwYXJhbWV0ZXJzIH0pID0+IHtcbiAqICAgICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0XG4gKiAgICAgICBjb25zb2xlLmxvZyhgU2lnbmFsaW5nIG5ldyBjb25zdW1lciB0cmFuc3BvcnQgZm9yIHByb2R1Y2VyOiAke3JlbW90ZVByb2R1Y2VySWR9YCk7XG4gKiAgICAgfSxcbiAqICAgfSxcbiAqIH07XG4gKlxuICogY29uc3QgZ2V0UHJvZHVjZXJzUGlwZWRTZXJ2aWNlID0gbmV3IEdldFByb2R1Y2Vyc1BpcGVkKCk7XG4gKiBhd2FpdCBnZXRQcm9kdWNlcnNQaXBlZFNlcnZpY2UuZ2V0UHJvZHVjZXJzUGlwZWQob3B0aW9ucyk7XG4gKiBjb25zb2xlLmxvZygnUGlwZWQgcHJvZHVjZXJzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuJyk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2V0UHJvZHVjZXJzUGlwZWQge1xuICAvKipcbiAgICogUmV0cmlldmVzIHBpcGVkIHByb2R1Y2VycyBhbmQgc2lnbmFscyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgZ2V0dGluZyBwaXBlZCBwcm9kdWNlcnMuXG4gICAqIEBwYXJhbSB7V2ViU29ja2V0fSBvcHRpb25zLm5zb2NrIC0gVGhlIFdlYlNvY2tldCBpbnN0YW5jZSB1c2VkIGZvciBjb21tdW5pY2F0aW9uLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuaXNsZXZlbCAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoZSBsZXZlbCBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLm1lbWJlciAtIFRoZSBtZW1iZXIgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IC0gVGhlIGZ1bmN0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXRyaWV2aW5nIHByb2R1Y2Vycy5cbiAgICovXG5cbiAgYXN5bmMgZ2V0UHJvZHVjZXJzUGlwZWQoeyBuc29jaywgaXNsZXZlbCwgcGFyYW1ldGVycyB9OiBHZXRQcm9kdWNlcnNQaXBlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gRGVzdHJ1Y3R1cmUgcGFyYW1ldGVyc1xuICAgICAgY29uc3QgeyBtZW1iZXIsIHNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICAvLyBFbWl0IHJlcXVlc3QgdG8gZ2V0IHBpcGVkIHByb2R1Y2VycyB1c2luZyBXZWJTb2NrZXRcbiAgICAgIG5zb2NrLmVtaXQoJ2dldFByb2R1Y2Vyc1BpcGVkQWx0JywgeyBpc2xldmVsLCBtZW1iZXIgfSwgYXN5bmMgKHByb2R1Y2VySWRzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiBwcm9kdWNlcnMgYXJlIHJldHJpZXZlZFxuICAgICAgICBpZiAocHJvZHVjZXJJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIFNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlclxuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgcHJvZHVjZXJJZHMubWFwKChpZCkgPT5cbiAgICAgICAgICAgICAgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQoeyByZW1vdGVQcm9kdWNlcklkOiBpZCwgaXNsZXZlbCwgbnNvY2ssIHBhcmFtZXRlcnMgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvcnMgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHJldHJpZXZpbmcgcHJvZHVjZXJzXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgZ2V0dGluZyBwaXBlZCBwcm9kdWNlcnM6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAvLyB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,91 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Asynchronously processes and updates video streams by filtering out the admin's video stream.
5
- *
6
- * @param {GetVideosOptions} options - The options for getting videos.
7
- * @param {Participant[]} options.participants - The list of participants.
8
- * @param {Stream[]} options.allVideoStreams - The list of all video streams.
9
- * @param {(Stream | Participant)[]} options.oldAllStreams - The list of old video streams.
10
- * @param {string} [options.adminVidID] - The ID of the admin's video stream.
11
- * @param {Function} options.updateAllVideoStreams - Function to update the state variable for all video streams.
12
- * @param {Function} options.updateOldAllStreams - Function to update the state variable for old video streams.
13
- * @returns {Promise<void>} A promise that resolves when the video streams have been processed and updated.
14
- *
15
- * @throws {Error} If an error occurs during the process of updating video streams.
16
- *
17
- * @example
18
- * ```typescript
19
- * const options = {
20
- * participants: participantList,
21
- * allVideoStreams: currentVideoStreams,
22
- * oldAllStreams: previousVideoStreams,
23
- * updateAllVideoStreams: (streams) => {
24
- * console.log('Updated all video streams:', streams);
25
- * },
26
- * updateOldAllStreams: (streams) => {
27
- * console.log('Updated old video streams:', streams);
28
- * },
29
- * };
30
- *
31
- * const getVideosService = new GetVideos();
32
- * await getVideosService.getVideos(options);
33
- * console.log('Video streams processed successfully.');
34
- * ```
35
- */
36
- export class GetVideos {
37
- /**
38
- * Asynchronously processes and updates video streams by filtering out the admin's video stream.
39
- *
40
- * @param {GetVideosOptions} options - The options for getting videos.
41
- * @param {Participant[]} options.participants - The list of participants.
42
- * @param {Stream[]} options.allVideoStreams - The list of all video streams.
43
- * @param {(Stream | Participant)[]} options.oldAllStreams - The list of old video streams.
44
- * @param {string} options.adminVidID - The ID of the admin's video stream.
45
- * @param {Function} options.updateAllVideoStreams - Function to update the state variable for all video streams.
46
- * @param {Function} options.updateOldAllStreams - Function to update the state variable for old video streams.
47
- * @returns {Promise<void>} A promise that resolves when the video streams have been processed and updated.
48
- */
49
- async getVideos({ participants, allVideoStreams, oldAllStreams, adminVidID, updateAllVideoStreams, updateOldAllStreams, }) {
50
- try {
51
- // Filter out the admin's video stream and update state variables
52
- let admin = participants.filter((participant) => participant.islevel === '2');
53
- if (admin.length > 0) {
54
- adminVidID = admin[0].videoID;
55
- if (adminVidID != null && adminVidID !== '') {
56
- let oldAllStreams_ = [];
57
- // Check if the length of oldAllStreams is greater than 0
58
- if (oldAllStreams.length > 0) {
59
- oldAllStreams_ = oldAllStreams;
60
- }
61
- // Filter out admin's video stream from oldAllStreams
62
- oldAllStreams = allVideoStreams.filter((streame) => streame.producerId === adminVidID);
63
- // If no admin's video stream found, revert to the previous state
64
- if (oldAllStreams.length < 1) {
65
- oldAllStreams = oldAllStreams_;
66
- }
67
- // Update the state variable for old video streams
68
- updateOldAllStreams(oldAllStreams);
69
- // Filter out admin's video stream from allVideoStreams
70
- allVideoStreams = allVideoStreams.filter((streame) => streame.producerId !== adminVidID);
71
- // Update the state variable for all video streams
72
- updateAllVideoStreams(allVideoStreams);
73
- }
74
- }
75
- }
76
- catch (error) {
77
- // Handle errors during the process of updating video streams
78
- console.log('Error updating video streams:', error.message);
79
- // throw error;
80
- }
81
- }
82
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetVideos, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
83
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetVideos, providedIn: 'root' });
84
- }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetVideos, decorators: [{
86
- type: Injectable,
87
- args: [{
88
- providedIn: 'root',
89
- }]
90
- }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZGVvcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbnN1bWVycy9nZXQtdmlkZW9zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBTUgsTUFBTSxPQUFPLFNBQVM7SUFDcEI7Ozs7Ozs7Ozs7O09BV0c7SUFFSCxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQ2QsWUFBWSxFQUNaLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixtQkFBbUIsR0FDRjtRQUNqQixJQUFJLENBQUM7WUFDSCxpRUFBaUU7WUFDakUsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFbkYsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFFOUIsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxjQUFjLEdBQVUsRUFBRSxDQUFDO29CQUUvQix5REFBeUQ7b0JBQ3pELElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDN0IsY0FBYyxHQUFHLGFBQWEsQ0FBQztvQkFDakMsQ0FBQztvQkFFRCxxREFBcUQ7b0JBQ3JELGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUNwQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQ3BELENBQUM7b0JBRUYsaUVBQWlFO29CQUNqRSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQzdCLGFBQWEsR0FBRyxjQUFjLENBQUM7b0JBQ2pDLENBQUM7b0JBRUQsa0RBQWtEO29CQUNsRCxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFFbkMsdURBQXVEO29CQUN2RCxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUNwRCxDQUFDO29CQUVGLGtEQUFrRDtvQkFDbEQscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsNkRBQTZEO1lBQzdELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELGVBQWU7UUFDakIsQ0FBQztJQUNILENBQUM7dUdBaEVVLFNBQVM7MkdBQVQsU0FBUyxjQUZSLE1BQU07OzJGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RyZWFtLCBQYXJ0aWNpcGFudCB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEdldFZpZGVvc09wdGlvbnMge1xuICBwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W107XG4gIGFsbFZpZGVvU3RyZWFtczogKFN0cmVhbSB8IFBhcnRpY2lwYW50KVtdO1xuICBvbGRBbGxTdHJlYW1zOiAoU3RyZWFtIHwgUGFydGljaXBhbnQpW107XG4gIGFkbWluVmlkSUQ/OiBzdHJpbmc7XG4gIHVwZGF0ZUFsbFZpZGVvU3RyZWFtczogKHN0cmVhbXM6IChTdHJlYW0gfCBQYXJ0aWNpcGFudClbXSkgPT4gdm9pZDtcbiAgdXBkYXRlT2xkQWxsU3RyZWFtczogKHN0cmVhbXM6IChTdHJlYW0gfCBQYXJ0aWNpcGFudClbXSkgPT4gdm9pZDtcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgR2V0VmlkZW9zVHlwZSA9IChvcHRpb25zOiBHZXRWaWRlb3NPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIEFzeW5jaHJvbm91c2x5IHByb2Nlc3NlcyBhbmQgdXBkYXRlcyB2aWRlbyBzdHJlYW1zIGJ5IGZpbHRlcmluZyBvdXQgdGhlIGFkbWluJ3MgdmlkZW8gc3RyZWFtLlxuICpcbiAqIEBwYXJhbSB7R2V0VmlkZW9zT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBnZXR0aW5nIHZpZGVvcy5cbiAqIEBwYXJhbSB7UGFydGljaXBhbnRbXX0gb3B0aW9ucy5wYXJ0aWNpcGFudHMgLSBUaGUgbGlzdCBvZiBwYXJ0aWNpcGFudHMuXG4gKiBAcGFyYW0ge1N0cmVhbVtdfSBvcHRpb25zLmFsbFZpZGVvU3RyZWFtcyAtIFRoZSBsaXN0IG9mIGFsbCB2aWRlbyBzdHJlYW1zLlxuICogQHBhcmFtIHsoU3RyZWFtIHwgUGFydGljaXBhbnQpW119IG9wdGlvbnMub2xkQWxsU3RyZWFtcyAtIFRoZSBsaXN0IG9mIG9sZCB2aWRlbyBzdHJlYW1zLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmFkbWluVmlkSURdIC0gVGhlIElEIG9mIHRoZSBhZG1pbidzIHZpZGVvIHN0cmVhbS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlQWxsVmlkZW9TdHJlYW1zIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBzdGF0ZSB2YXJpYWJsZSBmb3IgYWxsIHZpZGVvIHN0cmVhbXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZU9sZEFsbFN0cmVhbXMgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHN0YXRlIHZhcmlhYmxlIGZvciBvbGQgdmlkZW8gc3RyZWFtcy5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB2aWRlbyBzdHJlYW1zIGhhdmUgYmVlbiBwcm9jZXNzZWQgYW5kIHVwZGF0ZWQuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIHByb2Nlc3Mgb2YgdXBkYXRpbmcgdmlkZW8gc3RyZWFtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgcGFydGljaXBhbnRzOiBwYXJ0aWNpcGFudExpc3QsXG4gKiAgIGFsbFZpZGVvU3RyZWFtczogY3VycmVudFZpZGVvU3RyZWFtcyxcbiAqICAgb2xkQWxsU3RyZWFtczogcHJldmlvdXNWaWRlb1N0cmVhbXMsXG4gKiAgIHVwZGF0ZUFsbFZpZGVvU3RyZWFtczogKHN0cmVhbXMpID0+IHtcbiAqICAgICBjb25zb2xlLmxvZygnVXBkYXRlZCBhbGwgdmlkZW8gc3RyZWFtczonLCBzdHJlYW1zKTtcbiAqICAgfSxcbiAqICAgdXBkYXRlT2xkQWxsU3RyZWFtczogKHN0cmVhbXMpID0+IHtcbiAqICAgICBjb25zb2xlLmxvZygnVXBkYXRlZCBvbGQgdmlkZW8gc3RyZWFtczonLCBzdHJlYW1zKTtcbiAqICAgfSxcbiAqIH07XG4gKlxuICogY29uc3QgZ2V0VmlkZW9zU2VydmljZSA9IG5ldyBHZXRWaWRlb3MoKTtcbiAqIGF3YWl0IGdldFZpZGVvc1NlcnZpY2UuZ2V0VmlkZW9zKG9wdGlvbnMpO1xuICogY29uc29sZS5sb2coJ1ZpZGVvIHN0cmVhbXMgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseS4nKTtcbiAqIGBgYFxuICovXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdldFZpZGVvcyB7XG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXNseSBwcm9jZXNzZXMgYW5kIHVwZGF0ZXMgdmlkZW8gc3RyZWFtcyBieSBmaWx0ZXJpbmcgb3V0IHRoZSBhZG1pbidzIHZpZGVvIHN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtHZXRWaWRlb3NPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGdldHRpbmcgdmlkZW9zLlxuICAgKiBAcGFyYW0ge1BhcnRpY2lwYW50W119IG9wdGlvbnMucGFydGljaXBhbnRzIC0gVGhlIGxpc3Qgb2YgcGFydGljaXBhbnRzLlxuICAgKiBAcGFyYW0ge1N0cmVhbVtdfSBvcHRpb25zLmFsbFZpZGVvU3RyZWFtcyAtIFRoZSBsaXN0IG9mIGFsbCB2aWRlbyBzdHJlYW1zLlxuICAgKiBAcGFyYW0geyhTdHJlYW0gfCBQYXJ0aWNpcGFudClbXX0gb3B0aW9ucy5vbGRBbGxTdHJlYW1zIC0gVGhlIGxpc3Qgb2Ygb2xkIHZpZGVvIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmFkbWluVmlkSUQgLSBUaGUgSUQgb2YgdGhlIGFkbWluJ3MgdmlkZW8gc3RyZWFtLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZUFsbFZpZGVvU3RyZWFtcyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgc3RhdGUgdmFyaWFibGUgZm9yIGFsbCB2aWRlbyBzdHJlYW1zLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZU9sZEFsbFN0cmVhbXMgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHN0YXRlIHZhcmlhYmxlIGZvciBvbGQgdmlkZW8gc3RyZWFtcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHZpZGVvIHN0cmVhbXMgaGF2ZSBiZWVuIHByb2Nlc3NlZCBhbmQgdXBkYXRlZC5cbiAgICovXG5cbiAgYXN5bmMgZ2V0VmlkZW9zKHtcbiAgICBwYXJ0aWNpcGFudHMsXG4gICAgYWxsVmlkZW9TdHJlYW1zLFxuICAgIG9sZEFsbFN0cmVhbXMsXG4gICAgYWRtaW5WaWRJRCxcbiAgICB1cGRhdGVBbGxWaWRlb1N0cmVhbXMsXG4gICAgdXBkYXRlT2xkQWxsU3RyZWFtcyxcbiAgfTogR2V0VmlkZW9zT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBGaWx0ZXIgb3V0IHRoZSBhZG1pbidzIHZpZGVvIHN0cmVhbSBhbmQgdXBkYXRlIHN0YXRlIHZhcmlhYmxlc1xuICAgICAgbGV0IGFkbWluID0gcGFydGljaXBhbnRzLmZpbHRlcigocGFydGljaXBhbnQ6IGFueSkgPT4gcGFydGljaXBhbnQuaXNsZXZlbCA9PT0gJzInKTtcblxuICAgICAgaWYgKGFkbWluLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWRtaW5WaWRJRCA9IGFkbWluWzBdLnZpZGVvSUQ7XG5cbiAgICAgICAgaWYgKGFkbWluVmlkSUQgIT0gbnVsbCAmJiBhZG1pblZpZElEICE9PSAnJykge1xuICAgICAgICAgIGxldCBvbGRBbGxTdHJlYW1zXzogYW55W10gPSBbXTtcblxuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBsZW5ndGggb2Ygb2xkQWxsU3RyZWFtcyBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICAgIGlmIChvbGRBbGxTdHJlYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIG9sZEFsbFN0cmVhbXNfID0gb2xkQWxsU3RyZWFtcztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGFkbWluJ3MgdmlkZW8gc3RyZWFtIGZyb20gb2xkQWxsU3RyZWFtc1xuICAgICAgICAgIG9sZEFsbFN0cmVhbXMgPSBhbGxWaWRlb1N0cmVhbXMuZmlsdGVyKFxuICAgICAgICAgICAgKHN0cmVhbWU6IGFueSkgPT4gc3RyZWFtZS5wcm9kdWNlcklkID09PSBhZG1pblZpZElELFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBJZiBubyBhZG1pbidzIHZpZGVvIHN0cmVhbSBmb3VuZCwgcmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgIGlmIChvbGRBbGxTdHJlYW1zLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIG9sZEFsbFN0cmVhbXMgPSBvbGRBbGxTdHJlYW1zXztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBVcGRhdGUgdGhlIHN0YXRlIHZhcmlhYmxlIGZvciBvbGQgdmlkZW8gc3RyZWFtc1xuICAgICAgICAgIHVwZGF0ZU9sZEFsbFN0cmVhbXMob2xkQWxsU3RyZWFtcyk7XG5cbiAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGFkbWluJ3MgdmlkZW8gc3RyZWFtIGZyb20gYWxsVmlkZW9TdHJlYW1zXG4gICAgICAgICAgYWxsVmlkZW9TdHJlYW1zID0gYWxsVmlkZW9TdHJlYW1zLmZpbHRlcihcbiAgICAgICAgICAgIChzdHJlYW1lOiBhbnkpID0+IHN0cmVhbWUucHJvZHVjZXJJZCAhPT0gYWRtaW5WaWRJRCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gVXBkYXRlIHRoZSBzdGF0ZSB2YXJpYWJsZSBmb3IgYWxsIHZpZGVvIHN0cmVhbXNcbiAgICAgICAgICB1cGRhdGVBbGxWaWRlb1N0cmVhbXMoYWxsVmlkZW9TdHJlYW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvcnMgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHVwZGF0aW5nIHZpZGVvIHN0cmVhbXNcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciB1cGRhdGluZyB2aWRlbyBzdHJlYW1zOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgLy8gdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG4iXX0=