@wave-av/sdk 2.0.3 → 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.
Files changed (127) hide show
  1. package/CHANGELOG.md +9 -50
  2. package/dist/audience.d.ts +105 -0
  3. package/dist/audience.d.ts.map +1 -0
  4. package/dist/billing-types.d.ts +39 -0
  5. package/dist/billing-types.d.ts.map +1 -0
  6. package/dist/billing-types.js +18 -0
  7. package/dist/billing-types.mjs +0 -0
  8. package/dist/billing.d.ts +69 -0
  9. package/dist/billing.d.ts.map +1 -0
  10. package/dist/billing.js +139 -0
  11. package/dist/billing.mjs +9 -0
  12. package/dist/camera-control.d.ts +55 -0
  13. package/dist/camera-control.d.ts.map +1 -0
  14. package/dist/captions-types.d.ts +119 -0
  15. package/dist/captions-types.d.ts.map +1 -0
  16. package/dist/captions.d.ts +218 -0
  17. package/dist/captions.d.ts.map +1 -0
  18. package/dist/chapters-types.d.ts +87 -0
  19. package/dist/chapters-types.d.ts.map +1 -0
  20. package/dist/chapters.d.ts +207 -0
  21. package/dist/chapters.d.ts.map +1 -0
  22. package/dist/chunk-I3V47I4W.mjs +114 -0
  23. package/dist/client-types.d.ts +59 -0
  24. package/dist/client-types.d.ts.map +1 -0
  25. package/dist/client.d.ts +119 -0
  26. package/dist/client.d.ts.map +1 -0
  27. package/dist/clips-types.d.ts +31 -0
  28. package/dist/clips-types.d.ts.map +1 -0
  29. package/dist/clips.d.ts +230 -0
  30. package/dist/clips.d.ts.map +1 -0
  31. package/dist/cloud-switcher.d.ts +66 -0
  32. package/dist/cloud-switcher.d.ts.map +1 -0
  33. package/dist/collab-types.d.ts +205 -0
  34. package/dist/collab-types.d.ts.map +1 -0
  35. package/dist/collab.d.ts +227 -0
  36. package/dist/collab.d.ts.map +1 -0
  37. package/dist/connect.d.ts +89 -0
  38. package/dist/connect.d.ts.map +1 -0
  39. package/dist/creator.d.ts +110 -0
  40. package/dist/creator.d.ts.map +1 -0
  41. package/dist/desktop.d.ts +96 -0
  42. package/dist/desktop.d.ts.map +1 -0
  43. package/dist/distribution.d.ts +93 -0
  44. package/dist/distribution.d.ts.map +1 -0
  45. package/dist/drm.d.ts +88 -0
  46. package/dist/drm.d.ts.map +1 -0
  47. package/dist/edge.d.ts +113 -0
  48. package/dist/edge.d.ts.map +1 -0
  49. package/dist/editor-types.d.ts +237 -0
  50. package/dist/editor-types.d.ts.map +1 -0
  51. package/dist/editor.d.ts +207 -0
  52. package/dist/editor.d.ts.map +1 -0
  53. package/dist/fleet.d.ts +208 -0
  54. package/dist/fleet.d.ts.map +1 -0
  55. package/dist/ghost.d.ts +214 -0
  56. package/dist/ghost.d.ts.map +1 -0
  57. package/dist/index.d.ts +131 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +114 -0
  60. package/dist/index.mjs +49 -43
  61. package/dist/marketplace.d.ts +91 -0
  62. package/dist/marketplace.d.ts.map +1 -0
  63. package/dist/mesh.d.ts +238 -0
  64. package/dist/mesh.d.ts.map +1 -0
  65. package/dist/notifications.d.ts +83 -0
  66. package/dist/notifications.d.ts.map +1 -0
  67. package/dist/phone-types.d.ts +111 -0
  68. package/dist/phone-types.d.ts.map +1 -0
  69. package/dist/phone.d.ts +235 -0
  70. package/dist/phone.d.ts.map +1 -0
  71. package/dist/pipeline-types.d.ts +188 -0
  72. package/dist/pipeline-types.d.ts.map +1 -0
  73. package/dist/pipeline.d.ts +224 -0
  74. package/dist/pipeline.d.ts.map +1 -0
  75. package/dist/podcast.d.ts +114 -0
  76. package/dist/podcast.d.ts.map +1 -0
  77. package/dist/prism.d.ts +133 -0
  78. package/dist/prism.d.ts.map +1 -0
  79. package/dist/prompter.d.ts +185 -0
  80. package/dist/prompter.d.ts.map +1 -0
  81. package/dist/pulse.d.ts +157 -0
  82. package/dist/pulse.d.ts.map +1 -0
  83. package/dist/qr.d.ts +83 -0
  84. package/dist/qr.d.ts.map +1 -0
  85. package/dist/replay.d.ts +53 -0
  86. package/dist/replay.d.ts.map +1 -0
  87. package/dist/scene-types.d.ts +191 -0
  88. package/dist/scene-types.d.ts.map +1 -0
  89. package/dist/scene.d.ts +214 -0
  90. package/dist/scene.d.ts.map +1 -0
  91. package/dist/search-types.d.ts +211 -0
  92. package/dist/search-types.d.ts.map +1 -0
  93. package/dist/search.d.ts +251 -0
  94. package/dist/search.d.ts.map +1 -0
  95. package/dist/sentiment-types.d.ts +108 -0
  96. package/dist/sentiment-types.d.ts.map +1 -0
  97. package/dist/sentiment.d.ts +247 -0
  98. package/dist/sentiment.d.ts.map +1 -0
  99. package/dist/signage.d.ts +102 -0
  100. package/dist/signage.d.ts.map +1 -0
  101. package/dist/slides.d.ts +69 -0
  102. package/dist/slides.d.ts.map +1 -0
  103. package/dist/studio-ai-types.d.ts +199 -0
  104. package/dist/studio-ai-types.d.ts.map +1 -0
  105. package/dist/studio-ai.d.ts +219 -0
  106. package/dist/studio-ai.d.ts.map +1 -0
  107. package/dist/studio-types.d.ts +268 -0
  108. package/dist/studio-types.d.ts.map +1 -0
  109. package/dist/studio.d.ts +235 -0
  110. package/dist/studio.d.ts.map +1 -0
  111. package/dist/telemetry.d.ts +77 -0
  112. package/dist/telemetry.d.ts.map +1 -0
  113. package/dist/transcribe-types.d.ts +154 -0
  114. package/dist/transcribe-types.d.ts.map +1 -0
  115. package/dist/transcribe.d.ts +219 -0
  116. package/dist/transcribe.d.ts.map +1 -0
  117. package/dist/usb.d.ts +65 -0
  118. package/dist/usb.d.ts.map +1 -0
  119. package/dist/vault.d.ts +122 -0
  120. package/dist/vault.d.ts.map +1 -0
  121. package/dist/voice-types.d.ts +107 -0
  122. package/dist/voice-types.d.ts.map +1 -0
  123. package/dist/voice.d.ts +178 -0
  124. package/dist/voice.d.ts.map +1 -0
  125. package/dist/zoom.d.ts +92 -0
  126. package/dist/zoom.d.ts.map +1 -0
  127. package/package.json +86 -86
@@ -0,0 +1,107 @@
1
+ export type VoiceModelType = 'standard' | 'neural' | 'cloned' | 'professional';
2
+ export type VoiceGender = 'male' | 'female' | 'neutral';
3
+ export type AudioFormat = 'mp3' | 'wav' | 'ogg' | 'flac' | 'pcm';
4
+ export interface Voice extends Timestamps {
5
+ id: string;
6
+ organization_id?: string;
7
+ name: string;
8
+ description?: string;
9
+ model_type: VoiceModelType;
10
+ gender: VoiceGender;
11
+ language: string;
12
+ locale: string;
13
+ preview_url?: string;
14
+ is_public: boolean;
15
+ is_cloned: boolean;
16
+ tags?: string[];
17
+ metadata?: Metadata;
18
+ }
19
+ export interface SynthesizeRequest {
20
+ /** Text to convert to speech */
21
+ text: string;
22
+ /** Voice ID to use */
23
+ voice_id: string;
24
+ /** Audio output format */
25
+ format?: AudioFormat;
26
+ /** Sample rate in Hz */
27
+ sample_rate?: 16000 | 22050 | 24000 | 44100 | 48000;
28
+ /** Speaking speed (0.5 - 2.0) */
29
+ speed?: number;
30
+ /** Pitch adjustment (-20 to 20 semitones) */
31
+ pitch?: number;
32
+ /** Volume level (0.0 - 1.0) */
33
+ volume?: number;
34
+ /** Enable SSML parsing */
35
+ ssml?: boolean;
36
+ /** Stability (0.0 - 1.0, lower = more expressive) */
37
+ stability?: number;
38
+ /** Similarity boost (0.0 - 1.0) */
39
+ similarity_boost?: number;
40
+ /** Style exaggeration (0.0 - 1.0) */
41
+ style?: number;
42
+ /** Webhook URL for completion notification */
43
+ webhook_url?: string;
44
+ }
45
+ export interface SynthesisResult extends Timestamps {
46
+ id: string;
47
+ organization_id: string;
48
+ voice_id: string;
49
+ status: 'pending' | 'processing' | 'ready' | 'failed';
50
+ text: string;
51
+ text_length: number;
52
+ audio_url?: string;
53
+ duration?: number;
54
+ format: AudioFormat;
55
+ sample_rate: number;
56
+ file_size?: number;
57
+ error?: string;
58
+ }
59
+ export interface CloneVoiceRequest {
60
+ name: string;
61
+ description?: string;
62
+ /** Audio sample URLs (minimum 1 minute of clean audio) */
63
+ sample_urls: string[];
64
+ /** Optional text transcripts for samples */
65
+ transcripts?: string[];
66
+ /** Target language */
67
+ language?: string;
68
+ /** Voice gender */
69
+ gender?: VoiceGender;
70
+ /** Additional training options */
71
+ options?: {
72
+ /** Remove background noise from samples */
73
+ denoise?: boolean;
74
+ /** Number of training epochs */
75
+ epochs?: number;
76
+ /** Fine-tuning quality */
77
+ quality?: 'standard' | 'high' | 'professional';
78
+ };
79
+ tags?: string[];
80
+ metadata?: Metadata;
81
+ }
82
+ export interface VoiceCloneJob extends Timestamps {
83
+ id: string;
84
+ organization_id: string;
85
+ voice_id?: string;
86
+ status: 'pending' | 'processing' | 'training' | 'ready' | 'failed';
87
+ progress: number;
88
+ name: string;
89
+ sample_count: number;
90
+ total_duration: number;
91
+ error?: string;
92
+ }
93
+ export interface ListVoicesParams extends PaginationParams {
94
+ model_type?: VoiceModelType;
95
+ gender?: VoiceGender;
96
+ language?: string;
97
+ is_public?: boolean;
98
+ is_cloned?: boolean;
99
+ tags?: string[];
100
+ }
101
+ export interface VoiceSettings {
102
+ stability: number;
103
+ similarity_boost: number;
104
+ style?: number;
105
+ use_speaker_boost?: boolean;
106
+ }
107
+ //# sourceMappingURL=voice-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-types.d.ts","sourceRoot":"","sources":["../src/voice-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * WAVE SDK - Voice API
3
+ *
4
+ * Text-to-speech and voice cloning capabilities.
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
+ import type { Voice, SynthesizeRequest, SynthesisResult, CloneVoiceRequest, VoiceCloneJob, ListVoicesParams, VoiceSettings } from './voice-types';
11
+ /**
12
+ * Voice model type
13
+ */
14
+ /**
15
+ * Voice gender
16
+ */
17
+ /**
18
+ * Audio format
19
+ */
20
+ /**
21
+ * Voice definition
22
+ */
23
+ /**
24
+ * Speech synthesis request
25
+ */
26
+ /**
27
+ * Speech synthesis result
28
+ */
29
+ /**
30
+ * Voice cloning request
31
+ */
32
+ /**
33
+ * Voice clone job
34
+ */
35
+ /**
36
+ * List voices params
37
+ */
38
+ /**
39
+ * Voice settings
40
+ */
41
+ /**
42
+ * Voice API client
43
+ */
44
+ export declare class VoiceAPI {
45
+ private readonly client;
46
+ private readonly basePath;
47
+ constructor(client: WaveClient);
48
+ /**
49
+ * List available voices
50
+ *
51
+ * Requires: voice:read permission
52
+ */
53
+ listVoices(params?: ListVoicesParams): Promise<PaginatedResponse<Voice>>;
54
+ /**
55
+ * Get a voice by ID
56
+ *
57
+ * Requires: voice:read permission
58
+ */
59
+ getVoice(voiceId: string): Promise<Voice>;
60
+ /**
61
+ * Get default voice settings for a voice
62
+ *
63
+ * Requires: voice:read permission
64
+ */
65
+ getVoiceSettings(voiceId: string): Promise<VoiceSettings>;
66
+ /**
67
+ * Update voice settings for a cloned voice
68
+ *
69
+ * Requires: voice:update permission
70
+ */
71
+ updateVoiceSettings(voiceId: string, settings: Partial<VoiceSettings>): Promise<VoiceSettings>;
72
+ /**
73
+ * Remove a cloned voice
74
+ *
75
+ * Requires: voice:remove permission (server-side RBAC enforced)
76
+ */
77
+ removeVoice(voiceId: string): Promise<void>;
78
+ /**
79
+ * Synthesize text to speech
80
+ *
81
+ * Requires: voice:synthesize permission
82
+ */
83
+ synthesize(request: SynthesizeRequest): Promise<SynthesisResult>;
84
+ /**
85
+ * Get synthesis job status
86
+ *
87
+ * Requires: voice:read permission
88
+ */
89
+ getSynthesis(synthesisId: string): Promise<SynthesisResult>;
90
+ /**
91
+ * List synthesis jobs
92
+ *
93
+ * Requires: voice:read permission
94
+ */
95
+ listSyntheses(params?: PaginationParams & {
96
+ voice_id?: string;
97
+ status?: 'pending' | 'processing' | 'ready' | 'failed';
98
+ }): Promise<PaginatedResponse<SynthesisResult>>;
99
+ /**
100
+ * Synthesize speech and stream the audio
101
+ *
102
+ * Requires: voice:synthesize permission
103
+ *
104
+ * @returns ReadableStream of audio data
105
+ */
106
+ synthesizeStream(request: Omit<SynthesizeRequest, 'webhook_url'>): Promise<ReadableStream<Uint8Array>>;
107
+ /**
108
+ * Wait for synthesis to complete
109
+ */
110
+ waitForSynthesis(synthesisId: string, options?: {
111
+ pollInterval?: number;
112
+ timeout?: number;
113
+ onProgress?: (synthesis: SynthesisResult) => void;
114
+ }): Promise<SynthesisResult>;
115
+ /**
116
+ * Start voice cloning job
117
+ *
118
+ * Requires: voice:clone permission
119
+ */
120
+ cloneVoice(request: CloneVoiceRequest): Promise<VoiceCloneJob>;
121
+ /**
122
+ * Get voice clone job status
123
+ *
124
+ * Requires: voice:read permission
125
+ */
126
+ getCloneJob(jobId: string): Promise<VoiceCloneJob>;
127
+ /**
128
+ * List voice clone jobs
129
+ *
130
+ * Requires: voice:read permission
131
+ */
132
+ listCloneJobs(params?: PaginationParams & {
133
+ status?: 'pending' | 'processing' | 'training' | 'ready' | 'failed';
134
+ }): Promise<PaginatedResponse<VoiceCloneJob>>;
135
+ /**
136
+ * Cancel a voice clone job
137
+ *
138
+ * Requires: voice:clone permission
139
+ */
140
+ cancelCloneJob(jobId: string): Promise<VoiceCloneJob>;
141
+ /**
142
+ * Wait for voice cloning to complete
143
+ */
144
+ waitForClone(jobId: string, options?: {
145
+ pollInterval?: number;
146
+ timeout?: number;
147
+ onProgress?: (job: VoiceCloneJob) => void;
148
+ }): Promise<VoiceCloneJob>;
149
+ /**
150
+ * Estimate synthesis cost
151
+ *
152
+ * Requires: voice:read permission
153
+ */
154
+ estimateCost(text: string, voiceId: string): Promise<{
155
+ characters: number;
156
+ estimated_duration: number;
157
+ estimated_cost: number;
158
+ currency: string;
159
+ }>;
160
+ /**
161
+ * Get supported languages
162
+ *
163
+ * Requires: voice:read permission
164
+ */
165
+ getSupportedLanguages(): Promise<Array<{
166
+ code: string;
167
+ name: string;
168
+ locales: Array<{
169
+ code: string;
170
+ name: string;
171
+ }>;
172
+ }>>;
173
+ }
174
+ /**
175
+ * Create a Voice API instance
176
+ */
177
+ export declare function createVoiceAPI(client: WaveClient): VoiceAPI;
178
+ //# sourceMappingURL=voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../src/voice.ts"],"names":[],"mappings":"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"}
package/dist/zoom.d.ts ADDED
@@ -0,0 +1,92 @@
1
+ /**
2
+ * WAVE SDK - Zoom API
3
+ *
4
+ * Zoom meeting, Zoom Room, and RTMS integration.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export interface ZoomMeeting {
8
+ id: string;
9
+ topic: string;
10
+ type: "instant" | "scheduled" | "recurring";
11
+ status: "waiting" | "started" | "ended";
12
+ start_url: string;
13
+ join_url: string;
14
+ host_id: string;
15
+ duration_minutes: number;
16
+ participants_count: number;
17
+ recording_enabled: boolean;
18
+ rtms_enabled: boolean;
19
+ created_at: string;
20
+ }
21
+ export interface ZoomRoom {
22
+ id: string;
23
+ name: string;
24
+ location?: string;
25
+ status: "online" | "offline" | "in_meeting";
26
+ account_id: string;
27
+ device_ip?: string;
28
+ firmware_version?: string;
29
+ camera_count: number;
30
+ microphone_count: number;
31
+ }
32
+ export interface ZoomRecording extends Timestamps {
33
+ id: string;
34
+ meeting_id: string;
35
+ type: "cloud" | "rtms";
36
+ status: "processing" | "completed" | "failed";
37
+ file_url?: string;
38
+ duration_seconds: number;
39
+ file_size_bytes: number;
40
+ }
41
+ export interface CreateMeetingRequest {
42
+ topic: string;
43
+ type?: "instant" | "scheduled" | "recurring";
44
+ duration_minutes?: number;
45
+ start_time?: string;
46
+ recording_enabled?: boolean;
47
+ rtms_enabled?: boolean;
48
+ password?: string;
49
+ }
50
+ export interface ListMeetingsParams extends PaginationParams {
51
+ status?: string;
52
+ type?: string;
53
+ host_id?: string;
54
+ }
55
+ /**
56
+ * Zoom meeting, Zoom Room, and RTMS streaming integration.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const meeting = await wave.zoom.createMeeting({ topic: "Team Standup" });
61
+ * await wave.zoom.startRTMS(meeting.id, { stream_url: "rtmp://...", stream_key: "key" });
62
+ * const rooms = await wave.zoom.listRooms();
63
+ * ```
64
+ */
65
+ export declare class ZoomAPI {
66
+ private readonly client;
67
+ private readonly basePath;
68
+ constructor(client: WaveClient);
69
+ createMeeting(request: CreateMeetingRequest): Promise<ZoomMeeting>;
70
+ getMeeting(meetingId: string): Promise<ZoomMeeting>;
71
+ endMeeting(meetingId: string): Promise<void>;
72
+ listMeetings(params?: ListMeetingsParams): Promise<PaginatedResponse<ZoomMeeting>>;
73
+ listRooms(params?: PaginationParams): Promise<PaginatedResponse<ZoomRoom>>;
74
+ getRoomStatus(roomId: string): Promise<ZoomRoom>;
75
+ getRecording(recordingId: string): Promise<ZoomRecording>;
76
+ listRecordings(meetingId?: string, params?: PaginationParams): Promise<PaginatedResponse<ZoomRecording>>;
77
+ startRTMS(meetingId: string, config: {
78
+ stream_url: string;
79
+ stream_key: string;
80
+ }): Promise<{
81
+ status: string;
82
+ }>;
83
+ stopRTMS(meetingId: string): Promise<{
84
+ status: string;
85
+ }>;
86
+ getRTMSStatus(meetingId: string): Promise<{
87
+ status: string;
88
+ stream_url?: string;
89
+ }>;
90
+ }
91
+ export declare function createZoomAPI(client: WaveClient): ZoomAPI;
92
+ //# sourceMappingURL=zoom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../src/zoom.ts"],"names":[],"mappings":"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"}