@wave-av/sdk 2.0.4 → 2.0.5
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/dist/audience.d.ts +105 -0
- package/dist/audience.d.ts.map +1 -0
- package/dist/billing-types.d.ts +39 -0
- package/dist/billing-types.d.ts.map +1 -0
- package/dist/billing-types.js +18 -0
- package/dist/billing-types.mjs +0 -0
- package/dist/billing.d.ts +69 -0
- package/dist/billing.d.ts.map +1 -0
- package/dist/billing.js +139 -0
- package/dist/billing.mjs +9 -0
- package/dist/camera-control.d.ts +55 -0
- package/dist/camera-control.d.ts.map +1 -0
- package/dist/captions-types.d.ts +119 -0
- package/dist/captions-types.d.ts.map +1 -0
- package/dist/captions.d.ts +218 -0
- package/dist/captions.d.ts.map +1 -0
- package/dist/chapters-types.d.ts +87 -0
- package/dist/chapters-types.d.ts.map +1 -0
- package/dist/chapters.d.ts +207 -0
- package/dist/chapters.d.ts.map +1 -0
- package/dist/chunk-I3V47I4W.mjs +114 -0
- package/dist/client-types.d.ts +59 -0
- package/dist/client-types.d.ts.map +1 -0
- package/dist/client.d.ts +119 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/clips-types.d.ts +31 -0
- package/dist/clips-types.d.ts.map +1 -0
- package/dist/clips.d.ts +230 -0
- package/dist/clips.d.ts.map +1 -0
- package/dist/cloud-switcher.d.ts +66 -0
- package/dist/cloud-switcher.d.ts.map +1 -0
- package/dist/collab-types.d.ts +205 -0
- package/dist/collab-types.d.ts.map +1 -0
- package/dist/collab.d.ts +227 -0
- package/dist/collab.d.ts.map +1 -0
- package/dist/connect.d.ts +89 -0
- package/dist/connect.d.ts.map +1 -0
- package/dist/creator.d.ts +110 -0
- package/dist/creator.d.ts.map +1 -0
- package/dist/desktop.d.ts +96 -0
- package/dist/desktop.d.ts.map +1 -0
- package/dist/distribution.d.ts +93 -0
- package/dist/distribution.d.ts.map +1 -0
- package/dist/drm.d.ts +88 -0
- package/dist/drm.d.ts.map +1 -0
- package/dist/edge.d.ts +113 -0
- package/dist/edge.d.ts.map +1 -0
- package/dist/editor-types.d.ts +237 -0
- package/dist/editor-types.d.ts.map +1 -0
- package/dist/editor.d.ts +207 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/fleet.d.ts +208 -0
- package/dist/fleet.d.ts.map +1 -0
- package/dist/ghost.d.ts +214 -0
- package/dist/ghost.d.ts.map +1 -0
- package/dist/index.d.ts +131 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +114 -0
- package/dist/index.mjs +49 -43
- package/dist/marketplace.d.ts +91 -0
- package/dist/marketplace.d.ts.map +1 -0
- package/dist/mesh.d.ts +238 -0
- package/dist/mesh.d.ts.map +1 -0
- package/dist/notifications.d.ts +83 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/phone-types.d.ts +111 -0
- package/dist/phone-types.d.ts.map +1 -0
- package/dist/phone.d.ts +235 -0
- package/dist/phone.d.ts.map +1 -0
- package/dist/pipeline-types.d.ts +188 -0
- package/dist/pipeline-types.d.ts.map +1 -0
- package/dist/pipeline.d.ts +224 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/podcast.d.ts +114 -0
- package/dist/podcast.d.ts.map +1 -0
- package/dist/prism.d.ts +133 -0
- package/dist/prism.d.ts.map +1 -0
- package/dist/prompter.d.ts +185 -0
- package/dist/prompter.d.ts.map +1 -0
- package/dist/pulse.d.ts +157 -0
- package/dist/pulse.d.ts.map +1 -0
- package/dist/qr.d.ts +83 -0
- package/dist/qr.d.ts.map +1 -0
- package/dist/replay.d.ts +53 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/scene-types.d.ts +191 -0
- package/dist/scene-types.d.ts.map +1 -0
- package/dist/scene.d.ts +214 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/search-types.d.ts +211 -0
- package/dist/search-types.d.ts.map +1 -0
- package/dist/search.d.ts +251 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/sentiment-types.d.ts +108 -0
- package/dist/sentiment-types.d.ts.map +1 -0
- package/dist/sentiment.d.ts +247 -0
- package/dist/sentiment.d.ts.map +1 -0
- package/dist/signage.d.ts +102 -0
- package/dist/signage.d.ts.map +1 -0
- package/dist/slides.d.ts +69 -0
- package/dist/slides.d.ts.map +1 -0
- package/dist/studio-ai-types.d.ts +199 -0
- package/dist/studio-ai-types.d.ts.map +1 -0
- package/dist/studio-ai.d.ts +219 -0
- package/dist/studio-ai.d.ts.map +1 -0
- package/dist/studio-types.d.ts +268 -0
- package/dist/studio-types.d.ts.map +1 -0
- package/dist/studio.d.ts +235 -0
- package/dist/studio.d.ts.map +1 -0
- package/dist/telemetry.d.ts +77 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/transcribe-types.d.ts +154 -0
- package/dist/transcribe-types.d.ts.map +1 -0
- package/dist/transcribe.d.ts +219 -0
- package/dist/transcribe.d.ts.map +1 -0
- package/dist/usb.d.ts +65 -0
- package/dist/usb.d.ts.map +1 -0
- package/dist/vault.d.ts +122 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/voice-types.d.ts +107 -0
- package/dist/voice-types.d.ts.map +1 -0
- package/dist/voice.d.ts +178 -0
- package/dist/voice.d.ts.map +1 -0
- package/dist/zoom.d.ts +92 -0
- package/dist/zoom.d.ts.map +1 -0
- 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"}
|
package/dist/vault.d.ts
ADDED
|
@@ -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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"}
|