@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.
- package/lib/commonjs/client.js +268 -0
- package/lib/commonjs/client.js.map +1 -0
- package/lib/commonjs/errors.js +22 -0
- package/lib/commonjs/errors.js.map +1 -0
- package/lib/commonjs/index.js +63 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/index.native.js +28 -0
- package/lib/commonjs/index.native.js.map +1 -0
- package/lib/commonjs/live/assets/icons/spaces-icon.js +42 -0
- package/lib/commonjs/live/assets/icons/spaces-icon.js.map +1 -0
- package/lib/commonjs/live/assets/icons/syra-icon.js +43 -0
- package/lib/commonjs/live/assets/icons/syra-icon.js.map +1 -0
- package/lib/commonjs/live/components/AnimatedPulse.js +38 -0
- package/lib/commonjs/live/components/AnimatedPulse.js.map +1 -0
- package/lib/commonjs/live/components/AnimatedSpeakerRing.js +90 -0
- package/lib/commonjs/live/components/AnimatedSpeakerRing.js.map +1 -0
- package/lib/commonjs/live/components/CreateRoomSheet.js +688 -0
- package/lib/commonjs/live/components/CreateRoomSheet.js.map +1 -0
- package/lib/commonjs/live/components/InsightsPanel.js +333 -0
- package/lib/commonjs/live/components/InsightsPanel.js.map +1 -0
- package/lib/commonjs/live/components/LiveRoomSheet.js +1195 -0
- package/lib/commonjs/live/components/LiveRoomSheet.js.map +1 -0
- package/lib/commonjs/live/components/MiniRoomBar.js +161 -0
- package/lib/commonjs/live/components/MiniRoomBar.js.map +1 -0
- package/lib/commonjs/live/components/PanelHeader.js +57 -0
- package/lib/commonjs/live/components/PanelHeader.js.map +1 -0
- package/lib/commonjs/live/components/PodcastStreamPicker.js +1190 -0
- package/lib/commonjs/live/components/PodcastStreamPicker.js.map +1 -0
- package/lib/commonjs/live/components/RecordingCard.js +192 -0
- package/lib/commonjs/live/components/RecordingCard.js.map +1 -0
- package/lib/commonjs/live/components/RecordingsPanel.js +304 -0
- package/lib/commonjs/live/components/RecordingsPanel.js.map +1 -0
- package/lib/commonjs/live/components/RoomCard.js +553 -0
- package/lib/commonjs/live/components/RoomCard.js.map +1 -0
- package/lib/commonjs/live/components/StreamConfigModal.js +656 -0
- package/lib/commonjs/live/components/StreamConfigModal.js.map +1 -0
- package/lib/commonjs/live/components/StreamConfigPanel.js +822 -0
- package/lib/commonjs/live/components/StreamConfigPanel.js.map +1 -0
- package/lib/commonjs/live/context/LiveConfigContext.js +46 -0
- package/lib/commonjs/live/context/LiveConfigContext.js.map +1 -0
- package/lib/commonjs/live/context/LiveRoomContext.js +195 -0
- package/lib/commonjs/live/context/LiveRoomContext.js.map +1 -0
- package/lib/commonjs/live/hooks/useActiveSpeakers.js +35 -0
- package/lib/commonjs/live/hooks/useActiveSpeakers.js.map +1 -0
- package/lib/commonjs/live/hooks/useRoomAudio.js +129 -0
- package/lib/commonjs/live/hooks/useRoomAudio.js.map +1 -0
- package/lib/commonjs/live/hooks/useRoomConnection.js +177 -0
- package/lib/commonjs/live/hooks/useRoomConnection.js.map +1 -0
- package/lib/commonjs/live/hooks/useRoomManager.js +37 -0
- package/lib/commonjs/live/hooks/useRoomManager.js.map +1 -0
- package/lib/commonjs/live/hooks/useRoomUsers.js +52 -0
- package/lib/commonjs/live/hooks/useRoomUsers.js.map +1 -0
- package/lib/commonjs/live/index.js +310 -0
- package/lib/commonjs/live/index.js.map +1 -0
- package/lib/commonjs/live/services/livekitService.js +20 -0
- package/lib/commonjs/live/services/livekitService.js.map +1 -0
- package/lib/commonjs/live/services/spaceSocketService.js +181 -0
- package/lib/commonjs/live/services/spaceSocketService.js.map +1 -0
- package/lib/commonjs/live/services/spacesService.js +642 -0
- package/lib/commonjs/live/services/spacesService.js.map +1 -0
- package/lib/commonjs/live/types.js +6 -0
- package/lib/commonjs/live/types.js.map +1 -0
- package/lib/commonjs/live/validation.js +238 -0
- package/lib/commonjs/live/validation.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/schema.js +102 -0
- package/lib/commonjs/schema.js.map +1 -0
- package/lib/module/client.js +264 -0
- package/lib/module/client.js.map +1 -0
- package/lib/module/errors.js +17 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.native.js +5 -0
- package/lib/module/index.native.js.map +1 -0
- package/lib/module/live/assets/icons/spaces-icon.js +34 -0
- package/lib/module/live/assets/icons/spaces-icon.js.map +1 -0
- package/lib/module/live/assets/icons/syra-icon.js +36 -0
- package/lib/module/live/assets/icons/syra-icon.js.map +1 -0
- package/lib/module/live/components/AnimatedPulse.js +33 -0
- package/lib/module/live/components/AnimatedPulse.js.map +1 -0
- package/lib/module/live/components/AnimatedSpeakerRing.js +85 -0
- package/lib/module/live/components/AnimatedSpeakerRing.js.map +1 -0
- package/lib/module/live/components/CreateRoomSheet.js +682 -0
- package/lib/module/live/components/CreateRoomSheet.js.map +1 -0
- package/lib/module/live/components/InsightsPanel.js +327 -0
- package/lib/module/live/components/InsightsPanel.js.map +1 -0
- package/lib/module/live/components/LiveRoomSheet.js +1189 -0
- package/lib/module/live/components/LiveRoomSheet.js.map +1 -0
- package/lib/module/live/components/MiniRoomBar.js +154 -0
- package/lib/module/live/components/MiniRoomBar.js.map +1 -0
- package/lib/module/live/components/PanelHeader.js +52 -0
- package/lib/module/live/components/PanelHeader.js.map +1 -0
- package/lib/module/live/components/PodcastStreamPicker.js +1183 -0
- package/lib/module/live/components/PodcastStreamPicker.js.map +1 -0
- package/lib/module/live/components/RecordingCard.js +187 -0
- package/lib/module/live/components/RecordingCard.js.map +1 -0
- package/lib/module/live/components/RecordingsPanel.js +298 -0
- package/lib/module/live/components/RecordingsPanel.js.map +1 -0
- package/lib/module/live/components/RoomCard.js +548 -0
- package/lib/module/live/components/RoomCard.js.map +1 -0
- package/lib/module/live/components/StreamConfigModal.js +650 -0
- package/lib/module/live/components/StreamConfigModal.js.map +1 -0
- package/lib/module/live/components/StreamConfigPanel.js +816 -0
- package/lib/module/live/components/StreamConfigPanel.js.map +1 -0
- package/lib/module/live/context/LiveConfigContext.js +40 -0
- package/lib/module/live/context/LiveConfigContext.js.map +1 -0
- package/lib/module/live/context/LiveRoomContext.js +189 -0
- package/lib/module/live/context/LiveRoomContext.js.map +1 -0
- package/lib/module/live/hooks/useActiveSpeakers.js +31 -0
- package/lib/module/live/hooks/useActiveSpeakers.js.map +1 -0
- package/lib/module/live/hooks/useRoomAudio.js +125 -0
- package/lib/module/live/hooks/useRoomAudio.js.map +1 -0
- package/lib/module/live/hooks/useRoomConnection.js +173 -0
- package/lib/module/live/hooks/useRoomConnection.js.map +1 -0
- package/lib/module/live/hooks/useRoomManager.js +32 -0
- package/lib/module/live/hooks/useRoomManager.js.map +1 -0
- package/lib/module/live/hooks/useRoomUsers.js +46 -0
- package/lib/module/live/hooks/useRoomUsers.js.map +1 -0
- package/lib/module/live/index.js +38 -0
- package/lib/module/live/index.js.map +1 -0
- package/lib/module/live/services/livekitService.js +16 -0
- package/lib/module/live/services/livekitService.js.map +1 -0
- package/lib/module/live/services/spaceSocketService.js +176 -0
- package/lib/module/live/services/spaceSocketService.js.map +1 -0
- package/lib/module/live/services/spacesService.js +639 -0
- package/lib/module/live/services/spacesService.js.map +1 -0
- package/lib/module/live/types.js +4 -0
- package/lib/module/live/types.js.map +1 -0
- package/lib/module/live/validation.js +229 -0
- package/lib/module/live/validation.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/schema.js +99 -0
- package/lib/module/schema.js.map +1 -0
- package/{dist/types → lib/typescript/commonjs}/client.d.ts +36 -1
- package/lib/typescript/commonjs/client.d.ts.map +1 -0
- package/{dist/types → lib/typescript/commonjs}/errors.d.ts +1 -0
- package/lib/typescript/commonjs/errors.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +6 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.native.d.ts +3 -0
- package/lib/typescript/commonjs/index.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts +13 -0
- package/lib/typescript/commonjs/live/assets/icons/spaces-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts +13 -0
- package/lib/typescript/commonjs/live/assets/icons/syra-icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts +8 -0
- package/lib/typescript/commonjs/live/components/AnimatedPulse.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts +10 -0
- package/lib/typescript/commonjs/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts +26 -0
- package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts +11 -0
- package/lib/typescript/commonjs/live/components/InsightsPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts +11 -0
- package/lib/typescript/commonjs/live/components/LiveRoomSheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts +15 -0
- package/lib/typescript/commonjs/live/components/MiniRoomBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/PanelHeader.d.ts +10 -0
- package/lib/typescript/commonjs/live/components/PanelHeader.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts +54 -0
- package/lib/typescript/commonjs/live/components/PodcastStreamPicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/RecordingCard.d.ts +11 -0
- package/lib/typescript/commonjs/live/components/RecordingCard.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts +12 -0
- package/lib/typescript/commonjs/live/components/RecordingsPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/RoomCard.d.ts +38 -0
- package/lib/typescript/commonjs/live/components/RoomCard.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts +11 -0
- package/lib/typescript/commonjs/live/components/StreamConfigModal.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts +13 -0
- package/lib/typescript/commonjs/live/components/StreamConfigPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts +78 -0
- package/lib/typescript/commonjs/live/context/LiveConfigContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts +12 -0
- package/lib/typescript/commonjs/live/context/LiveRoomContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts +3 -0
- package/lib/typescript/commonjs/live/hooks/useActiveSpeakers.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts +16 -0
- package/lib/typescript/commonjs/live/hooks/useRoomAudio.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts +29 -0
- package/lib/typescript/commonjs/live/hooks/useRoomConnection.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts +11 -0
- package/lib/typescript/commonjs/live/hooks/useRoomManager.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts +5 -0
- package/lib/typescript/commonjs/live/hooks/useRoomUsers.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/index.d.ts +24 -0
- package/lib/typescript/commonjs/live/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/services/livekitService.d.ts +7 -0
- package/lib/typescript/commonjs/live/services/livekitService.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts +69 -0
- package/lib/typescript/commonjs/live/services/spaceSocketService.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/services/spacesService.d.ts +181 -0
- package/lib/typescript/commonjs/live/services/spacesService.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/types.d.ts +100 -0
- package/lib/typescript/commonjs/live/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/validation.d.ts +658 -0
- package/lib/typescript/commonjs/live/validation.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/{dist/types → lib/typescript/commonjs}/schema.d.ts +305 -0
- package/lib/typescript/commonjs/schema.d.ts.map +1 -0
- package/lib/typescript/module/client.d.ts +141 -0
- package/lib/typescript/module/client.d.ts.map +1 -0
- package/lib/typescript/module/errors.d.ts +9 -0
- package/lib/typescript/module/errors.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +6 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/index.native.d.ts +3 -0
- package/lib/typescript/module/index.native.d.ts.map +1 -0
- package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts +13 -0
- package/lib/typescript/module/live/assets/icons/spaces-icon.d.ts.map +1 -0
- package/lib/typescript/module/live/assets/icons/syra-icon.d.ts +13 -0
- package/lib/typescript/module/live/assets/icons/syra-icon.d.ts.map +1 -0
- package/lib/typescript/module/live/components/AnimatedPulse.d.ts +8 -0
- package/lib/typescript/module/live/components/AnimatedPulse.d.ts.map +1 -0
- package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts +10 -0
- package/lib/typescript/module/live/components/AnimatedSpeakerRing.d.ts.map +1 -0
- package/lib/typescript/module/live/components/CreateRoomSheet.d.ts +26 -0
- package/lib/typescript/module/live/components/CreateRoomSheet.d.ts.map +1 -0
- package/lib/typescript/module/live/components/InsightsPanel.d.ts +11 -0
- package/lib/typescript/module/live/components/InsightsPanel.d.ts.map +1 -0
- package/lib/typescript/module/live/components/LiveRoomSheet.d.ts +11 -0
- package/lib/typescript/module/live/components/LiveRoomSheet.d.ts.map +1 -0
- package/lib/typescript/module/live/components/MiniRoomBar.d.ts +15 -0
- package/lib/typescript/module/live/components/MiniRoomBar.d.ts.map +1 -0
- package/lib/typescript/module/live/components/PanelHeader.d.ts +10 -0
- package/lib/typescript/module/live/components/PanelHeader.d.ts.map +1 -0
- package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts +54 -0
- package/lib/typescript/module/live/components/PodcastStreamPicker.d.ts.map +1 -0
- package/lib/typescript/module/live/components/RecordingCard.d.ts +11 -0
- package/lib/typescript/module/live/components/RecordingCard.d.ts.map +1 -0
- package/lib/typescript/module/live/components/RecordingsPanel.d.ts +12 -0
- package/lib/typescript/module/live/components/RecordingsPanel.d.ts.map +1 -0
- package/lib/typescript/module/live/components/RoomCard.d.ts +38 -0
- package/lib/typescript/module/live/components/RoomCard.d.ts.map +1 -0
- package/lib/typescript/module/live/components/StreamConfigModal.d.ts +11 -0
- package/lib/typescript/module/live/components/StreamConfigModal.d.ts.map +1 -0
- package/lib/typescript/module/live/components/StreamConfigPanel.d.ts +13 -0
- package/lib/typescript/module/live/components/StreamConfigPanel.d.ts.map +1 -0
- package/lib/typescript/module/live/context/LiveConfigContext.d.ts +78 -0
- package/lib/typescript/module/live/context/LiveConfigContext.d.ts.map +1 -0
- package/lib/typescript/module/live/context/LiveRoomContext.d.ts +12 -0
- package/lib/typescript/module/live/context/LiveRoomContext.d.ts.map +1 -0
- package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts +3 -0
- package/lib/typescript/module/live/hooks/useActiveSpeakers.d.ts.map +1 -0
- package/lib/typescript/module/live/hooks/useRoomAudio.d.ts +16 -0
- package/lib/typescript/module/live/hooks/useRoomAudio.d.ts.map +1 -0
- package/lib/typescript/module/live/hooks/useRoomConnection.d.ts +29 -0
- package/lib/typescript/module/live/hooks/useRoomConnection.d.ts.map +1 -0
- package/lib/typescript/module/live/hooks/useRoomManager.d.ts +11 -0
- package/lib/typescript/module/live/hooks/useRoomManager.d.ts.map +1 -0
- package/lib/typescript/module/live/hooks/useRoomUsers.d.ts +5 -0
- package/lib/typescript/module/live/hooks/useRoomUsers.d.ts.map +1 -0
- package/lib/typescript/module/live/index.d.ts +24 -0
- package/lib/typescript/module/live/index.d.ts.map +1 -0
- package/lib/typescript/module/live/services/livekitService.d.ts +7 -0
- package/lib/typescript/module/live/services/livekitService.d.ts.map +1 -0
- package/lib/typescript/module/live/services/spaceSocketService.d.ts +69 -0
- package/lib/typescript/module/live/services/spaceSocketService.d.ts.map +1 -0
- package/lib/typescript/module/live/services/spacesService.d.ts +181 -0
- package/lib/typescript/module/live/services/spacesService.d.ts.map +1 -0
- package/lib/typescript/module/live/types.d.ts +100 -0
- package/lib/typescript/module/live/types.d.ts.map +1 -0
- package/lib/typescript/module/live/validation.d.ts +658 -0
- package/lib/typescript/module/live/validation.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/schema.d.ts +1072 -0
- package/lib/typescript/module/schema.d.ts.map +1 -0
- package/package.json +133 -21
- package/src/client.test.ts +185 -0
- package/src/client.ts +125 -0
- package/src/index.native.ts +2 -0
- package/src/index.ts +4 -0
- package/src/live/assets/icons/spaces-icon.tsx +15 -0
- package/src/live/assets/icons/syra-icon.tsx +13 -0
- package/src/live/assets/sounds/intro.mp3 +0 -0
- package/src/live/components/AnimatedPulse.tsx +52 -0
- package/src/live/components/AnimatedSpeakerRing.tsx +101 -0
- package/src/live/components/CreateRoomSheet.tsx +654 -0
- package/src/live/components/InsightsPanel.tsx +202 -0
- package/src/live/components/LiveRoomSheet.tsx +969 -0
- package/src/live/components/MiniRoomBar.tsx +166 -0
- package/src/live/components/PanelHeader.tsx +36 -0
- package/src/live/components/PodcastStreamPicker.tsx +1155 -0
- package/src/live/components/RecordingCard.tsx +154 -0
- package/src/live/components/RecordingsPanel.tsx +251 -0
- package/src/live/components/RoomCard.tsx +494 -0
- package/src/live/components/StreamConfigModal.tsx +600 -0
- package/src/live/components/StreamConfigPanel.tsx +729 -0
- package/src/live/context/LiveConfigContext.tsx +96 -0
- package/src/live/context/LiveRoomContext.tsx +235 -0
- package/src/live/hooks/useActiveSpeakers.ts +39 -0
- package/src/live/hooks/useRoomAudio.ts +103 -0
- package/src/live/hooks/useRoomConnection.ts +162 -0
- package/src/live/hooks/useRoomManager.ts +17 -0
- package/src/live/hooks/useRoomUsers.ts +52 -0
- package/src/live/index.ts +92 -0
- package/src/live/services/livekitService.ts +11 -0
- package/src/live/services/spaceSocketService.ts +136 -0
- package/src/live/services/spacesService.ts +692 -0
- package/src/live/types.ts +119 -0
- package/src/live/validation.ts +279 -0
- package/src/schema.ts +34 -0
- package/dist/cjs/client.js +0 -185
- package/dist/cjs/errors.js +0 -16
- package/dist/cjs/index.js +0 -14
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/schema.js +0 -62
- package/dist/esm/client.js +0 -181
- package/dist/esm/errors.js +0 -12
- package/dist/esm/index.js +0 -3
- package/dist/esm/package.json +0 -3
- package/dist/esm/schema.js +0 -59
- package/dist/types/index.d.ts +0 -5
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
// --- Podcast queue ---
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* One podcast episode queued behind the current stream. `episodeId` is the
|
|
9
|
+
* opaque Syra episode handle; `syraPodcastId` (when present) identifies its show.
|
|
10
|
+
* The playable audio URL is never carried here — it is resolved server-side at
|
|
11
|
+
* play-time.
|
|
12
|
+
*/
|
|
13
|
+
export const ZPodcastQueueItem = z.object({
|
|
14
|
+
syraPodcastId: z.string().optional(),
|
|
15
|
+
episodeId: z.string()
|
|
16
|
+
}).passthrough();
|
|
17
|
+
// --- Room (replaces Space) ---
|
|
18
|
+
|
|
19
|
+
export const ZRoom = z.object({
|
|
20
|
+
_id: z.string(),
|
|
21
|
+
id: z.string().optional(),
|
|
22
|
+
title: z.string(),
|
|
23
|
+
description: z.string().nullish(),
|
|
24
|
+
// Ownership
|
|
25
|
+
ownerType: z.enum(['profile', 'house', 'agora']).default('profile'),
|
|
26
|
+
host: z.string(),
|
|
27
|
+
houseId: z.string().optional().nullable(),
|
|
28
|
+
createdByAdmin: z.string().optional().nullable(),
|
|
29
|
+
// Classification
|
|
30
|
+
type: z.enum(['talk', 'stage', 'broadcast']).default('talk'),
|
|
31
|
+
broadcastKind: z.enum(['user', 'agora']).optional().nullable(),
|
|
32
|
+
// Lifecycle
|
|
33
|
+
status: z.enum(['scheduled', 'live', 'ended']),
|
|
34
|
+
scheduledStart: z.string().nullish(),
|
|
35
|
+
startedAt: z.string().nullish(),
|
|
36
|
+
endedAt: z.string().nullish(),
|
|
37
|
+
// Participation
|
|
38
|
+
speakerPermission: z.enum(['everyone', 'followers', 'invited']).nullish(),
|
|
39
|
+
participants: z.array(z.string()).default([]),
|
|
40
|
+
speakers: z.array(z.string()).default([]),
|
|
41
|
+
maxParticipants: z.number().default(100),
|
|
42
|
+
// Content
|
|
43
|
+
topic: z.string().nullish(),
|
|
44
|
+
tags: z.array(z.string()).optional(),
|
|
45
|
+
archived: z.boolean().optional().default(false),
|
|
46
|
+
seriesId: z.string().nullish(),
|
|
47
|
+
// Stats
|
|
48
|
+
stats: z.object({
|
|
49
|
+
peakListeners: z.number(),
|
|
50
|
+
totalJoined: z.number()
|
|
51
|
+
}).optional(),
|
|
52
|
+
// Streaming
|
|
53
|
+
activeIngressId: z.string().nullish(),
|
|
54
|
+
activeStreamUrl: z.string().nullish(),
|
|
55
|
+
streamTitle: z.string().nullish(),
|
|
56
|
+
streamImage: z.string().nullish(),
|
|
57
|
+
streamDescription: z.string().nullish(),
|
|
58
|
+
rtmpUrl: z.string().nullish(),
|
|
59
|
+
rtmpStreamKey: z.string().nullish(),
|
|
60
|
+
// Stream progress + podcast lifecycle (shared contract with the backend).
|
|
61
|
+
// `streamStartedAt` is an ISO timestamp; `streamDurationSec` is the current
|
|
62
|
+
// stream's total length in seconds when known (e.g. a podcast episode);
|
|
63
|
+
// `podcastQueue` holds the episodes queued behind the current one.
|
|
64
|
+
streamStartedAt: z.string().nullish(),
|
|
65
|
+
streamDurationSec: z.number().nullish(),
|
|
66
|
+
podcastQueue: z.array(ZPodcastQueueItem).nullish(),
|
|
67
|
+
// Recording
|
|
68
|
+
recordingEnabled: z.boolean().optional().default(true),
|
|
69
|
+
recordingEgressId: z.string().nullish(),
|
|
70
|
+
createdAt: z.string()
|
|
71
|
+
}).passthrough();
|
|
72
|
+
// --- Room Participant ---
|
|
73
|
+
|
|
74
|
+
export const ZRoomParticipant = z.object({
|
|
75
|
+
userId: z.string(),
|
|
76
|
+
role: z.enum(['host', 'speaker', 'listener']),
|
|
77
|
+
isMuted: z.boolean(),
|
|
78
|
+
joinedAt: z.string()
|
|
79
|
+
}).passthrough();
|
|
80
|
+
// --- House ---
|
|
81
|
+
|
|
82
|
+
export const ZHouseMember = z.object({
|
|
83
|
+
userId: z.string(),
|
|
84
|
+
role: z.enum(['owner', 'admin', 'host', 'member']),
|
|
85
|
+
joinedAt: z.string()
|
|
86
|
+
}).passthrough();
|
|
87
|
+
export const ZHouse = z.object({
|
|
88
|
+
_id: z.string(),
|
|
89
|
+
id: z.string().optional(),
|
|
90
|
+
name: z.string(),
|
|
91
|
+
description: z.string().optional(),
|
|
92
|
+
avatar: z.string().optional().nullable(),
|
|
93
|
+
coverImage: z.string().optional().nullable(),
|
|
94
|
+
members: z.array(ZHouseMember).default([]),
|
|
95
|
+
createdBy: z.string(),
|
|
96
|
+
isPublic: z.boolean().default(true),
|
|
97
|
+
tags: z.array(z.string()).optional(),
|
|
98
|
+
createdAt: z.string()
|
|
99
|
+
}).passthrough();
|
|
100
|
+
// --- Series ---
|
|
101
|
+
|
|
102
|
+
export const ZRecurrence = z.object({
|
|
103
|
+
type: z.enum(['daily', 'weekly', 'biweekly', 'monthly']),
|
|
104
|
+
dayOfWeek: z.number().min(0).max(6).optional(),
|
|
105
|
+
dayOfMonth: z.number().min(1).max(31).optional(),
|
|
106
|
+
time: z.string().regex(/^\d{2}:\d{2}$/),
|
|
107
|
+
timezone: z.string().default('UTC')
|
|
108
|
+
}).passthrough();
|
|
109
|
+
export const ZRoomTemplate = z.object({
|
|
110
|
+
titlePattern: z.string(),
|
|
111
|
+
type: z.enum(['talk', 'stage', 'broadcast']).default('talk'),
|
|
112
|
+
description: z.string().optional(),
|
|
113
|
+
maxParticipants: z.number().default(100),
|
|
114
|
+
speakerPermission: z.enum(['everyone', 'followers', 'invited']).default('invited'),
|
|
115
|
+
tags: z.array(z.string()).optional()
|
|
116
|
+
}).passthrough();
|
|
117
|
+
export const ZSeriesEpisode = z.object({
|
|
118
|
+
roomId: z.string(),
|
|
119
|
+
scheduledStart: z.string(),
|
|
120
|
+
episodeNumber: z.number()
|
|
121
|
+
}).passthrough();
|
|
122
|
+
export const ZSeries = z.object({
|
|
123
|
+
_id: z.string(),
|
|
124
|
+
id: z.string().optional(),
|
|
125
|
+
title: z.string(),
|
|
126
|
+
description: z.string().optional(),
|
|
127
|
+
coverImage: z.string().optional().nullable(),
|
|
128
|
+
houseId: z.string().optional().nullable(),
|
|
129
|
+
createdBy: z.string(),
|
|
130
|
+
recurrence: ZRecurrence,
|
|
131
|
+
roomTemplate: ZRoomTemplate,
|
|
132
|
+
episodes: z.array(ZSeriesEpisode).default([]),
|
|
133
|
+
nextEpisodeNumber: z.number().default(1),
|
|
134
|
+
isActive: z.boolean().default(true),
|
|
135
|
+
createdAt: z.string()
|
|
136
|
+
}).passthrough();
|
|
137
|
+
// --- Recording ---
|
|
138
|
+
|
|
139
|
+
export const ZRecording = z.object({
|
|
140
|
+
_id: z.string(),
|
|
141
|
+
roomId: z.string(),
|
|
142
|
+
roomTitle: z.string(),
|
|
143
|
+
host: z.string(),
|
|
144
|
+
status: z.enum(['recording', 'processing', 'ready', 'failed', 'deleted']),
|
|
145
|
+
egressId: z.string(),
|
|
146
|
+
objectKey: z.string(),
|
|
147
|
+
fileSize: z.number().nullish(),
|
|
148
|
+
durationMs: z.number().nullish(),
|
|
149
|
+
startedAt: z.string(),
|
|
150
|
+
stoppedAt: z.string().nullish(),
|
|
151
|
+
access: z.enum(['public', 'participants']).default('public'),
|
|
152
|
+
participantIds: z.array(z.string()).default([]),
|
|
153
|
+
expiresAt: z.string(),
|
|
154
|
+
createdAt: z.string()
|
|
155
|
+
}).passthrough();
|
|
156
|
+
// --- Stream responses ---
|
|
157
|
+
|
|
158
|
+
export const ZStartStreamResponse = z.object({
|
|
159
|
+
ingressId: z.string(),
|
|
160
|
+
url: z.string()
|
|
161
|
+
}).passthrough();
|
|
162
|
+
export const ZGenerateStreamKeyResponse = z.object({
|
|
163
|
+
rtmpUrl: z.string(),
|
|
164
|
+
streamKey: z.string()
|
|
165
|
+
}).passthrough();
|
|
166
|
+
export const ZStreamInfo = z.object({
|
|
167
|
+
title: z.string().optional(),
|
|
168
|
+
image: z.string().optional(),
|
|
169
|
+
description: z.string().optional()
|
|
170
|
+
}).passthrough();
|
|
171
|
+
// --- Room attachment for posts ---
|
|
172
|
+
|
|
173
|
+
export const ZRoomAttachment = z.object({
|
|
174
|
+
roomId: z.string(),
|
|
175
|
+
title: z.string(),
|
|
176
|
+
status: z.enum(['scheduled', 'live', 'ended']).optional(),
|
|
177
|
+
type: z.enum(['talk', 'stage', 'broadcast']).optional(),
|
|
178
|
+
topic: z.string().optional(),
|
|
179
|
+
host: z.string().optional()
|
|
180
|
+
}).passthrough();
|
|
181
|
+
// --- Validators ---
|
|
182
|
+
|
|
183
|
+
export function validateRoom(data) {
|
|
184
|
+
const result = ZRoom.safeParse(data);
|
|
185
|
+
if (result.success) return result.data;
|
|
186
|
+
console.warn('[live] Invalid Room:', result.error.issues[0]);
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
export function validateRooms(items) {
|
|
190
|
+
if (!Array.isArray(items)) return [];
|
|
191
|
+
const valid = [];
|
|
192
|
+
for (const item of items) {
|
|
193
|
+
const parsed = ZRoom.safeParse(item);
|
|
194
|
+
if (parsed.success) {
|
|
195
|
+
valid.push(parsed.data);
|
|
196
|
+
} else {
|
|
197
|
+
console.warn('[live] Dropping invalid room:', parsed.error.issues[0]);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return valid;
|
|
201
|
+
}
|
|
202
|
+
export function validateHouse(data) {
|
|
203
|
+
const result = ZHouse.safeParse(data);
|
|
204
|
+
if (result.success) return result.data;
|
|
205
|
+
console.warn('[live] Invalid House:', result.error.issues[0]);
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
export function validateRecording(data) {
|
|
209
|
+
const result = ZRecording.safeParse(data);
|
|
210
|
+
if (result.success) return result.data;
|
|
211
|
+
console.warn('[live] Invalid Recording:', result.error.issues[0]);
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
export function validateRecordings(items) {
|
|
215
|
+
if (!Array.isArray(items)) return [];
|
|
216
|
+
const valid = [];
|
|
217
|
+
for (const item of items) {
|
|
218
|
+
const parsed = ZRecording.safeParse(item);
|
|
219
|
+
if (parsed.success) valid.push(parsed.data);
|
|
220
|
+
}
|
|
221
|
+
return valid;
|
|
222
|
+
}
|
|
223
|
+
export function validateSeries(data) {
|
|
224
|
+
const result = ZSeries.safeParse(data);
|
|
225
|
+
if (result.success) return result.data;
|
|
226
|
+
console.warn('[live] Invalid Series:', result.error.issues[0]);
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["z","ZPodcastQueueItem","object","syraPodcastId","string","optional","episodeId","passthrough","ZRoom","_id","id","title","description","nullish","ownerType","enum","default","host","houseId","nullable","createdByAdmin","type","broadcastKind","status","scheduledStart","startedAt","endedAt","speakerPermission","participants","array","speakers","maxParticipants","number","topic","tags","archived","boolean","seriesId","stats","peakListeners","totalJoined","activeIngressId","activeStreamUrl","streamTitle","streamImage","streamDescription","rtmpUrl","rtmpStreamKey","streamStartedAt","streamDurationSec","podcastQueue","recordingEnabled","recordingEgressId","createdAt","ZRoomParticipant","userId","role","isMuted","joinedAt","ZHouseMember","ZHouse","name","avatar","coverImage","members","createdBy","isPublic","ZRecurrence","dayOfWeek","min","max","dayOfMonth","time","regex","timezone","ZRoomTemplate","titlePattern","ZSeriesEpisode","roomId","episodeNumber","ZSeries","recurrence","roomTemplate","episodes","nextEpisodeNumber","isActive","ZRecording","roomTitle","egressId","objectKey","fileSize","durationMs","stoppedAt","access","participantIds","expiresAt","ZStartStreamResponse","ingressId","url","ZGenerateStreamKeyResponse","streamKey","ZStreamInfo","image","ZRoomAttachment","validateRoom","data","result","safeParse","success","console","warn","error","issues","validateRooms","items","Array","isArray","valid","item","parsed","push","validateHouse","validateRecording","validateRecordings","validateSeries"],"sourceRoot":"../../../src","sources":["live/validation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Minimal, self-contained schemas for the public Syra API response shapes this
|
|
7
|
+
* SDK consumes. Intentionally NOT shared with the Syra backend's internal
|
|
8
|
+
* types — the SDK validates only the fields it returns, and tolerantly strips
|
|
9
|
+
* everything else (Zod object schemas drop unknown keys by default), so the API
|
|
10
|
+
* can evolve without breaking external consumers.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/** A single artwork variant. The backend serializes `url` as `/api/images/:id`. */
|
|
14
|
+
export const coverArtVariantSchema = z.object({
|
|
15
|
+
id: z.string().optional(),
|
|
16
|
+
url: z.string(),
|
|
17
|
+
width: z.number().optional(),
|
|
18
|
+
height: z.number().optional()
|
|
19
|
+
});
|
|
20
|
+
/** Named artwork variants keyed by size. */
|
|
21
|
+
export const coverArtSizesSchema = z.object({
|
|
22
|
+
small: coverArtVariantSchema.optional(),
|
|
23
|
+
medium: coverArtVariantSchema.optional(),
|
|
24
|
+
large: coverArtVariantSchema.optional(),
|
|
25
|
+
xlarge: coverArtVariantSchema.optional(),
|
|
26
|
+
xxlarge: coverArtVariantSchema.optional(),
|
|
27
|
+
original: coverArtVariantSchema.optional()
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
/** Artwork size name. */
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The summary view of a track returned by the public catalog endpoints — just
|
|
34
|
+
* enough to render a song row and play its preview.
|
|
35
|
+
*/
|
|
36
|
+
export const trackSummarySchema = z.object({
|
|
37
|
+
id: z.string(),
|
|
38
|
+
title: z.string(),
|
|
39
|
+
artistId: z.string().optional(),
|
|
40
|
+
artistName: z.string(),
|
|
41
|
+
albumId: z.string().optional(),
|
|
42
|
+
albumName: z.string().optional(),
|
|
43
|
+
duration: z.number(),
|
|
44
|
+
coverArt: z.string().optional(),
|
|
45
|
+
coverArtSizes: coverArtSizesSchema.optional(),
|
|
46
|
+
previewAvailable: z.boolean().optional()
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* The summary view of a podcast SHOW returned by the public podcast endpoints
|
|
50
|
+
* (`GET /api/podcasts/search`, `GET /api/podcasts/:id`) — just enough to render
|
|
51
|
+
* a show card and deep-link into the Syra app.
|
|
52
|
+
*
|
|
53
|
+
* Artwork mirrors tracks: `image` is the re-hosted Syra image id (resolved via
|
|
54
|
+
* `/api/images/:id`); `imageSizes` is the multi-resolution variant set (each
|
|
55
|
+
* variant `url` is `/api/images/:id`); `imageSourceUrl` keeps the original
|
|
56
|
+
* external artwork URL as an absolute fallback when re-hosting has not run yet.
|
|
57
|
+
*/
|
|
58
|
+
export const podcastSummarySchema = z.object({
|
|
59
|
+
id: z.string(),
|
|
60
|
+
title: z.string(),
|
|
61
|
+
author: z.string().optional(),
|
|
62
|
+
description: z.string().optional(),
|
|
63
|
+
image: z.string().optional(),
|
|
64
|
+
imageSizes: coverArtSizesSchema.optional(),
|
|
65
|
+
imageSourceUrl: z.string().optional()
|
|
66
|
+
});
|
|
67
|
+
/**
|
|
68
|
+
* The summary view of a podcast EPISODE returned by the public podcast endpoints
|
|
69
|
+
* (`GET /api/podcasts/:id/episodes`, `GET /api/episodes/:id`) — just enough to
|
|
70
|
+
* list an episode and stream its audio.
|
|
71
|
+
*
|
|
72
|
+
* `enclosureUrl` is the direct audio file URL (e.g.
|
|
73
|
+
* `https://api.fastcast.ai/audio/<guid>.mp3`) and is REQUIRED: an episode with
|
|
74
|
+
* no enclosure is unplayable, so a row missing it is treated as malformed and
|
|
75
|
+
* dropped rather than surfaced as a dead entry. `enclosureType` /
|
|
76
|
+
* `enclosureLength` describe that file (MIME type and byte length); `duration`
|
|
77
|
+
* is the runtime in seconds and `pubDate` the ISO publish timestamp.
|
|
78
|
+
*
|
|
79
|
+
* Artwork mirrors the podcast SHOW: `image` is the re-hosted Syra image id
|
|
80
|
+
* (resolved via `/api/images/:id`); `imageSizes` is the multi-resolution variant
|
|
81
|
+
* set (each variant `url` is `/api/images/:id`); `imageSourceUrl` keeps the
|
|
82
|
+
* original external artwork URL as an absolute fallback when re-hosting has not
|
|
83
|
+
* run yet.
|
|
84
|
+
*/
|
|
85
|
+
export const episodeSummarySchema = z.object({
|
|
86
|
+
id: z.string(),
|
|
87
|
+
podcastId: z.string(),
|
|
88
|
+
title: z.string(),
|
|
89
|
+
description: z.string().optional(),
|
|
90
|
+
enclosureUrl: z.string(),
|
|
91
|
+
enclosureType: z.string().optional(),
|
|
92
|
+
enclosureLength: z.number().optional(),
|
|
93
|
+
duration: z.number().optional(),
|
|
94
|
+
pubDate: z.string().optional(),
|
|
95
|
+
image: z.string().optional(),
|
|
96
|
+
imageSizes: coverArtSizesSchema.optional(),
|
|
97
|
+
imageSourceUrl: z.string().optional()
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["z","coverArtVariantSchema","object","id","string","optional","url","width","number","height","coverArtSizesSchema","small","medium","large","xlarge","xxlarge","original","trackSummarySchema","title","artistId","artistName","albumId","albumName","duration","coverArt","coverArtSizes","previewAvailable","boolean","podcastSummarySchema","author","description","image","imageSizes","imageSourceUrl","episodeSummarySchema","podcastId","enclosureUrl","enclosureType","enclosureLength","pubDate"],"sourceRoot":"../../src","sources":["schema.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type TrackSummary, type PodcastSummary, type CoverArtSizes, type ArtworkSize } from './schema';
|
|
1
|
+
import { type TrackSummary, type PodcastSummary, type EpisodeSummary, type CoverArtSizes, type ArtworkSize } from './schema';
|
|
2
2
|
/** Default base URL of the public Syra API. */
|
|
3
3
|
export declare const DEFAULT_SYRA_BASE_URL = "https://api.syra.fm";
|
|
4
4
|
/** Default base URL of the Syra web app, used for deep links. */
|
|
@@ -31,6 +31,12 @@ export interface SearchPodcastsOptions {
|
|
|
31
31
|
/** Zero-based offset of the first show to return (for infinite scroll). */
|
|
32
32
|
offset?: number;
|
|
33
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
|
+
}
|
|
34
40
|
/**
|
|
35
41
|
* One page of paginated catalog search results.
|
|
36
42
|
*
|
|
@@ -61,6 +67,12 @@ export interface PodcastArtworkSource {
|
|
|
61
67
|
imageSizes?: CoverArtSizes | null;
|
|
62
68
|
imageSourceUrl?: string | null;
|
|
63
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
|
+
}
|
|
64
76
|
export interface SyraClient {
|
|
65
77
|
/**
|
|
66
78
|
* Search the public catalog for tracks. Returns one paginated page: rows are
|
|
@@ -98,9 +110,32 @@ export interface SyraClient {
|
|
|
98
110
|
* external artwork URL. Returns `undefined` when no artwork can be derived.
|
|
99
111
|
*/
|
|
100
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;
|
|
101
135
|
}
|
|
102
136
|
/**
|
|
103
137
|
* Create a headless client for the public Syra API. Public reads only — there
|
|
104
138
|
* is no authentication in this version.
|
|
105
139
|
*/
|
|
106
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/PanelHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gBAAgB,qBAUrE"}
|