@syra.fm/sdk 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/lib/commonjs/client.js +247 -7
  2. package/lib/commonjs/client.js.map +1 -1
  3. package/lib/commonjs/index.js +36 -0
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/live/components/CreateRoomSheet.js +5 -5
  6. package/lib/commonjs/live/components/CreateRoomSheet.js.map +1 -1
  7. package/lib/commonjs/live/components/RecordingsPanel.js +9 -9
  8. package/lib/commonjs/live/components/RecordingsPanel.js.map +1 -1
  9. package/lib/commonjs/live/validation.js +44 -15
  10. package/lib/commonjs/live/validation.js.map +1 -1
  11. package/lib/commonjs/schema.js +80 -9
  12. package/lib/commonjs/schema.js.map +1 -1
  13. package/lib/module/client.js +248 -8
  14. package/lib/module/client.js.map +1 -1
  15. package/lib/module/index.js +1 -1
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/live/components/CreateRoomSheet.js +5 -5
  18. package/lib/module/live/components/CreateRoomSheet.js.map +1 -1
  19. package/lib/module/live/components/RecordingsPanel.js +9 -9
  20. package/lib/module/live/components/RecordingsPanel.js.map +1 -1
  21. package/lib/module/live/validation.js +44 -15
  22. package/lib/module/live/validation.js.map +1 -1
  23. package/lib/module/schema.js +79 -8
  24. package/lib/module/schema.js.map +1 -1
  25. package/lib/typescript/commonjs/client.d.ts +171 -2
  26. package/lib/typescript/commonjs/client.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/index.d.ts +3 -3
  28. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/live/components/RoomCard.d.ts +1 -1
  30. package/lib/typescript/commonjs/live/components/RoomCard.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/live/validation.d.ts +17 -20
  32. package/lib/typescript/commonjs/live/validation.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/schema.d.ts +97 -7
  34. package/lib/typescript/commonjs/schema.d.ts.map +1 -1
  35. package/lib/typescript/module/client.d.ts +171 -2
  36. package/lib/typescript/module/client.d.ts.map +1 -1
  37. package/lib/typescript/module/index.d.ts +3 -3
  38. package/lib/typescript/module/index.d.ts.map +1 -1
  39. package/lib/typescript/module/live/components/RoomCard.d.ts +1 -1
  40. package/lib/typescript/module/live/components/RoomCard.d.ts.map +1 -1
  41. package/lib/typescript/module/live/validation.d.ts +17 -20
  42. package/lib/typescript/module/live/validation.d.ts.map +1 -1
  43. package/lib/typescript/module/schema.d.ts +97 -7
  44. package/lib/typescript/module/schema.d.ts.map +1 -1
  45. package/package.json +6 -4
  46. package/src/client.ts +430 -10
  47. package/src/index.ts +17 -0
  48. package/src/live/components/CreateRoomSheet.tsx +5 -5
  49. package/src/live/components/RecordingsPanel.tsx +9 -9
  50. package/src/live/components/RoomCard.tsx +1 -1
  51. package/src/live/validation.ts +41 -15
  52. package/src/schema.ts +90 -7
  53. package/src/client.test.ts +0 -632
@@ -10,9 +10,8 @@ export declare const ZPodcastQueueItem: z.ZodObject<{
10
10
  episodeId: z.ZodString;
11
11
  }, z.core.$loose>;
12
12
  export type PodcastQueueItem = z.infer<typeof ZPodcastQueueItem>;
13
- export declare const ZRoom: z.ZodObject<{
14
- _id: z.ZodString;
15
- id: z.ZodOptional<z.ZodString>;
13
+ export declare const ZRoom: z.ZodPreprocess<z.ZodObject<{
14
+ id: z.ZodString;
16
15
  title: z.ZodString;
17
16
  description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
18
17
  ownerType: z.ZodDefault<z.ZodEnum<{
@@ -72,7 +71,7 @@ export declare const ZRoom: z.ZodObject<{
72
71
  recordingEnabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
73
72
  recordingEgressId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
74
73
  createdAt: z.ZodString;
75
- }, z.core.$loose>;
74
+ }, z.core.$loose>>;
76
75
  export type Room = z.infer<typeof ZRoom>;
77
76
  export declare const ZRoomParticipant: z.ZodObject<{
78
77
  userId: z.ZodString;
@@ -104,8 +103,8 @@ export type HouseMember = z.infer<typeof ZHouseMember>;
104
103
  */
105
104
  export declare const ZHouseVisibility: z.ZodObject<{
106
105
  discovery: z.ZodDefault<z.ZodEnum<{
107
- listed: "listed";
108
106
  unlisted: "unlisted";
107
+ listed: "listed";
109
108
  hidden: "hidden";
110
109
  }>>;
111
110
  rooms: z.ZodDefault<z.ZodEnum<{
@@ -118,9 +117,8 @@ export declare const ZHouseVisibility: z.ZodObject<{
118
117
  }>>;
119
118
  }, z.core.$loose>;
120
119
  export type HouseVisibility = z.infer<typeof ZHouseVisibility>;
121
- export declare const ZHouse: z.ZodObject<{
122
- _id: z.ZodString;
123
- id: z.ZodOptional<z.ZodString>;
120
+ export declare const ZHouse: z.ZodPreprocess<z.ZodObject<{
121
+ id: z.ZodString;
124
122
  name: z.ZodString;
125
123
  description: z.ZodOptional<z.ZodString>;
126
124
  avatar: z.ZodNullable<z.ZodOptional<z.ZodString>>;
@@ -139,8 +137,8 @@ export declare const ZHouse: z.ZodObject<{
139
137
  createdBy: z.ZodString;
140
138
  visibility: z.ZodDefault<z.ZodObject<{
141
139
  discovery: z.ZodDefault<z.ZodEnum<{
142
- listed: "listed";
143
140
  unlisted: "unlisted";
141
+ listed: "listed";
144
142
  hidden: "hidden";
145
143
  }>>;
146
144
  rooms: z.ZodDefault<z.ZodEnum<{
@@ -154,7 +152,7 @@ export declare const ZHouse: z.ZodObject<{
154
152
  }, z.core.$loose>>;
155
153
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
156
154
  createdAt: z.ZodString;
157
- }, z.core.$loose>;
155
+ }, z.core.$loose>>;
158
156
  export type House = z.infer<typeof ZHouse>;
159
157
  export declare const ZRecurrence: z.ZodObject<{
160
158
  type: z.ZodEnum<{
@@ -192,9 +190,8 @@ export declare const ZSeriesEpisode: z.ZodObject<{
192
190
  episodeNumber: z.ZodNumber;
193
191
  }, z.core.$loose>;
194
192
  export type SeriesEpisode = z.infer<typeof ZSeriesEpisode>;
195
- export declare const ZSeries: z.ZodObject<{
196
- _id: z.ZodString;
197
- id: z.ZodOptional<z.ZodString>;
193
+ export declare const ZSeries: z.ZodPreprocess<z.ZodObject<{
194
+ id: z.ZodString;
198
195
  title: z.ZodString;
199
196
  description: z.ZodOptional<z.ZodString>;
200
197
  coverImage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
@@ -236,18 +233,18 @@ export declare const ZSeries: z.ZodObject<{
236
233
  nextEpisodeNumber: z.ZodDefault<z.ZodNumber>;
237
234
  isActive: z.ZodDefault<z.ZodBoolean>;
238
235
  createdAt: z.ZodString;
239
- }, z.core.$loose>;
236
+ }, z.core.$loose>>;
240
237
  export type Series = z.infer<typeof ZSeries>;
241
- export declare const ZRecording: z.ZodObject<{
242
- _id: z.ZodString;
238
+ export declare const ZRecording: z.ZodPreprocess<z.ZodObject<{
239
+ id: z.ZodString;
243
240
  roomId: z.ZodString;
244
241
  roomTitle: z.ZodString;
245
242
  host: z.ZodString;
246
243
  status: z.ZodEnum<{
247
- recording: "recording";
248
- processing: "processing";
249
244
  ready: "ready";
245
+ processing: "processing";
250
246
  failed: "failed";
247
+ recording: "recording";
251
248
  deleted: "deleted";
252
249
  }>;
253
250
  egressId: z.ZodString;
@@ -257,13 +254,13 @@ export declare const ZRecording: z.ZodObject<{
257
254
  startedAt: z.ZodString;
258
255
  stoppedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
259
256
  access: z.ZodDefault<z.ZodEnum<{
260
- participants: "participants";
261
257
  public: "public";
258
+ participants: "participants";
262
259
  }>>;
263
260
  participantIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
264
261
  expiresAt: z.ZodString;
265
262
  createdAt: z.ZodString;
266
- }, z.core.$loose>;
263
+ }, z.core.$loose>>;
267
264
  export type Recording = z.infer<typeof ZRecording>;
268
265
  export declare const ZStartStreamResponse: z.ZodObject<{
269
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;AAIxB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;iBAGd,CAAC;AAEjB,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAIjE,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6DF,CAAC;AAEjB,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAIzC,eAAO,MAAM,gBAAgB;;;;;;;;;iBAKb,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAI/D,eAAO,MAAM,YAAY;;;;;;;;;iBAIT,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBAIb,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAeH,CAAC;AAEjB,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAI3C,eAAO,MAAM,WAAW;;;;;;;;;;;iBAMR,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;iBAOV,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEzD,eAAO,MAAM,cAAc;;;;iBAIX,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcJ,CAAC;AAEjB,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAI7C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBP,CAAC;AAEjB,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAInD,eAAO,MAAM,oBAAoB;;;iBAGjB,CAAC;AAEjB,eAAO,MAAM,0BAA0B;;;iBAGvB,CAAC;AAEjB,eAAO,MAAM,WAAW;;;;iBAIR,CAAC;AAEjB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAIrD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;iBAOZ,CAAC;AAEjB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAI7D,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAKvD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAYtD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAKzD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAKjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAQhE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK3D"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/live/validation.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,12 @@ export type TrackSummary = z.infer<typeof trackSummarySchema>;
120
120
  * variant `url` is `/api/images/:id`); `imageSourceUrl` keeps the original
121
121
  * external artwork URL as an absolute fallback when re-hosting has not run yet.
122
122
  */
123
+ export declare const podcastVisibilitySchema: z.ZodEnum<{
124
+ private: "private";
125
+ unlisted: "unlisted";
126
+ public: "public";
127
+ }>;
128
+ export type PodcastVisibility = z.infer<typeof podcastVisibilitySchema>;
123
129
  export declare const podcastSummarySchema: z.ZodObject<{
124
130
  id: z.ZodString;
125
131
  title: z.ZodString;
@@ -165,6 +171,12 @@ export declare const podcastSummarySchema: z.ZodObject<{
165
171
  }, z.core.$strip>>;
166
172
  }, z.core.$strip>>;
167
173
  imageSourceUrl: z.ZodOptional<z.ZodString>;
174
+ visibility: z.ZodOptional<z.ZodEnum<{
175
+ private: "private";
176
+ unlisted: "unlisted";
177
+ public: "public";
178
+ }>>;
179
+ aiGenerated: z.ZodOptional<z.ZodBoolean>;
168
180
  }, z.core.$strip>;
169
181
  export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
170
182
  /**
@@ -172,12 +184,28 @@ export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
172
184
  * (`GET /api/podcasts/:id/episodes`, `GET /api/episodes/:id`) — just enough to
173
185
  * list an episode and stream its audio.
174
186
  *
175
- * `enclosureUrl` is the direct audio file URL (e.g.
176
- * `https://api.fastcast.ai/audio/<guid>.mp3`) and is REQUIRED: an episode with
177
- * no enclosure is unplayable, so a row missing it is treated as malformed and
178
- * dropped rather than surfaced as a dead entry. `enclosureType` /
179
- * `enclosureLength` describe that file (MIME type and byte length); `duration`
180
- * is the runtime in seconds and `pubDate` the ISO publish timestamp.
187
+ * ## `enclosureUrl` is OPTIONAL, and that is a bug fix rather than a loosening
188
+ *
189
+ * It used to be required, on the reasoning that "an episode with no enclosure is
190
+ * unplayable, so a row missing it is malformed". That reasoning holds only for
191
+ * RSS-mirrored episodes. A SYRA-HOSTED episode — everything created through
192
+ * `createPodcast`/`uploadEpisode`/the ingest ticket — has no enclosure at all:
193
+ * its audio lives at `audioSource.url`, a path on the Syra API. So the required
194
+ * field made this SDK silently DROP every Syra-hosted episode from
195
+ * `getPodcastEpisodes` and throw on one from `getEpisode` — the entire
196
+ * first-party catalogue, invisible, with no error to notice.
197
+ *
198
+ * The two are alternatives, not a required field and an optional one:
199
+ *
200
+ * enclosureUrl an ABSOLUTE external URL (RSS mirror)
201
+ * audioSource.url a PATH on the Syra API (Syra-hosted)
202
+ *
203
+ * `SyraClient.episodeAudioUrl` is the one place that resolves either into
204
+ * something playable, so no consumer has to know which kind it holds.
205
+ *
206
+ * `enclosureType` / `enclosureLength` describe the external file (MIME type and
207
+ * byte length); `duration` is the runtime in seconds and `pubDate` the ISO
208
+ * publish timestamp.
181
209
  *
182
210
  * Artwork mirrors the podcast SHOW: `image` is the re-hosted Syra image id
183
211
  * (resolved via `/api/images/:id`); `imageSizes` is the multi-resolution variant
@@ -185,16 +213,57 @@ export type PodcastSummary = z.infer<typeof podcastSummarySchema>;
185
213
  * original external artwork URL as an absolute fallback when re-hosting has not
186
214
  * run yet.
187
215
  */
216
+ /**
217
+ * Where a Syra-hosted episode's audio actually is.
218
+ *
219
+ * `url` is a PATH on the Syra API (`/api/podcasts/episodes/:id/audio`), not an
220
+ * absolute URL — resolve it with `SyraClient.episodeAudioUrl` rather than
221
+ * handing it to a player directly.
222
+ */
223
+ export declare const episodeAudioSourceSchema: z.ZodObject<{
224
+ url: z.ZodString;
225
+ format: z.ZodOptional<z.ZodString>;
226
+ bitrate: z.ZodOptional<z.ZodNumber>;
227
+ duration: z.ZodOptional<z.ZodNumber>;
228
+ }, z.core.$strip>;
229
+ export type EpisodeAudioSource = z.infer<typeof episodeAudioSourceSchema>;
230
+ /**
231
+ * An episode's processing state. `ready` is playable; `processing` is an episode
232
+ * whose audio is still being packaged (including one drafted but not yet
233
+ * ingested), and only its OWNER is shown those.
234
+ */
235
+ export declare const episodeStatusSchema: z.ZodEnum<{
236
+ ready: "ready";
237
+ processing: "processing";
238
+ failed: "failed";
239
+ unavailable: "unavailable";
240
+ }>;
241
+ export type EpisodeStatus = z.infer<typeof episodeStatusSchema>;
188
242
  export declare const episodeSummarySchema: z.ZodObject<{
189
243
  id: z.ZodString;
190
244
  podcastId: z.ZodString;
191
245
  title: z.ZodString;
192
246
  description: z.ZodOptional<z.ZodString>;
193
- enclosureUrl: z.ZodString;
247
+ enclosureUrl: z.ZodOptional<z.ZodString>;
194
248
  enclosureType: z.ZodOptional<z.ZodString>;
195
249
  enclosureLength: z.ZodOptional<z.ZodNumber>;
250
+ audioSource: z.ZodOptional<z.ZodObject<{
251
+ url: z.ZodString;
252
+ format: z.ZodOptional<z.ZodString>;
253
+ bitrate: z.ZodOptional<z.ZodNumber>;
254
+ duration: z.ZodOptional<z.ZodNumber>;
255
+ }, z.core.$strip>>;
196
256
  duration: z.ZodOptional<z.ZodNumber>;
197
257
  pubDate: z.ZodOptional<z.ZodString>;
258
+ season: z.ZodOptional<z.ZodNumber>;
259
+ episodeNumber: z.ZodOptional<z.ZodNumber>;
260
+ status: z.ZodOptional<z.ZodEnum<{
261
+ ready: "ready";
262
+ processing: "processing";
263
+ failed: "failed";
264
+ unavailable: "unavailable";
265
+ }>>;
266
+ aiGenerated: z.ZodOptional<z.ZodBoolean>;
198
267
  image: z.ZodOptional<z.ZodString>;
199
268
  imageSizes: z.ZodOptional<z.ZodObject<{
200
269
  small: z.ZodOptional<z.ZodObject<{
@@ -237,4 +306,25 @@ export declare const episodeSummarySchema: z.ZodObject<{
237
306
  imageSourceUrl: z.ZodOptional<z.ZodString>;
238
307
  }, z.core.$strip>;
239
308
  export type EpisodeSummary = z.infer<typeof episodeSummarySchema>;
309
+ /** What `createEpisodeDraft` hands back: the episode to fill, and the capability to fill it. */
310
+ export declare const episodeDraftSchema: z.ZodObject<{
311
+ episodeId: z.ZodString;
312
+ ingestTicket: z.ZodString;
313
+ expiresAt: z.ZodString;
314
+ }, z.core.$strip>;
315
+ export type EpisodeDraft = z.infer<typeof episodeDraftSchema>;
316
+ /** What `getEpisodeStream` hands back: a tokenized HLS URL with its own deadline. */
317
+ export declare const episodeStreamSchema: z.ZodObject<{
318
+ url: z.ZodString;
319
+ type: z.ZodString;
320
+ expiresAt: z.ZodOptional<z.ZodString>;
321
+ }, z.core.$strip>;
322
+ export type EpisodeStream = z.infer<typeof episodeStreamSchema>;
323
+ /** What the image upload endpoint hands back. */
324
+ export declare const uploadedImageSchema: z.ZodObject<{
325
+ id: z.ZodString;
326
+ primaryColor: z.ZodOptional<z.ZodString>;
327
+ secondaryColor: z.ZodOptional<z.ZodString>;
328
+ }, z.core.$strip>;
329
+ export type UploadedImage = z.infer<typeof uploadedImageSchema>;
240
330
  //# sourceMappingURL=schema.d.ts.map
@@ -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,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAa/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,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.9.0",
3
+ "version": "0.11.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",
@@ -34,7 +34,9 @@
34
34
  },
35
35
  "files": [
36
36
  "src",
37
- "lib"
37
+ "lib",
38
+ "!src/**/*.test.ts",
39
+ "!src/**/*.spec.ts"
38
40
  ],
39
41
  "keywords": [
40
42
  "syra",
@@ -90,7 +92,7 @@
90
92
  "react-native": "^0.85.3",
91
93
  "react-native-reanimated": "^4.3.1",
92
94
  "react-native-safe-area-context": "^5.7.0",
93
- "@oxyhq/services": "^22.13.1 || ^23.0.0 || ^24.0.0 || ^25.0.0 || ^26.0.0",
95
+ "@oxyhq/services": "^22.13.1 || ^23.0.0 || ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0",
94
96
  "livekit-client": "^2.20.0",
95
97
  "@livekit/react-native": "^2.11.1",
96
98
  "expo-audio": "~56.0.12",
@@ -151,7 +153,7 @@
151
153
  "react-native": "^0.85.3",
152
154
  "react-native-reanimated": "^4.3.1",
153
155
  "react-native-safe-area-context": "^5.7.0",
154
- "@oxyhq/services": "^25.0.1",
156
+ "@oxyhq/services": "^27.1.1",
155
157
  "livekit-client": "^2.20.0",
156
158
  "@livekit/react-native": "^2.11.1",
157
159
  "expo-audio": "~56.0.12",