
- Complete NestJS TypeScript implementation with WebSocket support - Direct messaging (DM) and group chat functionality - End-to-end encryption with AES encryption and key pairs - Media file support (images, videos, audio, documents) up to 100MB - Push notifications with Firebase Cloud Messaging integration - Mention alerts and real-time typing indicators - User authentication with JWT and Passport - SQLite database with TypeORM entities and relationships - Comprehensive API documentation with Swagger/OpenAPI - File upload handling with secure access control - Online/offline status tracking and presence management - Message editing, deletion, and reply functionality - Notification management with automatic cleanup - Health check endpoint for monitoring - CORS configuration for cross-origin requests - Environment-based configuration management - Structured for Flutter SDK integration Features implemented: ✅ Real-time messaging with Socket.IO ✅ User registration and authentication ✅ Direct messages and group chats ✅ Media file uploads and management ✅ End-to-end encryption ✅ Push notifications ✅ Mention alerts ✅ Typing indicators ✅ Message read receipts ✅ Online status tracking ✅ File access control ✅ Comprehensive API documentation Ready for Flutter SDK development and production deployment.
58 lines
1.9 KiB
TypeScript
58 lines
1.9 KiB
TypeScript
import { ExceptionFilter } from './exceptions/exception-filter.interface';
|
|
import { CanActivate } from './features/can-activate.interface';
|
|
import { NestInterceptor } from './features/nest-interceptor.interface';
|
|
import { PipeTransform } from './features/pipe-transform.interface';
|
|
import { INestApplicationContext } from './nest-application-context.interface';
|
|
import { WebSocketAdapter } from './websockets/web-socket-adapter.interface';
|
|
/**
|
|
* Interface describing Microservice Context.
|
|
*
|
|
* @publicApi
|
|
*/
|
|
export interface INestMicroservice extends INestApplicationContext {
|
|
/**
|
|
* Starts the microservice.
|
|
*
|
|
* @returns {void}
|
|
*/
|
|
listen(): Promise<any>;
|
|
/**
|
|
* Register Ws Adapter which will be used inside Gateways.
|
|
* Use when you want to override default `socket.io` library.
|
|
*
|
|
* @param {WebSocketAdapter} adapter
|
|
* @returns {this}
|
|
*/
|
|
useWebSocketAdapter(adapter: WebSocketAdapter): this;
|
|
/**
|
|
* Registers exception filters as global filters (will be used within every message pattern handler)
|
|
*
|
|
* @param {...ExceptionFilter} filters
|
|
*/
|
|
useGlobalFilters(...filters: ExceptionFilter[]): this;
|
|
/**
|
|
* Registers pipes as global pipes (will be used within every message pattern handler)
|
|
*
|
|
* @param {...PipeTransform} pipes
|
|
*/
|
|
useGlobalPipes(...pipes: PipeTransform<any>[]): this;
|
|
/**
|
|
* Registers interceptors as global interceptors (will be used within every message pattern handler)
|
|
*
|
|
* @param {...NestInterceptor} interceptors
|
|
*/
|
|
useGlobalInterceptors(...interceptors: NestInterceptor[]): this;
|
|
/**
|
|
* Registers guards as global guards (will be used within every message pattern handler)
|
|
*
|
|
* @param {...CanActivate} guards
|
|
*/
|
|
useGlobalGuards(...guards: CanActivate[]): this;
|
|
/**
|
|
* Terminates the application
|
|
*
|
|
* @returns {Promise<void>}
|
|
*/
|
|
close(): Promise<void>;
|
|
}
|