@syra.fm/sdk 0.4.0 → 0.6.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 (317) hide show
  1. package/README.md +33 -4
  2. package/lib/commonjs/client.js +268 -0
  3. package/lib/commonjs/client.js.map +1 -0
  4. package/lib/commonjs/errors.js +22 -0
  5. package/lib/commonjs/errors.js.map +1 -0
  6. package/lib/commonjs/index.js +63 -0
  7. package/lib/commonjs/index.js.map +1 -0
  8. package/lib/commonjs/index.native.js +28 -0
  9. package/lib/commonjs/index.native.js.map +1 -0
  10. package/lib/commonjs/live/assets/icons/spaces-icon.js +42 -0
  11. package/lib/commonjs/live/assets/icons/spaces-icon.js.map +1 -0
  12. package/lib/commonjs/live/assets/icons/syra-icon.js +43 -0
  13. package/lib/commonjs/live/assets/icons/syra-icon.js.map +1 -0
  14. package/lib/commonjs/live/colors.js +54 -0
  15. package/lib/commonjs/live/colors.js.map +1 -0
  16. package/lib/commonjs/live/components/AnimatedPulse.js +38 -0
  17. package/lib/commonjs/live/components/AnimatedPulse.js.map +1 -0
  18. package/lib/commonjs/live/components/AnimatedSpeakerRing.js +90 -0
  19. package/lib/commonjs/live/components/AnimatedSpeakerRing.js.map +1 -0
  20. package/lib/commonjs/live/components/CreateRoomSheet.js +688 -0
  21. package/lib/commonjs/live/components/CreateRoomSheet.js.map +1 -0
  22. package/lib/commonjs/live/components/InsightsPanel.js +333 -0
  23. package/lib/commonjs/live/components/InsightsPanel.js.map +1 -0
  24. package/lib/commonjs/live/components/LiveRoomSheet.js +1196 -0
  25. package/lib/commonjs/live/components/LiveRoomSheet.js.map +1 -0
  26. package/lib/commonjs/live/components/MiniRoomBar.js +162 -0
  27. package/lib/commonjs/live/components/MiniRoomBar.js.map +1 -0
  28. package/lib/commonjs/live/components/PanelHeader.js +57 -0
  29. package/lib/commonjs/live/components/PanelHeader.js.map +1 -0
  30. package/lib/commonjs/live/components/PodcastStreamPicker.js +1190 -0
  31. package/lib/commonjs/live/components/PodcastStreamPicker.js.map +1 -0
  32. package/lib/commonjs/live/components/RecordingCard.js +192 -0
  33. package/lib/commonjs/live/components/RecordingCard.js.map +1 -0
  34. package/lib/commonjs/live/components/RecordingsPanel.js +305 -0
  35. package/lib/commonjs/live/components/RecordingsPanel.js.map +1 -0
  36. package/lib/commonjs/live/components/RoomCard.js +349 -0
  37. package/lib/commonjs/live/components/RoomCard.js.map +1 -0
  38. package/lib/commonjs/live/components/StreamConfigModal.js +656 -0
  39. package/lib/commonjs/live/components/StreamConfigModal.js.map +1 -0
  40. package/lib/commonjs/live/components/StreamConfigPanel.js +822 -0
  41. package/lib/commonjs/live/components/StreamConfigPanel.js.map +1 -0
  42. package/lib/commonjs/live/context/LiveConfigContext.js +46 -0
  43. package/lib/commonjs/live/context/LiveConfigContext.js.map +1 -0
  44. package/lib/commonjs/live/context/LiveRoomContext.js +195 -0
  45. package/lib/commonjs/live/context/LiveRoomContext.js.map +1 -0
  46. package/lib/commonjs/live/hooks/useActiveSpeakers.js +35 -0
  47. package/lib/commonjs/live/hooks/useActiveSpeakers.js.map +1 -0
  48. package/lib/commonjs/live/hooks/useRoomAudio.js +129 -0
  49. package/lib/commonjs/live/hooks/useRoomAudio.js.map +1 -0
  50. package/lib/commonjs/live/hooks/useRoomConnection.js +177 -0
  51. package/lib/commonjs/live/hooks/useRoomConnection.js.map +1 -0
  52. package/lib/commonjs/live/hooks/useRoomManager.js +37 -0
  53. package/lib/commonjs/live/hooks/useRoomManager.js.map +1 -0
  54. package/lib/commonjs/live/hooks/useRoomUsers.js +52 -0
  55. package/lib/commonjs/live/hooks/useRoomUsers.js.map +1 -0
  56. package/lib/commonjs/live/index.js +341 -0
  57. package/lib/commonjs/live/index.js.map +1 -0
  58. package/lib/commonjs/live/services/livekitService.js +20 -0
  59. package/lib/commonjs/live/services/livekitService.js.map +1 -0
  60. package/lib/commonjs/live/services/spaceSocketService.js +181 -0
  61. package/lib/commonjs/live/services/spaceSocketService.js.map +1 -0
  62. package/lib/commonjs/live/services/spacesService.js +642 -0
  63. package/lib/commonjs/live/services/spacesService.js.map +1 -0
  64. package/lib/commonjs/live/types.js +6 -0
  65. package/lib/commonjs/live/types.js.map +1 -0
  66. package/lib/commonjs/live/validation.js +238 -0
  67. package/lib/commonjs/live/validation.js.map +1 -0
  68. package/lib/commonjs/package.json +1 -0
  69. package/{dist/cjs → lib/commonjs}/schema.js +55 -47
  70. package/lib/commonjs/schema.js.map +1 -0
  71. package/lib/module/client.js +264 -0
  72. package/lib/module/client.js.map +1 -0
  73. package/lib/module/errors.js +17 -0
  74. package/lib/module/errors.js.map +1 -0
  75. package/lib/module/index.js +6 -0
  76. package/lib/module/index.js.map +1 -0
  77. package/lib/module/index.native.js +5 -0
  78. package/lib/module/index.native.js.map +1 -0
  79. package/lib/module/live/assets/icons/spaces-icon.js +34 -0
  80. package/lib/module/live/assets/icons/spaces-icon.js.map +1 -0
  81. package/lib/module/live/assets/icons/syra-icon.js +36 -0
  82. package/lib/module/live/assets/icons/syra-icon.js.map +1 -0
  83. package/lib/module/live/colors.js +49 -0
  84. package/lib/module/live/colors.js.map +1 -0
  85. package/lib/module/live/components/AnimatedPulse.js +33 -0
  86. package/lib/module/live/components/AnimatedPulse.js.map +1 -0
  87. package/lib/module/live/components/AnimatedSpeakerRing.js +85 -0
  88. package/lib/module/live/components/AnimatedSpeakerRing.js.map +1 -0
  89. package/lib/module/live/components/CreateRoomSheet.js +682 -0
  90. package/lib/module/live/components/CreateRoomSheet.js.map +1 -0
  91. package/lib/module/live/components/InsightsPanel.js +327 -0
  92. package/lib/module/live/components/InsightsPanel.js.map +1 -0
  93. package/lib/module/live/components/LiveRoomSheet.js +1190 -0
  94. package/lib/module/live/components/LiveRoomSheet.js.map +1 -0
  95. package/lib/module/live/components/MiniRoomBar.js +155 -0
  96. package/lib/module/live/components/MiniRoomBar.js.map +1 -0
  97. package/lib/module/live/components/PanelHeader.js +52 -0
  98. package/lib/module/live/components/PanelHeader.js.map +1 -0
  99. package/lib/module/live/components/PodcastStreamPicker.js +1183 -0
  100. package/lib/module/live/components/PodcastStreamPicker.js.map +1 -0
  101. package/lib/module/live/components/RecordingCard.js +187 -0
  102. package/lib/module/live/components/RecordingCard.js.map +1 -0
  103. package/lib/module/live/components/RecordingsPanel.js +299 -0
  104. package/lib/module/live/components/RecordingsPanel.js.map +1 -0
  105. package/lib/module/live/components/RoomCard.js +343 -0
  106. package/lib/module/live/components/RoomCard.js.map +1 -0
  107. package/lib/module/live/components/StreamConfigModal.js +650 -0
  108. package/lib/module/live/components/StreamConfigModal.js.map +1 -0
  109. package/lib/module/live/components/StreamConfigPanel.js +816 -0
  110. package/lib/module/live/components/StreamConfigPanel.js.map +1 -0
  111. package/lib/module/live/context/LiveConfigContext.js +40 -0
  112. package/lib/module/live/context/LiveConfigContext.js.map +1 -0
  113. package/lib/module/live/context/LiveRoomContext.js +189 -0
  114. package/lib/module/live/context/LiveRoomContext.js.map +1 -0
  115. package/lib/module/live/hooks/useActiveSpeakers.js +31 -0
  116. package/lib/module/live/hooks/useActiveSpeakers.js.map +1 -0
  117. package/lib/module/live/hooks/useRoomAudio.js +125 -0
  118. package/lib/module/live/hooks/useRoomAudio.js.map +1 -0
  119. package/lib/module/live/hooks/useRoomConnection.js +173 -0
  120. package/lib/module/live/hooks/useRoomConnection.js.map +1 -0
  121. package/lib/module/live/hooks/useRoomManager.js +32 -0
  122. package/lib/module/live/hooks/useRoomManager.js.map +1 -0
  123. package/lib/module/live/hooks/useRoomUsers.js +46 -0
  124. package/lib/module/live/hooks/useRoomUsers.js.map +1 -0
  125. package/lib/module/live/index.js +42 -0
  126. package/lib/module/live/index.js.map +1 -0
  127. package/lib/module/live/services/livekitService.js +16 -0
  128. package/lib/module/live/services/livekitService.js.map +1 -0
  129. package/lib/module/live/services/spaceSocketService.js +176 -0
  130. package/lib/module/live/services/spaceSocketService.js.map +1 -0
  131. package/lib/module/live/services/spacesService.js +639 -0
  132. package/lib/module/live/services/spacesService.js.map +1 -0
  133. package/lib/module/live/types.js +4 -0
  134. package/lib/module/live/types.js.map +1 -0
  135. package/lib/module/live/validation.js +229 -0
  136. package/lib/module/live/validation.js.map +1 -0
  137. package/lib/module/package.json +1 -0
  138. package/{dist/esm → lib/module}/schema.js +47 -39
  139. package/lib/module/schema.js.map +1 -0
  140. package/{dist/types → lib/typescript/commonjs}/client.d.ts +1 -0
  141. package/lib/typescript/commonjs/client.d.ts.map +1 -0
  142. package/{dist/types → lib/typescript/commonjs}/errors.d.ts +1 -0
  143. package/lib/typescript/commonjs/errors.d.ts.map +1 -0
  144. package/{dist/types → lib/typescript/commonjs}/index.d.ts +1 -0
  145. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/index.native.d.ts +3 -0
  147. package/lib/typescript/commonjs/index.native.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts +13 -0
  149. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts +13 -0
  151. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/live/colors.d.ts +35 -0
  153. package/lib/typescript/commonjs/live/colors.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts +8 -0
  155. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts.map +1 -0
  156. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts +10 -0
  157. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts +26 -0
  159. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts.map +1 -0
  160. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts +11 -0
  161. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts.map +1 -0
  162. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts +11 -0
  163. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts.map +1 -0
  164. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts +15 -0
  165. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts.map +1 -0
  166. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts +10 -0
  167. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts.map +1 -0
  168. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts +54 -0
  169. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts.map +1 -0
  170. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts +11 -0
  171. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts +12 -0
  173. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts.map +1 -0
  174. package/lib/typescript/commonjs/live/components/RoomCard.d.ts +38 -0
  175. package/lib/typescript/commonjs/live/components/RoomCard.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts +11 -0
  177. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts.map +1 -0
  178. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts +13 -0
  179. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts.map +1 -0
  180. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts +78 -0
  181. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts +12 -0
  183. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts +3 -0
  185. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts +16 -0
  187. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts +29 -0
  189. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts +11 -0
  191. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts.map +1 -0
  192. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts +5 -0
  193. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts.map +1 -0
  194. package/lib/typescript/commonjs/live/index.d.ts +25 -0
  195. package/lib/typescript/commonjs/live/index.d.ts.map +1 -0
  196. package/lib/typescript/commonjs/live/services/livekitService.d.ts +7 -0
  197. package/lib/typescript/commonjs/live/services/livekitService.d.ts.map +1 -0
  198. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts +69 -0
  199. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts.map +1 -0
  200. package/lib/typescript/commonjs/live/services/spacesService.d.ts +181 -0
  201. package/lib/typescript/commonjs/live/services/spacesService.d.ts.map +1 -0
  202. package/lib/typescript/commonjs/live/types.d.ts +100 -0
  203. package/lib/typescript/commonjs/live/types.d.ts.map +1 -0
  204. package/lib/typescript/commonjs/live/validation.d.ts +658 -0
  205. package/lib/typescript/commonjs/live/validation.d.ts.map +1 -0
  206. package/lib/typescript/commonjs/package.json +1 -0
  207. package/{dist/types → lib/typescript/commonjs}/schema.d.ts +1 -0
  208. package/lib/typescript/commonjs/schema.d.ts.map +1 -0
  209. package/lib/typescript/module/client.d.ts +141 -0
  210. package/lib/typescript/module/client.d.ts.map +1 -0
  211. package/lib/typescript/module/errors.d.ts +9 -0
  212. package/lib/typescript/module/errors.d.ts.map +1 -0
  213. package/lib/typescript/module/index.d.ts +6 -0
  214. package/lib/typescript/module/index.d.ts.map +1 -0
  215. package/lib/typescript/module/index.native.d.ts +3 -0
  216. package/lib/typescript/module/index.native.d.ts.map +1 -0
  217. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts +13 -0
  218. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts.map +1 -0
  219. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts +13 -0
  220. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts.map +1 -0
  221. package/lib/typescript/module/live/colors.d.ts +35 -0
  222. package/lib/typescript/module/live/colors.d.ts.map +1 -0
  223. package/lib/typescript/module/live/components/AnimatedPulse.d.ts +8 -0
  224. package/lib/typescript/module/live/components/AnimatedPulse.d.ts.map +1 -0
  225. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts +10 -0
  226. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  227. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts +26 -0
  228. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts.map +1 -0
  229. package/lib/typescript/module/live/components/InsightsPanel.d.ts +11 -0
  230. package/lib/typescript/module/live/components/InsightsPanel.d.ts.map +1 -0
  231. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts +11 -0
  232. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts.map +1 -0
  233. package/lib/typescript/module/live/components/MiniRoomBar.d.ts +15 -0
  234. package/lib/typescript/module/live/components/MiniRoomBar.d.ts.map +1 -0
  235. package/lib/typescript/module/live/components/PanelHeader.d.ts +10 -0
  236. package/lib/typescript/module/live/components/PanelHeader.d.ts.map +1 -0
  237. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts +54 -0
  238. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts.map +1 -0
  239. package/lib/typescript/module/live/components/RecordingCard.d.ts +11 -0
  240. package/lib/typescript/module/live/components/RecordingCard.d.ts.map +1 -0
  241. package/lib/typescript/module/live/components/RecordingsPanel.d.ts +12 -0
  242. package/lib/typescript/module/live/components/RecordingsPanel.d.ts.map +1 -0
  243. package/lib/typescript/module/live/components/RoomCard.d.ts +38 -0
  244. package/lib/typescript/module/live/components/RoomCard.d.ts.map +1 -0
  245. package/lib/typescript/module/live/components/StreamConfigModal.d.ts +11 -0
  246. package/lib/typescript/module/live/components/StreamConfigModal.d.ts.map +1 -0
  247. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts +13 -0
  248. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts.map +1 -0
  249. package/lib/typescript/module/live/context/LiveConfigContext.d.ts +78 -0
  250. package/lib/typescript/module/live/context/LiveConfigContext.d.ts.map +1 -0
  251. package/lib/typescript/module/live/context/LiveRoomContext.d.ts +12 -0
  252. package/lib/typescript/module/live/context/LiveRoomContext.d.ts.map +1 -0
  253. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts +3 -0
  254. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  255. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts +16 -0
  256. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts.map +1 -0
  257. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts +29 -0
  258. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts.map +1 -0
  259. package/lib/typescript/module/live/hooks/useRoomManager.d.ts +11 -0
  260. package/lib/typescript/module/live/hooks/useRoomManager.d.ts.map +1 -0
  261. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts +5 -0
  262. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts.map +1 -0
  263. package/lib/typescript/module/live/index.d.ts +25 -0
  264. package/lib/typescript/module/live/index.d.ts.map +1 -0
  265. package/lib/typescript/module/live/services/livekitService.d.ts +7 -0
  266. package/lib/typescript/module/live/services/livekitService.d.ts.map +1 -0
  267. package/lib/typescript/module/live/services/spaceSocketService.d.ts +69 -0
  268. package/lib/typescript/module/live/services/spaceSocketService.d.ts.map +1 -0
  269. package/lib/typescript/module/live/services/spacesService.d.ts +181 -0
  270. package/lib/typescript/module/live/services/spacesService.d.ts.map +1 -0
  271. package/lib/typescript/module/live/types.d.ts +100 -0
  272. package/lib/typescript/module/live/types.d.ts.map +1 -0
  273. package/lib/typescript/module/live/validation.d.ts +658 -0
  274. package/lib/typescript/module/live/validation.d.ts.map +1 -0
  275. package/lib/typescript/module/package.json +1 -0
  276. package/lib/typescript/module/schema.d.ts +1072 -0
  277. package/lib/typescript/module/schema.d.ts.map +1 -0
  278. package/package.json +123 -21
  279. package/src/index.native.ts +2 -0
  280. package/src/live/assets/icons/spaces-icon.tsx +15 -0
  281. package/src/live/assets/icons/syra-icon.tsx +13 -0
  282. package/src/live/assets/sounds/intro.mp3 +0 -0
  283. package/src/live/colors.ts +57 -0
  284. package/src/live/components/AnimatedPulse.tsx +52 -0
  285. package/src/live/components/AnimatedSpeakerRing.tsx +101 -0
  286. package/src/live/components/CreateRoomSheet.tsx +654 -0
  287. package/src/live/components/InsightsPanel.tsx +202 -0
  288. package/src/live/components/LiveRoomSheet.tsx +970 -0
  289. package/src/live/components/MiniRoomBar.tsx +167 -0
  290. package/src/live/components/PanelHeader.tsx +36 -0
  291. package/src/live/components/PodcastStreamPicker.tsx +1155 -0
  292. package/src/live/components/RecordingCard.tsx +154 -0
  293. package/src/live/components/RecordingsPanel.tsx +252 -0
  294. package/src/live/components/RoomCard.tsx +343 -0
  295. package/src/live/components/StreamConfigModal.tsx +600 -0
  296. package/src/live/components/StreamConfigPanel.tsx +729 -0
  297. package/src/live/context/LiveConfigContext.tsx +96 -0
  298. package/src/live/context/LiveRoomContext.tsx +235 -0
  299. package/src/live/hooks/useActiveSpeakers.ts +39 -0
  300. package/src/live/hooks/useRoomAudio.ts +103 -0
  301. package/src/live/hooks/useRoomConnection.ts +162 -0
  302. package/src/live/hooks/useRoomManager.ts +17 -0
  303. package/src/live/hooks/useRoomUsers.ts +52 -0
  304. package/src/live/index.ts +104 -0
  305. package/src/live/services/livekitService.ts +11 -0
  306. package/src/live/services/spaceSocketService.ts +136 -0
  307. package/src/live/services/spacesService.ts +692 -0
  308. package/src/live/types.ts +119 -0
  309. package/src/live/validation.ts +279 -0
  310. package/dist/cjs/client.js +0 -244
  311. package/dist/cjs/errors.js +0 -16
  312. package/dist/cjs/index.js +0 -15
  313. package/dist/cjs/package.json +0 -3
  314. package/dist/esm/client.js +0 -240
  315. package/dist/esm/errors.js +0 -12
  316. package/dist/esm/index.js +0 -3
  317. package/dist/esm/package.json +0 -3
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ import type { ViewStyle } from 'react-native';
3
+ import type { LiveTheme, UserEntity, HttpClient } from '../types';
4
+ import { type RoomsServiceInstance } from '../services/spacesService';
5
+ import { RoomSocketService } from '../services/spaceSocketService';
6
+ import { type GetRoomTokenFn } from '../services/livekitService';
7
+ /**
8
+ * The viewer's pinned Syra podcast (resolved from their profile media), surfaced
9
+ * by {@link LiveConfig.getPinnedPodcast}. `title`/`artworkUrl` are optional —
10
+ * the id is all the picker needs to drill into the episode list.
11
+ */
12
+ export interface PinnedPodcast {
13
+ syraPodcastId: string;
14
+ title?: string;
15
+ artworkUrl?: string;
16
+ }
17
+ export interface LiveConfig {
18
+ httpClient: HttpClient;
19
+ socketUrl: string;
20
+ useTheme: () => LiveTheme;
21
+ /**
22
+ * Translate a UI string key to the active locale. Optional: hosts WITH an i18n
23
+ * layer (the Mention frontend) inject their real translator so the shared
24
+ * live-room UI localizes; hosts WITHOUT one (the standalone live-rooms app) omit it
25
+ * and the shared components fall back to their bundled English source copy.
26
+ * Keys are looked up flat (e.g. `agora.podcastStream.disclaimer`).
27
+ */
28
+ t?: (key: string, options?: Record<string, string | number>) => string;
29
+ /**
30
+ * Resolve the viewer's pinned Syra podcast from their profile media, or `null`
31
+ * when they have none / it can't be read. Optional: hosts that expose profile
32
+ * media wire it so the podcast picker can offer a one-tap "stream my pinned
33
+ * podcast" quick-start row. The picker renders nothing when this is absent or
34
+ * resolves to `null`.
35
+ */
36
+ getPinnedPodcast?: () => Promise<PinnedPodcast | null>;
37
+ useUserById: (id: string | undefined) => UserEntity | undefined;
38
+ ensureUserById: (id: string, loader: (id: string) => Promise<UserEntity | null | undefined>) => Promise<UserEntity | undefined>;
39
+ getCachedFileDownloadUrl: (oxyServices: unknown, fileId: string, variant?: string) => Promise<string>;
40
+ getCachedFileDownloadUrlSync: (oxyServices: unknown, fileId: string, variant?: string) => string;
41
+ AvatarComponent: React.ComponentType<{
42
+ size: number;
43
+ source?: string;
44
+ shape?: string;
45
+ style?: ViewStyle;
46
+ }>;
47
+ toast: {
48
+ (message: string, options?: Record<string, unknown>): void;
49
+ success: (message: string) => void;
50
+ error: (message: string) => void;
51
+ };
52
+ introSound?: number;
53
+ isDesktop?: boolean;
54
+ useIsDesktop?: () => boolean;
55
+ onRoomChanged?: (roomId: string) => void;
56
+ /**
57
+ * Optional NativeWind className applied to the floating live-room dock and its
58
+ * backdrop. Hosts whose web shell uses a DOCUMENT-scroll model (html/body/#root
59
+ * = height:auto + overflow:visible, the window is the scroller) must pass
60
+ * `"web:fixed"` so the dock pins to the VIEWPORT bottom instead of resolving
61
+ * its `position: absolute` against the tall document and sinking to the page
62
+ * bottom. Omitted on hosts with the default fixed-viewport web model (and on
63
+ * native, where `web:fixed` is a no-op and the dock pins via `position:
64
+ * absolute` against the screen-filling root).
65
+ */
66
+ dockClassName?: string;
67
+ }
68
+ export interface LiveConfigInternal extends LiveConfig {
69
+ roomsService: RoomsServiceInstance;
70
+ roomSocketService: RoomSocketService;
71
+ getRoomToken: GetRoomTokenFn;
72
+ }
73
+ export declare function useLiveConfig(): LiveConfigInternal;
74
+ export declare function LiveConfigProvider({ config, children }: {
75
+ config: LiveConfig;
76
+ children: React.ReactNode;
77
+ }): React.JSX.Element;
78
+ //# sourceMappingURL=LiveConfigContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveConfigContext.d.ts","sourceRoot":"","sources":["../../../../../src/live/context/LiveConfigContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface LiveRoomContextProps {
3
+ activeRoomId: string | null;
4
+ joinLiveRoom: (roomId: string) => void;
5
+ leaveLiveRoom: () => void;
6
+ }
7
+ export declare function useLiveRoom(): LiveRoomContextProps;
8
+ export declare function LiveRoomProvider({ children }: {
9
+ children: React.ReactNode;
10
+ }): React.JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=LiveRoomContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveRoomContext.d.ts","sourceRoot":"","sources":["../../../../../src/live/context/LiveRoomContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoE,MAAM,OAAO,CAAC;AAkBzF,UAAU,oBAAoB;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAQD,wBAAgB,WAAW,yBAE1B;AAOD,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBA6K3E"}
@@ -0,0 +1,3 @@
1
+ import { Room } from 'livekit-client';
2
+ export declare function useActiveSpeakers(room: Room | null): Set<string>;
3
+ //# sourceMappingURL=useActiveSpeakers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveSpeakers.d.ts","sourceRoot":"","sources":["../../../../../src/live/hooks/useActiveSpeakers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA0B,MAAM,gBAAgB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAmChE"}
@@ -0,0 +1,16 @@
1
+ import { Room } from 'livekit-client';
2
+ interface UseRoomAudioOptions {
3
+ roomId: string;
4
+ isSpeaker: boolean;
5
+ isMuted: boolean;
6
+ isConnected: boolean;
7
+ }
8
+ interface UseRoomAudioReturn {
9
+ isLiveKitConnected: boolean;
10
+ localAudioEnabled: boolean;
11
+ micPermissionDenied: boolean;
12
+ livekitRoom: Room | null;
13
+ }
14
+ export declare function useRoomAudio({ roomId, isSpeaker, isMuted, isConnected }: UseRoomAudioOptions): UseRoomAudioReturn;
15
+ export {};
16
+ //# sourceMappingURL=useRoomAudio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRoomAudio.d.ts","sourceRoot":"","sources":["../../../../../src/live/hooks/useRoomAudio.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAqC,MAAM,gBAAgB,CAAC;AASzE,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,mBAAmB,GAAG,kBAAkB,CA6EjH"}
@@ -0,0 +1,29 @@
1
+ import type { RoomParticipant, StreamInfo } from '../types';
2
+ interface UseRoomConnectionOptions {
3
+ roomId: string;
4
+ enabled?: boolean;
5
+ }
6
+ interface UseRoomConnectionReturn {
7
+ isConnected: boolean;
8
+ participants: RoomParticipant[];
9
+ myRole: 'host' | 'speaker' | 'listener' | null;
10
+ isMuted: boolean;
11
+ speakerRequests: Array<{
12
+ userId: string;
13
+ requestedAt: string;
14
+ }>;
15
+ activeStream: StreamInfo | null;
16
+ isRecording: boolean;
17
+ activeRecordingId: string | null;
18
+ join: () => void;
19
+ leave: () => void;
20
+ toggleMute: () => void;
21
+ requestToSpeak: () => void;
22
+ approveSpeaker: (userId: string) => void;
23
+ denySpeaker: (userId: string) => void;
24
+ removeSpeaker: (userId: string) => void;
25
+ isRoomEnded: boolean;
26
+ }
27
+ export declare function useRoomConnection({ roomId, enabled, }: UseRoomConnectionOptions): UseRoomConnectionReturn;
28
+ export {};
29
+ //# sourceMappingURL=useRoomConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRoomConnection.d.ts","sourceRoot":"","sources":["../../../../../src/live/hooks/useRoomConnection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE5D,UAAU,wBAAwB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,uBAAuB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,OAAc,GACf,EAAE,wBAAwB,GAAG,uBAAuB,CAgIpD"}
@@ -0,0 +1,11 @@
1
+ import type { RoomAttachmentData } from "../types";
2
+ export declare const useRoomManager: () => {
3
+ room: RoomAttachmentData | null;
4
+ setRoom: import("react").Dispatch<import("react").SetStateAction<RoomAttachmentData | null>>;
5
+ attachRoom: (data: RoomAttachmentData) => void;
6
+ removeRoom: () => void;
7
+ hasContent: () => boolean;
8
+ loadRoomFromDraft: (draftRoom: RoomAttachmentData | null) => void;
9
+ clearRoom: () => void;
10
+ };
11
+ //# sourceMappingURL=useRoomManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRoomManager.d.ts","sourceRoot":"","sources":["../../../../../src/live/hooks/useRoomManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,cAAc;;;uBAGa,kBAAkB;;;mCAMN,kBAAkB,GAAG,IAAI;;CAI5E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { UserEntity } from '../types';
2
+ export declare function useRoomUsers(userIds: string[]): void;
3
+ export declare function getDisplayName(userProfile: UserEntity | undefined, userId: string, isCurrentUser?: boolean): string;
4
+ export declare function getAvatarUrl(userProfile: UserEntity | undefined, oxyServices: unknown, getCachedFileDownloadUrlSync: (oxyServices: unknown, fileId: string, variant?: string) => string): string | undefined;
5
+ //# sourceMappingURL=useRoomUsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRoomUsers.d.ts","sourceRoot":"","sources":["../../../../../src/live/hooks/useRoomUsers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAyB7C;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,UAAU,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAUnH;AAED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,UAAU,GAAG,SAAS,EACnC,WAAW,EAAE,OAAO,EACpB,4BAA4B,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,GAC/F,MAAM,GAAG,SAAS,CAGpB"}
@@ -0,0 +1,25 @@
1
+ export type { Room, RoomParticipant, Recording, House, HouseMember, Series, SeriesEpisode, Recurrence, RoomTemplate, RoomAttachment, RoomAttachmentData, ParticipantsUpdateData, MuteUpdateData, SpeakerRequestData, RecordingStateData, StreamInfo, UserEntity, LiveTheme, HttpRequestConfig, HttpClient, FileDownloadService, } from './types';
2
+ export { LIVE_COLOR, LIVE_TINT_COLOR, LIVE_FOREGROUND_COLOR, ROOM_TYPE_META, getRoomTypeMeta, type BadgedRoomType, type RoomTypeMeta, } from './colors';
3
+ export { ZRoom, ZRoomParticipant, ZHouse, ZHouseMember, ZSeries, ZRecurrence, ZRoomTemplate, ZSeriesEpisode, ZRoomAttachment, ZStartStreamResponse, ZGenerateStreamKeyResponse, ZStreamInfo, ZRecording, validateRoom, validateRooms, validateHouse, validateSeries, validateRecording, validateRecordings, } from './validation';
4
+ export { LiveConfigProvider, useLiveConfig, type LiveConfig, type LiveConfigInternal, } from './context/LiveConfigContext';
5
+ export { LiveRoomProvider, useLiveRoom } from './context/LiveRoomContext';
6
+ export { createRoomsService, type RoomsServiceInstance, type CreateRoomData, type PodcastResult, type EpisodeListItem, } from './services/spacesService';
7
+ export { RoomSocketService } from './services/spaceSocketService';
8
+ export { createGetRoomToken, type GetRoomTokenFn, } from './services/livekitService';
9
+ export { useRoomConnection } from './hooks/useRoomConnection';
10
+ export { useRoomAudio } from './hooks/useRoomAudio';
11
+ export { useRoomUsers, getDisplayName, getAvatarUrl } from './hooks/useRoomUsers';
12
+ export { useRoomManager } from './hooks/useRoomManager';
13
+ export { useActiveSpeakers } from './hooks/useActiveSpeakers';
14
+ export { RoomCard } from './components/RoomCard';
15
+ export { LiveRoomSheet } from './components/LiveRoomSheet';
16
+ export { MiniRoomBar, MINI_BAR_HEIGHT } from './components/MiniRoomBar';
17
+ export { StreamConfigModal } from './components/StreamConfigModal';
18
+ export { StreamConfigPanel } from './components/StreamConfigPanel';
19
+ export { InsightsPanel } from './components/InsightsPanel';
20
+ export { CreateRoomSheet, type CreateRoomSheetRef, type CreateRoomFormState } from './components/CreateRoomSheet';
21
+ export { RecordingsPanel } from './components/RecordingsPanel';
22
+ export { RecordingCard } from './components/RecordingCard';
23
+ export { LiveRoomsIcon, LiveRoomsIconActive } from './assets/icons/spaces-icon';
24
+ export { SyraIcon, SyraIconActive } from './assets/icons/syra-icon';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/live/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,IAAI,EACJ,eAAe,EACf,SAAS,EACT,KAAK,EACL,WAAW,EACX,MAAM,EACN,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,KAAK,UAAU,EACf,KAAK,kBAAkB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAG1E,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { HttpClient } from '../types';
2
+ export type GetRoomTokenFn = (roomId: string) => Promise<{
3
+ token: string;
4
+ url: string;
5
+ }>;
6
+ export declare function createGetRoomToken(httpClient: Pick<HttpClient, 'post'>): GetRoomTokenFn;
7
+ //# sourceMappingURL=livekitService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"livekitService.d.ts","sourceRoot":"","sources":["../../../../../src/live/services/livekitService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEzF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,cAAc,CAMvF"}
@@ -0,0 +1,69 @@
1
+ import type { RoomParticipant, ParticipantsUpdateData, MuteUpdateData, SpeakerRequestData } from '../types';
2
+ type SimpleRoomCallback = (data: {
3
+ roomId: string;
4
+ timestamp?: string;
5
+ }) => void;
6
+ export declare class RoomSocketService {
7
+ private socket;
8
+ private _isConnected;
9
+ private socketUrl;
10
+ constructor(socketUrl: string);
11
+ get isConnected(): boolean;
12
+ connect(userId: string, token?: string): void;
13
+ disconnect(): void;
14
+ joinRoom(roomId: string, callback?: (res: {
15
+ success: boolean;
16
+ participants?: RoomParticipant[];
17
+ myRole?: string;
18
+ error?: string;
19
+ }) => void): void;
20
+ leaveRoom(roomId: string): void;
21
+ setMute(roomId: string, isMuted: boolean): void;
22
+ requestToSpeak(roomId: string): void;
23
+ approveSpeaker(roomId: string, targetUserId: string): void;
24
+ denySpeaker(roomId: string, targetUserId: string): void;
25
+ removeSpeaker(roomId: string, targetUserId: string): void;
26
+ onParticipantsUpdate(cb: (data: ParticipantsUpdateData) => void): () => void;
27
+ onParticipantMute(cb: (data: MuteUpdateData) => void): () => void;
28
+ onSpeakerRequestReceived(cb: (data: SpeakerRequestData) => void): () => void;
29
+ onSpeakerApproved(cb: SimpleRoomCallback): () => void;
30
+ onSpeakerDenied(cb: SimpleRoomCallback): () => void;
31
+ onSpeakerRemoved(cb: SimpleRoomCallback): () => void;
32
+ onRoomStarted(cb: SimpleRoomCallback): () => void;
33
+ onRoomEnded(cb: SimpleRoomCallback): () => void;
34
+ onUserJoined(cb: (data: {
35
+ userId: string;
36
+ role: string;
37
+ roomId: string;
38
+ }) => void): () => void;
39
+ onUserLeft(cb: (data: {
40
+ userId: string;
41
+ roomId: string;
42
+ }) => void): () => void;
43
+ onStreamStarted(cb: (data: {
44
+ roomId: string;
45
+ title?: string;
46
+ image?: string;
47
+ description?: string;
48
+ startedAt?: string;
49
+ durationSec?: number;
50
+ timestamp: string;
51
+ }) => void): () => void;
52
+ onStreamStopped(cb: (data: {
53
+ roomId: string;
54
+ timestamp: string;
55
+ }) => void): () => void;
56
+ onRecordingStarted(cb: (data: {
57
+ roomId: string;
58
+ recordingId: string;
59
+ timestamp: string;
60
+ }) => void): () => void;
61
+ onRecordingStopped(cb: (data: {
62
+ roomId: string;
63
+ recordingId?: string;
64
+ reason?: string;
65
+ timestamp: string;
66
+ }) => void): () => void;
67
+ }
68
+ export {};
69
+ //# sourceMappingURL=spaceSocketService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaceSocketService.d.ts","sourceRoot":"","sources":["../../../../../src/live/services/spaceSocketService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ import type { Room, Recording, House, HttpClient } from '../types';
2
+ export interface CreateRoomData {
3
+ [key: string]: unknown;
4
+ title: string;
5
+ description?: string;
6
+ topic?: string;
7
+ scheduledStart?: string;
8
+ speakerPermission?: 'everyone' | 'followers' | 'invited';
9
+ type?: 'talk' | 'stage' | 'broadcast';
10
+ ownerType?: 'profile' | 'house';
11
+ houseId?: string;
12
+ broadcastKind?: 'user';
13
+ recordingEnabled?: boolean;
14
+ }
15
+ export interface StreamMetadataUpdate extends Record<string, unknown> {
16
+ url?: string;
17
+ title?: string;
18
+ image?: string;
19
+ description?: string;
20
+ }
21
+ /** A Syra podcast show, as proxied by Mention `GET /profile/media/search?type=podcast`. */
22
+ export interface PodcastResult {
23
+ syraPodcastId: string;
24
+ title: string;
25
+ author?: string;
26
+ artworkUrl?: string;
27
+ }
28
+ /**
29
+ * A single episode row for the picker. Deliberately carries NO audio URL — the
30
+ * enclosure stays server-owned and is resolved at stream-start by the backend.
31
+ */
32
+ export interface EpisodeListItem {
33
+ episodeId: string;
34
+ title: string;
35
+ durationSec?: number;
36
+ publishedAt?: string;
37
+ artworkUrl?: string;
38
+ }
39
+ /**
40
+ * A single Syra music track row for the listening-party picker. Like the podcast
41
+ * rows it carries NO audio URL — the playable source (presigned original /
42
+ * tokenized HLS / Audius passthrough) stays server-owned and is resolved at
43
+ * stream-start by the backend from the opaque `trackId` alone.
44
+ */
45
+ export interface MusicTrackResult {
46
+ trackId: string;
47
+ title: string;
48
+ artist?: string;
49
+ durationSec?: number;
50
+ artworkUrl?: string;
51
+ }
52
+ /** Optional seed to start a track stream: a single track, an album, or a playlist. */
53
+ export interface StartTrackStreamBody extends Record<string, unknown> {
54
+ trackId?: string;
55
+ albumId?: string;
56
+ playlistId?: string;
57
+ /** Tracks to queue AFTER `trackId` (up-next). Only used with `trackId`. */
58
+ queue?: {
59
+ trackId: string;
60
+ }[];
61
+ }
62
+ /**
63
+ * The outcome of a podcast catalog fetch. `ok:false` signals a genuine request
64
+ * failure (network/transport error), letting the picker distinguish it from a
65
+ * successful-but-empty result (`ok:true` with `items: []`). Neither
66
+ * `searchPodcasts` nor `getPodcastEpisodes` throws — a failure resolves to
67
+ * `{ ok:false }`.
68
+ */
69
+ export type PodcastFetchResult<T> = {
70
+ ok: true;
71
+ items: T[];
72
+ hasMore: boolean;
73
+ offset: number;
74
+ } | {
75
+ ok: false;
76
+ };
77
+ export declare function createRoomsService(httpClient: HttpClient): {
78
+ getRooms(status?: string, type?: string): Promise<Room[]>;
79
+ getRoom(id: string): Promise<Room | null>;
80
+ createRoom(data: CreateRoomData): Promise<Room | null>;
81
+ startRoom(id: string): Promise<boolean>;
82
+ endRoom(id: string): Promise<boolean>;
83
+ stopRoom(id: string): Promise<boolean>;
84
+ joinRoom(id: string): Promise<boolean>;
85
+ leaveRoom(id: string): Promise<boolean>;
86
+ startStream(id: string, data: {
87
+ url: string;
88
+ title?: string;
89
+ image?: string;
90
+ description?: string;
91
+ }): Promise<{
92
+ ingressId: string;
93
+ url: string;
94
+ } | null>;
95
+ generateStreamKey(id: string, data?: {
96
+ title?: string;
97
+ image?: string;
98
+ description?: string;
99
+ }): Promise<{
100
+ rtmpUrl: string;
101
+ streamKey: string;
102
+ } | null>;
103
+ updateStreamMetadata(id: string, data: StreamMetadataUpdate): Promise<boolean>;
104
+ stopStream(id: string): Promise<boolean>;
105
+ searchPodcasts(query: string, offset?: number): Promise<PodcastFetchResult<PodcastResult>>;
106
+ getPodcastEpisodes(syraPodcastId: string, offset?: number): Promise<PodcastFetchResult<EpisodeListItem>>;
107
+ startPodcastStream(roomId: string, body: {
108
+ syraPodcastId: string;
109
+ episodeId: string;
110
+ queue?: {
111
+ syraPodcastId?: string;
112
+ episodeId: string;
113
+ }[];
114
+ }): Promise<{
115
+ ingressId: string;
116
+ url: string;
117
+ } | null>;
118
+ /**
119
+ * Advance a live podcast stream to the next queued episode (manager + live
120
+ * gated server-side). Resolves `{ ended: false }` when the next episode
121
+ * started, `{ ended: true }` when the queue drained (the stream will clear
122
+ * via the `room:stream:stopped` socket event), or `null` on failure.
123
+ */
124
+ skipPodcastNext(roomId: string): Promise<{
125
+ ended: boolean;
126
+ } | null>;
127
+ /**
128
+ * Search the Syra music catalog for the listening-party picker. Reuses the
129
+ * existing tracks search endpoint (`GET /tracks/search`); like the podcast
130
+ * search it never throws — a failure resolves to `{ ok:false }` so the picker
131
+ * can tell a genuine error from a successful-but-empty result.
132
+ */
133
+ searchMusic(query: string, offset?: number): Promise<PodcastFetchResult<MusicTrackResult>>;
134
+ /**
135
+ * Start streaming Syra music into the room (a "listening party"): a single
136
+ * track (optionally with an up-next `queue`), or an album / playlist whose
137
+ * ordered tracks the backend resolves into the queue. The client sends only
138
+ * ids — the playable audio URL is resolved server-side at stream-start.
139
+ */
140
+ startTrackStream(roomId: string, body: StartTrackStreamBody): Promise<{
141
+ ingressId: string;
142
+ url: string;
143
+ } | null>;
144
+ deleteRoom(id: string): Promise<boolean>;
145
+ archiveRoom(id: string): Promise<{
146
+ success: boolean;
147
+ archived: boolean;
148
+ }>;
149
+ getHouses(search?: string): Promise<House[]>;
150
+ getHouse(id: string): Promise<House | null>;
151
+ getMyHouses(userId: string): Promise<House[]>;
152
+ getUserHouses(userId: string): Promise<House[]>;
153
+ getHouseRooms(houseId: string, status?: string): Promise<Room[]>;
154
+ startRecording(roomId: string): Promise<boolean>;
155
+ stopRecording(roomId: string): Promise<boolean>;
156
+ getRoomRecordings(roomId: string): Promise<Recording[]>;
157
+ getRecording(recordingId: string): Promise<{
158
+ recording: Recording;
159
+ playbackUrl: string;
160
+ } | null>;
161
+ updateRecordingAccess(recordingId: string, access: "public" | "participants"): Promise<boolean>;
162
+ deleteRecording(recordingId: string): Promise<boolean>;
163
+ getRecordings(sortBy?: string, limit?: number): Promise<Recording[]>;
164
+ getTopHosts(): Promise<{
165
+ userId: string;
166
+ roomCount: number;
167
+ totalListeners: number;
168
+ }[]>;
169
+ createHouse(data: {
170
+ name: string;
171
+ description?: string;
172
+ tags?: string[];
173
+ isPublic?: boolean;
174
+ }): Promise<House | null>;
175
+ uploadHouseAvatar(houseId: string, formData: FormData): Promise<string | null>;
176
+ uploadHouseCover(houseId: string, formData: FormData): Promise<string | null>;
177
+ uploadRoomImage(roomId: string, formData: FormData): Promise<string | null>;
178
+ uploadSeriesCover(seriesId: string, formData: FormData): Promise<string | null>;
179
+ };
180
+ export type RoomsServiceInstance = ReturnType<typeof createRoomsService>;
181
+ //# sourceMappingURL=spacesService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacesService.d.ts","sourceRoot":"","sources":["../../../../../src/live/services/spacesService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import type { RoomParticipant } from './validation';
2
+ export type { Room, RoomParticipant, Recording, House, HouseMember, Series, SeriesEpisode, Recurrence, RoomTemplate, RoomAttachment, } from './validation';
3
+ /**
4
+ * The "now playing" stream surfaced in the live room. Derived from the
5
+ * `room:stream:started` socket payload (and the room's persisted stream fields);
6
+ * it is NOT parsed through zod, so it stays a plain structural type rather than
7
+ * `z.infer<typeof ZStreamInfo>`. `startedAt` / `durationSec` are present for
8
+ * length-known streams (e.g. a podcast episode) and drive the progress bar;
9
+ * manual URL/RTMP streams omit them and render no progress UI.
10
+ */
11
+ export interface StreamInfo {
12
+ title?: string;
13
+ image?: string;
14
+ description?: string;
15
+ /** ISO timestamp when the current stream began. */
16
+ startedAt?: string;
17
+ /** Total length of the current stream in seconds, when known. */
18
+ durationSec?: number;
19
+ }
20
+ export interface ParticipantsUpdateData {
21
+ roomId: string;
22
+ participants: RoomParticipant[];
23
+ count: number;
24
+ timestamp: string;
25
+ }
26
+ export interface MuteUpdateData {
27
+ userId: string;
28
+ isMuted: boolean;
29
+ timestamp: string;
30
+ }
31
+ export interface SpeakerRequestData {
32
+ roomId: string;
33
+ userId: string;
34
+ timestamp: string;
35
+ }
36
+ export interface RecordingStateData {
37
+ roomId: string;
38
+ recordingId: string;
39
+ reason?: 'manual' | 'max_duration' | 'room_ended' | 'room_stopped';
40
+ timestamp: string;
41
+ }
42
+ export interface RoomAttachmentData {
43
+ roomId: string;
44
+ title: string;
45
+ status?: 'scheduled' | 'live' | 'ended';
46
+ type?: 'talk' | 'stage' | 'broadcast';
47
+ topic?: string;
48
+ host?: string;
49
+ }
50
+ export interface UserEntity {
51
+ id: string;
52
+ username?: string;
53
+ name?: {
54
+ displayName?: string;
55
+ full?: string;
56
+ first?: string;
57
+ last?: string;
58
+ } | string;
59
+ handle?: string;
60
+ avatar?: string | null;
61
+ verified?: boolean;
62
+ bio?: string;
63
+ displayName?: string;
64
+ createdAt?: string;
65
+ [key: string]: unknown;
66
+ }
67
+ export interface LiveTheme {
68
+ isDark?: boolean;
69
+ colors: {
70
+ text: string;
71
+ textSecondary: string;
72
+ background: string;
73
+ backgroundSecondary: string;
74
+ card: string;
75
+ border: string;
76
+ primary: string;
77
+ [key: string]: string;
78
+ };
79
+ }
80
+ export interface HttpRequestConfig {
81
+ params?: Record<string, string | number | boolean | undefined>;
82
+ [key: string]: unknown;
83
+ }
84
+ /**
85
+ * The HTTP client the engine consumes. Deliberately shaped to match an Oxy
86
+ * `oxyServices.createLinkedClient(...).client` as-is: every method resolves to
87
+ * the PARSED RESPONSE BODY directly (not a `{ data }` envelope). Consumers pass
88
+ * that Oxy client straight through — no per-app adapter.
89
+ */
90
+ export interface HttpClient {
91
+ get: (url: string, config?: HttpRequestConfig) => Promise<Record<string, unknown>>;
92
+ post: (url: string, data?: Record<string, unknown> | FormData, config?: HttpRequestConfig) => Promise<Record<string, unknown>>;
93
+ patch: (url: string, data?: Record<string, unknown>, config?: HttpRequestConfig) => Promise<Record<string, unknown>>;
94
+ delete: (url: string, config?: HttpRequestConfig) => Promise<Record<string, unknown>>;
95
+ }
96
+ export interface FileDownloadService {
97
+ getFileDownloadUrl?(fileId: string, variant?: string, expiresIn?: number): string;
98
+ getFileDownloadUrlAsync?(fileId: string, variant?: string, expiresIn?: number): Promise<string>;
99
+ }
100
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/live/types.ts"],"names":[],"mappings":"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"}