From b3ab245dffd4dc6d9f8964e9f43d7d35aeffbbe1 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Tue, 3 Feb 2026 15:50:24 +0100 Subject: [PATCH] Centralize Prettier configuration to enforce consistent formatting across all subprojects --- meet-ce/backend/.prettierrc => .prettierrc | 0 meet-ce/frontend/.prettierrc | 10 - meet-ce/typings/src/analytics.ts | 32 +- meet-ce/typings/src/api-key.ts | 4 +- meet-ce/typings/src/auth-config.ts | 28 +- meet-ce/typings/src/event.model.ts | 22 +- meet-ce/typings/src/global-config.ts | 20 +- meet-ce/typings/src/index.ts | 16 +- .../src/permissions/livekit-permissions.ts | 2 +- .../src/permissions/meet-permissions.ts | 5 - meet-ce/typings/src/recording.model.ts | 226 ++-- meet-ce/typings/src/room-config.ts | 128 +- meet-ce/typings/src/room-member.ts | 90 +- meet-ce/typings/src/room.ts | 338 ++--- meet-ce/typings/src/sort-pagination.ts | 8 +- meet-ce/typings/src/user.ts | 38 +- .../typings/src/webcomponent/command.model.ts | 68 +- .../typings/src/webcomponent/event.model.ts | 80 +- .../typings/src/webcomponent/message.type.ts | 36 +- .../src/webcomponent/properties.model.ts | 56 +- meet-ce/typings/src/webhook.model.ts | 18 +- pnpm-lock.yaml | 1107 ++++++++++++++++- 22 files changed, 1674 insertions(+), 658 deletions(-) rename meet-ce/backend/.prettierrc => .prettierrc (100%) delete mode 100644 meet-ce/frontend/.prettierrc diff --git a/meet-ce/backend/.prettierrc b/.prettierrc similarity index 100% rename from meet-ce/backend/.prettierrc rename to .prettierrc diff --git a/meet-ce/frontend/.prettierrc b/meet-ce/frontend/.prettierrc deleted file mode 100644 index f5039f26..00000000 --- a/meet-ce/frontend/.prettierrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "singleQuote": true, - "printWidth": 120, - "trailingComma": "none", - "semi": true, - "bracketSpacing": true, - "useTabs": true, - "jsxSingleQuote": true, - "tabWidth": 4 -} diff --git a/meet-ce/typings/src/analytics.ts b/meet-ce/typings/src/analytics.ts index 5a5891e0..3f7744ea 100644 --- a/meet-ce/typings/src/analytics.ts +++ b/meet-ce/typings/src/analytics.ts @@ -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; } diff --git a/meet-ce/typings/src/api-key.ts b/meet-ce/typings/src/api-key.ts index ab1ac38e..9eac9c28 100644 --- a/meet-ce/typings/src/api-key.ts +++ b/meet-ce/typings/src/api-key.ts @@ -1,4 +1,4 @@ export interface MeetApiKey { - key: string; - creationDate: number; + key: string; + creationDate: number; } diff --git a/meet-ce/typings/src/auth-config.ts b/meet-ce/typings/src/auth-config.ts index a8dc5cd3..1073ca95 100644 --- a/meet-ce/typings/src/auth-config.ts +++ b/meet-ce/typings/src/auth-config.ts @@ -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' } diff --git a/meet-ce/typings/src/event.model.ts b/meet-ce/typings/src/event.model.ts index 851d8762..71db1600 100644 --- a/meet-ce/typings/src/event.model.ts +++ b/meet-ce/typings/src/event.model.ts @@ -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; diff --git a/meet-ce/typings/src/global-config.ts b/meet-ce/typings/src/global-config.ts index 482ad7a4..6d24cbda 100644 --- a/meet-ce/typings/src/global-config.ts +++ b/meet-ce/typings/src/global-config.ts @@ -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; } diff --git a/meet-ce/typings/src/index.ts b/meet-ce/typings/src/index.ts index a10c972f..e2e6d9d4 100644 --- a/meet-ce/typings/src/index.ts +++ b/meet-ce/typings/src/index.ts @@ -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'; diff --git a/meet-ce/typings/src/permissions/livekit-permissions.ts b/meet-ce/typings/src/permissions/livekit-permissions.ts index 61ce72b6..ae476e03 100644 --- a/meet-ce/typings/src/permissions/livekit-permissions.ts +++ b/meet-ce/typings/src/permissions/livekit-permissions.ts @@ -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 { diff --git a/meet-ce/typings/src/permissions/meet-permissions.ts b/meet-ce/typings/src/permissions/meet-permissions.ts index ad92e055..c604f88d 100644 --- a/meet-ce/typings/src/permissions/meet-permissions.ts +++ b/meet-ce/typings/src/permissions/meet-permissions.ts @@ -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. */ diff --git a/meet-ce/typings/src/recording.model.ts b/meet-ce/typings/src/recording.model.ts index fa02b76a..b8de6054 100644 --- a/meet-ce/typings/src/recording.model.ts +++ b/meet-ce/typings/src/recording.model.ts @@ -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; } diff --git a/meet-ce/typings/src/room-config.ts b/meet-ce/typings/src/room-config.ts index 59134c4a..f75ab562 100644 --- a/meet-ce/typings/src/room-config.ts +++ b/meet-ce/typings/src/room-config.ts @@ -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' } diff --git a/meet-ce/typings/src/room-member.ts b/meet-ce/typings/src/room-member.ts index 510531f6..67a92b8a 100644 --- a/meet-ce/typings/src/room-member.ts +++ b/meet-ce/typings/src/room-member.ts @@ -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; // 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; // 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; // 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; // 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; - effectivePermissions: MeetRoomMemberPermissions; + /** Token issued at timestamp (milliseconds since epoch) */ + iat: number; + livekitUrl: string; + roomId: string; + memberId?: string; + baseRole: MeetRoomMemberRole; + customPermissions?: Partial; + effectivePermissions: MeetRoomMemberPermissions; } diff --git a/meet-ce/typings/src/room.ts b/meet-ce/typings/src/room.ts index 4c3209c3..df5ebc41 100644 --- a/meet-ce/typings/src/room.ts +++ b/meet-ce/typings/src/room.ts @@ -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; - /** - * 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; + /** + * 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; - }; - speaker?: { - permissions: Partial; - }; + moderator?: { + permissions: Partial; + }; + speaker?: { + permissions: Partial; + }; } /** @@ -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' } diff --git a/meet-ce/typings/src/sort-pagination.ts b/meet-ce/typings/src/sort-pagination.ts index 6d5b1110..f3c3b786 100644 --- a/meet-ce/typings/src/sort-pagination.ts +++ b/meet-ce/typings/src/sort-pagination.ts @@ -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'; } diff --git a/meet-ce/typings/src/user.ts b/meet-ce/typings/src/user.ts index b4c6c74a..fba2b20c 100644 --- a/meet-ce/typings/src/user.ts +++ b/meet-ce/typings/src/user.ts @@ -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; export interface MeetUserFilters extends SortAndPagination { - userId?: string; - name?: string; - role?: MeetUserRole; + userId?: string; + name?: string; + role?: MeetUserRole; } diff --git a/meet-ce/typings/src/webcomponent/command.model.ts b/meet-ce/typings/src/webcomponent/command.model.ts index 724febf7..17dc0870 100644 --- a/meet-ce/typings/src/webcomponent/command.model.ts +++ b/meet-ce/typings/src/webcomponent/command.model.ts @@ -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 keyof WebComponentCommandPayloads - ? WebComponentCommandPayloads[T] - : never; + ? WebComponentCommandPayloads[T] + : never; diff --git a/meet-ce/typings/src/webcomponent/event.model.ts b/meet-ce/typings/src/webcomponent/event.model.ts index 393da950..b766f9aa 100644 --- a/meet-ce/typings/src/webcomponent/event.model.ts +++ b/meet-ce/typings/src/webcomponent/event.model.ts @@ -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 keyof WebComponentEventPayloads - ? WebComponentEventPayloads[T] - : never; + ? WebComponentEventPayloads[T] + : never; diff --git a/meet-ce/typings/src/webcomponent/message.type.ts b/meet-ce/typings/src/webcomponent/message.type.ts index 654577ed..0e1062a1 100644 --- a/meet-ce/typings/src/webcomponent/message.type.ts +++ b/meet-ce/typings/src/webcomponent/message.type.ts @@ -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 - | WebComponentOutboundEventMessage; + | WebComponentInboundCommandMessage + | WebComponentOutboundEventMessage; /** * Message sent from the host application to the WebComponent. @@ -15,10 +15,10 @@ export type WebComponentMessage = * @category Communication */ export interface WebComponentInboundCommandMessage { - /** The command to execute in the WebComponent */ - command: T; - /** Optional payload with additional data for the command */ - payload?: WenComponentCommandPayloadFor; + /** The command to execute in the WebComponent */ + command: T; + /** Optional payload with additional data for the command */ + payload?: WenComponentCommandPayloadFor; } /** @@ -27,10 +27,10 @@ export interface WebComponentInboundCommandMessage { - /** The type of event being emitted */ - event: T; - /** Optional payload with additional data about the event */ - payload?: WebComponentEventPayloadFor; + /** The type of event being emitted */ + event: T; + /** Optional payload with additional data about the event */ + payload?: WebComponentEventPayloadFor; } /** @@ -42,10 +42,10 @@ export interface WebComponentOutboundEventMessage( - command: T, - payload?: WenComponentCommandPayloadFor + command: T, + payload?: WenComponentCommandPayloadFor ): WebComponentInboundCommandMessage { - return { command, payload }; + return { command, payload }; } /** @@ -57,8 +57,8 @@ export function createWebComponentCommandMessage( * @private */ export function createWebComponentEventMessage( - event: T, - payload?: WebComponentEventPayloadFor + event: T, + payload?: WebComponentEventPayloadFor ): WebComponentOutboundEventMessage { - return { event, payload }; + return { event, payload }; } diff --git a/meet-ce/typings/src/webcomponent/properties.model.ts b/meet-ce/typings/src/webcomponent/properties.model.ts index f573ff3b..756f800d 100644 --- a/meet-ce/typings/src/webcomponent/properties.model.ts +++ b/meet-ce/typings/src/webcomponent/properties.model.ts @@ -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' } diff --git a/meet-ce/typings/src/webhook.model.ts b/meet-ce/typings/src/webhook.model.ts index 36243250..744f6604 100644 --- a/meet-ce/typings/src/webhook.model.ts +++ b/meet-ce/typings/src/webhook.model.ts @@ -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; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e533e13..5a4bdaca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -504,6 +504,359 @@ importers: specifier: 5.9.3 version: 5.9.3 + meet-pro/backend: + dependencies: + '@aws-sdk/client-s3': + specifier: 3.846.0 + version: 3.846.0 + '@azure/storage-blob': + specifier: 12.27.0 + version: 12.27.0 + '@google-cloud/storage': + specifier: 7.17.1 + version: 7.17.1(encoding@0.1.13) + '@openvidu-meet-pro/typings': + specifier: workspace:* + version: link:../typings + '@openvidu-meet/backend': + specifier: workspace:* + version: link:../../meet-ce/backend + '@sesamecare-oss/redlock': + specifier: 1.4.0 + version: 1.4.0(ioredis@5.6.1) + archiver: + specifier: 7.0.1 + version: 7.0.1 + bcrypt: + specifier: 5.1.1 + version: 5.1.1(encoding@0.1.13) + body-parser: + specifier: 2.2.0 + version: 2.2.0 + chalk: + specifier: 5.6.2 + version: 5.6.2 + cookie-parser: + specifier: 1.4.7 + version: 1.4.7 + cors: + specifier: 2.8.5 + version: 2.8.5 + cron: + specifier: 4.3.3 + version: 4.3.3 + dotenv: + specifier: 16.6.1 + version: 16.6.1 + express: + specifier: 4.21.2 + version: 4.21.2 + express-rate-limit: + specifier: 7.5.1 + version: 7.5.1(express@4.21.2) + inversify: + specifier: 6.2.2 + version: 6.2.2(reflect-metadata@0.2.2) + ioredis: + specifier: 5.6.1 + version: 5.6.1 + jwt-decode: + specifier: 4.0.0 + version: 4.0.0 + livekit-server-sdk: + specifier: 2.13.1 + version: 2.13.1 + ms: + specifier: 2.1.3 + version: 2.1.3 + uid: + specifier: 2.0.2 + version: 2.0.2 + winston: + specifier: 3.18.3 + version: 3.18.3 + yamljs: + specifier: 0.3.0 + version: 0.3.0 + zod: + specifier: 3.25.76 + version: 3.25.76 + devDependencies: + '@types/archiver': + specifier: 6.0.3 + version: 6.0.3 + '@types/bcrypt': + specifier: 5.0.2 + version: 5.0.2 + '@types/cookie-parser': + specifier: 1.4.9 + version: 1.4.9(@types/express@4.17.23) + '@types/cors': + specifier: 2.8.19 + version: 2.8.19 + '@types/express': + specifier: 4.17.23 + version: 4.17.23 + '@types/jest': + specifier: 29.5.14 + version: 29.5.14 + '@types/ms': + specifier: 2.1.0 + version: 2.1.0 + '@types/node': + specifier: 22.16.4 + version: 22.16.4 + '@types/supertest': + specifier: 6.0.3 + version: 6.0.3 + '@types/unzipper': + specifier: 0.10.11 + version: 0.10.11 + '@types/validator': + specifier: 13.15.2 + version: 13.15.2 + '@types/yamljs': + specifier: 0.2.34 + version: 0.2.34 + '@typescript-eslint/eslint-plugin': + specifier: 6.21.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/parser': + specifier: 6.21.0 + version: 6.21.0(eslint@8.57.1)(typescript@5.9.2) + cross-env: + specifier: 7.0.3 + version: 7.0.3 + eslint: + specifier: 8.57.1 + version: 8.57.1 + eslint-config-prettier: + specifier: 9.1.0 + version: 9.1.0(eslint@8.57.1) + jest: + specifier: 29.7.0 + version: 29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + jest-fetch-mock: + specifier: 3.0.3 + version: 3.0.3(encoding@0.1.13) + jest-junit: + specifier: 16.0.0 + version: 16.0.0 + nodemon: + specifier: 3.1.10 + version: 3.1.10 + openapi-generate-html: + specifier: 0.5.3 + version: 0.5.3(@types/node@22.16.4) + prettier: + specifier: 3.6.2 + version: 3.6.2 + supertest: + specifier: 7.1.3 + version: 7.1.3 + ts-jest: + specifier: 29.4.0 + version: 29.4.0(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)))(typescript@5.9.2) + ts-jest-resolver: + specifier: 2.0.1 + version: 2.0.1 + tsx: + specifier: 4.20.3 + version: 4.20.3 + typescript: + specifier: 5.9.2 + version: 5.9.2 + unzipper: + specifier: 0.12.3 + version: 0.12.3 + + meet-pro/frontend: + dependencies: + '@angular/animations': + specifier: 20.3.15 + version: 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/cdk': + specifier: 20.2.14 + version: 20.2.14(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/common': + specifier: 20.3.15 + version: 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) + '@angular/compiler': + specifier: 20.3.15 + version: 20.3.15 + '@angular/core': + specifier: 20.3.15 + version: 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/forms': + specifier: 20.3.15 + version: 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@angular/material': + specifier: 20.2.14 + version: 20.2.14(2a2c27b5f9f3f8b334e74e3c717f4ace) + '@angular/platform-browser': + specifier: 20.3.15 + version: 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + '@angular/platform-browser-dynamic': + specifier: 20.3.15 + version: 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))) + '@angular/router': + specifier: 20.3.15 + version: 20.3.15(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@livekit/track-processors': + specifier: 0.7.0 + version: 0.7.0(@types/dom-mediacapture-transform@0.1.11)(livekit-client@2.16.1(@types/dom-mediacapture-record@1.0.22)) + '@openvidu-meet/shared-components': + specifier: workspace:* + version: link:../../meet-ce/frontend/projects/shared-meet-components + '@openvidu-meet/typings': + specifier: workspace:* + version: link:../../meet-ce/typings + autolinker: + specifier: 4.1.5 + version: 4.1.5 + core-js: + specifier: 3.45.1 + version: 3.45.1 + jwt-decode: + specifier: 4.0.0 + version: 4.0.0 + livekit-client: + specifier: 2.16.1 + version: 2.16.1(@types/dom-mediacapture-record@1.0.22) + openvidu-components-angular: + specifier: workspace:* + version: link:../../../openvidu/openvidu-components-angular/projects/openvidu-components-angular + rxjs: + specifier: 7.8.2 + version: 7.8.2 + tslib: + specifier: 2.8.1 + version: 2.8.1 + unique-names-generator: + specifier: 4.7.1 + version: 4.7.1 + zone.js: + specifier: 0.15.1 + version: 0.15.1 + devDependencies: + '@angular-builders/custom-webpack': + specifier: 20.0.0 + version: 20.0.0(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@22.18.13)(browser-sync@3.0.4)(chokidar@4.0.3)(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@22.18.13)(ts-node@10.9.2(@types/node@22.18.13)(typescript@5.9.2)))(jiti@1.21.7)(karma@6.4.4)(less@4.5.1)(ng-packagr@20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2))(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2) + '@angular-devkit/build-angular': + specifier: 20.3.13 + version: 20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@22.18.13)(browser-sync@3.0.4)(chokidar@4.0.3)(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@22.18.13)(ts-node@10.9.2(@types/node@22.18.13)(typescript@5.9.2)))(jiti@1.21.7)(karma@6.4.4)(ng-packagr@20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2))(tsx@4.20.6)(typescript@5.9.2) + '@angular-eslint/builder': + specifier: 20.3.0 + version: 20.3.0(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.9.2) + '@angular-eslint/eslint-plugin': + specifier: 20.3.0 + version: 20.3.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + '@angular-eslint/eslint-plugin-template': + specifier: 20.3.0 + version: 20.3.0(@angular-eslint/template-parser@20.3.0(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.50.0)(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + '@angular-eslint/schematics': + specifier: 20.3.0 + version: 20.3.0(@angular-eslint/template-parser@20.3.0(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.50.0)(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.9.2) + '@angular-eslint/template-parser': + specifier: 20.3.0 + version: 20.3.0(eslint@8.57.1)(typescript@5.9.2) + '@angular/cli': + specifier: 20.3.13 + version: 20.3.13(@types/node@22.18.13)(chokidar@4.0.3) + '@angular/compiler-cli': + specifier: 20.3.15 + version: 20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2) + '@types/chai': + specifier: 4.3.20 + version: 4.3.20 + '@types/fluent-ffmpeg': + specifier: 2.1.27 + version: 2.1.27 + '@types/jasmine': + specifier: 5.1.9 + version: 5.1.9 + '@types/mocha': + specifier: 9.1.1 + version: 9.1.1 + '@types/node': + specifier: 22.18.13 + version: 22.18.13 + '@types/pixelmatch': + specifier: 5.2.6 + version: 5.2.6 + '@types/pngjs': + specifier: 6.0.5 + version: 6.0.5 + '@typescript-eslint/eslint-plugin': + specifier: 8.46.4 + version: 8.46.4(@typescript-eslint/parser@8.46.4(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/parser': + specifier: 8.46.4 + version: 8.46.4(eslint@8.57.1)(typescript@5.9.2) + chai: + specifier: 4.5.0 + version: 4.5.0 + chromedriver: + specifier: 141.0.6 + version: 141.0.6 + cross-env: + specifier: 7.0.3 + version: 7.0.3 + eslint: + specifier: 8.57.1 + version: 8.57.1 + eslint-config-prettier: + specifier: 9.1.2 + version: 9.1.2(eslint@8.57.1) + fluent-ffmpeg: + specifier: 2.1.3 + version: 2.1.3 + jasmine-core: + specifier: 5.6.0 + version: 5.6.0 + jasmine-spec-reporter: + specifier: 7.0.0 + version: 7.0.0 + karma: + specifier: 6.4.4 + version: 6.4.4 + karma-chrome-launcher: + specifier: 3.2.0 + version: 3.2.0 + karma-coverage: + specifier: 2.2.1 + version: 2.2.1 + karma-jasmine: + specifier: 5.1.0 + version: 5.1.0(karma@6.4.4) + karma-jasmine-html-reporter: + specifier: 2.1.0 + version: 2.1.0(jasmine-core@5.6.0)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + mocha: + specifier: 10.7.3 + version: 10.7.3 + ng-packagr: + specifier: 20.3.2 + version: 20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + prettier: + specifier: 3.3.3 + version: 3.3.3 + ts-node: + specifier: 10.9.2 + version: 10.9.2(@types/node@22.18.13)(typescript@5.9.2) + typescript: + specifier: 5.9.2 + version: 5.9.2 + + meet-pro/typings: + devDependencies: + '@openvidu-meet/typings': + specifier: workspace:* + version: link:../../meet-ce/typings + typescript: + specifier: 5.9.2 + version: 5.9.2 + testapp: dependencies: '@openvidu-meet/typings': @@ -696,15 +1049,33 @@ packages: resolution: {integrity: sha512-hdMKY4rUTko8xqeWYGnwwDYDomkeOoLsYsP6SdaHWK7hpGvzWsT6Q/aIv8J8NrCYkLu+M+5nLiKOooweUZu3GQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-eslint/builder@20.3.0': + resolution: {integrity: sha512-3XpWLdh+/K4+r0ChkKW00SXWyBA7ShMpE+Pt1XUmIu4srJgGRnt8e+kC4Syi+s2t5QS7PjlwRaelB1KfSMXZ5A==} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + '@angular-eslint/builder@20.7.0': resolution: {integrity: sha512-qgf4Cfs1z0VsVpzF/OnxDRvBp60OIzeCsp4mzlckWYVniKo19EPIN6kFDol5eTAIOMPgiBQlMIwgQMHgocXEig==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '*' + '@angular-eslint/bundled-angular-compiler@20.3.0': + resolution: {integrity: sha512-QwuNnmRNr/uNj89TxknPbGcs5snX1w7RoJJPNAsfb2QGcHzUTQovS8hqm9kaDZdpUJDPP7jt7B6F0+EjrPAXRA==} + '@angular-eslint/bundled-angular-compiler@20.7.0': resolution: {integrity: sha512-9KPz24YoiL0SvTtTX6sd1zmysU5cKOCcmpEiXkCoO3L2oYZGlVxmMT4hfSaHMt8qmfvV2KzQMoR6DZM84BwRzQ==} + '@angular-eslint/eslint-plugin-template@20.3.0': + resolution: {integrity: sha512-WMJDJfybOLCiN4QrOyrLl+Zt5F+A/xoDYMWTdn+LgACheLs2tguVQiwf+oCgHnHGcsTsulPYlRHldKBGZMgs4w==} + peerDependencies: + '@angular-eslint/template-parser': 20.3.0 + '@typescript-eslint/types': ^7.11.0 || ^8.0.0 + '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + '@angular-eslint/eslint-plugin-template@20.7.0': resolution: {integrity: sha512-WFmvW2vBR6ExsSKEaActQTteyw6ikWyuJau9XmWEPFd+2eusEt/+wO21ybjDn3uc5FTp1IcdhfYy+U5OdDjH5w==} peerDependencies: @@ -714,6 +1085,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '*' + '@angular-eslint/eslint-plugin@20.3.0': + resolution: {integrity: sha512-7ghzGTiExrgTetDQ6IPP5uXSa94Xhtzp2VHCIa58EcUb7oMv06HWZ1Uss3xgFmACsLpN+vayKJIdFiboqaGVRA==} + peerDependencies: + '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + '@angular-eslint/eslint-plugin@20.7.0': resolution: {integrity: sha512-aHH2YTiaonojsKN+y2z4IMugCwdsH/dYIjYBig6kfoSPyf9rGK4zx+gnNGq/pGRjF3bOYrmFgIviYpQVb80inQ==} peerDependencies: @@ -721,15 +1099,31 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '*' + '@angular-eslint/schematics@20.3.0': + resolution: {integrity: sha512-4n92tHKIJm1PP+FjhnmO7AMpvKdRIoF+YgF38oUU7aMJqfZ3RXIhazMMxw2u3VU1MisKH766KSll++c4LgarVA==} + '@angular-eslint/schematics@20.7.0': resolution: {integrity: sha512-S0onfRipDUIL6gFGTFjiWwUDhi42XYrBoi3kJ3wBbKBeIgYv9SP1ppTKDD4ZoDaDU9cQE8nToX7iPn9ifMw6eQ==} + '@angular-eslint/template-parser@20.3.0': + resolution: {integrity: sha512-gB564h/kZ7siWvgHDETU++sk5e25qFfVaizLaa6KoBEYFP6dOCiedz15LTcA0TsXp0rGu6Z6zkl291iSM1qzDA==} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + '@angular-eslint/template-parser@20.7.0': resolution: {integrity: sha512-CVskZnF38IIxVVlKWi1VCz7YH/gHMJu2IY9bD1AVoBBGIe0xA4FRXJkW2Y+EDs9vQqZTkZZljhK5gL65Ro1PeQ==} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '*' + '@angular-eslint/utils@20.3.0': + resolution: {integrity: sha512-7XOQeNXgyhznDwoP1TwPrCMq/uXKJHQgCVPFREkJGKbNf/jzNldB7iV1eqpBzUQIPEQFgfcDG67dexpMAq3N4g==} + peerDependencies: + '@typescript-eslint/utils': ^7.11.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + '@angular-eslint/utils@20.7.0': resolution: {integrity: sha512-B6EJHbsk2W/lnS3kS/gm56VGvX735419z/DzgbRDcOvqMGMLwD1ILzv5OTEcL1rzpnB0AHW+IxOu6y/aCzSNUA==} peerDependencies: @@ -2052,6 +2446,10 @@ packages: resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} engines: {node: '>=14'} + '@google-cloud/storage@7.17.1': + resolution: {integrity: sha512-2FMQbpU7qK+OtBPaegC6n+XevgZksobUGo6mGKnXNmeZpvLiAo1gTAE3oTKsrMGDV4VtL8Zzpono0YsK/Q7Iqg==} + engines: {node: '>=14'} + '@google-cloud/storage@7.17.3': resolution: {integrity: sha512-gOnCAbFgAYKRozywLsxagdevTF7Gm+2Ncz5u5CQAuOv/2VCa0rdGJWvJFDOftPx1tc+q8TXiC2pEJfFKu+yeMQ==} engines: {node: '>=14'} @@ -3351,6 +3749,9 @@ packages: resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} + '@types/archiver@6.0.3': + resolution: {integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==} + '@types/archiver@6.0.4': resolution: {integrity: sha512-ULdQpARQ3sz9WH4nb98mJDYA0ft2A8C4f4fovvUcFwINa1cgGjY36JCAYuP5YypRq4mco1lJp1/7jEMS2oR0Hg==} @@ -3425,12 +3826,18 @@ packages: '@types/express-serve-static-core@5.1.0': resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} + '@types/express@4.17.23': + resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==} + '@types/express@4.17.25': resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} '@types/express@5.0.6': resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + '@types/fluent-ffmpeg@2.1.27': + resolution: {integrity: sha512-QiDWjihpUhriISNoBi2hJBRUUmoj/BMTYcfz+F+ZM9hHWBYABFAE6hjP/TbCZC0GWwlpa3FzvHH9RzFeRusZ7A==} + '@types/fluent-ffmpeg@2.1.28': resolution: {integrity: sha512-5ovxsDwBcPfJ+eYs1I/ZpcYCnkce7pvH9AHSvrZllAp1ZPpTRDZAFjF3TRFbukxSgIYTTNYePbS0rKUmaxVbXw==} @@ -3455,6 +3862,9 @@ packages: '@types/jasmine@5.1.13': resolution: {integrity: sha512-MYCcDkruFc92LeYZux5BC0dmqo2jk+M5UIZ4/oFnAPCXN9mCcQhLyj7F3/Za7rocVyt5YRr1MmqJqFlvQ9LVcg==} + '@types/jasmine@5.1.9': + resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==} + '@types/jest@29.5.14': resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} @@ -3497,6 +3907,9 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} + '@types/node@22.16.4': + resolution: {integrity: sha512-PYRhNtZdm2wH/NT2k/oAJ6/f2VD2N2Dag0lGlx2vWgMSJXGNmlce5MiTQzoWAiIJtso30mjnfQCOKVH+kAQC/g==} + '@types/node@22.16.5': resolution: {integrity: sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==} @@ -4606,6 +5019,9 @@ packages: core-js-compat@3.47.0: resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} + core-js@3.45.1: + resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==} + core-js@3.47.0: resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} @@ -4642,6 +5058,10 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + cron@4.3.3: + resolution: {integrity: sha512-B/CJj5yL3sjtlun6RtYHvoSB26EmQ2NUmhq9ZiJSyKIM4K/fqfh9aelDFlIayD2YMeFZqWLi9hHV+c+pq2Djkw==} + engines: {node: '>=18.x'} + cron@4.3.5: resolution: {integrity: sha512-hKPP7fq1+OfyCqoePkKfVq7tNAdFwiQORr4lZUHwrf0tebC65fYEeWgOrXOL6prn1/fegGOdTfrM6e34PJfksg==} engines: {node: '>=18.x'} @@ -5160,6 +5580,12 @@ packages: peerDependencies: eslint: '>=6.0.0' + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + eslint-config-prettier@9.1.2: resolution: {integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==} hasBin: true @@ -5235,6 +5661,10 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.0.0: resolution: {integrity: sha512-+Yh0LeQKq+mW/tQArNj67tljR3L1HajDTQPuZOEwC00oBdoIDQrr89yBgjAlzAwRrY/5zDkM3v99iGHwz9y0dw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -6584,6 +7014,10 @@ packages: peerDependencies: '@types/dom-mediacapture-record': ^1 + livekit-server-sdk@2.13.1: + resolution: {integrity: sha512-k4qFvqjHUR0s9lMMueZ1CMDLw/IngOmL/wsh/zq0+6bIg3rMzns9s3ECOf7XuT56esEuu8LGlrw0+inL86QiqQ==} + engines: {node: '>=18'} + livekit-server-sdk@2.13.3: resolution: {integrity: sha512-ItSQ2gE1oz/Ev9mfBRdAw+P05rt/BaYRkldggKz0+3rh/Yt0ag0BLID3VrgCVFVRAQ2YEJKcJJyj5p4epIJ8QA==} engines: {node: '>=18'} @@ -8428,10 +8862,12 @@ packages: tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me tar@7.5.2: resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me tcp-port-used@1.0.2: resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==} @@ -8651,6 +9087,11 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} + engines: {node: '>=18.0.0'} + hasBin: true + tsx@4.20.6: resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==} engines: {node: '>=18.0.0'} @@ -9351,6 +9792,59 @@ snapshots: - webpack-cli - yaml + '@angular-builders/custom-webpack@20.0.0(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@22.18.13)(browser-sync@3.0.4)(chokidar@4.0.3)(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@22.18.13)(ts-node@10.9.2(@types/node@22.18.13)(typescript@5.9.2)))(jiti@1.21.7)(karma@6.4.4)(less@4.5.1)(ng-packagr@20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2))(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)': + dependencies: + '@angular-builders/common': 4.0.0(@types/node@22.18.13)(chokidar@4.0.3)(typescript@5.9.2) + '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) + '@angular-devkit/build-angular': 20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@22.18.13)(browser-sync@3.0.4)(chokidar@4.0.3)(jest-environment-jsdom@29.7.0)(jest@29.7.0(@types/node@22.18.13)(ts-node@10.9.2(@types/node@22.18.13)(typescript@5.9.2)))(jiti@1.21.7)(karma@6.4.4)(ng-packagr@20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2))(tsx@4.20.6)(typescript@5.9.2) + '@angular-devkit/core': 20.3.13(chokidar@4.0.3) + '@angular/build': 20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@22.18.13)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.5.1)(ng-packagr@20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2))(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2) + '@angular/compiler-cli': 20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2) + lodash: 4.17.21 + webpack-merge: 6.0.1 + transitivePeerDependencies: + - '@angular/compiler' + - '@angular/core' + - '@angular/localize' + - '@angular/platform-browser' + - '@angular/platform-server' + - '@angular/service-worker' + - '@angular/ssr' + - '@rspack/core' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - '@web/test-runner' + - browser-sync + - bufferutil + - chokidar + - debug + - html-webpack-plugin + - jest + - jest-environment-jsdom + - jiti + - karma + - less + - lightningcss + - ng-packagr + - node-sass + - postcss + - protractor + - sass-embedded + - stylus + - sugarss + - supports-color + - tailwindcss + - terser + - tslib + - tsx + - typescript + - uglify-js + - utf-8-validate + - vitest + - webpack-cli + - yaml + '@angular-devkit/architect@0.2003.13(chokidar@4.0.3)': dependencies: '@angular-devkit/core': 20.3.13(chokidar@4.0.3) @@ -9362,7 +9856,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.2003.13(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2) + '@angular-devkit/build-webpack': 0.2003.13(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2(esbuild@0.25.9)))(webpack@5.101.2(esbuild@0.25.9)) '@angular-devkit/core': 20.3.13(chokidar@4.0.3) '@angular/build': 20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@22.18.13)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.4.0)(ng-packagr@20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2))(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2) '@angular/compiler-cli': 20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2) @@ -9376,13 +9870,13 @@ snapshots: '@babel/preset-env': 7.28.3(@babel/core@7.28.3) '@babel/runtime': 7.28.3 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2) + '@ngtools/webpack': 20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) ansi-colors: 4.1.3 autoprefixer: 10.4.21(postcss@8.5.6) - babel-loader: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2) + babel-loader: 10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)) browserslist: 4.28.1 - copy-webpack-plugin: 13.0.1(webpack@5.101.2) - css-loader: 7.1.2(webpack@5.101.2) + copy-webpack-plugin: 13.0.1(webpack@5.101.2(esbuild@0.25.9)) + css-loader: 7.1.2(webpack@5.101.2(esbuild@0.25.9)) esbuild-wasm: 0.25.9 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -9390,32 +9884,32 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.4.0 - less-loader: 12.3.0(less@4.4.0)(webpack@5.101.2) - license-webpack-plugin: 4.0.2(webpack@5.101.2) + less-loader: 12.3.0(less@4.4.0)(webpack@5.101.2(esbuild@0.25.9)) + license-webpack-plugin: 4.0.2(webpack@5.101.2(esbuild@0.25.9)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.4(webpack@5.101.2) + mini-css-extract-plugin: 2.9.4(webpack@5.101.2(esbuild@0.25.9)) open: 10.2.0 ora: 8.2.0 picomatch: 4.0.3 piscina: 5.1.3 postcss: 8.5.6 - postcss-loader: 8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2) + postcss-loader: 8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)) resolve-url-loader: 5.0.0 rxjs: 7.8.2 sass: 1.90.0 - sass-loader: 16.0.5(sass@1.90.0)(webpack@5.101.2) + sass-loader: 16.0.5(sass@1.90.0)(webpack@5.101.2(esbuild@0.25.9)) semver: 7.7.2 - source-map-loader: 5.0.0(webpack@5.101.2) + source-map-loader: 5.0.0(webpack@5.101.2(esbuild@0.25.9)) source-map-support: 0.5.21 terser: 5.43.1 tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.9.2 webpack: 5.101.2(esbuild@0.25.9) - webpack-dev-middleware: 7.4.2(webpack@5.101.2) - webpack-dev-server: 5.2.2(webpack@5.101.2) + webpack-dev-middleware: 7.4.2(webpack@5.101.2(esbuild@0.25.9)) + webpack-dev-server: 5.2.2(webpack@5.101.2(esbuild@0.25.9)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.101.2) + webpack-subresource-integrity: 5.1.0(webpack@5.101.2(esbuild@0.25.9)) optionalDependencies: '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) '@angular/platform-browser': 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) @@ -9448,12 +9942,12 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2003.13(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2))(webpack@5.101.2)': + '@angular-devkit/build-webpack@0.2003.13(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.101.2(esbuild@0.25.9)))(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) rxjs: 7.8.2 webpack: 5.101.2(esbuild@0.25.9) - webpack-dev-server: 5.2.2(webpack@5.101.2) + webpack-dev-server: 5.2.2(webpack@5.101.2(esbuild@0.25.9)) transitivePeerDependencies: - chokidar @@ -9478,6 +9972,15 @@ snapshots: transitivePeerDependencies: - chokidar + '@angular-eslint/builder@20.3.0(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.9.2)': + dependencies: + '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) + '@angular-devkit/core': 20.3.13(chokidar@4.0.3) + eslint: 8.57.1 + typescript: 5.9.2 + transitivePeerDependencies: + - chokidar + '@angular-eslint/builder@20.7.0(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.9.2)': dependencies: '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) @@ -9487,8 +9990,22 @@ snapshots: transitivePeerDependencies: - chokidar + '@angular-eslint/bundled-angular-compiler@20.3.0': {} + '@angular-eslint/bundled-angular-compiler@20.7.0': {} + '@angular-eslint/eslint-plugin-template@20.3.0(@angular-eslint/template-parser@20.3.0(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.50.0)(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': + dependencies: + '@angular-eslint/bundled-angular-compiler': 20.3.0 + '@angular-eslint/template-parser': 20.3.0(eslint@8.57.1)(typescript@5.9.2) + '@angular-eslint/utils': 20.3.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/types': 8.50.0 + '@typescript-eslint/utils': 8.50.0(eslint@8.57.1)(typescript@5.9.2) + aria-query: 5.3.2 + axobject-query: 4.1.0 + eslint: 8.57.1 + typescript: 5.9.2 + '@angular-eslint/eslint-plugin-template@20.7.0(@angular-eslint/template-parser@20.7.0(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.50.0)(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 20.7.0 @@ -9501,6 +10018,15 @@ snapshots: eslint: 8.57.1 typescript: 5.9.2 + '@angular-eslint/eslint-plugin@20.3.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': + dependencies: + '@angular-eslint/bundled-angular-compiler': 20.3.0 + '@angular-eslint/utils': 20.3.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + '@typescript-eslint/utils': 8.50.0(eslint@8.57.1)(typescript@5.9.2) + eslint: 8.57.1 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 + '@angular-eslint/eslint-plugin@20.7.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 20.7.0 @@ -9510,6 +10036,23 @@ snapshots: ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 + '@angular-eslint/schematics@20.3.0(@angular-eslint/template-parser@20.3.0(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.50.0)(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.9.2)': + dependencies: + '@angular-devkit/core': 20.3.13(chokidar@4.0.3) + '@angular-devkit/schematics': 20.3.13(chokidar@4.0.3) + '@angular-eslint/eslint-plugin': 20.3.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + '@angular-eslint/eslint-plugin-template': 20.3.0(@angular-eslint/template-parser@20.3.0(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.50.0)(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) + ignore: 7.0.5 + semver: 7.7.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@angular-eslint/template-parser' + - '@typescript-eslint/types' + - '@typescript-eslint/utils' + - chokidar + - eslint + - typescript + '@angular-eslint/schematics@20.7.0(@angular-eslint/template-parser@20.7.0(eslint@8.57.1)(typescript@5.9.2))(@typescript-eslint/types@8.50.0)(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(chokidar@4.0.3)(eslint@8.57.1)(typescript@5.9.2)': dependencies: '@angular-devkit/core': 20.3.13(chokidar@4.0.3) @@ -9527,6 +10070,13 @@ snapshots: - eslint - typescript + '@angular-eslint/template-parser@20.3.0(eslint@8.57.1)(typescript@5.9.2)': + dependencies: + '@angular-eslint/bundled-angular-compiler': 20.3.0 + eslint: 8.57.1 + eslint-scope: 8.4.0 + typescript: 5.9.2 + '@angular-eslint/template-parser@20.7.0(eslint@8.57.1)(typescript@5.9.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 20.7.0 @@ -9534,6 +10084,13 @@ snapshots: eslint-scope: 9.0.0 typescript: 5.9.2 + '@angular-eslint/utils@20.3.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': + dependencies: + '@angular-eslint/bundled-angular-compiler': 20.3.0 + '@typescript-eslint/utils': 8.50.0(eslint@8.57.1)(typescript@5.9.2) + eslint: 8.57.1 + typescript: 5.9.2 + '@angular-eslint/utils@20.7.0(@typescript-eslint/utils@8.50.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 20.7.0 @@ -9652,6 +10209,59 @@ snapshots: - tsx - yaml + '@angular/build@20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(@angular/compiler@20.3.15)(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@types/node@22.18.13)(chokidar@4.0.3)(jiti@1.21.7)(karma@6.4.4)(less@4.5.1)(ng-packagr@20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2))(postcss@8.5.6)(terser@5.44.1)(tslib@2.8.1)(tsx@4.20.6)(typescript@5.9.2)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2003.13(chokidar@4.0.3) + '@angular/compiler': 20.3.15 + '@angular/compiler-cli': 20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2) + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@inquirer/confirm': 5.1.14(@types/node@22.18.13) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.1.11(@types/node@22.18.13)(jiti@1.21.7)(less@4.5.1)(sass@1.90.0)(terser@5.44.1)(tsx@4.20.6)) + beasties: 0.3.5 + browserslist: 4.28.1 + esbuild: 0.25.9 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + listr2: 9.0.1 + magic-string: 0.30.17 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 8.0.0 + picomatch: 4.0.3 + piscina: 5.1.3 + rollup: 4.52.3 + sass: 1.90.0 + semver: 7.7.2 + source-map-support: 0.5.21 + tinyglobby: 0.2.14 + tslib: 2.8.1 + typescript: 5.9.2 + vite: 7.1.11(@types/node@22.18.13)(jiti@1.21.7)(less@4.5.1)(sass@1.90.0)(terser@5.44.1)(tsx@4.20.6) + watchpack: 2.4.4 + optionalDependencies: + '@angular/core': 20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1) + '@angular/platform-browser': 20.3.15(@angular/animations@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1)) + karma: 6.4.4 + less: 4.5.1 + lmdb: 3.4.2 + ng-packagr: 20.3.2(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(tslib@2.8.1)(typescript@5.9.2) + postcss: 8.5.6 + transitivePeerDependencies: + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + '@angular/cdk@20.2.14(@angular/common@20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2)': dependencies: '@angular/common': 20.3.15(@angular/core@20.3.15(@angular/compiler@20.3.15)(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2) @@ -10344,7 +10954,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) '@babel/helpers': 7.28.4 @@ -11332,6 +11942,27 @@ snapshots: '@google-cloud/promisify@4.0.0': {} + '@google-cloud/storage@7.17.1(encoding@0.1.13)': + dependencies: + '@google-cloud/paginator': 5.0.2 + '@google-cloud/projectify': 4.0.0 + '@google-cloud/promisify': 4.0.0 + abort-controller: 3.0.0 + async-retry: 1.3.3 + duplexify: 4.1.3 + fast-xml-parser: 4.5.3 + gaxios: 6.7.1(encoding@0.1.13) + google-auth-library: 9.15.1(encoding@0.1.13) + html-entities: 2.6.0 + mime: 3.0.0 + p-limit: 3.1.0 + retry-request: 7.0.2(encoding@0.1.13) + teeny-request: 9.0.0(encoding@0.1.13) + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + - supports-color + '@google-cloud/storage@7.17.3(encoding@0.1.13)': dependencies: '@google-cloud/paginator': 5.0.2 @@ -11383,6 +12014,16 @@ snapshots: '@inquirer/ansi@1.0.2': {} + '@inquirer/checkbox@4.3.2(@types/node@22.16.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.16.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/checkbox@4.3.2(@types/node@22.16.5)': dependencies: '@inquirer/ansi': 1.0.2 @@ -11410,6 +12051,13 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/confirm@5.1.21(@types/node@22.16.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/confirm@5.1.21(@types/node@22.16.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.16.5) @@ -11424,6 +12072,19 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/core@10.3.2(@types/node@22.16.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.16.4) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/core@10.3.2(@types/node@22.16.5)': dependencies: '@inquirer/ansi': 1.0.2 @@ -11450,6 +12111,14 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/editor@4.2.23(@types/node@22.16.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/external-editor': 1.0.3(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/editor@4.2.23(@types/node@22.16.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.16.5) @@ -11466,6 +12135,14 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/expand@4.0.23(@types/node@22.16.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/expand@4.0.23(@types/node@22.16.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.16.5) @@ -11482,6 +12159,13 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/external-editor@1.0.3(@types/node@22.16.4)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.1 + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/external-editor@1.0.3(@types/node@22.16.5)': dependencies: chardet: 2.1.1 @@ -11498,6 +12182,13 @@ snapshots: '@inquirer/figures@1.0.15': {} + '@inquirer/input@4.3.1(@types/node@22.16.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/input@4.3.1(@types/node@22.16.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.16.5) @@ -11512,6 +12203,13 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/number@3.0.23(@types/node@22.16.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/number@3.0.23(@types/node@22.16.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.16.5) @@ -11526,6 +12224,14 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/password@4.0.23(@types/node@22.16.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/password@4.0.23(@types/node@22.16.5)': dependencies: '@inquirer/ansi': 1.0.2 @@ -11542,6 +12248,21 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/prompts@7.10.1(@types/node@22.16.4)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@22.16.4) + '@inquirer/confirm': 5.1.21(@types/node@22.16.4) + '@inquirer/editor': 4.2.23(@types/node@22.16.4) + '@inquirer/expand': 4.0.23(@types/node@22.16.4) + '@inquirer/input': 4.3.1(@types/node@22.16.4) + '@inquirer/number': 3.0.23(@types/node@22.16.4) + '@inquirer/password': 4.0.23(@types/node@22.16.4) + '@inquirer/rawlist': 4.1.11(@types/node@22.16.4) + '@inquirer/search': 3.2.2(@types/node@22.16.4) + '@inquirer/select': 4.4.2(@types/node@22.16.4) + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/prompts@7.10.1(@types/node@22.16.5)': dependencies: '@inquirer/checkbox': 4.3.2(@types/node@22.16.5) @@ -11572,6 +12293,14 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/rawlist@4.1.11(@types/node@22.16.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/rawlist@4.1.11(@types/node@22.16.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.16.5) @@ -11588,6 +12317,15 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/search@3.2.2(@types/node@22.16.4)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.16.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/search@3.2.2(@types/node@22.16.5)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.16.5) @@ -11606,6 +12344,16 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/select@4.4.2(@types/node@22.16.4)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@22.16.4) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/select@4.4.2(@types/node@22.16.5)': dependencies: '@inquirer/ansi': 1.0.2 @@ -11626,6 +12374,10 @@ snapshots: optionalDependencies: '@types/node': 22.18.13 + '@inquirer/type@3.0.10(@types/node@22.16.4)': + optionalDependencies: + '@types/node': 22.16.4 + '@inquirer/type@3.0.10(@types/node@22.16.5)': optionalDependencies: '@types/node': 22.16.5 @@ -11687,6 +12439,41 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2))': + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.19.3 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2))': dependencies: '@jest/console': 29.7.0 @@ -12155,7 +12942,7 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true - '@ngtools/webpack@20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2)': + '@ngtools/webpack@20.3.13(@angular/compiler-cli@20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2))(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9))': dependencies: '@angular/compiler-cli': 20.3.15(@angular/compiler@20.3.15)(typescript@5.9.2) typescript: 5.9.2 @@ -12914,6 +13701,10 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 9.0.5 + '@types/archiver@6.0.3': + dependencies: + '@types/readdir-glob': 1.1.5 + '@types/archiver@6.0.4': dependencies: '@types/readdir-glob': 1.1.5 @@ -12958,13 +13749,17 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.7 + '@types/express-serve-static-core': 5.1.0 '@types/node': 22.19.3 '@types/connect@3.4.38': dependencies: '@types/node': 22.19.3 + '@types/cookie-parser@1.4.9(@types/express@4.17.23)': + dependencies: + '@types/express': 4.17.23 + '@types/cookie-parser@1.4.9(@types/express@4.17.25)': dependencies: '@types/express': 4.17.25 @@ -13011,6 +13806,13 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 1.2.1 + '@types/express@4.17.23': + dependencies: + '@types/body-parser': 1.19.6 + '@types/express-serve-static-core': 4.19.7 + '@types/qs': 6.14.0 + '@types/serve-static': 2.2.0 + '@types/express@4.17.25': dependencies: '@types/body-parser': 1.19.6 @@ -13024,6 +13826,10 @@ snapshots: '@types/express-serve-static-core': 5.1.0 '@types/serve-static': 2.2.0 + '@types/fluent-ffmpeg@2.1.27': + dependencies: + '@types/node': 22.19.3 + '@types/fluent-ffmpeg@2.1.28': dependencies: '@types/node': 22.19.3 @@ -13050,6 +13856,8 @@ snapshots: '@types/jasmine@5.1.13': {} + '@types/jasmine@5.1.9': {} + '@types/jest@29.5.14': dependencies: expect: 29.7.0 @@ -13091,6 +13899,10 @@ snapshots: dependencies: '@types/node': 22.19.3 + '@types/node@22.16.4': + dependencies: + undici-types: 6.21.0 + '@types/node@22.16.5': dependencies: undici-types: 6.21.0 @@ -13546,6 +14358,10 @@ snapshots: dependencies: vite: 7.1.11(@types/node@22.18.13)(jiti@1.21.7)(less@4.4.0)(sass@1.90.0)(terser@5.44.1)(tsx@4.20.6) + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.11(@types/node@22.18.13)(jiti@1.21.7)(less@4.5.1)(sass@1.90.0)(terser@5.44.1)(tsx@4.20.6))': + dependencies: + vite: 7.1.11(@types/node@22.18.13)(jiti@1.21.7)(less@4.5.1)(sass@1.90.0)(terser@5.44.1)(tsx@4.20.6) + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -13918,7 +14734,7 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@10.0.0(@babel/core@7.28.3)(webpack@5.101.2): + babel-loader@10.0.0(@babel/core@7.28.3)(webpack@5.101.2(esbuild@0.25.9)): dependencies: '@babel/core': 7.28.3 find-up: 5.0.0 @@ -14524,7 +15340,7 @@ snapshots: dependencies: is-what: 3.14.1 - copy-webpack-plugin@13.0.1(webpack@5.101.2): + copy-webpack-plugin@13.0.1(webpack@5.101.2(esbuild@0.25.9)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 @@ -14537,6 +15353,8 @@ snapshots: dependencies: browserslist: 4.28.1 + core-js@3.45.1: {} + core-js@3.47.0: {} core-util-is@1.0.3: {} @@ -14562,6 +15380,21 @@ snapshots: crc-32: 1.2.2 readable-stream: 4.7.0 + create-jest@29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + create-jest@29.7.0(@types/node@22.16.5)(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)): dependencies: '@jest/types': 29.6.3 @@ -14610,6 +15443,11 @@ snapshots: create-require@1.1.1: {} + cron@4.3.3: + dependencies: + '@types/luxon': 3.7.1 + luxon: 3.7.2 + cron@4.3.5: dependencies: '@types/luxon': 3.7.1 @@ -14635,7 +15473,7 @@ snapshots: dependencies: postcss: 8.5.6 - css-loader@7.1.2(webpack@5.101.2): + css-loader@7.1.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 @@ -14644,7 +15482,7 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.6) postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 - semver: 7.7.2 + semver: 7.7.3 optionalDependencies: webpack: 5.101.2(esbuild@0.25.9) @@ -15227,6 +16065,10 @@ snapshots: eslint: 8.57.1 semver: 7.7.3 + eslint-config-prettier@9.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-config-prettier@9.1.2(eslint@8.57.1): dependencies: eslint: 8.57.1 @@ -15321,6 +16163,11 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-scope@9.0.0: dependencies: esrecurse: 4.3.0 @@ -16179,6 +17026,18 @@ snapshots: dependencies: tslib: 2.8.1 + inquirer@12.11.1(@types/node@22.16.4): + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@22.16.4) + '@inquirer/prompts': 7.10.1(@types/node@22.16.4) + '@inquirer/type': 3.0.10(@types/node@22.16.4) + mute-stream: 2.0.0 + run-async: 4.0.6 + rxjs: 7.8.2 + optionalDependencies: + '@types/node': 22.16.4 + inquirer@12.11.1(@types/node@22.16.5): dependencies: '@inquirer/ansi': 1.0.2 @@ -16439,11 +17298,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.3 + '@babel/core': 7.28.5 '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -16518,6 +17377,25 @@ snapshots: - babel-plugin-macros - supports-color + jest-cli@29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)): + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest-cli@29.7.0(@types/node@22.16.5)(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)) @@ -16576,6 +17454,37 @@ snapshots: - supports-color - ts-node + jest-config@29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)): + dependencies: + '@babel/core': 7.28.5 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.16.4 + ts-node: 10.9.2(@types/node@22.16.4)(typescript@5.9.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-config@29.7.0(@types/node@22.16.5)(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)): dependencies: '@babel/core': 7.28.5 @@ -16639,6 +17548,37 @@ snapshots: - supports-color optional: true + jest-config@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)): + dependencies: + '@babel/core': 7.28.5 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.19.3 + ts-node: 10.9.2(@types/node@22.16.4)(typescript@5.9.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-config@29.7.0(@types/node@22.19.3)(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)): dependencies: '@babel/core': 7.28.5 @@ -16983,6 +17923,18 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + jest@29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)): + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest@29.7.0(@types/node@22.16.5)(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)) @@ -17218,7 +18170,7 @@ snapshots: dependencies: readable-stream: 2.3.8 - less-loader@12.3.0(less@4.4.0)(webpack@5.101.2): + less-loader@12.3.0(less@4.4.0)(webpack@5.101.2(esbuild@0.25.9)): dependencies: less: 4.4.0 optionalDependencies: @@ -17259,7 +18211,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - license-webpack-plugin@4.0.2(webpack@5.101.2): + license-webpack-plugin@4.0.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: webpack-sources: 3.3.3 optionalDependencies: @@ -17294,6 +18246,13 @@ snapshots: typed-emitter: 2.1.0 webrtc-adapter: 9.0.3 + livekit-server-sdk@2.13.1: + dependencies: + '@bufbuild/protobuf': 1.10.1 + '@livekit/protocol': 1.43.4 + camelcase-keys: 9.1.3 + jose: 5.10.0 + livekit-server-sdk@2.13.3: dependencies: '@bufbuild/protobuf': 1.10.1 @@ -17511,7 +18470,7 @@ snapshots: mimic-function@5.0.1: {} - mini-css-extract-plugin@2.9.4(webpack@5.101.2): + mini-css-extract-plugin@2.9.4(webpack@5.101.2(esbuild@0.25.9)): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 @@ -17830,7 +18789,7 @@ snapshots: dependencies: hosted-git-info: 9.0.2 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 validate-npm-package-name: 6.0.2 npm-packlist@10.0.3: @@ -17945,6 +18904,17 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 + openapi-generate-html@0.5.3(@types/node@22.16.4): + dependencies: + '@apidevtools/json-schema-ref-parser': 13.0.5 + commander: 12.1.0 + ejs: 3.1.10 + fast-safe-stringify: 2.1.1 + inquirer: 12.11.1(@types/node@22.16.4) + js-yaml: 4.1.1 + transitivePeerDependencies: + - '@types/node' + openapi-generate-html@0.5.3(@types/node@22.16.5): dependencies: '@apidevtools/json-schema-ref-parser': 13.0.5 @@ -18221,12 +19191,12 @@ snapshots: postcss: 8.5.6 ts-node: 10.9.2(@types/node@22.19.3)(typescript@5.9.3) - postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2): + postcss-loader@8.1.1(postcss@8.5.6)(typescript@5.9.2)(webpack@5.101.2(esbuild@0.25.9)): dependencies: cosmiconfig: 9.0.0(typescript@5.9.2) jiti: 1.21.7 postcss: 8.5.6 - semver: 7.7.2 + semver: 7.7.3 optionalDependencies: webpack: 5.101.2(esbuild@0.25.9) transitivePeerDependencies: @@ -18813,7 +19783,7 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.5(sass@1.90.0)(webpack@5.101.2): + sass-loader@16.0.5(sass@1.90.0)(webpack@5.101.2(esbuild@0.25.9)): dependencies: neo-async: 2.6.2 optionalDependencies: @@ -19136,7 +20106,7 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.101.2): + source-map-loader@5.0.0(webpack@5.101.2(esbuild@0.25.9)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 @@ -19566,6 +20536,26 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.28.5) + ts-jest@29.4.0(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)))(typescript@5.9.2): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@22.16.4)(ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2)) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.9.2 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.28.5 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + jest-util: 29.7.0 + ts-jest@29.4.0(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.5)(ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2)))(typescript@5.9.2): dependencies: bs-logger: 0.2.6 @@ -19604,6 +20594,25 @@ snapshots: - '@swc/wasm' - '@types/node' + ts-node@10.9.2(@types/node@22.16.4)(typescript@5.9.2): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.16.4 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.9.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optional: true + ts-node@10.9.2(@types/node@22.16.5)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -19681,6 +20690,13 @@ snapshots: tslib@2.8.1: {} + tsx@4.20.3: + dependencies: + esbuild: 0.25.12 + get-tsconfig: 4.13.0 + optionalDependencies: + fsevents: 2.3.3 + tsx@4.20.6: dependencies: esbuild: 0.25.12 @@ -19894,6 +20910,23 @@ snapshots: terser: 5.44.1 tsx: 4.20.6 + vite@7.1.11(@types/node@22.18.13)(jiti@1.21.7)(less@4.5.1)(sass@1.90.0)(terser@5.44.1)(tsx@4.20.6): + dependencies: + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.3 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 22.18.13 + fsevents: 2.3.3 + jiti: 1.21.7 + less: 4.5.1 + sass: 1.90.0 + terser: 5.44.1 + tsx: 4.20.6 + void-elements@2.0.1: {} w3c-xmlserializer@4.0.0: @@ -19930,7 +20963,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@7.4.2(webpack@5.101.2): + webpack-dev-middleware@7.4.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: colorette: 2.0.20 memfs: 4.51.1 @@ -19941,7 +20974,7 @@ snapshots: optionalDependencies: webpack: 5.101.2(esbuild@0.25.9) - webpack-dev-server@5.2.2(webpack@5.101.2): + webpack-dev-server@5.2.2(webpack@5.101.2(esbuild@0.25.9)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -19969,7 +21002,7 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.101.2) + webpack-dev-middleware: 7.4.2(webpack@5.101.2(esbuild@0.25.9)) ws: 8.18.3 optionalDependencies: webpack: 5.101.2(esbuild@0.25.9) @@ -19987,7 +21020,7 @@ snapshots: webpack-sources@3.3.3: {} - webpack-subresource-integrity@5.1.0(webpack@5.101.2): + webpack-subresource-integrity@5.1.0(webpack@5.101.2(esbuild@0.25.9)): dependencies: typed-assert: 1.0.9 webpack: 5.101.2(esbuild@0.25.9)