@syra.fm/sdk 0.4.0 → 0.5.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 (307) hide show
  1. package/lib/commonjs/client.js +268 -0
  2. package/lib/commonjs/client.js.map +1 -0
  3. package/lib/commonjs/errors.js +22 -0
  4. package/lib/commonjs/errors.js.map +1 -0
  5. package/lib/commonjs/index.js +63 -0
  6. package/lib/commonjs/index.js.map +1 -0
  7. package/lib/commonjs/index.native.js +28 -0
  8. package/lib/commonjs/index.native.js.map +1 -0
  9. package/lib/commonjs/live/assets/icons/spaces-icon.js +42 -0
  10. package/lib/commonjs/live/assets/icons/spaces-icon.js.map +1 -0
  11. package/lib/commonjs/live/assets/icons/syra-icon.js +43 -0
  12. package/lib/commonjs/live/assets/icons/syra-icon.js.map +1 -0
  13. package/lib/commonjs/live/components/AnimatedPulse.js +38 -0
  14. package/lib/commonjs/live/components/AnimatedPulse.js.map +1 -0
  15. package/lib/commonjs/live/components/AnimatedSpeakerRing.js +90 -0
  16. package/lib/commonjs/live/components/AnimatedSpeakerRing.js.map +1 -0
  17. package/lib/commonjs/live/components/CreateRoomSheet.js +688 -0
  18. package/lib/commonjs/live/components/CreateRoomSheet.js.map +1 -0
  19. package/lib/commonjs/live/components/InsightsPanel.js +333 -0
  20. package/lib/commonjs/live/components/InsightsPanel.js.map +1 -0
  21. package/lib/commonjs/live/components/LiveRoomSheet.js +1195 -0
  22. package/lib/commonjs/live/components/LiveRoomSheet.js.map +1 -0
  23. package/lib/commonjs/live/components/MiniRoomBar.js +161 -0
  24. package/lib/commonjs/live/components/MiniRoomBar.js.map +1 -0
  25. package/lib/commonjs/live/components/PanelHeader.js +57 -0
  26. package/lib/commonjs/live/components/PanelHeader.js.map +1 -0
  27. package/lib/commonjs/live/components/PodcastStreamPicker.js +1190 -0
  28. package/lib/commonjs/live/components/PodcastStreamPicker.js.map +1 -0
  29. package/lib/commonjs/live/components/RecordingCard.js +192 -0
  30. package/lib/commonjs/live/components/RecordingCard.js.map +1 -0
  31. package/lib/commonjs/live/components/RecordingsPanel.js +304 -0
  32. package/lib/commonjs/live/components/RecordingsPanel.js.map +1 -0
  33. package/lib/commonjs/live/components/RoomCard.js +553 -0
  34. package/lib/commonjs/live/components/RoomCard.js.map +1 -0
  35. package/lib/commonjs/live/components/StreamConfigModal.js +656 -0
  36. package/lib/commonjs/live/components/StreamConfigModal.js.map +1 -0
  37. package/lib/commonjs/live/components/StreamConfigPanel.js +822 -0
  38. package/lib/commonjs/live/components/StreamConfigPanel.js.map +1 -0
  39. package/lib/commonjs/live/context/LiveConfigContext.js +46 -0
  40. package/lib/commonjs/live/context/LiveConfigContext.js.map +1 -0
  41. package/lib/commonjs/live/context/LiveRoomContext.js +195 -0
  42. package/lib/commonjs/live/context/LiveRoomContext.js.map +1 -0
  43. package/lib/commonjs/live/hooks/useActiveSpeakers.js +35 -0
  44. package/lib/commonjs/live/hooks/useActiveSpeakers.js.map +1 -0
  45. package/lib/commonjs/live/hooks/useRoomAudio.js +129 -0
  46. package/lib/commonjs/live/hooks/useRoomAudio.js.map +1 -0
  47. package/lib/commonjs/live/hooks/useRoomConnection.js +177 -0
  48. package/lib/commonjs/live/hooks/useRoomConnection.js.map +1 -0
  49. package/lib/commonjs/live/hooks/useRoomManager.js +37 -0
  50. package/lib/commonjs/live/hooks/useRoomManager.js.map +1 -0
  51. package/lib/commonjs/live/hooks/useRoomUsers.js +52 -0
  52. package/lib/commonjs/live/hooks/useRoomUsers.js.map +1 -0
  53. package/lib/commonjs/live/index.js +310 -0
  54. package/lib/commonjs/live/index.js.map +1 -0
  55. package/lib/commonjs/live/services/livekitService.js +20 -0
  56. package/lib/commonjs/live/services/livekitService.js.map +1 -0
  57. package/lib/commonjs/live/services/spaceSocketService.js +181 -0
  58. package/lib/commonjs/live/services/spaceSocketService.js.map +1 -0
  59. package/lib/commonjs/live/services/spacesService.js +642 -0
  60. package/lib/commonjs/live/services/spacesService.js.map +1 -0
  61. package/lib/commonjs/live/types.js +6 -0
  62. package/lib/commonjs/live/types.js.map +1 -0
  63. package/lib/commonjs/live/validation.js +238 -0
  64. package/lib/commonjs/live/validation.js.map +1 -0
  65. package/lib/commonjs/package.json +1 -0
  66. package/{dist/cjs → lib/commonjs}/schema.js +55 -47
  67. package/lib/commonjs/schema.js.map +1 -0
  68. package/lib/module/client.js +264 -0
  69. package/lib/module/client.js.map +1 -0
  70. package/lib/module/errors.js +17 -0
  71. package/lib/module/errors.js.map +1 -0
  72. package/lib/module/index.js +6 -0
  73. package/lib/module/index.js.map +1 -0
  74. package/lib/module/index.native.js +5 -0
  75. package/lib/module/index.native.js.map +1 -0
  76. package/lib/module/live/assets/icons/spaces-icon.js +34 -0
  77. package/lib/module/live/assets/icons/spaces-icon.js.map +1 -0
  78. package/lib/module/live/assets/icons/syra-icon.js +36 -0
  79. package/lib/module/live/assets/icons/syra-icon.js.map +1 -0
  80. package/lib/module/live/components/AnimatedPulse.js +33 -0
  81. package/lib/module/live/components/AnimatedPulse.js.map +1 -0
  82. package/lib/module/live/components/AnimatedSpeakerRing.js +85 -0
  83. package/lib/module/live/components/AnimatedSpeakerRing.js.map +1 -0
  84. package/lib/module/live/components/CreateRoomSheet.js +682 -0
  85. package/lib/module/live/components/CreateRoomSheet.js.map +1 -0
  86. package/lib/module/live/components/InsightsPanel.js +327 -0
  87. package/lib/module/live/components/InsightsPanel.js.map +1 -0
  88. package/lib/module/live/components/LiveRoomSheet.js +1189 -0
  89. package/lib/module/live/components/LiveRoomSheet.js.map +1 -0
  90. package/lib/module/live/components/MiniRoomBar.js +154 -0
  91. package/lib/module/live/components/MiniRoomBar.js.map +1 -0
  92. package/lib/module/live/components/PanelHeader.js +52 -0
  93. package/lib/module/live/components/PanelHeader.js.map +1 -0
  94. package/lib/module/live/components/PodcastStreamPicker.js +1183 -0
  95. package/lib/module/live/components/PodcastStreamPicker.js.map +1 -0
  96. package/lib/module/live/components/RecordingCard.js +187 -0
  97. package/lib/module/live/components/RecordingCard.js.map +1 -0
  98. package/lib/module/live/components/RecordingsPanel.js +298 -0
  99. package/lib/module/live/components/RecordingsPanel.js.map +1 -0
  100. package/lib/module/live/components/RoomCard.js +548 -0
  101. package/lib/module/live/components/RoomCard.js.map +1 -0
  102. package/lib/module/live/components/StreamConfigModal.js +650 -0
  103. package/lib/module/live/components/StreamConfigModal.js.map +1 -0
  104. package/lib/module/live/components/StreamConfigPanel.js +816 -0
  105. package/lib/module/live/components/StreamConfigPanel.js.map +1 -0
  106. package/lib/module/live/context/LiveConfigContext.js +40 -0
  107. package/lib/module/live/context/LiveConfigContext.js.map +1 -0
  108. package/lib/module/live/context/LiveRoomContext.js +189 -0
  109. package/lib/module/live/context/LiveRoomContext.js.map +1 -0
  110. package/lib/module/live/hooks/useActiveSpeakers.js +31 -0
  111. package/lib/module/live/hooks/useActiveSpeakers.js.map +1 -0
  112. package/lib/module/live/hooks/useRoomAudio.js +125 -0
  113. package/lib/module/live/hooks/useRoomAudio.js.map +1 -0
  114. package/lib/module/live/hooks/useRoomConnection.js +173 -0
  115. package/lib/module/live/hooks/useRoomConnection.js.map +1 -0
  116. package/lib/module/live/hooks/useRoomManager.js +32 -0
  117. package/lib/module/live/hooks/useRoomManager.js.map +1 -0
  118. package/lib/module/live/hooks/useRoomUsers.js +46 -0
  119. package/lib/module/live/hooks/useRoomUsers.js.map +1 -0
  120. package/lib/module/live/index.js +38 -0
  121. package/lib/module/live/index.js.map +1 -0
  122. package/lib/module/live/services/livekitService.js +16 -0
  123. package/lib/module/live/services/livekitService.js.map +1 -0
  124. package/lib/module/live/services/spaceSocketService.js +176 -0
  125. package/lib/module/live/services/spaceSocketService.js.map +1 -0
  126. package/lib/module/live/services/spacesService.js +639 -0
  127. package/lib/module/live/services/spacesService.js.map +1 -0
  128. package/lib/module/live/types.js +4 -0
  129. package/lib/module/live/types.js.map +1 -0
  130. package/lib/module/live/validation.js +229 -0
  131. package/lib/module/live/validation.js.map +1 -0
  132. package/lib/module/package.json +1 -0
  133. package/{dist/esm → lib/module}/schema.js +47 -39
  134. package/lib/module/schema.js.map +1 -0
  135. package/{dist/types → lib/typescript/commonjs}/client.d.ts +1 -0
  136. package/lib/typescript/commonjs/client.d.ts.map +1 -0
  137. package/{dist/types → lib/typescript/commonjs}/errors.d.ts +1 -0
  138. package/lib/typescript/commonjs/errors.d.ts.map +1 -0
  139. package/{dist/types → lib/typescript/commonjs}/index.d.ts +1 -0
  140. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/index.native.d.ts +3 -0
  142. package/lib/typescript/commonjs/index.native.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts +13 -0
  144. package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts +13 -0
  146. package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts.map +1 -0
  147. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts +8 -0
  148. package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts.map +1 -0
  149. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts +10 -0
  150. package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  151. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts +26 -0
  152. package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts +11 -0
  154. package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts +11 -0
  156. package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts +15 -0
  158. package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts +10 -0
  160. package/lib/typescript/commonjs/live/components/PanelHeader.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts +54 -0
  162. package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts +11 -0
  164. package/lib/typescript/commonjs/live/components/RecordingCard.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts +12 -0
  166. package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/live/components/RoomCard.d.ts +38 -0
  168. package/lib/typescript/commonjs/live/components/RoomCard.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts +11 -0
  170. package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts +13 -0
  172. package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts +78 -0
  174. package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts +12 -0
  176. package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts +3 -0
  178. package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts +16 -0
  180. package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts +29 -0
  182. package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts +11 -0
  184. package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts +5 -0
  186. package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/live/index.d.ts +24 -0
  188. package/lib/typescript/commonjs/live/index.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/live/services/livekitService.d.ts +7 -0
  190. package/lib/typescript/commonjs/live/services/livekitService.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts +69 -0
  192. package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/live/services/spacesService.d.ts +181 -0
  194. package/lib/typescript/commonjs/live/services/spacesService.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/live/types.d.ts +100 -0
  196. package/lib/typescript/commonjs/live/types.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/live/validation.d.ts +658 -0
  198. package/lib/typescript/commonjs/live/validation.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/package.json +1 -0
  200. package/{dist/types → lib/typescript/commonjs}/schema.d.ts +1 -0
  201. package/lib/typescript/commonjs/schema.d.ts.map +1 -0
  202. package/lib/typescript/module/client.d.ts +141 -0
  203. package/lib/typescript/module/client.d.ts.map +1 -0
  204. package/lib/typescript/module/errors.d.ts +9 -0
  205. package/lib/typescript/module/errors.d.ts.map +1 -0
  206. package/lib/typescript/module/index.d.ts +6 -0
  207. package/lib/typescript/module/index.d.ts.map +1 -0
  208. package/lib/typescript/module/index.native.d.ts +3 -0
  209. package/lib/typescript/module/index.native.d.ts.map +1 -0
  210. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts +13 -0
  211. package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts.map +1 -0
  212. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts +13 -0
  213. package/lib/typescript/module/live/assets/icons/syra-icon.d.ts.map +1 -0
  214. package/lib/typescript/module/live/components/AnimatedPulse.d.ts +8 -0
  215. package/lib/typescript/module/live/components/AnimatedPulse.d.ts.map +1 -0
  216. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts +10 -0
  217. package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
  218. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts +26 -0
  219. package/lib/typescript/module/live/components/CreateRoomSheet.d.ts.map +1 -0
  220. package/lib/typescript/module/live/components/InsightsPanel.d.ts +11 -0
  221. package/lib/typescript/module/live/components/InsightsPanel.d.ts.map +1 -0
  222. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts +11 -0
  223. package/lib/typescript/module/live/components/LiveRoomSheet.d.ts.map +1 -0
  224. package/lib/typescript/module/live/components/MiniRoomBar.d.ts +15 -0
  225. package/lib/typescript/module/live/components/MiniRoomBar.d.ts.map +1 -0
  226. package/lib/typescript/module/live/components/PanelHeader.d.ts +10 -0
  227. package/lib/typescript/module/live/components/PanelHeader.d.ts.map +1 -0
  228. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts +54 -0
  229. package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts.map +1 -0
  230. package/lib/typescript/module/live/components/RecordingCard.d.ts +11 -0
  231. package/lib/typescript/module/live/components/RecordingCard.d.ts.map +1 -0
  232. package/lib/typescript/module/live/components/RecordingsPanel.d.ts +12 -0
  233. package/lib/typescript/module/live/components/RecordingsPanel.d.ts.map +1 -0
  234. package/lib/typescript/module/live/components/RoomCard.d.ts +38 -0
  235. package/lib/typescript/module/live/components/RoomCard.d.ts.map +1 -0
  236. package/lib/typescript/module/live/components/StreamConfigModal.d.ts +11 -0
  237. package/lib/typescript/module/live/components/StreamConfigModal.d.ts.map +1 -0
  238. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts +13 -0
  239. package/lib/typescript/module/live/components/StreamConfigPanel.d.ts.map +1 -0
  240. package/lib/typescript/module/live/context/LiveConfigContext.d.ts +78 -0
  241. package/lib/typescript/module/live/context/LiveConfigContext.d.ts.map +1 -0
  242. package/lib/typescript/module/live/context/LiveRoomContext.d.ts +12 -0
  243. package/lib/typescript/module/live/context/LiveRoomContext.d.ts.map +1 -0
  244. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts +3 -0
  245. package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts.map +1 -0
  246. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts +16 -0
  247. package/lib/typescript/module/live/hooks/useRoomAudio.d.ts.map +1 -0
  248. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts +29 -0
  249. package/lib/typescript/module/live/hooks/useRoomConnection.d.ts.map +1 -0
  250. package/lib/typescript/module/live/hooks/useRoomManager.d.ts +11 -0
  251. package/lib/typescript/module/live/hooks/useRoomManager.d.ts.map +1 -0
  252. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts +5 -0
  253. package/lib/typescript/module/live/hooks/useRoomUsers.d.ts.map +1 -0
  254. package/lib/typescript/module/live/index.d.ts +24 -0
  255. package/lib/typescript/module/live/index.d.ts.map +1 -0
  256. package/lib/typescript/module/live/services/livekitService.d.ts +7 -0
  257. package/lib/typescript/module/live/services/livekitService.d.ts.map +1 -0
  258. package/lib/typescript/module/live/services/spaceSocketService.d.ts +69 -0
  259. package/lib/typescript/module/live/services/spaceSocketService.d.ts.map +1 -0
  260. package/lib/typescript/module/live/services/spacesService.d.ts +181 -0
  261. package/lib/typescript/module/live/services/spacesService.d.ts.map +1 -0
  262. package/lib/typescript/module/live/types.d.ts +100 -0
  263. package/lib/typescript/module/live/types.d.ts.map +1 -0
  264. package/lib/typescript/module/live/validation.d.ts +658 -0
  265. package/lib/typescript/module/live/validation.d.ts.map +1 -0
  266. package/lib/typescript/module/package.json +1 -0
  267. package/lib/typescript/module/schema.d.ts +1072 -0
  268. package/lib/typescript/module/schema.d.ts.map +1 -0
  269. package/package.json +133 -21
  270. package/src/index.native.ts +2 -0
  271. package/src/live/assets/icons/spaces-icon.tsx +15 -0
  272. package/src/live/assets/icons/syra-icon.tsx +13 -0
  273. package/src/live/assets/sounds/intro.mp3 +0 -0
  274. package/src/live/components/AnimatedPulse.tsx +52 -0
  275. package/src/live/components/AnimatedSpeakerRing.tsx +101 -0
  276. package/src/live/components/CreateRoomSheet.tsx +654 -0
  277. package/src/live/components/InsightsPanel.tsx +202 -0
  278. package/src/live/components/LiveRoomSheet.tsx +969 -0
  279. package/src/live/components/MiniRoomBar.tsx +166 -0
  280. package/src/live/components/PanelHeader.tsx +36 -0
  281. package/src/live/components/PodcastStreamPicker.tsx +1155 -0
  282. package/src/live/components/RecordingCard.tsx +154 -0
  283. package/src/live/components/RecordingsPanel.tsx +251 -0
  284. package/src/live/components/RoomCard.tsx +494 -0
  285. package/src/live/components/StreamConfigModal.tsx +600 -0
  286. package/src/live/components/StreamConfigPanel.tsx +729 -0
  287. package/src/live/context/LiveConfigContext.tsx +96 -0
  288. package/src/live/context/LiveRoomContext.tsx +235 -0
  289. package/src/live/hooks/useActiveSpeakers.ts +39 -0
  290. package/src/live/hooks/useRoomAudio.ts +103 -0
  291. package/src/live/hooks/useRoomConnection.ts +162 -0
  292. package/src/live/hooks/useRoomManager.ts +17 -0
  293. package/src/live/hooks/useRoomUsers.ts +52 -0
  294. package/src/live/index.ts +92 -0
  295. package/src/live/services/livekitService.ts +11 -0
  296. package/src/live/services/spaceSocketService.ts +136 -0
  297. package/src/live/services/spacesService.ts +692 -0
  298. package/src/live/types.ts +119 -0
  299. package/src/live/validation.ts +279 -0
  300. package/dist/cjs/client.js +0 -244
  301. package/dist/cjs/errors.js +0 -16
  302. package/dist/cjs/index.js +0 -15
  303. package/dist/cjs/package.json +0 -3
  304. package/dist/esm/client.js +0 -240
  305. package/dist/esm/errors.js +0 -12
  306. package/dist/esm/index.js +0 -3
  307. package/dist/esm/package.json +0 -3
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+
3
+ import { trackSummarySchema, podcastSummarySchema, episodeSummarySchema } from "./schema.js";
4
+ import { SyraApiError } from "./errors.js";
5
+
6
+ /** Default base URL of the public Syra API. */
7
+ export const DEFAULT_SYRA_BASE_URL = 'https://api.syra.fm';
8
+
9
+ /** Default base URL of the Syra web app, used for deep links. */
10
+ export const DEFAULT_SYRA_WEB_BASE_URL = 'https://syra.fm';
11
+
12
+ /**
13
+ * One page of paginated catalog search results.
14
+ *
15
+ * `hasMore` reflects the BACKEND's pagination over the full matching set — NOT
16
+ * `items.length`. {@link SyraClient.searchTracks} additionally filters its page
17
+ * client-side to preview-available tracks, so `items.length` can be smaller than
18
+ * `limit` while `hasMore` is still `true`; callers must paginate by advancing
19
+ * `offset` by `limit` (the page size), never by `items.length`.
20
+ */
21
+
22
+ /** Minimal shape from which track artwork URLs can be derived. */
23
+
24
+ /** Minimal shape from which podcast-show artwork URLs can be derived. */
25
+
26
+ /** Minimal shape from which podcast-episode artwork URLs can be derived. */
27
+
28
+ /** Order used to pick the best available artwork variant when none is named. */
29
+ const ARTWORK_FALLBACK_ORDER = ['original', 'xxlarge', 'xlarge', 'large', 'medium', 'small'];
30
+ const OBJECT_ID_PATTERN = /^[a-f\d]{24}$/i;
31
+
32
+ /**
33
+ * Default episode page size, matching the backend's own default so the SDK's
34
+ * offset→page translation lines up with the server's pagination window.
35
+ */
36
+ const DEFAULT_EPISODES_PAGE_SIZE = 20;
37
+
38
+ /** Read a finite number from an unknown response field, else a fallback. */
39
+ function numberOr(value, fallback) {
40
+ return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
41
+ }
42
+ /**
43
+ * Create a headless client for the public Syra API. Public reads only — there
44
+ * is no authentication in this version.
45
+ */
46
+ export function createSyraClient(options = {}) {
47
+ const baseURL = (options.baseURL ?? DEFAULT_SYRA_BASE_URL).replace(/\/+$/, '');
48
+ const webBaseURL = (options.webBaseURL ?? DEFAULT_SYRA_WEB_BASE_URL).replace(/\/+$/, '');
49
+ function resolveFetch() {
50
+ if (options.fetch) {
51
+ return options.fetch;
52
+ }
53
+ const globalFetch = globalThis.fetch;
54
+ if (typeof globalFetch === 'function') {
55
+ return globalFetch.bind(globalThis);
56
+ }
57
+ throw new Error('@syra.fm/sdk: no global fetch is available. Pass `fetch` in createSyraClient options, ' + 'or run on Node 18+, a browser, or React Native.');
58
+ }
59
+ async function getJson(path) {
60
+ const doFetch = resolveFetch();
61
+ const response = await doFetch(`${baseURL}${path}`, {
62
+ headers: {
63
+ Accept: 'application/json'
64
+ }
65
+ });
66
+ if (!response.ok) {
67
+ throw new SyraApiError(response.status, `Syra API request failed: ${response.status} ${response.statusText} (${path})`);
68
+ }
69
+ return response.json();
70
+ }
71
+ function resolveImageRef(ref) {
72
+ if (!ref) {
73
+ return undefined;
74
+ }
75
+ if (/^https?:\/\//i.test(ref)) {
76
+ return ref;
77
+ }
78
+ if (ref.startsWith('/api/images/')) {
79
+ return `${baseURL}${ref}`;
80
+ }
81
+ if (OBJECT_ID_PATTERN.test(ref)) {
82
+ return `${baseURL}/api/images/${ref}`;
83
+ }
84
+ return undefined;
85
+ }
86
+ return {
87
+ async searchTracks(query, searchOptions = {}) {
88
+ const params = new URLSearchParams({
89
+ q: query,
90
+ category: 'tracks'
91
+ });
92
+ if (typeof searchOptions.limit === 'number') {
93
+ params.set('limit', String(searchOptions.limit));
94
+ }
95
+ if (typeof searchOptions.offset === 'number') {
96
+ params.set('offset', String(searchOptions.offset));
97
+ }
98
+ const json = await getJson(`/api/search?${params.toString()}`);
99
+ const rawTracks = Array.isArray(json?.results?.tracks) ? json.results.tracks : [];
100
+ const items = [];
101
+ for (const raw of rawTracks) {
102
+ // A single malformed catalog row must not fail the whole search.
103
+ const parsed = trackSummarySchema.safeParse(raw);
104
+ if (parsed.success && parsed.data.previewAvailable === true) {
105
+ items.push(parsed.data);
106
+ }
107
+ }
108
+ return {
109
+ items,
110
+ // `hasMore` is sourced from the backend's pagination over the FULL result
111
+ // set; the client-side preview filter above may shrink `items` below
112
+ // `limit`, but must NOT corrupt `hasMore` (else a page whose tail was
113
+ // filtered out would falsely report the end of the catalog).
114
+ hasMore: json?.hasMore === true,
115
+ limit: numberOr(json?.limit, searchOptions.limit ?? rawTracks.length),
116
+ offset: numberOr(json?.offset, searchOptions.offset ?? 0)
117
+ };
118
+ },
119
+ async getTrack(id) {
120
+ const json = await getJson(`/api/tracks/${encodeURIComponent(id)}`);
121
+ return trackSummarySchema.parse(json);
122
+ },
123
+ previewUrl(id, startSec = 0) {
124
+ const safeStart = Number.isFinite(startSec) ? Math.max(0, Math.trunc(startSec)) : 0;
125
+ return `${baseURL}/api/preview/${encodeURIComponent(id)}.mp3?start=${safeStart}`;
126
+ },
127
+ artworkUrl(source, size) {
128
+ if (typeof source === 'string') {
129
+ return resolveImageRef(source);
130
+ }
131
+ if (size && source.coverArtSizes) {
132
+ const resolved = resolveImageRef(source.coverArtSizes[size]?.url);
133
+ if (resolved) {
134
+ return resolved;
135
+ }
136
+ }
137
+ const fromCoverArt = resolveImageRef(source.coverArt);
138
+ if (fromCoverArt) {
139
+ return fromCoverArt;
140
+ }
141
+ if (source.coverArtSizes) {
142
+ for (const key of ARTWORK_FALLBACK_ORDER) {
143
+ const resolved = resolveImageRef(source.coverArtSizes[key]?.url);
144
+ if (resolved) {
145
+ return resolved;
146
+ }
147
+ }
148
+ }
149
+ return undefined;
150
+ },
151
+ async searchPodcasts(query, searchOptions = {}) {
152
+ const params = new URLSearchParams({
153
+ q: query
154
+ });
155
+ if (typeof searchOptions.limit === 'number') {
156
+ params.set('limit', String(searchOptions.limit));
157
+ }
158
+ if (typeof searchOptions.offset === 'number') {
159
+ params.set('offset', String(searchOptions.offset));
160
+ }
161
+ const json = await getJson(`/api/podcasts/search?${params.toString()}`);
162
+ const rawPodcasts = Array.isArray(json?.data) ? json.data : [];
163
+ const items = [];
164
+ for (const raw of rawPodcasts) {
165
+ // A single malformed catalog row must not fail the whole search.
166
+ const parsed = podcastSummarySchema.safeParse(raw);
167
+ if (parsed.success) {
168
+ items.push(parsed.data);
169
+ }
170
+ }
171
+ return {
172
+ items,
173
+ // `hasMore` reflects the backend's pagination over the full result set.
174
+ hasMore: json?.hasMore === true,
175
+ limit: numberOr(json?.limit, searchOptions.limit ?? rawPodcasts.length),
176
+ offset: numberOr(json?.offset, searchOptions.offset ?? 0)
177
+ };
178
+ },
179
+ async getPodcast(id) {
180
+ const json = await getJson(`/api/podcasts/${encodeURIComponent(id)}`);
181
+ return podcastSummarySchema.parse(json?.data?.podcast);
182
+ },
183
+ podcastUrl(id) {
184
+ return `${webBaseURL}/podcasts/${encodeURIComponent(id)}`;
185
+ },
186
+ podcastArtworkUrl(source, size) {
187
+ if (size && source.imageSizes) {
188
+ const resolved = resolveImageRef(source.imageSizes[size]?.url);
189
+ if (resolved) {
190
+ return resolved;
191
+ }
192
+ }
193
+ const fromImage = resolveImageRef(source.image);
194
+ if (fromImage) {
195
+ return fromImage;
196
+ }
197
+ if (source.imageSizes) {
198
+ for (const key of ARTWORK_FALLBACK_ORDER) {
199
+ const resolved = resolveImageRef(source.imageSizes[key]?.url);
200
+ if (resolved) {
201
+ return resolved;
202
+ }
203
+ }
204
+ }
205
+ return resolveImageRef(source.imageSourceUrl);
206
+ },
207
+ async getPodcastEpisodes(podcastId, listOptions = {}) {
208
+ // The endpoint paginates by 1-based `page`; translate the SDK's uniform
209
+ // offset-based paging into it. `limit` must be concrete (unlike search,
210
+ // which can omit it) because the page number is derived from it.
211
+ const limit = listOptions.limit ?? DEFAULT_EPISODES_PAGE_SIZE;
212
+ const offset = listOptions.offset ?? 0;
213
+ const page = Math.floor(offset / limit) + 1;
214
+ const json = await getJson(`/api/podcasts/${encodeURIComponent(podcastId)}/episodes?page=${page}&limit=${limit}`);
215
+ const rawEpisodes = Array.isArray(json?.data) ? json.data : [];
216
+ const items = [];
217
+ for (const raw of rawEpisodes) {
218
+ // A single malformed episode row must not fail the whole listing.
219
+ const parsed = episodeSummarySchema.safeParse(raw);
220
+ if (parsed.success) {
221
+ items.push(parsed.data);
222
+ }
223
+ }
224
+
225
+ // `total` is the backend's full count over the show; derive `hasMore` from
226
+ // it rather than `items.length`, which the schema/enclosure filter above may
227
+ // shrink below `limit` on a page that is NOT the last one. Absent a count,
228
+ // fall back to what we have (this page ends the listing).
229
+ const total = numberOr(json?.total, offset + items.length);
230
+ return {
231
+ items,
232
+ hasMore: page * limit < total,
233
+ limit,
234
+ offset
235
+ };
236
+ },
237
+ async getEpisode(episodeId) {
238
+ const json = await getJson(`/api/episodes/${encodeURIComponent(episodeId)}`);
239
+ return episodeSummarySchema.parse(json?.data?.episode);
240
+ },
241
+ episodeImageUrl(source, size) {
242
+ if (size && source.imageSizes) {
243
+ const resolved = resolveImageRef(source.imageSizes[size]?.url);
244
+ if (resolved) {
245
+ return resolved;
246
+ }
247
+ }
248
+ const fromImage = resolveImageRef(source.image);
249
+ if (fromImage) {
250
+ return fromImage;
251
+ }
252
+ if (source.imageSizes) {
253
+ for (const key of ARTWORK_FALLBACK_ORDER) {
254
+ const resolved = resolveImageRef(source.imageSizes[key]?.url);
255
+ if (resolved) {
256
+ return resolved;
257
+ }
258
+ }
259
+ }
260
+ return resolveImageRef(source.imageSourceUrl);
261
+ }
262
+ };
263
+ }
264
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["trackSummarySchema","podcastSummarySchema","episodeSummarySchema","SyraApiError","DEFAULT_SYRA_BASE_URL","DEFAULT_SYRA_WEB_BASE_URL","ARTWORK_FALLBACK_ORDER","OBJECT_ID_PATTERN","DEFAULT_EPISODES_PAGE_SIZE","numberOr","value","fallback","Number","isFinite","createSyraClient","options","baseURL","replace","webBaseURL","resolveFetch","fetch","globalFetch","globalThis","bind","Error","getJson","path","doFetch","response","headers","Accept","ok","status","statusText","json","resolveImageRef","ref","undefined","test","startsWith","searchTracks","query","searchOptions","params","URLSearchParams","q","category","limit","set","String","offset","toString","rawTracks","Array","isArray","results","tracks","items","raw","parsed","safeParse","success","data","previewAvailable","push","hasMore","length","getTrack","id","encodeURIComponent","parse","previewUrl","startSec","safeStart","Math","max","trunc","artworkUrl","source","size","coverArtSizes","resolved","url","fromCoverArt","coverArt","key","searchPodcasts","rawPodcasts","getPodcast","podcast","podcastUrl","podcastArtworkUrl","imageSizes","fromImage","image","imageSourceUrl","getPodcastEpisodes","podcastId","listOptions","page","floor","rawEpisodes","total","getEpisode","episodeId","episode","episodeImageUrl"],"sourceRoot":"../../src","sources":["client.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Error thrown when the Syra API returns a non-2xx response.
5
+ */
6
+ export class SyraApiError extends Error {
7
+ /** HTTP status code returned by the API. */
8
+
9
+ constructor(status, message) {
10
+ super(message);
11
+ this.name = 'SyraApiError';
12
+ this.status = status;
13
+ // Restore the prototype chain when targeting ES5-ish runtimes.
14
+ Object.setPrototypeOf(this, SyraApiError.prototype);
15
+ }
16
+ }
17
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SyraApiError","Error","constructor","status","message","name","Object","setPrototypeOf","prototype"],"sourceRoot":"../../src","sources":["errors.ts"],"mappings":";;AAAA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,SAASC,KAAK,CAAC;EACtC;;EAGAC,WAAWA,CAACC,MAAc,EAAEC,OAAe,EAAE;IAC3C,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,cAAc;IAC1B,IAAI,CAACF,MAAM,GAAGA,MAAM;IACpB;IACAG,MAAM,CAACC,cAAc,CAAC,IAAI,EAAEP,YAAY,CAACQ,SAAS,CAAC;EACrD;AACF","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { createSyraClient, DEFAULT_SYRA_BASE_URL, DEFAULT_SYRA_WEB_BASE_URL } from "./client.js";
4
+ export { trackSummarySchema, podcastSummarySchema, episodeSummarySchema, coverArtSizesSchema, coverArtVariantSchema } from "./schema.js";
5
+ export { SyraApiError } from "./errors.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createSyraClient","DEFAULT_SYRA_BASE_URL","DEFAULT_SYRA_WEB_BASE_URL","trackSummarySchema","podcastSummarySchema","episodeSummarySchema","coverArtSizesSchema","coverArtVariantSchema","SyraApiError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,gBAAgB,EAChBC,qBAAqB,EACrBC,yBAAyB,QACpB,aAAU;AAYjB,SACEC,kBAAkB,EAClBC,oBAAoB,EACpBC,oBAAoB,EACpBC,mBAAmB,EACnBC,qBAAqB,QAChB,aAAU;AASjB,SAASC,YAAY,QAAQ,aAAU","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from './index';
4
+ export * from "./live/index.js";
5
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.native.ts"],"mappings":";;AAAA,cAAc,SAAS;AACvB,cAAc,iBAAQ","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Path } from 'react-native-svg';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export const LiveRoomsIcon = ({
7
+ color = 'currentColor',
8
+ size = 26,
9
+ style
10
+ }) => /*#__PURE__*/_jsx(Svg, {
11
+ viewBox: "0 0 24 24",
12
+ width: size,
13
+ height: size,
14
+ style: style,
15
+ children: /*#__PURE__*/_jsx(Path, {
16
+ d: "M12 22.25c-4.99 0-9.18-3.393-10.39-7.994l1.93-.512c.99 3.746 4.4 6.506 8.46 6.506s7.47-2.76 8.46-6.506l1.93.512c-1.21 4.601-5.4 7.994-10.39 7.994zM5 11.5c0 3.866 3.13 7 7 7s7-3.134 7-7V8.75c0-3.866-3.13-7-7-7s-7 3.134-7 7v2.75zm12-2.75v2.75c0 2.761-2.24 5-5 5s-5-2.239-5-5V8.75c0-2.761 2.24-5 5-5s5 2.239 5 5zM11.25 8v4.25c0 .414.34.75.75.75s.75-.336.75-.75V8c0-.414-.34-.75-.75-.75s-.75.336-.75.75zm-3 1v2.25c0 .414.34.75.75.75s.75-.336.75-.75V9c0-.414-.34-.75-.75-.75s-.75.336-.75.75zm7.5 0c0-.414-.34-.75-.75-.75s-.75.336-.75.75v2.25c0 .414.34.75.75.75s.75-.336.75-.75V9z",
17
+ fill: color
18
+ })
19
+ });
20
+ export const LiveRoomsIconActive = ({
21
+ color = 'currentColor',
22
+ size = 26,
23
+ style
24
+ }) => /*#__PURE__*/_jsx(Svg, {
25
+ viewBox: "0 0 24 24",
26
+ width: size,
27
+ height: size,
28
+ style: style,
29
+ children: /*#__PURE__*/_jsx(Path, {
30
+ d: "M12 22.25c-4.99 0-9.18-3.393-10.39-7.994l1.93-.512c.99 3.746 4.4 6.506 8.46 6.506s7.47-2.76 8.46-6.506l1.93.512c-1.21 4.601-5.4 7.994-10.39 7.994zm0-20.5c-3.87 0-7 3.134-7 7v2.75c0 3.866 3.13 7 7 7s7-3.134 7-7V8.75c0-3.866-3.13-7-7-7zm-2.25 9.5c0 .414-.34.75-.75.75s-.75-.336-.75-.75V9c0-.414.34-.75.75-.75s.75.336.75.75v2.25zm3 1c0 .414-.34.75-.75.75s-.75-.336-.75-.75V8c0-.414.34-.75.75-.75s.75.336.75.75v4.25zm3-1c0 .414-.34.75-.75.75s-.75-.336-.75-.75V9c0-.414.34-.75.75-.75s.75.336.75.75v2.25z",
31
+ fill: color
32
+ })
33
+ });
34
+ //# sourceMappingURL=spaces-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Path","jsx","_jsx","LiveRoomsIcon","color","size","style","viewBox","width","height","children","d","fill","LiveRoomsIconActive"],"sourceRoot":"../../../../../src","sources":["live/assets/icons/spaces-icon.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG7C,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAAEC,KAAK,GAAG,cAAc;EAAEC,IAAI,GAAG,EAAE;EAAEC;AAAgE,CAAC,kBAClIJ,IAAA,CAACH,GAAG;EAACQ,OAAO,EAAC,WAAW;EAACC,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACC,KAAK,EAAEA,KAAM;EAAAI,QAAA,eAC/DR,IAAA,CAACF,IAAI;IAACW,CAAC,EAAC,gkBAAgkB;IAACC,IAAI,EAAER;EAAM,CAAE;AAAC,CACrlB,CACN;AAED,OAAO,MAAMS,mBAAmB,GAAGA,CAAC;EAAET,KAAK,GAAG,cAAc;EAAEC,IAAI,GAAG,EAAE;EAAEC;AAAgE,CAAC,kBACxIJ,IAAA,CAACH,GAAG;EAACQ,OAAO,EAAC,WAAW;EAACC,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACC,KAAK,EAAEA,KAAM;EAAAI,QAAA,eAC/DR,IAAA,CAACF,IAAI;IAACW,CAAC,EAAC,ofAAof;IAACC,IAAI,EAAER;EAAM,CAAE;AAAC,CACzgB,CACN","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import Svg, { Rect } from 'react-native-svg';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ export const SyraIcon = ({
7
+ color = 'currentColor',
8
+ size = 26,
9
+ style
10
+ }) => /*#__PURE__*/_jsxs(Svg, {
11
+ viewBox: "0 0 500 500",
12
+ width: size,
13
+ height: size,
14
+ style: style,
15
+ children: [/*#__PURE__*/_jsx(Rect, {
16
+ x: "303.35",
17
+ y: "46.22",
18
+ width: "128.77",
19
+ height: "407.56",
20
+ fill: color
21
+ }), /*#__PURE__*/_jsx(Rect, {
22
+ x: "153.71",
23
+ y: "88.97",
24
+ width: "106.76",
25
+ height: "322.05",
26
+ fill: color
27
+ }), /*#__PURE__*/_jsx(Rect, {
28
+ x: "25",
29
+ y: "131.94",
30
+ width: "86.2",
31
+ height: "236.13",
32
+ fill: color
33
+ })]
34
+ });
35
+ export const SyraIconActive = SyraIcon;
36
+ //# sourceMappingURL=syra-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Svg","Rect","jsx","_jsx","jsxs","_jsxs","SyraIcon","color","size","style","viewBox","width","height","children","x","y","fill","SyraIconActive"],"sourceRoot":"../../../../../src","sources":["live/assets/icons/syra-icon.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG7C,OAAO,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,KAAK,GAAG,cAAc;EAAEC,IAAI,GAAG,EAAE;EAAEC;AAAgE,CAAC,kBAC7HJ,KAAA,CAACL,GAAG;EAACU,OAAO,EAAC,aAAa;EAACC,KAAK,EAAEH,IAAK;EAACI,MAAM,EAAEJ,IAAK;EAACC,KAAK,EAAEA,KAAM;EAAAI,QAAA,gBACjEV,IAAA,CAACF,IAAI;IAACa,CAAC,EAAC,QAAQ;IAACC,CAAC,EAAC,OAAO;IAACJ,KAAK,EAAC,QAAQ;IAACC,MAAM,EAAC,QAAQ;IAACI,IAAI,EAAET;EAAM,CAAE,CAAC,eACzEJ,IAAA,CAACF,IAAI;IAACa,CAAC,EAAC,QAAQ;IAACC,CAAC,EAAC,OAAO;IAACJ,KAAK,EAAC,QAAQ;IAACC,MAAM,EAAC,QAAQ;IAACI,IAAI,EAAET;EAAM,CAAE,CAAC,eACzEJ,IAAA,CAACF,IAAI;IAACa,CAAC,EAAC,IAAI;IAACC,CAAC,EAAC,QAAQ;IAACJ,KAAK,EAAC,MAAM;IAACC,MAAM,EAAC,QAAQ;IAACI,IAAI,EAAET;EAAM,CAAE,CAAC;AAAA,CACjE,CACN;AAED,OAAO,MAAMU,cAAc,GAAGX,QAAQ","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import Animated, { useSharedValue, useAnimatedStyle, withRepeat, withTiming, Easing } from 'react-native-reanimated';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const AnimatedPulse = /*#__PURE__*/React.memo(function AnimatedPulse({
8
+ size = 8,
9
+ color = '#FFFFFF'
10
+ }) {
11
+ const opacity = useSharedValue(1);
12
+ useEffect(() => {
13
+ opacity.value = withRepeat(withTiming(0.3, {
14
+ duration: 500,
15
+ easing: Easing.inOut(Easing.ease)
16
+ }), -1, true);
17
+ }, [opacity]);
18
+ const animatedStyle = useAnimatedStyle(() => ({
19
+ opacity: opacity.value
20
+ }));
21
+ return /*#__PURE__*/_jsx(Animated.View, {
22
+ style: [styles.dot, {
23
+ width: size,
24
+ height: size,
25
+ borderRadius: size / 2,
26
+ backgroundColor: color
27
+ }, animatedStyle]
28
+ });
29
+ });
30
+ const styles = StyleSheet.create({
31
+ dot: {}
32
+ });
33
+ //# sourceMappingURL=AnimatedPulse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","StyleSheet","Animated","useSharedValue","useAnimatedStyle","withRepeat","withTiming","Easing","jsx","_jsx","AnimatedPulse","memo","size","color","opacity","value","duration","easing","inOut","ease","animatedStyle","View","style","styles","dot","width","height","borderRadius","backgroundColor","create"],"sourceRoot":"../../../../src","sources":["live/components/AnimatedPulse.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,QAAQ,IACbC,cAAc,EACdC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,MAAM,QACD,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOjC,OAAO,MAAMC,aAAa,gBAAGX,KAAK,CAACY,IAAI,CAAC,SAASD,aAAaA,CAAC;EAC7DE,IAAI,GAAG,CAAC;EACRC,KAAK,GAAG;AACU,CAAC,EAAE;EACrB,MAAMC,OAAO,GAAGX,cAAc,CAAC,CAAC,CAAC;EAEjCH,SAAS,CAAC,MAAM;IACdc,OAAO,CAACC,KAAK,GAAGV,UAAU,CACxBC,UAAU,CAAC,GAAG,EAAE;MAAEU,QAAQ,EAAE,GAAG;MAAEC,MAAM,EAAEV,MAAM,CAACW,KAAK,CAACX,MAAM,CAACY,IAAI;IAAE,CAAC,CAAC,EACrE,CAAC,CAAC,EACF,IACF,CAAC;EACH,CAAC,EAAE,CAACL,OAAO,CAAC,CAAC;EAEb,MAAMM,aAAa,GAAGhB,gBAAgB,CAAC,OAAO;IAC5CU,OAAO,EAAEA,OAAO,CAACC;EACnB,CAAC,CAAC,CAAC;EAEH,oBACEN,IAAA,CAACP,QAAQ,CAACmB,IAAI;IACZC,KAAK,EAAE,CACLC,MAAM,CAACC,GAAG,EACV;MACEC,KAAK,EAAEb,IAAI;MACXc,MAAM,EAAEd,IAAI;MACZe,YAAY,EAAEf,IAAI,GAAG,CAAC;MACtBgB,eAAe,EAAEf;IACnB,CAAC,EACDO,aAAa;EACb,CACH,CAAC;AAEN,CAAC,CAAC;AAEF,MAAMG,MAAM,GAAGtB,UAAU,CAAC4B,MAAM,CAAC;EAC/BL,GAAG,EAAE,CAAC;AACR,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import Animated, { useSharedValue, useAnimatedStyle, withRepeat, withSequence, withTiming, Easing, cancelAnimation } from 'react-native-reanimated';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ export const AnimatedSpeakerRing = /*#__PURE__*/React.memo(function AnimatedSpeakerRing({
8
+ isSpeaking,
9
+ isMuted,
10
+ primaryColor,
11
+ children
12
+ }) {
13
+ const pulseScale = useSharedValue(1);
14
+ const pulseOpacity = useSharedValue(0);
15
+ useEffect(() => {
16
+ if (isSpeaking && !isMuted) {
17
+ pulseOpacity.value = withRepeat(withSequence(withTiming(0.4, {
18
+ duration: 600,
19
+ easing: Easing.out(Easing.ease)
20
+ }), withTiming(0, {
21
+ duration: 600,
22
+ easing: Easing.in(Easing.ease)
23
+ })), -1, false);
24
+ pulseScale.value = withRepeat(withSequence(withTiming(1.15, {
25
+ duration: 600,
26
+ easing: Easing.out(Easing.ease)
27
+ }), withTiming(1, {
28
+ duration: 600,
29
+ easing: Easing.in(Easing.ease)
30
+ })), -1, false);
31
+ } else {
32
+ cancelAnimation(pulseScale);
33
+ cancelAnimation(pulseOpacity);
34
+ pulseScale.value = withTiming(1, {
35
+ duration: 200
36
+ });
37
+ pulseOpacity.value = withTiming(0, {
38
+ duration: 200
39
+ });
40
+ }
41
+ }, [isSpeaking, isMuted, pulseScale, pulseOpacity]);
42
+ const pulseStyle = useAnimatedStyle(() => ({
43
+ transform: [{
44
+ scale: pulseScale.value
45
+ }],
46
+ opacity: pulseOpacity.value
47
+ }));
48
+ return /*#__PURE__*/_jsxs(View, {
49
+ style: styles.container,
50
+ children: [/*#__PURE__*/_jsx(Animated.View, {
51
+ style: [styles.pulseRing, {
52
+ borderColor: primaryColor
53
+ }, pulseStyle]
54
+ }), /*#__PURE__*/_jsx(View, {
55
+ style: [styles.avatarRing, !isMuted ? {
56
+ borderColor: primaryColor,
57
+ borderWidth: 3
58
+ } : {
59
+ borderColor: 'transparent',
60
+ borderWidth: 3
61
+ }],
62
+ children: children
63
+ })]
64
+ });
65
+ });
66
+ const styles = StyleSheet.create({
67
+ container: {
68
+ alignItems: 'center',
69
+ justifyContent: 'center',
70
+ position: 'relative'
71
+ },
72
+ pulseRing: {
73
+ position: 'absolute',
74
+ width: '100%',
75
+ height: '100%',
76
+ borderRadius: 19,
77
+ borderWidth: 3
78
+ },
79
+ avatarRing: {
80
+ borderRadius: 19,
81
+ padding: 2,
82
+ position: 'relative'
83
+ }
84
+ });
85
+ //# sourceMappingURL=AnimatedSpeakerRing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","View","StyleSheet","Animated","useSharedValue","useAnimatedStyle","withRepeat","withSequence","withTiming","Easing","cancelAnimation","jsx","_jsx","jsxs","_jsxs","AnimatedSpeakerRing","memo","isSpeaking","isMuted","primaryColor","children","pulseScale","pulseOpacity","value","duration","easing","out","ease","in","pulseStyle","transform","scale","opacity","style","styles","container","pulseRing","borderColor","avatarRing","borderWidth","create","alignItems","justifyContent","position","width","height","borderRadius","padding"],"sourceRoot":"../../../../src","sources":["live/components/AnimatedSpeakerRing.tsx"],"mappings":"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","ignoreList":[]}