obs-ws-sdk 0.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 (70) hide show
  1. package/README.md +63 -0
  2. package/dist/client.d.ts +41 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +74 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.cjs +1482 -0
  7. package/dist/index.d.cts +1201 -0
  8. package/dist/index.d.mts +1201 -0
  9. package/dist/index.d.ts +29 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +19 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/index.mjs +1463 -0
  14. package/dist/modules/base.d.ts +8 -0
  15. package/dist/modules/base.d.ts.map +1 -0
  16. package/dist/modules/base.js +9 -0
  17. package/dist/modules/base.js.map +1 -0
  18. package/dist/modules/config.d.ts +120 -0
  19. package/dist/modules/config.d.ts.map +1 -0
  20. package/dist/modules/config.js +162 -0
  21. package/dist/modules/config.js.map +1 -0
  22. package/dist/modules/filters.d.ts +102 -0
  23. package/dist/modules/filters.d.ts.map +1 -0
  24. package/dist/modules/filters.js +130 -0
  25. package/dist/modules/filters.js.map +1 -0
  26. package/dist/modules/general.d.ts +72 -0
  27. package/dist/modules/general.d.ts.map +1 -0
  28. package/dist/modules/general.js +98 -0
  29. package/dist/modules/general.js.map +1 -0
  30. package/dist/modules/inputs.d.ts +257 -0
  31. package/dist/modules/inputs.d.ts.map +1 -0
  32. package/dist/modules/inputs.js +323 -0
  33. package/dist/modules/inputs.js.map +1 -0
  34. package/dist/modules/media-inputs.d.ts +39 -0
  35. package/dist/modules/media-inputs.d.ts.map +1 -0
  36. package/dist/modules/media-inputs.js +55 -0
  37. package/dist/modules/media-inputs.js.map +1 -0
  38. package/dist/modules/outputs.d.ts +91 -0
  39. package/dist/modules/outputs.d.ts.map +1 -0
  40. package/dist/modules/outputs.js +133 -0
  41. package/dist/modules/outputs.js.map +1 -0
  42. package/dist/modules/record.d.ts +35 -0
  43. package/dist/modules/record.d.ts.map +1 -0
  44. package/dist/modules/record.js +62 -0
  45. package/dist/modules/record.js.map +1 -0
  46. package/dist/modules/scene-items.d.ts +195 -0
  47. package/dist/modules/scene-items.d.ts.map +1 -0
  48. package/dist/modules/scene-items.js +172 -0
  49. package/dist/modules/scene-items.js.map +1 -0
  50. package/dist/modules/scenes.d.ts +98 -0
  51. package/dist/modules/scenes.d.ts.map +1 -0
  52. package/dist/modules/scenes.js +129 -0
  53. package/dist/modules/scenes.js.map +1 -0
  54. package/dist/modules/sources.d.ts +50 -0
  55. package/dist/modules/sources.d.ts.map +1 -0
  56. package/dist/modules/sources.js +66 -0
  57. package/dist/modules/sources.js.map +1 -0
  58. package/dist/modules/stream.d.ts +30 -0
  59. package/dist/modules/stream.d.ts.map +1 -0
  60. package/dist/modules/stream.js +48 -0
  61. package/dist/modules/stream.js.map +1 -0
  62. package/dist/modules/transitions.d.ts +58 -0
  63. package/dist/modules/transitions.d.ts.map +1 -0
  64. package/dist/modules/transitions.js +84 -0
  65. package/dist/modules/transitions.js.map +1 -0
  66. package/dist/modules/ui.d.ts +55 -0
  67. package/dist/modules/ui.d.ts.map +1 -0
  68. package/dist/modules/ui.js +79 -0
  69. package/dist/modules/ui.js.map +1 -0
  70. package/package.json +72 -0
package/dist/index.mjs ADDED
@@ -0,0 +1,1463 @@
1
+ import OBSWebSocket from 'obs-websocket-js';
2
+ export { default as OBSWebSocket } from 'obs-websocket-js';
3
+ import { z } from 'zod/v4';
4
+
5
+ class BaseModule {
6
+ constructor(obs) {
7
+ this.obs = obs;
8
+ }
9
+ }
10
+ const jsonObjectSchema = z.record(z.string(), z.json());
11
+
12
+ const GetPersistentDataRequestSchema = z.object({
13
+ realm: z.string(),
14
+ slotName: z.string()
15
+ });
16
+ const SetPersistentDataRequestSchema = z.object({
17
+ realm: z.string(),
18
+ slotName: z.string(),
19
+ slotValue: z.json()
20
+ });
21
+ const SetCurrentSceneCollectionRequestSchema = z.object({
22
+ sceneCollectionName: z.string()
23
+ });
24
+ const CreateSceneCollectionRequestSchema = z.object({
25
+ sceneCollectionName: z.string()
26
+ });
27
+ const SetCurrentProfileRequestSchema = z.object({
28
+ profileName: z.string()
29
+ });
30
+ const CreateProfileRequestSchema = z.object({
31
+ profileName: z.string()
32
+ });
33
+ const RemoveProfileRequestSchema = z.object({
34
+ profileName: z.string()
35
+ });
36
+ const GetProfileParameterRequestSchema = z.object({
37
+ parameterCategory: z.string(),
38
+ parameterName: z.string()
39
+ });
40
+ const SetProfileParameterRequestSchema = z.object({
41
+ parameterCategory: z.string(),
42
+ parameterName: z.string(),
43
+ parameterValue: z.string()
44
+ });
45
+ const SetVideoSettingsRequestSchema = z.object({
46
+ fpsNumerator: z.number().min(1).optional(),
47
+ fpsDenominator: z.number().min(1).optional(),
48
+ baseWidth: z.number().min(1).max(4096).optional(),
49
+ baseHeight: z.number().min(1).max(4096).optional(),
50
+ outputWidth: z.number().min(1).max(4096).optional(),
51
+ outputHeight: z.number().min(1).max(4096).optional()
52
+ });
53
+ const SetStreamServiceSettingsRequestSchema = z.object({
54
+ streamServiceType: z.string(),
55
+ streamServiceSettings: jsonObjectSchema
56
+ });
57
+ const SetRecordDirectoryRequestSchema = z.object({
58
+ recordDirectory: z.string()
59
+ });
60
+ const GetPersistentDataResponseSchema = z.object({
61
+ slotValue: z.json()
62
+ });
63
+ const GetSceneCollectionListResponseSchema = z.object({
64
+ currentSceneCollectionName: z.string(),
65
+ sceneCollections: z.string().array()
66
+ });
67
+ const GetProfileListResponseSchema = z.object({
68
+ currentProfileName: z.string(),
69
+ profiles: z.string().array()
70
+ });
71
+ const GetProfileParameterResponseSchema = z.object({
72
+ parameterValue: z.string().nullable(),
73
+ defaultParameterValue: z.string().nullable()
74
+ });
75
+ const GetVideoSettingsResponseSchema = z.object({
76
+ fpsNumerator: z.number(),
77
+ fpsDenominator: z.number(),
78
+ baseWidth: z.number(),
79
+ baseHeight: z.number(),
80
+ outputWidth: z.number(),
81
+ outputHeight: z.number()
82
+ });
83
+ const GetStreamServiceSettingsResponseSchema = z.object({
84
+ streamServiceType: z.string(),
85
+ streamServiceSettings: jsonObjectSchema
86
+ });
87
+ const GetRecordDirectoryResponseSchema = z.object({
88
+ recordDirectory: z.string()
89
+ });
90
+ class ConfigModule extends BaseModule {
91
+ async getPersistentData(params) {
92
+ GetPersistentDataRequestSchema.parse(params);
93
+ const res = await this.obs.call("GetPersistentData", params);
94
+ return GetPersistentDataResponseSchema.parse(res);
95
+ }
96
+ async setPersistentData(params) {
97
+ SetPersistentDataRequestSchema.parse(params);
98
+ await this.obs.call("SetPersistentData", params);
99
+ }
100
+ async getSceneCollectionList() {
101
+ const res = await this.obs.call("GetSceneCollectionList");
102
+ return GetSceneCollectionListResponseSchema.parse(res);
103
+ }
104
+ async setCurrentSceneCollection(params) {
105
+ SetCurrentSceneCollectionRequestSchema.parse(params);
106
+ await this.obs.call("SetCurrentSceneCollection", params);
107
+ }
108
+ async createSceneCollection(params) {
109
+ CreateSceneCollectionRequestSchema.parse(params);
110
+ await this.obs.call("CreateSceneCollection", params);
111
+ }
112
+ async getProfileList() {
113
+ const res = await this.obs.call("GetProfileList");
114
+ return GetProfileListResponseSchema.parse(res);
115
+ }
116
+ async setCurrentProfile(params) {
117
+ SetCurrentProfileRequestSchema.parse(params);
118
+ await this.obs.call("SetCurrentProfile", params);
119
+ }
120
+ async createProfile(params) {
121
+ CreateProfileRequestSchema.parse(params);
122
+ await this.obs.call("CreateProfile", params);
123
+ }
124
+ async removeProfile(params) {
125
+ RemoveProfileRequestSchema.parse(params);
126
+ await this.obs.call("RemoveProfile", params);
127
+ }
128
+ async getProfileParameter(params) {
129
+ GetProfileParameterRequestSchema.parse(params);
130
+ const res = await this.obs.call("GetProfileParameter", params);
131
+ return GetProfileParameterResponseSchema.parse(res);
132
+ }
133
+ async setProfileParameter(params) {
134
+ SetProfileParameterRequestSchema.parse(params);
135
+ await this.obs.call("SetProfileParameter", params);
136
+ }
137
+ async getVideoSettings() {
138
+ const res = await this.obs.call("GetVideoSettings");
139
+ return GetVideoSettingsResponseSchema.parse(res);
140
+ }
141
+ async setVideoSettings(params) {
142
+ SetVideoSettingsRequestSchema.parse(params);
143
+ await this.obs.call("SetVideoSettings", params);
144
+ }
145
+ async getStreamServiceSettings() {
146
+ const res = await this.obs.call("GetStreamServiceSettings");
147
+ return GetStreamServiceSettingsResponseSchema.parse(res);
148
+ }
149
+ async setStreamServiceSettings(params) {
150
+ SetStreamServiceSettingsRequestSchema.parse(params);
151
+ await this.obs.call("SetStreamServiceSettings", params);
152
+ }
153
+ async getRecordDirectory() {
154
+ const res = await this.obs.call("GetRecordDirectory");
155
+ return GetRecordDirectoryResponseSchema.parse(res);
156
+ }
157
+ async setRecordDirectory(params) {
158
+ SetRecordDirectoryRequestSchema.parse(params);
159
+ await this.obs.call("SetRecordDirectory", params);
160
+ }
161
+ }
162
+
163
+ const GetSourceFilterListRequestSchema = z.object({
164
+ canvasUuid: z.string().optional(),
165
+ sourceName: z.string().optional(),
166
+ sourceUuid: z.string().optional()
167
+ });
168
+ const GetSourceFilterDefaultSettingsRequestSchema = z.object({
169
+ filterKind: z.string()
170
+ });
171
+ const CreateSourceFilterRequestSchema = z.object({
172
+ canvasUuid: z.string().optional(),
173
+ sourceName: z.string().optional(),
174
+ sourceUuid: z.string().optional(),
175
+ filterName: z.string(),
176
+ filterKind: z.string(),
177
+ filterSettings: jsonObjectSchema.optional()
178
+ });
179
+ const RemoveSourceFilterRequestSchema = z.object({
180
+ canvasUuid: z.string().optional(),
181
+ sourceName: z.string().optional(),
182
+ sourceUuid: z.string().optional(),
183
+ filterName: z.string()
184
+ });
185
+ const SetSourceFilterNameRequestSchema = z.object({
186
+ canvasUuid: z.string().optional(),
187
+ sourceName: z.string().optional(),
188
+ sourceUuid: z.string().optional(),
189
+ filterName: z.string(),
190
+ newFilterName: z.string()
191
+ });
192
+ const GetSourceFilterRequestSchema = z.object({
193
+ canvasUuid: z.string().optional(),
194
+ sourceName: z.string().optional(),
195
+ sourceUuid: z.string().optional(),
196
+ filterName: z.string()
197
+ });
198
+ const SetSourceFilterIndexRequestSchema = z.object({
199
+ canvasUuid: z.string().optional(),
200
+ sourceName: z.string().optional(),
201
+ sourceUuid: z.string().optional(),
202
+ filterName: z.string(),
203
+ filterIndex: z.number().min(0)
204
+ });
205
+ const SetSourceFilterSettingsRequestSchema = z.object({
206
+ canvasUuid: z.string().optional(),
207
+ sourceName: z.string().optional(),
208
+ sourceUuid: z.string().optional(),
209
+ filterName: z.string(),
210
+ filterSettings: jsonObjectSchema,
211
+ overlay: z.boolean().optional()
212
+ });
213
+ const SetSourceFilterEnabledRequestSchema = z.object({
214
+ canvasUuid: z.string().optional(),
215
+ sourceName: z.string().optional(),
216
+ sourceUuid: z.string().optional(),
217
+ filterName: z.string(),
218
+ filterEnabled: z.boolean()
219
+ });
220
+ const GetSourceFilterKindListResponseSchema = z.object({
221
+ sourceFilterKinds: z.string().array()
222
+ });
223
+ const GetSourceFilterListResponseSchema = z.object({
224
+ filters: jsonObjectSchema.array()
225
+ });
226
+ const GetSourceFilterDefaultSettingsResponseSchema = z.object({
227
+ defaultFilterSettings: jsonObjectSchema
228
+ });
229
+ const GetSourceFilterResponseSchema = z.object({
230
+ filterEnabled: z.boolean(),
231
+ filterIndex: z.number(),
232
+ filterKind: z.string(),
233
+ filterName: z.string(),
234
+ filterSettings: jsonObjectSchema
235
+ });
236
+ class FiltersModule extends BaseModule {
237
+ async getSourceFilterKindList() {
238
+ const res = await this.obs.call("GetSourceFilterKindList");
239
+ return GetSourceFilterKindListResponseSchema.parse(res);
240
+ }
241
+ async getSourceFilterList(params) {
242
+ GetSourceFilterListRequestSchema.parse(params);
243
+ const res = await this.obs.call("GetSourceFilterList", params);
244
+ return GetSourceFilterListResponseSchema.parse(res);
245
+ }
246
+ async getSourceFilterDefaultSettings(params) {
247
+ GetSourceFilterDefaultSettingsRequestSchema.parse(params);
248
+ const res = await this.obs.call("GetSourceFilterDefaultSettings", params);
249
+ return GetSourceFilterDefaultSettingsResponseSchema.parse(res);
250
+ }
251
+ async createSourceFilter(params) {
252
+ CreateSourceFilterRequestSchema.parse(params);
253
+ await this.obs.call("CreateSourceFilter", params);
254
+ }
255
+ async removeSourceFilter(params) {
256
+ RemoveSourceFilterRequestSchema.parse(params);
257
+ await this.obs.call("RemoveSourceFilter", params);
258
+ }
259
+ async setSourceFilterName(params) {
260
+ SetSourceFilterNameRequestSchema.parse(params);
261
+ await this.obs.call("SetSourceFilterName", params);
262
+ }
263
+ async getSourceFilter(params) {
264
+ GetSourceFilterRequestSchema.parse(params);
265
+ const res = await this.obs.call("GetSourceFilter", params);
266
+ return GetSourceFilterResponseSchema.parse(res);
267
+ }
268
+ async setSourceFilterIndex(params) {
269
+ SetSourceFilterIndexRequestSchema.parse(params);
270
+ await this.obs.call("SetSourceFilterIndex", params);
271
+ }
272
+ async setSourceFilterSettings(params) {
273
+ SetSourceFilterSettingsRequestSchema.parse(params);
274
+ await this.obs.call("SetSourceFilterSettings", params);
275
+ }
276
+ async setSourceFilterEnabled(params) {
277
+ SetSourceFilterEnabledRequestSchema.parse(params);
278
+ await this.obs.call("SetSourceFilterEnabled", params);
279
+ }
280
+ }
281
+
282
+ const GetVersionResponseSchema = z.object({
283
+ obsVersion: z.string(),
284
+ obsWebSocketVersion: z.string(),
285
+ rpcVersion: z.number(),
286
+ availableRequests: z.string().array(),
287
+ supportedImageFormats: z.string().array(),
288
+ platform: z.string(),
289
+ platformDescription: z.string()
290
+ });
291
+ const numOrNaN = z.union([z.number(), z.nan()]);
292
+ const GetStatsResponseSchema = z.object({
293
+ cpuUsage: numOrNaN,
294
+ memoryUsage: numOrNaN,
295
+ availableDiskSpace: numOrNaN,
296
+ activeFps: numOrNaN,
297
+ averageFrameRenderTime: numOrNaN,
298
+ renderSkippedFrames: numOrNaN,
299
+ renderTotalFrames: numOrNaN,
300
+ outputSkippedFrames: numOrNaN,
301
+ outputTotalFrames: numOrNaN,
302
+ webSocketSessionIncomingMessages: numOrNaN,
303
+ webSocketSessionOutgoingMessages: numOrNaN
304
+ });
305
+ const BroadcastCustomEventRequestSchema = z.object({
306
+ eventData: jsonObjectSchema
307
+ });
308
+ const CallVendorRequestRequestSchema = z.object({
309
+ vendorName: z.string(),
310
+ requestType: z.string(),
311
+ requestData: jsonObjectSchema.optional()
312
+ });
313
+ const CallVendorRequestResponseSchema = z.object({
314
+ vendorName: z.string(),
315
+ requestType: z.string(),
316
+ responseData: jsonObjectSchema
317
+ });
318
+ const GetHotkeyListResponseSchema = z.object({
319
+ hotkeys: z.string().array()
320
+ });
321
+ const TriggerHotkeyByNameRequestSchema = z.object({
322
+ hotkeyName: z.string(),
323
+ contextName: z.string().optional()
324
+ });
325
+ const TriggerHotkeyByKeySequenceRequestSchema = z.object({
326
+ keyId: z.string().optional(),
327
+ keyModifiers: z.object({
328
+ shift: z.boolean().optional(),
329
+ control: z.boolean().optional(),
330
+ alt: z.boolean().optional(),
331
+ command: z.boolean().optional()
332
+ }).optional()
333
+ });
334
+ class GeneralModule extends BaseModule {
335
+ async getVersion() {
336
+ const res = await this.obs.call("GetVersion");
337
+ return GetVersionResponseSchema.parse(res);
338
+ }
339
+ async getStats() {
340
+ const res = await this.obs.call("GetStats");
341
+ return GetStatsResponseSchema.parse(res);
342
+ }
343
+ async broadcastCustomEvent(params) {
344
+ BroadcastCustomEventRequestSchema.parse(params);
345
+ await this.obs.call("BroadcastCustomEvent", params);
346
+ }
347
+ async callVendorRequest(params) {
348
+ CallVendorRequestRequestSchema.parse(params);
349
+ const res = await this.obs.call("CallVendorRequest", params);
350
+ return CallVendorRequestResponseSchema.parse(res);
351
+ }
352
+ async getHotkeyList() {
353
+ const res = await this.obs.call("GetHotkeyList");
354
+ return GetHotkeyListResponseSchema.parse(res);
355
+ }
356
+ async triggerHotkeyByName(params) {
357
+ TriggerHotkeyByNameRequestSchema.parse(params);
358
+ await this.obs.call("TriggerHotkeyByName", params);
359
+ }
360
+ async triggerHotkeyByKeySequence(params) {
361
+ TriggerHotkeyByKeySequenceRequestSchema.parse(params);
362
+ await this.obs.call("TriggerHotkeyByKeySequence", params);
363
+ }
364
+ }
365
+
366
+ const GetInputListRequestSchema = z.object({
367
+ inputKind: z.string().optional()
368
+ });
369
+ const GetInputKindListRequestSchema = z.object({
370
+ unversioned: z.boolean().optional()
371
+ });
372
+ const CreateInputRequestSchema = z.object({
373
+ canvasUuid: z.string().optional(),
374
+ sceneName: z.string().optional(),
375
+ sceneUuid: z.string().optional(),
376
+ inputName: z.string(),
377
+ inputKind: z.string(),
378
+ inputSettings: jsonObjectSchema.optional(),
379
+ sceneItemEnabled: z.boolean().optional()
380
+ });
381
+ const RemoveInputRequestSchema = z.object({
382
+ inputName: z.string().optional(),
383
+ inputUuid: z.string().optional()
384
+ });
385
+ const SetInputNameRequestSchema = z.object({
386
+ inputName: z.string().optional(),
387
+ inputUuid: z.string().optional(),
388
+ newInputName: z.string()
389
+ });
390
+ const GetInputDefaultSettingsRequestSchema = z.object({
391
+ inputKind: z.string()
392
+ });
393
+ const GetInputSettingsRequestSchema = z.object({
394
+ inputName: z.string().optional(),
395
+ inputUuid: z.string().optional()
396
+ });
397
+ const SetInputSettingsRequestSchema = z.object({
398
+ inputName: z.string().optional(),
399
+ inputUuid: z.string().optional(),
400
+ inputSettings: jsonObjectSchema,
401
+ overlay: z.boolean().optional()
402
+ });
403
+ const GetInputMuteRequestSchema = z.object({
404
+ inputName: z.string().optional(),
405
+ inputUuid: z.string().optional()
406
+ });
407
+ const SetInputMuteRequestSchema = z.object({
408
+ inputName: z.string().optional(),
409
+ inputUuid: z.string().optional(),
410
+ inputMuted: z.boolean()
411
+ });
412
+ const ToggleInputMuteRequestSchema = z.object({
413
+ inputName: z.string().optional(),
414
+ inputUuid: z.string().optional()
415
+ });
416
+ const GetInputVolumeRequestSchema = z.object({
417
+ inputName: z.string().optional(),
418
+ inputUuid: z.string().optional()
419
+ });
420
+ const SetInputVolumeRequestSchema = z.object({
421
+ inputName: z.string().optional(),
422
+ inputUuid: z.string().optional(),
423
+ inputVolumeMul: z.number().min(0).max(20).optional(),
424
+ inputVolumeDb: z.number().min(-100).max(26).optional()
425
+ });
426
+ const GetInputAudioBalanceRequestSchema = z.object({
427
+ inputName: z.string().optional(),
428
+ inputUuid: z.string().optional()
429
+ });
430
+ const SetInputAudioBalanceRequestSchema = z.object({
431
+ inputName: z.string().optional(),
432
+ inputUuid: z.string().optional(),
433
+ inputAudioBalance: z.number().min(0).max(1)
434
+ });
435
+ const GetInputAudioSyncOffsetRequestSchema = z.object({
436
+ inputName: z.string().optional(),
437
+ inputUuid: z.string().optional()
438
+ });
439
+ const SetInputAudioSyncOffsetRequestSchema = z.object({
440
+ inputName: z.string().optional(),
441
+ inputUuid: z.string().optional(),
442
+ inputAudioSyncOffset: z.number().min(-950).max(2e4)
443
+ });
444
+ const GetInputAudioMonitorTypeRequestSchema = z.object({
445
+ inputName: z.string().optional(),
446
+ inputUuid: z.string().optional()
447
+ });
448
+ const SetInputAudioMonitorTypeRequestSchema = z.object({
449
+ inputName: z.string().optional(),
450
+ inputUuid: z.string().optional(),
451
+ monitorType: z.string()
452
+ });
453
+ const GetInputAudioTracksRequestSchema = z.object({
454
+ inputName: z.string().optional(),
455
+ inputUuid: z.string().optional()
456
+ });
457
+ const SetInputAudioTracksRequestSchema = z.object({
458
+ inputName: z.string().optional(),
459
+ inputUuid: z.string().optional(),
460
+ inputAudioTracks: jsonObjectSchema
461
+ });
462
+ const GetInputDeinterlaceModeRequestSchema = z.object({
463
+ inputName: z.string().optional(),
464
+ inputUuid: z.string().optional()
465
+ });
466
+ const SetInputDeinterlaceModeRequestSchema = z.object({
467
+ inputName: z.string().optional(),
468
+ inputUuid: z.string().optional(),
469
+ inputDeinterlaceMode: z.string()
470
+ });
471
+ const GetInputDeinterlaceFieldOrderRequestSchema = z.object({
472
+ inputName: z.string().optional(),
473
+ inputUuid: z.string().optional()
474
+ });
475
+ const SetInputDeinterlaceFieldOrderRequestSchema = z.object({
476
+ inputName: z.string().optional(),
477
+ inputUuid: z.string().optional(),
478
+ inputDeinterlaceFieldOrder: z.string()
479
+ });
480
+ const GetInputPropertiesListPropertyItemsRequestSchema = z.object({
481
+ inputName: z.string().optional(),
482
+ inputUuid: z.string().optional(),
483
+ propertyName: z.string()
484
+ });
485
+ const PressInputPropertiesButtonRequestSchema = z.object({
486
+ inputName: z.string().optional(),
487
+ inputUuid: z.string().optional(),
488
+ propertyName: z.string()
489
+ });
490
+ const GetInputListResponseSchema = z.object({
491
+ inputs: jsonObjectSchema.array()
492
+ });
493
+ const GetInputKindListResponseSchema = z.object({
494
+ inputKinds: z.string().array()
495
+ });
496
+ const GetSpecialInputsResponseSchema = z.object({
497
+ desktop1: z.string().nullable(),
498
+ desktop2: z.string().nullable(),
499
+ mic1: z.string().nullable(),
500
+ mic2: z.string().nullable(),
501
+ mic3: z.string().nullable(),
502
+ mic4: z.string().nullable()
503
+ });
504
+ const CreateInputResponseSchema = z.object({
505
+ inputUuid: z.string(),
506
+ sceneItemId: z.number()
507
+ });
508
+ const GetInputDefaultSettingsResponseSchema = z.object({
509
+ defaultInputSettings: jsonObjectSchema
510
+ });
511
+ const GetInputSettingsResponseSchema = z.object({
512
+ inputSettings: jsonObjectSchema,
513
+ inputKind: z.string()
514
+ });
515
+ const GetInputMuteResponseSchema = z.object({
516
+ inputMuted: z.boolean()
517
+ });
518
+ const ToggleInputMuteResponseSchema = z.object({
519
+ inputMuted: z.boolean()
520
+ });
521
+ const GetInputVolumeResponseSchema = z.object({
522
+ inputVolumeMul: z.number(),
523
+ inputVolumeDb: z.number()
524
+ });
525
+ const GetInputAudioBalanceResponseSchema = z.object({
526
+ inputAudioBalance: z.number()
527
+ });
528
+ const GetInputAudioSyncOffsetResponseSchema = z.object({
529
+ inputAudioSyncOffset: z.number()
530
+ });
531
+ const GetInputAudioMonitorTypeResponseSchema = z.object({
532
+ monitorType: z.string()
533
+ });
534
+ const GetInputAudioTracksResponseSchema = z.object({
535
+ inputAudioTracks: jsonObjectSchema
536
+ });
537
+ const GetInputDeinterlaceModeResponseSchema = z.object({
538
+ inputDeinterlaceMode: z.string()
539
+ });
540
+ const GetInputDeinterlaceFieldOrderResponseSchema = z.object({
541
+ inputDeinterlaceFieldOrder: z.string()
542
+ });
543
+ const GetInputPropertiesListPropertyItemsResponseSchema = z.object({
544
+ propertyItems: z.array(jsonObjectSchema)
545
+ });
546
+ class InputsModule extends BaseModule {
547
+ async getInputList(params) {
548
+ if (params) GetInputListRequestSchema.parse(params);
549
+ const res = await this.obs.call("GetInputList", params);
550
+ return GetInputListResponseSchema.parse(res);
551
+ }
552
+ async getInputKindList(params) {
553
+ if (params) GetInputKindListRequestSchema.parse(params);
554
+ const res = await this.obs.call("GetInputKindList", params);
555
+ return GetInputKindListResponseSchema.parse(res);
556
+ }
557
+ async getSpecialInputs() {
558
+ const res = await this.obs.call("GetSpecialInputs");
559
+ return GetSpecialInputsResponseSchema.parse(res);
560
+ }
561
+ async createInput(params) {
562
+ CreateInputRequestSchema.parse(params);
563
+ const res = await this.obs.call("CreateInput", params);
564
+ return CreateInputResponseSchema.parse(res);
565
+ }
566
+ async removeInput(params) {
567
+ RemoveInputRequestSchema.parse(params);
568
+ await this.obs.call("RemoveInput", params);
569
+ }
570
+ async setInputName(params) {
571
+ SetInputNameRequestSchema.parse(params);
572
+ await this.obs.call("SetInputName", params);
573
+ }
574
+ async getInputDefaultSettings(params) {
575
+ GetInputDefaultSettingsRequestSchema.parse(params);
576
+ const res = await this.obs.call("GetInputDefaultSettings", params);
577
+ return GetInputDefaultSettingsResponseSchema.parse(res);
578
+ }
579
+ async getInputSettings(params) {
580
+ GetInputSettingsRequestSchema.parse(params);
581
+ const res = await this.obs.call("GetInputSettings", params);
582
+ return GetInputSettingsResponseSchema.parse(res);
583
+ }
584
+ async setInputSettings(params) {
585
+ SetInputSettingsRequestSchema.parse(params);
586
+ await this.obs.call("SetInputSettings", params);
587
+ }
588
+ async getInputMute(params) {
589
+ GetInputMuteRequestSchema.parse(params);
590
+ const res = await this.obs.call("GetInputMute", params);
591
+ return GetInputMuteResponseSchema.parse(res);
592
+ }
593
+ async setInputMute(params) {
594
+ SetInputMuteRequestSchema.parse(params);
595
+ await this.obs.call("SetInputMute", params);
596
+ }
597
+ async toggleInputMute(params) {
598
+ ToggleInputMuteRequestSchema.parse(params);
599
+ const res = await this.obs.call("ToggleInputMute", params);
600
+ return ToggleInputMuteResponseSchema.parse(res);
601
+ }
602
+ async getInputVolume(params) {
603
+ GetInputVolumeRequestSchema.parse(params);
604
+ const res = await this.obs.call("GetInputVolume", params);
605
+ return GetInputVolumeResponseSchema.parse(res);
606
+ }
607
+ async setInputVolume(params) {
608
+ SetInputVolumeRequestSchema.parse(params);
609
+ await this.obs.call("SetInputVolume", params);
610
+ }
611
+ async getInputAudioBalance(params) {
612
+ GetInputAudioBalanceRequestSchema.parse(params);
613
+ const res = await this.obs.call("GetInputAudioBalance", params);
614
+ return GetInputAudioBalanceResponseSchema.parse(res);
615
+ }
616
+ async setInputAudioBalance(params) {
617
+ SetInputAudioBalanceRequestSchema.parse(params);
618
+ await this.obs.call("SetInputAudioBalance", params);
619
+ }
620
+ async getInputAudioSyncOffset(params) {
621
+ GetInputAudioSyncOffsetRequestSchema.parse(params);
622
+ const res = await this.obs.call("GetInputAudioSyncOffset", params);
623
+ return GetInputAudioSyncOffsetResponseSchema.parse(res);
624
+ }
625
+ async setInputAudioSyncOffset(params) {
626
+ SetInputAudioSyncOffsetRequestSchema.parse(params);
627
+ await this.obs.call("SetInputAudioSyncOffset", params);
628
+ }
629
+ async getInputAudioMonitorType(params) {
630
+ GetInputAudioMonitorTypeRequestSchema.parse(params);
631
+ const res = await this.obs.call("GetInputAudioMonitorType", params);
632
+ return GetInputAudioMonitorTypeResponseSchema.parse(res);
633
+ }
634
+ async setInputAudioMonitorType(params) {
635
+ SetInputAudioMonitorTypeRequestSchema.parse(params);
636
+ await this.obs.call("SetInputAudioMonitorType", params);
637
+ }
638
+ async getInputAudioTracks(params) {
639
+ GetInputAudioTracksRequestSchema.parse(params);
640
+ const res = await this.obs.call("GetInputAudioTracks", params);
641
+ return GetInputAudioTracksResponseSchema.parse(res);
642
+ }
643
+ async setInputAudioTracks(params) {
644
+ SetInputAudioTracksRequestSchema.parse(params);
645
+ await this.obs.call("SetInputAudioTracks", params);
646
+ }
647
+ async getInputDeinterlaceMode(params) {
648
+ GetInputDeinterlaceModeRequestSchema.parse(params);
649
+ const res = await this.obs.call("GetInputDeinterlaceMode", params);
650
+ return GetInputDeinterlaceModeResponseSchema.parse(res);
651
+ }
652
+ async setInputDeinterlaceMode(params) {
653
+ SetInputDeinterlaceModeRequestSchema.parse(params);
654
+ await this.obs.call("SetInputDeinterlaceMode", params);
655
+ }
656
+ async getInputDeinterlaceFieldOrder(params) {
657
+ GetInputDeinterlaceFieldOrderRequestSchema.parse(params);
658
+ const res = await this.obs.call("GetInputDeinterlaceFieldOrder", params);
659
+ return GetInputDeinterlaceFieldOrderResponseSchema.parse(res);
660
+ }
661
+ async setInputDeinterlaceFieldOrder(params) {
662
+ SetInputDeinterlaceFieldOrderRequestSchema.parse(params);
663
+ await this.obs.call("SetInputDeinterlaceFieldOrder", params);
664
+ }
665
+ async getInputPropertiesListPropertyItems(params) {
666
+ GetInputPropertiesListPropertyItemsRequestSchema.parse(params);
667
+ const res = await this.obs.call("GetInputPropertiesListPropertyItems", params);
668
+ return GetInputPropertiesListPropertyItemsResponseSchema.parse(res);
669
+ }
670
+ async pressInputPropertiesButton(params) {
671
+ PressInputPropertiesButtonRequestSchema.parse(params);
672
+ await this.obs.call("PressInputPropertiesButton", params);
673
+ }
674
+ }
675
+
676
+ const GetMediaInputStatusRequestSchema = z.object({
677
+ inputName: z.string().optional(),
678
+ inputUuid: z.string().optional()
679
+ });
680
+ const SetMediaInputCursorRequestSchema = z.object({
681
+ inputName: z.string().optional(),
682
+ inputUuid: z.string().optional(),
683
+ mediaCursor: z.number().min(0)
684
+ });
685
+ const OffsetMediaInputCursorRequestSchema = z.object({
686
+ inputName: z.string().optional(),
687
+ inputUuid: z.string().optional(),
688
+ mediaCursorOffset: z.number()
689
+ });
690
+ const TriggerMediaInputActionRequestSchema = z.object({
691
+ inputName: z.string().optional(),
692
+ inputUuid: z.string().optional(),
693
+ mediaAction: z.string()
694
+ });
695
+ const GetMediaInputStatusResponseSchema = z.object({
696
+ mediaState: z.string(),
697
+ mediaDuration: z.number().nullable(),
698
+ mediaCursor: z.number().nullable()
699
+ });
700
+ class MediaInputsModule extends BaseModule {
701
+ async getMediaInputStatus(params) {
702
+ GetMediaInputStatusRequestSchema.parse(params);
703
+ const res = await this.obs.call("GetMediaInputStatus", params);
704
+ return GetMediaInputStatusResponseSchema.parse(res);
705
+ }
706
+ async setMediaInputCursor(params) {
707
+ SetMediaInputCursorRequestSchema.parse(params);
708
+ await this.obs.call("SetMediaInputCursor", params);
709
+ }
710
+ async offsetMediaInputCursor(params) {
711
+ OffsetMediaInputCursorRequestSchema.parse(params);
712
+ await this.obs.call("OffsetMediaInputCursor", params);
713
+ }
714
+ async triggerMediaInputAction(params) {
715
+ TriggerMediaInputActionRequestSchema.parse(params);
716
+ await this.obs.call("TriggerMediaInputAction", params);
717
+ }
718
+ }
719
+
720
+ const GetOutputStatusRequestSchema = z.object({
721
+ outputName: z.string()
722
+ });
723
+ const ToggleOutputRequestSchema = z.object({
724
+ outputName: z.string()
725
+ });
726
+ const StartOutputRequestSchema = z.object({
727
+ outputName: z.string()
728
+ });
729
+ const StopOutputRequestSchema = z.object({
730
+ outputName: z.string()
731
+ });
732
+ const GetOutputSettingsRequestSchema = z.object({
733
+ outputName: z.string()
734
+ });
735
+ const SetOutputSettingsRequestSchema = z.object({
736
+ outputName: z.string(),
737
+ outputSettings: jsonObjectSchema
738
+ });
739
+ const GetVirtualCamStatusResponseSchema = z.object({
740
+ outputActive: z.boolean()
741
+ });
742
+ const ToggleVirtualCamResponseSchema = z.object({
743
+ outputActive: z.boolean()
744
+ });
745
+ const GetReplayBufferStatusResponseSchema = z.object({
746
+ outputActive: z.boolean()
747
+ });
748
+ const ToggleReplayBufferResponseSchema = z.object({
749
+ outputActive: z.boolean()
750
+ });
751
+ const GetLastReplayBufferReplayResponseSchema = z.object({
752
+ savedReplayPath: z.string()
753
+ });
754
+ const GetOutputListResponseSchema = z.object({
755
+ outputs: jsonObjectSchema.array()
756
+ });
757
+ const GetOutputStatusResponseSchema = z.object({
758
+ outputActive: z.boolean(),
759
+ outputReconnecting: z.boolean(),
760
+ outputTimecode: z.string(),
761
+ outputDuration: z.number(),
762
+ outputCongestion: z.number(),
763
+ outputBytes: z.number(),
764
+ outputSkippedFrames: z.number(),
765
+ outputTotalFrames: z.number()
766
+ });
767
+ const ToggleOutputResponseSchema = z.object({
768
+ outputActive: z.boolean()
769
+ });
770
+ const GetOutputSettingsResponseSchema = z.object({
771
+ outputSettings: jsonObjectSchema
772
+ });
773
+ class OutputsModule extends BaseModule {
774
+ async getVirtualCamStatus() {
775
+ const res = await this.obs.call("GetVirtualCamStatus");
776
+ return GetVirtualCamStatusResponseSchema.parse(res);
777
+ }
778
+ async toggleVirtualCam() {
779
+ const res = await this.obs.call("ToggleVirtualCam");
780
+ return ToggleVirtualCamResponseSchema.parse(res);
781
+ }
782
+ async startVirtualCam() {
783
+ await this.obs.call("StartVirtualCam");
784
+ }
785
+ async stopVirtualCam() {
786
+ await this.obs.call("StopVirtualCam");
787
+ }
788
+ async getReplayBufferStatus() {
789
+ const res = await this.obs.call("GetReplayBufferStatus");
790
+ return GetReplayBufferStatusResponseSchema.parse(res);
791
+ }
792
+ async toggleReplayBuffer() {
793
+ const res = await this.obs.call("ToggleReplayBuffer");
794
+ return ToggleReplayBufferResponseSchema.parse(res);
795
+ }
796
+ async startReplayBuffer() {
797
+ await this.obs.call("StartReplayBuffer");
798
+ }
799
+ async stopReplayBuffer() {
800
+ await this.obs.call("StopReplayBuffer");
801
+ }
802
+ async saveReplayBuffer() {
803
+ await this.obs.call("SaveReplayBuffer");
804
+ }
805
+ async getLastReplayBufferReplay() {
806
+ const res = await this.obs.call("GetLastReplayBufferReplay");
807
+ return GetLastReplayBufferReplayResponseSchema.parse(res);
808
+ }
809
+ async getOutputList() {
810
+ const res = await this.obs.call("GetOutputList");
811
+ return GetOutputListResponseSchema.parse(res);
812
+ }
813
+ async getOutputStatus(params) {
814
+ GetOutputStatusRequestSchema.parse(params);
815
+ const res = await this.obs.call("GetOutputStatus", params);
816
+ return GetOutputStatusResponseSchema.parse(res);
817
+ }
818
+ async toggleOutput(params) {
819
+ ToggleOutputRequestSchema.parse(params);
820
+ const res = await this.obs.call("ToggleOutput", params);
821
+ return ToggleOutputResponseSchema.parse(res);
822
+ }
823
+ async startOutput(params) {
824
+ StartOutputRequestSchema.parse(params);
825
+ await this.obs.call("StartOutput", params);
826
+ }
827
+ async stopOutput(params) {
828
+ StopOutputRequestSchema.parse(params);
829
+ await this.obs.call("StopOutput", params);
830
+ }
831
+ async getOutputSettings(params) {
832
+ GetOutputSettingsRequestSchema.parse(params);
833
+ const res = await this.obs.call("GetOutputSettings", params);
834
+ return GetOutputSettingsResponseSchema.parse(res);
835
+ }
836
+ async setOutputSettings(params) {
837
+ SetOutputSettingsRequestSchema.parse(params);
838
+ await this.obs.call("SetOutputSettings", params);
839
+ }
840
+ }
841
+
842
+ const CreateRecordChapterRequestSchema = z.object({
843
+ chapterName: z.string().optional()
844
+ });
845
+ const GetRecordStatusResponseSchema = z.object({
846
+ outputActive: z.boolean(),
847
+ outputPaused: z.boolean(),
848
+ outputTimecode: z.string(),
849
+ outputDuration: z.number(),
850
+ outputBytes: z.number()
851
+ });
852
+ const ToggleRecordResponseSchema = z.object({
853
+ outputActive: z.boolean()
854
+ });
855
+ const StopRecordResponseSchema = z.object({
856
+ outputPath: z.string()
857
+ });
858
+ class RecordModule extends BaseModule {
859
+ async getRecordStatus() {
860
+ const res = await this.obs.call("GetRecordStatus");
861
+ return GetRecordStatusResponseSchema.parse(res);
862
+ }
863
+ async toggleRecord() {
864
+ const res = await this.obs.call("ToggleRecord");
865
+ return ToggleRecordResponseSchema.parse(res);
866
+ }
867
+ async startRecord() {
868
+ await this.obs.call("StartRecord");
869
+ }
870
+ async stopRecord() {
871
+ const res = await this.obs.call("StopRecord");
872
+ return StopRecordResponseSchema.parse(res);
873
+ }
874
+ async toggleRecordPause() {
875
+ await this.obs.call("ToggleRecordPause");
876
+ }
877
+ async pauseRecord() {
878
+ await this.obs.call("PauseRecord");
879
+ }
880
+ async resumeRecord() {
881
+ await this.obs.call("ResumeRecord");
882
+ }
883
+ async splitRecordFile() {
884
+ await this.obs.call("SplitRecordFile");
885
+ }
886
+ async createRecordChapter(params) {
887
+ if (params) CreateRecordChapterRequestSchema.parse(params);
888
+ await this.obs.call("CreateRecordChapter", params);
889
+ }
890
+ }
891
+
892
+ const SceneRefSchema = z.object({
893
+ canvasUuid: z.string().optional(),
894
+ sceneName: z.string().optional(),
895
+ sceneUuid: z.string().optional()
896
+ });
897
+ const SceneItemRefSchema = SceneRefSchema.extend({
898
+ sceneItemId: z.number().min(0)
899
+ });
900
+ const GetSceneItemListRequestSchema = SceneRefSchema;
901
+ const GetGroupSceneItemListRequestSchema = SceneRefSchema;
902
+ const GetSceneItemIdRequestSchema = SceneRefSchema.extend({
903
+ sourceName: z.string(),
904
+ searchOffset: z.number().min(-1).optional()
905
+ });
906
+ const GetSceneItemSourceRequestSchema = SceneItemRefSchema;
907
+ const CreateSceneItemRequestSchema = SceneRefSchema.extend({
908
+ sourceName: z.string().optional(),
909
+ sourceUuid: z.string().optional(),
910
+ sceneItemEnabled: z.boolean().optional()
911
+ });
912
+ const RemoveSceneItemRequestSchema = SceneItemRefSchema;
913
+ const DuplicateSceneItemRequestSchema = SceneItemRefSchema.extend({
914
+ destinationSceneName: z.string().optional(),
915
+ destinationSceneUuid: z.string().optional()
916
+ });
917
+ const GetSceneItemTransformRequestSchema = SceneItemRefSchema;
918
+ const SetSceneItemTransformRequestSchema = SceneItemRefSchema.extend({
919
+ sceneItemTransform: jsonObjectSchema
920
+ });
921
+ const GetSceneItemEnabledRequestSchema = SceneItemRefSchema;
922
+ const SetSceneItemEnabledRequestSchema = SceneItemRefSchema.extend({
923
+ sceneItemEnabled: z.boolean()
924
+ });
925
+ const GetSceneItemLockedRequestSchema = SceneItemRefSchema;
926
+ const SetSceneItemLockedRequestSchema = SceneItemRefSchema.extend({
927
+ sceneItemLocked: z.boolean()
928
+ });
929
+ const GetSceneItemIndexRequestSchema = SceneItemRefSchema;
930
+ const SetSceneItemIndexRequestSchema = SceneItemRefSchema.extend({
931
+ sceneItemIndex: z.number().min(0)
932
+ });
933
+ const GetSceneItemBlendModeRequestSchema = SceneItemRefSchema;
934
+ const SetSceneItemBlendModeRequestSchema = SceneItemRefSchema.extend({
935
+ sceneItemBlendMode: z.string()
936
+ });
937
+ const GetSceneItemListResponseSchema = z.object({
938
+ sceneItems: jsonObjectSchema.array()
939
+ });
940
+ const GetGroupSceneItemListResponseSchema = z.object({
941
+ sceneItems: jsonObjectSchema.array()
942
+ });
943
+ const GetSceneItemIdResponseSchema = z.object({
944
+ sceneItemId: z.number()
945
+ });
946
+ const GetSceneItemSourceResponseSchema = z.object({
947
+ sourceName: z.string(),
948
+ sourceUuid: z.string()
949
+ });
950
+ const CreateSceneItemResponseSchema = z.object({
951
+ sceneItemId: z.number()
952
+ });
953
+ const DuplicateSceneItemResponseSchema = z.object({
954
+ sceneItemId: z.number()
955
+ });
956
+ const GetSceneItemTransformResponseSchema = z.object({
957
+ sceneItemTransform: jsonObjectSchema
958
+ });
959
+ const GetSceneItemEnabledResponseSchema = z.object({
960
+ sceneItemEnabled: z.boolean()
961
+ });
962
+ const GetSceneItemLockedResponseSchema = z.object({
963
+ sceneItemLocked: z.boolean()
964
+ });
965
+ const GetSceneItemIndexResponseSchema = z.object({
966
+ sceneItemIndex: z.number()
967
+ });
968
+ const GetSceneItemBlendModeResponseSchema = z.object({
969
+ sceneItemBlendMode: z.string()
970
+ });
971
+ class SceneItemsModule extends BaseModule {
972
+ async getSceneItemList(params) {
973
+ GetSceneItemListRequestSchema.parse(params);
974
+ const res = await this.obs.call("GetSceneItemList", params);
975
+ return GetSceneItemListResponseSchema.parse(res);
976
+ }
977
+ async getGroupSceneItemList(params) {
978
+ GetGroupSceneItemListRequestSchema.parse(params);
979
+ const res = await this.obs.call("GetGroupSceneItemList", params);
980
+ return GetGroupSceneItemListResponseSchema.parse(res);
981
+ }
982
+ async getSceneItemId(params) {
983
+ GetSceneItemIdRequestSchema.parse(params);
984
+ const res = await this.obs.call("GetSceneItemId", params);
985
+ return GetSceneItemIdResponseSchema.parse(res);
986
+ }
987
+ async getSceneItemSource(params) {
988
+ GetSceneItemSourceRequestSchema.parse(params);
989
+ const res = await this.obs.call("GetSceneItemSource", params);
990
+ return GetSceneItemSourceResponseSchema.parse(res);
991
+ }
992
+ async createSceneItem(params) {
993
+ CreateSceneItemRequestSchema.parse(params);
994
+ const res = await this.obs.call("CreateSceneItem", params);
995
+ return CreateSceneItemResponseSchema.parse(res);
996
+ }
997
+ async removeSceneItem(params) {
998
+ RemoveSceneItemRequestSchema.parse(params);
999
+ await this.obs.call("RemoveSceneItem", params);
1000
+ }
1001
+ async duplicateSceneItem(params) {
1002
+ DuplicateSceneItemRequestSchema.parse(params);
1003
+ const res = await this.obs.call("DuplicateSceneItem", params);
1004
+ return DuplicateSceneItemResponseSchema.parse(res);
1005
+ }
1006
+ async getSceneItemTransform(params) {
1007
+ GetSceneItemTransformRequestSchema.parse(params);
1008
+ const res = await this.obs.call("GetSceneItemTransform", params);
1009
+ return GetSceneItemTransformResponseSchema.parse(res);
1010
+ }
1011
+ async setSceneItemTransform(params) {
1012
+ SetSceneItemTransformRequestSchema.parse(params);
1013
+ await this.obs.call("SetSceneItemTransform", params);
1014
+ }
1015
+ async getSceneItemEnabled(params) {
1016
+ GetSceneItemEnabledRequestSchema.parse(params);
1017
+ const res = await this.obs.call("GetSceneItemEnabled", params);
1018
+ return GetSceneItemEnabledResponseSchema.parse(res);
1019
+ }
1020
+ async setSceneItemEnabled(params) {
1021
+ SetSceneItemEnabledRequestSchema.parse(params);
1022
+ await this.obs.call("SetSceneItemEnabled", params);
1023
+ }
1024
+ async getSceneItemLocked(params) {
1025
+ GetSceneItemLockedRequestSchema.parse(params);
1026
+ const res = await this.obs.call("GetSceneItemLocked", params);
1027
+ return GetSceneItemLockedResponseSchema.parse(res);
1028
+ }
1029
+ async setSceneItemLocked(params) {
1030
+ SetSceneItemLockedRequestSchema.parse(params);
1031
+ await this.obs.call("SetSceneItemLocked", params);
1032
+ }
1033
+ async getSceneItemIndex(params) {
1034
+ GetSceneItemIndexRequestSchema.parse(params);
1035
+ const res = await this.obs.call("GetSceneItemIndex", params);
1036
+ return GetSceneItemIndexResponseSchema.parse(res);
1037
+ }
1038
+ async setSceneItemIndex(params) {
1039
+ SetSceneItemIndexRequestSchema.parse(params);
1040
+ await this.obs.call("SetSceneItemIndex", params);
1041
+ }
1042
+ async getSceneItemBlendMode(params) {
1043
+ GetSceneItemBlendModeRequestSchema.parse(params);
1044
+ const res = await this.obs.call("GetSceneItemBlendMode", params);
1045
+ return GetSceneItemBlendModeResponseSchema.parse(res);
1046
+ }
1047
+ async setSceneItemBlendMode(params) {
1048
+ SetSceneItemBlendModeRequestSchema.parse(params);
1049
+ await this.obs.call("SetSceneItemBlendMode", params);
1050
+ }
1051
+ }
1052
+
1053
+ const GetSceneListRequestSchema = z.object({
1054
+ canvasUuid: z.string().optional()
1055
+ });
1056
+ const SetCurrentProgramSceneRequestSchema = z.object({
1057
+ sceneName: z.string().optional(),
1058
+ sceneUuid: z.string().optional()
1059
+ });
1060
+ const SetCurrentPreviewSceneRequestSchema = z.object({
1061
+ sceneName: z.string().optional(),
1062
+ sceneUuid: z.string().optional()
1063
+ });
1064
+ const CreateSceneRequestSchema = z.object({
1065
+ canvasUuid: z.string().optional(),
1066
+ sceneName: z.string()
1067
+ });
1068
+ const RemoveSceneRequestSchema = z.object({
1069
+ canvasUuid: z.string().optional(),
1070
+ sceneName: z.string().optional(),
1071
+ sceneUuid: z.string().optional()
1072
+ });
1073
+ const SetSceneNameRequestSchema = z.object({
1074
+ canvasUuid: z.string().optional(),
1075
+ sceneName: z.string().optional(),
1076
+ sceneUuid: z.string().optional(),
1077
+ newSceneName: z.string()
1078
+ });
1079
+ const GetSceneSceneTransitionOverrideRequestSchema = z.object({
1080
+ canvasUuid: z.string().optional(),
1081
+ sceneName: z.string().optional(),
1082
+ sceneUuid: z.string().optional()
1083
+ });
1084
+ const SetSceneSceneTransitionOverrideRequestSchema = z.object({
1085
+ canvasUuid: z.string().optional(),
1086
+ sceneName: z.string().optional(),
1087
+ sceneUuid: z.string().optional(),
1088
+ transitionName: z.string().optional(),
1089
+ transitionDuration: z.number().min(50).max(2e4).optional()
1090
+ });
1091
+ const GetSceneListResponseSchema = z.object({
1092
+ currentProgramSceneName: z.string().nullable(),
1093
+ currentProgramSceneUuid: z.string().nullable(),
1094
+ currentPreviewSceneName: z.string().nullable(),
1095
+ currentPreviewSceneUuid: z.string().nullable(),
1096
+ scenes: jsonObjectSchema.array()
1097
+ });
1098
+ const GetGroupListResponseSchema = z.object({
1099
+ groups: z.string().array()
1100
+ });
1101
+ const GetCurrentProgramSceneResponseSchema = z.object({
1102
+ sceneName: z.string(),
1103
+ sceneUuid: z.string(),
1104
+ currentProgramSceneName: z.string(),
1105
+ currentProgramSceneUuid: z.string()
1106
+ });
1107
+ const GetCurrentPreviewSceneResponseSchema = z.object({
1108
+ sceneName: z.string(),
1109
+ sceneUuid: z.string(),
1110
+ currentPreviewSceneName: z.string(),
1111
+ currentPreviewSceneUuid: z.string()
1112
+ });
1113
+ const CreateSceneResponseSchema = z.object({
1114
+ sceneUuid: z.string()
1115
+ });
1116
+ const GetSceneSceneTransitionOverrideResponseSchema = z.object({
1117
+ transitionName: z.string().nullable(),
1118
+ transitionDuration: z.number().nullable()
1119
+ });
1120
+ class ScenesModule extends BaseModule {
1121
+ async getSceneList(params) {
1122
+ if (params) GetSceneListRequestSchema.parse(params);
1123
+ const res = await this.obs.call("GetSceneList", params);
1124
+ return GetSceneListResponseSchema.parse(res);
1125
+ }
1126
+ async getGroupList() {
1127
+ const res = await this.obs.call("GetGroupList");
1128
+ return GetGroupListResponseSchema.parse(res);
1129
+ }
1130
+ async getCurrentProgramScene() {
1131
+ const res = await this.obs.call("GetCurrentProgramScene");
1132
+ return GetCurrentProgramSceneResponseSchema.parse(res);
1133
+ }
1134
+ async setCurrentProgramScene(params) {
1135
+ SetCurrentProgramSceneRequestSchema.parse(params);
1136
+ await this.obs.call("SetCurrentProgramScene", params);
1137
+ }
1138
+ async getCurrentPreviewScene() {
1139
+ const res = await this.obs.call("GetCurrentPreviewScene");
1140
+ return GetCurrentPreviewSceneResponseSchema.parse(res);
1141
+ }
1142
+ async setCurrentPreviewScene(params) {
1143
+ SetCurrentPreviewSceneRequestSchema.parse(params);
1144
+ await this.obs.call("SetCurrentPreviewScene", params);
1145
+ }
1146
+ async createScene(params) {
1147
+ CreateSceneRequestSchema.parse(params);
1148
+ const res = await this.obs.call("CreateScene", params);
1149
+ return CreateSceneResponseSchema.parse(res);
1150
+ }
1151
+ async removeScene(params) {
1152
+ RemoveSceneRequestSchema.parse(params);
1153
+ await this.obs.call("RemoveScene", params);
1154
+ }
1155
+ async setSceneName(params) {
1156
+ SetSceneNameRequestSchema.parse(params);
1157
+ await this.obs.call("SetSceneName", params);
1158
+ }
1159
+ async getSceneSceneTransitionOverride(params) {
1160
+ GetSceneSceneTransitionOverrideRequestSchema.parse(params);
1161
+ const res = await this.obs.call("GetSceneSceneTransitionOverride", params);
1162
+ return GetSceneSceneTransitionOverrideResponseSchema.parse(res);
1163
+ }
1164
+ async setSceneSceneTransitionOverride(params) {
1165
+ SetSceneSceneTransitionOverrideRequestSchema.parse(params);
1166
+ await this.obs.call("SetSceneSceneTransitionOverride", params);
1167
+ }
1168
+ }
1169
+
1170
+ const GetSourceActiveRequestSchema = z.object({
1171
+ canvasUuid: z.string().optional(),
1172
+ sourceName: z.string().optional(),
1173
+ sourceUuid: z.string().optional()
1174
+ });
1175
+ const GetSourceScreenshotRequestSchema = z.object({
1176
+ canvasUuid: z.string().optional(),
1177
+ sourceName: z.string().optional(),
1178
+ sourceUuid: z.string().optional(),
1179
+ imageFormat: z.string(),
1180
+ imageWidth: z.number().min(8).max(4096).optional(),
1181
+ imageHeight: z.number().min(8).max(4096).optional(),
1182
+ imageCompressionQuality: z.number().min(-1).max(100).optional()
1183
+ });
1184
+ const SaveSourceScreenshotRequestSchema = z.object({
1185
+ canvasUuid: z.string().optional(),
1186
+ sourceName: z.string().optional(),
1187
+ sourceUuid: z.string().optional(),
1188
+ imageFormat: z.string(),
1189
+ imageFilePath: z.string(),
1190
+ imageWidth: z.number().min(8).max(4096).optional(),
1191
+ imageHeight: z.number().min(8).max(4096).optional(),
1192
+ imageCompressionQuality: z.number().min(-1).max(100).optional()
1193
+ });
1194
+ const GetSourceActiveResponseSchema = z.object({
1195
+ videoActive: z.boolean(),
1196
+ videoShowing: z.boolean()
1197
+ });
1198
+ const GetSourceScreenshotResponseSchema = z.object({
1199
+ imageData: z.string()
1200
+ });
1201
+ const GetCanvasListResponseSchema = z.object({
1202
+ canvases: jsonObjectSchema.array()
1203
+ });
1204
+ class SourcesModule extends BaseModule {
1205
+ async getSourceActive(params) {
1206
+ GetSourceActiveRequestSchema.parse(params);
1207
+ const res = await this.obs.call("GetSourceActive", params);
1208
+ return GetSourceActiveResponseSchema.parse(res);
1209
+ }
1210
+ async getSourceScreenshot(params) {
1211
+ GetSourceScreenshotRequestSchema.parse(params);
1212
+ const res = await this.obs.call("GetSourceScreenshot", params);
1213
+ return GetSourceScreenshotResponseSchema.parse(res);
1214
+ }
1215
+ async saveSourceScreenshot(params) {
1216
+ SaveSourceScreenshotRequestSchema.parse(params);
1217
+ await this.obs.call("SaveSourceScreenshot", params);
1218
+ }
1219
+ async getCanvasList() {
1220
+ const res = await this.obs.call("GetCanvasList");
1221
+ return GetCanvasListResponseSchema.parse(res);
1222
+ }
1223
+ }
1224
+
1225
+ const SendStreamCaptionRequestSchema = z.object({
1226
+ captionText: z.string()
1227
+ });
1228
+ const GetStreamStatusResponseSchema = z.object({
1229
+ outputActive: z.boolean(),
1230
+ outputReconnecting: z.boolean(),
1231
+ outputTimecode: z.string(),
1232
+ outputDuration: z.number(),
1233
+ outputCongestion: z.number(),
1234
+ outputBytes: z.number(),
1235
+ outputSkippedFrames: z.number(),
1236
+ outputTotalFrames: z.number()
1237
+ });
1238
+ const ToggleStreamResponseSchema = z.object({
1239
+ outputActive: z.boolean()
1240
+ });
1241
+ class StreamModule extends BaseModule {
1242
+ async getStreamStatus() {
1243
+ const res = await this.obs.call("GetStreamStatus");
1244
+ return GetStreamStatusResponseSchema.parse(res);
1245
+ }
1246
+ async toggleStream() {
1247
+ const res = await this.obs.call("ToggleStream");
1248
+ return ToggleStreamResponseSchema.parse(res);
1249
+ }
1250
+ async startStream() {
1251
+ await this.obs.call("StartStream");
1252
+ }
1253
+ async stopStream() {
1254
+ await this.obs.call("StopStream");
1255
+ }
1256
+ async sendStreamCaption(params) {
1257
+ SendStreamCaptionRequestSchema.parse(params);
1258
+ await this.obs.call("SendStreamCaption", params);
1259
+ }
1260
+ }
1261
+
1262
+ const SetCurrentSceneTransitionRequestSchema = z.object({
1263
+ transitionName: z.string()
1264
+ });
1265
+ const SetCurrentSceneTransitionDurationRequestSchema = z.object({
1266
+ transitionDuration: z.number().min(50).max(2e4)
1267
+ });
1268
+ const SetCurrentSceneTransitionSettingsRequestSchema = z.object({
1269
+ transitionSettings: jsonObjectSchema,
1270
+ overlay: z.boolean().optional()
1271
+ });
1272
+ const SetTBarPositionRequestSchema = z.object({
1273
+ position: z.number().min(0).max(1),
1274
+ release: z.boolean().optional()
1275
+ });
1276
+ const GetTransitionKindListResponseSchema = z.object({
1277
+ transitionKinds: z.string().array()
1278
+ });
1279
+ const GetSceneTransitionListResponseSchema = z.object({
1280
+ currentSceneTransitionName: z.string().nullable(),
1281
+ currentSceneTransitionUuid: z.string().nullable(),
1282
+ currentSceneTransitionKind: z.string().nullable(),
1283
+ transitions: jsonObjectSchema.array()
1284
+ });
1285
+ const GetCurrentSceneTransitionResponseSchema = z.object({
1286
+ transitionName: z.string(),
1287
+ transitionUuid: z.string(),
1288
+ transitionKind: z.string(),
1289
+ transitionFixed: z.boolean(),
1290
+ transitionDuration: z.number().nullable(),
1291
+ transitionConfigurable: z.boolean(),
1292
+ transitionSettings: jsonObjectSchema.nullable()
1293
+ });
1294
+ const GetCurrentSceneTransitionCursorResponseSchema = z.object({
1295
+ transitionCursor: z.number()
1296
+ });
1297
+ class TransitionsModule extends BaseModule {
1298
+ async getTransitionKindList() {
1299
+ const res = await this.obs.call("GetTransitionKindList");
1300
+ return GetTransitionKindListResponseSchema.parse(res);
1301
+ }
1302
+ async getSceneTransitionList() {
1303
+ const res = await this.obs.call("GetSceneTransitionList");
1304
+ return GetSceneTransitionListResponseSchema.parse(res);
1305
+ }
1306
+ async getCurrentSceneTransition() {
1307
+ const res = await this.obs.call("GetCurrentSceneTransition");
1308
+ return GetCurrentSceneTransitionResponseSchema.parse(res);
1309
+ }
1310
+ async setCurrentSceneTransition(params) {
1311
+ SetCurrentSceneTransitionRequestSchema.parse(params);
1312
+ await this.obs.call("SetCurrentSceneTransition", params);
1313
+ }
1314
+ async setCurrentSceneTransitionDuration(params) {
1315
+ SetCurrentSceneTransitionDurationRequestSchema.parse(params);
1316
+ await this.obs.call("SetCurrentSceneTransitionDuration", params);
1317
+ }
1318
+ async setCurrentSceneTransitionSettings(params) {
1319
+ SetCurrentSceneTransitionSettingsRequestSchema.parse(params);
1320
+ await this.obs.call("SetCurrentSceneTransitionSettings", params);
1321
+ }
1322
+ async getCurrentSceneTransitionCursor() {
1323
+ const res = await this.obs.call("GetCurrentSceneTransitionCursor");
1324
+ return GetCurrentSceneTransitionCursorResponseSchema.parse(res);
1325
+ }
1326
+ async triggerStudioModeTransition() {
1327
+ await this.obs.call("TriggerStudioModeTransition");
1328
+ }
1329
+ async setTBarPosition(params) {
1330
+ SetTBarPositionRequestSchema.parse(params);
1331
+ await this.obs.call("SetTBarPosition", params);
1332
+ }
1333
+ }
1334
+
1335
+ const SetStudioModeEnabledRequestSchema = z.object({
1336
+ studioModeEnabled: z.boolean()
1337
+ });
1338
+ const OpenInputPropertiesDialogRequestSchema = z.object({
1339
+ inputName: z.string().optional(),
1340
+ inputUuid: z.string().optional()
1341
+ });
1342
+ const OpenInputFiltersDialogRequestSchema = z.object({
1343
+ inputName: z.string().optional(),
1344
+ inputUuid: z.string().optional()
1345
+ });
1346
+ const OpenInputInteractDialogRequestSchema = z.object({
1347
+ inputName: z.string().optional(),
1348
+ inputUuid: z.string().optional()
1349
+ });
1350
+ const OpenVideoMixProjectorRequestSchema = z.object({
1351
+ videoMixType: z.string(),
1352
+ monitorIndex: z.number().optional(),
1353
+ projectorGeometry: z.string().optional()
1354
+ });
1355
+ const OpenSourceProjectorRequestSchema = z.object({
1356
+ canvasUuid: z.string().optional(),
1357
+ sourceName: z.string().optional(),
1358
+ sourceUuid: z.string().optional(),
1359
+ monitorIndex: z.number().optional(),
1360
+ projectorGeometry: z.string().optional()
1361
+ });
1362
+ const GetStudioModeEnabledResponseSchema = z.object({
1363
+ studioModeEnabled: z.boolean()
1364
+ });
1365
+ const GetMonitorListResponseSchema = z.object({
1366
+ monitors: jsonObjectSchema.array()
1367
+ });
1368
+ class UiModule extends BaseModule {
1369
+ async getStudioModeEnabled() {
1370
+ const res = await this.obs.call("GetStudioModeEnabled");
1371
+ return GetStudioModeEnabledResponseSchema.parse(res);
1372
+ }
1373
+ async setStudioModeEnabled(params) {
1374
+ SetStudioModeEnabledRequestSchema.parse(params);
1375
+ await this.obs.call("SetStudioModeEnabled", params);
1376
+ }
1377
+ async openInputPropertiesDialog(params) {
1378
+ OpenInputPropertiesDialogRequestSchema.parse(params);
1379
+ await this.obs.call("OpenInputPropertiesDialog", params);
1380
+ }
1381
+ async openInputFiltersDialog(params) {
1382
+ OpenInputFiltersDialogRequestSchema.parse(params);
1383
+ await this.obs.call("OpenInputFiltersDialog", params);
1384
+ }
1385
+ async openInputInteractDialog(params) {
1386
+ OpenInputInteractDialogRequestSchema.parse(params);
1387
+ await this.obs.call("OpenInputInteractDialog", params);
1388
+ }
1389
+ async getMonitorList() {
1390
+ const res = await this.obs.call("GetMonitorList");
1391
+ return GetMonitorListResponseSchema.parse(res);
1392
+ }
1393
+ async openVideoMixProjector(params) {
1394
+ OpenVideoMixProjectorRequestSchema.parse(params);
1395
+ await this.obs.call("OpenVideoMixProjector", params);
1396
+ }
1397
+ async openSourceProjector(params) {
1398
+ OpenSourceProjectorRequestSchema.parse(params);
1399
+ await this.obs.call("OpenSourceProjector", params);
1400
+ }
1401
+ }
1402
+
1403
+ class OBSDK {
1404
+ obs;
1405
+ general;
1406
+ config;
1407
+ sources;
1408
+ scenes;
1409
+ inputs;
1410
+ transitions;
1411
+ filters;
1412
+ sceneItems;
1413
+ outputs;
1414
+ stream;
1415
+ record;
1416
+ mediaInputs;
1417
+ ui;
1418
+ constructor() {
1419
+ this.obs = new OBSWebSocket();
1420
+ this.general = new GeneralModule(this.obs);
1421
+ this.config = new ConfigModule(this.obs);
1422
+ this.sources = new SourcesModule(this.obs);
1423
+ this.scenes = new ScenesModule(this.obs);
1424
+ this.inputs = new InputsModule(this.obs);
1425
+ this.transitions = new TransitionsModule(this.obs);
1426
+ this.filters = new FiltersModule(this.obs);
1427
+ this.sceneItems = new SceneItemsModule(this.obs);
1428
+ this.outputs = new OutputsModule(this.obs);
1429
+ this.stream = new StreamModule(this.obs);
1430
+ this.record = new RecordModule(this.obs);
1431
+ this.mediaInputs = new MediaInputsModule(this.obs);
1432
+ this.ui = new UiModule(this.obs);
1433
+ }
1434
+ async connect(url, password, identificationParams) {
1435
+ await this.obs.connect(url, password, identificationParams);
1436
+ }
1437
+ async disconnect() {
1438
+ await this.obs.disconnect();
1439
+ }
1440
+ callBatch = (...args) => {
1441
+ return this.obs.callBatch(...args);
1442
+ };
1443
+ on = (...args) => {
1444
+ return this.obs.on(...args);
1445
+ };
1446
+ once = (...args) => {
1447
+ return this.obs.once(...args);
1448
+ };
1449
+ off = (...args) => {
1450
+ return this.obs.off(...args);
1451
+ };
1452
+ addListener = (...args) => {
1453
+ return this.obs.addListener(...args);
1454
+ };
1455
+ removeListener = (...args) => {
1456
+ return this.obs.removeListener(...args);
1457
+ };
1458
+ removeAllListeners = (...args) => {
1459
+ return this.obs.removeAllListeners(...args);
1460
+ };
1461
+ }
1462
+
1463
+ export { ConfigModule, FiltersModule, GeneralModule, InputsModule, MediaInputsModule, OBSDK, OutputsModule, RecordModule, SceneItemsModule, ScenesModule, SourcesModule, StreamModule, TransitionsModule, UiModule };