@wave-av/sdk 2.0.4 → 2.0.6

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 (126) hide show
  1. package/dist/audience.d.ts +105 -0
  2. package/dist/audience.d.ts.map +1 -0
  3. package/dist/billing-types.d.ts +39 -0
  4. package/dist/billing-types.d.ts.map +1 -0
  5. package/dist/billing-types.js +18 -0
  6. package/dist/billing-types.mjs +0 -0
  7. package/dist/billing.d.ts +69 -0
  8. package/dist/billing.d.ts.map +1 -0
  9. package/dist/billing.js +139 -0
  10. package/dist/billing.mjs +9 -0
  11. package/dist/camera-control.d.ts +55 -0
  12. package/dist/camera-control.d.ts.map +1 -0
  13. package/dist/captions-types.d.ts +119 -0
  14. package/dist/captions-types.d.ts.map +1 -0
  15. package/dist/captions.d.ts +218 -0
  16. package/dist/captions.d.ts.map +1 -0
  17. package/dist/chapters-types.d.ts +87 -0
  18. package/dist/chapters-types.d.ts.map +1 -0
  19. package/dist/chapters.d.ts +207 -0
  20. package/dist/chapters.d.ts.map +1 -0
  21. package/dist/chunk-I3V47I4W.mjs +114 -0
  22. package/dist/client-types.d.ts +59 -0
  23. package/dist/client-types.d.ts.map +1 -0
  24. package/dist/client.d.ts +120 -0
  25. package/dist/client.d.ts.map +1 -0
  26. package/dist/clips-types.d.ts +31 -0
  27. package/dist/clips-types.d.ts.map +1 -0
  28. package/dist/clips.d.ts +230 -0
  29. package/dist/clips.d.ts.map +1 -0
  30. package/dist/cloud-switcher.d.ts +66 -0
  31. package/dist/cloud-switcher.d.ts.map +1 -0
  32. package/dist/collab-types.d.ts +205 -0
  33. package/dist/collab-types.d.ts.map +1 -0
  34. package/dist/collab.d.ts +227 -0
  35. package/dist/collab.d.ts.map +1 -0
  36. package/dist/connect.d.ts +89 -0
  37. package/dist/connect.d.ts.map +1 -0
  38. package/dist/creator.d.ts +110 -0
  39. package/dist/creator.d.ts.map +1 -0
  40. package/dist/desktop.d.ts +96 -0
  41. package/dist/desktop.d.ts.map +1 -0
  42. package/dist/distribution.d.ts +93 -0
  43. package/dist/distribution.d.ts.map +1 -0
  44. package/dist/drm.d.ts +88 -0
  45. package/dist/drm.d.ts.map +1 -0
  46. package/dist/edge.d.ts +113 -0
  47. package/dist/edge.d.ts.map +1 -0
  48. package/dist/editor-types.d.ts +237 -0
  49. package/dist/editor-types.d.ts.map +1 -0
  50. package/dist/editor.d.ts +207 -0
  51. package/dist/editor.d.ts.map +1 -0
  52. package/dist/fleet.d.ts +208 -0
  53. package/dist/fleet.d.ts.map +1 -0
  54. package/dist/ghost.d.ts +214 -0
  55. package/dist/ghost.d.ts.map +1 -0
  56. package/dist/index.d.ts +131 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +114 -0
  59. package/dist/index.mjs +49 -43
  60. package/dist/marketplace.d.ts +91 -0
  61. package/dist/marketplace.d.ts.map +1 -0
  62. package/dist/mesh.d.ts +238 -0
  63. package/dist/mesh.d.ts.map +1 -0
  64. package/dist/notifications.d.ts +83 -0
  65. package/dist/notifications.d.ts.map +1 -0
  66. package/dist/phone-types.d.ts +111 -0
  67. package/dist/phone-types.d.ts.map +1 -0
  68. package/dist/phone.d.ts +235 -0
  69. package/dist/phone.d.ts.map +1 -0
  70. package/dist/pipeline-types.d.ts +188 -0
  71. package/dist/pipeline-types.d.ts.map +1 -0
  72. package/dist/pipeline.d.ts +224 -0
  73. package/dist/pipeline.d.ts.map +1 -0
  74. package/dist/podcast.d.ts +114 -0
  75. package/dist/podcast.d.ts.map +1 -0
  76. package/dist/prism.d.ts +133 -0
  77. package/dist/prism.d.ts.map +1 -0
  78. package/dist/prompter.d.ts +185 -0
  79. package/dist/prompter.d.ts.map +1 -0
  80. package/dist/pulse.d.ts +157 -0
  81. package/dist/pulse.d.ts.map +1 -0
  82. package/dist/qr.d.ts +83 -0
  83. package/dist/qr.d.ts.map +1 -0
  84. package/dist/replay.d.ts +53 -0
  85. package/dist/replay.d.ts.map +1 -0
  86. package/dist/scene-types.d.ts +191 -0
  87. package/dist/scene-types.d.ts.map +1 -0
  88. package/dist/scene.d.ts +214 -0
  89. package/dist/scene.d.ts.map +1 -0
  90. package/dist/search-types.d.ts +211 -0
  91. package/dist/search-types.d.ts.map +1 -0
  92. package/dist/search.d.ts +251 -0
  93. package/dist/search.d.ts.map +1 -0
  94. package/dist/sentiment-types.d.ts +108 -0
  95. package/dist/sentiment-types.d.ts.map +1 -0
  96. package/dist/sentiment.d.ts +247 -0
  97. package/dist/sentiment.d.ts.map +1 -0
  98. package/dist/signage.d.ts +102 -0
  99. package/dist/signage.d.ts.map +1 -0
  100. package/dist/slides.d.ts +69 -0
  101. package/dist/slides.d.ts.map +1 -0
  102. package/dist/studio-ai-types.d.ts +199 -0
  103. package/dist/studio-ai-types.d.ts.map +1 -0
  104. package/dist/studio-ai.d.ts +219 -0
  105. package/dist/studio-ai.d.ts.map +1 -0
  106. package/dist/studio-types.d.ts +268 -0
  107. package/dist/studio-types.d.ts.map +1 -0
  108. package/dist/studio.d.ts +235 -0
  109. package/dist/studio.d.ts.map +1 -0
  110. package/dist/telemetry.d.ts +77 -0
  111. package/dist/telemetry.d.ts.map +1 -0
  112. package/dist/transcribe-types.d.ts +154 -0
  113. package/dist/transcribe-types.d.ts.map +1 -0
  114. package/dist/transcribe.d.ts +219 -0
  115. package/dist/transcribe.d.ts.map +1 -0
  116. package/dist/usb.d.ts +65 -0
  117. package/dist/usb.d.ts.map +1 -0
  118. package/dist/vault.d.ts +122 -0
  119. package/dist/vault.d.ts.map +1 -0
  120. package/dist/voice-types.d.ts +107 -0
  121. package/dist/voice-types.d.ts.map +1 -0
  122. package/dist/voice.d.ts +178 -0
  123. package/dist/voice.d.ts.map +1 -0
  124. package/dist/zoom.d.ts +92 -0
  125. package/dist/zoom.d.ts.map +1 -0
  126. package/package.json +2 -2
@@ -0,0 +1,154 @@
1
+ /**
2
+ * WAVE SDK - Transcribe API
3
+ *
4
+ * Audio and video transcription with speaker diarization.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { PaginationParams, Timestamps, Metadata } from './client';
10
+ /**
11
+ * Transcription status
12
+ */
13
+ export type TranscriptionStatus = 'pending' | 'processing' | 'ready' | 'failed';
14
+ /**
15
+ * Transcription model
16
+ */
17
+ export type TranscriptionModel = 'standard' | 'enhanced' | 'whisper-large' | 'whisper-medium' | 'medical' | 'legal';
18
+ /**
19
+ * Transcription job
20
+ */
21
+ export interface Transcription extends Timestamps {
22
+ id: string;
23
+ organization_id: string;
24
+ source_url?: string;
25
+ source_type: 'upload' | 'url' | 'stream' | 'recording';
26
+ source_id?: string;
27
+ status: TranscriptionStatus;
28
+ language: string;
29
+ detected_language?: string;
30
+ model: TranscriptionModel;
31
+ duration?: number;
32
+ word_count?: number;
33
+ confidence?: number;
34
+ speaker_count?: number;
35
+ cost?: number;
36
+ error?: string;
37
+ metadata?: Metadata;
38
+ }
39
+ /**
40
+ * Transcription segment
41
+ */
42
+ export interface TranscriptionSegment {
43
+ id: string;
44
+ start_time: number;
45
+ end_time: number;
46
+ text: string;
47
+ speaker?: string;
48
+ speaker_id?: number;
49
+ confidence: number;
50
+ words?: TranscriptionWord[];
51
+ }
52
+ /**
53
+ * Word-level transcription
54
+ */
55
+ export interface TranscriptionWord {
56
+ word: string;
57
+ start_time: number;
58
+ end_time: number;
59
+ confidence: number;
60
+ speaker_id?: number;
61
+ }
62
+ /**
63
+ * Speaker info
64
+ */
65
+ export interface Speaker {
66
+ id: number;
67
+ label: string;
68
+ segments_count: number;
69
+ total_duration: number;
70
+ confidence?: number;
71
+ }
72
+ /**
73
+ * Create transcription request
74
+ */
75
+ export interface CreateTranscriptionRequest {
76
+ /** Source URL to transcribe */
77
+ source_url?: string;
78
+ /** Source type */
79
+ source_type: 'upload' | 'url' | 'stream' | 'recording';
80
+ /** Source ID for streams/recordings */
81
+ source_id?: string;
82
+ /** Language code (auto-detect if not specified) */
83
+ language?: string;
84
+ /** Transcription model */
85
+ model?: TranscriptionModel;
86
+ /** Enable speaker diarization */
87
+ speaker_diarization?: boolean;
88
+ /** Expected number of speakers */
89
+ speaker_count?: number;
90
+ /** Enable punctuation */
91
+ punctuation?: boolean;
92
+ /** Filter profanity */
93
+ profanity_filter?: boolean;
94
+ /** Custom vocabulary/terms */
95
+ vocabulary?: string[];
96
+ /** Boost specific words */
97
+ vocabulary_boost?: number;
98
+ /** Enable word timestamps */
99
+ word_timestamps?: boolean;
100
+ /** Callback URL for completion */
101
+ webhook_url?: string;
102
+ metadata?: Metadata;
103
+ }
104
+ /**
105
+ * Update transcription request
106
+ */
107
+ export interface UpdateTranscriptionRequest {
108
+ metadata?: Metadata;
109
+ }
110
+ /**
111
+ * List transcriptions params
112
+ */
113
+ export interface ListTranscriptionsParams extends PaginationParams {
114
+ status?: TranscriptionStatus;
115
+ source_type?: 'upload' | 'url' | 'stream' | 'recording';
116
+ language?: string;
117
+ model?: TranscriptionModel;
118
+ created_after?: string;
119
+ created_before?: string;
120
+ }
121
+ /**
122
+ * Export format
123
+ */
124
+ export type TranscriptExportFormat = 'txt' | 'json' | 'srt' | 'vtt' | 'docx' | 'pdf';
125
+ /**
126
+ * Transcribe API client
127
+ *
128
+ * All operations require appropriate permissions. Authorization is enforced
129
+ * server-side - the API returns 403 if the authenticated user lacks access.
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * import { WaveClient } from '@wave/sdk';
134
+ * import { TranscribeAPI } from '@wave/sdk/transcribe';
135
+ *
136
+ * const client = new WaveClient({ apiKey: 'your-api-key' });
137
+ * const transcribe = new TranscribeAPI(client);
138
+ *
139
+ * // Transcribe a video
140
+ * const job = await transcribe.create({
141
+ * source_url: 'https://example.com/video.mp4',
142
+ * source_type: 'url',
143
+ * language: 'en',
144
+ * speaker_diarization: true,
145
+ * });
146
+ *
147
+ * // Wait for completion
148
+ * const result = await transcribe.waitForReady(job.id);
149
+ *
150
+ * // Get the transcript
151
+ * const segments = await transcribe.getSegments(result.id);
152
+ * ```
153
+ */
154
+ //# sourceMappingURL=transcribe-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe-types.d.ts","sourceRoot":"","sources":["../src/transcribe-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * WAVE SDK - Transcribe API
3
+ *
4
+ * Audio and video transcription with speaker diarization.
5
+ *
6
+ * NOTE: This is a client SDK. All authorization checks are performed server-side.
7
+ * The API will return 403 Forbidden if the user lacks required permissions.
8
+ */
9
+ import type { WaveClient, PaginationParams, PaginatedResponse } from './client';
10
+ export * from './transcribe-types';
11
+ import type { CreateTranscriptionRequest, ListTranscriptionsParams, Speaker, TranscriptExportFormat, Transcription, TranscriptionModel, TranscriptionSegment, UpdateTranscriptionRequest } from './transcribe-types';
12
+ export declare class TranscribeAPI {
13
+ private readonly client;
14
+ private readonly basePath;
15
+ constructor(client: WaveClient);
16
+ /**
17
+ * Create a transcription job
18
+ *
19
+ * Requires: transcribe:create permission
20
+ */
21
+ create(request: CreateTranscriptionRequest): Promise<Transcription>;
22
+ /**
23
+ * Get a transcription by ID
24
+ *
25
+ * Requires: transcribe:read permission
26
+ */
27
+ get(transcriptionId: string): Promise<Transcription>;
28
+ /**
29
+ * Update a transcription
30
+ *
31
+ * Requires: transcribe:update permission
32
+ */
33
+ update(transcriptionId: string, request: UpdateTranscriptionRequest): Promise<Transcription>;
34
+ /**
35
+ * Remove a transcription
36
+ *
37
+ * Requires: transcribe:remove permission (server-side RBAC enforced)
38
+ */
39
+ remove(transcriptionId: string): Promise<void>;
40
+ /**
41
+ * List transcriptions
42
+ *
43
+ * Requires: transcribe:read permission
44
+ */
45
+ list(params?: ListTranscriptionsParams): Promise<PaginatedResponse<Transcription>>;
46
+ /**
47
+ * Get transcription segments
48
+ *
49
+ * Requires: transcribe:read permission
50
+ */
51
+ getSegments(transcriptionId: string, params?: PaginationParams & {
52
+ start_time?: number;
53
+ end_time?: number;
54
+ speaker_id?: number;
55
+ }): Promise<PaginatedResponse<TranscriptionSegment>>;
56
+ /**
57
+ * Update a segment
58
+ *
59
+ * Requires: transcribe:update permission
60
+ */
61
+ updateSegment(transcriptionId: string, segmentId: string, updates: {
62
+ text?: string;
63
+ speaker?: string;
64
+ speaker_id?: number;
65
+ }): Promise<TranscriptionSegment>;
66
+ /**
67
+ * Merge segments
68
+ *
69
+ * Requires: transcribe:update permission
70
+ */
71
+ mergeSegments(transcriptionId: string, segmentIds: string[]): Promise<TranscriptionSegment>;
72
+ /**
73
+ * Split a segment
74
+ *
75
+ * Requires: transcribe:update permission
76
+ */
77
+ splitSegment(transcriptionId: string, segmentId: string, splitTime: number): Promise<{
78
+ first: TranscriptionSegment;
79
+ second: TranscriptionSegment;
80
+ }>;
81
+ /**
82
+ * Get speakers
83
+ *
84
+ * Requires: transcribe:read permission
85
+ */
86
+ getSpeakers(transcriptionId: string): Promise<Speaker[]>;
87
+ /**
88
+ * Update speaker label
89
+ *
90
+ * Requires: transcribe:update permission
91
+ */
92
+ updateSpeaker(transcriptionId: string, speakerId: number, label: string): Promise<Speaker>;
93
+ /**
94
+ * Merge speakers
95
+ *
96
+ * Requires: transcribe:update permission
97
+ */
98
+ mergeSpeakers(transcriptionId: string, speakerIds: number[], newLabel?: string): Promise<Speaker>;
99
+ /**
100
+ * Export transcription
101
+ *
102
+ * Requires: transcribe:read permission
103
+ */
104
+ exportTranscription(transcriptionId: string, format: TranscriptExportFormat, options?: {
105
+ include_timestamps?: boolean;
106
+ include_speakers?: boolean;
107
+ paragraph_breaks?: boolean;
108
+ }): Promise<{
109
+ url: string;
110
+ expires_at: string;
111
+ }>;
112
+ /**
113
+ * Get plain text transcript
114
+ *
115
+ * Requires: transcribe:read permission
116
+ */
117
+ getText(transcriptionId: string, options?: {
118
+ include_speakers?: boolean;
119
+ paragraph_breaks?: boolean;
120
+ }): Promise<string>;
121
+ /**
122
+ * Search within a transcription
123
+ *
124
+ * Requires: transcribe:read permission
125
+ */
126
+ search(transcriptionId: string, query: string, options?: {
127
+ case_sensitive?: boolean;
128
+ whole_word?: boolean;
129
+ }): Promise<Array<{
130
+ segment_id: string;
131
+ text: string;
132
+ start_time: number;
133
+ end_time: number;
134
+ highlight_ranges: Array<{
135
+ start: number;
136
+ end: number;
137
+ }>;
138
+ }>>;
139
+ /**
140
+ * Start real-time transcription
141
+ *
142
+ * Requires: transcribe:realtime permission
143
+ */
144
+ startRealtime(streamId: string, options?: {
145
+ language?: string;
146
+ model?: TranscriptionModel;
147
+ speaker_diarization?: boolean;
148
+ }): Promise<{
149
+ session_id: string;
150
+ websocket_url: string;
151
+ expires_at: string;
152
+ }>;
153
+ /**
154
+ * Stop real-time transcription
155
+ *
156
+ * Requires: transcribe:realtime permission
157
+ */
158
+ stopRealtime(sessionId: string): Promise<Transcription>;
159
+ /**
160
+ * Get real-time session status
161
+ *
162
+ * Requires: transcribe:read permission
163
+ */
164
+ getRealtimeStatus(sessionId: string): Promise<{
165
+ status: 'active' | 'paused' | 'stopped';
166
+ duration: number;
167
+ word_count: number;
168
+ segments_count: number;
169
+ }>;
170
+ /**
171
+ * Wait for transcription to complete
172
+ */
173
+ waitForReady(transcriptionId: string, options?: {
174
+ pollInterval?: number;
175
+ timeout?: number;
176
+ onProgress?: (transcription: Transcription) => void;
177
+ }): Promise<Transcription>;
178
+ /**
179
+ * Detect language from audio
180
+ *
181
+ * Requires: transcribe:read permission
182
+ */
183
+ detectLanguage(sourceUrl: string): Promise<{
184
+ detected_language: string;
185
+ confidence: number;
186
+ alternatives: Array<{
187
+ language: string;
188
+ confidence: number;
189
+ }>;
190
+ }>;
191
+ /**
192
+ * Get supported languages
193
+ *
194
+ * Requires: transcribe:read permission
195
+ */
196
+ getSupportedLanguages(): Promise<Array<{
197
+ code: string;
198
+ name: string;
199
+ native_name: string;
200
+ models: TranscriptionModel[];
201
+ }>>;
202
+ /**
203
+ * Estimate transcription cost
204
+ *
205
+ * Requires: transcribe:read permission
206
+ */
207
+ estimateCost(durationSeconds: number, model?: TranscriptionModel, options?: {
208
+ speaker_diarization?: boolean;
209
+ }): Promise<{
210
+ estimated_cost: number;
211
+ currency: string;
212
+ breakdown: Record<string, number>;
213
+ }>;
214
+ }
215
+ /**
216
+ * Create a Transcribe API instance
217
+ */
218
+ export declare function createTranscribeAPI(client: WaveClient): TranscribeAPI;
219
+ //# sourceMappingURL=transcribe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe.d.ts","sourceRoot":"","sources":["../src/transcribe.ts"],"names":[],"mappings":"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"}
package/dist/usb.d.ts ADDED
@@ -0,0 +1,65 @@
1
+ /**
2
+ * WAVE SDK - USB API
3
+ *
4
+ * USB device relay, claiming, and capability management.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse } from "./client";
7
+ export type USBDeviceClass = "video" | "audio" | "hid" | "storage" | "composite";
8
+ export type USBDeviceStatus = "connected" | "claimed" | "in_use" | "disconnected";
9
+ export interface USBDevice {
10
+ id: string;
11
+ node_id: string;
12
+ name: string;
13
+ vendor_id: string;
14
+ product_id: string;
15
+ serial_number?: string;
16
+ device_class: USBDeviceClass;
17
+ status: USBDeviceStatus;
18
+ manufacturer?: string;
19
+ speed: "low" | "full" | "high" | "super";
20
+ current_owner_id?: string;
21
+ capabilities: string[];
22
+ connected_at: string;
23
+ updated_at: string;
24
+ }
25
+ export interface USBDeviceCapabilities {
26
+ video_formats?: string[];
27
+ audio_formats?: string[];
28
+ max_resolution?: string;
29
+ max_frame_rate?: number;
30
+ supports_uvc: boolean;
31
+ supports_uac: boolean;
32
+ }
33
+ export interface ClaimRequest {
34
+ reason?: string;
35
+ exclusive?: boolean;
36
+ }
37
+ export interface ListUSBDevicesParams extends PaginationParams {
38
+ node_id?: string;
39
+ device_class?: USBDeviceClass;
40
+ status?: USBDeviceStatus;
41
+ }
42
+ /**
43
+ * USB device relay: claim, release, and manage USB devices across nodes.
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const devices = await wave.usb.list({ device_class: "video" });
48
+ * await wave.usb.claim(devices.data[0].id);
49
+ * const caps = await wave.usb.getCapabilities(deviceId);
50
+ * ```
51
+ */
52
+ export declare class UsbAPI {
53
+ private readonly client;
54
+ private readonly basePath;
55
+ constructor(client: WaveClient);
56
+ list(params?: ListUSBDevicesParams): Promise<PaginatedResponse<USBDevice>>;
57
+ get(deviceId: string): Promise<USBDevice>;
58
+ claim(deviceId: string, request?: ClaimRequest): Promise<USBDevice>;
59
+ release(deviceId: string): Promise<USBDevice>;
60
+ getCapabilities(deviceId: string): Promise<USBDeviceCapabilities>;
61
+ listByNode(nodeId: string, params?: PaginationParams): Promise<PaginatedResponse<USBDevice>>;
62
+ configure(deviceId: string, config: Record<string, unknown>): Promise<USBDevice>;
63
+ }
64
+ export declare function createUsbAPI(client: WaveClient): UsbAPI;
65
+ //# sourceMappingURL=usb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usb.d.ts","sourceRoot":"","sources":["../src/usb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,CAAC;AACjF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;AAElF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,cAAc,CAAC;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AACD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AACD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;gBAC1B,MAAM,EAAE,UAAU;IAIxB,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAK1E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAGzC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAGnE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAG7C,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKjE,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAMlC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;CAGvF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * WAVE SDK - Vault API
3
+ *
4
+ * Recording storage, VOD management, and archival policies.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps, Metadata } from "./client";
7
+ export type RecordingStatus = "recording" | "processing" | "ready" | "archived" | "failed";
8
+ export type StorageTier = "hot" | "warm" | "cold" | "archive";
9
+ export interface Recording extends Timestamps {
10
+ id: string;
11
+ organization_id: string;
12
+ stream_id?: string;
13
+ title: string;
14
+ status: RecordingStatus;
15
+ duration_seconds: number;
16
+ file_size_bytes: number;
17
+ format: string;
18
+ resolution?: string;
19
+ frame_rate?: number;
20
+ storage_tier: StorageTier;
21
+ playback_url?: string;
22
+ download_url?: string;
23
+ thumbnail_url?: string;
24
+ tags?: string[];
25
+ metadata?: Metadata;
26
+ expires_at?: string;
27
+ }
28
+ export interface StorageUsage {
29
+ organization_id: string;
30
+ total_bytes: number;
31
+ hot_bytes: number;
32
+ warm_bytes: number;
33
+ cold_bytes: number;
34
+ archive_bytes: number;
35
+ recording_count: number;
36
+ quota_bytes: number;
37
+ usage_percent: number;
38
+ }
39
+ export interface ArchivePolicy extends Timestamps {
40
+ id: string;
41
+ name: string;
42
+ tier_after_days: {
43
+ warm?: number;
44
+ cold?: number;
45
+ archive?: number;
46
+ delete?: number;
47
+ };
48
+ applies_to: "all" | "tagged";
49
+ tags?: string[];
50
+ }
51
+ export interface UploadSession {
52
+ id: string;
53
+ upload_url: string;
54
+ expires_at: string;
55
+ }
56
+ export interface TranscodeJob extends Timestamps {
57
+ id: string;
58
+ recording_id: string;
59
+ status: "pending" | "processing" | "ready" | "failed";
60
+ progress_percent: number;
61
+ output_url?: string;
62
+ error?: string;
63
+ }
64
+ export interface ListRecordingsParams extends PaginationParams {
65
+ status?: RecordingStatus;
66
+ stream_id?: string;
67
+ storage_tier?: StorageTier;
68
+ tags?: string[];
69
+ order_by?: string;
70
+ order?: "asc" | "desc";
71
+ }
72
+ /**
73
+ * Recording storage, VOD management, transcoding, and archival policies.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const recording = await wave.vault.startRecording(streamId);
78
+ * const usage = await wave.vault.getStorageUsage();
79
+ * const url = await wave.vault.getDownloadUrl(recordingId);
80
+ * ```
81
+ */
82
+ export declare class VaultAPI {
83
+ private readonly client;
84
+ private readonly basePath;
85
+ constructor(client: WaveClient);
86
+ list(params?: ListRecordingsParams): Promise<PaginatedResponse<Recording>>;
87
+ get(recordingId: string): Promise<Recording>;
88
+ update(recordingId: string, updates: {
89
+ title?: string;
90
+ tags?: string[];
91
+ metadata?: Metadata;
92
+ }): Promise<Recording>;
93
+ remove(recordingId: string): Promise<void>;
94
+ getStorageUsage(): Promise<StorageUsage>;
95
+ createUpload(request: {
96
+ title: string;
97
+ format: string;
98
+ file_size_bytes: number;
99
+ tags?: string[];
100
+ }): Promise<UploadSession>;
101
+ completeUpload(uploadId: string): Promise<Recording>;
102
+ startRecording(streamId: string, options?: {
103
+ title?: string;
104
+ tags?: string[];
105
+ }): Promise<Recording>;
106
+ stopRecording(streamId: string): Promise<Recording>;
107
+ transcode(recordingId: string, request: {
108
+ format: string;
109
+ resolution?: string;
110
+ bitrate_kbps?: number;
111
+ }): Promise<TranscodeJob>;
112
+ getTranscodeJob(jobId: string): Promise<TranscodeJob>;
113
+ createArchivePolicy(policy: Omit<ArchivePolicy, "id" | "created_at" | "updated_at">): Promise<ArchivePolicy>;
114
+ listArchivePolicies(): Promise<ArchivePolicy[]>;
115
+ removeArchivePolicy(policyId: string): Promise<void>;
116
+ getDownloadUrl(recordingId: string): Promise<{
117
+ url: string;
118
+ expires_at: string;
119
+ }>;
120
+ }
121
+ export declare function createVaultAPI(client: WaveClient): VaultAPI;
122
+ //# sourceMappingURL=vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"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"}