@wix/legends-platform-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (785) hide show
  1. package/README.md +186 -0
  2. package/components/package.json +5 -0
  3. package/dist/cjs/components/Audio/Audio.js +31 -0
  4. package/dist/cjs/components/Audio/Audio.js.map +1 -0
  5. package/dist/cjs/components/Audio/index.js +10 -0
  6. package/dist/cjs/components/Audio/index.js.map +1 -0
  7. package/dist/cjs/components/ChromaKey/ChromaKey.js +127 -0
  8. package/dist/cjs/components/ChromaKey/ChromaKey.js.map +1 -0
  9. package/dist/cjs/components/ChromaKey/chroma-key.js +99 -0
  10. package/dist/cjs/components/ChromaKey/chroma-key.js.map +1 -0
  11. package/dist/cjs/components/ChromaKey/index.js +10 -0
  12. package/dist/cjs/components/ChromaKey/index.js.map +1 -0
  13. package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js +44 -0
  14. package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
  15. package/dist/cjs/components/ChromaKey/shaders/index.js +10 -0
  16. package/dist/cjs/components/ChromaKey/shaders/index.js.map +1 -0
  17. package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js +12 -0
  18. package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
  19. package/dist/cjs/components/ChromaKey/types.js +4 -0
  20. package/dist/cjs/components/ChromaKey/types.js.map +1 -0
  21. package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js +91 -0
  22. package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
  23. package/dist/cjs/components/LegendsPlatform/index.js +10 -0
  24. package/dist/cjs/components/LegendsPlatform/index.js.map +1 -0
  25. package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js +69 -0
  26. package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
  27. package/dist/cjs/components/LegendsPlatformQLess/index.js +10 -0
  28. package/dist/cjs/components/LegendsPlatformQLess/index.js.map +1 -0
  29. package/dist/cjs/components/Video/Video.js +88 -0
  30. package/dist/cjs/components/Video/Video.js.map +1 -0
  31. package/dist/cjs/components/Video/index.js +16 -0
  32. package/dist/cjs/components/Video/index.js.map +1 -0
  33. package/dist/cjs/components/Video/types.js +4 -0
  34. package/dist/cjs/components/Video/types.js.map +1 -0
  35. package/dist/cjs/components/Video/useAttachVideo.js +33 -0
  36. package/dist/cjs/components/Video/useAttachVideo.js.map +1 -0
  37. package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js +61 -0
  38. package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
  39. package/dist/cjs/components/VideoPostProcessor/effects.js +30 -0
  40. package/dist/cjs/components/VideoPostProcessor/effects.js.map +1 -0
  41. package/dist/cjs/components/VideoPostProcessor/index.js +10 -0
  42. package/dist/cjs/components/VideoPostProcessor/index.js.map +1 -0
  43. package/dist/cjs/components/VideoPreview/VideoPreview.js +68 -0
  44. package/dist/cjs/components/VideoPreview/VideoPreview.js.map +1 -0
  45. package/dist/cjs/components/VideoPreview/index.js +16 -0
  46. package/dist/cjs/components/VideoPreview/index.js.map +1 -0
  47. package/dist/cjs/components/VideoPreview/types.js +4 -0
  48. package/dist/cjs/components/VideoPreview/types.js.map +1 -0
  49. package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js +85 -0
  50. package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
  51. package/dist/cjs/components.js +34 -0
  52. package/dist/cjs/components.js.map +1 -0
  53. package/dist/cjs/conversation/index.js +18 -0
  54. package/dist/cjs/conversation/index.js.map +1 -0
  55. package/dist/cjs/conversation/state.js +24 -0
  56. package/dist/cjs/conversation/state.js.map +1 -0
  57. package/dist/cjs/conversation/types.js +4 -0
  58. package/dist/cjs/conversation/types.js.map +1 -0
  59. package/dist/cjs/conversation/utils.js +25 -0
  60. package/dist/cjs/conversation/utils.js.map +1 -0
  61. package/dist/cjs/external-types.d.js +2 -0
  62. package/dist/cjs/external-types.d.js.map +1 -0
  63. package/dist/cjs/hooks/index.js +58 -0
  64. package/dist/cjs/hooks/index.js.map +1 -0
  65. package/dist/cjs/hooks/useActivityState/index.js +10 -0
  66. package/dist/cjs/hooks/useActivityState/index.js.map +1 -0
  67. package/dist/cjs/hooks/useActivityState/useActivityState.js +15 -0
  68. package/dist/cjs/hooks/useActivityState/useActivityState.js.map +1 -0
  69. package/dist/cjs/hooks/useAudio/index.js +10 -0
  70. package/dist/cjs/hooks/useAudio/index.js.map +1 -0
  71. package/dist/cjs/hooks/useAudio/useAudio.js +28 -0
  72. package/dist/cjs/hooks/useAudio/useAudio.js.map +1 -0
  73. package/dist/cjs/hooks/useAudioLevel/helpers.js +28 -0
  74. package/dist/cjs/hooks/useAudioLevel/helpers.js.map +1 -0
  75. package/dist/cjs/hooks/useAudioLevel/index.js +10 -0
  76. package/dist/cjs/hooks/useAudioLevel/index.js.map +1 -0
  77. package/dist/cjs/hooks/useAudioLevel/types.js +4 -0
  78. package/dist/cjs/hooks/useAudioLevel/types.js.map +1 -0
  79. package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js +49 -0
  80. package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
  81. package/dist/cjs/hooks/useCamera/index.js +10 -0
  82. package/dist/cjs/hooks/useCamera/index.js.map +1 -0
  83. package/dist/cjs/hooks/useCamera/useCamera.js +32 -0
  84. package/dist/cjs/hooks/useCamera/useCamera.js.map +1 -0
  85. package/dist/cjs/hooks/useConnectionState/index.js +10 -0
  86. package/dist/cjs/hooks/useConnectionState/index.js.map +1 -0
  87. package/dist/cjs/hooks/useConnectionState/useConnectionState.js +15 -0
  88. package/dist/cjs/hooks/useConnectionState/useConnectionState.js.map +1 -0
  89. package/dist/cjs/hooks/useConversation/index.js +16 -0
  90. package/dist/cjs/hooks/useConversation/index.js.map +1 -0
  91. package/dist/cjs/hooks/useConversation/livekit/constants.js +15 -0
  92. package/dist/cjs/hooks/useConversation/livekit/constants.js.map +1 -0
  93. package/dist/cjs/hooks/useConversation/livekit/types.js +4 -0
  94. package/dist/cjs/hooks/useConversation/livekit/types.js.map +1 -0
  95. package/dist/cjs/hooks/useConversation/livekit/useConversation.js +371 -0
  96. package/dist/cjs/hooks/useConversation/livekit/useConversation.js.map +1 -0
  97. package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js +25 -0
  98. package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
  99. package/dist/cjs/hooks/useConversation/livekit/utils/index.js +40 -0
  100. package/dist/cjs/hooks/useConversation/livekit/utils/index.js.map +1 -0
  101. package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js +11 -0
  102. package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
  103. package/dist/cjs/hooks/useConversation/livekit/utils/participants.js +34 -0
  104. package/dist/cjs/hooks/useConversation/livekit/utils/participants.js.map +1 -0
  105. package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js +13 -0
  106. package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
  107. package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js +18 -0
  108. package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
  109. package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js +15 -0
  110. package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
  111. package/dist/cjs/hooks/useConversation/types.js +4 -0
  112. package/dist/cjs/hooks/useConversation/types.js.map +1 -0
  113. package/dist/cjs/hooks/useConversation/useConversation.js +99 -0
  114. package/dist/cjs/hooks/useConversation/useConversation.js.map +1 -0
  115. package/dist/cjs/hooks/useConversationEvents/index.js +22 -0
  116. package/dist/cjs/hooks/useConversationEvents/index.js.map +1 -0
  117. package/dist/cjs/hooks/useConversationEvents/types.js +4 -0
  118. package/dist/cjs/hooks/useConversationEvents/types.js.map +1 -0
  119. package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js +11 -0
  120. package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
  121. package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js +20 -0
  122. package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
  123. package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js +13 -0
  124. package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
  125. package/dist/cjs/hooks/useConversationStatus/index.js +10 -0
  126. package/dist/cjs/hooks/useConversationStatus/index.js.map +1 -0
  127. package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js +10 -0
  128. package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
  129. package/dist/cjs/hooks/useConversationTimer/index.js +10 -0
  130. package/dist/cjs/hooks/useConversationTimer/index.js.map +1 -0
  131. package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js +45 -0
  132. package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
  133. package/dist/cjs/hooks/useCreateConversation/helpers.js +8 -0
  134. package/dist/cjs/hooks/useCreateConversation/helpers.js.map +1 -0
  135. package/dist/cjs/hooks/useCreateConversation/index.js +10 -0
  136. package/dist/cjs/hooks/useCreateConversation/index.js.map +1 -0
  137. package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js +104 -0
  138. package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
  139. package/dist/cjs/hooks/useDeviceSwitcher/index.js +10 -0
  140. package/dist/cjs/hooks/useDeviceSwitcher/index.js.map +1 -0
  141. package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js +31 -0
  142. package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
  143. package/dist/cjs/hooks/useDevices/index.js +10 -0
  144. package/dist/cjs/hooks/useDevices/index.js.map +1 -0
  145. package/dist/cjs/hooks/useDevices/useDevices.js +49 -0
  146. package/dist/cjs/hooks/useDevices/useDevices.js.map +1 -0
  147. package/dist/cjs/hooks/useMediaPermissions/index.js +10 -0
  148. package/dist/cjs/hooks/useMediaPermissions/index.js.map +1 -0
  149. package/dist/cjs/hooks/useMediaPermissions/types.js +4 -0
  150. package/dist/cjs/hooks/useMediaPermissions/types.js.map +1 -0
  151. package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js +46 -0
  152. package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
  153. package/dist/cjs/hooks/useMediaRecorder/index.js +10 -0
  154. package/dist/cjs/hooks/useMediaRecorder/index.js.map +1 -0
  155. package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js +229 -0
  156. package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
  157. package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js +298 -0
  158. package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
  159. package/dist/cjs/hooks/useMicrophone/index.js +10 -0
  160. package/dist/cjs/hooks/useMicrophone/index.js.map +1 -0
  161. package/dist/cjs/hooks/useMicrophone/useMicrophone.js +38 -0
  162. package/dist/cjs/hooks/useMicrophone/useMicrophone.js.map +1 -0
  163. package/dist/cjs/hooks/useParticipantTrack/index.js +10 -0
  164. package/dist/cjs/hooks/useParticipantTrack/index.js.map +1 -0
  165. package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js +32 -0
  166. package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
  167. package/dist/cjs/hooks/usePictureInPicture/index.js +13 -0
  168. package/dist/cjs/hooks/usePictureInPicture/index.js.map +1 -0
  169. package/dist/cjs/hooks/usePictureInPicture/state.js +14 -0
  170. package/dist/cjs/hooks/usePictureInPicture/state.js.map +1 -0
  171. package/dist/cjs/hooks/usePictureInPicture/types.js +4 -0
  172. package/dist/cjs/hooks/usePictureInPicture/types.js.map +1 -0
  173. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js +45 -0
  174. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
  175. package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js +116 -0
  176. package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
  177. package/dist/cjs/hooks/useScreenShare/index.js +10 -0
  178. package/dist/cjs/hooks/useScreenShare/index.js.map +1 -0
  179. package/dist/cjs/hooks/useScreenShare/useScreenShare.js +45 -0
  180. package/dist/cjs/hooks/useScreenShare/useScreenShare.js.map +1 -0
  181. package/dist/cjs/hooks/useSpeaker/index.js +10 -0
  182. package/dist/cjs/hooks/useSpeaker/index.js.map +1 -0
  183. package/dist/cjs/hooks/useSpeaker/useSpeaker.js +31 -0
  184. package/dist/cjs/hooks/useSpeaker/useSpeaker.js.map +1 -0
  185. package/dist/cjs/hooks/useTextChat/index.js +10 -0
  186. package/dist/cjs/hooks/useTextChat/index.js.map +1 -0
  187. package/dist/cjs/hooks/useTextChat/usePendingMessages.js +23 -0
  188. package/dist/cjs/hooks/useTextChat/usePendingMessages.js.map +1 -0
  189. package/dist/cjs/hooks/useTextChat/useTextChat.js +62 -0
  190. package/dist/cjs/hooks/useTextChat/useTextChat.js.map +1 -0
  191. package/dist/cjs/hooks/useTextChat/useToolAwareSend.js +33 -0
  192. package/dist/cjs/hooks/useTextChat/useToolAwareSend.js.map +1 -0
  193. package/dist/cjs/hooks/useTools/index.js +9 -0
  194. package/dist/cjs/hooks/useTools/index.js.map +1 -0
  195. package/dist/cjs/hooks/useTools/model/errors.js +12 -0
  196. package/dist/cjs/hooks/useTools/model/errors.js.map +1 -0
  197. package/dist/cjs/hooks/useTools/model/types.js +4 -0
  198. package/dist/cjs/hooks/useTools/model/types.js.map +1 -0
  199. package/dist/cjs/hooks/useTools/public/useTools.js +11 -0
  200. package/dist/cjs/hooks/useTools/public/useTools.js.map +1 -0
  201. package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js +74 -0
  202. package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
  203. package/dist/cjs/hooks/useTools/runtime/executeToolCall.js +33 -0
  204. package/dist/cjs/hooks/useTools/runtime/executeToolCall.js.map +1 -0
  205. package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js +41 -0
  206. package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
  207. package/dist/cjs/hooks/useTools/runtime/types.js +4 -0
  208. package/dist/cjs/hooks/useTools/runtime/types.js.map +1 -0
  209. package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js +59 -0
  210. package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
  211. package/dist/cjs/hooks/useTools/store/state.js +30 -0
  212. package/dist/cjs/hooks/useTools/store/state.js.map +1 -0
  213. package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js +22 -0
  214. package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
  215. package/dist/cjs/hooks/useTools/utils/serialize.js +28 -0
  216. package/dist/cjs/hooks/useTools/utils/serialize.js.map +1 -0
  217. package/dist/cjs/hooks/useTranscriptions/index.js +16 -0
  218. package/dist/cjs/hooks/useTranscriptions/index.js.map +1 -0
  219. package/dist/cjs/hooks/useTranscriptions/types.js +4 -0
  220. package/dist/cjs/hooks/useTranscriptions/types.js.map +1 -0
  221. package/dist/cjs/hooks/useTranscriptions/useTranscription.js +16 -0
  222. package/dist/cjs/hooks/useTranscriptions/useTranscription.js.map +1 -0
  223. package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js +18 -0
  224. package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
  225. package/dist/cjs/hooks/useUserActivity/index.js +10 -0
  226. package/dist/cjs/hooks/useUserActivity/index.js.map +1 -0
  227. package/dist/cjs/hooks/useUserActivity/useUserActivity.js +23 -0
  228. package/dist/cjs/hooks/useUserActivity/useUserActivity.js.map +1 -0
  229. package/dist/cjs/livekit/components.js +10 -0
  230. package/dist/cjs/livekit/components.js.map +1 -0
  231. package/dist/cjs/livekit/sdk.js +10 -0
  232. package/dist/cjs/livekit/sdk.js.map +1 -0
  233. package/dist/cjs/sdk-consumer/context.js +15 -0
  234. package/dist/cjs/sdk-consumer/context.js.map +1 -0
  235. package/dist/cjs/sdk-consumer/index.js +10 -0
  236. package/dist/cjs/sdk-consumer/index.js.map +1 -0
  237. package/dist/cjs/sdk.js +148 -0
  238. package/dist/cjs/sdk.js.map +1 -0
  239. package/dist/cjs/services/FetchPersonaChatService.js +139 -0
  240. package/dist/cjs/services/FetchPersonaChatService.js.map +1 -0
  241. package/dist/cjs/test-types.d.js +2 -0
  242. package/dist/cjs/test-types.d.js.map +1 -0
  243. package/dist/cjs/types/http.js +14 -0
  244. package/dist/cjs/types/http.js.map +1 -0
  245. package/dist/cjs/types/index.js +7 -0
  246. package/dist/cjs/types/index.js.map +1 -0
  247. package/dist/cjs/types/service.js +4 -0
  248. package/dist/cjs/types/service.js.map +1 -0
  249. package/dist/cjs/utils/captureImage/captureImage.js +29 -0
  250. package/dist/cjs/utils/captureImage/captureImage.js.map +1 -0
  251. package/dist/cjs/utils/captureImage/helpers.js +74 -0
  252. package/dist/cjs/utils/captureImage/helpers.js.map +1 -0
  253. package/dist/cjs/utils/captureImage/index.js +16 -0
  254. package/dist/cjs/utils/captureImage/index.js.map +1 -0
  255. package/dist/cjs/utils/captureImage/types.js +4 -0
  256. package/dist/cjs/utils/captureImage/types.js.map +1 -0
  257. package/dist/cjs/utils/compatibility/compatibility.js +17 -0
  258. package/dist/cjs/utils/compatibility/compatibility.js.map +1 -0
  259. package/dist/cjs/utils/compatibility/index.js +10 -0
  260. package/dist/cjs/utils/compatibility/index.js.map +1 -0
  261. package/dist/cjs/utils.js +10 -0
  262. package/dist/cjs/utils.js.map +1 -0
  263. package/dist/esm/components/Audio/Audio.js +18 -0
  264. package/dist/esm/components/Audio/Audio.js.map +1 -0
  265. package/dist/esm/components/Audio/index.js +2 -0
  266. package/dist/esm/components/Audio/index.js.map +1 -0
  267. package/dist/esm/components/ChromaKey/ChromaKey.js +115 -0
  268. package/dist/esm/components/ChromaKey/ChromaKey.js.map +1 -0
  269. package/dist/esm/components/ChromaKey/chroma-key.js +91 -0
  270. package/dist/esm/components/ChromaKey/chroma-key.js.map +1 -0
  271. package/dist/esm/components/ChromaKey/index.js +2 -0
  272. package/dist/esm/components/ChromaKey/index.js.map +1 -0
  273. package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js +40 -0
  274. package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
  275. package/dist/esm/components/ChromaKey/shaders/index.js +3 -0
  276. package/dist/esm/components/ChromaKey/shaders/index.js.map +1 -0
  277. package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js +8 -0
  278. package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
  279. package/dist/esm/components/ChromaKey/types.js +2 -0
  280. package/dist/esm/components/ChromaKey/types.js.map +1 -0
  281. package/dist/esm/components/LegendsPlatform/LegendsPlatform.js +53 -0
  282. package/dist/esm/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
  283. package/dist/esm/components/LegendsPlatform/index.js +2 -0
  284. package/dist/esm/components/LegendsPlatform/index.js.map +1 -0
  285. package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js +30 -0
  286. package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
  287. package/dist/esm/components/LegendsPlatformQLess/index.js +2 -0
  288. package/dist/esm/components/LegendsPlatformQLess/index.js.map +1 -0
  289. package/dist/esm/components/Video/Video.js +73 -0
  290. package/dist/esm/components/Video/Video.js.map +1 -0
  291. package/dist/esm/components/Video/index.js +3 -0
  292. package/dist/esm/components/Video/index.js.map +1 -0
  293. package/dist/esm/components/Video/types.js +2 -0
  294. package/dist/esm/components/Video/types.js.map +1 -0
  295. package/dist/esm/components/Video/useAttachVideo.js +27 -0
  296. package/dist/esm/components/Video/useAttachVideo.js.map +1 -0
  297. package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js +47 -0
  298. package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
  299. package/dist/esm/components/VideoPostProcessor/effects.js +25 -0
  300. package/dist/esm/components/VideoPostProcessor/effects.js.map +1 -0
  301. package/dist/esm/components/VideoPostProcessor/index.js +2 -0
  302. package/dist/esm/components/VideoPostProcessor/index.js.map +1 -0
  303. package/dist/esm/components/VideoPreview/VideoPreview.js +48 -0
  304. package/dist/esm/components/VideoPreview/VideoPreview.js.map +1 -0
  305. package/dist/esm/components/VideoPreview/index.js +3 -0
  306. package/dist/esm/components/VideoPreview/index.js.map +1 -0
  307. package/dist/esm/components/VideoPreview/types.js +2 -0
  308. package/dist/esm/components/VideoPreview/types.js.map +1 -0
  309. package/dist/esm/components/VideoPreview/useVideoPreviewStream.js +85 -0
  310. package/dist/esm/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
  311. package/dist/esm/components.js +6 -0
  312. package/dist/esm/components.js.map +1 -0
  313. package/dist/esm/conversation/index.js +4 -0
  314. package/dist/esm/conversation/index.js.map +1 -0
  315. package/dist/esm/conversation/state.js +20 -0
  316. package/dist/esm/conversation/state.js.map +1 -0
  317. package/dist/esm/conversation/types.js +2 -0
  318. package/dist/esm/conversation/types.js.map +1 -0
  319. package/dist/esm/conversation/utils.js +21 -0
  320. package/dist/esm/conversation/utils.js.map +1 -0
  321. package/dist/esm/external-types.d.js +2 -0
  322. package/dist/esm/external-types.d.js.map +1 -0
  323. package/dist/esm/hooks/index.js +10 -0
  324. package/dist/esm/hooks/index.js.map +1 -0
  325. package/dist/esm/hooks/useActivityState/index.js +2 -0
  326. package/dist/esm/hooks/useActivityState/index.js.map +1 -0
  327. package/dist/esm/hooks/useActivityState/useActivityState.js +11 -0
  328. package/dist/esm/hooks/useActivityState/useActivityState.js.map +1 -0
  329. package/dist/esm/hooks/useAudio/index.js +2 -0
  330. package/dist/esm/hooks/useAudio/index.js.map +1 -0
  331. package/dist/esm/hooks/useAudio/useAudio.js +26 -0
  332. package/dist/esm/hooks/useAudio/useAudio.js.map +1 -0
  333. package/dist/esm/hooks/useAudioLevel/helpers.js +23 -0
  334. package/dist/esm/hooks/useAudioLevel/helpers.js.map +1 -0
  335. package/dist/esm/hooks/useAudioLevel/index.js +2 -0
  336. package/dist/esm/hooks/useAudioLevel/index.js.map +1 -0
  337. package/dist/esm/hooks/useAudioLevel/types.js +2 -0
  338. package/dist/esm/hooks/useAudioLevel/types.js.map +1 -0
  339. package/dist/esm/hooks/useAudioLevel/useAudioLevel.js +43 -0
  340. package/dist/esm/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
  341. package/dist/esm/hooks/useCamera/index.js +2 -0
  342. package/dist/esm/hooks/useCamera/index.js.map +1 -0
  343. package/dist/esm/hooks/useCamera/useCamera.js +29 -0
  344. package/dist/esm/hooks/useCamera/useCamera.js.map +1 -0
  345. package/dist/esm/hooks/useConnectionState/index.js +2 -0
  346. package/dist/esm/hooks/useConnectionState/index.js.map +1 -0
  347. package/dist/esm/hooks/useConnectionState/useConnectionState.js +11 -0
  348. package/dist/esm/hooks/useConnectionState/useConnectionState.js.map +1 -0
  349. package/dist/esm/hooks/useConversation/index.js +3 -0
  350. package/dist/esm/hooks/useConversation/index.js.map +1 -0
  351. package/dist/esm/hooks/useConversation/livekit/constants.js +11 -0
  352. package/dist/esm/hooks/useConversation/livekit/constants.js.map +1 -0
  353. package/dist/esm/hooks/useConversation/livekit/types.js +2 -0
  354. package/dist/esm/hooks/useConversation/livekit/types.js.map +1 -0
  355. package/dist/esm/hooks/useConversation/livekit/useConversation.js +377 -0
  356. package/dist/esm/hooks/useConversation/livekit/useConversation.js.map +1 -0
  357. package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js +18 -0
  358. package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
  359. package/dist/esm/hooks/useConversation/livekit/utils/index.js +7 -0
  360. package/dist/esm/hooks/useConversation/livekit/utils/index.js.map +1 -0
  361. package/dist/esm/hooks/useConversation/livekit/utils/messaging.js +7 -0
  362. package/dist/esm/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
  363. package/dist/esm/hooks/useConversation/livekit/utils/participants.js +28 -0
  364. package/dist/esm/hooks/useConversation/livekit/utils/participants.js.map +1 -0
  365. package/dist/esm/hooks/useConversation/livekit/utils/serialization.js +9 -0
  366. package/dist/esm/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
  367. package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js +14 -0
  368. package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
  369. package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js +11 -0
  370. package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
  371. package/dist/esm/hooks/useConversation/types.js +2 -0
  372. package/dist/esm/hooks/useConversation/types.js.map +1 -0
  373. package/dist/esm/hooks/useConversation/useConversation.js +93 -0
  374. package/dist/esm/hooks/useConversation/useConversation.js.map +1 -0
  375. package/dist/esm/hooks/useConversationEvents/index.js +4 -0
  376. package/dist/esm/hooks/useConversationEvents/index.js.map +1 -0
  377. package/dist/esm/hooks/useConversationEvents/types.js +2 -0
  378. package/dist/esm/hooks/useConversationEvents/types.js.map +1 -0
  379. package/dist/esm/hooks/useConversationEvents/useConversationEvent.js +7 -0
  380. package/dist/esm/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
  381. package/dist/esm/hooks/useConversationEvents/useConversationEvents.js +20 -0
  382. package/dist/esm/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
  383. package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js +9 -0
  384. package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
  385. package/dist/esm/hooks/useConversationStatus/index.js +2 -0
  386. package/dist/esm/hooks/useConversationStatus/index.js.map +1 -0
  387. package/dist/esm/hooks/useConversationStatus/useConversationStatus.js +6 -0
  388. package/dist/esm/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
  389. package/dist/esm/hooks/useConversationTimer/index.js +2 -0
  390. package/dist/esm/hooks/useConversationTimer/index.js.map +1 -0
  391. package/dist/esm/hooks/useConversationTimer/useConversationTimer.js +44 -0
  392. package/dist/esm/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
  393. package/dist/esm/hooks/useCreateConversation/helpers.js +4 -0
  394. package/dist/esm/hooks/useCreateConversation/helpers.js.map +1 -0
  395. package/dist/esm/hooks/useCreateConversation/index.js +2 -0
  396. package/dist/esm/hooks/useCreateConversation/index.js.map +1 -0
  397. package/dist/esm/hooks/useCreateConversation/useCreateConversation.js +98 -0
  398. package/dist/esm/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
  399. package/dist/esm/hooks/useDeviceSwitcher/index.js +2 -0
  400. package/dist/esm/hooks/useDeviceSwitcher/index.js.map +1 -0
  401. package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js +26 -0
  402. package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
  403. package/dist/esm/hooks/useDevices/index.js +2 -0
  404. package/dist/esm/hooks/useDevices/index.js.map +1 -0
  405. package/dist/esm/hooks/useDevices/useDevices.js +45 -0
  406. package/dist/esm/hooks/useDevices/useDevices.js.map +1 -0
  407. package/dist/esm/hooks/useMediaPermissions/index.js +3 -0
  408. package/dist/esm/hooks/useMediaPermissions/index.js.map +1 -0
  409. package/dist/esm/hooks/useMediaPermissions/types.js +2 -0
  410. package/dist/esm/hooks/useMediaPermissions/types.js.map +1 -0
  411. package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js +42 -0
  412. package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
  413. package/dist/esm/hooks/useMediaRecorder/index.js +2 -0
  414. package/dist/esm/hooks/useMediaRecorder/index.js.map +1 -0
  415. package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js +227 -0
  416. package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
  417. package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js +315 -0
  418. package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
  419. package/dist/esm/hooks/useMicrophone/index.js +2 -0
  420. package/dist/esm/hooks/useMicrophone/index.js.map +1 -0
  421. package/dist/esm/hooks/useMicrophone/useMicrophone.js +35 -0
  422. package/dist/esm/hooks/useMicrophone/useMicrophone.js.map +1 -0
  423. package/dist/esm/hooks/useParticipantTrack/index.js +2 -0
  424. package/dist/esm/hooks/useParticipantTrack/index.js.map +1 -0
  425. package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js +26 -0
  426. package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
  427. package/dist/esm/hooks/usePictureInPicture/index.js +5 -0
  428. package/dist/esm/hooks/usePictureInPicture/index.js.map +1 -0
  429. package/dist/esm/hooks/usePictureInPicture/state.js +10 -0
  430. package/dist/esm/hooks/usePictureInPicture/state.js.map +1 -0
  431. package/dist/esm/hooks/usePictureInPicture/types.js +2 -0
  432. package/dist/esm/hooks/usePictureInPicture/types.js.map +1 -0
  433. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js +41 -0
  434. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
  435. package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js +111 -0
  436. package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
  437. package/dist/esm/hooks/useScreenShare/index.js +2 -0
  438. package/dist/esm/hooks/useScreenShare/index.js.map +1 -0
  439. package/dist/esm/hooks/useScreenShare/useScreenShare.js +42 -0
  440. package/dist/esm/hooks/useScreenShare/useScreenShare.js.map +1 -0
  441. package/dist/esm/hooks/useSpeaker/index.js +2 -0
  442. package/dist/esm/hooks/useSpeaker/index.js.map +1 -0
  443. package/dist/esm/hooks/useSpeaker/useSpeaker.js +28 -0
  444. package/dist/esm/hooks/useSpeaker/useSpeaker.js.map +1 -0
  445. package/dist/esm/hooks/useTextChat/index.js +2 -0
  446. package/dist/esm/hooks/useTextChat/index.js.map +1 -0
  447. package/dist/esm/hooks/useTextChat/usePendingMessages.js +19 -0
  448. package/dist/esm/hooks/useTextChat/usePendingMessages.js.map +1 -0
  449. package/dist/esm/hooks/useTextChat/useTextChat.js +59 -0
  450. package/dist/esm/hooks/useTextChat/useTextChat.js.map +1 -0
  451. package/dist/esm/hooks/useTextChat/useToolAwareSend.js +28 -0
  452. package/dist/esm/hooks/useTextChat/useToolAwareSend.js.map +1 -0
  453. package/dist/esm/hooks/useTools/index.js +3 -0
  454. package/dist/esm/hooks/useTools/index.js.map +1 -0
  455. package/dist/esm/hooks/useTools/model/errors.js +7 -0
  456. package/dist/esm/hooks/useTools/model/errors.js.map +1 -0
  457. package/dist/esm/hooks/useTools/model/types.js +2 -0
  458. package/dist/esm/hooks/useTools/model/types.js.map +1 -0
  459. package/dist/esm/hooks/useTools/public/useTools.js +7 -0
  460. package/dist/esm/hooks/useTools/public/useTools.js.map +1 -0
  461. package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js +66 -0
  462. package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
  463. package/dist/esm/hooks/useTools/runtime/executeToolCall.js +29 -0
  464. package/dist/esm/hooks/useTools/runtime/executeToolCall.js.map +1 -0
  465. package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js +36 -0
  466. package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
  467. package/dist/esm/hooks/useTools/runtime/types.js +2 -0
  468. package/dist/esm/hooks/useTools/runtime/types.js.map +1 -0
  469. package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js +58 -0
  470. package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
  471. package/dist/esm/hooks/useTools/store/state.js +26 -0
  472. package/dist/esm/hooks/useTools/store/state.js.map +1 -0
  473. package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js +18 -0
  474. package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
  475. package/dist/esm/hooks/useTools/utils/serialize.js +23 -0
  476. package/dist/esm/hooks/useTools/utils/serialize.js.map +1 -0
  477. package/dist/esm/hooks/useTranscriptions/index.js +3 -0
  478. package/dist/esm/hooks/useTranscriptions/index.js.map +1 -0
  479. package/dist/esm/hooks/useTranscriptions/types.js +2 -0
  480. package/dist/esm/hooks/useTranscriptions/types.js.map +1 -0
  481. package/dist/esm/hooks/useTranscriptions/useTranscription.js +15 -0
  482. package/dist/esm/hooks/useTranscriptions/useTranscription.js.map +1 -0
  483. package/dist/esm/hooks/useTranscriptions/useTranscriptions.js +15 -0
  484. package/dist/esm/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
  485. package/dist/esm/hooks/useUserActivity/index.js +2 -0
  486. package/dist/esm/hooks/useUserActivity/index.js.map +1 -0
  487. package/dist/esm/hooks/useUserActivity/useUserActivity.js +22 -0
  488. package/dist/esm/hooks/useUserActivity/useUserActivity.js.map +1 -0
  489. package/dist/esm/livekit/components.js +2 -0
  490. package/dist/esm/livekit/components.js.map +1 -0
  491. package/dist/esm/livekit/sdk.js +2 -0
  492. package/dist/esm/livekit/sdk.js.map +1 -0
  493. package/dist/esm/sdk-consumer/context.js +10 -0
  494. package/dist/esm/sdk-consumer/context.js.map +1 -0
  495. package/dist/esm/sdk-consumer/index.js +2 -0
  496. package/dist/esm/sdk-consumer/index.js.map +1 -0
  497. package/dist/esm/sdk.js +25 -0
  498. package/dist/esm/sdk.js.map +1 -0
  499. package/dist/esm/services/FetchPersonaChatService.js +124 -0
  500. package/dist/esm/services/FetchPersonaChatService.js.map +1 -0
  501. package/dist/esm/test-types.d.js +2 -0
  502. package/dist/esm/test-types.d.js.map +1 -0
  503. package/dist/esm/types/http.js +9 -0
  504. package/dist/esm/types/http.js.map +1 -0
  505. package/dist/esm/types/index.js +2 -0
  506. package/dist/esm/types/index.js.map +1 -0
  507. package/dist/esm/types/service.js +2 -0
  508. package/dist/esm/types/service.js.map +1 -0
  509. package/dist/esm/utils/captureImage/captureImage.js +29 -0
  510. package/dist/esm/utils/captureImage/captureImage.js.map +1 -0
  511. package/dist/esm/utils/captureImage/helpers.js +69 -0
  512. package/dist/esm/utils/captureImage/helpers.js.map +1 -0
  513. package/dist/esm/utils/captureImage/index.js +3 -0
  514. package/dist/esm/utils/captureImage/index.js.map +1 -0
  515. package/dist/esm/utils/captureImage/types.js +2 -0
  516. package/dist/esm/utils/captureImage/types.js.map +1 -0
  517. package/dist/esm/utils/compatibility/compatibility.js +12 -0
  518. package/dist/esm/utils/compatibility/compatibility.js.map +1 -0
  519. package/dist/esm/utils/compatibility/index.js +2 -0
  520. package/dist/esm/utils/compatibility/index.js.map +1 -0
  521. package/dist/esm/utils.js +2 -0
  522. package/dist/esm/utils.js.map +1 -0
  523. package/dist/types/components/Audio/Audio.d.ts +3 -0
  524. package/dist/types/components/Audio/Audio.d.ts.map +1 -0
  525. package/dist/types/components/Audio/index.d.ts +2 -0
  526. package/dist/types/components/Audio/index.d.ts.map +1 -0
  527. package/dist/types/components/ChromaKey/ChromaKey.d.ts +20 -0
  528. package/dist/types/components/ChromaKey/ChromaKey.d.ts.map +1 -0
  529. package/dist/types/components/ChromaKey/chroma-key.d.ts +9 -0
  530. package/dist/types/components/ChromaKey/chroma-key.d.ts.map +1 -0
  531. package/dist/types/components/ChromaKey/index.d.ts +2 -0
  532. package/dist/types/components/ChromaKey/index.d.ts.map +1 -0
  533. package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts +3 -0
  534. package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts.map +1 -0
  535. package/dist/types/components/ChromaKey/shaders/index.d.ts +3 -0
  536. package/dist/types/components/ChromaKey/shaders/index.d.ts.map +1 -0
  537. package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts +3 -0
  538. package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts.map +1 -0
  539. package/dist/types/components/ChromaKey/types.d.ts +3 -0
  540. package/dist/types/components/ChromaKey/types.d.ts.map +1 -0
  541. package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts +18 -0
  542. package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts.map +1 -0
  543. package/dist/types/components/LegendsPlatform/index.d.ts +2 -0
  544. package/dist/types/components/LegendsPlatform/index.d.ts.map +1 -0
  545. package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts +15 -0
  546. package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts.map +1 -0
  547. package/dist/types/components/LegendsPlatformQLess/index.d.ts +2 -0
  548. package/dist/types/components/LegendsPlatformQLess/index.d.ts.map +1 -0
  549. package/dist/types/components/Video/Video.d.ts +14 -0
  550. package/dist/types/components/Video/Video.d.ts.map +1 -0
  551. package/dist/types/components/Video/index.d.ts +3 -0
  552. package/dist/types/components/Video/index.d.ts.map +1 -0
  553. package/dist/types/components/Video/types.d.ts +22 -0
  554. package/dist/types/components/Video/types.d.ts.map +1 -0
  555. package/dist/types/components/Video/useAttachVideo.d.ts +10 -0
  556. package/dist/types/components/Video/useAttachVideo.d.ts.map +1 -0
  557. package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts +11 -0
  558. package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts.map +1 -0
  559. package/dist/types/components/VideoPostProcessor/effects.d.ts +3 -0
  560. package/dist/types/components/VideoPostProcessor/effects.d.ts.map +1 -0
  561. package/dist/types/components/VideoPostProcessor/index.d.ts +2 -0
  562. package/dist/types/components/VideoPostProcessor/index.d.ts.map +1 -0
  563. package/dist/types/components/VideoPreview/VideoPreview.d.ts +4 -0
  564. package/dist/types/components/VideoPreview/VideoPreview.d.ts.map +1 -0
  565. package/dist/types/components/VideoPreview/index.d.ts +3 -0
  566. package/dist/types/components/VideoPreview/index.d.ts.map +1 -0
  567. package/dist/types/components/VideoPreview/types.d.ts +11 -0
  568. package/dist/types/components/VideoPreview/types.d.ts.map +1 -0
  569. package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts +13 -0
  570. package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts.map +1 -0
  571. package/dist/types/components.d.ts +6 -0
  572. package/dist/types/components.d.ts.map +1 -0
  573. package/dist/types/conversation/index.d.ts +3 -0
  574. package/dist/types/conversation/index.d.ts.map +1 -0
  575. package/dist/types/conversation/state.d.ts +47 -0
  576. package/dist/types/conversation/state.d.ts.map +1 -0
  577. package/dist/types/conversation/types.d.ts +27 -0
  578. package/dist/types/conversation/types.d.ts.map +1 -0
  579. package/dist/types/conversation/utils.d.ts +6 -0
  580. package/dist/types/conversation/utils.d.ts.map +1 -0
  581. package/dist/types/hooks/index.d.ts +10 -0
  582. package/dist/types/hooks/index.d.ts.map +1 -0
  583. package/dist/types/hooks/useActivityState/index.d.ts +2 -0
  584. package/dist/types/hooks/useActivityState/index.d.ts.map +1 -0
  585. package/dist/types/hooks/useActivityState/useActivityState.d.ts +2 -0
  586. package/dist/types/hooks/useActivityState/useActivityState.d.ts.map +1 -0
  587. package/dist/types/hooks/useAudio/index.d.ts +2 -0
  588. package/dist/types/hooks/useAudio/index.d.ts.map +1 -0
  589. package/dist/types/hooks/useAudio/useAudio.d.ts +7 -0
  590. package/dist/types/hooks/useAudio/useAudio.d.ts.map +1 -0
  591. package/dist/types/hooks/useAudioLevel/helpers.d.ts +11 -0
  592. package/dist/types/hooks/useAudioLevel/helpers.d.ts.map +1 -0
  593. package/dist/types/hooks/useAudioLevel/index.d.ts +2 -0
  594. package/dist/types/hooks/useAudioLevel/index.d.ts.map +1 -0
  595. package/dist/types/hooks/useAudioLevel/types.d.ts +8 -0
  596. package/dist/types/hooks/useAudioLevel/types.d.ts.map +1 -0
  597. package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts +3 -0
  598. package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts.map +1 -0
  599. package/dist/types/hooks/useCamera/index.d.ts +2 -0
  600. package/dist/types/hooks/useCamera/index.d.ts.map +1 -0
  601. package/dist/types/hooks/useCamera/useCamera.d.ts +8 -0
  602. package/dist/types/hooks/useCamera/useCamera.d.ts.map +1 -0
  603. package/dist/types/hooks/useConnectionState/index.d.ts +2 -0
  604. package/dist/types/hooks/useConnectionState/index.d.ts.map +1 -0
  605. package/dist/types/hooks/useConnectionState/useConnectionState.d.ts +2 -0
  606. package/dist/types/hooks/useConnectionState/useConnectionState.d.ts.map +1 -0
  607. package/dist/types/hooks/useConversation/index.d.ts +3 -0
  608. package/dist/types/hooks/useConversation/index.d.ts.map +1 -0
  609. package/dist/types/hooks/useConversation/livekit/constants.d.ts +4 -0
  610. package/dist/types/hooks/useConversation/livekit/constants.d.ts.map +1 -0
  611. package/dist/types/hooks/useConversation/livekit/types.d.ts +32 -0
  612. package/dist/types/hooks/useConversation/livekit/types.d.ts.map +1 -0
  613. package/dist/types/hooks/useConversation/livekit/useConversation.d.ts +3 -0
  614. package/dist/types/hooks/useConversation/livekit/useConversation.d.ts.map +1 -0
  615. package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts +6 -0
  616. package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts.map +1 -0
  617. package/dist/types/hooks/useConversation/livekit/utils/index.d.ts +7 -0
  618. package/dist/types/hooks/useConversation/livekit/utils/index.d.ts.map +1 -0
  619. package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts +3 -0
  620. package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts.map +1 -0
  621. package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts +6 -0
  622. package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts.map +1 -0
  623. package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts +2 -0
  624. package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts.map +1 -0
  625. package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts +4 -0
  626. package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts.map +1 -0
  627. package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts +3 -0
  628. package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts.map +1 -0
  629. package/dist/types/hooks/useConversation/types.d.ts +23 -0
  630. package/dist/types/hooks/useConversation/types.d.ts.map +1 -0
  631. package/dist/types/hooks/useConversation/useConversation.d.ts +3 -0
  632. package/dist/types/hooks/useConversation/useConversation.d.ts.map +1 -0
  633. package/dist/types/hooks/useConversationEvents/index.d.ts +4 -0
  634. package/dist/types/hooks/useConversationEvents/index.d.ts.map +1 -0
  635. package/dist/types/hooks/useConversationEvents/types.d.ts +72 -0
  636. package/dist/types/hooks/useConversationEvents/types.d.ts.map +1 -0
  637. package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts +3 -0
  638. package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts.map +1 -0
  639. package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts +5 -0
  640. package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts.map +1 -0
  641. package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts +3 -0
  642. package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts.map +1 -0
  643. package/dist/types/hooks/useConversationStatus/index.d.ts +2 -0
  644. package/dist/types/hooks/useConversationStatus/index.d.ts.map +1 -0
  645. package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts +2 -0
  646. package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts.map +1 -0
  647. package/dist/types/hooks/useConversationTimer/index.d.ts +2 -0
  648. package/dist/types/hooks/useConversationTimer/index.d.ts.map +1 -0
  649. package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts +17 -0
  650. package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts.map +1 -0
  651. package/dist/types/hooks/useCreateConversation/helpers.d.ts +8 -0
  652. package/dist/types/hooks/useCreateConversation/helpers.d.ts.map +1 -0
  653. package/dist/types/hooks/useCreateConversation/index.d.ts +2 -0
  654. package/dist/types/hooks/useCreateConversation/index.d.ts.map +1 -0
  655. package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts +11 -0
  656. package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts.map +1 -0
  657. package/dist/types/hooks/useDeviceSwitcher/index.d.ts +2 -0
  658. package/dist/types/hooks/useDeviceSwitcher/index.d.ts.map +1 -0
  659. package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts +9 -0
  660. package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts.map +1 -0
  661. package/dist/types/hooks/useDevices/index.d.ts +2 -0
  662. package/dist/types/hooks/useDevices/index.d.ts.map +1 -0
  663. package/dist/types/hooks/useDevices/useDevices.d.ts +6 -0
  664. package/dist/types/hooks/useDevices/useDevices.d.ts.map +1 -0
  665. package/dist/types/hooks/useMediaPermissions/index.d.ts +3 -0
  666. package/dist/types/hooks/useMediaPermissions/index.d.ts.map +1 -0
  667. package/dist/types/hooks/useMediaPermissions/types.d.ts +3 -0
  668. package/dist/types/hooks/useMediaPermissions/types.d.ts.map +1 -0
  669. package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts +7 -0
  670. package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts.map +1 -0
  671. package/dist/types/hooks/useMediaRecorder/index.d.ts +2 -0
  672. package/dist/types/hooks/useMediaRecorder/index.d.ts.map +1 -0
  673. package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts +39 -0
  674. package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts.map +1 -0
  675. package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts +70 -0
  676. package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts.map +1 -0
  677. package/dist/types/hooks/useMicrophone/index.d.ts +2 -0
  678. package/dist/types/hooks/useMicrophone/index.d.ts.map +1 -0
  679. package/dist/types/hooks/useMicrophone/useMicrophone.d.ts +8 -0
  680. package/dist/types/hooks/useMicrophone/useMicrophone.d.ts.map +1 -0
  681. package/dist/types/hooks/useParticipantTrack/index.d.ts +2 -0
  682. package/dist/types/hooks/useParticipantTrack/index.d.ts.map +1 -0
  683. package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts +11 -0
  684. package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts.map +1 -0
  685. package/dist/types/hooks/usePictureInPicture/index.d.ts +6 -0
  686. package/dist/types/hooks/usePictureInPicture/index.d.ts.map +1 -0
  687. package/dist/types/hooks/usePictureInPicture/state.d.ts +8 -0
  688. package/dist/types/hooks/usePictureInPicture/state.d.ts.map +1 -0
  689. package/dist/types/hooks/usePictureInPicture/types.d.ts +25 -0
  690. package/dist/types/hooks/usePictureInPicture/types.d.ts.map +1 -0
  691. package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts +3 -0
  692. package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts.map +1 -0
  693. package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts +3 -0
  694. package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts.map +1 -0
  695. package/dist/types/hooks/useScreenShare/index.d.ts +2 -0
  696. package/dist/types/hooks/useScreenShare/index.d.ts.map +1 -0
  697. package/dist/types/hooks/useScreenShare/useScreenShare.d.ts +13 -0
  698. package/dist/types/hooks/useScreenShare/useScreenShare.d.ts.map +1 -0
  699. package/dist/types/hooks/useSpeaker/index.d.ts +2 -0
  700. package/dist/types/hooks/useSpeaker/index.d.ts.map +1 -0
  701. package/dist/types/hooks/useSpeaker/useSpeaker.d.ts +6 -0
  702. package/dist/types/hooks/useSpeaker/useSpeaker.d.ts.map +1 -0
  703. package/dist/types/hooks/useTextChat/index.d.ts +2 -0
  704. package/dist/types/hooks/useTextChat/index.d.ts.map +1 -0
  705. package/dist/types/hooks/useTextChat/usePendingMessages.d.ts +11 -0
  706. package/dist/types/hooks/useTextChat/usePendingMessages.d.ts.map +1 -0
  707. package/dist/types/hooks/useTextChat/useTextChat.d.ts +21 -0
  708. package/dist/types/hooks/useTextChat/useTextChat.d.ts.map +1 -0
  709. package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts +8 -0
  710. package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts.map +1 -0
  711. package/dist/types/hooks/useTools/index.d.ts +4 -0
  712. package/dist/types/hooks/useTools/index.d.ts.map +1 -0
  713. package/dist/types/hooks/useTools/model/errors.d.ts +4 -0
  714. package/dist/types/hooks/useTools/model/errors.d.ts.map +1 -0
  715. package/dist/types/hooks/useTools/model/types.d.ts +27 -0
  716. package/dist/types/hooks/useTools/model/types.d.ts.map +1 -0
  717. package/dist/types/hooks/useTools/public/useTools.d.ts +2 -0
  718. package/dist/types/hooks/useTools/public/useTools.d.ts.map +1 -0
  719. package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts +9 -0
  720. package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts.map +1 -0
  721. package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts +3 -0
  722. package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts.map +1 -0
  723. package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts +11 -0
  724. package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts.map +1 -0
  725. package/dist/types/hooks/useTools/runtime/types.d.ts +35 -0
  726. package/dist/types/hooks/useTools/runtime/types.d.ts.map +1 -0
  727. package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts +9 -0
  728. package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts.map +1 -0
  729. package/dist/types/hooks/useTools/store/state.d.ts +17 -0
  730. package/dist/types/hooks/useTools/store/state.d.ts.map +1 -0
  731. package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts +4 -0
  732. package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts.map +1 -0
  733. package/dist/types/hooks/useTools/utils/serialize.d.ts +3 -0
  734. package/dist/types/hooks/useTools/utils/serialize.d.ts.map +1 -0
  735. package/dist/types/hooks/useTranscriptions/index.d.ts +3 -0
  736. package/dist/types/hooks/useTranscriptions/index.d.ts.map +1 -0
  737. package/dist/types/hooks/useTranscriptions/types.d.ts +5 -0
  738. package/dist/types/hooks/useTranscriptions/types.d.ts.map +1 -0
  739. package/dist/types/hooks/useTranscriptions/useTranscription.d.ts +3 -0
  740. package/dist/types/hooks/useTranscriptions/useTranscription.d.ts.map +1 -0
  741. package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts +3 -0
  742. package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts.map +1 -0
  743. package/dist/types/hooks/useUserActivity/index.d.ts +2 -0
  744. package/dist/types/hooks/useUserActivity/index.d.ts.map +1 -0
  745. package/dist/types/hooks/useUserActivity/useUserActivity.d.ts +8 -0
  746. package/dist/types/hooks/useUserActivity/useUserActivity.d.ts.map +1 -0
  747. package/dist/types/livekit/components.d.ts +2 -0
  748. package/dist/types/livekit/components.d.ts.map +1 -0
  749. package/dist/types/livekit/sdk.d.ts +2 -0
  750. package/dist/types/livekit/sdk.d.ts.map +1 -0
  751. package/dist/types/sdk-consumer/context.d.ts +12 -0
  752. package/dist/types/sdk-consumer/context.d.ts.map +1 -0
  753. package/dist/types/sdk-consumer/index.d.ts +2 -0
  754. package/dist/types/sdk-consumer/index.d.ts.map +1 -0
  755. package/dist/types/sdk.d.ts +25 -0
  756. package/dist/types/sdk.d.ts.map +1 -0
  757. package/dist/types/services/FetchPersonaChatService.d.ts +15 -0
  758. package/dist/types/services/FetchPersonaChatService.d.ts.map +1 -0
  759. package/dist/types/types/http.d.ts +15 -0
  760. package/dist/types/types/http.d.ts.map +1 -0
  761. package/dist/types/types/index.d.ts +4 -0
  762. package/dist/types/types/index.d.ts.map +1 -0
  763. package/dist/types/types/service.d.ts +62 -0
  764. package/dist/types/types/service.d.ts.map +1 -0
  765. package/dist/types/utils/captureImage/captureImage.d.ts +3 -0
  766. package/dist/types/utils/captureImage/captureImage.d.ts.map +1 -0
  767. package/dist/types/utils/captureImage/helpers.d.ts +4 -0
  768. package/dist/types/utils/captureImage/helpers.d.ts.map +1 -0
  769. package/dist/types/utils/captureImage/index.d.ts +3 -0
  770. package/dist/types/utils/captureImage/index.d.ts.map +1 -0
  771. package/dist/types/utils/captureImage/types.d.ts +9 -0
  772. package/dist/types/utils/captureImage/types.d.ts.map +1 -0
  773. package/dist/types/utils/compatibility/compatibility.d.ts +3 -0
  774. package/dist/types/utils/compatibility/compatibility.d.ts.map +1 -0
  775. package/dist/types/utils/compatibility/index.d.ts +2 -0
  776. package/dist/types/utils/compatibility/index.d.ts.map +1 -0
  777. package/dist/types/utils.d.ts +2 -0
  778. package/dist/types/utils.d.ts.map +1 -0
  779. package/livekit/components/package.json +5 -0
  780. package/livekit/sdk/package.json +5 -0
  781. package/livekit-client.patch +19 -0
  782. package/package.json +108 -0
  783. package/sdk/package.json +5 -0
  784. package/tpa/package.json +5 -0
  785. package/utils/package.json +5 -0
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.RecorderErrors = exports.ReactMediaRecorder = void 0;
5
+ exports.useReactMediaRecorder = useReactMediaRecorder;
6
+ var _extendableMediaRecorder = require("extendable-media-recorder");
7
+ var _react = require("react");
8
+ var _extendableMediaRecorderWavEncoder = require("extendable-media-recorder-wav-encoder");
9
+ /* eslint-disable no-undef */
10
+ /**
11
+ * Experimental (optional).
12
+ * An enumerated value specifying whether the browser should allow the user to select the current tab for capture.
13
+ * This helps to avoid the "infinite hall of mirrors" effect experienced when a video conferencing app inadvertently shares its own display.
14
+ * Possible values are include, which hints that the browser should include the current tab in the choices offered for capture,
15
+ * and exclude, which hints that it should be excluded.
16
+ * A default value is not mandated by the spec.
17
+ * See specs at: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#selfbrowsersurface
18
+ */
19
+ /**
20
+ * Experimental (optional).
21
+ * A boolean; a value of true instructs the browser to offer the current tab as the most prominent capture source, i.e. as a separate "This Tab" option in the "Choose what to share" options presented to the user.
22
+ * This is useful as many app types generally just want to share the current tab.
23
+ * See specs at: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#prefercurrenttab
24
+ */
25
+ let RecorderErrors = exports.RecorderErrors = /*#__PURE__*/function (RecorderErrors) {
26
+ RecorderErrors["AbortError"] = "media_aborted";
27
+ RecorderErrors["NotAllowedError"] = "permission_denied";
28
+ RecorderErrors["NotFoundError"] = "no_specified_media_found";
29
+ RecorderErrors["NotReadableError"] = "media_in_use";
30
+ RecorderErrors["OverconstrainedError"] = "invalid_media_constraints";
31
+ RecorderErrors["TypeError"] = "no_constraints";
32
+ RecorderErrors["NONE"] = "";
33
+ RecorderErrors["NO_RECORDER"] = "recorder_error";
34
+ return RecorderErrors;
35
+ }({});
36
+ const stopMediaStream = stream => {
37
+ if (!stream) {
38
+ return;
39
+ }
40
+ stream.getTracks().forEach(track => track.stop());
41
+ };
42
+ function useReactMediaRecorder({
43
+ audio = true,
44
+ video = false,
45
+ selfBrowserSurface = undefined,
46
+ preferCurrentTab = false,
47
+ onStop = () => null,
48
+ onStart = () => null,
49
+ blobPropertyBag,
50
+ screen = false,
51
+ systemAudio = false,
52
+ mediaRecorderOptions = undefined,
53
+ customMediaStream = null,
54
+ stopStreamsOnStop = true,
55
+ askPermissionOnMount = false
56
+ }) {
57
+ const mediaRecorder = (0, _react.useRef)(null);
58
+ const mediaChunks = (0, _react.useRef)([]);
59
+ const mediaStream = (0, _react.useRef)(null);
60
+ const mediaStreamRequestId = (0, _react.useRef)(0);
61
+ const shouldReleaseMediaStream = (0, _react.useRef)(false);
62
+ const [status, setStatus] = (0, _react.useState)('idle');
63
+ const [isAudioMuted, setIsAudioMuted] = (0, _react.useState)(false);
64
+ const [mediaBlobUrl, setMediaBlobUrl] = (0, _react.useState)(undefined);
65
+ const [error, setError] = (0, _react.useState)('NONE');
66
+ const [init, setInit] = (0, _react.useState)(false);
67
+ (0, _react.useEffect)(() => {
68
+ if (init) {
69
+ return;
70
+ }
71
+ const setup = async () => {
72
+ try {
73
+ await (0, _extendableMediaRecorder.register)(await (0, _extendableMediaRecorderWavEncoder.connect)());
74
+ } catch (e) {
75
+ //
76
+ }
77
+ setInit(true); // now runs only AFTER the encoder is registered
78
+ };
79
+ setup();
80
+ }, []);
81
+ const getMediaStream = (0, _react.useCallback)(async () => {
82
+ shouldReleaseMediaStream.current = false;
83
+ const requestId = ++mediaStreamRequestId.current;
84
+ setStatus('acquiring_media');
85
+ const requiredMedia = {
86
+ audio: typeof audio === 'boolean' ? !!audio : audio,
87
+ video: typeof video === 'boolean' ? !!video : video
88
+ };
89
+ try {
90
+ let stream;
91
+ if (customMediaStream) {
92
+ stream = customMediaStream;
93
+ } else if (screen) {
94
+ stream = await window.navigator.mediaDevices.getDisplayMedia({
95
+ video: video || true,
96
+ audio: systemAudio,
97
+ // @ts-expect-error
98
+ selfBrowserSurface,
99
+ preferCurrentTab,
100
+ suppressLocalAudioPlayback: false
101
+ });
102
+ stream.getVideoTracks()[0].addEventListener('ended', () => {
103
+ stopRecording();
104
+ });
105
+ // Add microphone audio if requested (and not using system audio only)
106
+ if (audio && !systemAudio) {
107
+ const audioStream = await window.navigator.mediaDevices.getUserMedia({
108
+ audio
109
+ });
110
+ audioStream.getAudioTracks().forEach(audioTrack => stream.addTrack(audioTrack));
111
+ }
112
+ } else {
113
+ stream = await window.navigator.mediaDevices.getUserMedia(requiredMedia);
114
+ }
115
+ if (shouldReleaseMediaStream.current || requestId !== mediaStreamRequestId.current) {
116
+ stopMediaStream(stream);
117
+ return;
118
+ }
119
+ mediaStream.current = stream;
120
+ setStatus('idle');
121
+ } catch (error) {
122
+ setError(error.name);
123
+ setStatus('idle');
124
+ }
125
+ }, [audio, video, screen, systemAudio]);
126
+ (0, _react.useEffect)(() => {
127
+ if (!window.MediaRecorder) {
128
+ throw new Error('Unsupported Browser');
129
+ }
130
+ if (screen) {
131
+ if (!window.navigator.mediaDevices.getDisplayMedia) {
132
+ throw new Error("This browser doesn't support screen capturing");
133
+ }
134
+ }
135
+ const checkConstraints = mediaType => {
136
+ const supportedMediaConstraints = navigator.mediaDevices.getSupportedConstraints();
137
+ const unSupportedConstraints = Object.keys(mediaType).filter(constraint => !supportedMediaConstraints[constraint]);
138
+ if (unSupportedConstraints.length > 0) {
139
+ console.error(`The constraints ${unSupportedConstraints.join(',')} doesn't support on this browser. Please check your ReactMediaRecorder component.`);
140
+ }
141
+ };
142
+ if (typeof audio === 'object') {
143
+ checkConstraints(audio);
144
+ }
145
+ if (typeof video === 'object') {
146
+ checkConstraints(video);
147
+ }
148
+ if (init && mediaRecorderOptions && mediaRecorderOptions.mimeType) {
149
+ if (!_extendableMediaRecorder.MediaRecorder.isTypeSupported(mediaRecorderOptions.mimeType)) {
150
+ console.error(`The specified MIME type you supplied for MediaRecorder doesn't support this browser`);
151
+ }
152
+ }
153
+ if (!mediaStream.current && askPermissionOnMount) {
154
+ getMediaStream();
155
+ }
156
+ return () => {
157
+ shouldReleaseMediaStream.current = true;
158
+ mediaStreamRequestId.current += 1;
159
+ stopMediaStream(mediaStream.current);
160
+ mediaStream.current = null;
161
+ };
162
+ }, [audio, screen, video, getMediaStream, mediaRecorderOptions, askPermissionOnMount, init]);
163
+
164
+ // Media Recorder Handlers
165
+
166
+ const startRecording = async () => {
167
+ setError('NONE');
168
+ if (!mediaStream.current) {
169
+ await getMediaStream();
170
+ }
171
+ if (mediaStream.current) {
172
+ const isStreamEnded = mediaStream.current.getTracks().some(track => track.readyState === 'ended');
173
+ if (isStreamEnded) {
174
+ await getMediaStream();
175
+ }
176
+
177
+ // User blocked the permissions (getMediaStream errored out)
178
+ if (!mediaStream.current.active) {
179
+ return;
180
+ }
181
+ mediaRecorder.current = new _extendableMediaRecorder.MediaRecorder(mediaStream.current, mediaRecorderOptions || undefined);
182
+ mediaRecorder.current.ondataavailable = onRecordingActive;
183
+ mediaRecorder.current.onstop = onRecordingStop;
184
+ mediaRecorder.current.onstart = onRecordingStart;
185
+ mediaRecorder.current.onerror = () => {
186
+ setError('NO_RECORDER');
187
+ setStatus('idle');
188
+ };
189
+ mediaRecorder.current.start(1000);
190
+ setStatus('recording');
191
+ }
192
+ };
193
+ const onRecordingActive = ({
194
+ data
195
+ }) => {
196
+ mediaChunks.current.push(data);
197
+ };
198
+ const onRecordingStart = () => {
199
+ onStart();
200
+ };
201
+ const onRecordingStop = () => {
202
+ const chunks = mediaChunks.current;
203
+ if (chunks.length === 0) {
204
+ setStatus('stopped');
205
+ return;
206
+ }
207
+ const [firstChunk] = chunks;
208
+ const blobProperty = {
209
+ type: firstChunk.type,
210
+ ...(blobPropertyBag || (video ? {
211
+ type: 'video/mp4'
212
+ } : {
213
+ type: 'audio/wav'
214
+ }))
215
+ };
216
+ const blob = new Blob(chunks, blobProperty);
217
+ const url = URL.createObjectURL(blob);
218
+ setStatus('stopped');
219
+ setMediaBlobUrl(url);
220
+ onStop(url, blob);
221
+ // Clear chunks after processing
222
+ mediaChunks.current = [];
223
+ };
224
+ const muteAudio = mute => {
225
+ setIsAudioMuted(mute);
226
+ if (mediaStream.current) {
227
+ mediaStream.current.getAudioTracks().forEach(audioTrack => audioTrack.enabled = !mute);
228
+ }
229
+ };
230
+ const pauseRecording = () => {
231
+ if (mediaRecorder.current && mediaRecorder.current.state === 'recording') {
232
+ setStatus('paused');
233
+ mediaRecorder.current.pause();
234
+ }
235
+ };
236
+ const resumeRecording = () => {
237
+ if (mediaRecorder.current && mediaRecorder.current.state === 'paused') {
238
+ setStatus('recording');
239
+ mediaRecorder.current.resume();
240
+ }
241
+ };
242
+ const stopRecording = () => {
243
+ if (mediaRecorder.current) {
244
+ if (mediaRecorder.current.state !== 'inactive') {
245
+ setStatus('stopping');
246
+ mediaRecorder.current.stop();
247
+ if (stopStreamsOnStop) {
248
+ stopMediaStream(mediaStream.current);
249
+ }
250
+ // Note: chunks are cleared in onRecordingStop after blob is created
251
+ }
252
+ }
253
+ };
254
+
255
+ // use this to release the stream when the component is unmounted
256
+ const releaseStream = () => {
257
+ shouldReleaseMediaStream.current = true;
258
+ mediaStreamRequestId.current += 1;
259
+ if (mediaRecorder.current && mediaRecorder.current.state !== 'inactive') {
260
+ mediaRecorder.current.stop();
261
+ }
262
+ stopMediaStream(mediaStream.current);
263
+ mediaStream.current = null;
264
+ setStatus('idle');
265
+ setIsAudioMuted(false);
266
+ };
267
+ const previewStream = (0, _react.useMemo)(() => {
268
+ return mediaStream.current ? new MediaStream(mediaStream.current.getVideoTracks()) : null;
269
+ }, [status]);
270
+ const previewAudioStream = (0, _react.useMemo)(() => {
271
+ return mediaStream.current ? new MediaStream(mediaStream.current.getAudioTracks()) : null;
272
+ }, [status]);
273
+ return {
274
+ error: RecorderErrors[error],
275
+ muteAudio: () => muteAudio(true),
276
+ unMuteAudio: () => muteAudio(false),
277
+ startRecording,
278
+ pauseRecording,
279
+ resumeRecording,
280
+ stopRecording,
281
+ releaseStream,
282
+ mediaBlobUrl,
283
+ status,
284
+ isAudioMuted,
285
+ previewStream,
286
+ previewAudioStream,
287
+ clearBlobUrl: () => {
288
+ if (mediaBlobUrl) {
289
+ URL.revokeObjectURL(mediaBlobUrl);
290
+ }
291
+ setMediaBlobUrl(undefined);
292
+ setStatus('idle');
293
+ }
294
+ };
295
+ }
296
+ const ReactMediaRecorder = props => props.render(useReactMediaRecorder(props));
297
+ exports.ReactMediaRecorder = ReactMediaRecorder;
298
+ //# sourceMappingURL=useReactRecorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_extendableMediaRecorder","require","_react","_extendableMediaRecorderWavEncoder","RecorderErrors","exports","stopMediaStream","stream","getTracks","forEach","track","stop","useReactMediaRecorder","audio","video","selfBrowserSurface","undefined","preferCurrentTab","onStop","onStart","blobPropertyBag","screen","systemAudio","mediaRecorderOptions","customMediaStream","stopStreamsOnStop","askPermissionOnMount","mediaRecorder","useRef","mediaChunks","mediaStream","mediaStreamRequestId","shouldReleaseMediaStream","status","setStatus","useState","isAudioMuted","setIsAudioMuted","mediaBlobUrl","setMediaBlobUrl","error","setError","init","setInit","useEffect","setup","register","connect","e","getMediaStream","useCallback","current","requestId","requiredMedia","window","navigator","mediaDevices","getDisplayMedia","suppressLocalAudioPlayback","getVideoTracks","addEventListener","stopRecording","audioStream","getUserMedia","getAudioTracks","audioTrack","addTrack","name","MediaRecorder","Error","checkConstraints","mediaType","supportedMediaConstraints","getSupportedConstraints","unSupportedConstraints","Object","keys","filter","constraint","length","console","join","mimeType","ExtendableMediaRecorder","isTypeSupported","startRecording","isStreamEnded","some","readyState","active","ondataavailable","onRecordingActive","onstop","onRecordingStop","onstart","onRecordingStart","onerror","start","data","push","chunks","firstChunk","blobProperty","type","blob","Blob","url","URL","createObjectURL","muteAudio","mute","enabled","pauseRecording","state","pause","resumeRecording","resume","releaseStream","previewStream","useMemo","MediaStream","previewAudioStream","unMuteAudio","clearBlobUrl","revokeObjectURL","ReactMediaRecorder","props","render"],"sources":["../../../../src/hooks/useMediaRecorder/useReactRecorder.tsx"],"sourcesContent":["/* eslint-disable no-undef */\nimport {\n register,\n MediaRecorder as ExtendableMediaRecorder,\n IMediaRecorder,\n} from 'extendable-media-recorder';\nimport {\n ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState,\n useMemo,\n} from 'react';\nimport { connect } from 'extendable-media-recorder-wav-encoder';\n\nexport type ReactMediaRecorderRenderProps = {\n error: string;\n muteAudio: () => void;\n unMuteAudio: () => void;\n startRecording: () => void;\n pauseRecording: () => void;\n resumeRecording: () => void;\n stopRecording: () => void;\n mediaBlobUrl: undefined | string;\n status: StatusMessages;\n isAudioMuted: boolean;\n previewStream: MediaStream | null;\n previewAudioStream: MediaStream | null;\n clearBlobUrl: () => void;\n releaseStream: () => void;\n};\n\nexport type ReactMediaRecorderHookProps = {\n audio?: boolean | MediaTrackConstraints;\n video?: boolean | MediaTrackConstraints;\n screen?: boolean;\n /**\n * When true, captures system audio from the tab/screen being shared\n * instead of microphone audio. Only works when screen=true.\n */\n systemAudio?: boolean | MediaTrackConstraints;\n selfBrowserSurface?: SelfBrowserSurface;\n preferCurrentTab?: PreferCurrentTab;\n onStop?: (blobUrl: string, blob: Blob) => void;\n onStart?: () => void;\n blobPropertyBag?: BlobPropertyBag;\n mediaRecorderOptions?: MediaRecorderOptions | undefined;\n customMediaStream?: MediaStream | null;\n stopStreamsOnStop?: boolean;\n askPermissionOnMount?: boolean;\n};\nexport type ReactMediaRecorderProps = ReactMediaRecorderHookProps & {\n render: (props: ReactMediaRecorderRenderProps) => ReactElement;\n};\n\n/**\n * Experimental (optional).\n * An enumerated value specifying whether the browser should allow the user to select the current tab for capture.\n * This helps to avoid the \"infinite hall of mirrors\" effect experienced when a video conferencing app inadvertently shares its own display.\n * Possible values are include, which hints that the browser should include the current tab in the choices offered for capture,\n * and exclude, which hints that it should be excluded.\n * A default value is not mandated by the spec.\n * See specs at: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#selfbrowsersurface\n */\nexport type SelfBrowserSurface = undefined | 'include' | 'exclude';\n\n/**\n * Experimental (optional).\n * A boolean; a value of true instructs the browser to offer the current tab as the most prominent capture source, i.e. as a separate \"This Tab\" option in the \"Choose what to share\" options presented to the user.\n * This is useful as many app types generally just want to share the current tab.\n * See specs at: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#prefercurrenttab\n */\nexport type PreferCurrentTab = true | false;\n\nexport type StatusMessages =\n | 'media_aborted'\n | 'permission_denied'\n | 'no_specified_media_found'\n | 'media_in_use'\n | 'invalid_media_constraints'\n | 'no_constraints'\n | 'recorder_error'\n | 'idle'\n | 'acquiring_media'\n | 'delayed_start'\n | 'recording'\n | 'stopping'\n | 'stopped'\n | 'paused';\n\nexport enum RecorderErrors {\n AbortError = 'media_aborted',\n NotAllowedError = 'permission_denied',\n NotFoundError = 'no_specified_media_found',\n NotReadableError = 'media_in_use',\n OverconstrainedError = 'invalid_media_constraints',\n TypeError = 'no_constraints',\n NONE = '',\n NO_RECORDER = 'recorder_error',\n}\n\nconst stopMediaStream = (stream: MediaStream | null) => {\n if (!stream) {\n return;\n }\n\n stream.getTracks().forEach((track) => track.stop());\n};\n\nexport function useReactMediaRecorder({\n audio = true,\n video = false,\n selfBrowserSurface = undefined,\n preferCurrentTab = false,\n onStop = () => null,\n onStart = () => null,\n blobPropertyBag,\n screen = false,\n systemAudio = false,\n mediaRecorderOptions = undefined,\n customMediaStream = null,\n stopStreamsOnStop = true,\n askPermissionOnMount = false,\n}: ReactMediaRecorderHookProps): ReactMediaRecorderRenderProps {\n const mediaRecorder = useRef<IMediaRecorder | null>(null);\n const mediaChunks = useRef<Blob[]>([]);\n const mediaStream = useRef<MediaStream | null>(null);\n const mediaStreamRequestId = useRef(0);\n const shouldReleaseMediaStream = useRef(false);\n const [status, setStatus] = useState<StatusMessages>('idle');\n const [isAudioMuted, setIsAudioMuted] = useState<boolean>(false);\n const [mediaBlobUrl, setMediaBlobUrl] = useState<string | undefined>(\n undefined,\n );\n const [error, setError] = useState<keyof typeof RecorderErrors>('NONE');\n const [init, setInit] = useState(false);\n\n useEffect(() => {\n if (init) {\n return;\n }\n\n const setup = async () => {\n try {\n await register(await connect());\n } catch (e) {\n //\n }\n setInit(true); // now runs only AFTER the encoder is registered\n };\n\n setup();\n }, []);\n\n const getMediaStream = useCallback(async () => {\n shouldReleaseMediaStream.current = false;\n const requestId = ++mediaStreamRequestId.current;\n setStatus('acquiring_media');\n const requiredMedia: MediaStreamConstraints = {\n audio: typeof audio === 'boolean' ? !!audio : audio,\n video: typeof video === 'boolean' ? !!video : video,\n };\n try {\n let stream: MediaStream;\n\n if (customMediaStream) {\n stream = customMediaStream;\n } else if (screen) {\n stream = (await window.navigator.mediaDevices.getDisplayMedia({\n video: video || true,\n audio: systemAudio,\n // @ts-expect-error\n selfBrowserSurface,\n preferCurrentTab,\n suppressLocalAudioPlayback: false,\n })) as MediaStream;\n stream.getVideoTracks()[0].addEventListener('ended', () => {\n stopRecording();\n });\n // Add microphone audio if requested (and not using system audio only)\n if (audio && !systemAudio) {\n const audioStream = await window.navigator.mediaDevices.getUserMedia({\n audio,\n });\n\n audioStream\n .getAudioTracks()\n .forEach((audioTrack) => stream.addTrack(audioTrack));\n }\n } else {\n stream = await window.navigator.mediaDevices.getUserMedia(\n requiredMedia,\n );\n }\n\n if (\n shouldReleaseMediaStream.current ||\n requestId !== mediaStreamRequestId.current\n ) {\n stopMediaStream(stream);\n return;\n }\n\n mediaStream.current = stream;\n setStatus('idle');\n } catch (error: any) {\n setError(error.name);\n setStatus('idle');\n }\n }, [audio, video, screen, systemAudio]);\n\n useEffect(() => {\n if (!window.MediaRecorder) {\n throw new Error('Unsupported Browser');\n }\n\n if (screen) {\n if (!window.navigator.mediaDevices.getDisplayMedia) {\n throw new Error(\"This browser doesn't support screen capturing\");\n }\n }\n\n const checkConstraints = (mediaType: MediaTrackConstraints) => {\n const supportedMediaConstraints =\n navigator.mediaDevices.getSupportedConstraints();\n const unSupportedConstraints = Object.keys(mediaType).filter(\n (constraint) =>\n !(supportedMediaConstraints as { [key: string]: any })[constraint],\n );\n\n if (unSupportedConstraints.length > 0) {\n console.error(\n `The constraints ${unSupportedConstraints.join(\n ',',\n )} doesn't support on this browser. Please check your ReactMediaRecorder component.`,\n );\n }\n };\n\n if (typeof audio === 'object') {\n checkConstraints(audio);\n }\n if (typeof video === 'object') {\n checkConstraints(video);\n }\n\n if (init && mediaRecorderOptions && mediaRecorderOptions.mimeType) {\n if (\n !ExtendableMediaRecorder.isTypeSupported(mediaRecorderOptions.mimeType)\n ) {\n console.error(\n `The specified MIME type you supplied for MediaRecorder doesn't support this browser`,\n );\n }\n }\n\n if (!mediaStream.current && askPermissionOnMount) {\n getMediaStream();\n }\n\n return () => {\n shouldReleaseMediaStream.current = true;\n mediaStreamRequestId.current += 1;\n stopMediaStream(mediaStream.current);\n mediaStream.current = null;\n };\n }, [\n audio,\n screen,\n video,\n getMediaStream,\n mediaRecorderOptions,\n askPermissionOnMount,\n init,\n ]);\n\n // Media Recorder Handlers\n\n const startRecording = async () => {\n setError('NONE');\n if (!mediaStream.current) {\n await getMediaStream();\n }\n if (mediaStream.current) {\n const isStreamEnded = mediaStream.current\n .getTracks()\n .some((track) => track.readyState === 'ended');\n if (isStreamEnded) {\n await getMediaStream();\n }\n\n // User blocked the permissions (getMediaStream errored out)\n if (!mediaStream.current.active) {\n return;\n }\n mediaRecorder.current = new ExtendableMediaRecorder(\n mediaStream.current,\n mediaRecorderOptions || undefined,\n );\n mediaRecorder.current.ondataavailable = onRecordingActive;\n mediaRecorder.current.onstop = onRecordingStop;\n mediaRecorder.current.onstart = onRecordingStart;\n mediaRecorder.current.onerror = () => {\n setError('NO_RECORDER');\n setStatus('idle');\n };\n mediaRecorder.current.start(1000);\n setStatus('recording');\n }\n };\n\n const onRecordingActive = ({ data }: BlobEvent) => {\n mediaChunks.current.push(data);\n };\n\n const onRecordingStart = () => {\n onStart();\n };\n\n const onRecordingStop = () => {\n const chunks = mediaChunks.current;\n if (chunks.length === 0) {\n setStatus('stopped');\n return;\n }\n const [firstChunk] = chunks;\n const blobProperty: BlobPropertyBag = {\n type: firstChunk.type,\n ...(blobPropertyBag ||\n (video ? { type: 'video/mp4' } : { type: 'audio/wav' })),\n };\n const blob = new Blob(chunks, blobProperty);\n const url = URL.createObjectURL(blob);\n setStatus('stopped');\n setMediaBlobUrl(url);\n onStop(url, blob);\n // Clear chunks after processing\n mediaChunks.current = [];\n };\n\n const muteAudio = (mute: boolean) => {\n setIsAudioMuted(mute);\n if (mediaStream.current) {\n mediaStream.current\n .getAudioTracks()\n .forEach((audioTrack) => (audioTrack.enabled = !mute));\n }\n };\n\n const pauseRecording = () => {\n if (mediaRecorder.current && mediaRecorder.current.state === 'recording') {\n setStatus('paused');\n mediaRecorder.current.pause();\n }\n };\n const resumeRecording = () => {\n if (mediaRecorder.current && mediaRecorder.current.state === 'paused') {\n setStatus('recording');\n mediaRecorder.current.resume();\n }\n };\n\n const stopRecording = () => {\n if (mediaRecorder.current) {\n if (mediaRecorder.current.state !== 'inactive') {\n setStatus('stopping');\n mediaRecorder.current.stop();\n if (stopStreamsOnStop) {\n stopMediaStream(mediaStream.current);\n }\n // Note: chunks are cleared in onRecordingStop after blob is created\n }\n }\n };\n\n // use this to release the stream when the component is unmounted\n const releaseStream = () => {\n shouldReleaseMediaStream.current = true;\n mediaStreamRequestId.current += 1;\n\n if (mediaRecorder.current && mediaRecorder.current.state !== 'inactive') {\n mediaRecorder.current.stop();\n }\n\n stopMediaStream(mediaStream.current);\n mediaStream.current = null;\n setStatus('idle');\n setIsAudioMuted(false);\n };\n\n const previewStream = useMemo(() => {\n return mediaStream.current\n ? new MediaStream(mediaStream.current.getVideoTracks())\n : null;\n }, [status]);\n\n const previewAudioStream = useMemo(() => {\n return mediaStream.current\n ? new MediaStream(mediaStream.current.getAudioTracks())\n : null;\n }, [status]);\n\n return {\n error: RecorderErrors[error],\n muteAudio: () => muteAudio(true),\n unMuteAudio: () => muteAudio(false),\n startRecording,\n pauseRecording,\n resumeRecording,\n stopRecording,\n releaseStream,\n mediaBlobUrl,\n status,\n isAudioMuted,\n previewStream,\n previewAudioStream,\n clearBlobUrl: () => {\n if (mediaBlobUrl) {\n URL.revokeObjectURL(mediaBlobUrl);\n }\n setMediaBlobUrl(undefined);\n setStatus('idle');\n },\n };\n}\n\nexport const ReactMediaRecorder = (props: ReactMediaRecorderProps) =>\n props.render(useReactMediaRecorder(props));\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _useMicrophone = require("./useMicrophone");
5
+ Object.keys(_useMicrophone).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _useMicrophone[key]) return;
8
+ exports[key] = _useMicrophone[key];
9
+ });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useMicrophone","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/hooks/useMicrophone/index.ts"],"sourcesContent":["export * from './useMicrophone';\n"],"mappings":";;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,cAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,cAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,cAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useMicrophone = useMicrophone;
5
+ var _jotai = require("jotai");
6
+ var state = _interopRequireWildcard(require("../../conversation/state"));
7
+ var _useDevices = require("../useDevices");
8
+ var _useDeviceSwitcher = require("../useDeviceSwitcher");
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
10
+ function useMicrophone() {
11
+ const devices = (0, _useDevices.useDevices)({
12
+ type: 'audioinput'
13
+ });
14
+ const [microphone, setMicrophone] = (0, _jotai.useAtom)(state.microphone);
15
+ (0, _useDeviceSwitcher.useDeviceSwitcher)({
16
+ device: microphone,
17
+ devices,
18
+ onChange: setMicrophone
19
+ });
20
+ return {
21
+ devices,
22
+ enabled: microphone.enabled,
23
+ deviceId: microphone.deviceId,
24
+ setEnabled(enabled) {
25
+ setMicrophone({
26
+ ...microphone,
27
+ enabled
28
+ });
29
+ },
30
+ setDeviceId(deviceId) {
31
+ setMicrophone({
32
+ ...microphone,
33
+ deviceId
34
+ });
35
+ }
36
+ };
37
+ }
38
+ //# sourceMappingURL=useMicrophone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_jotai","require","state","_interopRequireWildcard","_useDevices","_useDeviceSwitcher","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useMicrophone","devices","useDevices","type","microphone","setMicrophone","useAtom","useDeviceSwitcher","device","onChange","enabled","deviceId","setEnabled","setDeviceId"],"sources":["../../../../src/hooks/useMicrophone/useMicrophone.ts"],"sourcesContent":["import { useAtom } from 'jotai';\n\nimport * as state from '../../conversation/state';\n\nimport { useDevices } from '../useDevices';\nimport { useDeviceSwitcher } from '../useDeviceSwitcher';\n\nexport function useMicrophone() {\n const devices = useDevices({ type: 'audioinput' });\n const [microphone, setMicrophone] = useAtom(state.microphone);\n\n useDeviceSwitcher({\n device: microphone,\n devices,\n onChange: setMicrophone,\n });\n\n return {\n devices,\n enabled: microphone.enabled,\n deviceId: microphone.deviceId,\n setEnabled(enabled: boolean) {\n setMicrophone({ ...microphone, enabled });\n },\n setDeviceId(deviceId: string) {\n setMicrophone({ ...microphone, deviceId });\n },\n };\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AAAyD,SAAAE,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAElD,SAASkB,aAAaA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAAC,sBAAU,EAAC;IAAEC,IAAI,EAAE;EAAa,CAAC,CAAC;EAClD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,cAAO,EAAC7B,KAAK,CAAC2B,UAAU,CAAC;EAE7D,IAAAG,oCAAiB,EAAC;IAChBC,MAAM,EAAEJ,UAAU;IAClBH,OAAO;IACPQ,QAAQ,EAAEJ;EACZ,CAAC,CAAC;EAEF,OAAO;IACLJ,OAAO;IACPS,OAAO,EAAEN,UAAU,CAACM,OAAO;IAC3BC,QAAQ,EAAEP,UAAU,CAACO,QAAQ;IAC7BC,UAAUA,CAACF,OAAgB,EAAE;MAC3BL,aAAa,CAAC;QAAE,GAAGD,UAAU;QAAEM;MAAQ,CAAC,CAAC;IAC3C,CAAC;IACDG,WAAWA,CAACF,QAAgB,EAAE;MAC5BN,aAAa,CAAC;QAAE,GAAGD,UAAU;QAAEO;MAAS,CAAC,CAAC;IAC5C;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _useParticipantTrack = require("./useParticipantTrack");
5
+ Object.keys(_useParticipantTrack).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _useParticipantTrack[key]) return;
8
+ exports[key] = _useParticipantTrack[key];
9
+ });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useParticipantTrack","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/hooks/useParticipantTrack/index.ts"],"sourcesContent":["export * from './useParticipantTrack';\n"],"mappings":";;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,oBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,oBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,oBAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.Source = void 0;
5
+ exports.useParticipantTrack = useParticipantTrack;
6
+ var _componentsReact = require("@livekit/components-react");
7
+ var _livekitClient = require("livekit-client");
8
+ let Source = exports.Source = function (Source) {
9
+ Source[Source["Camera"] = _livekitClient.Track.Source.Camera] = "Camera";
10
+ Source[Source["Microphone"] = _livekitClient.Track.Source.Microphone] = "Microphone";
11
+ Source[Source["ScreenShare"] = _livekitClient.Track.Source.ScreenShare] = "ScreenShare";
12
+ return Source;
13
+ }({});
14
+ function useParticipantTrack({
15
+ type,
16
+ source
17
+ }) {
18
+ const track = (0, _componentsReact.useTracks)([source]).find(track => {
19
+ if (type === 'screen') {
20
+ return track.source === Source.ScreenShare;
21
+ }
22
+ if (type === 'user') {
23
+ return track.participant.isLocal;
24
+ }
25
+ if (type === 'agent') {
26
+ return track.participant.isAgent;
27
+ }
28
+ return false;
29
+ });
30
+ return (track == null ? void 0 : track.publication) || {};
31
+ }
32
+ //# sourceMappingURL=useParticipantTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_componentsReact","require","_livekitClient","Source","exports","Track","Camera","Microphone","ScreenShare","useParticipantTrack","type","source","track","useTracks","find","participant","isLocal","isAgent","publication"],"sources":["../../../../src/hooks/useParticipantTrack/useParticipantTrack.ts"],"sourcesContent":["import { useTracks } from '@livekit/components-react';\nimport { Track } from 'livekit-client';\n\nexport enum Source {\n Camera = Track.Source.Camera,\n Microphone = Track.Source.Microphone,\n ScreenShare = Track.Source.ScreenShare,\n}\n\nexport type UseParticipantTrackProps = {\n type: 'user' | 'agent' | 'screen';\n source: Source;\n};\n\nexport function useParticipantTrack({\n type,\n source,\n}: UseParticipantTrackProps) {\n const track = useTracks([source]).find((track) => {\n if (type === 'screen') {\n return track.source === Source.ScreenShare;\n }\n if (type === 'user') {\n return track.participant.isLocal;\n }\n if (type === 'agent') {\n return track.participant.isAgent;\n }\n return false;\n });\n\n return track?.publication! || {};\n}\n"],"mappings":";;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAAuC,IAE3BE,MAAM,GAAAC,OAAA,CAAAD,MAAA,aAANA,MAAM;EAANA,MAAM,CAANA,MAAM,aACPE,oBAAK,CAACF,MAAM,CAACG,MAAM;EADlBH,MAAM,CAANA,MAAM,iBAEHE,oBAAK,CAACF,MAAM,CAACI,UAAU;EAF1BJ,MAAM,CAANA,MAAM,kBAGFE,oBAAK,CAACF,MAAM,CAACK,WAAW;EAAA,OAH5BL,MAAM;AAAA;AAWX,SAASM,mBAAmBA,CAAC;EAClCC,IAAI;EACJC;AACwB,CAAC,EAAE;EAC3B,MAAMC,KAAK,GAAG,IAAAC,0BAAS,EAAC,CAACF,MAAM,CAAC,CAAC,CAACG,IAAI,CAAEF,KAAK,IAAK;IAChD,IAAIF,IAAI,KAAK,QAAQ,EAAE;MACrB,OAAOE,KAAK,CAACD,MAAM,KAAKR,MAAM,CAACK,WAAW;IAC5C;IACA,IAAIE,IAAI,KAAK,MAAM,EAAE;MACnB,OAAOE,KAAK,CAACG,WAAW,CAACC,OAAO;IAClC;IACA,IAAIN,IAAI,KAAK,OAAO,EAAE;MACpB,OAAOE,KAAK,CAACG,WAAW,CAACE,OAAO;IAClC;IACA,OAAO,KAAK;EACd,CAAC,CAAC;EAEF,OAAO,CAAAL,KAAK,oBAALA,KAAK,CAAEM,WAAW,KAAK,CAAC,CAAC;AAClC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.usePictureInPictureAuto = exports.usePictureInPicture = exports.pipVideoAtom = exports.pipSupportedAtom = exports.pipActiveAtom = void 0;
5
+ var _usePictureInPicture = require("./usePictureInPicture");
6
+ exports.usePictureInPicture = _usePictureInPicture.usePictureInPicture;
7
+ var _usePictureInPictureAuto = require("./usePictureInPictureAuto");
8
+ exports.usePictureInPictureAuto = _usePictureInPictureAuto.usePictureInPictureAuto;
9
+ var _state = require("./state");
10
+ exports.pipVideoAtom = _state.pipVideoAtom;
11
+ exports.pipActiveAtom = _state.pipActiveAtom;
12
+ exports.pipSupportedAtom = _state.pipSupportedAtom;
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_usePictureInPicture","require","exports","usePictureInPicture","_usePictureInPictureAuto","usePictureInPictureAuto","_state","pipVideoAtom","pipActiveAtom","pipSupportedAtom"],"sources":["../../../../src/hooks/usePictureInPicture/index.ts"],"sourcesContent":["export { usePictureInPicture } from './usePictureInPicture';\nexport type { UsePictureInPictureReturn } from './types';\n\n// Internal exports - not exported from package\nexport { usePictureInPictureAuto } from './usePictureInPictureAuto';\nexport type { UsePictureInPictureAutoOptions } from './types';\nexport { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';\n"],"mappings":";;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAA4DC,OAAA,CAAAC,mBAAA,GAAAH,oBAAA,CAAAG,mBAAA;AAI5D,IAAAC,wBAAA,GAAAH,OAAA;AAAoEC,OAAA,CAAAG,uBAAA,GAAAD,wBAAA,CAAAC,uBAAA;AAEpE,IAAAC,MAAA,GAAAL,OAAA;AAAwEC,OAAA,CAAAK,YAAA,GAAAD,MAAA,CAAAC,YAAA;AAAAL,OAAA,CAAAM,aAAA,GAAAF,MAAA,CAAAE,aAAA;AAAAN,OAAA,CAAAO,gBAAA,GAAAH,MAAA,CAAAG,gBAAA","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.pipVideoAtom = exports.pipSupportedAtom = exports.pipActiveAtom = void 0;
5
+ var _jotai = require("jotai");
6
+ var _compatibility = require("../../utils/compatibility/compatibility");
7
+ const pipVideoAtom = exports.pipVideoAtom = (0, _jotai.atom)(null);
8
+ const pipActiveAtom = exports.pipActiveAtom = (0, _jotai.atom)(false);
9
+ const pipSupportedAtom = exports.pipSupportedAtom = (0, _jotai.atom)(() => {
10
+ const browser = (0, _compatibility.detectBrowser)();
11
+ const pictureInPictureEnabled = typeof document !== 'undefined' && 'pictureInPictureEnabled' in document && document.pictureInPictureEnabled;
12
+ return browser !== 'safari' && pictureInPictureEnabled;
13
+ });
14
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_jotai","require","_compatibility","pipVideoAtom","exports","atom","pipActiveAtom","pipSupportedAtom","browser","detectBrowser","pictureInPictureEnabled","document"],"sources":["../../../../src/hooks/usePictureInPicture/state.ts"],"sourcesContent":["import { atom } from 'jotai';\nimport { detectBrowser } from '../../utils/compatibility/compatibility';\n\nexport const pipVideoAtom = atom<HTMLVideoElement | null>(null);\n\nexport const pipActiveAtom = atom(false);\n\nexport const pipSupportedAtom = atom(() => {\n const browser = detectBrowser();\n const pictureInPictureEnabled =\n typeof document !== 'undefined' &&\n 'pictureInPictureEnabled' in document &&\n document.pictureInPictureEnabled;\n\n return browser !== 'safari' && pictureInPictureEnabled;\n});\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEO,MAAME,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,WAAI,EAA0B,IAAI,CAAC;AAExD,MAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,IAAAD,WAAI,EAAC,KAAK,CAAC;AAEjC,MAAME,gBAAgB,GAAAH,OAAA,CAAAG,gBAAA,GAAG,IAAAF,WAAI,EAAC,MAAM;EACzC,MAAMG,OAAO,GAAG,IAAAC,4BAAa,EAAC,CAAC;EAC/B,MAAMC,uBAAuB,GAC3B,OAAOC,QAAQ,KAAK,WAAW,IAC/B,yBAAyB,IAAIA,QAAQ,IACrCA,QAAQ,CAACD,uBAAuB;EAElC,OAAOF,OAAO,KAAK,QAAQ,IAAIE,uBAAuB;AACxD,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/hooks/usePictureInPicture/types.ts"],"sourcesContent":["export type UsePictureInPictureAutoOptions = {\n /** Video or Canvas element to use for PiP */\n element: HTMLVideoElement | HTMLCanvasElement | null;\n /** Callback when entering PiP */\n onEnter?: () => void;\n /** Callback when exiting PiP */\n onExit?: () => void;\n /** Callback when PiP error occurs */\n onError?: (error: Error) => void;\n};\n\nexport type UsePictureInPictureReturn = {\n /** Whether PiP is currently active */\n isActive: boolean;\n /** Whether PiP is supported by the browser */\n isSupported: boolean;\n /** Whether video element is ready for PiP */\n isReady: boolean;\n /** Enter PiP mode */\n enter: () => Promise<void>;\n /** Exit PiP mode */\n exit: () => Promise<void>;\n /** Toggle PiP mode */\n toggle: () => Promise<void>;\n};\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.usePictureInPicture = usePictureInPicture;
5
+ var _react = require("react");
6
+ var _jotai = require("jotai");
7
+ var _state = require("./state");
8
+ function usePictureInPicture() {
9
+ const isActive = (0, _jotai.useAtomValue)(_state.pipActiveAtom);
10
+ const isSupported = (0, _jotai.useAtomValue)(_state.pipSupportedAtom);
11
+ const pipVideo = (0, _jotai.useAtomValue)(_state.pipVideoAtom);
12
+ const enter = (0, _react.useCallback)(async () => {
13
+ if (!isSupported) {
14
+ throw new Error('PiP not supported');
15
+ }
16
+ if (!pipVideo) {
17
+ throw new Error('No video element for PiP');
18
+ }
19
+ if (pipVideo.paused && pipVideo.srcObject) {
20
+ await pipVideo.play();
21
+ }
22
+ await pipVideo.requestPictureInPicture();
23
+ }, [isSupported, pipVideo]);
24
+ const exit = (0, _react.useCallback)(async () => {
25
+ if (document.pictureInPictureElement) {
26
+ await document.exitPictureInPicture();
27
+ }
28
+ }, []);
29
+ const toggle = (0, _react.useCallback)(async () => {
30
+ if (isActive) {
31
+ await exit();
32
+ } else {
33
+ await enter();
34
+ }
35
+ }, [isActive, enter, exit]);
36
+ return {
37
+ isActive,
38
+ isSupported,
39
+ isReady: !!pipVideo,
40
+ enter,
41
+ exit,
42
+ toggle
43
+ };
44
+ }
45
+ //# sourceMappingURL=usePictureInPicture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_jotai","_state","usePictureInPicture","isActive","useAtomValue","pipActiveAtom","isSupported","pipSupportedAtom","pipVideo","pipVideoAtom","enter","useCallback","Error","paused","srcObject","play","requestPictureInPicture","exit","document","pictureInPictureElement","exitPictureInPicture","toggle","isReady"],"sources":["../../../../src/hooks/usePictureInPicture/usePictureInPicture.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useAtomValue } from 'jotai';\n\nimport { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';\nimport type { UsePictureInPictureReturn } from './types';\n\nexport function usePictureInPicture(): UsePictureInPictureReturn {\n const isActive = useAtomValue(pipActiveAtom);\n const isSupported = useAtomValue(pipSupportedAtom);\n const pipVideo = useAtomValue(pipVideoAtom);\n\n const enter = useCallback(async () => {\n if (!isSupported) {\n throw new Error('PiP not supported');\n }\n if (!pipVideo) {\n throw new Error('No video element for PiP');\n }\n\n if (pipVideo.paused && pipVideo.srcObject) {\n await pipVideo.play();\n }\n await pipVideo.requestPictureInPicture();\n }, [isSupported, pipVideo]);\n\n const exit = useCallback(async () => {\n if (document.pictureInPictureElement) {\n await document.exitPictureInPicture();\n }\n }, []);\n\n const toggle = useCallback(async () => {\n if (isActive) {\n await exit();\n } else {\n await enter();\n }\n }, [isActive, enter, exit]);\n\n return {\n isActive,\n isSupported,\n isReady: !!pipVideo,\n enter,\n exit,\n toggle,\n };\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAGO,SAASG,mBAAmBA,CAAA,EAA8B;EAC/D,MAAMC,QAAQ,GAAG,IAAAC,mBAAY,EAACC,oBAAa,CAAC;EAC5C,MAAMC,WAAW,GAAG,IAAAF,mBAAY,EAACG,uBAAgB,CAAC;EAClD,MAAMC,QAAQ,GAAG,IAAAJ,mBAAY,EAACK,mBAAY,CAAC;EAE3C,MAAMC,KAAK,GAAG,IAAAC,kBAAW,EAAC,YAAY;IACpC,IAAI,CAACL,WAAW,EAAE;MAChB,MAAM,IAAIM,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,IAAI,CAACJ,QAAQ,EAAE;MACb,MAAM,IAAII,KAAK,CAAC,0BAA0B,CAAC;IAC7C;IAEA,IAAIJ,QAAQ,CAACK,MAAM,IAAIL,QAAQ,CAACM,SAAS,EAAE;MACzC,MAAMN,QAAQ,CAACO,IAAI,CAAC,CAAC;IACvB;IACA,MAAMP,QAAQ,CAACQ,uBAAuB,CAAC,CAAC;EAC1C,CAAC,EAAE,CAACV,WAAW,EAAEE,QAAQ,CAAC,CAAC;EAE3B,MAAMS,IAAI,GAAG,IAAAN,kBAAW,EAAC,YAAY;IACnC,IAAIO,QAAQ,CAACC,uBAAuB,EAAE;MACpC,MAAMD,QAAQ,CAACE,oBAAoB,CAAC,CAAC;IACvC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,MAAM,GAAG,IAAAV,kBAAW,EAAC,YAAY;IACrC,IAAIR,QAAQ,EAAE;MACZ,MAAMc,IAAI,CAAC,CAAC;IACd,CAAC,MAAM;MACL,MAAMP,KAAK,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACP,QAAQ,EAAEO,KAAK,EAAEO,IAAI,CAAC,CAAC;EAE3B,OAAO;IACLd,QAAQ;IACRG,WAAW;IACXgB,OAAO,EAAE,CAAC,CAACd,QAAQ;IACnBE,KAAK;IACLO,IAAI;IACJI;EACF,CAAC;AACH","ignoreList":[]}