@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.
Files changed (99) hide show
  1. package/dist/audience.d.ts +104 -0
  2. package/dist/audience.d.ts.map +1 -0
  3. package/dist/camera-control.d.ts +54 -0
  4. package/dist/camera-control.d.ts.map +1 -0
  5. package/dist/captions.d.ts +362 -0
  6. package/dist/captions.d.ts.map +1 -0
  7. package/dist/chapters.d.ts +315 -0
  8. package/dist/chapters.d.ts.map +1 -0
  9. package/dist/client.d.ts +191 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/clips.d.ts +258 -0
  12. package/dist/clips.d.ts.map +1 -0
  13. package/dist/cloud-switcher.d.ts +65 -0
  14. package/dist/cloud-switcher.d.ts.map +1 -0
  15. package/dist/collab-types.d.ts +204 -0
  16. package/dist/collab-types.d.ts.map +1 -0
  17. package/dist/collab.d.ts +226 -0
  18. package/dist/collab.d.ts.map +1 -0
  19. package/dist/connect.d.ts +88 -0
  20. package/dist/connect.d.ts.map +1 -0
  21. package/dist/creator.d.ts +109 -0
  22. package/dist/creator.d.ts.map +1 -0
  23. package/dist/desktop.d.ts +95 -0
  24. package/dist/desktop.d.ts.map +1 -0
  25. package/dist/distribution.d.ts +92 -0
  26. package/dist/distribution.d.ts.map +1 -0
  27. package/dist/drm.d.ts +87 -0
  28. package/dist/drm.d.ts.map +1 -0
  29. package/dist/edge.d.ts +112 -0
  30. package/dist/edge.d.ts.map +1 -0
  31. package/dist/editor-types.d.ts +236 -0
  32. package/dist/editor-types.d.ts.map +1 -0
  33. package/dist/editor.d.ts +206 -0
  34. package/dist/editor.d.ts.map +1 -0
  35. package/dist/fleet.d.ts +207 -0
  36. package/dist/fleet.d.ts.map +1 -0
  37. package/dist/ghost.d.ts +213 -0
  38. package/dist/ghost.d.ts.map +1 -0
  39. package/dist/index.d.ts +144 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/marketplace.d.ts +90 -0
  42. package/dist/marketplace.d.ts.map +1 -0
  43. package/dist/mesh.d.ts +237 -0
  44. package/dist/mesh.d.ts.map +1 -0
  45. package/dist/notifications.d.ts +82 -0
  46. package/dist/notifications.d.ts.map +1 -0
  47. package/dist/phone.d.ts +369 -0
  48. package/dist/phone.d.ts.map +1 -0
  49. package/dist/pipeline.d.ts +409 -0
  50. package/dist/pipeline.d.ts.map +1 -0
  51. package/dist/podcast.d.ts +113 -0
  52. package/dist/podcast.d.ts.map +1 -0
  53. package/dist/prism.d.ts +132 -0
  54. package/dist/prism.d.ts.map +1 -0
  55. package/dist/prompter.d.ts +184 -0
  56. package/dist/prompter.d.ts.map +1 -0
  57. package/dist/pulse.d.ts +156 -0
  58. package/dist/pulse.d.ts.map +1 -0
  59. package/dist/qr.d.ts +82 -0
  60. package/dist/qr.d.ts.map +1 -0
  61. package/dist/replay.d.ts +52 -0
  62. package/dist/replay.d.ts.map +1 -0
  63. package/dist/scene-types.d.ts +190 -0
  64. package/dist/scene-types.d.ts.map +1 -0
  65. package/dist/scene.d.ts +213 -0
  66. package/dist/scene.d.ts.map +1 -0
  67. package/dist/search-types.d.ts +210 -0
  68. package/dist/search-types.d.ts.map +1 -0
  69. package/dist/search.d.ts +250 -0
  70. package/dist/search.d.ts.map +1 -0
  71. package/dist/sentiment.d.ts +378 -0
  72. package/dist/sentiment.d.ts.map +1 -0
  73. package/dist/signage.d.ts +101 -0
  74. package/dist/signage.d.ts.map +1 -0
  75. package/dist/slides.d.ts +68 -0
  76. package/dist/slides.d.ts.map +1 -0
  77. package/dist/studio-ai-types.d.ts +198 -0
  78. package/dist/studio-ai-types.d.ts.map +1 -0
  79. package/dist/studio-ai.d.ts +218 -0
  80. package/dist/studio-ai.d.ts.map +1 -0
  81. package/dist/studio-types.d.ts +267 -0
  82. package/dist/studio-types.d.ts.map +1 -0
  83. package/dist/studio.d.ts +234 -0
  84. package/dist/studio.d.ts.map +1 -0
  85. package/dist/telemetry.d.ts +76 -0
  86. package/dist/telemetry.d.ts.map +1 -0
  87. package/dist/transcribe-types.d.ts +153 -0
  88. package/dist/transcribe-types.d.ts.map +1 -0
  89. package/dist/transcribe.d.ts +218 -0
  90. package/dist/transcribe.d.ts.map +1 -0
  91. package/dist/usb.d.ts +64 -0
  92. package/dist/usb.d.ts.map +1 -0
  93. package/dist/vault.d.ts +121 -0
  94. package/dist/vault.d.ts.map +1 -0
  95. package/dist/voice.d.ts +307 -0
  96. package/dist/voice.d.ts.map +1 -0
  97. package/dist/zoom.d.ts +91 -0
  98. package/dist/zoom.d.ts.map +1 -0
  99. package/package.json +1 -1
@@ -0,0 +1,226 @@
1
+ /**
2
+ * WAVE SDK - Collab API
3
+ *
4
+ * Real-time collaboration features for projects and media.
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 './collab-types';
11
+ import type { Annotation, CollabRoom, Comment, CreateRoomRequest, InviteRequest, ListRoomsParams, Participant, ParticipantPermissions, ParticipantRole, UpdateRoomRequest } from './collab-types';
12
+ export declare class CollabAPI {
13
+ private readonly client;
14
+ private readonly basePath;
15
+ constructor(client: WaveClient);
16
+ /**
17
+ * Create a collaboration room
18
+ *
19
+ * Requires: collab:create permission
20
+ */
21
+ createRoom(request: CreateRoomRequest): Promise<CollabRoom>;
22
+ /**
23
+ * Get a room by ID
24
+ *
25
+ * Requires: collab:read permission
26
+ */
27
+ getRoom(roomId: string): Promise<CollabRoom>;
28
+ /**
29
+ * Update a room
30
+ *
31
+ * Requires: collab:update permission
32
+ */
33
+ updateRoom(roomId: string, request: UpdateRoomRequest): Promise<CollabRoom>;
34
+ /**
35
+ * Close a room
36
+ *
37
+ * Requires: collab:manage permission
38
+ */
39
+ closeRoom(roomId: string): Promise<CollabRoom>;
40
+ /**
41
+ * Archive a room
42
+ *
43
+ * Requires: collab:manage permission (server-side RBAC enforced)
44
+ */
45
+ archiveRoom(roomId: string): Promise<void>;
46
+ /**
47
+ * List rooms
48
+ *
49
+ * Requires: collab:read permission
50
+ */
51
+ listRooms(params?: ListRoomsParams): Promise<PaginatedResponse<CollabRoom>>;
52
+ /**
53
+ * Get join token for real-time connection
54
+ *
55
+ * Requires: collab:join permission
56
+ */
57
+ getJoinToken(roomId: string, options?: {
58
+ display_name?: string;
59
+ avatar_url?: string;
60
+ }): Promise<{
61
+ token: string;
62
+ expires_at: string;
63
+ websocket_url: string;
64
+ }>;
65
+ /**
66
+ * List participants in a room
67
+ *
68
+ * Requires: collab:read permission
69
+ */
70
+ listParticipants(roomId: string, params?: PaginationParams): Promise<PaginatedResponse<Participant>>;
71
+ /**
72
+ * Get a participant
73
+ *
74
+ * Requires: collab:read permission
75
+ */
76
+ getParticipant(roomId: string, participantId: string): Promise<Participant>;
77
+ /**
78
+ * Update a participant's role
79
+ *
80
+ * Requires: collab:manage permission
81
+ */
82
+ updateParticipant(roomId: string, participantId: string, updates: {
83
+ role?: ParticipantRole;
84
+ permissions?: Partial<ParticipantPermissions>;
85
+ }): Promise<Participant>;
86
+ /**
87
+ * Remove a participant from a room
88
+ *
89
+ * Requires: collab:manage permission (server-side RBAC enforced)
90
+ */
91
+ removeParticipant(roomId: string, participantId: string): Promise<void>;
92
+ /**
93
+ * Invite users to a room
94
+ *
95
+ * Requires: collab:invite permission
96
+ */
97
+ invite(roomId: string, invites: InviteRequest[]): Promise<{
98
+ sent: number;
99
+ failed: Array<{
100
+ email?: string;
101
+ user_id?: string;
102
+ error: string;
103
+ }>;
104
+ }>;
105
+ /**
106
+ * Add a comment
107
+ *
108
+ * Requires: collab:comment permission
109
+ */
110
+ addComment(roomId: string, comment: {
111
+ content: string;
112
+ timestamp?: number;
113
+ element_id?: string;
114
+ position?: {
115
+ x: number;
116
+ y: number;
117
+ };
118
+ parent_id?: string;
119
+ }): Promise<Comment>;
120
+ /**
121
+ * List comments
122
+ *
123
+ * Requires: collab:read permission
124
+ */
125
+ listComments(roomId: string, params?: PaginationParams & {
126
+ resolved?: boolean;
127
+ element_id?: string;
128
+ parent_id?: string;
129
+ }): Promise<PaginatedResponse<Comment>>;
130
+ /**
131
+ * Update a comment
132
+ *
133
+ * Requires: collab:comment permission (own comments) or collab:manage
134
+ */
135
+ updateComment(roomId: string, commentId: string, updates: {
136
+ content?: string;
137
+ resolved?: boolean;
138
+ }): Promise<Comment>;
139
+ /**
140
+ * Remove a comment
141
+ *
142
+ * Requires: collab:comment permission (own) or collab:manage (server-side RBAC enforced)
143
+ */
144
+ removeComment(roomId: string, commentId: string): Promise<void>;
145
+ /**
146
+ * Add a reaction to a comment
147
+ *
148
+ * Requires: collab:comment permission
149
+ */
150
+ addReaction(roomId: string, commentId: string, emoji: string): Promise<Comment>;
151
+ /**
152
+ * Remove a reaction from a comment
153
+ *
154
+ * Requires: collab:comment permission (server-side RBAC enforced)
155
+ */
156
+ removeReaction(roomId: string, commentId: string, emoji: string): Promise<void>;
157
+ /**
158
+ * Add an annotation
159
+ *
160
+ * Requires: collab:annotate permission
161
+ */
162
+ addAnnotation(roomId: string, annotation: Omit<Annotation, 'id' | 'room_id' | 'user_id' | 'created_at' | 'updated_at'>): Promise<Annotation>;
163
+ /**
164
+ * List annotations
165
+ *
166
+ * Requires: collab:read permission
167
+ */
168
+ listAnnotations(roomId: string, params?: PaginationParams & {
169
+ timestamp?: number;
170
+ user_id?: string;
171
+ }): Promise<PaginatedResponse<Annotation>>;
172
+ /**
173
+ * Update an annotation
174
+ *
175
+ * Requires: collab:annotate permission (own) or collab:manage
176
+ */
177
+ updateAnnotation(roomId: string, annotationId: string, updates: Partial<Omit<Annotation, 'id' | 'room_id' | 'user_id' | 'created_at' | 'updated_at'>>): Promise<Annotation>;
178
+ /**
179
+ * Remove an annotation
180
+ *
181
+ * Requires: collab:annotate permission (own) or collab:manage (server-side RBAC enforced)
182
+ */
183
+ removeAnnotation(roomId: string, annotationId: string): Promise<void>;
184
+ /**
185
+ * Clear all annotations
186
+ *
187
+ * Requires: collab:manage permission
188
+ */
189
+ clearAnnotations(roomId: string): Promise<{
190
+ cleared: number;
191
+ }>;
192
+ /**
193
+ * Start recording the collaboration session
194
+ *
195
+ * Requires: collab:record permission
196
+ */
197
+ startRecording(roomId: string): Promise<{
198
+ recording_id: string;
199
+ started_at: string;
200
+ }>;
201
+ /**
202
+ * Stop recording
203
+ *
204
+ * Requires: collab:record permission
205
+ */
206
+ stopRecording(roomId: string): Promise<{
207
+ recording_id: string;
208
+ url: string;
209
+ duration: number;
210
+ }>;
211
+ /**
212
+ * Get recording status
213
+ *
214
+ * Requires: collab:read permission
215
+ */
216
+ getRecordingStatus(roomId: string): Promise<{
217
+ recording: boolean;
218
+ recording_id?: string;
219
+ started_at?: string;
220
+ duration?: number;
221
+ }>;
222
+ }
223
+ /**
224
+ * Create a Collab API instance
225
+ */
226
+ export declare function createCollabAPI(client: WaveClient): CollabAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collab.d.ts","sourceRoot":"","sources":["../src/collab.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * WAVE SDK - Connect API
3
+ *
4
+ * Third-party integration and webhook management.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type IntegrationStatus = "active" | "inactive" | "error" | "pending_auth";
8
+ export type IntegrationType = "oauth" | "api_key" | "webhook" | "native";
9
+ export interface Integration extends Timestamps {
10
+ id: string;
11
+ organization_id: string;
12
+ name: string;
13
+ type: IntegrationType;
14
+ provider: string;
15
+ status: IntegrationStatus;
16
+ config: Record<string, unknown>;
17
+ scopes: string[];
18
+ last_sync_at?: string;
19
+ error_message?: string;
20
+ }
21
+ export interface WebhookEndpoint extends Timestamps {
22
+ id: string;
23
+ integration_id: string;
24
+ url: string;
25
+ events: string[];
26
+ status: "active" | "inactive";
27
+ secret: string;
28
+ }
29
+ export interface WebhookDelivery {
30
+ id: string;
31
+ webhook_id: string;
32
+ event: string;
33
+ status: "success" | "failed" | "pending";
34
+ status_code?: number;
35
+ response_time_ms?: number;
36
+ attempts: number;
37
+ next_retry_at?: string;
38
+ created_at: string;
39
+ }
40
+ export interface EnableIntegrationRequest {
41
+ provider: string;
42
+ type: IntegrationType;
43
+ config?: Record<string, unknown>;
44
+ scopes?: string[];
45
+ }
46
+ export interface CreateWebhookRequest {
47
+ url: string;
48
+ events: string[];
49
+ }
50
+ export interface ListIntegrationsParams extends PaginationParams {
51
+ status?: IntegrationStatus;
52
+ provider?: string;
53
+ type?: IntegrationType;
54
+ }
55
+ /**
56
+ * Third-party integration management with OAuth, API keys, and webhooks.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * await wave.connect.enable({ provider: "slack", type: "oauth", scopes: ["chat:write"] });
61
+ * const webhook = await wave.connect.createWebhook(integrationId, { url: "https://...", events: ["stream.started"] });
62
+ * ```
63
+ */
64
+ export declare class ConnectAPI {
65
+ private readonly client;
66
+ private readonly basePath;
67
+ constructor(client: WaveClient);
68
+ list(params?: ListIntegrationsParams): Promise<PaginatedResponse<Integration>>;
69
+ get(integrationId: string): Promise<Integration>;
70
+ enable(request: EnableIntegrationRequest): Promise<Integration>;
71
+ disable(integrationId: string): Promise<void>;
72
+ configure(integrationId: string, config: Record<string, unknown>): Promise<Integration>;
73
+ testConnection(integrationId: string): Promise<{
74
+ connected: boolean;
75
+ latency_ms: number;
76
+ error?: string;
77
+ }>;
78
+ listWebhooks(integrationId?: string): Promise<WebhookEndpoint[]>;
79
+ createWebhook(integrationId: string, request: CreateWebhookRequest): Promise<WebhookEndpoint>;
80
+ updateWebhook(webhookId: string, updates: {
81
+ url?: string;
82
+ events?: string[];
83
+ }): Promise<WebhookEndpoint>;
84
+ removeWebhook(webhookId: string): Promise<void>;
85
+ listDeliveries(webhookId: string, params?: PaginationParams): Promise<PaginatedResponse<WebhookDelivery>>;
86
+ retryDelivery(deliveryId: string): Promise<WebhookDelivery>;
87
+ }
88
+ export declare function createConnectAPI(client: WaveClient): ConnectAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * WAVE SDK - Creator API
3
+ *
4
+ * Creator monetization, subscriptions, tips, and payouts.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export interface CreatorProfile extends Timestamps {
8
+ id: string;
9
+ user_id: string;
10
+ organization_id: string;
11
+ display_name: string;
12
+ bio?: string;
13
+ avatar_url?: string;
14
+ banner_url?: string;
15
+ subscriber_count: number;
16
+ follower_count: number;
17
+ total_revenue_cents: number;
18
+ verified: boolean;
19
+ tier: "starter" | "pro" | "partner";
20
+ }
21
+ export interface Subscription {
22
+ id: string;
23
+ creator_id: string;
24
+ subscriber_id: string;
25
+ tier: string;
26
+ price_cents: number;
27
+ status: "active" | "cancelled" | "past_due";
28
+ current_period_start: string;
29
+ current_period_end: string;
30
+ created_at: string;
31
+ }
32
+ export interface Tip {
33
+ id: string;
34
+ creator_id: string;
35
+ tipper_id: string;
36
+ amount_cents: number;
37
+ message?: string;
38
+ stream_id?: string;
39
+ created_at: string;
40
+ }
41
+ export interface Payout {
42
+ id: string;
43
+ creator_id: string;
44
+ amount_cents: number;
45
+ status: "pending" | "processing" | "completed" | "failed";
46
+ method: "bank_transfer" | "paypal" | "stripe";
47
+ requested_at: string;
48
+ completed_at?: string;
49
+ }
50
+ export interface RevenueReport {
51
+ creator_id: string;
52
+ period: string;
53
+ total_cents: number;
54
+ subscription_cents: number;
55
+ tip_cents: number;
56
+ ad_cents: number;
57
+ platform_fee_cents: number;
58
+ net_cents: number;
59
+ }
60
+ export interface UpdateProfileRequest {
61
+ display_name?: string;
62
+ bio?: string;
63
+ avatar_url?: string;
64
+ banner_url?: string;
65
+ }
66
+ export interface ListSubscriptionsParams extends PaginationParams {
67
+ status?: string;
68
+ tier?: string;
69
+ }
70
+ /**
71
+ * Creator monetization: profiles, subscriptions, tips, and payouts.
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const profile = await wave.creator.getProfile(creatorId);
76
+ * const revenue = await wave.creator.getRevenue(creatorId, { period: "month" });
77
+ * await wave.creator.requestPayout(creatorId, { amount_cents: 10000, method: "stripe" });
78
+ * ```
79
+ */
80
+ export declare class CreatorAPI {
81
+ private readonly client;
82
+ private readonly basePath;
83
+ constructor(client: WaveClient);
84
+ getProfile(creatorId: string): Promise<CreatorProfile>;
85
+ updateProfile(creatorId: string, request: UpdateProfileRequest): Promise<CreatorProfile>;
86
+ getRevenue(creatorId: string, params?: {
87
+ period?: string;
88
+ start_date?: string;
89
+ end_date?: string;
90
+ }): Promise<RevenueReport>;
91
+ listSubscriptions(creatorId: string, params?: ListSubscriptionsParams): Promise<PaginatedResponse<Subscription>>;
92
+ listTips(creatorId: string, params?: PaginationParams): Promise<PaginatedResponse<Tip>>;
93
+ createTipJar(creatorId: string, config: {
94
+ enabled: boolean;
95
+ min_amount_cents?: number;
96
+ suggested_amounts?: number[];
97
+ }): Promise<{
98
+ enabled: boolean;
99
+ }>;
100
+ listPayouts(creatorId: string, params?: PaginationParams): Promise<PaginatedResponse<Payout>>;
101
+ requestPayout(creatorId: string, request: {
102
+ amount_cents: number;
103
+ method: Payout["method"];
104
+ }): Promise<Payout>;
105
+ getAnalytics(creatorId: string, params?: {
106
+ period?: string;
107
+ }): Promise<Record<string, unknown>>;
108
+ }
109
+ export declare function createCreatorAPI(client: WaveClient): CreatorAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creator.d.ts","sourceRoot":"","sources":["../src/creator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE5F,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;CACrC;AACD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,MAAM,EAAE,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAC/B,MAAM,EAAE,UAAU;IAIxB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAGtD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC;IAGxF,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACnE,OAAO,CAAC,aAAa,CAAC;IAKnB,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,uBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAMrC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAKvF,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACpF,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAG1B,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAK/B,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC,MAAM,CAAC;IAGZ,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAKpC;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE/D"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * WAVE SDK - Desktop API
3
+ *
4
+ * Desktop Node application management and device enumeration.
5
+ */
6
+ import type { WaveClient } from "./client";
7
+ export interface DesktopNodeInfo {
8
+ id: string;
9
+ name: string;
10
+ version: string;
11
+ os: "macos" | "windows" | "linux";
12
+ arch: "x64" | "arm64";
13
+ cpu_model: string;
14
+ memory_gb: number;
15
+ gpu_model?: string;
16
+ display_count: number;
17
+ usb_devices: LocalUSBDevice[];
18
+ }
19
+ export interface LocalUSBDevice {
20
+ id: string;
21
+ name: string;
22
+ type: "camera" | "microphone" | "capture_card" | "other";
23
+ vendor_id: string;
24
+ product_id: string;
25
+ connected: boolean;
26
+ }
27
+ export interface NodePerformance {
28
+ cpu_usage: number;
29
+ memory_usage: number;
30
+ gpu_usage?: number;
31
+ disk_usage: number;
32
+ network_in_mbps: number;
33
+ network_out_mbps: number;
34
+ active_bridges: number;
35
+ uptime_seconds: number;
36
+ temperature_celsius?: number;
37
+ }
38
+ export interface NodeLog {
39
+ id: string;
40
+ level: "debug" | "info" | "warn" | "error";
41
+ message: string;
42
+ source: string;
43
+ timestamp: string;
44
+ }
45
+ export type UpdateChannel = "stable" | "beta" | "canary";
46
+ export interface NodeConfig {
47
+ auto_start: boolean;
48
+ start_on_boot: boolean;
49
+ update_channel: UpdateChannel;
50
+ max_bridges: number;
51
+ gpu_acceleration: boolean;
52
+ log_level: string;
53
+ }
54
+ /**
55
+ * Desktop Node application management, device enumeration, and updates.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const info = await wave.desktop.getInfo(nodeId);
60
+ * const perf = await wave.desktop.getPerformance(nodeId);
61
+ * await wave.desktop.installUpdate(nodeId);
62
+ * ```
63
+ */
64
+ export declare class DesktopAPI {
65
+ private readonly client;
66
+ private readonly basePath;
67
+ constructor(client: WaveClient);
68
+ getInfo(nodeId: string): Promise<DesktopNodeInfo>;
69
+ getStatus(nodeId: string): Promise<{
70
+ status: string;
71
+ uptime_seconds: number;
72
+ active_bridges: number;
73
+ }>;
74
+ listDevices(nodeId: string): Promise<LocalUSBDevice[]>;
75
+ configure(nodeId: string, config: Partial<NodeConfig>): Promise<NodeConfig>;
76
+ getConfig(nodeId: string): Promise<NodeConfig>;
77
+ getLogs(nodeId: string, params?: {
78
+ level?: string;
79
+ since?: string;
80
+ limit?: number;
81
+ }): Promise<NodeLog[]>;
82
+ getPerformance(nodeId: string): Promise<NodePerformance>;
83
+ checkForUpdate(nodeId: string): Promise<{
84
+ available: boolean;
85
+ version?: string;
86
+ release_notes?: string;
87
+ }>;
88
+ installUpdate(nodeId: string): Promise<{
89
+ status: string;
90
+ }>;
91
+ restart(nodeId: string): Promise<{
92
+ status: string;
93
+ }>;
94
+ }
95
+ export declare function createDesktopAPI(client: WaveClient): DesktopAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * WAVE SDK - Distribution API
3
+ *
4
+ * Social media distribution, simulcasting, and scheduled publishing.
5
+ */
6
+ import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps } from "./client";
7
+ export type DestinationType = "youtube" | "twitch" | "facebook" | "linkedin" | "twitter" | "tiktok" | "instagram" | "custom_rtmp";
8
+ export type DestinationStatus = "connected" | "disconnected" | "streaming" | "error";
9
+ export interface Destination extends Timestamps {
10
+ id: string;
11
+ organization_id: string;
12
+ name: string;
13
+ type: DestinationType;
14
+ status: DestinationStatus;
15
+ rtmp_url?: string;
16
+ stream_key_ref?: string;
17
+ platform_channel_id?: string;
18
+ auto_start: boolean;
19
+ }
20
+ export interface SimulcastSession {
21
+ id: string;
22
+ stream_id: string;
23
+ destinations: SimulcastTarget[];
24
+ status: "active" | "stopped";
25
+ started_at: string;
26
+ stopped_at?: string;
27
+ }
28
+ export interface SimulcastTarget {
29
+ destination_id: string;
30
+ status: "streaming" | "error" | "pending";
31
+ viewer_count?: number;
32
+ error_message?: string;
33
+ }
34
+ export interface ScheduledPost extends Timestamps {
35
+ id: string;
36
+ organization_id: string;
37
+ title: string;
38
+ description: string;
39
+ platforms: DestinationType[];
40
+ media_url: string;
41
+ scheduled_at: string;
42
+ status: "scheduled" | "publishing" | "published" | "failed";
43
+ published_urls?: Record<string, string>;
44
+ }
45
+ export interface AddDestinationRequest {
46
+ name: string;
47
+ type: DestinationType;
48
+ rtmp_url?: string;
49
+ stream_key_ref?: string;
50
+ platform_channel_id?: string;
51
+ auto_start?: boolean;
52
+ }
53
+ export interface ListDestinationsParams extends PaginationParams {
54
+ type?: DestinationType;
55
+ status?: DestinationStatus;
56
+ }
57
+ /**
58
+ * Social media simulcasting and scheduled content publishing.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * await wave.distribution.addDestination({ name: "YouTube", type: "youtube", auto_start: true });
63
+ * await wave.distribution.startSimulcast(streamId, [destId1, destId2]);
64
+ * ```
65
+ */
66
+ export declare class DistributionAPI {
67
+ private readonly client;
68
+ private readonly basePath;
69
+ constructor(client: WaveClient);
70
+ listDestinations(params?: ListDestinationsParams): Promise<PaginatedResponse<Destination>>;
71
+ getDestination(destId: string): Promise<Destination>;
72
+ addDestination(request: AddDestinationRequest): Promise<Destination>;
73
+ updateDestination(destId: string, updates: Partial<AddDestinationRequest>): Promise<Destination>;
74
+ removeDestination(destId: string): Promise<void>;
75
+ startSimulcast(streamId: string, destinationIds: string[]): Promise<SimulcastSession>;
76
+ stopSimulcast(streamId: string): Promise<SimulcastSession>;
77
+ getSimulcastStatus(streamId: string): Promise<SimulcastSession>;
78
+ schedulePost(request: {
79
+ title: string;
80
+ description: string;
81
+ platforms: DestinationType[];
82
+ media_url: string;
83
+ scheduled_at: string;
84
+ }): Promise<ScheduledPost>;
85
+ listScheduledPosts(params?: PaginationParams): Promise<PaginatedResponse<ScheduledPost>>;
86
+ cancelScheduledPost(postId: string): Promise<void>;
87
+ getDistributionAnalytics(params?: {
88
+ time_range?: string;
89
+ destination_id?: string;
90
+ }): Promise<Record<string, unknown>>;
91
+ }
92
+ export declare function createDistributionAPI(client: WaveClient): DistributionAPI;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribution.d.ts","sourceRoot":"","sources":["../src/distribution.ts"],"names":[],"mappings":"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"}