@livo-tv/sdk 1.4.0 → 1.6.0
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/studio/index.cjs +1250 -371
- package/dist/studio/index.cjs.map +1 -1
- package/dist/studio/index.d.cts +59 -4
- package/dist/studio/index.d.ts +59 -4
- package/dist/studio/index.js +1251 -373
- package/dist/studio/index.js.map +1 -1
- package/dist/styles.css +5 -0
- package/package.json +3 -2
package/dist/studio/index.d.cts
CHANGED
|
@@ -9,6 +9,7 @@ type StudioStreamSummary = {
|
|
|
9
9
|
title: string;
|
|
10
10
|
status: string;
|
|
11
11
|
encoderLostAt?: number | null;
|
|
12
|
+
captionsEnabled?: boolean;
|
|
12
13
|
};
|
|
13
14
|
type StudioSession = {
|
|
14
15
|
authToken: string;
|
|
@@ -113,6 +114,15 @@ declare class StudioControlClient {
|
|
|
113
114
|
declare function createStudioControlClient(options: StudioControlClientOptions): StudioControlClient;
|
|
114
115
|
declare function controlActionsFromClient(client: StudioControlClient): StudioControlActions;
|
|
115
116
|
|
|
117
|
+
type StudioVideoFilter = "none" | "grayscale" | "sepia" | "warm" | "cool" | "bright";
|
|
118
|
+
type StudioVideoBackground = "none" | "blur" | "image";
|
|
119
|
+
type StudioVideoEffectsConfig = {
|
|
120
|
+
background: StudioVideoBackground;
|
|
121
|
+
blurStrength: number;
|
|
122
|
+
imageUrl?: string;
|
|
123
|
+
filter: StudioVideoFilter;
|
|
124
|
+
};
|
|
125
|
+
|
|
116
126
|
type StudioDeviceKind = "audio" | "video" | "speaker";
|
|
117
127
|
type StudioDeviceOption = {
|
|
118
128
|
deviceId: string;
|
|
@@ -212,6 +222,8 @@ type StudioMeetingHandle = {
|
|
|
212
222
|
listDevices: () => Promise<StudioDevices>;
|
|
213
223
|
setDevice: (kind: StudioDeviceKind, deviceId: string) => Promise<void>;
|
|
214
224
|
setDisplayName: (name: string) => Promise<void>;
|
|
225
|
+
setVideoEffects: (config: StudioVideoEffectsConfig) => Promise<void>;
|
|
226
|
+
videoEffects: () => StudioVideoEffectsConfig;
|
|
215
227
|
livestreamState: () => string | null;
|
|
216
228
|
roomState: () => string | null;
|
|
217
229
|
startLivestream: () => Promise<void>;
|
|
@@ -316,6 +328,9 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
|
|
|
316
328
|
pipTitle: string;
|
|
317
329
|
pipError: string;
|
|
318
330
|
screenUnsupportedDevice: string;
|
|
331
|
+
screenDownloadAppTitle: string;
|
|
332
|
+
screenDownloadAppAction: string;
|
|
333
|
+
screenDownloadAppDismiss: string;
|
|
319
334
|
screenNotAllowed: string;
|
|
320
335
|
askToShare: string;
|
|
321
336
|
shareRequested: string;
|
|
@@ -385,6 +400,36 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
|
|
|
385
400
|
chatUnpin: string;
|
|
386
401
|
chatSave: string;
|
|
387
402
|
waitingSkeleton: string;
|
|
403
|
+
more: string;
|
|
404
|
+
captions: string;
|
|
405
|
+
captionsOn: string;
|
|
406
|
+
captionsOff: string;
|
|
407
|
+
captionsNotReady: string;
|
|
408
|
+
captionsDelayed: string;
|
|
409
|
+
captionsLanguage: string;
|
|
410
|
+
captionsSize: string;
|
|
411
|
+
captionsSizeS: string;
|
|
412
|
+
captionsSizeM: string;
|
|
413
|
+
captionsSizeL: string;
|
|
414
|
+
settingsGeneral: string;
|
|
415
|
+
settingsAudio: string;
|
|
416
|
+
settingsVideo: string;
|
|
417
|
+
settingsEffects: string;
|
|
418
|
+
settingsSubtitles: string;
|
|
419
|
+
effectNone: string;
|
|
420
|
+
effectBlur: string;
|
|
421
|
+
effectBlurStrong: string;
|
|
422
|
+
effectBackgrounds: string;
|
|
423
|
+
effectFilters: string;
|
|
424
|
+
effectFilterNone: string;
|
|
425
|
+
effectFilterGrayscale: string;
|
|
426
|
+
effectFilterSepia: string;
|
|
427
|
+
effectFilterWarm: string;
|
|
428
|
+
effectFilterCool: string;
|
|
429
|
+
effectFilterBright: string;
|
|
430
|
+
localeEn: string;
|
|
431
|
+
localeEs: string;
|
|
432
|
+
localePt: string;
|
|
388
433
|
};
|
|
389
434
|
|
|
390
435
|
type StudioDeviceSelection = {
|
|
@@ -393,7 +438,7 @@ type StudioDeviceSelection = {
|
|
|
393
438
|
speaker: string;
|
|
394
439
|
};
|
|
395
440
|
|
|
396
|
-
declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, }: {
|
|
441
|
+
declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, appDownloadUrl, captionsBaseUrl, apiUrl, cdnBase, }: {
|
|
397
442
|
session: StudioSession;
|
|
398
443
|
meeting: StudioMeetingHandle;
|
|
399
444
|
control: StudioControlActions;
|
|
@@ -410,6 +455,10 @@ declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejo
|
|
|
410
455
|
initialCameraOn?: boolean;
|
|
411
456
|
initialMuted?: boolean;
|
|
412
457
|
initialDevices?: StudioDeviceSelection;
|
|
458
|
+
appDownloadUrl?: string;
|
|
459
|
+
captionsBaseUrl?: string;
|
|
460
|
+
apiUrl?: string;
|
|
461
|
+
cdnBase?: string;
|
|
413
462
|
}): react.JSX.Element;
|
|
414
463
|
|
|
415
464
|
declare function StudioSkeleton(): react.JSX.Element;
|
|
@@ -465,7 +514,7 @@ declare function StudioWindowGate({ lockKey, allowTakeover, labels, children, }:
|
|
|
465
514
|
children: ReactNode;
|
|
466
515
|
}): react.JSX.Element;
|
|
467
516
|
|
|
468
|
-
declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, }: {
|
|
517
|
+
declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, appDownloadUrl, }: {
|
|
469
518
|
token: string;
|
|
470
519
|
apiUrl?: string;
|
|
471
520
|
labels: StudioRoomLabels;
|
|
@@ -474,6 +523,7 @@ declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chr
|
|
|
474
523
|
chrome?: ReactNode;
|
|
475
524
|
playerOrigin?: string;
|
|
476
525
|
theme?: string | null;
|
|
526
|
+
appDownloadUrl?: string;
|
|
477
527
|
}): react.JSX.Element;
|
|
478
528
|
|
|
479
529
|
type StudioLobbyLabels = {
|
|
@@ -494,7 +544,7 @@ type StudioLobbyLabels = {
|
|
|
494
544
|
joinBusy: string;
|
|
495
545
|
endedTitle: string;
|
|
496
546
|
};
|
|
497
|
-
declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, }: {
|
|
547
|
+
declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, appDownloadUrl, }: {
|
|
498
548
|
token: string;
|
|
499
549
|
apiUrl?: string;
|
|
500
550
|
labels: StudioRoomLabels;
|
|
@@ -502,6 +552,7 @@ declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, pl
|
|
|
502
552
|
embed?: boolean;
|
|
503
553
|
playerOrigin?: string;
|
|
504
554
|
theme?: string | null;
|
|
555
|
+
appDownloadUrl?: string;
|
|
505
556
|
}): react.JSX.Element;
|
|
506
557
|
|
|
507
558
|
declare function useRealtimeKitMeeting(authToken: string | null, generation?: number): {
|
|
@@ -526,5 +577,9 @@ declare function getStudioJoinStatus(token: string, apiUrl?: string, fetchFn?: t
|
|
|
526
577
|
streamStatus: string | null;
|
|
527
578
|
} | "ended">;
|
|
528
579
|
declare function getPublicStreamStatus(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<string | null>;
|
|
580
|
+
declare function getPublicStreamMeta(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<{
|
|
581
|
+
status: string;
|
|
582
|
+
captionsEnabled: boolean;
|
|
583
|
+
} | null>;
|
|
529
584
|
|
|
530
|
-
export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };
|
|
585
|
+
export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamMeta, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };
|
package/dist/studio/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ type StudioStreamSummary = {
|
|
|
9
9
|
title: string;
|
|
10
10
|
status: string;
|
|
11
11
|
encoderLostAt?: number | null;
|
|
12
|
+
captionsEnabled?: boolean;
|
|
12
13
|
};
|
|
13
14
|
type StudioSession = {
|
|
14
15
|
authToken: string;
|
|
@@ -113,6 +114,15 @@ declare class StudioControlClient {
|
|
|
113
114
|
declare function createStudioControlClient(options: StudioControlClientOptions): StudioControlClient;
|
|
114
115
|
declare function controlActionsFromClient(client: StudioControlClient): StudioControlActions;
|
|
115
116
|
|
|
117
|
+
type StudioVideoFilter = "none" | "grayscale" | "sepia" | "warm" | "cool" | "bright";
|
|
118
|
+
type StudioVideoBackground = "none" | "blur" | "image";
|
|
119
|
+
type StudioVideoEffectsConfig = {
|
|
120
|
+
background: StudioVideoBackground;
|
|
121
|
+
blurStrength: number;
|
|
122
|
+
imageUrl?: string;
|
|
123
|
+
filter: StudioVideoFilter;
|
|
124
|
+
};
|
|
125
|
+
|
|
116
126
|
type StudioDeviceKind = "audio" | "video" | "speaker";
|
|
117
127
|
type StudioDeviceOption = {
|
|
118
128
|
deviceId: string;
|
|
@@ -212,6 +222,8 @@ type StudioMeetingHandle = {
|
|
|
212
222
|
listDevices: () => Promise<StudioDevices>;
|
|
213
223
|
setDevice: (kind: StudioDeviceKind, deviceId: string) => Promise<void>;
|
|
214
224
|
setDisplayName: (name: string) => Promise<void>;
|
|
225
|
+
setVideoEffects: (config: StudioVideoEffectsConfig) => Promise<void>;
|
|
226
|
+
videoEffects: () => StudioVideoEffectsConfig;
|
|
215
227
|
livestreamState: () => string | null;
|
|
216
228
|
roomState: () => string | null;
|
|
217
229
|
startLivestream: () => Promise<void>;
|
|
@@ -316,6 +328,9 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
|
|
|
316
328
|
pipTitle: string;
|
|
317
329
|
pipError: string;
|
|
318
330
|
screenUnsupportedDevice: string;
|
|
331
|
+
screenDownloadAppTitle: string;
|
|
332
|
+
screenDownloadAppAction: string;
|
|
333
|
+
screenDownloadAppDismiss: string;
|
|
319
334
|
screenNotAllowed: string;
|
|
320
335
|
askToShare: string;
|
|
321
336
|
shareRequested: string;
|
|
@@ -385,6 +400,36 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
|
|
|
385
400
|
chatUnpin: string;
|
|
386
401
|
chatSave: string;
|
|
387
402
|
waitingSkeleton: string;
|
|
403
|
+
more: string;
|
|
404
|
+
captions: string;
|
|
405
|
+
captionsOn: string;
|
|
406
|
+
captionsOff: string;
|
|
407
|
+
captionsNotReady: string;
|
|
408
|
+
captionsDelayed: string;
|
|
409
|
+
captionsLanguage: string;
|
|
410
|
+
captionsSize: string;
|
|
411
|
+
captionsSizeS: string;
|
|
412
|
+
captionsSizeM: string;
|
|
413
|
+
captionsSizeL: string;
|
|
414
|
+
settingsGeneral: string;
|
|
415
|
+
settingsAudio: string;
|
|
416
|
+
settingsVideo: string;
|
|
417
|
+
settingsEffects: string;
|
|
418
|
+
settingsSubtitles: string;
|
|
419
|
+
effectNone: string;
|
|
420
|
+
effectBlur: string;
|
|
421
|
+
effectBlurStrong: string;
|
|
422
|
+
effectBackgrounds: string;
|
|
423
|
+
effectFilters: string;
|
|
424
|
+
effectFilterNone: string;
|
|
425
|
+
effectFilterGrayscale: string;
|
|
426
|
+
effectFilterSepia: string;
|
|
427
|
+
effectFilterWarm: string;
|
|
428
|
+
effectFilterCool: string;
|
|
429
|
+
effectFilterBright: string;
|
|
430
|
+
localeEn: string;
|
|
431
|
+
localeEs: string;
|
|
432
|
+
localePt: string;
|
|
388
433
|
};
|
|
389
434
|
|
|
390
435
|
type StudioDeviceSelection = {
|
|
@@ -393,7 +438,7 @@ type StudioDeviceSelection = {
|
|
|
393
438
|
speaker: string;
|
|
394
439
|
};
|
|
395
440
|
|
|
396
|
-
declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, }: {
|
|
441
|
+
declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, appDownloadUrl, captionsBaseUrl, apiUrl, cdnBase, }: {
|
|
397
442
|
session: StudioSession;
|
|
398
443
|
meeting: StudioMeetingHandle;
|
|
399
444
|
control: StudioControlActions;
|
|
@@ -410,6 +455,10 @@ declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejo
|
|
|
410
455
|
initialCameraOn?: boolean;
|
|
411
456
|
initialMuted?: boolean;
|
|
412
457
|
initialDevices?: StudioDeviceSelection;
|
|
458
|
+
appDownloadUrl?: string;
|
|
459
|
+
captionsBaseUrl?: string;
|
|
460
|
+
apiUrl?: string;
|
|
461
|
+
cdnBase?: string;
|
|
413
462
|
}): react.JSX.Element;
|
|
414
463
|
|
|
415
464
|
declare function StudioSkeleton(): react.JSX.Element;
|
|
@@ -465,7 +514,7 @@ declare function StudioWindowGate({ lockKey, allowTakeover, labels, children, }:
|
|
|
465
514
|
children: ReactNode;
|
|
466
515
|
}): react.JSX.Element;
|
|
467
516
|
|
|
468
|
-
declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, }: {
|
|
517
|
+
declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, appDownloadUrl, }: {
|
|
469
518
|
token: string;
|
|
470
519
|
apiUrl?: string;
|
|
471
520
|
labels: StudioRoomLabels;
|
|
@@ -474,6 +523,7 @@ declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chr
|
|
|
474
523
|
chrome?: ReactNode;
|
|
475
524
|
playerOrigin?: string;
|
|
476
525
|
theme?: string | null;
|
|
526
|
+
appDownloadUrl?: string;
|
|
477
527
|
}): react.JSX.Element;
|
|
478
528
|
|
|
479
529
|
type StudioLobbyLabels = {
|
|
@@ -494,7 +544,7 @@ type StudioLobbyLabels = {
|
|
|
494
544
|
joinBusy: string;
|
|
495
545
|
endedTitle: string;
|
|
496
546
|
};
|
|
497
|
-
declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, }: {
|
|
547
|
+
declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, appDownloadUrl, }: {
|
|
498
548
|
token: string;
|
|
499
549
|
apiUrl?: string;
|
|
500
550
|
labels: StudioRoomLabels;
|
|
@@ -502,6 +552,7 @@ declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, pl
|
|
|
502
552
|
embed?: boolean;
|
|
503
553
|
playerOrigin?: string;
|
|
504
554
|
theme?: string | null;
|
|
555
|
+
appDownloadUrl?: string;
|
|
505
556
|
}): react.JSX.Element;
|
|
506
557
|
|
|
507
558
|
declare function useRealtimeKitMeeting(authToken: string | null, generation?: number): {
|
|
@@ -526,5 +577,9 @@ declare function getStudioJoinStatus(token: string, apiUrl?: string, fetchFn?: t
|
|
|
526
577
|
streamStatus: string | null;
|
|
527
578
|
} | "ended">;
|
|
528
579
|
declare function getPublicStreamStatus(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<string | null>;
|
|
580
|
+
declare function getPublicStreamMeta(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<{
|
|
581
|
+
status: string;
|
|
582
|
+
captionsEnabled: boolean;
|
|
583
|
+
} | null>;
|
|
529
584
|
|
|
530
|
-
export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };
|
|
585
|
+
export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamMeta, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };
|