
- 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.
97 lines
2.4 KiB
TypeScript
97 lines
2.4 KiB
TypeScript
declare namespace CliTable3 {
|
|
type CharName =
|
|
"top" |
|
|
"top-mid" |
|
|
"top-left" |
|
|
"top-right" |
|
|
"bottom" |
|
|
"bottom-mid" |
|
|
"bottom-left" |
|
|
"bottom-right" |
|
|
"left" |
|
|
"left-mid" |
|
|
"mid" |
|
|
"mid-mid" |
|
|
"right" |
|
|
"right-mid" |
|
|
"middle";
|
|
|
|
type HorizontalAlignment = "left" | "center" | "right";
|
|
type VerticalAlignment = "top" | "center" | "bottom";
|
|
|
|
interface TableOptions {
|
|
truncate: string;
|
|
colWidths: Array<number | null>;
|
|
rowHeights: Array<number | null>;
|
|
colAligns: HorizontalAlignment[];
|
|
rowAligns: VerticalAlignment[];
|
|
head: string[];
|
|
wordWrap: boolean;
|
|
wrapOnWordBoundary: boolean;
|
|
}
|
|
|
|
interface TableInstanceOptions extends TableOptions {
|
|
chars: Record<CharName, string>;
|
|
style: {
|
|
"padding-left": number;
|
|
"padding-right": number;
|
|
head: string[];
|
|
border: string[];
|
|
compact: boolean;
|
|
};
|
|
}
|
|
|
|
interface TableConstructorOptions extends Partial<TableOptions> {
|
|
chars?: Partial<Record<CharName, string>>;
|
|
style?: Partial<TableInstanceOptions["style"]>;
|
|
}
|
|
|
|
type CellValue = boolean | number | bigint | string | null | undefined;
|
|
|
|
interface CellOptions {
|
|
content: CellValue;
|
|
chars?: Partial<Record<CharName, string>>;
|
|
truncate?: string;
|
|
colSpan?: number;
|
|
rowSpan?: number;
|
|
hAlign?: HorizontalAlignment;
|
|
vAlign?: VerticalAlignment;
|
|
wordWrap?: boolean;
|
|
wrapOnWordBoundary?: boolean;
|
|
href?: string;
|
|
style?: {
|
|
"padding-left"?: number;
|
|
"padding-right"?: number;
|
|
head?: string[];
|
|
border?: string[];
|
|
};
|
|
}
|
|
|
|
interface GenericTable<T> extends Array<T> {
|
|
options: TableInstanceOptions;
|
|
readonly width: number;
|
|
}
|
|
|
|
type Table = GenericTable<HorizontalTableRow|VerticalTableRow|CrossTableRow>;
|
|
type Cell = CellValue | CellOptions;
|
|
|
|
type HorizontalTableRow = Cell[];
|
|
|
|
interface VerticalTableRow {
|
|
[name: string]: Cell;
|
|
}
|
|
|
|
interface CrossTableRow {
|
|
[name: string]: Cell[];
|
|
}
|
|
}
|
|
|
|
interface CliTable3 {
|
|
new (options?: CliTable3.TableConstructorOptions): CliTable3.Table;
|
|
readonly prototype: CliTable3.Table;
|
|
}
|
|
|
|
declare const CliTable3: CliTable3;
|
|
|
|
export = CliTable3;
|