
- 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.
62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
type Pathname = string
|
|
|
|
interface TestResult {
|
|
ignored: boolean
|
|
unignored: boolean
|
|
}
|
|
|
|
export interface Ignore {
|
|
/**
|
|
* Adds one or several rules to the current manager.
|
|
* @param {string[]} patterns
|
|
* @returns IgnoreBase
|
|
*/
|
|
add(patterns: string | Ignore | readonly (string | Ignore)[]): this
|
|
|
|
/**
|
|
* Filters the given array of pathnames, and returns the filtered array.
|
|
* NOTICE that each path here should be a relative path to the root of your repository.
|
|
* @param paths the array of paths to be filtered.
|
|
* @returns The filtered array of paths
|
|
*/
|
|
filter(pathnames: readonly Pathname[]): Pathname[]
|
|
|
|
/**
|
|
* Creates a filter function which could filter
|
|
* an array of paths with Array.prototype.filter.
|
|
*/
|
|
createFilter(): (pathname: Pathname) => boolean
|
|
|
|
/**
|
|
* Returns Boolean whether pathname should be ignored.
|
|
* @param {string} pathname a path to check
|
|
* @returns boolean
|
|
*/
|
|
ignores(pathname: Pathname): boolean
|
|
|
|
/**
|
|
* Returns whether pathname should be ignored or unignored
|
|
* @param {string} pathname a path to check
|
|
* @returns TestResult
|
|
*/
|
|
test(pathname: Pathname): TestResult
|
|
}
|
|
|
|
export interface Options {
|
|
ignorecase?: boolean
|
|
// For compatibility
|
|
ignoreCase?: boolean
|
|
allowRelativePaths?: boolean
|
|
}
|
|
|
|
/**
|
|
* Creates new ignore manager.
|
|
*/
|
|
declare function ignore(options?: Options): Ignore
|
|
|
|
declare namespace ignore {
|
|
export function isPathValid (pathname: string): boolean
|
|
}
|
|
|
|
export default ignore
|