@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,59 @@
|
|
|
1
|
+
export interface WaveClientConfig {
|
|
2
|
+
/** API key for authentication */
|
|
3
|
+
apiKey: string;
|
|
4
|
+
/** Organization ID for tenant isolation */
|
|
5
|
+
organizationId?: string;
|
|
6
|
+
/** Base URL for the API (default: https://api.wave.online) */
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
/** Request timeout in milliseconds (default: 30000) */
|
|
9
|
+
timeout?: number;
|
|
10
|
+
/** Maximum retry attempts for failed requests (default: 3) */
|
|
11
|
+
maxRetries?: number;
|
|
12
|
+
/** Enable debug logging */
|
|
13
|
+
debug?: boolean;
|
|
14
|
+
/** Custom headers to include in all requests */
|
|
15
|
+
customHeaders?: Record<string, string>;
|
|
16
|
+
/** Optional telemetry configuration for OpenTelemetry integration */
|
|
17
|
+
telemetry?: TelemetryConfig;
|
|
18
|
+
}
|
|
19
|
+
export interface RequestOptions extends RequestInit {
|
|
20
|
+
/** Skip retry logic for this request */
|
|
21
|
+
noRetry?: boolean;
|
|
22
|
+
/** Custom timeout for this request */
|
|
23
|
+
timeout?: number;
|
|
24
|
+
/** Query parameters */
|
|
25
|
+
params?: Record<string, string | number | boolean | undefined>;
|
|
26
|
+
}
|
|
27
|
+
export interface WaveAPIErrorResponse {
|
|
28
|
+
error: {
|
|
29
|
+
code: string;
|
|
30
|
+
message: string;
|
|
31
|
+
details?: Record<string, unknown>;
|
|
32
|
+
};
|
|
33
|
+
request_id?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface WaveClientEvents {
|
|
36
|
+
'request.start': (url: string, method: string) => void;
|
|
37
|
+
'request.success': (url: string, method: string, duration: number) => void;
|
|
38
|
+
'request.error': (url: string, method: string, error: Error) => void;
|
|
39
|
+
'request.retry': (url: string, method: string, attempt: number, delay: number) => void;
|
|
40
|
+
'rate_limit.hit': (retryAfter: number) => void;
|
|
41
|
+
}
|
|
42
|
+
export interface PaginationParams {
|
|
43
|
+
limit?: number;
|
|
44
|
+
offset?: number;
|
|
45
|
+
cursor?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface PaginatedResponse<T> {
|
|
48
|
+
data: T[];
|
|
49
|
+
total: number;
|
|
50
|
+
has_more: boolean;
|
|
51
|
+
next_cursor?: string;
|
|
52
|
+
}
|
|
53
|
+
export type MediaType = 'video' | 'audio' | 'image';
|
|
54
|
+
export interface Timestamps {
|
|
55
|
+
created_at: string;
|
|
56
|
+
updated_at: string;
|
|
57
|
+
}
|
|
58
|
+
export type Metadata = Record<string, string | number | boolean>;
|
|
59
|
+
//# sourceMappingURL=client-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-types.d.ts","sourceRoot":"","sources":["../src/client-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,qEAAqE;IACrE,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AACD,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,wCAAwC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CAChE;AACD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvF,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACpD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - Base API Client
|
|
3
|
+
*
|
|
4
|
+
* Core HTTP client with authentication, rate limiting, and retry logic.
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'eventemitter3';
|
|
7
|
+
import type { TelemetryConfig } from './telemetry';
|
|
8
|
+
import type { WaveClientConfig, RequestOptions, WaveClientEvents } from './client-types';
|
|
9
|
+
/**
|
|
10
|
+
* SDK configuration options
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Request options for individual API calls
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* API error response structure
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* WAVE SDK Error class
|
|
20
|
+
*/
|
|
21
|
+
export declare class WaveError extends Error {
|
|
22
|
+
readonly code: string;
|
|
23
|
+
readonly statusCode: number;
|
|
24
|
+
readonly requestId?: string;
|
|
25
|
+
readonly details?: Record<string, unknown>;
|
|
26
|
+
readonly retryable: boolean;
|
|
27
|
+
constructor(message: string, code: string, statusCode: number, requestId?: string, details?: Record<string, unknown>);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Rate limit error with retry information
|
|
31
|
+
*/
|
|
32
|
+
export declare class RateLimitError extends WaveError {
|
|
33
|
+
readonly retryAfter: number;
|
|
34
|
+
constructor(message: string, retryAfter: number, requestId?: string);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* WAVE API Base Client
|
|
38
|
+
*/
|
|
39
|
+
export declare class WaveClient extends EventEmitter<WaveClientEvents> {
|
|
40
|
+
protected readonly config: Required<Omit<WaveClientConfig, 'customHeaders' | 'telemetry'>> & {
|
|
41
|
+
customHeaders: Record<string, string>;
|
|
42
|
+
telemetry?: TelemetryConfig;
|
|
43
|
+
};
|
|
44
|
+
constructor(config: WaveClientConfig);
|
|
45
|
+
/**
|
|
46
|
+
* Make a GET request
|
|
47
|
+
*/
|
|
48
|
+
get<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
49
|
+
/**
|
|
50
|
+
* Make a POST request
|
|
51
|
+
*/
|
|
52
|
+
post<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
53
|
+
/**
|
|
54
|
+
* Make a PUT request
|
|
55
|
+
*/
|
|
56
|
+
put<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
57
|
+
/**
|
|
58
|
+
* Make a PATCH request
|
|
59
|
+
*/
|
|
60
|
+
patch<T>(path: string, body?: unknown, options?: RequestOptions): Promise<T>;
|
|
61
|
+
/**
|
|
62
|
+
* Make a DELETE request
|
|
63
|
+
*/
|
|
64
|
+
delete<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
65
|
+
/**
|
|
66
|
+
* Make an API request with retry logic
|
|
67
|
+
*/
|
|
68
|
+
protected request<T>(path: string, options?: RequestOptions): Promise<T>;
|
|
69
|
+
/**
|
|
70
|
+
* Execute request with exponential backoff retry
|
|
71
|
+
*/
|
|
72
|
+
private executeWithRetry;
|
|
73
|
+
/**
|
|
74
|
+
* Fetch with timeout
|
|
75
|
+
*/
|
|
76
|
+
private fetchWithTimeout;
|
|
77
|
+
/**
|
|
78
|
+
* Build request headers
|
|
79
|
+
*/
|
|
80
|
+
private buildHeaders;
|
|
81
|
+
/**
|
|
82
|
+
* Parse error response
|
|
83
|
+
*/
|
|
84
|
+
/**
|
|
85
|
+
* Parse Retry-After header
|
|
86
|
+
*/
|
|
87
|
+
/**
|
|
88
|
+
* Calculate exponential backoff delay
|
|
89
|
+
*/
|
|
90
|
+
private calculateBackoff;
|
|
91
|
+
/**
|
|
92
|
+
* Sleep utility
|
|
93
|
+
*/
|
|
94
|
+
private sleep;
|
|
95
|
+
/**
|
|
96
|
+
* Log debug message
|
|
97
|
+
*/
|
|
98
|
+
protected log(message: string, ...args: unknown[]): void;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create a new WAVE client instance
|
|
102
|
+
*/
|
|
103
|
+
export declare function createClient(config: WaveClientConfig): WaveClient;
|
|
104
|
+
/**
|
|
105
|
+
* Standard pagination parameters
|
|
106
|
+
*/
|
|
107
|
+
/**
|
|
108
|
+
* Standard paginated response
|
|
109
|
+
*/
|
|
110
|
+
/**
|
|
111
|
+
* Media types supported by WAVE
|
|
112
|
+
*/
|
|
113
|
+
/**
|
|
114
|
+
* Standard timestamp fields
|
|
115
|
+
*/
|
|
116
|
+
/**
|
|
117
|
+
* Standard metadata object
|
|
118
|
+
*/
|
|
119
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type ClipStatus = 'pending' | 'processing' | 'ready' | 'failed' | 'deleted';
|
|
2
|
+
export type ClipExportFormat = 'mp4' | 'webm' | 'mov' | 'gif' | 'mp3' | 'wav';
|
|
3
|
+
export type ClipQualityPreset = 'low' | 'medium' | 'high' | 'source' | 'custom';
|
|
4
|
+
export interface ClipSource {
|
|
5
|
+
type: 'stream' | 'recording' | 'upload';
|
|
6
|
+
id: string;
|
|
7
|
+
start_time: number;
|
|
8
|
+
end_time: number;
|
|
9
|
+
}
|
|
10
|
+
export interface Clip extends Timestamps {
|
|
11
|
+
id: string;
|
|
12
|
+
organization_id: string;
|
|
13
|
+
title: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
source: ClipSource;
|
|
16
|
+
status: ClipStatus;
|
|
17
|
+
duration: number;
|
|
18
|
+
thumbnail_url?: string;
|
|
19
|
+
playback_url?: string;
|
|
20
|
+
download_url?: string;
|
|
21
|
+
file_size?: number;
|
|
22
|
+
width?: number;
|
|
23
|
+
height?: number;
|
|
24
|
+
frame_rate?: number;
|
|
25
|
+
bitrate?: number;
|
|
26
|
+
codec?: string;
|
|
27
|
+
tags?: string[];
|
|
28
|
+
metadata?: Metadata;
|
|
29
|
+
error?: string;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=clips-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clips-types.d.ts","sourceRoot":"","sources":["../src/clips-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AACd,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AACV,MAAM,MAAM,iBAAiB,GACzB,KAAK,GACL,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,IAAK,SAAQ,UAAU;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
package/dist/clips.d.ts
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - Clips API
|
|
3
|
+
*
|
|
4
|
+
* Create, manage, and export video clips from streams and recordings.
|
|
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, Timestamps, Metadata } from './client';
|
|
10
|
+
import type { ClipStatus, ClipExportFormat, ClipQualityPreset, ClipSource, Clip } from './clips-types';
|
|
11
|
+
/**
|
|
12
|
+
* Clip status
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Clip export format
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Clip quality preset
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Clip source reference
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Clip object
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Create clip request
|
|
28
|
+
*/
|
|
29
|
+
export interface CreateClipRequest {
|
|
30
|
+
title: string;
|
|
31
|
+
description?: string;
|
|
32
|
+
source: ClipSource;
|
|
33
|
+
quality?: ClipQualityPreset;
|
|
34
|
+
format?: ClipExportFormat;
|
|
35
|
+
tags?: string[];
|
|
36
|
+
metadata?: Metadata;
|
|
37
|
+
/** Enable AI-powered highlight detection */
|
|
38
|
+
auto_highlights?: boolean;
|
|
39
|
+
/** Webhook URL for status updates */
|
|
40
|
+
webhook_url?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Update clip request
|
|
44
|
+
*/
|
|
45
|
+
export interface UpdateClipRequest {
|
|
46
|
+
title?: string;
|
|
47
|
+
description?: string;
|
|
48
|
+
tags?: string[];
|
|
49
|
+
metadata?: Metadata;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* List clips filters
|
|
53
|
+
*/
|
|
54
|
+
export interface ListClipsParams extends PaginationParams {
|
|
55
|
+
status?: ClipStatus;
|
|
56
|
+
source_type?: 'stream' | 'recording' | 'upload';
|
|
57
|
+
source_id?: string;
|
|
58
|
+
tags?: string[];
|
|
59
|
+
created_after?: string;
|
|
60
|
+
created_before?: string;
|
|
61
|
+
order_by?: 'created_at' | 'duration' | 'title';
|
|
62
|
+
order?: 'asc' | 'desc';
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Export clip request
|
|
66
|
+
*/
|
|
67
|
+
export interface ExportClipRequest {
|
|
68
|
+
format: ClipExportFormat;
|
|
69
|
+
quality?: ClipQualityPreset;
|
|
70
|
+
/** Custom resolution (e.g., "1920x1080") */
|
|
71
|
+
resolution?: string;
|
|
72
|
+
/** Custom bitrate in kbps */
|
|
73
|
+
bitrate?: number;
|
|
74
|
+
/** Include audio */
|
|
75
|
+
include_audio?: boolean;
|
|
76
|
+
/** Add watermark */
|
|
77
|
+
watermark?: {
|
|
78
|
+
image_url: string;
|
|
79
|
+
position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center';
|
|
80
|
+
opacity?: number;
|
|
81
|
+
scale?: number;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Export job status
|
|
86
|
+
*/
|
|
87
|
+
export interface ClipExport extends Timestamps {
|
|
88
|
+
id: string;
|
|
89
|
+
clip_id: string;
|
|
90
|
+
status: 'pending' | 'processing' | 'ready' | 'failed';
|
|
91
|
+
format: ClipExportFormat;
|
|
92
|
+
download_url?: string;
|
|
93
|
+
file_size?: number;
|
|
94
|
+
expires_at?: string;
|
|
95
|
+
error?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Auto-highlight result
|
|
99
|
+
*/
|
|
100
|
+
export interface ClipHighlight {
|
|
101
|
+
start_time: number;
|
|
102
|
+
end_time: number;
|
|
103
|
+
score: number;
|
|
104
|
+
type: 'action' | 'speech' | 'emotion' | 'custom';
|
|
105
|
+
label?: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Clips API client
|
|
109
|
+
*
|
|
110
|
+
* All operations require appropriate permissions. Authorization is enforced
|
|
111
|
+
* server-side - the API returns 403 if the authenticated user lacks access.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* import { WaveClient } from '@wave/sdk';
|
|
116
|
+
* import { ClipsAPI } from '@wave/sdk/clips';
|
|
117
|
+
*
|
|
118
|
+
* const client = new WaveClient({ apiKey: 'your-api-key' });
|
|
119
|
+
* const clips = new ClipsAPI(client);
|
|
120
|
+
*
|
|
121
|
+
* // Create a clip from a stream
|
|
122
|
+
* const clip = await clips.create({
|
|
123
|
+
* title: 'Best Moment',
|
|
124
|
+
* source: {
|
|
125
|
+
* type: 'stream',
|
|
126
|
+
* id: 'stream_123',
|
|
127
|
+
* start_time: 120,
|
|
128
|
+
* end_time: 150,
|
|
129
|
+
* },
|
|
130
|
+
* });
|
|
131
|
+
*
|
|
132
|
+
* // Wait for processing
|
|
133
|
+
* const ready = await clips.waitForReady(clip.id);
|
|
134
|
+
* console.log('Clip ready:', ready.playback_url);
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export declare class ClipsAPI {
|
|
138
|
+
private readonly client;
|
|
139
|
+
private readonly basePath;
|
|
140
|
+
constructor(client: WaveClient);
|
|
141
|
+
/**
|
|
142
|
+
* Create a new clip
|
|
143
|
+
*
|
|
144
|
+
* Requires: clips:create permission
|
|
145
|
+
*/
|
|
146
|
+
create(request: CreateClipRequest): Promise<Clip>;
|
|
147
|
+
/**
|
|
148
|
+
* Get a clip by ID
|
|
149
|
+
*
|
|
150
|
+
* Requires: clips:read permission
|
|
151
|
+
*/
|
|
152
|
+
get(clipId: string): Promise<Clip>;
|
|
153
|
+
/**
|
|
154
|
+
* Update a clip
|
|
155
|
+
*
|
|
156
|
+
* Requires: clips:update permission
|
|
157
|
+
*/
|
|
158
|
+
update(clipId: string, request: UpdateClipRequest): Promise<Clip>;
|
|
159
|
+
/**
|
|
160
|
+
* Remove a clip
|
|
161
|
+
*
|
|
162
|
+
* Requires: clips:remove permission (server-side RBAC enforced)
|
|
163
|
+
*/
|
|
164
|
+
remove(clipId: string): Promise<void>;
|
|
165
|
+
/**
|
|
166
|
+
* List clips with optional filters
|
|
167
|
+
*
|
|
168
|
+
* Requires: clips:read permission
|
|
169
|
+
*/
|
|
170
|
+
list(params?: ListClipsParams): Promise<PaginatedResponse<Clip>>;
|
|
171
|
+
/**
|
|
172
|
+
* Export a clip to a different format
|
|
173
|
+
*
|
|
174
|
+
* Requires: clips:export permission
|
|
175
|
+
*/
|
|
176
|
+
exportClip(clipId: string, request: ExportClipRequest): Promise<ClipExport>;
|
|
177
|
+
/**
|
|
178
|
+
* Get export job status
|
|
179
|
+
*
|
|
180
|
+
* Requires: clips:read permission
|
|
181
|
+
*/
|
|
182
|
+
getExport(clipId: string, exportId: string): Promise<ClipExport>;
|
|
183
|
+
/**
|
|
184
|
+
* List all exports for a clip
|
|
185
|
+
*
|
|
186
|
+
* Requires: clips:read permission
|
|
187
|
+
*/
|
|
188
|
+
listExports(clipId: string, params?: PaginationParams): Promise<PaginatedResponse<ClipExport>>;
|
|
189
|
+
/**
|
|
190
|
+
* Detect highlights in source content
|
|
191
|
+
*
|
|
192
|
+
* Requires: clips:analyze permission
|
|
193
|
+
*/
|
|
194
|
+
detectHighlights(sourceType: 'stream' | 'recording', sourceId: string, options?: {
|
|
195
|
+
types?: ('action' | 'speech' | 'emotion')[];
|
|
196
|
+
min_score?: number;
|
|
197
|
+
max_results?: number;
|
|
198
|
+
}): Promise<ClipHighlight[]>;
|
|
199
|
+
/**
|
|
200
|
+
* Generate clips from detected highlights
|
|
201
|
+
*
|
|
202
|
+
* Requires: clips:create permission
|
|
203
|
+
*/
|
|
204
|
+
createFromHighlights(sourceType: 'stream' | 'recording', sourceId: string, options?: {
|
|
205
|
+
min_score?: number;
|
|
206
|
+
max_clips?: number;
|
|
207
|
+
title_prefix?: string;
|
|
208
|
+
tags?: string[];
|
|
209
|
+
}): Promise<Clip[]>;
|
|
210
|
+
/**
|
|
211
|
+
* Wait for a clip to be ready
|
|
212
|
+
*/
|
|
213
|
+
waitForReady(clipId: string, options?: {
|
|
214
|
+
pollInterval?: number;
|
|
215
|
+
timeout?: number;
|
|
216
|
+
onProgress?: (clip: Clip) => void;
|
|
217
|
+
}): Promise<Clip>;
|
|
218
|
+
/**
|
|
219
|
+
* Wait for an export to be ready
|
|
220
|
+
*/
|
|
221
|
+
waitForExport(clipId: string, exportId: string, options?: {
|
|
222
|
+
pollInterval?: number;
|
|
223
|
+
timeout?: number;
|
|
224
|
+
}): Promise<ClipExport>;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Create a Clips API instance
|
|
228
|
+
*/
|
|
229
|
+
export declare function createClipsAPI(client: WaveClient): ClipsAPI;
|
|
230
|
+
//# sourceMappingURL=clips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clips.d.ts","sourceRoot":"","sources":["../src/clips.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE Cloud Switcher SDK
|
|
3
|
+
*
|
|
4
|
+
* Control cloud video switchers programmatically.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import type { WaveClient } from './client';
|
|
9
|
+
export interface SwitcherInstance {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly status: 'idle' | 'live' | 'error';
|
|
13
|
+
readonly inputCount: number;
|
|
14
|
+
readonly outputCount: number;
|
|
15
|
+
readonly resolution: '720p' | '1080p' | '4k';
|
|
16
|
+
readonly frameRate: 30 | 60;
|
|
17
|
+
readonly tier: 'starter' | 'pro' | 'enterprise';
|
|
18
|
+
readonly createdAt: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SwitcherSource {
|
|
21
|
+
readonly id: string;
|
|
22
|
+
readonly type: 'webrtc' | 'srt' | 'ndi' | 'rtmp' | 'hls';
|
|
23
|
+
readonly label: string;
|
|
24
|
+
readonly status: 'connecting' | 'active' | 'error' | 'disconnected';
|
|
25
|
+
}
|
|
26
|
+
export interface TransitionOptions {
|
|
27
|
+
readonly type: 'cut' | 'mix' | 'wipe' | 'dip' | 'dve';
|
|
28
|
+
readonly durationMs?: number;
|
|
29
|
+
readonly wipePattern?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface CreateSwitcherOptions {
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly resolution?: '720p' | '1080p' | '4k';
|
|
34
|
+
readonly frameRate?: 30 | 60;
|
|
35
|
+
}
|
|
36
|
+
export interface AddSourceOptions {
|
|
37
|
+
readonly type: 'webrtc' | 'srt' | 'ndi' | 'rtmp';
|
|
38
|
+
readonly label: string;
|
|
39
|
+
readonly config: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
export interface AddOutputOptions {
|
|
42
|
+
readonly type: 'rtmp' | 'srt' | 'hls' | 'recording';
|
|
43
|
+
readonly config: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
export declare class CloudSwitcherAPI {
|
|
46
|
+
private readonly client;
|
|
47
|
+
private readonly basePath;
|
|
48
|
+
constructor(client: WaveClient);
|
|
49
|
+
create(options: CreateSwitcherOptions): Promise<SwitcherInstance>;
|
|
50
|
+
get(switcherId: string): Promise<SwitcherInstance>;
|
|
51
|
+
list(): Promise<SwitcherInstance[]>;
|
|
52
|
+
remove(switcherId: string): Promise<void>;
|
|
53
|
+
addSource(switcherId: string, options: AddSourceOptions): Promise<SwitcherSource>;
|
|
54
|
+
removeSource(switcherId: string, sourceId: string): Promise<void>;
|
|
55
|
+
switchTo(switcherId: string, sourceId: string): Promise<void>;
|
|
56
|
+
transition(switcherId: string, options: TransitionOptions): Promise<void>;
|
|
57
|
+
addOutput(switcherId: string, options: AddOutputOptions): Promise<{
|
|
58
|
+
id: string;
|
|
59
|
+
}>;
|
|
60
|
+
startStreaming(switcherId: string, outputId: string): Promise<void>;
|
|
61
|
+
stopStreaming(switcherId: string, outputId: string): Promise<void>;
|
|
62
|
+
startRecording(switcherId: string): Promise<void>;
|
|
63
|
+
stopRecording(switcherId: string): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
export declare function createCloudSwitcherAPI(client: WaveClient): CloudSwitcherAPI;
|
|
66
|
+
//# sourceMappingURL=cloud-switcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-switcher.d.ts","sourceRoot":"","sources":["../src/cloud-switcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;CACrE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,MAAM,EAAE,UAAU;IAIxB,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIjE,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIlD,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAInC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjF,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjF,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAE3E"}
|