
- 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.
83 lines
1.6 KiB
JSON
83 lines
1.6 KiB
JSON
{
|
|
"name": "is-number",
|
|
"description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.",
|
|
"version": "7.0.0",
|
|
"homepage": "https://github.com/jonschlinkert/is-number",
|
|
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",
|
|
"contributors": [
|
|
"Jon Schlinkert (http://twitter.com/jonschlinkert)",
|
|
"Olsten Larck (https://i.am.charlike.online)",
|
|
"Rouven Weßling (www.rouvenwessling.de)"
|
|
],
|
|
"repository": "jonschlinkert/is-number",
|
|
"bugs": {
|
|
"url": "https://github.com/jonschlinkert/is-number/issues"
|
|
},
|
|
"license": "MIT",
|
|
"files": [
|
|
"index.js"
|
|
],
|
|
"main": "index.js",
|
|
"engines": {
|
|
"node": ">=0.12.0"
|
|
},
|
|
"scripts": {
|
|
"test": "mocha"
|
|
},
|
|
"devDependencies": {
|
|
"ansi": "^0.3.1",
|
|
"benchmark": "^2.1.4",
|
|
"gulp-format-md": "^1.0.0",
|
|
"mocha": "^3.5.3"
|
|
},
|
|
"keywords": [
|
|
"cast",
|
|
"check",
|
|
"coerce",
|
|
"coercion",
|
|
"finite",
|
|
"integer",
|
|
"is",
|
|
"isnan",
|
|
"is-nan",
|
|
"is-num",
|
|
"is-number",
|
|
"isnumber",
|
|
"isfinite",
|
|
"istype",
|
|
"kind",
|
|
"math",
|
|
"nan",
|
|
"num",
|
|
"number",
|
|
"numeric",
|
|
"parseFloat",
|
|
"parseInt",
|
|
"test",
|
|
"type",
|
|
"typeof",
|
|
"value"
|
|
],
|
|
"verb": {
|
|
"toc": false,
|
|
"layout": "default",
|
|
"tasks": [
|
|
"readme"
|
|
],
|
|
"related": {
|
|
"list": [
|
|
"is-plain-object",
|
|
"is-primitive",
|
|
"isobject",
|
|
"kind-of"
|
|
]
|
|
},
|
|
"plugins": [
|
|
"gulp-format-md"
|
|
],
|
|
"lint": {
|
|
"reflinks": true
|
|
}
|
|
}
|
|
}
|