@wave-av/sdk 2.0.0 → 2.0.1
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 +104 -0
- package/dist/audience.d.ts.map +1 -0
- package/dist/camera-control.d.ts +54 -0
- package/dist/camera-control.d.ts.map +1 -0
- package/dist/captions.d.ts +362 -0
- package/dist/captions.d.ts.map +1 -0
- package/dist/chapters.d.ts +315 -0
- package/dist/chapters.d.ts.map +1 -0
- package/dist/client.d.ts +191 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/clips.d.ts +258 -0
- package/dist/clips.d.ts.map +1 -0
- package/dist/cloud-switcher.d.ts +65 -0
- package/dist/cloud-switcher.d.ts.map +1 -0
- package/dist/collab-types.d.ts +204 -0
- package/dist/collab-types.d.ts.map +1 -0
- package/dist/collab.d.ts +226 -0
- package/dist/collab.d.ts.map +1 -0
- package/dist/connect.d.ts +88 -0
- package/dist/connect.d.ts.map +1 -0
- package/dist/creator.d.ts +109 -0
- package/dist/creator.d.ts.map +1 -0
- package/dist/desktop.d.ts +95 -0
- package/dist/desktop.d.ts.map +1 -0
- package/dist/distribution.d.ts +92 -0
- package/dist/distribution.d.ts.map +1 -0
- package/dist/drm.d.ts +87 -0
- package/dist/drm.d.ts.map +1 -0
- package/dist/edge.d.ts +112 -0
- package/dist/edge.d.ts.map +1 -0
- package/dist/editor-types.d.ts +236 -0
- package/dist/editor-types.d.ts.map +1 -0
- package/dist/editor.d.ts +206 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/fleet.d.ts +207 -0
- package/dist/fleet.d.ts.map +1 -0
- package/dist/ghost.d.ts +213 -0
- package/dist/ghost.d.ts.map +1 -0
- package/dist/index.d.ts +144 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/marketplace.d.ts +90 -0
- package/dist/marketplace.d.ts.map +1 -0
- package/dist/mesh.d.ts +237 -0
- package/dist/mesh.d.ts.map +1 -0
- package/dist/notifications.d.ts +82 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/phone.d.ts +369 -0
- package/dist/phone.d.ts.map +1 -0
- package/dist/pipeline.d.ts +409 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/podcast.d.ts +113 -0
- package/dist/podcast.d.ts.map +1 -0
- package/dist/prism.d.ts +132 -0
- package/dist/prism.d.ts.map +1 -0
- package/dist/prompter.d.ts +184 -0
- package/dist/prompter.d.ts.map +1 -0
- package/dist/pulse.d.ts +156 -0
- package/dist/pulse.d.ts.map +1 -0
- package/dist/qr.d.ts +82 -0
- package/dist/qr.d.ts.map +1 -0
- package/dist/replay.d.ts +52 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/scene-types.d.ts +190 -0
- package/dist/scene-types.d.ts.map +1 -0
- package/dist/scene.d.ts +213 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/search-types.d.ts +210 -0
- package/dist/search-types.d.ts.map +1 -0
- package/dist/search.d.ts +250 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/sentiment.d.ts +378 -0
- package/dist/sentiment.d.ts.map +1 -0
- package/dist/signage.d.ts +101 -0
- package/dist/signage.d.ts.map +1 -0
- package/dist/slides.d.ts +68 -0
- package/dist/slides.d.ts.map +1 -0
- package/dist/studio-ai-types.d.ts +198 -0
- package/dist/studio-ai-types.d.ts.map +1 -0
- package/dist/studio-ai.d.ts +218 -0
- package/dist/studio-ai.d.ts.map +1 -0
- package/dist/studio-types.d.ts +267 -0
- package/dist/studio-types.d.ts.map +1 -0
- package/dist/studio.d.ts +234 -0
- package/dist/studio.d.ts.map +1 -0
- package/dist/telemetry.d.ts +76 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/transcribe-types.d.ts +153 -0
- package/dist/transcribe-types.d.ts.map +1 -0
- package/dist/transcribe.d.ts +218 -0
- package/dist/transcribe.d.ts.map +1 -0
- package/dist/usb.d.ts +64 -0
- package/dist/usb.d.ts.map +1 -0
- package/dist/vault.d.ts +121 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/voice.d.ts +307 -0
- package/dist/voice.d.ts.map +1 -0
- package/dist/zoom.d.ts +91 -0
- package/dist/zoom.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/drm.d.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - DRM API
|
|
3
|
+
*
|
|
4
|
+
* Digital Rights Management: content protection with Widevine, FairPlay, and PlayReady.
|
|
5
|
+
*/
|
|
6
|
+
import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
|
|
7
|
+
export type DRMProvider = "widevine" | "fairplay" | "playready";
|
|
8
|
+
export type LicenseStatus = "active" | "expired" | "revoked";
|
|
9
|
+
export interface DRMPolicy extends Timestamps {
|
|
10
|
+
id: string;
|
|
11
|
+
organization_id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
providers: DRMProvider[];
|
|
14
|
+
allow_offline: boolean;
|
|
15
|
+
offline_duration_seconds?: number;
|
|
16
|
+
max_devices: number;
|
|
17
|
+
output_protection: "none" | "hdcp_1" | "hdcp_2";
|
|
18
|
+
security_level: "sw" | "hw";
|
|
19
|
+
persistent_license: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface DRMLicense extends Timestamps {
|
|
22
|
+
id: string;
|
|
23
|
+
policy_id: string;
|
|
24
|
+
asset_id: string;
|
|
25
|
+
user_id: string;
|
|
26
|
+
provider: DRMProvider;
|
|
27
|
+
status: LicenseStatus;
|
|
28
|
+
device_id?: string;
|
|
29
|
+
expires_at?: string;
|
|
30
|
+
playback_count: number;
|
|
31
|
+
}
|
|
32
|
+
export interface DRMCertificate {
|
|
33
|
+
provider: DRMProvider;
|
|
34
|
+
certificate: string;
|
|
35
|
+
expires_at: string;
|
|
36
|
+
}
|
|
37
|
+
export interface CreatePolicyRequest {
|
|
38
|
+
name: string;
|
|
39
|
+
providers: DRMProvider[];
|
|
40
|
+
allow_offline?: boolean;
|
|
41
|
+
offline_duration_seconds?: number;
|
|
42
|
+
max_devices?: number;
|
|
43
|
+
output_protection?: "none" | "hdcp_1" | "hdcp_2";
|
|
44
|
+
security_level?: "sw" | "hw";
|
|
45
|
+
persistent_license?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface ListPoliciesParams extends PaginationParams {
|
|
48
|
+
provider?: DRMProvider;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Digital Rights Management for content protection with Widevine, FairPlay, and PlayReady.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const policy = await wave.drm.createPolicy({ name: 'Premium', providers: ['widevine', 'fairplay'], max_devices: 3 });
|
|
56
|
+
* const cert = await wave.drm.getCertificate('fairplay');
|
|
57
|
+
* const license = await wave.drm.issueLicense(assetId, policyId);
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare class DrmAPI {
|
|
61
|
+
private readonly client;
|
|
62
|
+
private readonly basePath;
|
|
63
|
+
constructor(client: WaveClient);
|
|
64
|
+
/** Create a DRM policy. */
|
|
65
|
+
createPolicy(request: CreatePolicyRequest): Promise<DRMPolicy>;
|
|
66
|
+
/** Get a DRM policy by ID. */
|
|
67
|
+
getPolicy(policyId: string): Promise<DRMPolicy>;
|
|
68
|
+
/** List DRM policies. */
|
|
69
|
+
listPolicies(params?: ListPoliciesParams): Promise<PaginatedResponse<DRMPolicy>>;
|
|
70
|
+
/** Update a DRM policy. */
|
|
71
|
+
updatePolicy(policyId: string, updates: Partial<CreatePolicyRequest>): Promise<DRMPolicy>;
|
|
72
|
+
/** Delete a DRM policy. */
|
|
73
|
+
removePolicy(policyId: string): Promise<void>;
|
|
74
|
+
/** Get a DRM certificate for a provider. */
|
|
75
|
+
getCertificate(provider: DRMProvider): Promise<DRMCertificate>;
|
|
76
|
+
/** Issue a license for an asset. */
|
|
77
|
+
issueLicense(assetId: string, policyId: string, deviceId?: string): Promise<DRMLicense>;
|
|
78
|
+
/** Revoke a license. */
|
|
79
|
+
revokeLicense(licenseId: string): Promise<DRMLicense>;
|
|
80
|
+
/** List licenses for an asset or user. */
|
|
81
|
+
listLicenses(params?: {
|
|
82
|
+
asset_id?: string;
|
|
83
|
+
user_id?: string;
|
|
84
|
+
status?: LicenseStatus;
|
|
85
|
+
} & PaginationParams): Promise<PaginatedResponse<DRMLicense>>;
|
|
86
|
+
}
|
|
87
|
+
export declare function createDrmAPI(client: WaveClient): DrmAPI;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drm.d.ts","sourceRoot":"","sources":["../src/drm.ts"],"names":[],"mappings":"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"}
|
package/dist/edge.d.ts
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - Edge API
|
|
3
|
+
*
|
|
4
|
+
* Edge computing, CDN operations, and worker deployment.
|
|
5
|
+
*/
|
|
6
|
+
import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
|
|
7
|
+
export type EdgeNodeStatus = "active" | "draining" | "offline" | "updating";
|
|
8
|
+
export interface EdgeNode extends Timestamps {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
region: string;
|
|
12
|
+
provider: "cloudflare" | "aws" | "gcp";
|
|
13
|
+
status: EdgeNodeStatus;
|
|
14
|
+
latency_ms: number;
|
|
15
|
+
capacity_percent: number;
|
|
16
|
+
active_workers: number;
|
|
17
|
+
bandwidth_mbps: number;
|
|
18
|
+
}
|
|
19
|
+
export interface EdgeWorker extends Timestamps {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
node_id: string;
|
|
23
|
+
status: "deployed" | "running" | "stopped" | "error";
|
|
24
|
+
runtime: "v8" | "wasm" | "node";
|
|
25
|
+
script_size_bytes: number;
|
|
26
|
+
memory_limit_mb: number;
|
|
27
|
+
invocations: number;
|
|
28
|
+
last_deployed_at: string;
|
|
29
|
+
}
|
|
30
|
+
export interface WorkerConfig {
|
|
31
|
+
name: string;
|
|
32
|
+
runtime: "v8" | "wasm" | "node";
|
|
33
|
+
script: string;
|
|
34
|
+
routes: string[];
|
|
35
|
+
environment?: Record<string, string>;
|
|
36
|
+
memory_limit_mb?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface EdgeMetrics {
|
|
39
|
+
node_id: string;
|
|
40
|
+
requests_per_second: number;
|
|
41
|
+
bandwidth_mbps: number;
|
|
42
|
+
cache_hit_ratio: number;
|
|
43
|
+
p50_latency_ms: number;
|
|
44
|
+
p95_latency_ms: number;
|
|
45
|
+
p99_latency_ms: number;
|
|
46
|
+
error_rate: number;
|
|
47
|
+
timestamp: string;
|
|
48
|
+
}
|
|
49
|
+
export interface CDNPop {
|
|
50
|
+
id: string;
|
|
51
|
+
location: string;
|
|
52
|
+
provider: string;
|
|
53
|
+
status: "active" | "draining" | "offline";
|
|
54
|
+
cache_size_gb: number;
|
|
55
|
+
hit_ratio: number;
|
|
56
|
+
connections: number;
|
|
57
|
+
}
|
|
58
|
+
export interface RoutingRule {
|
|
59
|
+
id: string;
|
|
60
|
+
pattern: string;
|
|
61
|
+
target: string;
|
|
62
|
+
priority: number;
|
|
63
|
+
weight?: number;
|
|
64
|
+
region_affinity?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface DeployWorkerRequest {
|
|
67
|
+
name: string;
|
|
68
|
+
runtime: "v8" | "wasm" | "node";
|
|
69
|
+
script: string;
|
|
70
|
+
routes: string[];
|
|
71
|
+
environment?: Record<string, string>;
|
|
72
|
+
memory_limit_mb?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface ListEdgeNodesParams extends PaginationParams {
|
|
75
|
+
region?: string;
|
|
76
|
+
status?: EdgeNodeStatus;
|
|
77
|
+
provider?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Edge computing, CDN operations, and worker deployment.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const nodes = await wave.edge.listNodes({ region: 'us-west' });
|
|
85
|
+
* await wave.edge.deployWorker({ name: 'transform', runtime: 'v8', script: '...', routes: ['/api/*'] });
|
|
86
|
+
* await wave.edge.purgeCache(['/assets/*']);
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare class EdgeAPI {
|
|
90
|
+
private readonly client;
|
|
91
|
+
private readonly basePath;
|
|
92
|
+
constructor(client: WaveClient);
|
|
93
|
+
listNodes(params?: ListEdgeNodesParams): Promise<PaginatedResponse<EdgeNode>>;
|
|
94
|
+
getNode(nodeId: string): Promise<EdgeNode>;
|
|
95
|
+
getNodeMetrics(nodeId: string): Promise<EdgeMetrics>;
|
|
96
|
+
deployWorker(request: DeployWorkerRequest): Promise<EdgeWorker>;
|
|
97
|
+
getWorker(workerId: string): Promise<EdgeWorker>;
|
|
98
|
+
updateWorker(workerId: string, config: Partial<WorkerConfig>): Promise<EdgeWorker>;
|
|
99
|
+
removeWorker(workerId: string): Promise<void>;
|
|
100
|
+
listWorkers(params?: PaginationParams): Promise<PaginatedResponse<EdgeWorker>>;
|
|
101
|
+
startWorker(workerId: string): Promise<EdgeWorker>;
|
|
102
|
+
stopWorker(workerId: string): Promise<EdgeWorker>;
|
|
103
|
+
listPops(): Promise<CDNPop[]>;
|
|
104
|
+
purgeCache(patterns: string[]): Promise<{
|
|
105
|
+
purged: number;
|
|
106
|
+
}>;
|
|
107
|
+
getRoutingRules(): Promise<RoutingRule[]>;
|
|
108
|
+
setRoutingRule(rule: Omit<RoutingRule, "id">): Promise<RoutingRule>;
|
|
109
|
+
removeRoutingRule(ruleId: string): Promise<void>;
|
|
110
|
+
getLatencyMap(): Promise<Record<string, number>>;
|
|
111
|
+
}
|
|
112
|
+
export declare function createEdgeAPI(client: WaveClient): EdgeAPI;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - Editor API
|
|
3
|
+
*
|
|
4
|
+
* Video editing capabilities including cuts, transitions, overlays, and effects.
|
|
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
|
+
* Project status
|
|
12
|
+
*/
|
|
13
|
+
export type ProjectStatus = 'draft' | 'rendering' | 'ready' | 'failed' | 'archived';
|
|
14
|
+
/**
|
|
15
|
+
* Track type
|
|
16
|
+
*/
|
|
17
|
+
export type TrackType = 'video' | 'audio' | 'text' | 'image' | 'effect';
|
|
18
|
+
/**
|
|
19
|
+
* Transition type
|
|
20
|
+
*/
|
|
21
|
+
export type TransitionType = 'cut' | 'fade' | 'dissolve' | 'wipe' | 'slide' | 'zoom';
|
|
22
|
+
/**
|
|
23
|
+
* Effect type
|
|
24
|
+
*/
|
|
25
|
+
export type EffectType = 'blur' | 'brightness' | 'contrast' | 'saturation' | 'color_grade' | 'noise_reduction' | 'stabilization' | 'speed' | 'reverse' | 'custom';
|
|
26
|
+
/**
|
|
27
|
+
* Timeline element
|
|
28
|
+
*/
|
|
29
|
+
export interface TimelineElement {
|
|
30
|
+
id: string;
|
|
31
|
+
track_id: string;
|
|
32
|
+
type: 'clip' | 'text' | 'image' | 'audio' | 'effect';
|
|
33
|
+
source_id?: string;
|
|
34
|
+
start_time: number;
|
|
35
|
+
duration: number;
|
|
36
|
+
in_point?: number;
|
|
37
|
+
out_point?: number;
|
|
38
|
+
properties?: Record<string, unknown>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Track definition
|
|
42
|
+
*/
|
|
43
|
+
export interface Track {
|
|
44
|
+
id: string;
|
|
45
|
+
name: string;
|
|
46
|
+
type: TrackType;
|
|
47
|
+
order: number;
|
|
48
|
+
locked: boolean;
|
|
49
|
+
muted: boolean;
|
|
50
|
+
visible: boolean;
|
|
51
|
+
elements: TimelineElement[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Transition definition
|
|
55
|
+
*/
|
|
56
|
+
export interface Transition {
|
|
57
|
+
id: string;
|
|
58
|
+
type: TransitionType;
|
|
59
|
+
from_element_id: string;
|
|
60
|
+
to_element_id: string;
|
|
61
|
+
duration: number;
|
|
62
|
+
properties?: Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Effect definition
|
|
66
|
+
*/
|
|
67
|
+
export interface Effect {
|
|
68
|
+
id: string;
|
|
69
|
+
type: EffectType;
|
|
70
|
+
element_id: string;
|
|
71
|
+
start_time: number;
|
|
72
|
+
end_time: number;
|
|
73
|
+
keyframes?: Keyframe[];
|
|
74
|
+
properties: Record<string, unknown>;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Keyframe for animation
|
|
78
|
+
*/
|
|
79
|
+
export interface Keyframe {
|
|
80
|
+
time: number;
|
|
81
|
+
value: number | string | Record<string, unknown>;
|
|
82
|
+
easing?: 'linear' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'bezier';
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Text overlay
|
|
86
|
+
*/
|
|
87
|
+
export interface TextOverlay {
|
|
88
|
+
id: string;
|
|
89
|
+
content: string;
|
|
90
|
+
font_family: string;
|
|
91
|
+
font_size: number;
|
|
92
|
+
font_weight?: number;
|
|
93
|
+
color: string;
|
|
94
|
+
background_color?: string;
|
|
95
|
+
position: {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
};
|
|
99
|
+
alignment?: 'left' | 'center' | 'right';
|
|
100
|
+
animation?: TextAnimation;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Text animation
|
|
104
|
+
*/
|
|
105
|
+
export interface TextAnimation {
|
|
106
|
+
type: 'fade' | 'slide' | 'typewriter' | 'bounce' | 'none';
|
|
107
|
+
duration: number;
|
|
108
|
+
delay?: number;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Editor project
|
|
112
|
+
*/
|
|
113
|
+
export interface EditorProject extends Timestamps {
|
|
114
|
+
id: string;
|
|
115
|
+
organization_id: string;
|
|
116
|
+
name: string;
|
|
117
|
+
description?: string;
|
|
118
|
+
status: ProjectStatus;
|
|
119
|
+
width: number;
|
|
120
|
+
height: number;
|
|
121
|
+
frame_rate: number;
|
|
122
|
+
duration: number;
|
|
123
|
+
tracks: Track[];
|
|
124
|
+
transitions: Transition[];
|
|
125
|
+
effects: Effect[];
|
|
126
|
+
thumbnail_url?: string;
|
|
127
|
+
output_url?: string;
|
|
128
|
+
metadata?: Metadata;
|
|
129
|
+
version: number;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Create project request
|
|
133
|
+
*/
|
|
134
|
+
export interface CreateProjectRequest {
|
|
135
|
+
name: string;
|
|
136
|
+
description?: string;
|
|
137
|
+
width?: number;
|
|
138
|
+
height?: number;
|
|
139
|
+
frame_rate?: number;
|
|
140
|
+
template_id?: string;
|
|
141
|
+
metadata?: Metadata;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Update project request
|
|
145
|
+
*/
|
|
146
|
+
export interface UpdateProjectRequest {
|
|
147
|
+
name?: string;
|
|
148
|
+
description?: string;
|
|
149
|
+
metadata?: Metadata;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Add element request
|
|
153
|
+
*/
|
|
154
|
+
export interface AddElementRequest {
|
|
155
|
+
track_id: string;
|
|
156
|
+
type: 'clip' | 'text' | 'image' | 'audio';
|
|
157
|
+
source_id?: string;
|
|
158
|
+
start_time: number;
|
|
159
|
+
duration?: number;
|
|
160
|
+
properties?: Record<string, unknown>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Render options
|
|
164
|
+
*/
|
|
165
|
+
export interface RenderOptions {
|
|
166
|
+
format?: 'mp4' | 'webm' | 'mov' | 'gif';
|
|
167
|
+
quality?: 'low' | 'medium' | 'high' | 'source';
|
|
168
|
+
resolution?: string;
|
|
169
|
+
bitrate?: number;
|
|
170
|
+
audio_codec?: 'aac' | 'mp3' | 'opus';
|
|
171
|
+
audio_bitrate?: number;
|
|
172
|
+
webhook_url?: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Render job
|
|
176
|
+
*/
|
|
177
|
+
export interface RenderJob extends Timestamps {
|
|
178
|
+
id: string;
|
|
179
|
+
project_id: string;
|
|
180
|
+
status: 'pending' | 'rendering' | 'ready' | 'failed';
|
|
181
|
+
progress: number;
|
|
182
|
+
output_url?: string;
|
|
183
|
+
file_size?: number;
|
|
184
|
+
duration?: number;
|
|
185
|
+
error?: string;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* List projects params
|
|
189
|
+
*/
|
|
190
|
+
export interface ListProjectsParams extends PaginationParams {
|
|
191
|
+
status?: ProjectStatus;
|
|
192
|
+
created_after?: string;
|
|
193
|
+
created_before?: string;
|
|
194
|
+
order_by?: 'created_at' | 'updated_at' | 'name';
|
|
195
|
+
order?: 'asc' | 'desc';
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Editor API client
|
|
199
|
+
*
|
|
200
|
+
* All operations require appropriate permissions. Authorization is enforced
|
|
201
|
+
* server-side - the API returns 403 if the authenticated user lacks access.
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* import { WaveClient } from '@wave/sdk';
|
|
206
|
+
* import { EditorAPI } from '@wave/sdk/editor';
|
|
207
|
+
*
|
|
208
|
+
* const client = new WaveClient({ apiKey: 'your-api-key' });
|
|
209
|
+
* const editor = new EditorAPI(client);
|
|
210
|
+
*
|
|
211
|
+
* // Create a new project
|
|
212
|
+
* const project = await editor.createProject({
|
|
213
|
+
* name: 'My Video',
|
|
214
|
+
* width: 1920,
|
|
215
|
+
* height: 1080,
|
|
216
|
+
* frame_rate: 30,
|
|
217
|
+
* });
|
|
218
|
+
*
|
|
219
|
+
* // Add a video track
|
|
220
|
+
* const track = await editor.addTrack(project.id, {
|
|
221
|
+
* name: 'Main Video',
|
|
222
|
+
* type: 'video',
|
|
223
|
+
* });
|
|
224
|
+
*
|
|
225
|
+
* // Add a clip to the track
|
|
226
|
+
* await editor.addElement(project.id, {
|
|
227
|
+
* track_id: track.id,
|
|
228
|
+
* type: 'clip',
|
|
229
|
+
* source_id: 'clip_123',
|
|
230
|
+
* start_time: 0,
|
|
231
|
+
* });
|
|
232
|
+
*
|
|
233
|
+
* // Render the project
|
|
234
|
+
* const job = await editor.render(project.id, { format: 'mp4' });
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor-types.d.ts","sourceRoot":"","sources":["../src/editor-types.ts"],"names":[],"mappings":"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"}
|
package/dist/editor.d.ts
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - Editor API
|
|
3
|
+
*
|
|
4
|
+
* Video editing capabilities including cuts, transitions, overlays, and effects.
|
|
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 './editor-types';
|
|
11
|
+
import type { AddElementRequest, CreateProjectRequest, EditorProject, Effect, ListProjectsParams, RenderJob, RenderOptions, TimelineElement, Track, TrackType, Transition, UpdateProjectRequest } from './editor-types';
|
|
12
|
+
export declare class EditorAPI {
|
|
13
|
+
private readonly client;
|
|
14
|
+
private readonly basePath;
|
|
15
|
+
constructor(client: WaveClient);
|
|
16
|
+
/**
|
|
17
|
+
* Create a new editor project
|
|
18
|
+
*
|
|
19
|
+
* Requires: editor:create permission
|
|
20
|
+
*/
|
|
21
|
+
createProject(request: CreateProjectRequest): Promise<EditorProject>;
|
|
22
|
+
/**
|
|
23
|
+
* Get a project by ID
|
|
24
|
+
*
|
|
25
|
+
* Requires: editor:read permission
|
|
26
|
+
*/
|
|
27
|
+
getProject(projectId: string): Promise<EditorProject>;
|
|
28
|
+
/**
|
|
29
|
+
* Update a project
|
|
30
|
+
*
|
|
31
|
+
* Requires: editor:update permission
|
|
32
|
+
*/
|
|
33
|
+
updateProject(projectId: string, request: UpdateProjectRequest): Promise<EditorProject>;
|
|
34
|
+
/**
|
|
35
|
+
* Remove a project
|
|
36
|
+
*
|
|
37
|
+
* Requires: editor:remove permission (server-side RBAC enforced)
|
|
38
|
+
*/
|
|
39
|
+
removeProject(projectId: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* List projects
|
|
42
|
+
*
|
|
43
|
+
* Requires: editor:read permission
|
|
44
|
+
*/
|
|
45
|
+
listProjects(params?: ListProjectsParams): Promise<PaginatedResponse<EditorProject>>;
|
|
46
|
+
/**
|
|
47
|
+
* Duplicate a project
|
|
48
|
+
*
|
|
49
|
+
* Requires: editor:create permission
|
|
50
|
+
*/
|
|
51
|
+
duplicateProject(projectId: string, name?: string): Promise<EditorProject>;
|
|
52
|
+
/**
|
|
53
|
+
* Add a track to a project
|
|
54
|
+
*
|
|
55
|
+
* Requires: editor:update permission
|
|
56
|
+
*/
|
|
57
|
+
addTrack(projectId: string, track: {
|
|
58
|
+
name: string;
|
|
59
|
+
type: TrackType;
|
|
60
|
+
order?: number;
|
|
61
|
+
}): Promise<Track>;
|
|
62
|
+
/**
|
|
63
|
+
* Update a track
|
|
64
|
+
*
|
|
65
|
+
* Requires: editor:update permission
|
|
66
|
+
*/
|
|
67
|
+
updateTrack(projectId: string, trackId: string, updates: Partial<Pick<Track, 'name' | 'order' | 'locked' | 'muted' | 'visible'>>): Promise<Track>;
|
|
68
|
+
/**
|
|
69
|
+
* Remove a track
|
|
70
|
+
*
|
|
71
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
72
|
+
*/
|
|
73
|
+
removeTrack(projectId: string, trackId: string): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Add an element to a track
|
|
76
|
+
*
|
|
77
|
+
* Requires: editor:update permission
|
|
78
|
+
*/
|
|
79
|
+
addElement(projectId: string, element: AddElementRequest): Promise<TimelineElement>;
|
|
80
|
+
/**
|
|
81
|
+
* Update an element
|
|
82
|
+
*
|
|
83
|
+
* Requires: editor:update permission
|
|
84
|
+
*/
|
|
85
|
+
updateElement(projectId: string, elementId: string, updates: Partial<TimelineElement>): Promise<TimelineElement>;
|
|
86
|
+
/**
|
|
87
|
+
* Remove an element
|
|
88
|
+
*
|
|
89
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
90
|
+
*/
|
|
91
|
+
removeElement(projectId: string, elementId: string): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Move an element to a different position
|
|
94
|
+
*
|
|
95
|
+
* Requires: editor:update permission
|
|
96
|
+
*/
|
|
97
|
+
moveElement(projectId: string, elementId: string, options: {
|
|
98
|
+
track_id?: string;
|
|
99
|
+
start_time: number;
|
|
100
|
+
}): Promise<TimelineElement>;
|
|
101
|
+
/**
|
|
102
|
+
* Trim an element
|
|
103
|
+
*
|
|
104
|
+
* Requires: editor:update permission
|
|
105
|
+
*/
|
|
106
|
+
trimElement(projectId: string, elementId: string, options: {
|
|
107
|
+
in_point?: number;
|
|
108
|
+
out_point?: number;
|
|
109
|
+
}): Promise<TimelineElement>;
|
|
110
|
+
/**
|
|
111
|
+
* Add a transition between elements
|
|
112
|
+
*
|
|
113
|
+
* Requires: editor:update permission
|
|
114
|
+
*/
|
|
115
|
+
addTransition(projectId: string, transition: Omit<Transition, 'id'>): Promise<Transition>;
|
|
116
|
+
/**
|
|
117
|
+
* Update a transition
|
|
118
|
+
*
|
|
119
|
+
* Requires: editor:update permission
|
|
120
|
+
*/
|
|
121
|
+
updateTransition(projectId: string, transitionId: string, updates: Partial<Transition>): Promise<Transition>;
|
|
122
|
+
/**
|
|
123
|
+
* Remove a transition
|
|
124
|
+
*
|
|
125
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
126
|
+
*/
|
|
127
|
+
removeTransition(projectId: string, transitionId: string): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Add an effect to an element
|
|
130
|
+
*
|
|
131
|
+
* Requires: editor:update permission
|
|
132
|
+
*/
|
|
133
|
+
addEffect(projectId: string, effect: Omit<Effect, 'id'>): Promise<Effect>;
|
|
134
|
+
/**
|
|
135
|
+
* Update an effect
|
|
136
|
+
*
|
|
137
|
+
* Requires: editor:update permission
|
|
138
|
+
*/
|
|
139
|
+
updateEffect(projectId: string, effectId: string, updates: Partial<Effect>): Promise<Effect>;
|
|
140
|
+
/**
|
|
141
|
+
* Remove an effect
|
|
142
|
+
*
|
|
143
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
144
|
+
*/
|
|
145
|
+
removeEffect(projectId: string, effectId: string): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Start rendering a project
|
|
148
|
+
*
|
|
149
|
+
* Requires: editor:render permission
|
|
150
|
+
*/
|
|
151
|
+
render(projectId: string, options?: RenderOptions): Promise<RenderJob>;
|
|
152
|
+
/**
|
|
153
|
+
* Get render job status
|
|
154
|
+
*
|
|
155
|
+
* Requires: editor:read permission
|
|
156
|
+
*/
|
|
157
|
+
getRenderJob(projectId: string, jobId: string): Promise<RenderJob>;
|
|
158
|
+
/**
|
|
159
|
+
* List render jobs for a project
|
|
160
|
+
*
|
|
161
|
+
* Requires: editor:read permission
|
|
162
|
+
*/
|
|
163
|
+
listRenderJobs(projectId: string, params?: PaginationParams): Promise<PaginatedResponse<RenderJob>>;
|
|
164
|
+
/**
|
|
165
|
+
* Cancel a render job
|
|
166
|
+
*
|
|
167
|
+
* Requires: editor:render permission
|
|
168
|
+
*/
|
|
169
|
+
cancelRenderJob(projectId: string, jobId: string): Promise<RenderJob>;
|
|
170
|
+
/**
|
|
171
|
+
* Wait for render to complete
|
|
172
|
+
*/
|
|
173
|
+
waitForRender(projectId: string, jobId: string, options?: {
|
|
174
|
+
pollInterval?: number;
|
|
175
|
+
timeout?: number;
|
|
176
|
+
onProgress?: (job: RenderJob) => void;
|
|
177
|
+
}): Promise<RenderJob>;
|
|
178
|
+
/**
|
|
179
|
+
* Generate a preview frame
|
|
180
|
+
*
|
|
181
|
+
* Requires: editor:read permission
|
|
182
|
+
*/
|
|
183
|
+
getPreviewFrame(projectId: string, time: number, options?: {
|
|
184
|
+
width?: number;
|
|
185
|
+
height?: number;
|
|
186
|
+
format?: 'png' | 'jpeg';
|
|
187
|
+
}): Promise<{
|
|
188
|
+
url: string;
|
|
189
|
+
expires_at: string;
|
|
190
|
+
}>;
|
|
191
|
+
/**
|
|
192
|
+
* Generate a preview video segment
|
|
193
|
+
*
|
|
194
|
+
* Requires: editor:read permission
|
|
195
|
+
*/
|
|
196
|
+
getPreviewSegment(projectId: string, startTime: number, endTime: number, options?: {
|
|
197
|
+
quality?: 'low' | 'medium';
|
|
198
|
+
}): Promise<{
|
|
199
|
+
url: string;
|
|
200
|
+
expires_at: string;
|
|
201
|
+
}>;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Create an Editor API instance
|
|
205
|
+
*/
|
|
206
|
+
export declare function createEditorAPI(client: WaveClient): EditorAPI;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAGlB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,SAAS,EACT,aAAa,EACb,eAAe,EACf,KAAK,EACL,SAAS,EACT,UAAU,EACV,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAExB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;gBAEtC,MAAM,EAAE,UAAU;IAQ9B;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAI3D;;;;OAIG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,aAAa,CAAC;IAIzB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;;;OAIG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAM1F;;;;OAIG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAUhF;;;;OAIG;IACG,QAAQ,CACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,OAAO,CAAC,KAAK,CAAC;IAIjB;;;;OAIG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,GAC/E,OAAO,CAAC,KAAK,CAAC;IAOjB;;;;OAIG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpE;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAOzF;;;;OAIG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,eAAe,CAAC;IAO3B;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE;;;;OAIG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,eAAe,CAAC;IAO3B;;;;OAIG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACjD,OAAO,CAAC,eAAe,CAAC;IAW3B;;;;OAIG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GACjC,OAAO,CAAC,UAAU,CAAC;IAOtB;;;;OAIG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC;IAOtB;;;;OAIG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E;;;;OAIG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/E;;;;OAIG;IACG,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GACvB,OAAO,CAAC,MAAM,CAAC;IAOlB;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtE;;;;OAIG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAO5E;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAMxE;;;;OAIG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAOxC;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAM3E;;OAEG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;KACvC,GACA,OAAO,CAAC,SAAS,CAAC;IA8BrB;;;;OAIG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,GACrE,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAM/C;;;;OAIG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,GACvC,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAOhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAE7D"}
|