
- 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.
53 lines
1.1 KiB
JSON
Executable File
53 lines
1.1 KiB
JSON
Executable File
{
|
|
"name": "esrecurse",
|
|
"description": "ECMAScript AST recursive visitor",
|
|
"homepage": "https://github.com/estools/esrecurse",
|
|
"main": "esrecurse.js",
|
|
"version": "4.3.0",
|
|
"engines": {
|
|
"node": ">=4.0"
|
|
},
|
|
"maintainers": [
|
|
{
|
|
"name": "Yusuke Suzuki",
|
|
"email": "utatane.tea@gmail.com",
|
|
"web": "https://github.com/Constellation"
|
|
}
|
|
],
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/estools/esrecurse.git"
|
|
},
|
|
"dependencies": {
|
|
"estraverse": "^5.2.0"
|
|
},
|
|
"devDependencies": {
|
|
"babel-cli": "^6.24.1",
|
|
"babel-eslint": "^7.2.3",
|
|
"babel-preset-es2015": "^6.24.1",
|
|
"babel-register": "^6.24.1",
|
|
"chai": "^4.0.2",
|
|
"esprima": "^4.0.0",
|
|
"gulp": "^3.9.0",
|
|
"gulp-bump": "^2.7.0",
|
|
"gulp-eslint": "^4.0.0",
|
|
"gulp-filter": "^5.0.0",
|
|
"gulp-git": "^2.4.1",
|
|
"gulp-mocha": "^4.3.1",
|
|
"gulp-tag-version": "^1.2.1",
|
|
"jsdoc": "^3.3.0-alpha10",
|
|
"minimist": "^1.1.0"
|
|
},
|
|
"license": "BSD-2-Clause",
|
|
"scripts": {
|
|
"test": "gulp travis",
|
|
"unit-test": "gulp test",
|
|
"lint": "gulp lint"
|
|
},
|
|
"babel": {
|
|
"presets": [
|
|
"es2015"
|
|
]
|
|
}
|
|
}
|