@wave-av/sdk 2.0.1 → 2.0.2

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 (260) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +27 -23
  3. package/dist/audience.js +93 -0
  4. package/dist/audience.mjs +9 -0
  5. package/dist/camera-control.js +95 -0
  6. package/dist/camera-control.mjs +71 -0
  7. package/dist/captions-types.js +18 -0
  8. package/dist/captions-types.mjs +0 -0
  9. package/dist/captions.js +266 -0
  10. package/dist/captions.mjs +9 -0
  11. package/dist/chapters-types.js +18 -0
  12. package/dist/chapters-types.mjs +0 -0
  13. package/dist/chapters.js +280 -0
  14. package/dist/chapters.mjs +9 -0
  15. package/dist/chunk-362MRITF.mjs +46 -0
  16. package/dist/chunk-3ZLK4J3V.mjs +69 -0
  17. package/dist/chunk-4DG4OBRD.mjs +52 -0
  18. package/dist/chunk-4G7FMCMJ.mjs +68 -0
  19. package/dist/chunk-4KD5F6E3.mjs +0 -0
  20. package/dist/chunk-7M6XVUUK.mjs +241 -0
  21. package/dist/chunk-A344OOT7.mjs +243 -0
  22. package/dist/chunk-AI64YR5W.mjs +173 -0
  23. package/dist/chunk-C2GQ756E.mjs +57 -0
  24. package/dist/chunk-CO2VB72Z.mjs +255 -0
  25. package/dist/chunk-DWXWAILB.mjs +44 -0
  26. package/dist/chunk-FLEFYLDM.mjs +71 -0
  27. package/dist/chunk-H2YYTNUH.mjs +266 -0
  28. package/dist/chunk-IGDBED5P.mjs +246 -0
  29. package/dist/chunk-IL2SGWBC.mjs +0 -0
  30. package/dist/chunk-IVFZ5X4W.mjs +68 -0
  31. package/dist/chunk-JC32PG3T.mjs +114 -0
  32. package/dist/chunk-K5X42NLD.mjs +54 -0
  33. package/dist/chunk-KCEPNS2U.mjs +276 -0
  34. package/dist/chunk-LVOVF6XC.mjs +54 -0
  35. package/dist/chunk-M4Z33V3N.mjs +247 -0
  36. package/dist/chunk-M6FKIX75.mjs +0 -0
  37. package/dist/chunk-M744Z327.mjs +244 -0
  38. package/dist/chunk-MRFDPPFK.mjs +61 -0
  39. package/dist/chunk-MXU3Q23F.mjs +68 -0
  40. package/dist/chunk-NCVUZ746.mjs +60 -0
  41. package/dist/chunk-NLQVD2LF.mjs +210 -0
  42. package/dist/chunk-O6DOGYP5.mjs +238 -0
  43. package/dist/chunk-S25NY5GE.mjs +124 -0
  44. package/dist/chunk-TFHXBICQ.mjs +305 -0
  45. package/dist/chunk-TXWOA2VR.mjs +57 -0
  46. package/dist/chunk-UCDSNV22.mjs +63 -0
  47. package/dist/chunk-V5DWA5P4.mjs +279 -0
  48. package/dist/chunk-VLQQDYGP.mjs +173 -0
  49. package/dist/chunk-VPKZUXZW.mjs +53 -0
  50. package/dist/chunk-WS3PEFYJ.mjs +60 -0
  51. package/dist/chunk-XGAYMWRH.mjs +74 -0
  52. package/dist/chunk-XMM5J57W.mjs +0 -0
  53. package/dist/chunk-XWABBOSX.mjs +278 -0
  54. package/dist/chunk-Y6FXYEAI.mjs +10 -0
  55. package/dist/chunk-YBLXHI3M.mjs +257 -0
  56. package/dist/chunk-YEK26SSO.mjs +100 -0
  57. package/dist/chunk-YLCQKCZL.mjs +0 -0
  58. package/dist/chunk-YRKO4XI7.mjs +0 -0
  59. package/dist/chunk-ZJO7AP4Q.mjs +0 -0
  60. package/dist/client-types.js +18 -0
  61. package/dist/client-types.mjs +0 -0
  62. package/dist/client.js +311 -0
  63. package/dist/client.mjs +14 -0
  64. package/dist/clips-types.js +18 -0
  65. package/dist/clips-types.mjs +0 -0
  66. package/dist/clips.js +198 -0
  67. package/dist/clips.mjs +9 -0
  68. package/dist/cloud-switcher.js +80 -0
  69. package/dist/cloud-switcher.mjs +56 -0
  70. package/dist/collab-types.js +18 -0
  71. package/dist/collab-types.mjs +1 -0
  72. package/dist/collab.js +304 -0
  73. package/dist/collab.mjs +10 -0
  74. package/dist/connect.js +85 -0
  75. package/dist/connect.mjs +9 -0
  76. package/dist/creator.js +79 -0
  77. package/dist/creator.mjs +9 -0
  78. package/dist/desktop.js +77 -0
  79. package/dist/desktop.mjs +9 -0
  80. package/dist/distribution.js +88 -0
  81. package/dist/distribution.mjs +9 -0
  82. package/dist/drm.js +85 -0
  83. package/dist/drm.mjs +9 -0
  84. package/dist/edge.js +93 -0
  85. package/dist/edge.mjs +9 -0
  86. package/dist/editor-types.js +18 -0
  87. package/dist/editor-types.mjs +1 -0
  88. package/dist/editor.js +330 -0
  89. package/dist/editor.mjs +10 -0
  90. package/dist/fleet.js +149 -0
  91. package/dist/fleet.mjs +9 -0
  92. package/dist/ghost.js +139 -0
  93. package/dist/ghost.mjs +9 -0
  94. package/dist/index.js +0 -250
  95. package/dist/index.mjs +161 -5445
  96. package/dist/marketplace.js +82 -0
  97. package/dist/marketplace.mjs +9 -0
  98. package/dist/mesh.js +198 -0
  99. package/dist/mesh.mjs +9 -0
  100. package/dist/notifications.js +79 -0
  101. package/dist/notifications.mjs +9 -0
  102. package/dist/phone-types.js +18 -0
  103. package/dist/phone-types.mjs +0 -0
  104. package/dist/phone.js +269 -0
  105. package/dist/phone.mjs +9 -0
  106. package/dist/pipeline-types.js +18 -0
  107. package/dist/pipeline-types.mjs +0 -0
  108. package/dist/pipeline.js +263 -0
  109. package/dist/pipeline.mjs +9 -0
  110. package/dist/podcast.js +94 -0
  111. package/dist/podcast.mjs +9 -0
  112. package/dist/prism.js +82 -0
  113. package/dist/prism.mjs +9 -0
  114. package/dist/prompter.js +99 -0
  115. package/dist/prompter.mjs +76 -0
  116. package/dist/pulse.js +99 -0
  117. package/dist/pulse.mjs +9 -0
  118. package/dist/qr.js +71 -0
  119. package/dist/qr.mjs +9 -0
  120. package/dist/replay.js +62 -0
  121. package/dist/replay.mjs +38 -0
  122. package/dist/scene-types.js +18 -0
  123. package/dist/scene-types.mjs +1 -0
  124. package/dist/scene.js +271 -0
  125. package/dist/scene.mjs +10 -0
  126. package/dist/search-types.js +18 -0
  127. package/dist/search-types.mjs +1 -0
  128. package/dist/search.js +268 -0
  129. package/dist/search.mjs +10 -0
  130. package/dist/sentiment-types.js +18 -0
  131. package/dist/sentiment-types.mjs +0 -0
  132. package/dist/sentiment.js +235 -0
  133. package/dist/sentiment.mjs +9 -0
  134. package/dist/signage.js +93 -0
  135. package/dist/signage.mjs +9 -0
  136. package/dist/slides.js +78 -0
  137. package/dist/slides.mjs +9 -0
  138. package/dist/studio-ai-types.js +18 -0
  139. package/dist/studio-ai-types.mjs +1 -0
  140. package/dist/studio-ai.js +301 -0
  141. package/dist/studio-ai.mjs +10 -0
  142. package/dist/studio-types.js +18 -0
  143. package/dist/studio-types.mjs +1 -0
  144. package/dist/studio.js +303 -0
  145. package/dist/studio.mjs +10 -0
  146. package/dist/telemetry.js +124 -0
  147. package/dist/telemetry.mjs +15 -0
  148. package/dist/transcribe-types.js +18 -0
  149. package/dist/transcribe-types.mjs +1 -0
  150. package/dist/transcribe.js +282 -0
  151. package/dist/transcribe.mjs +10 -0
  152. package/dist/usb.js +69 -0
  153. package/dist/usb.mjs +9 -0
  154. package/dist/vault.js +96 -0
  155. package/dist/vault.mjs +9 -0
  156. package/dist/voice-types.js +18 -0
  157. package/dist/voice-types.mjs +0 -0
  158. package/dist/voice.js +272 -0
  159. package/dist/voice.mjs +9 -0
  160. package/dist/zoom.js +86 -0
  161. package/dist/zoom.mjs +9 -0
  162. package/package.json +3 -3
  163. package/dist/audience.d.ts +0 -104
  164. package/dist/audience.d.ts.map +0 -1
  165. package/dist/camera-control.d.ts +0 -54
  166. package/dist/camera-control.d.ts.map +0 -1
  167. package/dist/captions.d.ts +0 -362
  168. package/dist/captions.d.ts.map +0 -1
  169. package/dist/chapters.d.ts +0 -315
  170. package/dist/chapters.d.ts.map +0 -1
  171. package/dist/client.d.ts +0 -191
  172. package/dist/client.d.ts.map +0 -1
  173. package/dist/clips.d.ts +0 -258
  174. package/dist/clips.d.ts.map +0 -1
  175. package/dist/cloud-switcher.d.ts +0 -65
  176. package/dist/cloud-switcher.d.ts.map +0 -1
  177. package/dist/collab-types.d.ts +0 -204
  178. package/dist/collab-types.d.ts.map +0 -1
  179. package/dist/collab.d.ts +0 -226
  180. package/dist/collab.d.ts.map +0 -1
  181. package/dist/connect.d.ts +0 -88
  182. package/dist/connect.d.ts.map +0 -1
  183. package/dist/creator.d.ts +0 -109
  184. package/dist/creator.d.ts.map +0 -1
  185. package/dist/desktop.d.ts +0 -95
  186. package/dist/desktop.d.ts.map +0 -1
  187. package/dist/distribution.d.ts +0 -92
  188. package/dist/distribution.d.ts.map +0 -1
  189. package/dist/drm.d.ts +0 -87
  190. package/dist/drm.d.ts.map +0 -1
  191. package/dist/edge.d.ts +0 -112
  192. package/dist/edge.d.ts.map +0 -1
  193. package/dist/editor-types.d.ts +0 -236
  194. package/dist/editor-types.d.ts.map +0 -1
  195. package/dist/editor.d.ts +0 -206
  196. package/dist/editor.d.ts.map +0 -1
  197. package/dist/fleet.d.ts +0 -207
  198. package/dist/fleet.d.ts.map +0 -1
  199. package/dist/ghost.d.ts +0 -213
  200. package/dist/ghost.d.ts.map +0 -1
  201. package/dist/index.d.ts +0 -144
  202. package/dist/index.d.ts.map +0 -1
  203. package/dist/marketplace.d.ts +0 -90
  204. package/dist/marketplace.d.ts.map +0 -1
  205. package/dist/mesh.d.ts +0 -237
  206. package/dist/mesh.d.ts.map +0 -1
  207. package/dist/notifications.d.ts +0 -82
  208. package/dist/notifications.d.ts.map +0 -1
  209. package/dist/phone.d.ts +0 -369
  210. package/dist/phone.d.ts.map +0 -1
  211. package/dist/pipeline.d.ts +0 -409
  212. package/dist/pipeline.d.ts.map +0 -1
  213. package/dist/podcast.d.ts +0 -113
  214. package/dist/podcast.d.ts.map +0 -1
  215. package/dist/prism.d.ts +0 -132
  216. package/dist/prism.d.ts.map +0 -1
  217. package/dist/prompter.d.ts +0 -184
  218. package/dist/prompter.d.ts.map +0 -1
  219. package/dist/pulse.d.ts +0 -156
  220. package/dist/pulse.d.ts.map +0 -1
  221. package/dist/qr.d.ts +0 -82
  222. package/dist/qr.d.ts.map +0 -1
  223. package/dist/replay.d.ts +0 -52
  224. package/dist/replay.d.ts.map +0 -1
  225. package/dist/scene-types.d.ts +0 -190
  226. package/dist/scene-types.d.ts.map +0 -1
  227. package/dist/scene.d.ts +0 -213
  228. package/dist/scene.d.ts.map +0 -1
  229. package/dist/search-types.d.ts +0 -210
  230. package/dist/search-types.d.ts.map +0 -1
  231. package/dist/search.d.ts +0 -250
  232. package/dist/search.d.ts.map +0 -1
  233. package/dist/sentiment.d.ts +0 -378
  234. package/dist/sentiment.d.ts.map +0 -1
  235. package/dist/signage.d.ts +0 -101
  236. package/dist/signage.d.ts.map +0 -1
  237. package/dist/slides.d.ts +0 -68
  238. package/dist/slides.d.ts.map +0 -1
  239. package/dist/studio-ai-types.d.ts +0 -198
  240. package/dist/studio-ai-types.d.ts.map +0 -1
  241. package/dist/studio-ai.d.ts +0 -218
  242. package/dist/studio-ai.d.ts.map +0 -1
  243. package/dist/studio-types.d.ts +0 -267
  244. package/dist/studio-types.d.ts.map +0 -1
  245. package/dist/studio.d.ts +0 -234
  246. package/dist/studio.d.ts.map +0 -1
  247. package/dist/telemetry.d.ts +0 -76
  248. package/dist/telemetry.d.ts.map +0 -1
  249. package/dist/transcribe-types.d.ts +0 -153
  250. package/dist/transcribe-types.d.ts.map +0 -1
  251. package/dist/transcribe.d.ts +0 -218
  252. package/dist/transcribe.d.ts.map +0 -1
  253. package/dist/usb.d.ts +0 -64
  254. package/dist/usb.d.ts.map +0 -1
  255. package/dist/vault.d.ts +0 -121
  256. package/dist/vault.d.ts.map +0 -1
  257. package/dist/voice.d.ts +0 -307
  258. package/dist/voice.d.ts.map +0 -1
  259. package/dist/zoom.d.ts +0 -91
  260. package/dist/zoom.d.ts.map +0 -1
@@ -1,409 +0,0 @@
1
- /**
2
- * WAVE SDK - Pipeline API
3
- *
4
- * Manage live streams across protocols (WebRTC, SRT, RTMP, HLS, NDI, OMT).
5
- * The Pipeline is WAVE's core streaming engine for ingesting, transcoding,
6
- * and delivering live video at scale.
7
- *
8
- * NOTE: This is a client SDK. All authorization checks are performed server-side.
9
- * The API will return 403 Forbidden if the user lacks required permissions.
10
- */
11
- import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps, Metadata } from "./client";
12
- /**
13
- * Stream lifecycle status
14
- */
15
- export type StreamStatus = "idle" | "connecting" | "live" | "reconnecting" | "ending" | "ended" | "failed";
16
- /**
17
- * Supported streaming protocols
18
- */
19
- export type StreamProtocol = "webrtc" | "srt" | "rtmp" | "hls" | "ndi" | "omt";
20
- /**
21
- * Stream quality presets
22
- */
23
- export type StreamQuality = "source" | "4k" | "1080p" | "720p" | "480p" | "360p";
24
- /**
25
- * Live stream object
26
- */
27
- export interface Stream extends Timestamps {
28
- /** Unique stream identifier */
29
- id: string;
30
- /** Organization that owns the stream */
31
- organization_id: string;
32
- /** Human-readable stream title */
33
- title: string;
34
- /** Optional description */
35
- description?: string;
36
- /** Current lifecycle status */
37
- status: StreamStatus;
38
- /** Ingest protocol */
39
- protocol: StreamProtocol;
40
- /** URL to push media to */
41
- ingest_url?: string;
42
- /** URL for viewers to watch */
43
- playback_url?: string;
44
- /** Secret key for stream authentication */
45
- stream_key?: string;
46
- /** Video resolution (e.g., "1920x1080") */
47
- resolution?: string;
48
- /** Video frame rate in fps */
49
- frame_rate?: number;
50
- /** Video bitrate in kilobits per second */
51
- bitrate_kbps?: number;
52
- /** Current number of connected viewers */
53
- viewer_count: number;
54
- /** Whether recording is enabled */
55
- recording_enabled: boolean;
56
- /** Whether DVR (rewind during live) is enabled */
57
- dvr_enabled: boolean;
58
- /** Whether low-latency mode is active */
59
- low_latency: boolean;
60
- /** Maximum allowed stream duration in seconds */
61
- max_duration_seconds?: number;
62
- /** ISO 8601 timestamp when the stream went live */
63
- started_at?: string;
64
- /** ISO 8601 timestamp when the stream ended */
65
- ended_at?: string;
66
- /** Categorization tags */
67
- tags?: string[];
68
- /** Arbitrary key-value metadata */
69
- metadata?: Metadata;
70
- }
71
- /**
72
- * Request body to create a new stream
73
- */
74
- export interface CreateStreamRequest {
75
- /** Human-readable stream title */
76
- title: string;
77
- /** Optional description */
78
- description?: string;
79
- /** Ingest protocol (default: webrtc) */
80
- protocol?: StreamProtocol;
81
- /** Quality preset for transcoding */
82
- quality?: StreamQuality;
83
- /** Enable recording of the stream */
84
- recording_enabled?: boolean;
85
- /** Enable DVR (rewind during live) */
86
- dvr_enabled?: boolean;
87
- /** Enable low-latency mode */
88
- low_latency?: boolean;
89
- /** Maximum allowed duration in seconds */
90
- max_duration_seconds?: number;
91
- /** Preferred ingest region (e.g., "us-east-1") */
92
- region?: string;
93
- /** Categorization tags */
94
- tags?: string[];
95
- /** Arbitrary key-value metadata */
96
- metadata?: Metadata;
97
- /** Webhook URL for stream lifecycle events */
98
- webhook_url?: string;
99
- }
100
- /**
101
- * Request body to update an existing stream
102
- */
103
- export interface UpdateStreamRequest {
104
- /** Updated title */
105
- title?: string;
106
- /** Updated description */
107
- description?: string;
108
- /** Toggle recording */
109
- recording_enabled?: boolean;
110
- /** Toggle DVR */
111
- dvr_enabled?: boolean;
112
- /** Toggle low-latency mode */
113
- low_latency?: boolean;
114
- /** Update metadata */
115
- metadata?: Metadata;
116
- /** Update tags */
117
- tags?: string[];
118
- }
119
- /**
120
- * Query parameters for listing streams
121
- */
122
- export interface ListStreamsParams extends PaginationParams {
123
- /** Filter by stream status */
124
- status?: StreamStatus;
125
- /** Filter by ingest protocol */
126
- protocol?: StreamProtocol;
127
- /** Filter streams created after this ISO 8601 timestamp */
128
- created_after?: string;
129
- /** Filter streams created before this ISO 8601 timestamp */
130
- created_before?: string;
131
- /** Field to order results by */
132
- order_by?: "created_at" | "started_at" | "viewer_count" | "title";
133
- /** Sort direction */
134
- order?: "asc" | "desc";
135
- }
136
- /**
137
- * Real-time health metrics for a live stream
138
- */
139
- export interface StreamHealth {
140
- /** Stream this health report belongs to */
141
- stream_id: string;
142
- /** Overall health assessment */
143
- status: "healthy" | "degraded" | "critical";
144
- /** Current video bitrate in kbps */
145
- bitrate_kbps: number;
146
- /** Current frame rate in fps */
147
- frame_rate: number;
148
- /** Number of dropped frames since stream start */
149
- dropped_frames: number;
150
- /** End-to-end latency in milliseconds */
151
- latency_ms: number;
152
- /** Current viewer count */
153
- viewer_count: number;
154
- /** Seconds since the stream went live */
155
- uptime_seconds: number;
156
- /** ISO 8601 timestamp of the last received keyframe */
157
- last_keyframe_at?: string;
158
- /** Encoder software/hardware info reported by the source */
159
- encoder_info?: string;
160
- }
161
- /**
162
- * A recording created from a live stream
163
- */
164
- export interface StreamRecording extends Timestamps {
165
- /** Unique recording identifier */
166
- id: string;
167
- /** Stream this recording was captured from */
168
- stream_id: string;
169
- /** Recording pipeline status */
170
- status: "recording" | "processing" | "ready" | "failed";
171
- /** Duration in seconds */
172
- duration?: number;
173
- /** File size in bytes */
174
- file_size?: number;
175
- /** URL to download the recording file */
176
- download_url?: string;
177
- /** URL for playback */
178
- playback_url?: string;
179
- /** Container format (e.g., "mp4", "ts") */
180
- format?: string;
181
- }
182
- /**
183
- * Ingest endpoint details for a stream
184
- */
185
- export interface IngestEndpoint {
186
- /** Protocol for this endpoint */
187
- protocol: StreamProtocol;
188
- /** Primary ingest URL */
189
- url: string;
190
- /** Stream key for authentication */
191
- stream_key: string;
192
- /** Region where this endpoint is located */
193
- region: string;
194
- /** Backup ingest URL for failover */
195
- backup_url?: string;
196
- }
197
- /**
198
- * A single viewer session on a stream
199
- */
200
- export interface ViewerSession {
201
- /** Unique session identifier */
202
- id: string;
203
- /** Stream being watched */
204
- stream_id: string;
205
- /** Viewer's user or anonymous identifier */
206
- viewer_id: string;
207
- /** Playback protocol the viewer is using */
208
- protocol: StreamProtocol;
209
- /** Quality level the viewer is receiving */
210
- quality: StreamQuality;
211
- /** ISO 8601 timestamp when the viewer joined */
212
- started_at: string;
213
- /** Duration the viewer has been watching in seconds */
214
- duration: number;
215
- /** Viewer's geographic region */
216
- region?: string;
217
- /** Device type (e.g., "desktop", "mobile", "tv") */
218
- device_type?: string;
219
- /** Number of buffering events during this session */
220
- buffering_events: number;
221
- }
222
- /**
223
- * A stream lifecycle or health event
224
- */
225
- export interface StreamEvent {
226
- /** Event type */
227
- type: "stream.started" | "stream.ended" | "viewer.joined" | "viewer.left" | "health.degraded" | "recording.ready";
228
- /** Stream this event relates to */
229
- stream_id: string;
230
- /** ISO 8601 timestamp when the event occurred */
231
- timestamp: string;
232
- /** Event-specific payload */
233
- data?: Record<string, unknown>;
234
- }
235
- /**
236
- * Pipeline API client
237
- *
238
- * All operations require appropriate permissions. Authorization is enforced
239
- * server-side - the API returns 403 if the authenticated user lacks access.
240
- *
241
- * @example
242
- * ```typescript
243
- * import { WaveClient } from '@wave/sdk';
244
- * import { PipelineAPI } from '@wave/sdk/pipeline';
245
- *
246
- * const client = new WaveClient({ apiKey: 'your-api-key' });
247
- * const pipeline = new PipelineAPI(client);
248
- *
249
- * // Create a stream
250
- * const stream = await pipeline.create({
251
- * title: 'My Live Stream',
252
- * protocol: 'webrtc',
253
- * recording_enabled: true,
254
- * });
255
- *
256
- * // Start and wait for live
257
- * await pipeline.start(stream.id);
258
- * const live = await pipeline.waitForLive(stream.id);
259
- * console.log('Stream is live:', live.playback_url);
260
- *
261
- * // Monitor health
262
- * const health = await pipeline.getHealth(stream.id);
263
- * console.log('Stream health:', health.status);
264
- * ```
265
- */
266
- export declare class PipelineAPI {
267
- private readonly client;
268
- private readonly basePath;
269
- constructor(client: WaveClient);
270
- /**
271
- * Create a new stream
272
- *
273
- * Requires: streams:create permission
274
- */
275
- create(request: CreateStreamRequest): Promise<Stream>;
276
- /**
277
- * Get a stream by ID
278
- *
279
- * Requires: streams:read permission
280
- */
281
- get(streamId: string): Promise<Stream>;
282
- /**
283
- * Update a stream
284
- *
285
- * Requires: streams:update permission
286
- */
287
- update(streamId: string, request: UpdateStreamRequest): Promise<Stream>;
288
- /**
289
- * Remove a stream
290
- *
291
- * Requires: streams:remove permission (server-side RBAC enforced)
292
- */
293
- remove(streamId: string): Promise<void>;
294
- /**
295
- * List streams with optional filters
296
- *
297
- * Requires: streams:read permission
298
- */
299
- list(params?: ListStreamsParams): Promise<PaginatedResponse<Stream>>;
300
- /**
301
- * Start a stream
302
- *
303
- * Transitions the stream from idle to connecting. The stream will move
304
- * to "live" once media is received on the ingest endpoint.
305
- *
306
- * Requires: streams:start permission
307
- */
308
- start(streamId: string): Promise<Stream>;
309
- /**
310
- * Stop a stream
311
- *
312
- * Gracefully ends the stream. Any active recording will be finalized.
313
- *
314
- * Requires: streams:stop permission
315
- */
316
- stop(streamId: string): Promise<Stream>;
317
- /**
318
- * Switch the ingest protocol for a live stream
319
- *
320
- * Performs a zero-downtime protocol switch. The stream will briefly
321
- * enter "reconnecting" status during the transition.
322
- *
323
- * Requires: streams:update permission
324
- */
325
- switchProtocol(streamId: string, protocol: StreamProtocol): Promise<Stream>;
326
- /**
327
- * Get real-time health metrics for a stream
328
- *
329
- * Returns current bitrate, frame rate, latency, and overall health status.
330
- *
331
- * Requires: streams:read permission
332
- */
333
- getHealth(streamId: string): Promise<StreamHealth>;
334
- /**
335
- * Get ingest endpoints for a stream
336
- *
337
- * Returns primary and backup URLs for each configured protocol.
338
- *
339
- * Requires: streams:read permission
340
- */
341
- getIngestEndpoints(streamId: string): Promise<IngestEndpoint[]>;
342
- /**
343
- * Start recording a live stream
344
- *
345
- * Begins capturing the stream to a file. The stream must be in "live" status.
346
- *
347
- * Requires: streams:record permission
348
- */
349
- startRecording(streamId: string): Promise<StreamRecording>;
350
- /**
351
- * Stop recording a live stream
352
- *
353
- * Finalizes the current recording. The recording enters "processing" status
354
- * while it is being packaged.
355
- *
356
- * Requires: streams:record permission
357
- */
358
- stopRecording(streamId: string): Promise<StreamRecording>;
359
- /**
360
- * List recordings for a stream
361
- *
362
- * Requires: streams:read permission
363
- */
364
- listRecordings(streamId: string, params?: PaginationParams): Promise<PaginatedResponse<StreamRecording>>;
365
- /**
366
- * Get a specific recording
367
- *
368
- * Requires: streams:read permission
369
- */
370
- getRecording(streamId: string, recordingId: string): Promise<StreamRecording>;
371
- /**
372
- * List active viewer sessions for a stream
373
- *
374
- * Requires: streams:read permission
375
- */
376
- listViewers(streamId: string, params?: PaginationParams): Promise<PaginatedResponse<ViewerSession>>;
377
- /**
378
- * Get current and peak viewer count for a stream
379
- *
380
- * Requires: streams:read permission
381
- */
382
- getViewerCount(streamId: string): Promise<{
383
- count: number;
384
- peak: number;
385
- }>;
386
- /**
387
- * Wait for a stream to reach "live" status
388
- *
389
- * Polls the stream until it transitions to "live" or a terminal state.
390
- * Useful after calling `start()` to wait for the encoder to connect.
391
- *
392
- * @param streamId - Stream to monitor
393
- * @param options - Polling configuration
394
- * @param options.pollInterval - Milliseconds between polls (default: 2000)
395
- * @param options.timeout - Maximum wait time in milliseconds (default: 120000)
396
- * @param options.onProgress - Called on each poll with the current stream state
397
- * @returns The stream once it reaches "live" status
398
- * @throws Error if the stream enters "failed" or "ended" status, or if the timeout is exceeded
399
- */
400
- waitForLive(streamId: string, options?: {
401
- pollInterval?: number;
402
- timeout?: number;
403
- onProgress?: (stream: Stream) => void;
404
- }): Promise<Stream>;
405
- }
406
- /**
407
- * Create a Pipeline API instance
408
- */
409
- export declare function createPipelineAPI(client: WaveClient): PipelineAPI;
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
package/dist/podcast.d.ts DELETED
@@ -1,113 +0,0 @@
1
- /**
2
- * WAVE SDK - Podcast API
3
- *
4
- * Podcast production, episode management, and distribution.
5
- */
6
- import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
- export type EpisodeStatus = "draft" | "processing" | "published" | "scheduled" | "failed";
8
- export type DistributionTarget = "spotify" | "apple" | "google" | "amazon" | "overcast";
9
- export interface Podcast extends Timestamps {
10
- id: string;
11
- organization_id: string;
12
- title: string;
13
- description: string;
14
- cover_art_url?: string;
15
- rss_url?: string;
16
- category: string;
17
- language: string;
18
- explicit: boolean;
19
- author: string;
20
- email?: string;
21
- website?: string;
22
- subscriber_count: number;
23
- episode_count: number;
24
- }
25
- export interface Episode extends Timestamps {
26
- id: string;
27
- podcast_id: string;
28
- title: string;
29
- description: string;
30
- status: EpisodeStatus;
31
- audio_url?: string;
32
- duration_seconds: number;
33
- file_size_bytes: number;
34
- season_number?: number;
35
- episode_number?: number;
36
- published_at?: string;
37
- scheduled_at?: string;
38
- tags?: string[];
39
- }
40
- export interface PodcastAnalytics {
41
- podcast_id: string;
42
- total_downloads: number;
43
- unique_listeners: number;
44
- average_listen_duration: number;
45
- top_episodes: {
46
- episode_id: string;
47
- downloads: number;
48
- }[];
49
- listener_geography: {
50
- country: string;
51
- count: number;
52
- }[];
53
- }
54
- export interface PodcastDistribution {
55
- target: DistributionTarget;
56
- status: "connected" | "pending" | "error";
57
- url?: string;
58
- }
59
- export interface CreatePodcastRequest {
60
- title: string;
61
- description: string;
62
- category: string;
63
- language?: string;
64
- explicit?: boolean;
65
- author?: string;
66
- email?: string;
67
- }
68
- export interface CreateEpisodeRequest {
69
- podcast_id: string;
70
- title: string;
71
- description: string;
72
- audio_url?: string;
73
- season_number?: number;
74
- episode_number?: number;
75
- tags?: string[];
76
- scheduled_at?: string;
77
- }
78
- /**
79
- * Podcast production, episode management, RSS feeds, and distribution.
80
- *
81
- * @example
82
- * ```typescript
83
- * const podcast = await wave.podcast.create({ title: "My Show", description: "...", category: "Tech" });
84
- * await wave.podcast.createEpisode({ podcast_id: podcast.id, title: "Ep 1", description: "..." });
85
- * await wave.podcast.distribute(podcast.id, ["spotify", "apple"]);
86
- * ```
87
- */
88
- export declare class PodcastAPI {
89
- private readonly client;
90
- private readonly basePath;
91
- constructor(client: WaveClient);
92
- create(request: CreatePodcastRequest): Promise<Podcast>;
93
- get(podcastId: string): Promise<Podcast>;
94
- update(podcastId: string, updates: Partial<CreatePodcastRequest>): Promise<Podcast>;
95
- remove(podcastId: string): Promise<void>;
96
- list(params?: PaginationParams): Promise<PaginatedResponse<Podcast>>;
97
- createEpisode(request: CreateEpisodeRequest): Promise<Episode>;
98
- getEpisode(episodeId: string): Promise<Episode>;
99
- updateEpisode(episodeId: string, updates: Partial<CreateEpisodeRequest>): Promise<Episode>;
100
- removeEpisode(episodeId: string): Promise<void>;
101
- publishEpisode(episodeId: string): Promise<Episode>;
102
- listEpisodes(podcastId: string, params?: PaginationParams): Promise<PaginatedResponse<Episode>>;
103
- getRSSFeed(podcastId: string): Promise<{
104
- url: string;
105
- xml: string;
106
- }>;
107
- getAnalytics(podcastId: string, params?: {
108
- period?: string;
109
- }): Promise<PodcastAnalytics>;
110
- distribute(podcastId: string, targets: DistributionTarget[]): Promise<PodcastDistribution[]>;
111
- getDistributionStatus(podcastId: string): Promise<PodcastDistribution[]>;
112
- }
113
- export declare function createPodcastAPI(client: WaveClient): PodcastAPI;
@@ -1 +0,0 @@
1
- {"version":3,"file":"podcast.d.ts","sourceRoot":"","sources":["../src/podcast.ts"],"names":[],"mappings":"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"}
package/dist/prism.d.ts DELETED
@@ -1,132 +0,0 @@
1
- /**
2
- * WAVE SDK - Prism API
3
- *
4
- * Virtual Device Bridge - present network AV sources (NDI, ONVIF, VISCA, Dante)
5
- * as standard USB UVC/UAC devices to conferencing apps.
6
- */
7
- import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
8
- export type VirtualDeviceType = "camera" | "microphone";
9
- export type DeviceStatus = "created" | "starting" | "running" | "stopping" | "stopped" | "error";
10
- export type SourceProtocol = "ndi" | "onvif" | "srt" | "rtmp" | "webrtc" | "dante" | "cloudflare" | "livekit";
11
- export type PTZProtocol = "ndi" | "onvif" | "visca" | "pelcod" | "cgi" | "livekit";
12
- export interface VirtualDevice extends Timestamps {
13
- id: string;
14
- organization_id: string;
15
- name: string;
16
- type: VirtualDeviceType;
17
- status: DeviceStatus;
18
- source_protocol: SourceProtocol;
19
- source_endpoint: string;
20
- node_id: string;
21
- resolution?: {
22
- width: number;
23
- height: number;
24
- };
25
- frame_rate?: number;
26
- health_score: number;
27
- ptz_enabled: boolean;
28
- ptz_protocol?: PTZProtocol;
29
- }
30
- export interface PresetMapping extends Timestamps {
31
- id: string;
32
- device_id: string;
33
- slot_number: number;
34
- preset_name: string;
35
- preset_token: string;
36
- protocol: PTZProtocol;
37
- transition_speed: number;
38
- }
39
- export interface DeviceHealth {
40
- device_id: string;
41
- status: "healthy" | "degraded" | "critical" | "offline";
42
- latency_ms: number;
43
- dropped_frames: number;
44
- fps: number;
45
- cpu_usage: number;
46
- source_connected: boolean;
47
- driver_connected: boolean;
48
- }
49
- export interface DiscoveredSource {
50
- id: string;
51
- name: string;
52
- protocol: string;
53
- address: string;
54
- supports_ptz: boolean;
55
- capabilities: string[];
56
- discovered_at: string;
57
- }
58
- export interface CreateDeviceRequest {
59
- name: string;
60
- type: VirtualDeviceType;
61
- source_protocol: SourceProtocol;
62
- source_endpoint: string;
63
- node_id: string;
64
- resolution?: {
65
- width: number;
66
- height: number;
67
- };
68
- frame_rate?: number;
69
- ptz_enabled?: boolean;
70
- ptz_protocol?: PTZProtocol;
71
- metadata?: Record<string, unknown>;
72
- }
73
- export interface UpdateDeviceRequest {
74
- name?: string;
75
- source_endpoint?: string;
76
- resolution?: {
77
- width: number;
78
- height: number;
79
- };
80
- frame_rate?: number;
81
- metadata?: Record<string, unknown>;
82
- }
83
- export interface SetPresetRequest {
84
- slot_number: number;
85
- preset_name: string;
86
- preset_token: string;
87
- protocol: PTZProtocol;
88
- transition_speed?: number;
89
- }
90
- export interface ListDevicesParams extends PaginationParams {
91
- type?: VirtualDeviceType;
92
- status?: DeviceStatus;
93
- node_id?: string;
94
- source_protocol?: SourceProtocol;
95
- order_by?: string;
96
- order?: "asc" | "desc";
97
- }
98
- /**
99
- * Virtual Device Bridge - present network AV sources (NDI, ONVIF, VISCA, Dante)
100
- * as standard USB UVC/UAC devices to conferencing apps (Zoom, Teams, Meet).
101
- *
102
- * @example
103
- * ```typescript
104
- * const device = await wave.prism.createDevice({ name: 'PTZ Cam', type: 'camera', source_protocol: 'ndi', source_endpoint: 'NDI-1', node_id: 'node_abc' });
105
- * await wave.prism.startDevice(device.id);
106
- * await wave.prism.setPreset(device.id, { slot_number: 1, preset_name: 'Wide', preset_token: 'p1', protocol: 'ndi' });
107
- * const sources = await wave.prism.discoverSources({ protocols: ['ndi', 'onvif'] });
108
- * ```
109
- */
110
- export declare class PrismAPI {
111
- private readonly client;
112
- private readonly basePath;
113
- constructor(client: WaveClient);
114
- createDevice(request: CreateDeviceRequest): Promise<VirtualDevice>;
115
- getDevice(deviceId: string): Promise<VirtualDevice>;
116
- updateDevice(deviceId: string, request: UpdateDeviceRequest): Promise<VirtualDevice>;
117
- removeDevice(deviceId: string): Promise<void>;
118
- listDevices(params?: ListDevicesParams): Promise<PaginatedResponse<VirtualDevice>>;
119
- startDevice(deviceId: string): Promise<VirtualDevice>;
120
- stopDevice(deviceId: string): Promise<VirtualDevice>;
121
- getHealth(deviceId: string): Promise<DeviceHealth>;
122
- discoverSources(options?: {
123
- protocols?: string[];
124
- subnet?: string;
125
- timeout?: number;
126
- }): Promise<DiscoveredSource[]>;
127
- getPresets(deviceId: string): Promise<PresetMapping[]>;
128
- setPreset(deviceId: string, request: SetPresetRequest): Promise<PresetMapping>;
129
- removePreset(deviceId: string, slotNumber: number): Promise<void>;
130
- recallPreset(deviceId: string, slotNumber: number): Promise<void>;
131
- }
132
- export declare function createPrismAPI(client: WaveClient): PrismAPI;
@@ -1 +0,0 @@
1
- {"version":3,"file":"prism.d.ts","sourceRoot":"","sources":["../src/prism.ts"],"names":[],"mappings":"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"}