Centralize Prettier configuration to enforce consistent formatting across all subprojects
This commit is contained in:
parent
8af5759e4d
commit
b3ab245dff
@ -1,10 +0,0 @@
|
||||
{
|
||||
"singleQuote": true,
|
||||
"printWidth": 120,
|
||||
"trailingComma": "none",
|
||||
"semi": true,
|
||||
"bracketSpacing": true,
|
||||
"useTabs": true,
|
||||
"jsxSingleQuote": true,
|
||||
"tabWidth": 4
|
||||
}
|
||||
@ -2,23 +2,23 @@
|
||||
* Interface representing analytics data for OpenVidu Meet usage.
|
||||
*/
|
||||
export interface MeetAnalytics {
|
||||
/**
|
||||
* Total number of rooms created
|
||||
*/
|
||||
totalRooms: number;
|
||||
/**
|
||||
* Total number of rooms created
|
||||
*/
|
||||
totalRooms: number;
|
||||
|
||||
/**
|
||||
* Number of rooms currently with an active meeting
|
||||
*/
|
||||
activeRooms: number;
|
||||
/**
|
||||
* Number of rooms currently with an active meeting
|
||||
*/
|
||||
activeRooms: number;
|
||||
|
||||
/**
|
||||
* Total number of recordings created
|
||||
*/
|
||||
totalRecordings: number;
|
||||
/**
|
||||
* Total number of recordings created
|
||||
*/
|
||||
totalRecordings: number;
|
||||
|
||||
/**
|
||||
* Number of recordings that are complete and playable
|
||||
*/
|
||||
completeRecordings: number;
|
||||
/**
|
||||
* Number of recordings that are complete and playable
|
||||
*/
|
||||
completeRecordings: number;
|
||||
}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
export interface MeetApiKey {
|
||||
key: string;
|
||||
creationDate: number;
|
||||
key: string;
|
||||
creationDate: number;
|
||||
}
|
||||
|
||||
@ -2,31 +2,31 @@
|
||||
* Authentication configuration.
|
||||
*/
|
||||
export interface AuthenticationConfig {
|
||||
/**
|
||||
* Allow admins to create new user accounts.
|
||||
*/
|
||||
allowUserCreation: boolean;
|
||||
/**
|
||||
* Allow admins to create new user accounts.
|
||||
*/
|
||||
allowUserCreation: boolean;
|
||||
|
||||
/**
|
||||
* List of allowed OAuth providers for user registration.
|
||||
*/
|
||||
oauthProviders: OAuthProviderConfig[];
|
||||
/**
|
||||
* List of allowed OAuth providers for user registration.
|
||||
*/
|
||||
oauthProviders: OAuthProviderConfig[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration for OAuth authentication.
|
||||
*/
|
||||
export interface OAuthProviderConfig {
|
||||
provider: OAuthProvider;
|
||||
clientId: string;
|
||||
clientSecret: string;
|
||||
redirectUri: string;
|
||||
provider: OAuthProvider;
|
||||
clientId: string;
|
||||
clientSecret: string;
|
||||
redirectUri: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Supported OAuth providers.
|
||||
*/
|
||||
export enum OAuthProvider {
|
||||
GOOGLE = 'google',
|
||||
GITHUB = 'github'
|
||||
GOOGLE = 'google',
|
||||
GITHUB = 'github'
|
||||
}
|
||||
|
||||
@ -1,23 +1,23 @@
|
||||
import { MeetRoomMemberRole } from './room-member.js';
|
||||
import { MeetRoomConfig } from './room-config.js';
|
||||
import { MeetRoomMemberRole } from './room-member.js';
|
||||
|
||||
export enum MeetSignalType {
|
||||
MEET_ROOM_CONFIG_UPDATED = 'meet_room_config_updated',
|
||||
MEET_PARTICIPANT_ROLE_UPDATED = 'meet_participant_role_updated'
|
||||
MEET_ROOM_CONFIG_UPDATED = 'meet_room_config_updated',
|
||||
MEET_PARTICIPANT_ROLE_UPDATED = 'meet_participant_role_updated'
|
||||
}
|
||||
|
||||
export interface MeetRoomConfigUpdatedPayload {
|
||||
roomId: string;
|
||||
config: MeetRoomConfig;
|
||||
timestamp: number;
|
||||
roomId: string;
|
||||
config: MeetRoomConfig;
|
||||
timestamp: number;
|
||||
}
|
||||
|
||||
export interface MeetParticipantRoleUpdatedPayload {
|
||||
roomId: string;
|
||||
participantIdentity: string;
|
||||
newRole: MeetRoomMemberRole;
|
||||
secret?: string;
|
||||
timestamp: number;
|
||||
roomId: string;
|
||||
participantIdentity: string;
|
||||
newRole: MeetRoomMemberRole;
|
||||
secret?: string;
|
||||
timestamp: number;
|
||||
}
|
||||
|
||||
export type MeetSignalPayload = MeetRoomConfigUpdatedPayload | MeetParticipantRoleUpdatedPayload;
|
||||
|
||||
@ -5,20 +5,20 @@ import { MeetAppearanceConfig } from './room-config.js';
|
||||
* Represents global config for OpenVidu Meet.
|
||||
*/
|
||||
export interface GlobalConfig {
|
||||
projectId: string;
|
||||
securityConfig: SecurityConfig;
|
||||
webhooksConfig: WebhookConfig;
|
||||
roomsConfig: {
|
||||
appearance: MeetAppearanceConfig;
|
||||
};
|
||||
projectId: string;
|
||||
securityConfig: SecurityConfig;
|
||||
webhooksConfig: WebhookConfig;
|
||||
roomsConfig: {
|
||||
appearance: MeetAppearanceConfig;
|
||||
};
|
||||
}
|
||||
|
||||
export interface WebhookConfig {
|
||||
enabled: boolean;
|
||||
url?: string;
|
||||
// events: WebhookEvent[];
|
||||
enabled: boolean;
|
||||
url?: string;
|
||||
// events: WebhookEvent[];
|
||||
}
|
||||
|
||||
export interface SecurityConfig {
|
||||
authentication: AuthenticationConfig;
|
||||
authentication: AuthenticationConfig;
|
||||
}
|
||||
|
||||
@ -1,19 +1,17 @@
|
||||
export * from './analytics.js';
|
||||
export * from './api-key.js';
|
||||
export * from './auth-config.js';
|
||||
export * from './global-config.js';
|
||||
export * from './event.model.js';
|
||||
|
||||
export * from './global-config.js';
|
||||
export * from './permissions/livekit-permissions.js';
|
||||
export * from './permissions/meet-permissions.js';
|
||||
export * from './sort-pagination.js';
|
||||
export * from './room-member.js';
|
||||
export * from './user.js';
|
||||
|
||||
export * from './room-config.js';
|
||||
export * from './room.js';
|
||||
export * from './recording.model.js';
|
||||
export * from './room-config.js';
|
||||
export * from './room-member.js';
|
||||
export * from './room.js';
|
||||
export * from './sort-pagination.js';
|
||||
export * from './user.js';
|
||||
export * from './webhook.model.js';
|
||||
export * from './analytics.js';
|
||||
|
||||
// Webcomponent types
|
||||
export * from './webcomponent/command.model.js';
|
||||
|
||||
@ -22,7 +22,7 @@ export enum TrackSource {
|
||||
/**
|
||||
* @generated from enum value: SCREEN_SHARE_AUDIO = 4;
|
||||
*/
|
||||
SCREEN_SHARE_AUDIO = 4,
|
||||
SCREEN_SHARE_AUDIO = 4
|
||||
}
|
||||
|
||||
interface VideoGrant {
|
||||
|
||||
@ -14,12 +14,10 @@ export interface MeetRoomMemberPermissions {
|
||||
* Can delete recordings.
|
||||
*/
|
||||
canDeleteRecordings: boolean;
|
||||
|
||||
/**
|
||||
* Can join the meeting.
|
||||
*/
|
||||
canJoinMeeting: boolean;
|
||||
|
||||
/**
|
||||
* Can share access links to invite others.
|
||||
*/
|
||||
@ -36,7 +34,6 @@ export interface MeetRoomMemberPermissions {
|
||||
* Can end the meeting for all participants.
|
||||
*/
|
||||
canEndMeeting: boolean;
|
||||
|
||||
/**
|
||||
* Can publish video in the meeting.
|
||||
*/
|
||||
@ -49,7 +46,6 @@ export interface MeetRoomMemberPermissions {
|
||||
* Can share screen in the meeting.
|
||||
*/
|
||||
canShareScreen: boolean;
|
||||
|
||||
/**
|
||||
* Can read chat messages in the meeting.
|
||||
*/
|
||||
@ -58,7 +54,6 @@ export interface MeetRoomMemberPermissions {
|
||||
* Can send chat messages in the meeting.
|
||||
*/
|
||||
canWriteChat: boolean;
|
||||
|
||||
/**
|
||||
* Can change the virtual background.
|
||||
*/
|
||||
|
||||
@ -4,69 +4,69 @@ import { SortAndPagination } from './sort-pagination.js';
|
||||
* Recording status enumeration.
|
||||
*/
|
||||
export enum MeetRecordingStatus {
|
||||
STARTING = 'starting',
|
||||
ACTIVE = 'active',
|
||||
ENDING = 'ending',
|
||||
COMPLETE = 'complete',
|
||||
FAILED = 'failed',
|
||||
ABORTED = 'aborted',
|
||||
LIMIT_REACHED = 'limit_reached'
|
||||
STARTING = 'starting',
|
||||
ACTIVE = 'active',
|
||||
ENDING = 'ending',
|
||||
COMPLETE = 'complete',
|
||||
FAILED = 'failed',
|
||||
ABORTED = 'aborted',
|
||||
LIMIT_REACHED = 'limit_reached'
|
||||
}
|
||||
|
||||
/**
|
||||
* Layout options for recordings.
|
||||
*/
|
||||
export enum MeetRecordingLayout {
|
||||
GRID = 'grid',
|
||||
SPEAKER = 'speaker',
|
||||
SINGLE_SPEAKER = 'single-speaker'
|
||||
// GRID_LIGHT = 'grid-light',
|
||||
// SPEAKER_LIGHT = 'speaker-light',
|
||||
// SINGLE_SPEAKER_LIGHT = 'single-speaker-light'
|
||||
GRID = 'grid',
|
||||
SPEAKER = 'speaker',
|
||||
SINGLE_SPEAKER = 'single-speaker'
|
||||
// GRID_LIGHT = 'grid-light',
|
||||
// SPEAKER_LIGHT = 'speaker-light',
|
||||
// SINGLE_SPEAKER_LIGHT = 'single-speaker-light'
|
||||
}
|
||||
|
||||
/**
|
||||
* Encoding presets for recordings.
|
||||
*/
|
||||
export enum MeetRecordingEncodingPreset {
|
||||
/**
|
||||
* 1280x720, 30fps, 3000kbps. Recommended for most cases.
|
||||
*/
|
||||
H264_720P_30 = 'H264_720P_30',
|
||||
/**
|
||||
* 1280x720, 60fps, ~4500 kbps. Smooth motion for fast action.
|
||||
*/
|
||||
H264_720P_60 = 'H264_720P_60',
|
||||
/**
|
||||
* 1280x720, 30fps, 3000kbps. Recommended for most cases.
|
||||
*/
|
||||
H264_720P_30 = 'H264_720P_30',
|
||||
/**
|
||||
* 1280x720, 60fps, ~4500 kbps. Smooth motion for fast action.
|
||||
*/
|
||||
H264_720P_60 = 'H264_720P_60',
|
||||
|
||||
/**
|
||||
* 1920x1080, 30fps, ~4500 kbps. High visual quality for detailed content.
|
||||
*/
|
||||
H264_1080P_30 = 'H264_1080P_30',
|
||||
/**
|
||||
* 1920x1080, 30fps, ~4500 kbps. High visual quality for detailed content.
|
||||
*/
|
||||
H264_1080P_30 = 'H264_1080P_30',
|
||||
|
||||
/**
|
||||
* 1920x1080, 60fps, ~6000 kbps. Premium quality with very smooth motion.
|
||||
*/
|
||||
H264_1080P_60 = 'H264_1080P_60',
|
||||
/**
|
||||
* 1920x1080, 60fps, ~6000 kbps. Premium quality with very smooth motion.
|
||||
*/
|
||||
H264_1080P_60 = 'H264_1080P_60',
|
||||
|
||||
/**
|
||||
* Portrait 720x1280, 30fps. Vertical video optimized for mobile/portrait use.
|
||||
*/
|
||||
PORTRAIT_H264_720P_30 = 'PORTRAIT_H264_720P_30',
|
||||
/**
|
||||
* Portrait 720x1280, 30fps. Vertical video optimized for mobile/portrait use.
|
||||
*/
|
||||
PORTRAIT_H264_720P_30 = 'PORTRAIT_H264_720P_30',
|
||||
|
||||
/**
|
||||
* Portrait 720x1280, 60fps. Vertical video with smoother motion.
|
||||
*/
|
||||
PORTRAIT_H264_720P_60 = 'PORTRAIT_H264_720P_60',
|
||||
/**
|
||||
* Portrait 720x1280, 60fps. Vertical video with smoother motion.
|
||||
*/
|
||||
PORTRAIT_H264_720P_60 = 'PORTRAIT_H264_720P_60',
|
||||
|
||||
/**
|
||||
* Portrait 1080x1920, 30fps. High-quality vertical recording.
|
||||
*/
|
||||
PORTRAIT_H264_1080P_30 = 'PORTRAIT_H264_1080P_30',
|
||||
/**
|
||||
* Portrait 1080x1920, 30fps. High-quality vertical recording.
|
||||
*/
|
||||
PORTRAIT_H264_1080P_30 = 'PORTRAIT_H264_1080P_30',
|
||||
|
||||
/**
|
||||
* Portrait 1080x1920, 60fps. Premium vertical recording with smooth motion.
|
||||
*/
|
||||
PORTRAIT_H264_1080P_60 = 'PORTRAIT_H264_1080P_60'
|
||||
/**
|
||||
* Portrait 1080x1920, 60fps. Premium vertical recording with smooth motion.
|
||||
*/
|
||||
PORTRAIT_H264_1080P_60 = 'PORTRAIT_H264_1080P_60'
|
||||
}
|
||||
|
||||
/**
|
||||
@ -75,56 +75,56 @@ export enum MeetRecordingEncodingPreset {
|
||||
* Both video and audio configurations are required when using advanced options.
|
||||
*/
|
||||
export interface MeetRecordingEncodingOptions {
|
||||
/** Video encoding configuration */
|
||||
video: {
|
||||
/** Video width in pixels */
|
||||
width: number;
|
||||
/** Video height in pixels */
|
||||
height: number;
|
||||
/** Frame rate in fps */
|
||||
framerate: number;
|
||||
/** Video codec */
|
||||
codec: MeetRecordingVideoCodec;
|
||||
/** Video bitrate in kbps */
|
||||
bitrate: number;
|
||||
/** Keyframe interval in seconds */
|
||||
keyFrameInterval: number;
|
||||
/** Video depth (pixel format) in bits */
|
||||
depth: number;
|
||||
};
|
||||
/** Video encoding configuration */
|
||||
video: {
|
||||
/** Video width in pixels */
|
||||
width: number;
|
||||
/** Video height in pixels */
|
||||
height: number;
|
||||
/** Frame rate in fps */
|
||||
framerate: number;
|
||||
/** Video codec */
|
||||
codec: MeetRecordingVideoCodec;
|
||||
/** Video bitrate in kbps */
|
||||
bitrate: number;
|
||||
/** Keyframe interval in seconds */
|
||||
keyFrameInterval: number;
|
||||
/** Video depth (pixel format) in bits */
|
||||
depth: number;
|
||||
};
|
||||
|
||||
/**
|
||||
* Audio encoding configuration
|
||||
*/
|
||||
audio: {
|
||||
/** Audio codec */
|
||||
codec: MeetRecordingAudioCodec;
|
||||
/** Audio bitrate in kbps */
|
||||
bitrate: number;
|
||||
/** Audio sample rate in Hz */
|
||||
frequency: number;
|
||||
};
|
||||
/**
|
||||
* Audio encoding configuration
|
||||
*/
|
||||
audio: {
|
||||
/** Audio codec */
|
||||
codec: MeetRecordingAudioCodec;
|
||||
/** Audio bitrate in kbps */
|
||||
bitrate: number;
|
||||
/** Audio sample rate in Hz */
|
||||
frequency: number;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Video encoding configuration
|
||||
*/
|
||||
export enum MeetRecordingVideoCodec {
|
||||
DEFAULT_VC = 'DEFAULT_VC',
|
||||
H264_BASELINE = 'H264_BASELINE',
|
||||
H264_MAIN = 'H264_MAIN',
|
||||
H264_HIGH = 'H264_HIGH',
|
||||
VP8 = 'VP8'
|
||||
DEFAULT_VC = 'DEFAULT_VC',
|
||||
H264_BASELINE = 'H264_BASELINE',
|
||||
H264_MAIN = 'H264_MAIN',
|
||||
H264_HIGH = 'H264_HIGH',
|
||||
VP8 = 'VP8'
|
||||
}
|
||||
|
||||
/**
|
||||
* Audio encoding configuration
|
||||
*/
|
||||
export enum MeetRecordingAudioCodec {
|
||||
DEFAULT_AC = 'DEFAULT_AC',
|
||||
OPUS = 'OPUS',
|
||||
AAC = 'AAC',
|
||||
AC_MP3 = 'AC_MP3'
|
||||
DEFAULT_AC = 'DEFAULT_AC',
|
||||
OPUS = 'OPUS',
|
||||
AAC = 'AAC',
|
||||
AC_MP3 = 'AC_MP3'
|
||||
}
|
||||
|
||||
// export enum MeetRecordingOutputMode {
|
||||
@ -135,41 +135,41 @@ export enum MeetRecordingAudioCodec {
|
||||
* Interface representing a recording
|
||||
*/
|
||||
export interface MeetRecordingInfo {
|
||||
recordingId: string;
|
||||
roomId: string;
|
||||
roomName: string;
|
||||
// outputMode: MeetRecordingOutputMode;
|
||||
status: MeetRecordingStatus;
|
||||
layout?: MeetRecordingLayout;
|
||||
encoding?: MeetRecordingEncodingPreset | MeetRecordingEncodingOptions;
|
||||
filename?: string;
|
||||
startDate?: number;
|
||||
endDate?: number;
|
||||
duration?: number;
|
||||
size?: number;
|
||||
errorCode?: number;
|
||||
error?: string;
|
||||
details?: string;
|
||||
recordingId: string;
|
||||
roomId: string;
|
||||
roomName: string;
|
||||
// outputMode: MeetRecordingOutputMode;
|
||||
status: MeetRecordingStatus;
|
||||
layout?: MeetRecordingLayout;
|
||||
encoding?: MeetRecordingEncodingPreset | MeetRecordingEncodingOptions;
|
||||
filename?: string;
|
||||
startDate?: number;
|
||||
endDate?: number;
|
||||
duration?: number;
|
||||
size?: number;
|
||||
errorCode?: number;
|
||||
error?: string;
|
||||
details?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters for querying recordings with pagination, sorting and field selection.
|
||||
*/
|
||||
export interface MeetRecordingFilters extends SortAndPagination {
|
||||
/**
|
||||
* Filter recordings by room ID (exact match)
|
||||
*/
|
||||
roomId?: string;
|
||||
/**
|
||||
* Filter recordings by room name (case-insensitive partial match)
|
||||
*/
|
||||
roomName?: string;
|
||||
/**
|
||||
* Filter recordings by status
|
||||
*/
|
||||
status?: MeetRecordingStatus;
|
||||
/**
|
||||
* Comma-separated list of fields to include in the response
|
||||
*/
|
||||
fields?: string;
|
||||
/**
|
||||
* Filter recordings by room ID (exact match)
|
||||
*/
|
||||
roomId?: string;
|
||||
/**
|
||||
* Filter recordings by room name (case-insensitive partial match)
|
||||
*/
|
||||
roomName?: string;
|
||||
/**
|
||||
* Filter recordings by status
|
||||
*/
|
||||
status?: MeetRecordingStatus;
|
||||
/**
|
||||
* Comma-separated list of fields to include in the response
|
||||
*/
|
||||
fields?: string;
|
||||
}
|
||||
|
||||
@ -4,94 +4,94 @@ import { MeetRecordingEncodingOptions, MeetRecordingEncodingPreset, MeetRecordin
|
||||
* Interface representing the config for a room.
|
||||
*/
|
||||
export interface MeetRoomConfig {
|
||||
/**
|
||||
* Configuration for chat feature. See {@link MeetChatConfig} for details.
|
||||
*/
|
||||
chat: MeetChatConfig;
|
||||
/**
|
||||
* Configuration for recording feature. See {@link MeetRecordingConfig} for details.
|
||||
*/
|
||||
recording: MeetRecordingConfig;
|
||||
/**
|
||||
* Configuration for virtual backgrounds feature. See {@link MeetVirtualBackgroundConfig} for details.
|
||||
*/
|
||||
virtualBackground: MeetVirtualBackgroundConfig;
|
||||
/**
|
||||
* Configuration for end-to-end encryption feature. See {@link MeetE2EEConfig} for details.
|
||||
*/
|
||||
e2ee: MeetE2EEConfig;
|
||||
/**
|
||||
* Configuration for captions feature. See {@link MeetRoomCaptionsConfig} for details.
|
||||
*/
|
||||
captions: MeetRoomCaptionsConfig;
|
||||
// appearance: MeetAppearanceConfig;
|
||||
/**
|
||||
* Configuration for chat feature. See {@link MeetChatConfig} for details.
|
||||
*/
|
||||
chat: MeetChatConfig;
|
||||
/**
|
||||
* Configuration for recording feature. See {@link MeetRecordingConfig} for details.
|
||||
*/
|
||||
recording: MeetRecordingConfig;
|
||||
/**
|
||||
* Configuration for virtual backgrounds feature. See {@link MeetVirtualBackgroundConfig} for details.
|
||||
*/
|
||||
virtualBackground: MeetVirtualBackgroundConfig;
|
||||
/**
|
||||
* Configuration for end-to-end encryption feature. See {@link MeetE2EEConfig} for details.
|
||||
*/
|
||||
e2ee: MeetE2EEConfig;
|
||||
/**
|
||||
* Configuration for captions feature. See {@link MeetRoomCaptionsConfig} for details.
|
||||
*/
|
||||
captions: MeetRoomCaptionsConfig;
|
||||
// appearance: MeetAppearanceConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface representing the config for recordings in a room.
|
||||
*/
|
||||
export interface MeetRecordingConfig {
|
||||
/**
|
||||
* Indicates if recording is enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Layout used for recordings in the room. See {@link MeetRecordingLayout} for details.
|
||||
*/
|
||||
layout?: MeetRecordingLayout;
|
||||
/**
|
||||
* Encoding configuration: use a preset string for common scenarios,
|
||||
* or provide detailed options for fine-grained control.
|
||||
*/
|
||||
encoding?: MeetRecordingEncodingPreset | MeetRecordingEncodingOptions;
|
||||
/**
|
||||
* Indicates if recording is enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Layout used for recordings in the room. See {@link MeetRecordingLayout} for details.
|
||||
*/
|
||||
layout?: MeetRecordingLayout;
|
||||
/**
|
||||
* Encoding configuration: use a preset string for common scenarios,
|
||||
* or provide detailed options for fine-grained control.
|
||||
*/
|
||||
encoding?: MeetRecordingEncodingPreset | MeetRecordingEncodingOptions;
|
||||
}
|
||||
|
||||
export interface MeetChatConfig {
|
||||
/**
|
||||
* Indicates if chat is enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Indicates if chat is enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
}
|
||||
|
||||
export interface MeetVirtualBackgroundConfig {
|
||||
/**
|
||||
* Indicates if virtual backgrounds are enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Indicates if virtual backgrounds are enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
}
|
||||
|
||||
export interface MeetE2EEConfig {
|
||||
/**
|
||||
* Indicates if end-to-end encryption is enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Indicates if end-to-end encryption is enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
}
|
||||
export interface MeetRoomCaptionsConfig {
|
||||
/**
|
||||
* Indicates if captions are enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
/**
|
||||
* Indicates if captions are enabled in the room
|
||||
*/
|
||||
enabled: boolean;
|
||||
}
|
||||
|
||||
export interface MeetAppearanceConfig {
|
||||
/**
|
||||
* List of themes available in the room
|
||||
*/
|
||||
themes: MeetRoomTheme[];
|
||||
/**
|
||||
* List of themes available in the room
|
||||
*/
|
||||
themes: MeetRoomTheme[];
|
||||
}
|
||||
|
||||
export interface MeetRoomTheme {
|
||||
name: string;
|
||||
enabled: boolean;
|
||||
baseTheme: MeetRoomThemeMode;
|
||||
backgroundColor?: string;
|
||||
primaryColor?: string;
|
||||
secondaryColor?: string;
|
||||
accentColor?: string;
|
||||
surfaceColor?: string;
|
||||
name: string;
|
||||
enabled: boolean;
|
||||
baseTheme: MeetRoomThemeMode;
|
||||
backgroundColor?: string;
|
||||
primaryColor?: string;
|
||||
secondaryColor?: string;
|
||||
accentColor?: string;
|
||||
surfaceColor?: string;
|
||||
}
|
||||
|
||||
export enum MeetRoomThemeMode {
|
||||
LIGHT = 'light',
|
||||
DARK = 'dark'
|
||||
LIGHT = 'light',
|
||||
DARK = 'dark'
|
||||
}
|
||||
|
||||
@ -5,10 +5,10 @@ import { SortAndPagination } from './sort-pagination.js';
|
||||
* Options for adding a member to a room.
|
||||
*/
|
||||
export interface MeetRoomMemberOptions {
|
||||
userId?: string; // userId of a registered Meet user (mutually exclusive with name)
|
||||
name?: string; // Name for an external user (mutually exclusive with userId)
|
||||
baseRole: MeetRoomMemberRole; // The base role assigned to the member
|
||||
customPermissions?: Partial<MeetRoomMemberPermissions>; // Custom permissions for the member (overrides base role permissions)
|
||||
userId?: string; // userId of a registered Meet user (mutually exclusive with name)
|
||||
name?: string; // Name for an external user (mutually exclusive with userId)
|
||||
baseRole: MeetRoomMemberRole; // The base role assigned to the member
|
||||
customPermissions?: Partial<MeetRoomMemberPermissions>; // Custom permissions for the member (overrides base role permissions)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -16,29 +16,29 @@ export interface MeetRoomMemberOptions {
|
||||
* A member can be an internal user (identified by userId) or an external user (identified by name).
|
||||
*/
|
||||
export interface MeetRoomMember {
|
||||
memberId: string; // Unique identifier for the member (equals userId for registered users, or generated for external users)
|
||||
roomId: string; // ID of the room the member belongs to
|
||||
name: string; // Name of the member (either registered or external user name)
|
||||
membershipDate: number; // Timestamp when the member was added to the room
|
||||
accessUrl: string; // URL for the member to access the room
|
||||
baseRole: MeetRoomMemberRole; // The base role of the member in the room
|
||||
customPermissions?: Partial<MeetRoomMemberPermissions>; // Custom permissions for the member (if any)
|
||||
effectivePermissions: MeetRoomMemberPermissions; // Effective permissions for the member (base role + custom permissions)
|
||||
permissionsUpdatedAt: number; // Timestamp when the effective permissions were last updated
|
||||
currentParticipantIdentity?: string; // The participant identity if the member is currently in a meeting, undefined otherwise
|
||||
memberId: string; // Unique identifier for the member (equals userId for registered users, or generated for external users)
|
||||
roomId: string; // ID of the room the member belongs to
|
||||
name: string; // Name of the member (either registered or external user name)
|
||||
membershipDate: number; // Timestamp when the member was added to the room
|
||||
accessUrl: string; // URL for the member to access the room
|
||||
baseRole: MeetRoomMemberRole; // The base role of the member in the room
|
||||
customPermissions?: Partial<MeetRoomMemberPermissions>; // Custom permissions for the member (if any)
|
||||
effectivePermissions: MeetRoomMemberPermissions; // Effective permissions for the member (base role + custom permissions)
|
||||
permissionsUpdatedAt: number; // Timestamp when the effective permissions were last updated
|
||||
currentParticipantIdentity?: string; // The participant identity if the member is currently in a meeting, undefined otherwise
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the role of a member in a room.
|
||||
*/
|
||||
export enum MeetRoomMemberRole {
|
||||
MODERATOR = 'moderator',
|
||||
SPEAKER = 'speaker'
|
||||
MODERATOR = 'moderator',
|
||||
SPEAKER = 'speaker'
|
||||
}
|
||||
|
||||
export interface MeetRoomMemberFilters extends SortAndPagination {
|
||||
name?: string;
|
||||
fields?: string;
|
||||
name?: string;
|
||||
fields?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -46,25 +46,25 @@ export interface MeetRoomMemberFilters extends SortAndPagination {
|
||||
* A room member token provides access to room resources (recordings, meetings, etc.)
|
||||
*/
|
||||
export interface MeetRoomMemberTokenOptions {
|
||||
/**
|
||||
* A secret key for room access. Determines the member's role.
|
||||
*/
|
||||
secret?: string;
|
||||
/**
|
||||
* Whether the token is intended for joining a meeting.
|
||||
* If true, participantName must be provided.
|
||||
*/
|
||||
joinMeeting?: boolean;
|
||||
/**
|
||||
* The name of the participant when joining the meeting.
|
||||
* Required if joinMeeting is true.
|
||||
*/
|
||||
participantName?: string;
|
||||
/**
|
||||
* The identity of the participant in the meeting.
|
||||
* Required when refreshing an existing token used to join a meeting.
|
||||
*/
|
||||
participantIdentity?: string;
|
||||
/**
|
||||
* A secret key for room access. Determines the member's role.
|
||||
*/
|
||||
secret?: string;
|
||||
/**
|
||||
* Whether the token is intended for joining a meeting.
|
||||
* If true, participantName must be provided.
|
||||
*/
|
||||
joinMeeting?: boolean;
|
||||
/**
|
||||
* The name of the participant when joining the meeting.
|
||||
* Required if joinMeeting is true.
|
||||
*/
|
||||
participantName?: string;
|
||||
/**
|
||||
* The identity of the participant in the meeting.
|
||||
* Required when refreshing an existing token used to join a meeting.
|
||||
*/
|
||||
participantIdentity?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,12 +72,12 @@ export interface MeetRoomMemberTokenOptions {
|
||||
* Contains information about the room and member permissions.
|
||||
*/
|
||||
export interface MeetRoomMemberTokenMetadata {
|
||||
/** Token issued at timestamp (milliseconds since epoch) */
|
||||
iat: number;
|
||||
livekitUrl: string;
|
||||
roomId: string;
|
||||
memberId?: string;
|
||||
baseRole: MeetRoomMemberRole;
|
||||
customPermissions?: Partial<MeetRoomMemberPermissions>;
|
||||
effectivePermissions: MeetRoomMemberPermissions;
|
||||
/** Token issued at timestamp (milliseconds since epoch) */
|
||||
iat: number;
|
||||
livekitUrl: string;
|
||||
roomId: string;
|
||||
memberId?: string;
|
||||
baseRole: MeetRoomMemberRole;
|
||||
customPermissions?: Partial<MeetRoomMemberPermissions>;
|
||||
effectivePermissions: MeetRoomMemberPermissions;
|
||||
}
|
||||
|
||||
@ -6,81 +6,81 @@ import { SortAndPagination } from './sort-pagination.js';
|
||||
* Options for creating a room.
|
||||
*/
|
||||
export interface MeetRoomOptions {
|
||||
/**
|
||||
* Name of the room
|
||||
*/
|
||||
roomName?: string;
|
||||
/**
|
||||
* Date in milliseconds since epoch when the room will be automatically deleted
|
||||
*/
|
||||
autoDeletionDate?: number;
|
||||
/**
|
||||
* Configuration for automatic deletion behavior of the room. See {@link MeetRoomAutoDeletionPolicy} for details.
|
||||
*/
|
||||
autoDeletionPolicy?: MeetRoomAutoDeletionPolicy;
|
||||
/**
|
||||
* Configuration of the room. See {@link MeetRoomConfig} for details.
|
||||
*/
|
||||
config?: Partial<MeetRoomConfig>;
|
||||
/**
|
||||
* Roles configuration for the room. See {@link MeetRoomRolesConfig} for details.
|
||||
*/
|
||||
roles?: MeetRoomRolesConfig;
|
||||
/**
|
||||
* Anonymous access configuration for the room. See {@link MeetRoomAnonymousConfig} for details.
|
||||
*/
|
||||
anonymous?: MeetRoomAnonymousConfig;
|
||||
// maxParticipants?: number | null;
|
||||
/**
|
||||
* Name of the room
|
||||
*/
|
||||
roomName?: string;
|
||||
/**
|
||||
* Date in milliseconds since epoch when the room will be automatically deleted
|
||||
*/
|
||||
autoDeletionDate?: number;
|
||||
/**
|
||||
* Configuration for automatic deletion behavior of the room. See {@link MeetRoomAutoDeletionPolicy} for details.
|
||||
*/
|
||||
autoDeletionPolicy?: MeetRoomAutoDeletionPolicy;
|
||||
/**
|
||||
* Configuration of the room. See {@link MeetRoomConfig} for details.
|
||||
*/
|
||||
config?: Partial<MeetRoomConfig>;
|
||||
/**
|
||||
* Roles configuration for the room. See {@link MeetRoomRolesConfig} for details.
|
||||
*/
|
||||
roles?: MeetRoomRolesConfig;
|
||||
/**
|
||||
* Anonymous access configuration for the room. See {@link MeetRoomAnonymousConfig} for details.
|
||||
*/
|
||||
anonymous?: MeetRoomAnonymousConfig;
|
||||
// maxParticipants?: number | null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Representation of a room
|
||||
*/
|
||||
export interface MeetRoom extends MeetRoomOptions {
|
||||
/**
|
||||
* Unique identifier of the room
|
||||
*/
|
||||
roomId: string;
|
||||
/**
|
||||
* Name of the room
|
||||
*/
|
||||
roomName: string;
|
||||
/**
|
||||
* User ID of the internal Meet user who owns this room
|
||||
*/
|
||||
owner: string;
|
||||
/**
|
||||
* Timestamp of room creation in milliseconds since epoch
|
||||
*/
|
||||
creationDate: number;
|
||||
/**
|
||||
* Configuration of the room. See {@link MeetRoomConfig} for details.
|
||||
*/
|
||||
config: MeetRoomConfig;
|
||||
/**
|
||||
* Roles configuration for the room. See {@link MeetRoomRoles} for details.
|
||||
*/
|
||||
roles: MeetRoomRoles;
|
||||
/**
|
||||
* Anonymous access configuration for the room. See {@link MeetRoomAnonymous} for details.
|
||||
*/
|
||||
anonymous: MeetRoomAnonymous;
|
||||
/**
|
||||
* General access URL for authenticated users (owner and internal members)
|
||||
*/
|
||||
accessUrl: string;
|
||||
/**
|
||||
* Status of the room. See {@link MeetRoomStatus} for details.
|
||||
*/
|
||||
status: MeetRoomStatus;
|
||||
/**
|
||||
* Timestamp in milliseconds of the last time the room's role permissions or anonymous access were updated
|
||||
*/
|
||||
rolesUpdatedAt: number;
|
||||
/**
|
||||
* Action to take on the room when the meeting ends. See {@link MeetingEndAction} for details.
|
||||
*/
|
||||
meetingEndAction: MeetingEndAction;
|
||||
/**
|
||||
* Unique identifier of the room
|
||||
*/
|
||||
roomId: string;
|
||||
/**
|
||||
* Name of the room
|
||||
*/
|
||||
roomName: string;
|
||||
/**
|
||||
* User ID of the internal Meet user who owns this room
|
||||
*/
|
||||
owner: string;
|
||||
/**
|
||||
* Timestamp of room creation in milliseconds since epoch
|
||||
*/
|
||||
creationDate: number;
|
||||
/**
|
||||
* Configuration of the room. See {@link MeetRoomConfig} for details.
|
||||
*/
|
||||
config: MeetRoomConfig;
|
||||
/**
|
||||
* Roles configuration for the room. See {@link MeetRoomRoles} for details.
|
||||
*/
|
||||
roles: MeetRoomRoles;
|
||||
/**
|
||||
* Anonymous access configuration for the room. See {@link MeetRoomAnonymous} for details.
|
||||
*/
|
||||
anonymous: MeetRoomAnonymous;
|
||||
/**
|
||||
* General access URL for authenticated users (owner and internal members)
|
||||
*/
|
||||
accessUrl: string;
|
||||
/**
|
||||
* Status of the room. See {@link MeetRoomStatus} for details.
|
||||
*/
|
||||
status: MeetRoomStatus;
|
||||
/**
|
||||
* Timestamp in milliseconds of the last time the room's role permissions or anonymous access were updated
|
||||
*/
|
||||
rolesUpdatedAt: number;
|
||||
/**
|
||||
* Action to take on the room when the meeting ends. See {@link MeetingEndAction} for details.
|
||||
*/
|
||||
meetingEndAction: MeetingEndAction;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -88,12 +88,12 @@ export interface MeetRoom extends MeetRoomOptions {
|
||||
* Defines the complete permissions for moderator and speaker roles.
|
||||
*/
|
||||
export interface MeetRoomRoles {
|
||||
moderator: {
|
||||
permissions: MeetRoomMemberPermissions;
|
||||
};
|
||||
speaker: {
|
||||
permissions: MeetRoomMemberPermissions;
|
||||
};
|
||||
moderator: {
|
||||
permissions: MeetRoomMemberPermissions;
|
||||
};
|
||||
speaker: {
|
||||
permissions: MeetRoomMemberPermissions;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -101,12 +101,12 @@ export interface MeetRoomRoles {
|
||||
* Allows partial permission updates.
|
||||
*/
|
||||
export interface MeetRoomRolesConfig {
|
||||
moderator?: {
|
||||
permissions: Partial<MeetRoomMemberPermissions>;
|
||||
};
|
||||
speaker?: {
|
||||
permissions: Partial<MeetRoomMemberPermissions>;
|
||||
};
|
||||
moderator?: {
|
||||
permissions: Partial<MeetRoomMemberPermissions>;
|
||||
};
|
||||
speaker?: {
|
||||
permissions: Partial<MeetRoomMemberPermissions>;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -114,14 +114,14 @@ export interface MeetRoomRolesConfig {
|
||||
* Defines which roles have anonymous access enabled and their access URLs.
|
||||
*/
|
||||
export interface MeetRoomAnonymous {
|
||||
moderator: {
|
||||
enabled: boolean;
|
||||
accessUrl: string;
|
||||
};
|
||||
speaker: {
|
||||
enabled: boolean;
|
||||
accessUrl: string;
|
||||
};
|
||||
moderator: {
|
||||
enabled: boolean;
|
||||
accessUrl: string;
|
||||
};
|
||||
speaker: {
|
||||
enabled: boolean;
|
||||
accessUrl: string;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -129,132 +129,132 @@ export interface MeetRoomAnonymous {
|
||||
* Only includes enabled flags.
|
||||
*/
|
||||
export interface MeetRoomAnonymousConfig {
|
||||
moderator?: {
|
||||
enabled: boolean;
|
||||
};
|
||||
speaker?: {
|
||||
enabled: boolean;
|
||||
};
|
||||
moderator?: {
|
||||
enabled: boolean;
|
||||
};
|
||||
speaker?: {
|
||||
enabled: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the current status of a meeting room.
|
||||
*/
|
||||
export enum MeetRoomStatus {
|
||||
/**
|
||||
* Room is open and available to host a meeting.
|
||||
*/
|
||||
OPEN = 'open',
|
||||
/**
|
||||
* Room is open and available to host a meeting.
|
||||
*/
|
||||
OPEN = 'open',
|
||||
|
||||
/**
|
||||
* There is an ongoing meeting in the room.
|
||||
*/
|
||||
ACTIVE_MEETING = 'active_meeting',
|
||||
/**
|
||||
* There is an ongoing meeting in the room.
|
||||
*/
|
||||
ACTIVE_MEETING = 'active_meeting',
|
||||
|
||||
/**
|
||||
* Room is closed to hosting new meetings.
|
||||
*/
|
||||
CLOSED = 'closed'
|
||||
/**
|
||||
* Room is closed to hosting new meetings.
|
||||
*/
|
||||
CLOSED = 'closed'
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the action to take when a meeting ends.
|
||||
*/
|
||||
export enum MeetingEndAction {
|
||||
/**
|
||||
* No action is taken when the meeting ends.
|
||||
*/
|
||||
NONE = 'none',
|
||||
/**
|
||||
* No action is taken when the meeting ends.
|
||||
*/
|
||||
NONE = 'none',
|
||||
|
||||
/**
|
||||
* The room will be closed when the meeting ends.
|
||||
*/
|
||||
CLOSE = 'close',
|
||||
/**
|
||||
* The room will be closed when the meeting ends.
|
||||
*/
|
||||
CLOSE = 'close',
|
||||
|
||||
/**
|
||||
* The room (and its recordings, if any) will be deleted
|
||||
* when the meeting ends.
|
||||
*/
|
||||
DELETE = 'delete'
|
||||
/**
|
||||
* The room (and its recordings, if any) will be deleted
|
||||
* when the meeting ends.
|
||||
*/
|
||||
DELETE = 'delete'
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration for automatic deletion behavior of a meeting room.
|
||||
*/
|
||||
export interface MeetRoomAutoDeletionPolicy {
|
||||
/**
|
||||
* Deletion policy when there is an active meeting.
|
||||
*/
|
||||
withMeeting: MeetRoomDeletionPolicyWithMeeting;
|
||||
/**
|
||||
* Deletion policy when there is an active meeting.
|
||||
*/
|
||||
withMeeting: MeetRoomDeletionPolicyWithMeeting;
|
||||
|
||||
/**
|
||||
* Deletion policy when recordings exist.
|
||||
*/
|
||||
withRecordings: MeetRoomDeletionPolicyWithRecordings;
|
||||
/**
|
||||
* Deletion policy when recordings exist.
|
||||
*/
|
||||
withRecordings: MeetRoomDeletionPolicyWithRecordings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines how room deletion behaves when a meeting is active.
|
||||
*/
|
||||
export enum MeetRoomDeletionPolicyWithMeeting {
|
||||
/**
|
||||
* Force deletion even if there is an active meeting.
|
||||
*/
|
||||
FORCE = 'force',
|
||||
/**
|
||||
* Force deletion even if there is an active meeting.
|
||||
*/
|
||||
FORCE = 'force',
|
||||
|
||||
/**
|
||||
* Delete the room when the meeting ends.
|
||||
*/
|
||||
WHEN_MEETING_ENDS = 'when_meeting_ends',
|
||||
/**
|
||||
* Delete the room when the meeting ends.
|
||||
*/
|
||||
WHEN_MEETING_ENDS = 'when_meeting_ends',
|
||||
|
||||
/**
|
||||
* Fail the deletion if there is an active meeting.
|
||||
*/
|
||||
FAIL = 'fail'
|
||||
/**
|
||||
* Fail the deletion if there is an active meeting.
|
||||
*/
|
||||
FAIL = 'fail'
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines how room deletion behaves when recordings exist.
|
||||
*/
|
||||
export enum MeetRoomDeletionPolicyWithRecordings {
|
||||
/**
|
||||
* Force deletion even if there are ongoing or previous recordings.
|
||||
*/
|
||||
FORCE = 'force',
|
||||
/**
|
||||
* Force deletion even if there are ongoing or previous recordings.
|
||||
*/
|
||||
FORCE = 'force',
|
||||
|
||||
/**
|
||||
* Close the room and keep recordings.
|
||||
*/
|
||||
CLOSE = 'close',
|
||||
/**
|
||||
* Close the room and keep recordings.
|
||||
*/
|
||||
CLOSE = 'close',
|
||||
|
||||
/**
|
||||
* Fail the deletion if there are ongoing or previous recordings.
|
||||
*/
|
||||
FAIL = 'fail'
|
||||
/**
|
||||
* Fail the deletion if there are ongoing or previous recordings.
|
||||
*/
|
||||
FAIL = 'fail'
|
||||
}
|
||||
|
||||
export interface MeetRoomFilters extends SortAndPagination {
|
||||
roomName?: string;
|
||||
status?: MeetRoomStatus;
|
||||
fields?: string;
|
||||
roomName?: string;
|
||||
status?: MeetRoomStatus;
|
||||
fields?: string;
|
||||
}
|
||||
|
||||
export enum MeetRoomDeletionSuccessCode {
|
||||
ROOM_DELETED = 'room_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_DELETED = 'room_with_active_meeting_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_SCHEDULED_TO_BE_DELETED = 'room_with_active_meeting_scheduled_to_be_deleted',
|
||||
ROOM_AND_RECORDINGS_DELETED = 'room_and_recordings_deleted',
|
||||
ROOM_CLOSED = 'room_closed',
|
||||
ROOM_WITH_ACTIVE_MEETING_AND_RECORDINGS_DELETED = 'room_with_active_meeting_and_recordings_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_CLOSED = 'room_with_active_meeting_closed',
|
||||
ROOM_WITH_ACTIVE_MEETING_AND_RECORDINGS_SCHEDULED_TO_BE_DELETED = 'room_with_active_meeting_and_recordings_scheduled_to_be_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_SCHEDULED_TO_BE_CLOSED = 'room_with_active_meeting_scheduled_to_be_closed'
|
||||
ROOM_DELETED = 'room_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_DELETED = 'room_with_active_meeting_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_SCHEDULED_TO_BE_DELETED = 'room_with_active_meeting_scheduled_to_be_deleted',
|
||||
ROOM_AND_RECORDINGS_DELETED = 'room_and_recordings_deleted',
|
||||
ROOM_CLOSED = 'room_closed',
|
||||
ROOM_WITH_ACTIVE_MEETING_AND_RECORDINGS_DELETED = 'room_with_active_meeting_and_recordings_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_CLOSED = 'room_with_active_meeting_closed',
|
||||
ROOM_WITH_ACTIVE_MEETING_AND_RECORDINGS_SCHEDULED_TO_BE_DELETED = 'room_with_active_meeting_and_recordings_scheduled_to_be_deleted',
|
||||
ROOM_WITH_ACTIVE_MEETING_SCHEDULED_TO_BE_CLOSED = 'room_with_active_meeting_scheduled_to_be_closed'
|
||||
}
|
||||
|
||||
export enum MeetRoomDeletionErrorCode {
|
||||
ROOM_HAS_ACTIVE_MEETING = 'room_has_active_meeting',
|
||||
ROOM_HAS_RECORDINGS = 'room_has_recordings',
|
||||
ROOM_WITH_ACTIVE_MEETING_HAS_RECORDINGS = 'room_with_active_meeting_has_recordings',
|
||||
ROOM_WITH_ACTIVE_MEETING_HAS_RECORDINGS_CANNOT_SCHEDULE_DELETION = 'room_with_active_meeting_has_recordings_cannot_schedule_deletion',
|
||||
ROOM_WITH_RECORDINGS_HAS_ACTIVE_MEETING = 'room_with_recordings_has_active_meeting'
|
||||
ROOM_HAS_ACTIVE_MEETING = 'room_has_active_meeting',
|
||||
ROOM_HAS_RECORDINGS = 'room_has_recordings',
|
||||
ROOM_WITH_ACTIVE_MEETING_HAS_RECORDINGS = 'room_with_active_meeting_has_recordings',
|
||||
ROOM_WITH_ACTIVE_MEETING_HAS_RECORDINGS_CANNOT_SCHEDULE_DELETION = 'room_with_active_meeting_has_recordings_cannot_schedule_deletion',
|
||||
ROOM_WITH_RECORDINGS_HAS_ACTIVE_MEETING = 'room_with_recordings_has_active_meeting'
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
export interface SortAndPagination {
|
||||
maxItems?: number;
|
||||
nextPageToken?: string;
|
||||
sortField?: string;
|
||||
sortOrder?: 'asc' | 'desc';
|
||||
maxItems?: number;
|
||||
nextPageToken?: string;
|
||||
sortField?: string;
|
||||
sortOrder?: 'asc' | 'desc';
|
||||
}
|
||||
|
||||
@ -4,34 +4,34 @@ import { SortAndPagination } from './sort-pagination.js';
|
||||
* Options for creating a new Meet user.
|
||||
*/
|
||||
export interface MeetUserOptions {
|
||||
userId: string; // Unique identifier for the user (lowercase letters, numbers, underscores)
|
||||
name: string; // Name of the user
|
||||
role: MeetUserRole; // Role of the user
|
||||
password: string; // Plain text password for the user (will be hashed before storage)
|
||||
userId: string; // Unique identifier for the user (lowercase letters, numbers, underscores)
|
||||
name: string; // Name of the user
|
||||
role: MeetUserRole; // Role of the user
|
||||
password: string; // Plain text password for the user (will be hashed before storage)
|
||||
}
|
||||
|
||||
export interface MeetUser {
|
||||
userId: string;
|
||||
name: string;
|
||||
registrationDate: number;
|
||||
role: MeetUserRole;
|
||||
passwordHash: string;
|
||||
mustChangePassword: boolean;
|
||||
userId: string;
|
||||
name: string;
|
||||
registrationDate: number;
|
||||
role: MeetUserRole;
|
||||
passwordHash: string;
|
||||
mustChangePassword: boolean;
|
||||
}
|
||||
|
||||
export enum MeetUserRole {
|
||||
// Represents a user with administrative privileges (can manage all rooms and users)
|
||||
ADMIN = 'admin',
|
||||
// Represents a regular user (can manage own rooms and access rooms where they are members)
|
||||
USER = 'user',
|
||||
// Represents a room member role (used for room-specific access)
|
||||
ROOM_MEMBER = 'room_member'
|
||||
// Represents a user with administrative privileges (can manage all rooms and users)
|
||||
ADMIN = 'admin',
|
||||
// Represents a regular user (can manage own rooms and access rooms where they are members)
|
||||
USER = 'user',
|
||||
// Represents a room member role (used for room-specific access)
|
||||
ROOM_MEMBER = 'room_member'
|
||||
}
|
||||
|
||||
export type MeetUserDTO = Omit<MeetUser, 'passwordHash' | 'mustChangePassword'>;
|
||||
|
||||
export interface MeetUserFilters extends SortAndPagination {
|
||||
userId?: string;
|
||||
name?: string;
|
||||
role?: MeetUserRole;
|
||||
userId?: string;
|
||||
name?: string;
|
||||
role?: MeetUserRole;
|
||||
}
|
||||
|
||||
@ -2,26 +2,26 @@
|
||||
* All available commands that can be sent to the WebComponent.
|
||||
*/
|
||||
export enum WebComponentCommand {
|
||||
/**
|
||||
* Initializes the WebComponent with the given configuration.
|
||||
* This command is sent from the webcomponent to the iframe for intialice the domain.
|
||||
* @private
|
||||
*/
|
||||
INITIALIZE = 'initialize',
|
||||
/**
|
||||
* Ends the current meeting for all participants.
|
||||
* @moderator
|
||||
*/
|
||||
END_MEETING = 'endMeeting',
|
||||
/**
|
||||
* Disconnects the local participant from the current room.
|
||||
*/
|
||||
LEAVE_ROOM = 'leaveRoom',
|
||||
/**
|
||||
* Kicks a participant from the meeting.
|
||||
* @moderator
|
||||
*/
|
||||
KICK_PARTICIPANT = 'kickParticipant'
|
||||
/**
|
||||
* Initializes the WebComponent with the given configuration.
|
||||
* This command is sent from the webcomponent to the iframe for intialice the domain.
|
||||
* @private
|
||||
*/
|
||||
INITIALIZE = 'initialize',
|
||||
/**
|
||||
* Ends the current meeting for all participants.
|
||||
* @moderator
|
||||
*/
|
||||
END_MEETING = 'endMeeting',
|
||||
/**
|
||||
* Disconnects the local participant from the current room.
|
||||
*/
|
||||
LEAVE_ROOM = 'leaveRoom',
|
||||
/**
|
||||
* Kicks a participant from the meeting.
|
||||
* @moderator
|
||||
*/
|
||||
KICK_PARTICIPANT = 'kickParticipant'
|
||||
}
|
||||
|
||||
/**
|
||||
@ -30,18 +30,18 @@ export enum WebComponentCommand {
|
||||
* @category Communication
|
||||
*/
|
||||
export interface WebComponentCommandPayloads {
|
||||
/**
|
||||
* Payload for the INITIALIZE command.
|
||||
* @private
|
||||
*/
|
||||
[WebComponentCommand.INITIALIZE]: {
|
||||
domain: string;
|
||||
};
|
||||
[WebComponentCommand.END_MEETING]: void;
|
||||
[WebComponentCommand.LEAVE_ROOM]: void;
|
||||
[WebComponentCommand.KICK_PARTICIPANT]: {
|
||||
participantIdentity: string;
|
||||
};
|
||||
/**
|
||||
* Payload for the INITIALIZE command.
|
||||
* @private
|
||||
*/
|
||||
[WebComponentCommand.INITIALIZE]: {
|
||||
domain: string;
|
||||
};
|
||||
[WebComponentCommand.END_MEETING]: void;
|
||||
[WebComponentCommand.LEAVE_ROOM]: void;
|
||||
[WebComponentCommand.KICK_PARTICIPANT]: {
|
||||
participantIdentity: string;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,5 +51,5 @@ export interface WebComponentCommandPayloads {
|
||||
* @private
|
||||
*/
|
||||
export type WenComponentCommandPayloadFor<T extends WebComponentCommand> = T extends keyof WebComponentCommandPayloads
|
||||
? WebComponentCommandPayloads[T]
|
||||
: never;
|
||||
? WebComponentCommandPayloads[T]
|
||||
: never;
|
||||
|
||||
@ -3,36 +3,36 @@
|
||||
* @category Communication
|
||||
*/
|
||||
export enum WebComponentEvent {
|
||||
/**
|
||||
* Event emitted when application is ready to receive commands.
|
||||
* @private
|
||||
*/
|
||||
READY = 'ready',
|
||||
/**
|
||||
* Event emitted when the local participant joins the room.
|
||||
*/
|
||||
JOINED = 'joined',
|
||||
/**
|
||||
* Event emitted when the local participant leaves the room.
|
||||
*/
|
||||
LEFT = 'left',
|
||||
/**
|
||||
* Event emitted when the application is closed.
|
||||
*/
|
||||
CLOSED = 'closed'
|
||||
/**
|
||||
* Event emitted when application is ready to receive commands.
|
||||
* @private
|
||||
*/
|
||||
READY = 'ready',
|
||||
/**
|
||||
* Event emitted when the local participant joins the room.
|
||||
*/
|
||||
JOINED = 'joined',
|
||||
/**
|
||||
* Event emitted when the local participant leaves the room.
|
||||
*/
|
||||
LEFT = 'left',
|
||||
/**
|
||||
* Event emitted when the application is closed.
|
||||
*/
|
||||
CLOSED = 'closed'
|
||||
}
|
||||
|
||||
/**
|
||||
* Reason for emitting the LEFT event in OpenVidu Meet.
|
||||
*/
|
||||
export enum LeftEventReason {
|
||||
VOLUNTARY_LEAVE = 'voluntary_leave', // The participant left the meeting voluntarily
|
||||
NETWORK_DISCONNECT = 'network_disconnect', // The participant was disconnected due to network issues
|
||||
SERVER_SHUTDOWN = 'server_shutdown', // The server was shut down
|
||||
PARTICIPANT_KICKED = 'participant_kicked', // The participant was removed from the meeting by a moderator
|
||||
MEETING_ENDED = 'meeting_ended', // The meeting was ended by a moderator or the room was deleted
|
||||
MEETING_ENDED_BY_SELF = 'meeting_ended_by_self', // The local participant ended the meeting
|
||||
UNKNOWN = 'unknown' // An unknown reason for leaving the meeting
|
||||
VOLUNTARY_LEAVE = 'voluntary_leave', // The participant left the meeting voluntarily
|
||||
NETWORK_DISCONNECT = 'network_disconnect', // The participant was disconnected due to network issues
|
||||
SERVER_SHUTDOWN = 'server_shutdown', // The server was shut down
|
||||
PARTICIPANT_KICKED = 'participant_kicked', // The participant was removed from the meeting by a moderator
|
||||
MEETING_ENDED = 'meeting_ended', // The meeting was ended by a moderator or the room was deleted
|
||||
MEETING_ENDED_BY_SELF = 'meeting_ended_by_self', // The local participant ended the meeting
|
||||
UNKNOWN = 'unknown' // An unknown reason for leaving the meeting
|
||||
}
|
||||
|
||||
/**
|
||||
@ -41,20 +41,20 @@ export enum LeftEventReason {
|
||||
* @category Communication
|
||||
*/
|
||||
export interface WebComponentEventPayloads {
|
||||
/**
|
||||
* Payload for the {@link WebComponentEvent.READY} event.
|
||||
* @private
|
||||
*/
|
||||
[WebComponentEvent.READY]: {};
|
||||
[WebComponentEvent.JOINED]: {
|
||||
roomId: string;
|
||||
participantIdentity: string;
|
||||
};
|
||||
[WebComponentEvent.LEFT]: {
|
||||
roomId: string;
|
||||
participantIdentity: string;
|
||||
reason: LeftEventReason;
|
||||
};
|
||||
/**
|
||||
* Payload for the {@link WebComponentEvent.READY} event.
|
||||
* @private
|
||||
*/
|
||||
[WebComponentEvent.READY]: {};
|
||||
[WebComponentEvent.JOINED]: {
|
||||
roomId: string;
|
||||
participantIdentity: string;
|
||||
};
|
||||
[WebComponentEvent.LEFT]: {
|
||||
roomId: string;
|
||||
participantIdentity: string;
|
||||
reason: LeftEventReason;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -64,5 +64,5 @@ export interface WebComponentEventPayloads {
|
||||
* @private
|
||||
*/
|
||||
export type WebComponentEventPayloadFor<T extends WebComponentEvent> = T extends keyof WebComponentEventPayloads
|
||||
? WebComponentEventPayloads[T]
|
||||
: never;
|
||||
? WebComponentEventPayloads[T]
|
||||
: never;
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
import { WenComponentCommandPayloadFor, WebComponentCommand } from './command.model.js';
|
||||
import { WebComponentEventPayloadFor, WebComponentEvent } from './event.model.js';
|
||||
import { WebComponentCommand, WenComponentCommandPayloadFor } from './command.model.js';
|
||||
import { WebComponentEvent, WebComponentEventPayloadFor } from './event.model.js';
|
||||
|
||||
/**
|
||||
* Represents all possible messages exchanged between the host application and WebComponent.
|
||||
* @category Communication
|
||||
*/
|
||||
export type WebComponentMessage =
|
||||
| WebComponentInboundCommandMessage<WebComponentCommand>
|
||||
| WebComponentOutboundEventMessage<WebComponentEvent>;
|
||||
| WebComponentInboundCommandMessage<WebComponentCommand>
|
||||
| WebComponentOutboundEventMessage<WebComponentEvent>;
|
||||
|
||||
/**
|
||||
* Message sent from the host application to the WebComponent.
|
||||
@ -15,10 +15,10 @@ export type WebComponentMessage =
|
||||
* @category Communication
|
||||
*/
|
||||
export interface WebComponentInboundCommandMessage<T extends WebComponentCommand = WebComponentCommand> {
|
||||
/** The command to execute in the WebComponent */
|
||||
command: T;
|
||||
/** Optional payload with additional data for the command */
|
||||
payload?: WenComponentCommandPayloadFor<T>;
|
||||
/** The command to execute in the WebComponent */
|
||||
command: T;
|
||||
/** Optional payload with additional data for the command */
|
||||
payload?: WenComponentCommandPayloadFor<T>;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -27,10 +27,10 @@ export interface WebComponentInboundCommandMessage<T extends WebComponentCommand
|
||||
* @category Communication
|
||||
*/
|
||||
export interface WebComponentOutboundEventMessage<T extends WebComponentEvent = WebComponentEvent> {
|
||||
/** The type of event being emitted */
|
||||
event: T;
|
||||
/** Optional payload with additional data about the event */
|
||||
payload?: WebComponentEventPayloadFor<T>;
|
||||
/** The type of event being emitted */
|
||||
event: T;
|
||||
/** Optional payload with additional data about the event */
|
||||
payload?: WebComponentEventPayloadFor<T>;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -42,10 +42,10 @@ export interface WebComponentOutboundEventMessage<T extends WebComponentEvent =
|
||||
* @private
|
||||
*/
|
||||
export function createWebComponentCommandMessage<T extends WebComponentCommand>(
|
||||
command: T,
|
||||
payload?: WenComponentCommandPayloadFor<T>
|
||||
command: T,
|
||||
payload?: WenComponentCommandPayloadFor<T>
|
||||
): WebComponentInboundCommandMessage<T> {
|
||||
return { command, payload };
|
||||
return { command, payload };
|
||||
}
|
||||
|
||||
/**
|
||||
@ -57,8 +57,8 @@ export function createWebComponentCommandMessage<T extends WebComponentCommand>(
|
||||
* @private
|
||||
*/
|
||||
export function createWebComponentEventMessage<T extends WebComponentEvent>(
|
||||
event: T,
|
||||
payload?: WebComponentEventPayloadFor<T>
|
||||
event: T,
|
||||
payload?: WebComponentEventPayloadFor<T>
|
||||
): WebComponentOutboundEventMessage<T> {
|
||||
return { event, payload };
|
||||
return { event, payload };
|
||||
}
|
||||
|
||||
@ -1,32 +1,32 @@
|
||||
export enum WebComponentProperty {
|
||||
/**
|
||||
* The OpenVidu Meet room URL to connect to (moderator or speaker url)
|
||||
* @required This attribute is required unless `recording-url` is provided.
|
||||
*/
|
||||
ROOM_URL = 'room-url',
|
||||
/**
|
||||
* The URL of a recording to view.
|
||||
* @required This attribute is required unless `room-url` is provided.
|
||||
*/
|
||||
RECORDING_URL = 'recording-url',
|
||||
/**
|
||||
* Display name for the local participant.
|
||||
*/
|
||||
PARTICIPANT_NAME = 'participant-name',
|
||||
/**
|
||||
* The OpenVidu Meet room URL to connect to (moderator or speaker url)
|
||||
* @required This attribute is required unless `recording-url` is provided.
|
||||
*/
|
||||
ROOM_URL = 'room-url',
|
||||
/**
|
||||
* The URL of a recording to view.
|
||||
* @required This attribute is required unless `room-url` is provided.
|
||||
*/
|
||||
RECORDING_URL = 'recording-url',
|
||||
/**
|
||||
* Display name for the local participant.
|
||||
*/
|
||||
PARTICIPANT_NAME = 'participant-name',
|
||||
|
||||
/**
|
||||
* Secret key for end-to-end encryption (E2EE).
|
||||
* If provided, the participant will join the meeting using E2EE key.
|
||||
*/
|
||||
E2EE_KEY = 'e2ee-key',
|
||||
/**
|
||||
* Secret key for end-to-end encryption (E2EE).
|
||||
* If provided, the participant will join the meeting using E2EE key.
|
||||
*/
|
||||
E2EE_KEY = 'e2ee-key',
|
||||
|
||||
/**
|
||||
* URL to redirect to when leaving the meeting.
|
||||
* Redirection occurs after the **`CLOSED` event** fires.
|
||||
*/
|
||||
LEAVE_REDIRECT_URL = 'leave-redirect-url',
|
||||
/**
|
||||
* Whether to show only recordings instead of live meetings.
|
||||
*/
|
||||
SHOW_ONLY_RECORDINGS = 'show-only-recordings'
|
||||
/**
|
||||
* URL to redirect to when leaving the meeting.
|
||||
* Redirection occurs after the **`CLOSED` event** fires.
|
||||
*/
|
||||
LEAVE_REDIRECT_URL = 'leave-redirect-url',
|
||||
/**
|
||||
* Whether to show only recordings instead of live meetings.
|
||||
*/
|
||||
SHOW_ONLY_RECORDINGS = 'show-only-recordings'
|
||||
}
|
||||
|
||||
@ -4,16 +4,16 @@ import { MeetRoom } from './room.js';
|
||||
export type MeetWebhookPayload = MeetRecordingInfo | MeetRoom;
|
||||
|
||||
export enum MeetWebhookEventType {
|
||||
MEETING_STARTED = 'meetingStarted',
|
||||
MEETING_ENDED = 'meetingEnded',
|
||||
RECORDING_STARTED = 'recordingStarted',
|
||||
RECORDING_UPDATED = 'recordingUpdated',
|
||||
RECORDING_ENDED = 'recordingEnded',
|
||||
ROOM_FINISHED = 'roomFinished'
|
||||
MEETING_STARTED = 'meetingStarted',
|
||||
MEETING_ENDED = 'meetingEnded',
|
||||
RECORDING_STARTED = 'recordingStarted',
|
||||
RECORDING_UPDATED = 'recordingUpdated',
|
||||
RECORDING_ENDED = 'recordingEnded',
|
||||
ROOM_FINISHED = 'roomFinished'
|
||||
}
|
||||
|
||||
export interface MeetWebhookEvent {
|
||||
creationDate: number;
|
||||
event: MeetWebhookEventType;
|
||||
data: MeetWebhookPayload;
|
||||
creationDate: number;
|
||||
event: MeetWebhookEventType;
|
||||
data: MeetWebhookPayload;
|
||||
}
|
||||
|
||||
1107
pnpm-lock.yaml
generated
1107
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user