backend: remove unnecessary index files and update import paths
This commit is contained in:
parent
0d6838019d
commit
49b44d0353
@ -1,9 +0,0 @@
|
||||
export * from './src/routes/index.js';
|
||||
export * from './src/controllers/index.js';
|
||||
export * from './src/services/index.js';
|
||||
export * from './src/models/index.js';
|
||||
export * from './src/helpers/index.js';
|
||||
export * from './src/environment.js';
|
||||
export * from './src/config/index.js';
|
||||
export * from './src/middlewares/index.js';
|
||||
export * from './src/utils/index.js';
|
||||
@ -1,52 +1,58 @@
|
||||
import { Container } from 'inversify';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import {
|
||||
ApiKeyRepository,
|
||||
BaseRepository,
|
||||
GlobalConfigRepository,
|
||||
MigrationRepository,
|
||||
RecordingRepository,
|
||||
RoomRepository,
|
||||
UserRepository
|
||||
} from '../repositories/index.js';
|
||||
import {
|
||||
ABSService,
|
||||
ABSStorageProvider,
|
||||
AnalyticsService,
|
||||
ApiKeyService,
|
||||
BaseUrlService,
|
||||
BlobStorageService,
|
||||
DistributedEventService,
|
||||
FrontendEventService,
|
||||
GCSService,
|
||||
GCSStorageProvider,
|
||||
GlobalConfigService,
|
||||
LegacyStorageService,
|
||||
LiveKitService,
|
||||
LivekitWebhookService,
|
||||
LoggerService,
|
||||
// MigrationService,
|
||||
MongoDBService,
|
||||
MutexService,
|
||||
OpenViduWebhookService,
|
||||
ParticipantNameService,
|
||||
RecordingService,
|
||||
RedisService,
|
||||
RequestSessionService,
|
||||
RoomMemberService,
|
||||
RoomService,
|
||||
S3KeyBuilder,
|
||||
S3Service,
|
||||
S3StorageProvider,
|
||||
StorageFactory,
|
||||
StorageInitService,
|
||||
StorageKeyBuilder,
|
||||
StorageProvider,
|
||||
TaskSchedulerService,
|
||||
TokenService,
|
||||
UserService
|
||||
} from '../services/index.js';
|
||||
|
||||
import { ApiKeyRepository } from '../repositories/api-key.repository.js';
|
||||
import { BaseRepository } from '../repositories/base.repository.js';
|
||||
import { GlobalConfigRepository } from '../repositories/global-config.repository.js';
|
||||
import { MigrationRepository } from '../repositories/migration.repository.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { RoomRepository } from '../repositories/room.repository.js';
|
||||
import { UserRepository } from '../repositories/user.repository.js';
|
||||
|
||||
/*
|
||||
* Services should be imported in order of use, starting with services
|
||||
* without dependencies and then the services that depend on others. This
|
||||
* helps avoid dependency cycles and ensures constructors receive the
|
||||
* dependencies already registered in the container.
|
||||
*/
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RedisService } from '../services/redis.service.js';
|
||||
import { DistributedEventService } from '../services/distributed-event.service.js';
|
||||
import { MutexService } from '../services/mutex.service.js';
|
||||
import { TaskSchedulerService } from '../services/task-scheduler.service.js';
|
||||
import { BaseUrlService } from '../services/base-url.service.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
|
||||
import { TokenService } from '../services/token.service.js';
|
||||
import { UserService } from '../services/user.service.js';
|
||||
import { ApiKeyService } from '../services/api-key.service.js';
|
||||
import { GlobalConfigService } from '../services/global-config.service.js';
|
||||
|
||||
import { S3Service } from '../services/storage/providers/s3/s3.service.js';
|
||||
import { S3KeyBuilder } from '../services/storage/providers/s3/s3-storage-key.builder.js';
|
||||
import { S3StorageProvider } from '../services/storage/providers/s3/s3-storage.provider.js';
|
||||
import { ABSService } from '../services/storage/providers/abs/abs.service.js';
|
||||
import { ABSStorageProvider } from '../services/storage/providers/abs/abs-storage.provider.js';
|
||||
import { GCSService } from '../services/storage/providers/gcp/gcs.service.js';
|
||||
import { GCSStorageProvider } from '../services/storage/providers/gcp/gcs-storage.provider.js';
|
||||
|
||||
import { MongoDBService } from '../services/storage/mongodb.service.js';
|
||||
import { StorageInitService } from '../services/storage/storage-init.service.js';
|
||||
import { StorageKeyBuilder, StorageProvider } from '../services/storage/storage.interface.js';
|
||||
import { StorageFactory } from '../services/storage/storage.factory.js';
|
||||
import { BlobStorageService } from '../services/storage/blob-storage.service.js';
|
||||
import { LegacyStorageService } from '../services/storage/legacy-storage.service.js';
|
||||
|
||||
import { MigrationService } from '../services/migration.service.js';
|
||||
import { LiveKitService } from '../services/livekit.service.js';
|
||||
import { FrontendEventService } from '../services/frontend-event.service.js';
|
||||
import { RecordingService } from '../services/recording.service.js';
|
||||
import { RoomService } from '../services/room.service.js';
|
||||
import { ParticipantNameService } from '../services/participant-name.service.js';
|
||||
import { RoomMemberService } from '../services/room-member.service.js';
|
||||
import { OpenViduWebhookService } from '../services/openvidu-webhook.service.js';
|
||||
import { LivekitWebhookService } from '../services/livekit-webhook.service.js';
|
||||
import { AnalyticsService } from '../services/analytics.service.js';
|
||||
|
||||
export const container: Container = new Container();
|
||||
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
export * from './dependency-injector.config.js';
|
||||
export * from './internal-config.js';
|
||||
@ -1,7 +1,8 @@
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { handleError } from '../models/error.model.js';
|
||||
import { AnalyticsService, LoggerService } from '../services/index.js';
|
||||
import { AnalyticsService } from '../services/analytics.service.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
|
||||
export const getAnalytics = async (req: Request, res: Response): Promise<void> => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { handleError } from '../models/error.model.js';
|
||||
import { ApiKeyService, LoggerService } from '../services/index.js';
|
||||
import { ApiKeyService } from '../services/api-key.service.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
|
||||
export const createApiKey = async (_req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Request, Response } from 'express';
|
||||
import { ClaimGrants } from 'livekit-server-sdk';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import {
|
||||
errorInvalidCredentials,
|
||||
errorInvalidRefreshToken,
|
||||
@ -9,8 +9,10 @@ import {
|
||||
handleError,
|
||||
rejectRequestFromMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { LoggerService, TokenService, UserService } from '../services/index.js';
|
||||
import { getRefreshToken } from '../utils/index.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { TokenService } from '../services/token.service.js';
|
||||
import { UserService } from '../services/user.service.js';
|
||||
import { getRefreshToken } from '../utils/token.utils.js';
|
||||
|
||||
export const login = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
import { MeetAppearanceConfig } from '@openvidu-meet/typings';
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../../config/index.js';
|
||||
import { container } from '../../config/dependency-injector.config.js';
|
||||
import { handleError } from '../../models/error.model.js';
|
||||
import { GlobalConfigService, LoggerService } from '../../services/index.js';
|
||||
import { GlobalConfigService } from '../../services/global-config.service.js';
|
||||
import { LoggerService } from '../../services/logger.service.js';
|
||||
|
||||
export const updateRoomsAppearanceConfig = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
import { SecurityConfig } from '@openvidu-meet/typings';
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../../config/index.js';
|
||||
import { container } from '../../config/dependency-injector.config.js';
|
||||
import { handleError } from '../../models/error.model.js';
|
||||
import { GlobalConfigService, LoggerService } from '../../services/index.js';
|
||||
import { GlobalConfigService } from '../../services/global-config.service.js';
|
||||
import { LoggerService } from '../../services/logger.service.js';
|
||||
|
||||
export const updateSecurityConfig = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
import { WebhookConfig } from '@openvidu-meet/typings';
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../../config/index.js';
|
||||
import { container } from '../../config/dependency-injector.config.js';
|
||||
import { handleError } from '../../models/error.model.js';
|
||||
import { GlobalConfigService, LoggerService, OpenViduWebhookService } from '../../services/index.js';
|
||||
import { GlobalConfigService } from '../../services/global-config.service.js';
|
||||
import { LoggerService } from '../../services/logger.service.js';
|
||||
import { OpenViduWebhookService } from '../../services/openvidu-webhook.service.js';
|
||||
|
||||
export const updateWebhookConfig = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
export * from './auth.controller.js';
|
||||
export * from './api-key.controller.js';
|
||||
export * from './user.controller.js';
|
||||
export * from './room.controller.js';
|
||||
export * from './meeting.controller.js';
|
||||
export * from './recording.controller.js';
|
||||
export * from './livekit-webhook.controller.js';
|
||||
export * from './analytics.controller.js';
|
||||
|
||||
export * from './global-config/appearance-config.controller.js';
|
||||
export * from './global-config/webhook-config.controller.js';
|
||||
export * from './global-config/security-config.controller.js';
|
||||
@ -1,7 +1,8 @@
|
||||
import { Request, Response } from 'express';
|
||||
import { WebhookEvent } from 'livekit-server-sdk';
|
||||
import { container } from '../config/index.js';
|
||||
import { LivekitWebhookService, LoggerService } from '../services/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { LivekitWebhookService } from '../services/livekit-webhook.service.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
|
||||
export const lkWebhookHandler = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { handleError } from '../models/error.model.js';
|
||||
import { LiveKitService, LoggerService, RoomMemberService, RoomService } from '../services/index.js';
|
||||
import { LiveKitService } from '../services/livekit.service.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RoomMemberService } from '../services/room-member.service.js';
|
||||
import { RoomService } from '../services/room.service.js';
|
||||
|
||||
export const endMeeting = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import archiver from 'archiver';
|
||||
import { Request, Response } from 'express';
|
||||
import { Readable } from 'stream';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { RecordingHelper } from '../helpers/index.js';
|
||||
import { RecordingHelper } from '../helpers/recording.helper.js';
|
||||
import {
|
||||
errorRecordingNotFound,
|
||||
errorRecordingsNotFromSameRoom,
|
||||
@ -11,9 +11,11 @@ import {
|
||||
internalError,
|
||||
rejectRequestFromMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { RecordingRepository } from '../repositories/index.js';
|
||||
import { LoggerService, RecordingService, RequestSessionService } from '../services/index.js';
|
||||
import { getBaseUrl } from '../utils/index.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RecordingService } from '../services/recording.service.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
import { getBaseUrl } from '../utils/url.utils.js';
|
||||
|
||||
export const startRecording = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -9,11 +9,13 @@ import {
|
||||
MeetRoomOptions
|
||||
} from '@openvidu-meet/typings';
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { handleError } from '../models/error.model.js';
|
||||
import { LoggerService, RoomMemberService, RoomService } from '../services/index.js';
|
||||
import { getBaseUrl } from '../utils/index.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RoomMemberService } from '../services/room-member.service.js';
|
||||
import { RoomService } from '../services/room.service.js';
|
||||
import { getBaseUrl } from '../utils/url.utils.js';
|
||||
|
||||
export const createRoom = async (req: Request, res: Response) => {
|
||||
const logger = container.get(LoggerService);
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
import { Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { errorUnauthorized, handleError, rejectRequestFromMeetError } from '../models/error.model.js';
|
||||
import { RequestSessionService, UserService } from '../services/index.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
import { UserService } from '../services/user.service.js';
|
||||
|
||||
export const getProfile = (req: Request, res: Response) => {
|
||||
export const getProfile = (_req: Request, res: Response) => {
|
||||
const requestSessionService = container.get(RequestSessionService);
|
||||
const user = requestSessionService.getUser();
|
||||
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
export * from './utils.helper.js';
|
||||
export * from './password.helper.js';
|
||||
export * from './redis.helper.js';
|
||||
export * from './room.helper.js';
|
||||
export * from './recording.helper.js';
|
||||
export * from './ov-components-adapter.helper.js';
|
||||
@ -1,6 +1,10 @@
|
||||
import { MeetRecordingInfo, MeetRecordingStatus } from '@openvidu-meet/typings';
|
||||
import { SendDataOptions } from 'livekit-server-sdk';
|
||||
import { OpenViduComponentsDataTopic, RecordingSignalPayload, RoomStatusSignalPayload } from '../models/index.js';
|
||||
import {
|
||||
OpenViduComponentsDataTopic,
|
||||
RecordingSignalPayload,
|
||||
RoomStatusSignalPayload
|
||||
} from '../models/ov-components-signal.model.js';
|
||||
|
||||
export class OpenViduComponentsAdapterHelper {
|
||||
private constructor() {
|
||||
|
||||
@ -2,8 +2,8 @@ import { EgressStatus } from '@livekit/protocol';
|
||||
import { MeetRecordingInfo, MeetRecordingStatus } from '@openvidu-meet/typings';
|
||||
import { EgressInfo } from 'livekit-server-sdk';
|
||||
import { uid as secureUid } from 'uid/secure';
|
||||
import { container } from '../config/index.js';
|
||||
import { RoomService } from '../services/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { RoomService } from '../services/room.service.js';
|
||||
|
||||
export class RecordingHelper {
|
||||
private constructor() {
|
||||
|
||||
@ -3,27 +3,25 @@ import { NextFunction, Request, RequestHandler, Response } from 'express';
|
||||
import rateLimit from 'express-rate-limit';
|
||||
import { ClaimGrants } from 'livekit-server-sdk';
|
||||
import ms from 'ms';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import {
|
||||
OpenViduMeetError,
|
||||
errorInsufficientPermissions,
|
||||
errorInvalidApiKey,
|
||||
errorInvalidRoomMemberToken,
|
||||
errorInvalidToken,
|
||||
errorInvalidTokenSubject,
|
||||
errorUnauthorized,
|
||||
OpenViduMeetError,
|
||||
rejectRequestFromMeetError
|
||||
} from '../models/index.js';
|
||||
import {
|
||||
ApiKeyService,
|
||||
LoggerService,
|
||||
RequestSessionService,
|
||||
RoomMemberService,
|
||||
TokenService,
|
||||
UserService
|
||||
} from '../services/index.js';
|
||||
import { getAccessToken, getRoomMemberToken } from '../utils/index.js';
|
||||
} from '../models/error.model.js';
|
||||
import { ApiKeyService } from '../services/api-key.service.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
import { RoomMemberService } from '../services/room-member.service.js';
|
||||
import { TokenService } from '../services/token.service.js';
|
||||
import { UserService } from '../services/user.service.js';
|
||||
import { getAccessToken, getRoomMemberToken } from '../utils/token.utils.js';
|
||||
|
||||
/**
|
||||
* Interface for authentication validators.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { BaseUrlService } from '../services/index.js';
|
||||
import { BaseUrlService } from '../services/base-url.service.js';
|
||||
|
||||
export const setBaseUrlMiddleware = (req: Request, _res: Response, next: NextFunction) => {
|
||||
if (req.path === '/livekit/webhook') {
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
export * from './content-type.middleware.js';
|
||||
export * from './base-url.middleware.js';
|
||||
export * from './request-context.middleware.js';
|
||||
export * from './auth.middleware.js';
|
||||
export * from './room.middleware.js';
|
||||
export * from './participant.middleware.js';
|
||||
export * from './recording.middleware.js';
|
||||
|
||||
export * from './request-validators/auth-validator.middleware.js';
|
||||
export * from './request-validators/user-validator.middleware.js';
|
||||
export * from './request-validators/room-validator.middleware.js';
|
||||
export * from './request-validators/participant-validator.middleware.js';
|
||||
export * from './request-validators/recording-validator.middleware.js';
|
||||
export * from './request-validators/config-validator.middleware.js';
|
||||
@ -1,8 +1,10 @@
|
||||
import { AuthMode, MeetRoomMemberRole, MeetRoomMemberTokenOptions, MeetUserRole } from '@openvidu-meet/typings';
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { errorInsufficientPermissions, handleError, rejectRequestFromMeetError } from '../models/error.model.js';
|
||||
import { GlobalConfigService, RequestSessionService, RoomMemberService } from '../services/index.js';
|
||||
import { GlobalConfigService } from '../services/global-config.service.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
import { RoomMemberService } from '../services/room-member.service.js';
|
||||
import { allowAnonymous, tokenAndRoleValidator, withAuth } from './auth.middleware.js';
|
||||
|
||||
/**
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { MeetRoom, MeetUserRole } from '@openvidu-meet/typings';
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { RecordingHelper } from '../helpers/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { RecordingHelper } from '../helpers/recording.helper.js';
|
||||
import {
|
||||
errorInsufficientPermissions,
|
||||
errorInvalidRecordingSecret,
|
||||
@ -10,8 +10,10 @@ import {
|
||||
handleError,
|
||||
rejectRequestFromMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { RecordingRepository } from '../repositories/index.js';
|
||||
import { LoggerService, RequestSessionService, RoomService } from '../services/index.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
import { RoomService } from '../services/room.service.js';
|
||||
import {
|
||||
allowAnonymous,
|
||||
apiKeyValidator,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { RequestSessionService } from '../services/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
|
||||
/**
|
||||
* Middleware that initializes the AsyncLocalStorage context for each HTTP request.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { rejectUnprocessableRequest } from '../../models/error.model.js';
|
||||
import { LoginRequestSchema } from '../../models/zod-schemas/index.js';
|
||||
import { LoginRequestSchema } from '../../models/zod-schemas/auth.schema.js';
|
||||
|
||||
export const validateLoginRequest = (req: Request, res: Response, next: NextFunction) => {
|
||||
const { success, error, data } = LoginRequestSchema.safeParse(req.body);
|
||||
|
||||
@ -5,7 +5,7 @@ import {
|
||||
SecurityConfigSchema,
|
||||
WebhookConfigSchema,
|
||||
WebhookTestSchema
|
||||
} from '../../models/zod-schemas/index.js';
|
||||
} from '../../models/zod-schemas/global-config.schema.js';
|
||||
|
||||
export const validateWebhookConfig = (req: Request, res: Response, next: NextFunction) => {
|
||||
const { success, error, data } = WebhookConfigSchema.safeParse(req.body);
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { MeetRoomMemberTokenMetadata } from '@openvidu-meet/typings';
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { rejectUnprocessableRequest } from '../../models/error.model.js';
|
||||
import { RoomMemberTokenMetadataSchema, UpdateParticipantRequestSchema } from '../../models/zod-schemas/index.js';
|
||||
import { UpdateParticipantRequestSchema } from '../../models/zod-schemas/meeting.schema.js';
|
||||
import { RoomMemberTokenMetadataSchema } from '../../models/zod-schemas/room.schema.js';
|
||||
|
||||
export const validateUpdateParticipantRequest = (req: Request, res: Response, next: NextFunction) => {
|
||||
const { success, error, data } = UpdateParticipantRequestSchema.safeParse(req.body);
|
||||
|
||||
@ -8,7 +8,7 @@ import {
|
||||
MultipleRecordingIdsSchema,
|
||||
nonEmptySanitizedRecordingId,
|
||||
StartRecordingRequestSchema
|
||||
} from '../../models/zod-schemas/index.js';
|
||||
} from '../../models/zod-schemas/recording.schema.js';
|
||||
|
||||
export const withValidStartRecordingRequest = (req: Request, res: Response, next: NextFunction) => {
|
||||
const { success, error, data } = StartRecordingRequestSchema.safeParse(req.body);
|
||||
|
||||
@ -9,7 +9,7 @@ import {
|
||||
RoomRequestOptionsSchema,
|
||||
UpdateRoomConfigSchema,
|
||||
UpdateRoomStatusSchema
|
||||
} from '../../models/zod-schemas/index.js';
|
||||
} from '../../models/zod-schemas/room.schema.js';
|
||||
|
||||
export const withValidRoomOptions = (req: Request, res: Response, next: NextFunction) => {
|
||||
const { success, error, data } = RoomRequestOptionsSchema.safeParse(req.body);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { rejectUnprocessableRequest } from '../../models/error.model.js';
|
||||
import { ChangePasswordRequestSchema } from '../../models/zod-schemas/index.js';
|
||||
import { ChangePasswordRequestSchema } from '../../models/zod-schemas/user.schema.js';
|
||||
|
||||
export const validateChangePasswordRequest = (req: Request, res: Response, next: NextFunction) => {
|
||||
const { success, error, data } = ChangePasswordRequestSchema.safeParse(req.body);
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { NextFunction, Request, Response } from 'express';
|
||||
import { container } from '../config/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { errorInsufficientPermissions, rejectRequestFromMeetError } from '../models/error.model.js';
|
||||
import { RequestSessionService } from '../services/index.js';
|
||||
import { RequestSessionService } from '../services/request-session.service.js';
|
||||
|
||||
/**
|
||||
* Middleware that configures authorization for accessing a specific room.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { ISchemaMigration } from '../models/migration.model.js';
|
||||
import { MeetApiKeyDocument } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetApiKeyDocument } from '../models/mongoose-schemas/api-key.schema.js';
|
||||
|
||||
/**
|
||||
* All migrations for the MeetApiKey collection in chronological order.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { ISchemaMigration } from '../models/migration.model.js';
|
||||
import { MeetGlobalConfigDocument } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetGlobalConfigDocument } from '../models/mongoose-schemas/global-config.schema.js';
|
||||
|
||||
/**
|
||||
* All migrations for the MeetGlobalConfig collection in chronological order.
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
export * from './base-migration.js';
|
||||
export * from './migration-registry.js';
|
||||
export * from './room-migrations.js';
|
||||
export * from './recording-migrations.js';
|
||||
export * from './user-migrations.js';
|
||||
export * from './api-key-migrations.js';
|
||||
export * from './global-config-migrations.js';
|
||||
@ -1,17 +1,13 @@
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { CollectionMigrationRegistry } from '../models/migration.model.js';
|
||||
import { meetApiKeyCollectionName, MeetApiKeyModel } from '../models/mongoose-schemas/api-key.schema.js';
|
||||
import {
|
||||
MeetApiKeyModel,
|
||||
MeetGlobalConfigModel,
|
||||
MeetRecordingModel,
|
||||
MeetRoomModel,
|
||||
MeetUserModel,
|
||||
meetApiKeyCollectionName,
|
||||
meetGlobalConfigCollectionName,
|
||||
meetRecordingCollectionName,
|
||||
meetRoomCollectionName,
|
||||
meetUserCollectionName
|
||||
} from '../models/mongoose-schemas/index.js';
|
||||
MeetGlobalConfigModel
|
||||
} from '../models/mongoose-schemas/global-config.schema.js';
|
||||
import { meetRecordingCollectionName, MeetRecordingModel } from '../models/mongoose-schemas/recording.schema.js';
|
||||
import { meetRoomCollectionName, MeetRoomModel } from '../models/mongoose-schemas/room.schema.js';
|
||||
import { meetUserCollectionName, MeetUserModel } from '../models/mongoose-schemas/user.schema.js';
|
||||
import { apiKeyMigrations } from './api-key-migrations.js';
|
||||
import { globalConfigMigrations } from './global-config-migrations.js';
|
||||
import { recordingMigrations } from './recording-migrations.js';
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { ISchemaMigration } from '../models/migration.model.js';
|
||||
import { MeetRecordingDocument } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetRecordingDocument } from '../models/mongoose-schemas/recording.schema.js';
|
||||
|
||||
/**
|
||||
* All migrations for the MeetRecording collection in chronological order.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { ISchemaMigration } from '../models/migration.model.js';
|
||||
import { MeetRoomDocument } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetRoomDocument } from '../models/mongoose-schemas/room.schema.js';
|
||||
|
||||
/**
|
||||
* All migrations for the MeetRoom collection in chronological order.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { ISchemaMigration } from '../models/migration.model.js';
|
||||
import { MeetUserDocument } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetUserDocument } from '../models/mongoose-schemas/user.schema.js';
|
||||
|
||||
/**
|
||||
* All migrations for the MeetUser collection in chronological order.
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import { MeetRoomDeletionErrorCode } from '@openvidu-meet/typings';
|
||||
import { Response } from 'express';
|
||||
import { z } from 'zod';
|
||||
import { container } from '../config/index.js';
|
||||
import { LoggerService } from '../services/index.js';
|
||||
import { container } from '../config/dependency-injector.config.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
|
||||
type StatusError = 400 | 401 | 402 | 403 | 404 | 409 | 415 | 416 | 422 | 500 | 503;
|
||||
export class OpenViduMeetError extends Error {
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
export * from './error.model.js';
|
||||
export * from './redis.model.js';
|
||||
export * from './distributed-event.model.js';
|
||||
export * from './migration.model.js';
|
||||
export * from './ov-components-signal.model.js';
|
||||
export * from './db-pagination.model.js';
|
||||
export * from './task-scheduler.model.js';
|
||||
export * from './request-context.model.js';
|
||||
@ -1,6 +0,0 @@
|
||||
export * from './migration.schema.js';
|
||||
export * from './global-config.schema.js';
|
||||
export * from './api-key.schema.js';
|
||||
export * from './user.schema.js';
|
||||
export * from './room.schema.js';
|
||||
export * from './recording.schema.js';
|
||||
@ -1,5 +1,5 @@
|
||||
import { Document, model, Schema } from 'mongoose';
|
||||
import { MeetMigration, MigrationName, MigrationStatus } from '../index.js';
|
||||
import { MeetMigration, MigrationName, MigrationStatus } from '../migration.model.js';
|
||||
|
||||
/**
|
||||
* Mongoose Document interface for MeetMigration.
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
export * from './global-config.schema.js';
|
||||
export * from './auth.schema.js';
|
||||
export * from './user.schema.js';
|
||||
export * from './room.schema.js';
|
||||
export * from './recording.schema.js';
|
||||
export * from './meeting.schema.js';
|
||||
@ -22,7 +22,7 @@ import {
|
||||
import ms from 'ms';
|
||||
import { z } from 'zod';
|
||||
import { INTERNAL_CONFIG } from '../../config/internal-config.js';
|
||||
import { MeetRoomHelper } from '../../helpers/index.js';
|
||||
import { MeetRoomHelper } from '../../helpers/room.helper.js';
|
||||
|
||||
export const nonEmptySanitizedRoomId = (fieldName: string) =>
|
||||
z
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { MeetApiKey } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MeetApiKeyDocument, MeetApiKeyModel } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetApiKeyDocument, MeetApiKeyModel } from '../models/mongoose-schemas/api-key.schema.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { BaseRepository } from './base.repository.js';
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { inject, injectable, unmanaged } from 'inversify';
|
||||
import { Document, FilterQuery, Model, UpdateQuery } from 'mongoose';
|
||||
import { PaginatedFindOptions, PaginatedResult, PaginationCursor } from '../models/index.js';
|
||||
import { PaginatedFindOptions, PaginatedResult, PaginationCursor } from '../models/db-pagination.model.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
|
||||
/**
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { GlobalConfig } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MeetGlobalConfigDocument, MeetGlobalConfigModel } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetGlobalConfigDocument, MeetGlobalConfigModel } from '../models/mongoose-schemas/global-config.schema.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { BaseRepository } from './base.repository.js';
|
||||
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
export * from './base.repository.js';
|
||||
export * from './room.repository.js';
|
||||
export * from './user.repository.js';
|
||||
export * from './api-key.repository.js';
|
||||
export * from './global-config.repository.js';
|
||||
export * from './recording.repository.js';
|
||||
export * from './migration.repository.js';
|
||||
@ -1,6 +1,6 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MeetMigration, MigrationName, MigrationStatus } from '../models/index.js';
|
||||
import { MeetMigrationDocument, MeetMigrationModel } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetMigration, MigrationName, MigrationStatus } from '../models/migration.model.js';
|
||||
import { MeetMigrationDocument, MeetMigrationModel } from '../models/mongoose-schemas/migration.schema.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { BaseRepository } from './base.repository.js';
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { MeetRecordingInfo, MeetRecordingStatus } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { uid as secureUid } from 'uid/secure';
|
||||
import { MeetRecordingDocument, MeetRecordingModel } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetRecordingDocument, MeetRecordingModel } from '../models/mongoose-schemas/recording.schema.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { BaseRepository } from './base.repository.js';
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { MeetRoom } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MeetRoomDocument, MeetRoomModel } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetRoomDocument, MeetRoomModel } from '../models/mongoose-schemas/room.schema.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { getBaseUrl } from '../utils/url.utils.js';
|
||||
import { BaseRepository } from './base.repository.js';
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { MeetUser } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MeetUserDocument, MeetUserModel } from '../models/mongoose-schemas/index.js';
|
||||
import { MeetUserDocument, MeetUserModel } from '../models/mongoose-schemas/user.schema.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { BaseRepository } from './base.repository.js';
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ import { MeetUserRole } from '@openvidu-meet/typings';
|
||||
import bodyParser from 'body-parser';
|
||||
import { Router } from 'express';
|
||||
import * as analyticsCtrl from '../controllers/analytics.controller.js';
|
||||
import { tokenAndRoleValidator, withAuth } from '../middlewares/index.js';
|
||||
import { tokenAndRoleValidator, withAuth } from '../middlewares/auth.middleware.js';
|
||||
|
||||
export const analyticsRouter: Router = Router();
|
||||
analyticsRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -2,7 +2,7 @@ import { MeetUserRole } from '@openvidu-meet/typings';
|
||||
import bodyParser from 'body-parser';
|
||||
import { Router } from 'express';
|
||||
import * as apiKeyCtrl from '../controllers/api-key.controller.js';
|
||||
import { tokenAndRoleValidator, withAuth } from '../middlewares/index.js';
|
||||
import { tokenAndRoleValidator, withAuth } from '../middlewares/auth.middleware.js';
|
||||
|
||||
export const apiKeyRouter: Router = Router();
|
||||
apiKeyRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import bodyParser from 'body-parser';
|
||||
import { Router } from 'express';
|
||||
import * as authCtrl from '../controllers/auth.controller.js';
|
||||
import { validateLoginRequest, withLoginLimiter } from '../middlewares/index.js';
|
||||
import { withLoginLimiter } from '../middlewares/auth.middleware.js';
|
||||
import { validateLoginRequest } from '../middlewares/request-validators/auth-validator.middleware.js';
|
||||
|
||||
export const authRouter: Router = Router();
|
||||
authRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -4,15 +4,13 @@ import { Router } from 'express';
|
||||
import * as appearanceConfigCtrl from '../controllers/global-config/appearance-config.controller.js';
|
||||
import * as securityConfigCtrl from '../controllers/global-config/security-config.controller.js';
|
||||
import * as webhookConfigCtrl from '../controllers/global-config/webhook-config.controller.js';
|
||||
import { allowAnonymous, tokenAndRoleValidator, withAuth } from '../middlewares/auth.middleware.js';
|
||||
import {
|
||||
allowAnonymous,
|
||||
tokenAndRoleValidator,
|
||||
validateRoomsAppearanceConfig,
|
||||
validateSecurityConfig,
|
||||
validateWebhookConfig,
|
||||
withAuth,
|
||||
withValidWebhookTestRequest
|
||||
} from '../middlewares/index.js';
|
||||
} from '../middlewares/request-validators/config-validator.middleware.js';
|
||||
|
||||
export const configRouter: Router = Router();
|
||||
configRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
export * from './global-config.routes.js';
|
||||
export * from './auth.routes.js';
|
||||
export * from './api-key.routes.js';
|
||||
export * from './user.routes.js';
|
||||
export * from './room.routes.js';
|
||||
export * from './meeting.routes.js';
|
||||
export * from './recording.routes.js';
|
||||
export * from './livekit.routes.js';
|
||||
export * from './analytics.routes.js';
|
||||
@ -1,13 +1,10 @@
|
||||
import bodyParser from 'body-parser';
|
||||
import { Router } from 'express';
|
||||
import * as meetingCtrl from '../controllers/meeting.controller.js';
|
||||
import {
|
||||
roomMemberTokenValidator,
|
||||
validateUpdateParticipantRequest,
|
||||
withAuth,
|
||||
withModeratorPermissions,
|
||||
withValidRoomId
|
||||
} from '../middlewares/index.js';
|
||||
import { roomMemberTokenValidator, withAuth } from '../middlewares/auth.middleware.js';
|
||||
import { withModeratorPermissions } from '../middlewares/participant.middleware.js';
|
||||
import { validateUpdateParticipantRequest } from '../middlewares/request-validators/participant-validator.middleware.js';
|
||||
import { withValidRoomId } from '../middlewares/request-validators/room-validator.middleware.js';
|
||||
|
||||
export const internalMeetingRouter: Router = Router();
|
||||
internalMeetingRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -4,14 +4,18 @@ import { Router } from 'express';
|
||||
import * as recordingCtrl from '../controllers/recording.controller.js';
|
||||
import {
|
||||
apiKeyValidator,
|
||||
configureRecordingAuth,
|
||||
roomMemberTokenValidator,
|
||||
tokenAndRoleValidator,
|
||||
withAuth,
|
||||
withAuth
|
||||
} from '../middlewares/auth.middleware.js';
|
||||
import {
|
||||
configureRecordingAuth,
|
||||
withCanDeleteRecordingsPermission,
|
||||
withCanRecordPermission,
|
||||
withCanRetrieveRecordingsPermission,
|
||||
withRecordingEnabled,
|
||||
withRecordingEnabled
|
||||
} from '../middlewares/recording.middleware.js';
|
||||
import {
|
||||
withValidGetRecordingMediaRequest,
|
||||
withValidGetRecordingRequest,
|
||||
withValidGetRecordingUrlRequest,
|
||||
@ -19,7 +23,7 @@ import {
|
||||
withValidRecordingFiltersRequest,
|
||||
withValidRecordingId,
|
||||
withValidStartRecordingRequest
|
||||
} from '../middlewares/index.js';
|
||||
} from '../middlewares/request-validators/recording-validator.middleware.js';
|
||||
|
||||
export const recordingRouter: Router = Router();
|
||||
recordingRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -5,11 +5,12 @@ import * as roomCtrl from '../controllers/room.controller.js';
|
||||
import {
|
||||
allowAnonymous,
|
||||
apiKeyValidator,
|
||||
configureRoomAuthorization,
|
||||
configureRoomMemberTokenAuth,
|
||||
roomMemberTokenValidator,
|
||||
tokenAndRoleValidator,
|
||||
withAuth,
|
||||
withAuth
|
||||
} from '../middlewares/auth.middleware.js';
|
||||
import { configureRoomMemberTokenAuth } from '../middlewares/participant.middleware.js';
|
||||
import {
|
||||
withValidRoomBulkDeleteRequest,
|
||||
withValidRoomConfig,
|
||||
withValidRoomDeleteRequest,
|
||||
@ -18,7 +19,8 @@ import {
|
||||
withValidRoomMemberTokenRequest,
|
||||
withValidRoomOptions,
|
||||
withValidRoomStatus
|
||||
} from '../middlewares/index.js';
|
||||
} from '../middlewares/request-validators/room-validator.middleware.js';
|
||||
import { configureRoomAuthorization } from '../middlewares/room.middleware.js';
|
||||
|
||||
export const roomRouter: Router = Router();
|
||||
roomRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -2,7 +2,8 @@ import { MeetUserRole } from '@openvidu-meet/typings';
|
||||
import bodyParser from 'body-parser';
|
||||
import { Router } from 'express';
|
||||
import * as userCtrl from '../controllers/user.controller.js';
|
||||
import { tokenAndRoleValidator, validateChangePasswordRequest, withAuth } from '../middlewares/index.js';
|
||||
import { tokenAndRoleValidator, withAuth } from '../middlewares/auth.middleware.js';
|
||||
import { validateChangePasswordRequest } from '../middlewares/request-validators/user-validator.middleware.js';
|
||||
|
||||
export const userRouter: Router = Router();
|
||||
userRouter.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
@ -2,23 +2,21 @@ import chalk from 'chalk';
|
||||
import cookieParser from 'cookie-parser';
|
||||
import cors from 'cors';
|
||||
import express, { Express, Request, Response } from 'express';
|
||||
import { initializeEagerServices, registerDependencies } from './config/index.js';
|
||||
import { initializeEagerServices, registerDependencies } from './config/dependency-injector.config.js';
|
||||
import { INTERNAL_CONFIG } from './config/internal-config.js';
|
||||
import { MEET_ENV, logEnvVars } from './environment.js';
|
||||
import { initRequestContext, jsonSyntaxErrorHandler, setBaseUrlMiddleware } from './middlewares/index.js';
|
||||
import {
|
||||
analyticsRouter,
|
||||
apiKeyRouter,
|
||||
authRouter,
|
||||
configRouter,
|
||||
internalMeetingRouter,
|
||||
internalRecordingRouter,
|
||||
internalRoomRouter,
|
||||
livekitWebhookRouter,
|
||||
recordingRouter,
|
||||
roomRouter,
|
||||
userRouter
|
||||
} from './routes/index.js';
|
||||
import { setBaseUrlMiddleware } from './middlewares/base-url.middleware.js';
|
||||
import { jsonSyntaxErrorHandler } from './middlewares/content-type.middleware.js';
|
||||
import { initRequestContext } from './middlewares/request-context.middleware.js';
|
||||
import { analyticsRouter } from './routes/analytics.routes.js';
|
||||
import { apiKeyRouter } from './routes/api-key.routes.js';
|
||||
import { authRouter } from './routes/auth.routes.js';
|
||||
import { configRouter } from './routes/global-config.routes.js';
|
||||
import { livekitWebhookRouter } from './routes/livekit.routes.js';
|
||||
import { internalMeetingRouter } from './routes/meeting.routes.js';
|
||||
import { internalRecordingRouter, recordingRouter } from './routes/recording.routes.js';
|
||||
import { internalRoomRouter, roomRouter } from './routes/room.routes.js';
|
||||
import { userRouter } from './routes/user.routes.js';
|
||||
import {
|
||||
frontendDirectoryPath,
|
||||
frontendHtmlPath,
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { MeetAnalytics } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { RecordingRepository, RoomRepository } from '../repositories/index.js';
|
||||
import { LoggerService } from './index.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { RoomRepository } from '../repositories/room.repository.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
/**
|
||||
* Service for retrieving analytics data about OpenVidu Meet usage.
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
import { MeetApiKey } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { PasswordHelper } from '../helpers/index.js';
|
||||
import { PasswordHelper } from '../helpers/password.helper.js';
|
||||
import { errorApiKeyNotConfigured } from '../models/error.model.js';
|
||||
import { ApiKeyRepository } from '../repositories/index.js';
|
||||
import { LoggerService, UserService } from './index.js';
|
||||
import { ApiKeyRepository } from '../repositories/api-key.repository.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { UserService } from './user.service.js';
|
||||
|
||||
@injectable()
|
||||
export class ApiKeyService {
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { EventEmitter } from 'events';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { DistributedEventPayload, DistributedEventType } from '../models/distributed-event.model.js';
|
||||
import { LoggerService, RedisService } from './index.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { RedisService } from './redis.service.js';
|
||||
|
||||
/**
|
||||
* Service for managing distributed events using Redis pub/sub pattern.
|
||||
|
||||
@ -9,9 +9,10 @@ import {
|
||||
} from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { SendDataOptions } from 'livekit-server-sdk';
|
||||
import { OpenViduComponentsAdapterHelper } from '../helpers/index.js';
|
||||
import { OpenViduComponentsSignalPayload } from '../models/index.js';
|
||||
import { LiveKitService, LoggerService } from './index.js';
|
||||
import { OpenViduComponentsAdapterHelper } from '../helpers/ov-components-adapter.helper.js';
|
||||
import { OpenViduComponentsSignalPayload } from '../models/ov-components-signal.model.js';
|
||||
import { LiveKitService } from './livekit.service.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
/**
|
||||
* Service responsible for all communication with the frontend
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import { AuthMode, AuthType, GlobalConfig } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { GlobalConfigRepository } from '../repositories/index.js';
|
||||
import { LoggerService } from './index.js';
|
||||
import { GlobalConfigRepository } from '../repositories/global-config.repository.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
/**
|
||||
* Service for managing global configuration.
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
export * from './logger.service.js';
|
||||
export * from './redis.service.js';
|
||||
export * from './distributed-event.service.js';
|
||||
export * from './mutex.service.js';
|
||||
export * from './task-scheduler.service.js';
|
||||
export * from './base-url.service.js';
|
||||
export * from './request-session.service.js';
|
||||
|
||||
export * from './token.service.js';
|
||||
export * from './user.service.js';
|
||||
export * from './api-key.service.js';
|
||||
export * from './global-config.service.js';
|
||||
|
||||
export * from './storage/index.js';
|
||||
|
||||
// export * from './migration.service.js';
|
||||
export * from './livekit.service.js';
|
||||
export * from './frontend-event.service.js';
|
||||
export * from './recording.service.js';
|
||||
export * from './room.service.js';
|
||||
export * from './participant-name.service.js';
|
||||
export * from './room-member.service.js';
|
||||
export * from './openvidu-webhook.service.js';
|
||||
export * from './livekit-webhook.service.js';
|
||||
export * from './analytics.service.js';
|
||||
@ -3,20 +3,21 @@ import { inject, injectable } from 'inversify';
|
||||
import { EgressInfo, ParticipantInfo, Room, WebhookEvent, WebhookReceiver } from 'livekit-server-sdk';
|
||||
import ms from 'ms';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { MeetLock, MeetRoomHelper, RecordingHelper } from '../helpers/index.js';
|
||||
import { RecordingHelper } from '../helpers/recording.helper.js';
|
||||
import { MeetLock } from '../helpers/redis.helper.js';
|
||||
import { MeetRoomHelper } from '../helpers/room.helper.js';
|
||||
import { DistributedEventType } from '../models/distributed-event.model.js';
|
||||
import { RecordingRepository, RoomRepository } from '../repositories/index.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { RoomRepository } from '../repositories/room.repository.js';
|
||||
import { DistributedEventService } from './distributed-event.service.js';
|
||||
import { FrontendEventService } from './frontend-event.service.js';
|
||||
import {
|
||||
DistributedEventService,
|
||||
LiveKitService,
|
||||
LoggerService,
|
||||
MutexService,
|
||||
OpenViduWebhookService,
|
||||
RecordingService,
|
||||
RoomMemberService,
|
||||
RoomService
|
||||
} from './index.js';
|
||||
import { LiveKitService } from './livekit.service.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { MutexService } from './mutex.service.js';
|
||||
import { OpenViduWebhookService } from './openvidu-webhook.service.js';
|
||||
import { RecordingService } from './recording.service.js';
|
||||
import { RoomMemberService } from './room-member.service.js';
|
||||
import { RoomService } from './room.service.js';
|
||||
|
||||
@injectable()
|
||||
export class LivekitWebhookService {
|
||||
|
||||
@ -15,7 +15,7 @@ import {
|
||||
StreamOutput
|
||||
} from 'livekit-server-sdk';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { RecordingHelper } from '../helpers/index.js';
|
||||
import { RecordingHelper } from '../helpers/recording.helper.js';
|
||||
import {
|
||||
errorLivekitNotAvailable,
|
||||
errorParticipantNotFound,
|
||||
@ -23,8 +23,8 @@ import {
|
||||
internalError,
|
||||
OpenViduMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { chunkArray } from '../utils/index.js';
|
||||
import { LoggerService } from './index.js';
|
||||
import { chunkArray } from '../utils/array.utils.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class LiveKitService {
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { Model } from 'mongoose';
|
||||
import ms from 'ms';
|
||||
import { MeetLock } from '../helpers/index.js';
|
||||
import { migrationRegistry } from '../migrations/index.js';
|
||||
import { MeetLock } from '../helpers/redis.helper.js';
|
||||
import { migrationRegistry } from '../migrations/migration-registry.js';
|
||||
import {
|
||||
CollectionMigrationRegistry,
|
||||
generateSchemaMigrationName,
|
||||
ISchemaMigration,
|
||||
MigrationContext,
|
||||
MigrationName
|
||||
} from '../models/index.js';
|
||||
import {
|
||||
ApiKeyRepository,
|
||||
GlobalConfigRepository,
|
||||
MigrationRepository,
|
||||
RecordingRepository,
|
||||
RoomRepository,
|
||||
UserRepository
|
||||
} from '../repositories/index.js';
|
||||
import { LegacyStorageService, LoggerService, MutexService } from './index.js';
|
||||
} from '../models/migration.model.js';
|
||||
import { ApiKeyRepository } from '../repositories/api-key.repository.js';
|
||||
import { GlobalConfigRepository } from '../repositories/global-config.repository.js';
|
||||
import { MigrationRepository } from '../repositories/migration.repository.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { RoomRepository } from '../repositories/room.repository.js';
|
||||
import { UserRepository } from '../repositories/user.repository.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { MutexService } from './mutex.service.js';
|
||||
import { LegacyStorageService } from './storage/legacy-storage.service.js';
|
||||
|
||||
@injectable()
|
||||
export class MigrationService {
|
||||
@ -369,7 +369,9 @@ export class MigrationService {
|
||||
}
|
||||
|
||||
// Get access secrets from legacy storage
|
||||
const secrets = await this.legacyStorageService.getRecordingAccessSecrets(recording.recordingId);
|
||||
const secrets = await this.legacyStorageService.getRecordingAccessSecrets(
|
||||
recording.recordingId
|
||||
);
|
||||
|
||||
// Prepare recording document with access secrets
|
||||
const recordingWithSecrets = {
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
import { Lock, Redlock } from '@sesamecare-oss/redlock';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import ms from 'ms';
|
||||
import { Redlock, Lock } from '@sesamecare-oss/redlock';
|
||||
import { MeetLock } from '../helpers/index.js';
|
||||
import { LoggerService, RedisService } from './index.js';
|
||||
import { MeetLock } from '../helpers/redis.helper.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { RedisService } from './redis.service.js';
|
||||
|
||||
export type RedisLock = Lock;
|
||||
@injectable()
|
||||
|
||||
@ -14,7 +14,9 @@ import {
|
||||
errorInvalidWebhookUrl,
|
||||
OpenViduMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { ApiKeyService, GlobalConfigService, LoggerService } from './index.js';
|
||||
import { ApiKeyService } from './api-key.service.js';
|
||||
import { GlobalConfigService } from './global-config.service.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class OpenViduWebhookService {
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { RedisKeyName } from '../models/redis.model.js';
|
||||
import { LoggerService, RedisService } from './index.js';
|
||||
import ms from 'ms';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { RedisKeyName } from '../models/redis.model.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { RedisService } from './redis.service.js';
|
||||
|
||||
@injectable()
|
||||
export class ParticipantNameService {
|
||||
@ -319,7 +320,7 @@ export class ParticipantNameService {
|
||||
/**
|
||||
* Extracts the base name from a participant name that may have a numeric suffix.
|
||||
* This prevents infinite concatenation of suffixes (e.g., "BOB_1_1_1...").
|
||||
*
|
||||
*
|
||||
* Examples:
|
||||
* - "BOB" -> { baseName: "BOB", originalCaseBase: "BOB" }
|
||||
* - "BOB_1" -> { baseName: "BOB", originalCaseBase: "BOB" }
|
||||
|
||||
@ -6,9 +6,11 @@ import { Readable } from 'stream';
|
||||
import { uid } from 'uid';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { MeetLock, RecordingHelper, UtilsHelper } from '../helpers/index.js';
|
||||
import { RecordingHelper } from '../helpers/recording.helper.js';
|
||||
import { MeetLock } from '../helpers/redis.helper.js';
|
||||
import { UtilsHelper } from '../helpers/utils.helper.js';
|
||||
import { DistributedEventType } from '../models/distributed-event.model.js';
|
||||
import {
|
||||
DistributedEventType,
|
||||
errorRecordingAlreadyStarted,
|
||||
errorRecordingAlreadyStopped,
|
||||
errorRecordingCannotBeStoppedWhileStarting,
|
||||
@ -17,23 +19,21 @@ import {
|
||||
errorRecordingStartTimeout,
|
||||
errorRoomHasNoParticipants,
|
||||
errorRoomNotFound,
|
||||
IScheduledTask,
|
||||
isErrorRecordingAlreadyStopped,
|
||||
isErrorRecordingCannotBeStoppedWhileStarting,
|
||||
isErrorRecordingNotFound,
|
||||
OpenViduMeetError
|
||||
} from '../models/index.js';
|
||||
import { RecordingRepository, RoomRepository } from '../repositories/index.js';
|
||||
import {
|
||||
BlobStorageService,
|
||||
DistributedEventService,
|
||||
FrontendEventService,
|
||||
LiveKitService,
|
||||
LoggerService,
|
||||
MutexService,
|
||||
RedisLock,
|
||||
TaskSchedulerService
|
||||
} from './index.js';
|
||||
} from '../models/error.model.js';
|
||||
import { IScheduledTask } from '../models/task-scheduler.model.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { RoomRepository } from '../repositories/room.repository.js';
|
||||
import { DistributedEventService } from './distributed-event.service.js';
|
||||
import { FrontendEventService } from './frontend-event.service.js';
|
||||
import { LiveKitService } from './livekit.service.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { MutexService, RedisLock } from './mutex.service.js';
|
||||
import { BlobStorageService } from './storage/blob-storage.service.js';
|
||||
import { TaskSchedulerService } from './task-scheduler.service.js';
|
||||
|
||||
@injectable()
|
||||
export class RecordingService {
|
||||
|
||||
@ -4,8 +4,9 @@ import { inject, injectable } from 'inversify';
|
||||
import { Redis, RedisOptions, SentinelAddress } from 'ioredis';
|
||||
import ms from 'ms';
|
||||
import { checkModuleEnabled, MEET_ENV } from '../environment.js';
|
||||
import { DistributedEventPayload, internalError } from '../models/index.js';
|
||||
import { LoggerService } from './index.js';
|
||||
import { DistributedEventPayload } from '../models/distributed-event.model.js';
|
||||
import { internalError } from '../models/error.model.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class RedisService extends EventEmitter {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { LiveKitPermissions, MeetPermissions, MeetRoomMemberRole, MeetUser } from '@openvidu-meet/typings';
|
||||
import { AsyncLocalStorage } from 'async_hooks';
|
||||
import { injectable } from 'inversify';
|
||||
import { RequestContext } from '../models/index.js';
|
||||
import { RequestContext } from '../models/request-context.model.js';
|
||||
|
||||
/**
|
||||
* Service that manages request-scoped session data using Node.js AsyncLocalStorage.
|
||||
|
||||
@ -10,16 +10,14 @@ import { inject, injectable } from 'inversify';
|
||||
import { ParticipantInfo } from 'livekit-server-sdk';
|
||||
import { uid } from 'uid/single';
|
||||
import { MeetRoomHelper } from '../helpers/room.helper.js';
|
||||
import { validateRoomMemberTokenMetadata } from '../middlewares/index.js';
|
||||
import { validateRoomMemberTokenMetadata } from '../middlewares/request-validators/participant-validator.middleware.js';
|
||||
import { errorInvalidRoomSecret, errorParticipantNotFound, errorRoomClosed } from '../models/error.model.js';
|
||||
import {
|
||||
FrontendEventService,
|
||||
LiveKitService,
|
||||
LoggerService,
|
||||
ParticipantNameService,
|
||||
RoomService,
|
||||
TokenService
|
||||
} from './index.js';
|
||||
import { FrontendEventService } from './frontend-event.service.js';
|
||||
import { LiveKitService } from './livekit.service.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { ParticipantNameService } from './participant-name.service.js';
|
||||
import { RoomService } from './room.service.js';
|
||||
import { TokenService } from './token.service.js';
|
||||
|
||||
/**
|
||||
* Service for managing room members and meeting participants.
|
||||
|
||||
@ -18,7 +18,8 @@ import { uid as secureUid } from 'uid/secure';
|
||||
import { uid } from 'uid/single';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { MeetRoomHelper, UtilsHelper } from '../helpers/index.js';
|
||||
import { MeetRoomHelper } from '../helpers/room.helper.js';
|
||||
import { UtilsHelper } from '../helpers/utils.helper.js';
|
||||
import {
|
||||
errorDeletingRoom,
|
||||
errorRoomActiveMeeting,
|
||||
@ -26,16 +27,14 @@ import {
|
||||
internalError,
|
||||
OpenViduMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { IScheduledTask } from '../models/index.js';
|
||||
import { RoomRepository } from '../repositories/index.js';
|
||||
import {
|
||||
FrontendEventService,
|
||||
LiveKitService,
|
||||
LoggerService,
|
||||
RecordingService,
|
||||
RequestSessionService,
|
||||
TaskSchedulerService
|
||||
} from './index.js';
|
||||
import { IScheduledTask } from '../models/task-scheduler.model.js';
|
||||
import { RoomRepository } from '../repositories/room.repository.js';
|
||||
import { FrontendEventService } from './frontend-event.service.js';
|
||||
import { LiveKitService } from './livekit.service.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { RecordingService } from './recording.service.js';
|
||||
import { RequestSessionService } from './request-session.service.js';
|
||||
import { TaskSchedulerService } from './task-scheduler.service.js';
|
||||
|
||||
/**
|
||||
* Service for managing OpenVidu Meet rooms.
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
export * from './providers/s3/s3.service.js';
|
||||
export * from './providers/s3/s3-storage-key.builder.js';
|
||||
export * from './providers/s3/s3-storage.provider.js';
|
||||
export * from './providers/abs/abs.service.js';
|
||||
export * from './providers/abs/abs-storage.provider.js';
|
||||
export * from './providers/gcp/gcs.service.js';
|
||||
export * from './providers/gcp/gcs-storage.provider.js';
|
||||
|
||||
export * from './mongodb.service.js';
|
||||
export * from './storage-init.service.js';
|
||||
export * from './storage.interface.js';
|
||||
export * from './storage.factory.js';
|
||||
export * from './blob-storage.service.js';
|
||||
export * from './legacy-storage.service.js';
|
||||
@ -1,7 +1,9 @@
|
||||
import { GlobalConfig, MeetApiKey, MeetRecordingInfo, MeetRoom, MeetUser } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { OpenViduMeetError, RedisKeyName } from '../../models/index.js';
|
||||
import { LoggerService, RedisService } from '../index.js';
|
||||
import { OpenViduMeetError } from '../../models/error.model.js';
|
||||
import { RedisKeyName } from '../../models/redis.model.js';
|
||||
import { LoggerService } from '../logger.service.js';
|
||||
import { RedisService } from '../redis.service.js';
|
||||
import { StorageFactory } from './storage.factory.js';
|
||||
import { StorageKeyBuilder, StorageProvider } from './storage.interface.js';
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import mongoose from 'mongoose';
|
||||
import { MEET_ENV } from '../../environment.js';
|
||||
import { LoggerService } from '../index.js';
|
||||
import { LoggerService } from '../logger.service.js';
|
||||
|
||||
/**
|
||||
* Service responsible for managing MongoDB connection lifecycle.
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { Readable } from 'stream';
|
||||
import { ABSService, LoggerService } from '../../../index.js';
|
||||
import { LoggerService } from '../../../logger.service.js';
|
||||
import { StorageProvider } from '../../storage.interface.js';
|
||||
import { ABSService } from './abs.service.js';
|
||||
|
||||
/**
|
||||
* Basic Azure Blob Storage provider that implements only primitive storage operations.
|
||||
|
||||
@ -9,7 +9,7 @@ import { inject, injectable } from 'inversify';
|
||||
import { Readable } from 'stream';
|
||||
import { MEET_ENV } from '../../../../environment.js';
|
||||
import { errorAzureNotAvailable, internalError } from '../../../../models/error.model.js';
|
||||
import { LoggerService } from '../../../index.js';
|
||||
import { LoggerService } from '../../../logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class ABSService {
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { Readable } from 'stream';
|
||||
import { GCSService, LoggerService } from '../../../index.js';
|
||||
import { LoggerService } from '../../../logger.service.js';
|
||||
import { StorageProvider } from '../../storage.interface.js';
|
||||
import { GCSService } from './gcs.service.js';
|
||||
|
||||
/**
|
||||
* Basic GCS storage provider that implements only primitive storage operations.
|
||||
|
||||
@ -4,7 +4,7 @@ import { Readable } from 'stream';
|
||||
import { INTERNAL_CONFIG } from '../../../../config/internal-config.js';
|
||||
import { MEET_ENV } from '../../../../environment.js';
|
||||
import { errorS3NotAvailable, internalError } from '../../../../models/error.model.js';
|
||||
import { LoggerService } from '../../../index.js';
|
||||
import { LoggerService } from '../../../logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class GCSService {
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { Readable } from 'stream';
|
||||
import { LoggerService, S3Service } from '../../../index.js';
|
||||
import { LoggerService } from '../../../logger.service.js';
|
||||
import { StorageProvider } from '../../storage.interface.js';
|
||||
import { S3Service } from './s3.service.js';
|
||||
|
||||
/**
|
||||
* Basic S3 storage provider that implements only primitive storage operations.
|
||||
|
||||
@ -17,7 +17,7 @@ import { Readable } from 'stream';
|
||||
import { INTERNAL_CONFIG } from '../../../../config/internal-config.js';
|
||||
import { MEET_ENV } from '../../../../environment.js';
|
||||
import { errorS3NotAvailable, internalError } from '../../../../models/error.model.js';
|
||||
import { LoggerService } from '../../../index.js';
|
||||
import { LoggerService } from '../../../logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class S3Service {
|
||||
|
||||
@ -1,10 +1,14 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import ms from 'ms';
|
||||
import { MEET_ENV } from '../../environment.js';
|
||||
import { MeetLock } from '../../helpers/index.js';
|
||||
import { internalError } from '../../models/index.js';
|
||||
import { GlobalConfigRepository } from '../../repositories/index.js';
|
||||
import { ApiKeyService, GlobalConfigService, LoggerService, MutexService, UserService } from '../index.js';
|
||||
import { MeetLock } from '../../helpers/redis.helper.js';
|
||||
import { internalError } from '../../models/error.model.js';
|
||||
import { GlobalConfigRepository } from '../../repositories/global-config.repository.js';
|
||||
import { ApiKeyService } from '../api-key.service.js';
|
||||
import { GlobalConfigService } from '../global-config.service.js';
|
||||
import { LoggerService } from '../logger.service.js';
|
||||
import { MutexService } from '../mutex.service.js';
|
||||
import { UserService } from '../user.service.js';
|
||||
|
||||
/**
|
||||
* Service responsible for storage initialization.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { container, STORAGE_TYPES } from '../../config/dependency-injector.config.js';
|
||||
import { LoggerService } from '../index.js';
|
||||
import { LoggerService } from '../logger.service.js';
|
||||
import { StorageKeyBuilder, StorageProvider } from './storage.interface.js';
|
||||
|
||||
/**
|
||||
|
||||
@ -2,9 +2,11 @@ import { CronJob } from 'cron';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import ms from 'ms';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MeetLock } from '../helpers/index.js';
|
||||
import { IScheduledTask } from '../models/index.js';
|
||||
import { DistributedEventService, LoggerService, MutexService } from './index.js';
|
||||
import { MeetLock } from '../helpers/redis.helper.js';
|
||||
import { IScheduledTask } from '../models/task-scheduler.model.js';
|
||||
import { DistributedEventService } from './distributed-event.service.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
import { MutexService } from './mutex.service.js';
|
||||
|
||||
@injectable()
|
||||
export class TaskSchedulerService {
|
||||
|
||||
@ -9,7 +9,7 @@ import { jwtDecode } from 'jwt-decode';
|
||||
import { AccessToken, AccessTokenOptions, ClaimGrants, TokenVerifier, VideoGrant } from 'livekit-server-sdk';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { LoggerService } from './index.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class TokenService {
|
||||
|
||||
@ -4,8 +4,8 @@ import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import { PasswordHelper } from '../helpers/password.helper.js';
|
||||
import { errorInvalidPassword, internalError } from '../models/error.model.js';
|
||||
import { UserRepository } from '../repositories/index.js';
|
||||
import { LoggerService } from './index.js';
|
||||
import { UserRepository } from '../repositories/user.repository.js';
|
||||
import { LoggerService } from './logger.service.js';
|
||||
|
||||
@injectable()
|
||||
export class UserService {
|
||||
|
||||
@ -1,4 +0,0 @@
|
||||
export * from './array.utils.js';
|
||||
export * from './token.utils.js';
|
||||
export * from './url.utils.js';
|
||||
export * from './path.utils.js';
|
||||
@ -1,9 +1,4 @@
|
||||
import { expect } from '@jest/globals';
|
||||
import { Response } from 'supertest';
|
||||
import { container } from '../../src/config/dependency-injector.config';
|
||||
import { INTERNAL_CONFIG } from '../../src/config/internal-config';
|
||||
import { TokenService } from '../../src/services';
|
||||
|
||||
import {
|
||||
MeetingEndAction,
|
||||
MeetRecordingAccess,
|
||||
@ -18,6 +13,10 @@ import {
|
||||
MeetRoomMemberRole,
|
||||
MeetRoomStatus
|
||||
} from '@openvidu-meet/typings';
|
||||
import { Response } from 'supertest';
|
||||
import { container } from '../../src/config/dependency-injector.config';
|
||||
import { INTERNAL_CONFIG } from '../../src/config/internal-config';
|
||||
import { TokenService } from '../../src/services/token.service';
|
||||
|
||||
export const expectErrorResponse = (
|
||||
response: Response,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { container } from '../../src/config/index.js';
|
||||
import { DistributedEventType } from '../../src/models';
|
||||
import { DistributedEventService } from '../../src/services';
|
||||
import { container } from '../../src/config/dependency-injector.config';
|
||||
import { DistributedEventType } from '../../src/models/distributed-event.model';
|
||||
import { DistributedEventService } from '../../src/services/distributed-event.service';
|
||||
|
||||
export const eventController = {
|
||||
systemEventService: undefined as unknown as DistributedEventService,
|
||||
|
||||
@ -21,11 +21,14 @@ import { ChildProcess, spawn } from 'child_process';
|
||||
import { Express } from 'express';
|
||||
import ms, { StringValue } from 'ms';
|
||||
import request, { Response } from 'supertest';
|
||||
import { container, initializeEagerServices } from '../../src/config/index.js';
|
||||
import { container, initializeEagerServices } from '../../src/config/dependency-injector.config.js';
|
||||
import { INTERNAL_CONFIG } from '../../src/config/internal-config.js';
|
||||
import { MEET_ENV } from '../../src/environment.js';
|
||||
import { createApp, registerDependencies } from '../../src/server.js';
|
||||
import { ApiKeyService, GlobalConfigService, RecordingService, RoomService } from '../../src/services/index.js';
|
||||
import { ApiKeyService } from '../../src/services/api-key.service.js';
|
||||
import { GlobalConfigService } from '../../src/services/global-config.service.js';
|
||||
import { RecordingService } from '../../src/services/recording.service.js';
|
||||
import { RoomService } from '../../src/services/room.service.js';
|
||||
|
||||
const CREDENTIALS = {
|
||||
admin: {
|
||||
|
||||
@ -2,7 +2,7 @@ import { MeetRoom, MeetRoomConfig } from '@openvidu-meet/typings';
|
||||
import express, { Request, Response } from 'express';
|
||||
import http from 'http';
|
||||
import { StringValue } from 'ms';
|
||||
import { MeetRoomHelper } from '../../src/helpers';
|
||||
import { MeetRoomHelper } from '../../src/helpers/room.helper';
|
||||
import { expectValidStartRecordingResponse } from './assertion-helpers';
|
||||
import {
|
||||
createRoom,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { afterAll, beforeAll, describe, expect, it } from '@jest/globals';
|
||||
import { container } from '../../../../src/config/index.js';
|
||||
import { container } from '../../../../src/config/dependency-injector.config.js';
|
||||
import { OpenViduMeetError } from '../../../../src/models/error.model.js';
|
||||
import { LiveKitService } from '../../../../src/services/index.js';
|
||||
import { LiveKitService } from '../../../../src/services/livekit.service.js';
|
||||
import {
|
||||
deleteAllRooms,
|
||||
deleteRoom,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { afterAll, beforeAll, beforeEach, describe, expect, it } from '@jest/globals';
|
||||
import { container } from '../../../../src/config/index.js';
|
||||
import { container } from '../../../../src/config/dependency-injector.config.js';
|
||||
import { OpenViduMeetError } from '../../../../src/models/error.model.js';
|
||||
import { LiveKitService } from '../../../../src/services/index.js';
|
||||
import { LiveKitService } from '../../../../src/services/livekit.service.js';
|
||||
import {
|
||||
deleteAllRooms,
|
||||
deleteRoom,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user