@syra.fm/sdk 0.13.1 → 0.14.1
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/README.md +3 -0
- package/lib/commonjs/client.js +24 -0
- package/lib/commonjs/client.js.map +1 -1
- package/lib/commonjs/index.js +6 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/live/components/CreateRoomSheet.js +73 -15
- package/lib/commonjs/live/components/CreateRoomSheet.js.map +1 -1
- package/lib/commonjs/live/components/InsightsPanel.js +1 -1
- package/lib/commonjs/live/components/LiveRoomSheet.js +1 -1
- package/lib/commonjs/live/components/MiniRoomBar.js +1 -1
- package/lib/commonjs/live/components/PanelHeader.js +1 -1
- package/lib/commonjs/live/components/PanelHeader.js.map +1 -1
- package/lib/commonjs/live/components/PodcastStreamPicker.js +1 -1
- package/lib/commonjs/live/components/RecordingCard.js +1 -1
- package/lib/commonjs/live/components/RecordingsPanel.js +1 -1
- package/lib/commonjs/live/components/RoomCard.js +1 -1
- package/lib/commonjs/live/components/StreamConfigModal.js +1 -1
- package/lib/commonjs/live/components/StreamConfigPanel.js +1 -1
- package/lib/commonjs/live/icons/MaterialCommunityIcons.js +43 -0
- package/lib/commonjs/live/icons/MaterialCommunityIcons.js.map +1 -0
- package/lib/commonjs/schema.js +10 -1
- package/lib/commonjs/schema.js.map +1 -1
- package/lib/module/client.js +25 -1
- package/lib/module/client.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/live/components/CreateRoomSheet.js +74 -15
- package/lib/module/live/components/CreateRoomSheet.js.map +1 -1
- package/lib/module/live/components/InsightsPanel.js +1 -1
- package/lib/module/live/components/InsightsPanel.js.map +1 -1
- package/lib/module/live/components/LiveRoomSheet.js +1 -1
- package/lib/module/live/components/LiveRoomSheet.js.map +1 -1
- package/lib/module/live/components/MiniRoomBar.js +1 -1
- package/lib/module/live/components/MiniRoomBar.js.map +1 -1
- package/lib/module/live/components/PanelHeader.js +1 -1
- package/lib/module/live/components/PanelHeader.js.map +1 -1
- package/lib/module/live/components/PodcastStreamPicker.js +1 -1
- package/lib/module/live/components/PodcastStreamPicker.js.map +1 -1
- package/lib/module/live/components/RecordingCard.js +1 -1
- package/lib/module/live/components/RecordingCard.js.map +1 -1
- package/lib/module/live/components/RecordingsPanel.js +1 -1
- package/lib/module/live/components/RecordingsPanel.js.map +1 -1
- package/lib/module/live/components/RoomCard.js +1 -1
- package/lib/module/live/components/RoomCard.js.map +1 -1
- package/lib/module/live/components/StreamConfigModal.js +1 -1
- package/lib/module/live/components/StreamConfigModal.js.map +1 -1
- package/lib/module/live/components/StreamConfigPanel.js +1 -1
- package/lib/module/live/components/StreamConfigPanel.js.map +1 -1
- package/lib/module/live/icons/MaterialCommunityIcons.js +36 -0
- package/lib/module/live/icons/MaterialCommunityIcons.js.map +1 -0
- package/lib/module/schema.js +9 -0
- package/lib/module/schema.js.map +1 -1
- package/lib/typescript/commonjs/client.d.ts +18 -1
- package/lib/typescript/commonjs/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts +10 -0
- package/lib/typescript/commonjs/live/components/CreateRoomSheet.d.ts.map +1 -1
- package/lib/typescript/commonjs/live/icons/MaterialCommunityIcons.d.ts +26 -0
- package/lib/typescript/commonjs/live/icons/MaterialCommunityIcons.d.ts.map +1 -0
- package/lib/typescript/commonjs/live/validation.d.ts +4 -4
- package/lib/typescript/commonjs/live/validation.d.ts.map +1 -1
- package/lib/typescript/commonjs/schema.d.ts +61 -0
- package/lib/typescript/commonjs/schema.d.ts.map +1 -1
- package/lib/typescript/module/client.d.ts +18 -1
- package/lib/typescript/module/client.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/live/components/CreateRoomSheet.d.ts +10 -0
- package/lib/typescript/module/live/components/CreateRoomSheet.d.ts.map +1 -1
- package/lib/typescript/module/live/icons/MaterialCommunityIcons.d.ts +26 -0
- package/lib/typescript/module/live/icons/MaterialCommunityIcons.d.ts.map +1 -0
- package/lib/typescript/module/live/validation.d.ts +4 -4
- package/lib/typescript/module/live/validation.d.ts.map +1 -1
- package/lib/typescript/module/schema.d.ts +61 -0
- package/lib/typescript/module/schema.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/client.ts +47 -0
- package/src/index.ts +2 -0
- package/src/live/components/CreateRoomSheet.tsx +68 -15
- package/src/live/components/InsightsPanel.tsx +1 -1
- package/src/live/components/LiveRoomSheet.tsx +1 -1
- package/src/live/components/MiniRoomBar.tsx +1 -1
- package/src/live/components/PanelHeader.tsx +1 -1
- package/src/live/components/PodcastStreamPicker.tsx +1 -1
- package/src/live/components/RecordingCard.tsx +1 -1
- package/src/live/components/RecordingsPanel.tsx +1 -1
- package/src/live/components/RoomCard.tsx +1 -1
- package/src/live/components/StreamConfigModal.tsx +1 -1
- package/src/live/components/StreamConfigPanel.tsx +1 -1
- package/src/live/icons/MaterialCommunityIcons.tsx +33 -0
- package/src/schema.ts +11 -0
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Room, House } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Failure copy the sheet shows INLINE. It used to go to the host `toast`, but
|
|
5
|
+
* the sheet is usually presented in a native modal window, and a toast renders
|
|
6
|
+
* in the main window underneath it: a failed create (a 401 from an expired
|
|
7
|
+
* session, a network drop) looked like a button that did nothing.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CREATE_ROOM_ERRORS: {
|
|
10
|
+
readonly createFailed: "Couldn't create the room. Check your connection and that you're signed in, then try again.";
|
|
11
|
+
readonly scheduleMissing: "Enter a scheduled start time to schedule the room.";
|
|
12
|
+
};
|
|
3
13
|
export interface CreateRoomSheetRef {
|
|
4
14
|
handleCreateAndStart: () => void;
|
|
5
15
|
handleSchedule: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateRoomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/CreateRoomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateRoomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/CreateRoomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAepF,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAG5C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AA0BX,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,iGAoe1B,CAAC;AAmJH,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { type ComponentProps } from 'react';
|
|
2
|
+
import BaseMaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
3
|
+
export type MaterialCommunityIconsProps = ComponentProps<typeof BaseMaterialCommunityIcons>;
|
|
4
|
+
/**
|
|
5
|
+
* The live-rooms UI's one entry to the MaterialCommunityIcons glyph font. SDK
|
|
6
|
+
* components import this, never `@expo/vector-icons/MaterialCommunityIcons`
|
|
7
|
+
* directly — `src/live/icons/glyphImports.test.ts` fails the suite if one does.
|
|
8
|
+
*
|
|
9
|
+
* A vector-icons glyph is a `Text` node whose content is a private-use code
|
|
10
|
+
* point. A screen reader reads it like any other text, so the Create Room sheet
|
|
11
|
+
* announced its options as "\U000f036c, Talk, Open conversation" and its button
|
|
12
|
+
* as "\U000f040a, Start Now": on Android RN builds an unlabelled pressable's
|
|
13
|
+
* description from its children's text, code point included.
|
|
14
|
+
*
|
|
15
|
+
* Every glyph in the SDK is decorative — the control around it carries the
|
|
16
|
+
* words, or an `accessibilityLabel` — so the glyph is hidden from assistive
|
|
17
|
+
* technology here, once, rather than at each call site where the next icon
|
|
18
|
+
* would forget it. `aria-hidden` is `importantForAccessibility=
|
|
19
|
+
* "no-hide-descendants"` on Android, `accessibilityElementsHidden` on iOS and
|
|
20
|
+
* `aria-hidden` on web. It is applied AFTER the caller's props so a call site
|
|
21
|
+
* cannot switch it back on: a glyph that needs a name belongs inside a control
|
|
22
|
+
* that has one.
|
|
23
|
+
*/
|
|
24
|
+
export declare function MaterialCommunityIcons(props: MaterialCommunityIconsProps): React.JSX.Element;
|
|
25
|
+
export default MaterialCommunityIcons;
|
|
26
|
+
//# sourceMappingURL=MaterialCommunityIcons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialCommunityIcons.d.ts","sourceRoot":"","sources":["../../../../../src/live/icons/MaterialCommunityIcons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAInD,OAAO,0BAA0B,MAAM,2CAA2C,CAAC;AAEnF,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE5F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,qBAExE;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -71,7 +71,7 @@ export declare const ZRoom: z.ZodPreprocess<z.ZodObject<{
|
|
|
71
71
|
recordingEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
72
72
|
recordingEgressId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
73
73
|
createdAt: z.ZodString;
|
|
74
|
-
}, z.core.$loose
|
|
74
|
+
}, z.core.$loose>, unknown>;
|
|
75
75
|
export type Room = z.infer<typeof ZRoom>;
|
|
76
76
|
export declare const ZRoomParticipant: z.ZodObject<{
|
|
77
77
|
userId: z.ZodString;
|
|
@@ -152,7 +152,7 @@ export declare const ZHouse: z.ZodPreprocess<z.ZodObject<{
|
|
|
152
152
|
}, z.core.$loose>>;
|
|
153
153
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
154
154
|
createdAt: z.ZodString;
|
|
155
|
-
}, z.core.$loose
|
|
155
|
+
}, z.core.$loose>, unknown>;
|
|
156
156
|
export type House = z.infer<typeof ZHouse>;
|
|
157
157
|
export declare const ZRecurrence: z.ZodObject<{
|
|
158
158
|
type: z.ZodEnum<{
|
|
@@ -233,7 +233,7 @@ export declare const ZSeries: z.ZodPreprocess<z.ZodObject<{
|
|
|
233
233
|
nextEpisodeNumber: z.ZodDefault<z.ZodNumber>;
|
|
234
234
|
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
235
235
|
createdAt: z.ZodString;
|
|
236
|
-
}, z.core.$loose
|
|
236
|
+
}, z.core.$loose>, unknown>;
|
|
237
237
|
export type Series = z.infer<typeof ZSeries>;
|
|
238
238
|
export declare const ZRecording: z.ZodPreprocess<z.ZodObject<{
|
|
239
239
|
id: z.ZodString;
|
|
@@ -260,7 +260,7 @@ export declare const ZRecording: z.ZodPreprocess<z.ZodObject<{
|
|
|
260
260
|
participantIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
261
261
|
expiresAt: z.ZodString;
|
|
262
262
|
createdAt: z.ZodString;
|
|
263
|
-
}, z.core.$loose
|
|
263
|
+
}, z.core.$loose>, unknown>;
|
|
264
264
|
export type Recording = z.infer<typeof ZRecording>;
|
|
265
265
|
export declare const ZStartStreamResponse: z.ZodObject<{
|
|
266
266
|
ingressId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/live/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;iBAGd,CAAC;AAEjB,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAIjE,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/live/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -179,6 +179,67 @@ export declare const podcastSummarySchema: z.ZodObject<{
|
|
|
179
179
|
aiGenerated: z.ZodOptional<z.ZodBoolean>;
|
|
180
180
|
}, z.core.$strip>;
|
|
181
181
|
export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
|
|
182
|
+
/**
|
|
183
|
+
* One show the caller is subscribed to, from `GET /api/podcasts/subscriptions`.
|
|
184
|
+
* `lastEpisodeAt` is the newest episode's publish time — what a client compares
|
|
185
|
+
* against its own last visit to badge a show with new episodes.
|
|
186
|
+
*/
|
|
187
|
+
export declare const podcastSubscriptionSchema: z.ZodObject<{
|
|
188
|
+
podcast: z.ZodObject<{
|
|
189
|
+
id: z.ZodString;
|
|
190
|
+
title: z.ZodString;
|
|
191
|
+
author: z.ZodOptional<z.ZodString>;
|
|
192
|
+
description: z.ZodOptional<z.ZodString>;
|
|
193
|
+
image: z.ZodOptional<z.ZodString>;
|
|
194
|
+
imageSizes: z.ZodOptional<z.ZodObject<{
|
|
195
|
+
small: z.ZodOptional<z.ZodObject<{
|
|
196
|
+
id: z.ZodOptional<z.ZodString>;
|
|
197
|
+
url: z.ZodString;
|
|
198
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
199
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
200
|
+
}, z.core.$strip>>;
|
|
201
|
+
medium: z.ZodOptional<z.ZodObject<{
|
|
202
|
+
id: z.ZodOptional<z.ZodString>;
|
|
203
|
+
url: z.ZodString;
|
|
204
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
205
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
206
|
+
}, z.core.$strip>>;
|
|
207
|
+
large: z.ZodOptional<z.ZodObject<{
|
|
208
|
+
id: z.ZodOptional<z.ZodString>;
|
|
209
|
+
url: z.ZodString;
|
|
210
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
211
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
212
|
+
}, z.core.$strip>>;
|
|
213
|
+
xlarge: z.ZodOptional<z.ZodObject<{
|
|
214
|
+
id: z.ZodOptional<z.ZodString>;
|
|
215
|
+
url: z.ZodString;
|
|
216
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
217
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
218
|
+
}, z.core.$strip>>;
|
|
219
|
+
xxlarge: z.ZodOptional<z.ZodObject<{
|
|
220
|
+
id: z.ZodOptional<z.ZodString>;
|
|
221
|
+
url: z.ZodString;
|
|
222
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
223
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
224
|
+
}, z.core.$strip>>;
|
|
225
|
+
original: z.ZodOptional<z.ZodObject<{
|
|
226
|
+
id: z.ZodOptional<z.ZodString>;
|
|
227
|
+
url: z.ZodString;
|
|
228
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
229
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
230
|
+
}, z.core.$strip>>;
|
|
231
|
+
}, z.core.$strip>>;
|
|
232
|
+
imageSourceUrl: z.ZodOptional<z.ZodString>;
|
|
233
|
+
visibility: z.ZodOptional<z.ZodEnum<{
|
|
234
|
+
private: "private";
|
|
235
|
+
unlisted: "unlisted";
|
|
236
|
+
public: "public";
|
|
237
|
+
}>>;
|
|
238
|
+
aiGenerated: z.ZodOptional<z.ZodBoolean>;
|
|
239
|
+
}, z.core.$strip>;
|
|
240
|
+
lastEpisodeAt: z.ZodOptional<z.ZodString>;
|
|
241
|
+
}, z.core.$strip>;
|
|
242
|
+
export type PodcastSubscription = z.infer<typeof podcastSubscriptionSchema>;
|
|
182
243
|
/**
|
|
183
244
|
* The summary view of a podcast EPISODE returned by the public podcast endpoints
|
|
184
245
|
* (`GET /api/podcasts/:id/episodes`, `GET /api/episodes/:id`) — just enough to
|
|
@@ -1 +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;;;;;iBAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;;;;EAA4C,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;EAA2D,CAAC;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqB/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,gGAAgG;AAChG,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,uFAAuF;AACvF,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,qFAAqF;AACrF,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,iDAAiD;AACjD,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type TrackSummary, type PodcastSummary, type EpisodeSummary, type EpisodeDraft, type EpisodeStream, type UploadedImage, type PodcastDeleted, type EpisodeDeleted, type PodcastVisibility, type CoverArtSizes, type ArtworkSize } from './schema';
|
|
1
|
+
import { type TrackSummary, type PodcastSummary, type PodcastSubscription, type EpisodeSummary, type EpisodeDraft, type EpisodeStream, type UploadedImage, type PodcastDeleted, type EpisodeDeleted, type PodcastVisibility, 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. */
|
|
@@ -253,6 +253,23 @@ export interface SyraClient {
|
|
|
253
253
|
url?: string | null;
|
|
254
254
|
} | null;
|
|
255
255
|
}): string | undefined;
|
|
256
|
+
/**
|
|
257
|
+
* `POST /api/podcasts/:id/subscribe` — subscribe the caller to a show (what a
|
|
258
|
+
* client presents as "save" or "follow"). Idempotent: subscribing twice is one
|
|
259
|
+
* subscription. A show the caller cannot see is a 404, same as a missing one.
|
|
260
|
+
*/
|
|
261
|
+
subscribeToPodcast(podcastId: string): Promise<void>;
|
|
262
|
+
/**
|
|
263
|
+
* `POST /api/podcasts/:id/unsubscribe` — idempotent, and succeeds for every
|
|
264
|
+
* well-formed id, including a show that no longer exists or went private.
|
|
265
|
+
*/
|
|
266
|
+
unsubscribeFromPodcast(podcastId: string): Promise<void>;
|
|
267
|
+
/**
|
|
268
|
+
* `GET /api/podcasts/subscriptions` — every show the caller is subscribed to
|
|
269
|
+
* and can still see. A row that fails validation is dropped rather than
|
|
270
|
+
* failing the whole list.
|
|
271
|
+
*/
|
|
272
|
+
listPodcastSubscriptions(): Promise<PodcastSubscription[]>;
|
|
256
273
|
/** `GET /api/podcasts/mine` — every show the caller owns, in every state. */
|
|
257
274
|
listMyPodcasts(): Promise<PodcastSummary[]>;
|
|
258
275
|
/** `POST /api/podcasts` — create a Syra-hosted show. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { createSyraClient, DEFAULT_SYRA_BASE_URL, DEFAULT_SYRA_WEB_BASE_URL, } from './client';
|
|
2
2
|
export type { SyraClient, SyraClientOptions, SearchTracksOptions, SearchPodcastsOptions, PodcastEpisodesOptions, SearchPage, ArtworkSource, PodcastArtworkSource, EpisodeArtworkSource, CreatePodcastInput, UpdatePodcastInput, CreateEpisodeDraftInput, IngestEpisodeInput, UploadPayload, } from './client';
|
|
3
|
-
export { trackSummarySchema, podcastSummarySchema, podcastVisibilitySchema, episodeSummarySchema, episodeAudioSourceSchema, episodeStatusSchema, episodeDraftSchema, episodeStreamSchema, podcastDeletedSchema, episodeDeletedSchema, uploadedImageSchema, coverArtSizesSchema, coverArtVariantSchema, } from './schema';
|
|
4
|
-
export type { TrackSummary, PodcastSummary, PodcastVisibility, EpisodeSummary, EpisodeAudioSource, EpisodeStatus, EpisodeDraft, EpisodeStream, PodcastDeleted, EpisodeDeleted, UploadedImage, CoverArtSizes, CoverArtVariant, ArtworkSize, } from './schema';
|
|
3
|
+
export { trackSummarySchema, podcastSummarySchema, podcastSubscriptionSchema, podcastVisibilitySchema, episodeSummarySchema, episodeAudioSourceSchema, episodeStatusSchema, episodeDraftSchema, episodeStreamSchema, podcastDeletedSchema, episodeDeletedSchema, uploadedImageSchema, coverArtSizesSchema, coverArtVariantSchema, } from './schema';
|
|
4
|
+
export type { TrackSummary, PodcastSummary, PodcastSubscription, PodcastVisibility, EpisodeSummary, EpisodeAudioSource, EpisodeStatus, EpisodeDraft, EpisodeStream, PodcastDeleted, EpisodeDeleted, UploadedImage, CoverArtSizes, CoverArtVariant, ArtworkSize, } from './schema';
|
|
5
5
|
export { SyraApiError } from './errors';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAKA,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,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAKA,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,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Room, House } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Failure copy the sheet shows INLINE. It used to go to the host `toast`, but
|
|
5
|
+
* the sheet is usually presented in a native modal window, and a toast renders
|
|
6
|
+
* in the main window underneath it: a failed create (a 401 from an expired
|
|
7
|
+
* session, a network drop) looked like a button that did nothing.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CREATE_ROOM_ERRORS: {
|
|
10
|
+
readonly createFailed: "Couldn't create the room. Check your connection and that you're signed in, then try again.";
|
|
11
|
+
readonly scheduleMissing: "Enter a scheduled start time to schedule the room.";
|
|
12
|
+
};
|
|
3
13
|
export interface CreateRoomSheetRef {
|
|
4
14
|
handleCreateAndStart: () => void;
|
|
5
15
|
handleSchedule: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateRoomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/CreateRoomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateRoomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/live/components/CreateRoomSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAepF,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAG5C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AA0BX,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,iGAoe1B,CAAC;AAmJH,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { type ComponentProps } from 'react';
|
|
2
|
+
import BaseMaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
3
|
+
export type MaterialCommunityIconsProps = ComponentProps<typeof BaseMaterialCommunityIcons>;
|
|
4
|
+
/**
|
|
5
|
+
* The live-rooms UI's one entry to the MaterialCommunityIcons glyph font. SDK
|
|
6
|
+
* components import this, never `@expo/vector-icons/MaterialCommunityIcons`
|
|
7
|
+
* directly — `src/live/icons/glyphImports.test.ts` fails the suite if one does.
|
|
8
|
+
*
|
|
9
|
+
* A vector-icons glyph is a `Text` node whose content is a private-use code
|
|
10
|
+
* point. A screen reader reads it like any other text, so the Create Room sheet
|
|
11
|
+
* announced its options as "\U000f036c, Talk, Open conversation" and its button
|
|
12
|
+
* as "\U000f040a, Start Now": on Android RN builds an unlabelled pressable's
|
|
13
|
+
* description from its children's text, code point included.
|
|
14
|
+
*
|
|
15
|
+
* Every glyph in the SDK is decorative — the control around it carries the
|
|
16
|
+
* words, or an `accessibilityLabel` — so the glyph is hidden from assistive
|
|
17
|
+
* technology here, once, rather than at each call site where the next icon
|
|
18
|
+
* would forget it. `aria-hidden` is `importantForAccessibility=
|
|
19
|
+
* "no-hide-descendants"` on Android, `accessibilityElementsHidden` on iOS and
|
|
20
|
+
* `aria-hidden` on web. It is applied AFTER the caller's props so a call site
|
|
21
|
+
* cannot switch it back on: a glyph that needs a name belongs inside a control
|
|
22
|
+
* that has one.
|
|
23
|
+
*/
|
|
24
|
+
export declare function MaterialCommunityIcons(props: MaterialCommunityIconsProps): React.JSX.Element;
|
|
25
|
+
export default MaterialCommunityIcons;
|
|
26
|
+
//# sourceMappingURL=MaterialCommunityIcons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaterialCommunityIcons.d.ts","sourceRoot":"","sources":["../../../../../src/live/icons/MaterialCommunityIcons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAInD,OAAO,0BAA0B,MAAM,2CAA2C,CAAC;AAEnF,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE5F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,qBAExE;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -71,7 +71,7 @@ export declare const ZRoom: z.ZodPreprocess<z.ZodObject<{
|
|
|
71
71
|
recordingEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
72
72
|
recordingEgressId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
73
73
|
createdAt: z.ZodString;
|
|
74
|
-
}, z.core.$loose
|
|
74
|
+
}, z.core.$loose>, unknown>;
|
|
75
75
|
export type Room = z.infer<typeof ZRoom>;
|
|
76
76
|
export declare const ZRoomParticipant: z.ZodObject<{
|
|
77
77
|
userId: z.ZodString;
|
|
@@ -152,7 +152,7 @@ export declare const ZHouse: z.ZodPreprocess<z.ZodObject<{
|
|
|
152
152
|
}, z.core.$loose>>;
|
|
153
153
|
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
154
154
|
createdAt: z.ZodString;
|
|
155
|
-
}, z.core.$loose
|
|
155
|
+
}, z.core.$loose>, unknown>;
|
|
156
156
|
export type House = z.infer<typeof ZHouse>;
|
|
157
157
|
export declare const ZRecurrence: z.ZodObject<{
|
|
158
158
|
type: z.ZodEnum<{
|
|
@@ -233,7 +233,7 @@ export declare const ZSeries: z.ZodPreprocess<z.ZodObject<{
|
|
|
233
233
|
nextEpisodeNumber: z.ZodDefault<z.ZodNumber>;
|
|
234
234
|
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
235
235
|
createdAt: z.ZodString;
|
|
236
|
-
}, z.core.$loose
|
|
236
|
+
}, z.core.$loose>, unknown>;
|
|
237
237
|
export type Series = z.infer<typeof ZSeries>;
|
|
238
238
|
export declare const ZRecording: z.ZodPreprocess<z.ZodObject<{
|
|
239
239
|
id: z.ZodString;
|
|
@@ -260,7 +260,7 @@ export declare const ZRecording: z.ZodPreprocess<z.ZodObject<{
|
|
|
260
260
|
participantIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
261
261
|
expiresAt: z.ZodString;
|
|
262
262
|
createdAt: z.ZodString;
|
|
263
|
-
}, z.core.$loose
|
|
263
|
+
}, z.core.$loose>, unknown>;
|
|
264
264
|
export type Recording = z.infer<typeof ZRecording>;
|
|
265
265
|
export declare const ZStartStreamResponse: z.ZodObject<{
|
|
266
266
|
ingressId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/live/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;iBAGd,CAAC;AAEjB,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAIjE,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/live/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -179,6 +179,67 @@ export declare const podcastSummarySchema: z.ZodObject<{
|
|
|
179
179
|
aiGenerated: z.ZodOptional<z.ZodBoolean>;
|
|
180
180
|
}, z.core.$strip>;
|
|
181
181
|
export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
|
|
182
|
+
/**
|
|
183
|
+
* One show the caller is subscribed to, from `GET /api/podcasts/subscriptions`.
|
|
184
|
+
* `lastEpisodeAt` is the newest episode's publish time — what a client compares
|
|
185
|
+
* against its own last visit to badge a show with new episodes.
|
|
186
|
+
*/
|
|
187
|
+
export declare const podcastSubscriptionSchema: z.ZodObject<{
|
|
188
|
+
podcast: z.ZodObject<{
|
|
189
|
+
id: z.ZodString;
|
|
190
|
+
title: z.ZodString;
|
|
191
|
+
author: z.ZodOptional<z.ZodString>;
|
|
192
|
+
description: z.ZodOptional<z.ZodString>;
|
|
193
|
+
image: z.ZodOptional<z.ZodString>;
|
|
194
|
+
imageSizes: z.ZodOptional<z.ZodObject<{
|
|
195
|
+
small: z.ZodOptional<z.ZodObject<{
|
|
196
|
+
id: z.ZodOptional<z.ZodString>;
|
|
197
|
+
url: z.ZodString;
|
|
198
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
199
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
200
|
+
}, z.core.$strip>>;
|
|
201
|
+
medium: z.ZodOptional<z.ZodObject<{
|
|
202
|
+
id: z.ZodOptional<z.ZodString>;
|
|
203
|
+
url: z.ZodString;
|
|
204
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
205
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
206
|
+
}, z.core.$strip>>;
|
|
207
|
+
large: z.ZodOptional<z.ZodObject<{
|
|
208
|
+
id: z.ZodOptional<z.ZodString>;
|
|
209
|
+
url: z.ZodString;
|
|
210
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
211
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
212
|
+
}, z.core.$strip>>;
|
|
213
|
+
xlarge: z.ZodOptional<z.ZodObject<{
|
|
214
|
+
id: z.ZodOptional<z.ZodString>;
|
|
215
|
+
url: z.ZodString;
|
|
216
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
217
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
218
|
+
}, z.core.$strip>>;
|
|
219
|
+
xxlarge: z.ZodOptional<z.ZodObject<{
|
|
220
|
+
id: z.ZodOptional<z.ZodString>;
|
|
221
|
+
url: z.ZodString;
|
|
222
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
223
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
224
|
+
}, z.core.$strip>>;
|
|
225
|
+
original: z.ZodOptional<z.ZodObject<{
|
|
226
|
+
id: z.ZodOptional<z.ZodString>;
|
|
227
|
+
url: z.ZodString;
|
|
228
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
229
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
230
|
+
}, z.core.$strip>>;
|
|
231
|
+
}, z.core.$strip>>;
|
|
232
|
+
imageSourceUrl: z.ZodOptional<z.ZodString>;
|
|
233
|
+
visibility: z.ZodOptional<z.ZodEnum<{
|
|
234
|
+
private: "private";
|
|
235
|
+
unlisted: "unlisted";
|
|
236
|
+
public: "public";
|
|
237
|
+
}>>;
|
|
238
|
+
aiGenerated: z.ZodOptional<z.ZodBoolean>;
|
|
239
|
+
}, z.core.$strip>;
|
|
240
|
+
lastEpisodeAt: z.ZodOptional<z.ZodString>;
|
|
241
|
+
}, z.core.$strip>;
|
|
242
|
+
export type PodcastSubscription = z.infer<typeof podcastSubscriptionSchema>;
|
|
182
243
|
/**
|
|
183
244
|
* The summary view of a podcast EPISODE returned by the public podcast endpoints
|
|
184
245
|
* (`GET /api/podcasts/:id/episodes`, `GET /api/episodes/:id`) — just enough to
|
|
@@ -1 +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;;;;;iBAKhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAW7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;;;;EAA4C,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiB/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;EAA2D,CAAC;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqB/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,gGAAgG;AAChG,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,uFAAuF;AACvF,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,qFAAqF;AACrF,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,iDAAiD;AACjD,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syra.fm/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "Syra SDK — headless, isomorphic catalog client (Node/React-free, public reads + 30s previews) that also ships the Syra live-rooms engine (audio rooms over LiveKit) on React Native and web.",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "lib/commonjs/index.js",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"src",
|
|
37
37
|
"lib",
|
|
38
38
|
"!src/**/*.test.ts",
|
|
39
|
-
"!src/**/*.spec.ts"
|
|
39
|
+
"!src/**/*.spec.ts",
|
|
40
|
+
"!src/**/*.test.tsx"
|
|
40
41
|
],
|
|
41
42
|
"keywords": [
|
|
42
43
|
"syra",
|
|
@@ -92,7 +93,7 @@
|
|
|
92
93
|
"react-native": "^0.85.3",
|
|
93
94
|
"react-native-reanimated": "^4.3.1",
|
|
94
95
|
"react-native-safe-area-context": "^5.7.0",
|
|
95
|
-
"@oxy.so/services": "^
|
|
96
|
+
"@oxy.so/services": "^4.0.1",
|
|
96
97
|
"livekit-client": "^2.20.0",
|
|
97
98
|
"@livekit/react-native": "^2.11.1",
|
|
98
99
|
"expo-audio": "~56.0.12",
|
|
@@ -153,7 +154,7 @@
|
|
|
153
154
|
"react-native": "^0.85.3",
|
|
154
155
|
"react-native-reanimated": "^4.3.1",
|
|
155
156
|
"react-native-safe-area-context": "^5.7.0",
|
|
156
|
-
"@oxy.so/services": "^
|
|
157
|
+
"@oxy.so/services": "^4.0.1",
|
|
157
158
|
"livekit-client": "^2.20.0",
|
|
158
159
|
"@livekit/react-native": "^2.11.1",
|
|
159
160
|
"expo-audio": "~56.0.12",
|
package/src/client.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
trackSummarySchema,
|
|
3
3
|
podcastSummarySchema,
|
|
4
|
+
podcastSubscriptionSchema,
|
|
4
5
|
episodeSummarySchema,
|
|
5
6
|
episodeDraftSchema,
|
|
6
7
|
episodeStreamSchema,
|
|
@@ -9,6 +10,7 @@ import {
|
|
|
9
10
|
episodeDeletedSchema,
|
|
10
11
|
type TrackSummary,
|
|
11
12
|
type PodcastSummary,
|
|
13
|
+
type PodcastSubscription,
|
|
12
14
|
type EpisodeSummary,
|
|
13
15
|
type EpisodeDraft,
|
|
14
16
|
type EpisodeStream,
|
|
@@ -296,6 +298,23 @@ export interface SyraClient {
|
|
|
296
298
|
// throw `SyraApiError(401)` from the CLIENT rather than making a request that
|
|
297
299
|
// was never going to be accepted.
|
|
298
300
|
|
|
301
|
+
/**
|
|
302
|
+
* `POST /api/podcasts/:id/subscribe` — subscribe the caller to a show (what a
|
|
303
|
+
* client presents as "save" or "follow"). Idempotent: subscribing twice is one
|
|
304
|
+
* subscription. A show the caller cannot see is a 404, same as a missing one.
|
|
305
|
+
*/
|
|
306
|
+
subscribeToPodcast(podcastId: string): Promise<void>;
|
|
307
|
+
/**
|
|
308
|
+
* `POST /api/podcasts/:id/unsubscribe` — idempotent, and succeeds for every
|
|
309
|
+
* well-formed id, including a show that no longer exists or went private.
|
|
310
|
+
*/
|
|
311
|
+
unsubscribeFromPodcast(podcastId: string): Promise<void>;
|
|
312
|
+
/**
|
|
313
|
+
* `GET /api/podcasts/subscriptions` — every show the caller is subscribed to
|
|
314
|
+
* and can still see. A row that fails validation is dropped rather than
|
|
315
|
+
* failing the whole list.
|
|
316
|
+
*/
|
|
317
|
+
listPodcastSubscriptions(): Promise<PodcastSubscription[]>;
|
|
299
318
|
/** `GET /api/podcasts/mine` — every show the caller owns, in every state. */
|
|
300
319
|
listMyPodcasts(): Promise<PodcastSummary[]>;
|
|
301
320
|
/** `POST /api/podcasts` — create a Syra-hosted show. */
|
|
@@ -882,6 +901,34 @@ export function createSyraClient(options: SyraClientOptions = {}): SyraClient {
|
|
|
882
901
|
return undefined;
|
|
883
902
|
},
|
|
884
903
|
|
|
904
|
+
async subscribeToPodcast(podcastId) {
|
|
905
|
+
await request(`/api/podcasts/${encodeURIComponent(podcastId)}/subscribe`, {
|
|
906
|
+
method: 'POST',
|
|
907
|
+
requires: 'subscribeToPodcast',
|
|
908
|
+
});
|
|
909
|
+
},
|
|
910
|
+
|
|
911
|
+
async unsubscribeFromPodcast(podcastId) {
|
|
912
|
+
await request(`/api/podcasts/${encodeURIComponent(podcastId)}/unsubscribe`, {
|
|
913
|
+
method: 'POST',
|
|
914
|
+
requires: 'unsubscribeFromPodcast',
|
|
915
|
+
});
|
|
916
|
+
},
|
|
917
|
+
|
|
918
|
+
async listPodcastSubscriptions() {
|
|
919
|
+
const json = (await request('/api/podcasts/subscriptions', {
|
|
920
|
+
requires: 'listPodcastSubscriptions',
|
|
921
|
+
})) as { data?: { subscriptions?: unknown } } | null;
|
|
922
|
+
const rows = Array.isArray(json?.data?.subscriptions) ? json.data.subscriptions : [];
|
|
923
|
+
|
|
924
|
+
const items: PodcastSubscription[] = [];
|
|
925
|
+
for (const raw of rows) {
|
|
926
|
+
const parsed = podcastSubscriptionSchema.safeParse(raw);
|
|
927
|
+
if (parsed.success) items.push(parsed.data);
|
|
928
|
+
}
|
|
929
|
+
return items;
|
|
930
|
+
},
|
|
931
|
+
|
|
885
932
|
async listMyPodcasts() {
|
|
886
933
|
const json = (await request('/api/podcasts/mine', {
|
|
887
934
|
requires: 'listMyPodcasts',
|
package/src/index.ts
CHANGED
|
@@ -27,6 +27,7 @@ export type {
|
|
|
27
27
|
export {
|
|
28
28
|
trackSummarySchema,
|
|
29
29
|
podcastSummarySchema,
|
|
30
|
+
podcastSubscriptionSchema,
|
|
30
31
|
podcastVisibilitySchema,
|
|
31
32
|
episodeSummarySchema,
|
|
32
33
|
episodeAudioSourceSchema,
|
|
@@ -42,6 +43,7 @@ export {
|
|
|
42
43
|
export type {
|
|
43
44
|
TrackSummary,
|
|
44
45
|
PodcastSummary,
|
|
46
|
+
PodcastSubscription,
|
|
45
47
|
PodcastVisibility,
|
|
46
48
|
EpisodeSummary,
|
|
47
49
|
EpisodeAudioSource,
|