@syra.fm/sdk 0.3.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 (314) 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/lib/commonjs/schema.js +102 -0
  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/lib/module/schema.js +99 -0
  134. package/lib/module/schema.js.map +1 -0
  135. package/{dist/types → lib/typescript/commonjs}/client.d.ts +36 -1
  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/lib/typescript/commonjs/index.d.ts +6 -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 +305 -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/client.test.ts +185 -0
  271. package/src/client.ts +125 -0
  272. package/src/index.native.ts +2 -0
  273. package/src/index.ts +4 -0
  274. package/src/live/assets/icons/spaces-icon.tsx +15 -0
  275. package/src/live/assets/icons/syra-icon.tsx +13 -0
  276. package/src/live/assets/sounds/intro.mp3 +0 -0
  277. package/src/live/components/AnimatedPulse.tsx +52 -0
  278. package/src/live/components/AnimatedSpeakerRing.tsx +101 -0
  279. package/src/live/components/CreateRoomSheet.tsx +654 -0
  280. package/src/live/components/InsightsPanel.tsx +202 -0
  281. package/src/live/components/LiveRoomSheet.tsx +969 -0
  282. package/src/live/components/MiniRoomBar.tsx +166 -0
  283. package/src/live/components/PanelHeader.tsx +36 -0
  284. package/src/live/components/PodcastStreamPicker.tsx +1155 -0
  285. package/src/live/components/RecordingCard.tsx +154 -0
  286. package/src/live/components/RecordingsPanel.tsx +251 -0
  287. package/src/live/components/RoomCard.tsx +494 -0
  288. package/src/live/components/StreamConfigModal.tsx +600 -0
  289. package/src/live/components/StreamConfigPanel.tsx +729 -0
  290. package/src/live/context/LiveConfigContext.tsx +96 -0
  291. package/src/live/context/LiveRoomContext.tsx +235 -0
  292. package/src/live/hooks/useActiveSpeakers.ts +39 -0
  293. package/src/live/hooks/useRoomAudio.ts +103 -0
  294. package/src/live/hooks/useRoomConnection.ts +162 -0
  295. package/src/live/hooks/useRoomManager.ts +17 -0
  296. package/src/live/hooks/useRoomUsers.ts +52 -0
  297. package/src/live/index.ts +92 -0
  298. package/src/live/services/livekitService.ts +11 -0
  299. package/src/live/services/spaceSocketService.ts +136 -0
  300. package/src/live/services/spacesService.ts +692 -0
  301. package/src/live/types.ts +119 -0
  302. package/src/live/validation.ts +279 -0
  303. package/src/schema.ts +34 -0
  304. package/dist/cjs/client.js +0 -185
  305. package/dist/cjs/errors.js +0 -16
  306. package/dist/cjs/index.js +0 -14
  307. package/dist/cjs/package.json +0 -3
  308. package/dist/cjs/schema.js +0 -62
  309. package/dist/esm/client.js +0 -181
  310. package/dist/esm/errors.js +0 -12
  311. package/dist/esm/index.js +0 -3
  312. package/dist/esm/package.json +0 -3
  313. package/dist/esm/schema.js +0 -59
  314. package/dist/types/index.d.ts +0 -5
@@ -765,3 +765,308 @@ export declare const podcastSummarySchema: z.ZodObject<{
765
765
  imageSourceUrl?: string | undefined;
766
766
  }>;
767
767
  export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
768
+ /**
769
+ * The summary view of a podcast EPISODE returned by the public podcast endpoints
770
+ * (`GET /api/podcasts/:id/episodes`, `GET /api/episodes/:id`) — just enough to
771
+ * list an episode and stream its audio.
772
+ *
773
+ * `enclosureUrl` is the direct audio file URL (e.g.
774
+ * `https://api.fastcast.ai/audio/<guid>.mp3`) and is REQUIRED: an episode with
775
+ * no enclosure is unplayable, so a row missing it is treated as malformed and
776
+ * dropped rather than surfaced as a dead entry. `enclosureType` /
777
+ * `enclosureLength` describe that file (MIME type and byte length); `duration`
778
+ * is the runtime in seconds and `pubDate` the ISO publish timestamp.
779
+ *
780
+ * Artwork mirrors the podcast SHOW: `image` is the re-hosted Syra image id
781
+ * (resolved via `/api/images/:id`); `imageSizes` is the multi-resolution variant
782
+ * set (each variant `url` is `/api/images/:id`); `imageSourceUrl` keeps the
783
+ * original external artwork URL as an absolute fallback when re-hosting has not
784
+ * run yet.
785
+ */
786
+ export declare const episodeSummarySchema: z.ZodObject<{
787
+ id: z.ZodString;
788
+ podcastId: z.ZodString;
789
+ title: z.ZodString;
790
+ description: z.ZodOptional<z.ZodString>;
791
+ enclosureUrl: z.ZodString;
792
+ enclosureType: z.ZodOptional<z.ZodString>;
793
+ enclosureLength: z.ZodOptional<z.ZodNumber>;
794
+ duration: z.ZodOptional<z.ZodNumber>;
795
+ pubDate: z.ZodOptional<z.ZodString>;
796
+ image: z.ZodOptional<z.ZodString>;
797
+ imageSizes: z.ZodOptional<z.ZodObject<{
798
+ small: z.ZodOptional<z.ZodObject<{
799
+ id: z.ZodOptional<z.ZodString>;
800
+ url: z.ZodString;
801
+ width: z.ZodOptional<z.ZodNumber>;
802
+ height: z.ZodOptional<z.ZodNumber>;
803
+ }, "strip", z.ZodTypeAny, {
804
+ url: string;
805
+ id?: string | undefined;
806
+ width?: number | undefined;
807
+ height?: number | undefined;
808
+ }, {
809
+ url: string;
810
+ id?: string | undefined;
811
+ width?: number | undefined;
812
+ height?: number | undefined;
813
+ }>>;
814
+ medium: z.ZodOptional<z.ZodObject<{
815
+ id: z.ZodOptional<z.ZodString>;
816
+ url: z.ZodString;
817
+ width: z.ZodOptional<z.ZodNumber>;
818
+ height: z.ZodOptional<z.ZodNumber>;
819
+ }, "strip", z.ZodTypeAny, {
820
+ url: string;
821
+ id?: string | undefined;
822
+ width?: number | undefined;
823
+ height?: number | undefined;
824
+ }, {
825
+ url: string;
826
+ id?: string | undefined;
827
+ width?: number | undefined;
828
+ height?: number | undefined;
829
+ }>>;
830
+ large: z.ZodOptional<z.ZodObject<{
831
+ id: z.ZodOptional<z.ZodString>;
832
+ url: z.ZodString;
833
+ width: z.ZodOptional<z.ZodNumber>;
834
+ height: z.ZodOptional<z.ZodNumber>;
835
+ }, "strip", z.ZodTypeAny, {
836
+ url: string;
837
+ id?: string | undefined;
838
+ width?: number | undefined;
839
+ height?: number | undefined;
840
+ }, {
841
+ url: string;
842
+ id?: string | undefined;
843
+ width?: number | undefined;
844
+ height?: number | undefined;
845
+ }>>;
846
+ xlarge: z.ZodOptional<z.ZodObject<{
847
+ id: z.ZodOptional<z.ZodString>;
848
+ url: z.ZodString;
849
+ width: z.ZodOptional<z.ZodNumber>;
850
+ height: z.ZodOptional<z.ZodNumber>;
851
+ }, "strip", z.ZodTypeAny, {
852
+ url: string;
853
+ id?: string | undefined;
854
+ width?: number | undefined;
855
+ height?: number | undefined;
856
+ }, {
857
+ url: string;
858
+ id?: string | undefined;
859
+ width?: number | undefined;
860
+ height?: number | undefined;
861
+ }>>;
862
+ xxlarge: z.ZodOptional<z.ZodObject<{
863
+ id: z.ZodOptional<z.ZodString>;
864
+ url: z.ZodString;
865
+ width: z.ZodOptional<z.ZodNumber>;
866
+ height: z.ZodOptional<z.ZodNumber>;
867
+ }, "strip", z.ZodTypeAny, {
868
+ url: string;
869
+ id?: string | undefined;
870
+ width?: number | undefined;
871
+ height?: number | undefined;
872
+ }, {
873
+ url: string;
874
+ id?: string | undefined;
875
+ width?: number | undefined;
876
+ height?: number | undefined;
877
+ }>>;
878
+ original: z.ZodOptional<z.ZodObject<{
879
+ id: z.ZodOptional<z.ZodString>;
880
+ url: z.ZodString;
881
+ width: z.ZodOptional<z.ZodNumber>;
882
+ height: z.ZodOptional<z.ZodNumber>;
883
+ }, "strip", z.ZodTypeAny, {
884
+ url: string;
885
+ id?: string | undefined;
886
+ width?: number | undefined;
887
+ height?: number | undefined;
888
+ }, {
889
+ url: string;
890
+ id?: string | undefined;
891
+ width?: number | undefined;
892
+ height?: number | undefined;
893
+ }>>;
894
+ }, "strip", z.ZodTypeAny, {
895
+ small?: {
896
+ url: string;
897
+ id?: string | undefined;
898
+ width?: number | undefined;
899
+ height?: number | undefined;
900
+ } | undefined;
901
+ medium?: {
902
+ url: string;
903
+ id?: string | undefined;
904
+ width?: number | undefined;
905
+ height?: number | undefined;
906
+ } | undefined;
907
+ large?: {
908
+ url: string;
909
+ id?: string | undefined;
910
+ width?: number | undefined;
911
+ height?: number | undefined;
912
+ } | undefined;
913
+ xlarge?: {
914
+ url: string;
915
+ id?: string | undefined;
916
+ width?: number | undefined;
917
+ height?: number | undefined;
918
+ } | undefined;
919
+ xxlarge?: {
920
+ url: string;
921
+ id?: string | undefined;
922
+ width?: number | undefined;
923
+ height?: number | undefined;
924
+ } | undefined;
925
+ original?: {
926
+ url: string;
927
+ id?: string | undefined;
928
+ width?: number | undefined;
929
+ height?: number | undefined;
930
+ } | undefined;
931
+ }, {
932
+ small?: {
933
+ url: string;
934
+ id?: string | undefined;
935
+ width?: number | undefined;
936
+ height?: number | undefined;
937
+ } | undefined;
938
+ medium?: {
939
+ url: string;
940
+ id?: string | undefined;
941
+ width?: number | undefined;
942
+ height?: number | undefined;
943
+ } | undefined;
944
+ large?: {
945
+ url: string;
946
+ id?: string | undefined;
947
+ width?: number | undefined;
948
+ height?: number | undefined;
949
+ } | undefined;
950
+ xlarge?: {
951
+ url: string;
952
+ id?: string | undefined;
953
+ width?: number | undefined;
954
+ height?: number | undefined;
955
+ } | undefined;
956
+ xxlarge?: {
957
+ url: string;
958
+ id?: string | undefined;
959
+ width?: number | undefined;
960
+ height?: number | undefined;
961
+ } | undefined;
962
+ original?: {
963
+ url: string;
964
+ id?: string | undefined;
965
+ width?: number | undefined;
966
+ height?: number | undefined;
967
+ } | undefined;
968
+ }>>;
969
+ imageSourceUrl: z.ZodOptional<z.ZodString>;
970
+ }, "strip", z.ZodTypeAny, {
971
+ id: string;
972
+ title: string;
973
+ podcastId: string;
974
+ enclosureUrl: string;
975
+ duration?: number | undefined;
976
+ description?: string | undefined;
977
+ image?: string | undefined;
978
+ imageSizes?: {
979
+ small?: {
980
+ url: string;
981
+ id?: string | undefined;
982
+ width?: number | undefined;
983
+ height?: number | undefined;
984
+ } | undefined;
985
+ medium?: {
986
+ url: string;
987
+ id?: string | undefined;
988
+ width?: number | undefined;
989
+ height?: number | undefined;
990
+ } | undefined;
991
+ large?: {
992
+ url: string;
993
+ id?: string | undefined;
994
+ width?: number | undefined;
995
+ height?: number | undefined;
996
+ } | undefined;
997
+ xlarge?: {
998
+ url: string;
999
+ id?: string | undefined;
1000
+ width?: number | undefined;
1001
+ height?: number | undefined;
1002
+ } | undefined;
1003
+ xxlarge?: {
1004
+ url: string;
1005
+ id?: string | undefined;
1006
+ width?: number | undefined;
1007
+ height?: number | undefined;
1008
+ } | undefined;
1009
+ original?: {
1010
+ url: string;
1011
+ id?: string | undefined;
1012
+ width?: number | undefined;
1013
+ height?: number | undefined;
1014
+ } | undefined;
1015
+ } | undefined;
1016
+ imageSourceUrl?: string | undefined;
1017
+ enclosureType?: string | undefined;
1018
+ enclosureLength?: number | undefined;
1019
+ pubDate?: string | undefined;
1020
+ }, {
1021
+ id: string;
1022
+ title: string;
1023
+ podcastId: string;
1024
+ enclosureUrl: string;
1025
+ duration?: number | undefined;
1026
+ description?: string | undefined;
1027
+ image?: string | undefined;
1028
+ imageSizes?: {
1029
+ small?: {
1030
+ url: string;
1031
+ id?: string | undefined;
1032
+ width?: number | undefined;
1033
+ height?: number | undefined;
1034
+ } | undefined;
1035
+ medium?: {
1036
+ url: string;
1037
+ id?: string | undefined;
1038
+ width?: number | undefined;
1039
+ height?: number | undefined;
1040
+ } | undefined;
1041
+ large?: {
1042
+ url: string;
1043
+ id?: string | undefined;
1044
+ width?: number | undefined;
1045
+ height?: number | undefined;
1046
+ } | undefined;
1047
+ xlarge?: {
1048
+ url: string;
1049
+ id?: string | undefined;
1050
+ width?: number | undefined;
1051
+ height?: number | undefined;
1052
+ } | undefined;
1053
+ xxlarge?: {
1054
+ url: string;
1055
+ id?: string | undefined;
1056
+ width?: number | undefined;
1057
+ height?: number | undefined;
1058
+ } | undefined;
1059
+ original?: {
1060
+ url: string;
1061
+ id?: string | undefined;
1062
+ width?: number | undefined;
1063
+ height?: number | undefined;
1064
+ } | undefined;
1065
+ } | undefined;
1066
+ imageSourceUrl?: string | undefined;
1067
+ enclosureType?: string | undefined;
1068
+ enclosureLength?: number | undefined;
1069
+ pubDate?: string | undefined;
1070
+ }>;
1071
+ export type EpisodeSummary = z.infer<typeof episodeSummarySchema>;
1072
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AAEH,mFAAmF;AACnF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,yBAAyB;AACzB,MAAM,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,141 @@
1
+ import { type TrackSummary, type PodcastSummary, type EpisodeSummary, type CoverArtSizes, type ArtworkSize } from './schema';
2
+ /** Default base URL of the public Syra API. */
3
+ export declare const DEFAULT_SYRA_BASE_URL = "https://api.syra.fm";
4
+ /** Default base URL of the Syra web app, used for deep links. */
5
+ export declare const DEFAULT_SYRA_WEB_BASE_URL = "https://syra.fm";
6
+ export interface SyraClientOptions {
7
+ /** Base URL of the Syra API. Defaults to {@link DEFAULT_SYRA_BASE_URL}. */
8
+ baseURL?: string;
9
+ /**
10
+ * Base URL of the Syra WEB app (not the API host), used to build deep links
11
+ * such as {@link SyraClient.podcastUrl}. Defaults to
12
+ * {@link DEFAULT_SYRA_WEB_BASE_URL}.
13
+ */
14
+ webBaseURL?: string;
15
+ /**
16
+ * `fetch` implementation. Defaults to the global `fetch` (Node 18+, browsers,
17
+ * React Native). Inject one (e.g. `node-fetch`) when no global is available.
18
+ * This is the seam where an authenticated transport can be layered in later.
19
+ */
20
+ fetch?: typeof fetch;
21
+ }
22
+ export interface SearchTracksOptions {
23
+ /** Maximum number of tracks to request from the API (the page size). */
24
+ limit?: number;
25
+ /** Zero-based offset of the first track to return (for infinite scroll). */
26
+ offset?: number;
27
+ }
28
+ export interface SearchPodcastsOptions {
29
+ /** Maximum number of podcast shows to request from the API (the page size). */
30
+ limit?: number;
31
+ /** Zero-based offset of the first show to return (for infinite scroll). */
32
+ offset?: number;
33
+ }
34
+ export interface PodcastEpisodesOptions {
35
+ /** Maximum number of episodes to request from the API (the page size). */
36
+ limit?: number;
37
+ /** Zero-based offset of the first episode to return (for infinite scroll). */
38
+ offset?: number;
39
+ }
40
+ /**
41
+ * One page of paginated catalog search results.
42
+ *
43
+ * `hasMore` reflects the BACKEND's pagination over the full matching set — NOT
44
+ * `items.length`. {@link SyraClient.searchTracks} additionally filters its page
45
+ * client-side to preview-available tracks, so `items.length` can be smaller than
46
+ * `limit` while `hasMore` is still `true`; callers must paginate by advancing
47
+ * `offset` by `limit` (the page size), never by `items.length`.
48
+ */
49
+ export interface SearchPage<T> {
50
+ /** The validated rows for this page. */
51
+ items: T[];
52
+ /** Whether the backend has results beyond this page. */
53
+ hasMore: boolean;
54
+ /** The page size the backend applied. */
55
+ limit: number;
56
+ /** The zero-based offset of this page. */
57
+ offset: number;
58
+ }
59
+ /** Minimal shape from which track artwork URLs can be derived. */
60
+ export interface ArtworkSource {
61
+ coverArt?: string | null;
62
+ coverArtSizes?: CoverArtSizes | null;
63
+ }
64
+ /** Minimal shape from which podcast-show artwork URLs can be derived. */
65
+ export interface PodcastArtworkSource {
66
+ image?: string | null;
67
+ imageSizes?: CoverArtSizes | null;
68
+ imageSourceUrl?: string | null;
69
+ }
70
+ /** Minimal shape from which podcast-episode artwork URLs can be derived. */
71
+ export interface EpisodeArtworkSource {
72
+ image?: string | null;
73
+ imageSizes?: CoverArtSizes | null;
74
+ imageSourceUrl?: string | null;
75
+ }
76
+ export interface SyraClient {
77
+ /**
78
+ * Search the public catalog for tracks. Returns one paginated page: rows are
79
+ * validated against the track-summary schema and filtered to those that expose
80
+ * a public preview. `hasMore` comes from the backend's pagination, so it is
81
+ * unaffected by the client-side preview filter (see {@link SearchPage}).
82
+ */
83
+ searchTracks(query: string, options?: SearchTracksOptions): Promise<SearchPage<TrackSummary>>;
84
+ /** Fetch a single track by id, validated against the track-summary schema. */
85
+ getTrack(id: string): Promise<TrackSummary>;
86
+ /** Build the public 30s preview URL for a track at the given start offset. */
87
+ previewUrl(id: string, startSec?: number): string;
88
+ /**
89
+ * Resolve an absolute artwork URL from a track / cover-art reference. Returns
90
+ * `undefined` when no artwork can be derived.
91
+ */
92
+ artworkUrl(source: string | ArtworkSource, size?: ArtworkSize): string | undefined;
93
+ /**
94
+ * Search the public catalog for podcast SHOWS (not episodes). Returns one
95
+ * paginated page: rows are validated against the podcast-summary schema and
96
+ * malformed rows are dropped. `hasMore` comes from the backend's pagination.
97
+ */
98
+ searchPodcasts(query: string, options?: SearchPodcastsOptions): Promise<SearchPage<PodcastSummary>>;
99
+ /**
100
+ * Fetch a single podcast show by id, validated against the podcast-summary
101
+ * schema. The by-id endpoint also returns episodes and resolved persons; this
102
+ * returns just the show summary needed to render a card.
103
+ */
104
+ getPodcast(id: string): Promise<PodcastSummary>;
105
+ /** Build the Syra web app deep link for a podcast show (`/podcasts/:id`). */
106
+ podcastUrl(id: string): string;
107
+ /**
108
+ * Resolve an absolute artwork URL from a podcast show reference. Prefers the
109
+ * re-hosted Syra image, then the requested/fallback variant, then the original
110
+ * external artwork URL. Returns `undefined` when no artwork can be derived.
111
+ */
112
+ podcastArtworkUrl(source: PodcastArtworkSource, size?: ArtworkSize): string | undefined;
113
+ /**
114
+ * List a podcast show's EPISODES (newest first, as the backend orders them).
115
+ * Returns one paginated page: rows are validated against the episode-summary
116
+ * schema and malformed rows are dropped — including any without a playable
117
+ * `enclosureUrl`, which the schema requires. The backend paginates by 1-based
118
+ * `page`, but this keeps the uniform offset-based {@link SearchPage} for parity
119
+ * with {@link SyraClient.searchPodcasts}; paginate by advancing `offset` by
120
+ * `limit` (the page size), never by `items.length`.
121
+ */
122
+ getPodcastEpisodes(podcastId: string, options?: PodcastEpisodesOptions): Promise<SearchPage<EpisodeSummary>>;
123
+ /**
124
+ * Fetch a single episode by id, validated against the episode-summary schema.
125
+ * The by-id endpoint nests the episode under `data.episode` alongside resolved
126
+ * persons; this returns just the episode summary needed to stream its audio.
127
+ */
128
+ getEpisode(episodeId: string): Promise<EpisodeSummary>;
129
+ /**
130
+ * Resolve an absolute artwork URL from a podcast episode reference. Prefers the
131
+ * re-hosted Syra image, then the requested/fallback variant, then the original
132
+ * external artwork URL. Returns `undefined` when no artwork can be derived.
133
+ */
134
+ episodeImageUrl(source: EpisodeArtworkSource, size?: ArtworkSize): string | undefined;
135
+ }
136
+ /**
137
+ * Create a headless client for the public Syra API. Public reads only — there
138
+ * is no authentication in this version.
139
+ */
140
+ export declare function createSyraClient(options?: SyraClientOptions): SyraClient;
141
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Error thrown when the Syra API returns a non-2xx response.
3
+ */
4
+ export declare class SyraApiError extends Error {
5
+ /** HTTP status code returned by the API. */
6
+ readonly status: number;
7
+ constructor(status: number, message: string);
8
+ }
9
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAO5C"}
@@ -0,0 +1,6 @@
1
+ export { createSyraClient, DEFAULT_SYRA_BASE_URL, DEFAULT_SYRA_WEB_BASE_URL, } from './client';
2
+ export type { SyraClient, SyraClientOptions, SearchTracksOptions, SearchPodcastsOptions, PodcastEpisodesOptions, SearchPage, ArtworkSource, PodcastArtworkSource, EpisodeArtworkSource, } from './client';
3
+ export { trackSummarySchema, podcastSummarySchema, episodeSummarySchema, coverArtSizesSchema, coverArtVariantSchema, } from './schema';
4
+ export type { TrackSummary, PodcastSummary, EpisodeSummary, CoverArtSizes, CoverArtVariant, ArtworkSize, } from './schema';
5
+ export { SyraApiError } from './errors';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './index';
2
+ export * from './live';
3
+ //# sourceMappingURL=index.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/index.native.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { ViewStyle, type ColorValue } from 'react-native';
3
+ export declare const LiveRoomsIcon: ({ color, size, style }: {
4
+ color?: ColorValue;
5
+ size?: number;
6
+ style?: ViewStyle;
7
+ }) => React.JSX.Element;
8
+ export declare const LiveRoomsIconActive: ({ color, size, style }: {
9
+ color?: ColorValue;
10
+ size?: number;
11
+ style?: ViewStyle;
12
+ }) => React.JSX.Element;
13
+ //# sourceMappingURL=spaces-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaces-icon.d.ts","sourceRoot":"","sources":["../../../../../../src/live/assets/icons/spaces-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,eAAO,MAAM,aAAa,GAAI,wBAA8C;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,sBAInI,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,wBAA8C;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,sBAIzI,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { ViewStyle, type ColorValue } from 'react-native';
3
+ export declare const SyraIcon: ({ color, size, style }: {
4
+ color?: ColorValue;
5
+ size?: number;
6
+ style?: ViewStyle;
7
+ }) => React.JSX.Element;
8
+ export declare const SyraIconActive: ({ color, size, style }: {
9
+ color?: ColorValue;
10
+ size?: number;
11
+ style?: ViewStyle;
12
+ }) => React.JSX.Element;
13
+ //# sourceMappingURL=syra-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syra-icon.d.ts","sourceRoot":"","sources":["../../../../../../src/live/assets/icons/syra-icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,eAAO,MAAM,QAAQ,GAAI,wBAA8C;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,sBAM9H,CAAC;AAEF,eAAO,MAAM,cAAc,2BAR4C;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,sBAQzF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface AnimatedPulseProps {
3
+ size?: number;
4
+ color?: string;
5
+ }
6
+ export declare const AnimatedPulse: React.NamedExoticComponent<AnimatedPulseProps>;
7
+ export {};
8
+ //# sourceMappingURL=AnimatedPulse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedPulse.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/AnimatedPulse.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAUzC,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,aAAa,gDAgCxB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface AnimatedSpeakerRingProps {
3
+ isSpeaking: boolean;
4
+ isMuted: boolean;
5
+ primaryColor: string;
6
+ children: React.ReactNode;
7
+ }
8
+ export declare const AnimatedSpeakerRing: React.NamedExoticComponent<AnimatedSpeakerRingProps>;
9
+ export {};
10
+ //# sourceMappingURL=AnimatedSpeakerRing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedSpeakerRing.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/AnimatedSpeakerRing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAYzC,UAAU,wBAAwB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,mBAAmB,sDA6D9B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import type { Room, House } from '../types';
3
+ export interface CreateRoomSheetRef {
4
+ handleCreateAndStart: () => void;
5
+ handleSchedule: () => void;
6
+ handleCreateForEmbed: () => void;
7
+ }
8
+ export interface CreateRoomFormState {
9
+ isValid: boolean;
10
+ loading: boolean;
11
+ hasScheduledStart: boolean;
12
+ }
13
+ interface CreateRoomSheetProps {
14
+ onClose: () => void;
15
+ onRoomCreated?: (room: Room) => void;
16
+ mode?: 'standalone' | 'embed';
17
+ ScrollViewComponent?: React.ComponentType<{
18
+ children: React.ReactNode;
19
+ }>;
20
+ hideFooter?: boolean;
21
+ onFormStateChange?: (state: CreateRoomFormState) => void;
22
+ houses?: House[];
23
+ }
24
+ export declare const CreateRoomSheet: React.ForwardRefExoticComponent<CreateRoomSheetProps & React.RefAttributes<CreateRoomSheetRef>>;
25
+ export default CreateRoomSheet;
26
+ //# sourceMappingURL=CreateRoomSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateRoomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/CreateRoomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAcpF,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AA0B5C,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,iGAwc1B,CAAC;AAuIH,eAAe,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import type { Room, RoomParticipant, LiveTheme } from '../types';
3
+ interface InsightsPanelProps {
4
+ room: Room | null;
5
+ participants: RoomParticipant[];
6
+ theme: LiveTheme;
7
+ onClose: () => void;
8
+ }
9
+ export declare function InsightsPanel({ room, participants, theme, onClose }: InsightsPanelProps): React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=InsightsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsightsPanel.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/InsightsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAeD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,kBAAkB,qBAgHvF"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface LiveRoomSheetProps {
3
+ roomId: string;
4
+ isExpanded: boolean;
5
+ onCollapse: () => void;
6
+ onExpand: () => void;
7
+ onLeave: () => void;
8
+ }
9
+ export declare function LiveRoomSheet({ roomId, isExpanded, onCollapse, onExpand, onLeave }: LiveRoomSheetProps): React.JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=LiveRoomSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveRoomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/LiveRoomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAgLzE,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,qBAklBtG"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface MiniRoomBarProps {
3
+ title: string;
4
+ participantCount: number;
5
+ isMuted: boolean;
6
+ canSpeak: boolean;
7
+ activeSpeakerCount?: number;
8
+ onExpand: () => void;
9
+ onToggleMute: () => void;
10
+ onLeave: () => void;
11
+ }
12
+ export declare const MINI_BAR_HEIGHT = 64;
13
+ export declare function MiniRoomBar({ title, participantCount, isMuted, canSpeak, activeSpeakerCount, onExpand, onToggleMute, onLeave, }: MiniRoomBarProps): React.JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=MiniRoomBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniRoomBar.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/MiniRoomBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAezC,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,kBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,EAAE,gBAAgB,qBAiFlB"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { LiveTheme } from '../types';
3
+ interface PanelHeaderProps {
4
+ title: string;
5
+ theme: LiveTheme;
6
+ onBack: () => void;
7
+ }
8
+ export declare function PanelHeader({ title, theme, onBack }: PanelHeaderProps): React.JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=PanelHeader.d.ts.map