@syra.fm/sdk 0.13.0 → 0.14.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/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/LiveRoomSheet.js +1 -1
- package/lib/commonjs/live/components/RecordingCard.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/hooks/useRoomConnection.js +1 -1
- package/lib/commonjs/live/hooks/useRoomUsers.js +1 -1
- 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/LiveRoomSheet.js +1 -1
- package/lib/module/live/components/LiveRoomSheet.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/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/hooks/useRoomConnection.js +1 -1
- package/lib/module/live/hooks/useRoomConnection.js.map +1 -1
- package/lib/module/live/hooks/useRoomUsers.js +1 -1
- package/lib/module/live/hooks/useRoomUsers.js.map +1 -1
- 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/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/schema.d.ts +61 -0
- package/lib/typescript/module/schema.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/client.ts +47 -0
- package/src/index.ts +2 -0
- package/src/live/components/LiveRoomSheet.tsx +1 -1
- package/src/live/components/RecordingCard.tsx +1 -1
- package/src/live/components/RoomCard.tsx +1 -1
- package/src/live/components/StreamConfigModal.tsx +1 -1
- package/src/live/hooks/useRoomConnection.ts +1 -1
- package/src/live/hooks/useRoomUsers.ts +1 -1
- package/src/schema.ts +11 -0
|
@@ -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"}
|
|
@@ -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"}
|
|
@@ -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":"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;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syra.fm/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
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",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"react-native": "^0.85.3",
|
|
93
93
|
"react-native-reanimated": "^4.3.1",
|
|
94
94
|
"react-native-safe-area-context": "^5.7.0",
|
|
95
|
-
"@
|
|
95
|
+
"@oxy.so/services": "^1.0.1",
|
|
96
96
|
"livekit-client": "^2.20.0",
|
|
97
97
|
"@livekit/react-native": "^2.11.1",
|
|
98
98
|
"expo-audio": "~56.0.12",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"react-native-safe-area-context": {
|
|
116
116
|
"optional": true
|
|
117
117
|
},
|
|
118
|
-
"@
|
|
118
|
+
"@oxy.so/services": {
|
|
119
119
|
"optional": true
|
|
120
120
|
},
|
|
121
121
|
"livekit-client": {
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"react-native": "^0.85.3",
|
|
154
154
|
"react-native-reanimated": "^4.3.1",
|
|
155
155
|
"react-native-safe-area-context": "^5.7.0",
|
|
156
|
-
"@
|
|
156
|
+
"@oxy.so/services": "^1.0.1",
|
|
157
157
|
"livekit-client": "^2.20.0",
|
|
158
158
|
"@livekit/react-native": "^2.11.1",
|
|
159
159
|
"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,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
type ViewStyle,
|
|
10
10
|
} from 'react-native';
|
|
11
11
|
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
12
|
-
import { useAuth } from '@
|
|
12
|
+
import { useAuth } from '@oxy.so/services';
|
|
13
13
|
|
|
14
14
|
import { useLiveConfig } from '../context/LiveConfigContext';
|
|
15
15
|
import { MiniRoomBar } from './MiniRoomBar';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { View, Text, StyleSheet, TouchableOpacity, StyleProp, ViewStyle } from 'react-native';
|
|
3
3
|
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
4
|
-
import { useAuth } from '@
|
|
4
|
+
import { useAuth } from '@oxy.so/services';
|
|
5
5
|
|
|
6
6
|
import { useLiveConfig } from '../context/LiveConfigContext';
|
|
7
7
|
import { getAvatarUrl, getDisplayName } from '../hooks/useRoomUsers';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import { View, Text, TouchableOpacity, StyleProp, ViewStyle } from 'react-native';
|
|
3
3
|
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
4
|
-
import { useAuth } from '@
|
|
4
|
+
import { useAuth } from '@oxy.so/services';
|
|
5
5
|
|
|
6
6
|
import { useLiveConfig } from '../context/LiveConfigContext';
|
|
7
7
|
import { AnimatedPulse } from './AnimatedPulse';
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
KeyboardAvoidingView,
|
|
14
14
|
} from 'react-native';
|
|
15
15
|
import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
|
|
16
|
-
import { useAuth } from '@
|
|
16
|
+
import { useAuth } from '@oxy.so/services';
|
|
17
17
|
import * as ImagePicker from 'expo-image-picker';
|
|
18
18
|
|
|
19
19
|
import { useLiveConfig } from '../context/LiveConfigContext';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
2
|
-
import { useAuth } from '@
|
|
2
|
+
import { useAuth } from '@oxy.so/services';
|
|
3
3
|
import { createAudioPlayer } from 'expo-audio';
|
|
4
4
|
import { useLiveConfig } from '../context/LiveConfigContext';
|
|
5
5
|
import type { RoomParticipant, StreamInfo } from '../types';
|
package/src/schema.ts
CHANGED
|
@@ -82,6 +82,17 @@ export const podcastSummarySchema = z.object({
|
|
|
82
82
|
});
|
|
83
83
|
export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
|
|
84
84
|
|
|
85
|
+
/**
|
|
86
|
+
* One show the caller is subscribed to, from `GET /api/podcasts/subscriptions`.
|
|
87
|
+
* `lastEpisodeAt` is the newest episode's publish time — what a client compares
|
|
88
|
+
* against its own last visit to badge a show with new episodes.
|
|
89
|
+
*/
|
|
90
|
+
export const podcastSubscriptionSchema = z.object({
|
|
91
|
+
podcast: podcastSummarySchema,
|
|
92
|
+
lastEpisodeAt: z.string().optional(),
|
|
93
|
+
});
|
|
94
|
+
export type PodcastSubscription = z.infer<typeof podcastSubscriptionSchema>;
|
|
95
|
+
|
|
85
96
|
/**
|
|
86
97
|
* The summary view of a podcast EPISODE returned by the public podcast endpoints
|
|
87
98
|
* (`GET /api/podcasts/:id/episodes`, `GET /api/episodes/:id`) — just enough to
|