
- 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.
75 lines
1.7 KiB
JSON
75 lines
1.7 KiB
JSON
{
|
|
"name": "fill-range",
|
|
"description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`",
|
|
"version": "7.1.1",
|
|
"homepage": "https://github.com/jonschlinkert/fill-range",
|
|
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",
|
|
"contributors": [
|
|
"Edo Rivai (edo.rivai.nl)",
|
|
"Jon Schlinkert (http://twitter.com/jonschlinkert)",
|
|
"Paul Miller (paulmillr.com)",
|
|
"Rouven Weßling (www.rouvenwessling.de)",
|
|
"(https://github.com/wtgtybhertgeghgtwtg)"
|
|
],
|
|
"repository": "jonschlinkert/fill-range",
|
|
"bugs": {
|
|
"url": "https://github.com/jonschlinkert/fill-range/issues"
|
|
},
|
|
"license": "MIT",
|
|
"files": [
|
|
"index.js"
|
|
],
|
|
"main": "index.js",
|
|
"engines": {
|
|
"node": ">=8"
|
|
},
|
|
"scripts": {
|
|
"lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .",
|
|
"mocha": "mocha --reporter dot",
|
|
"test": "npm run lint && npm run mocha",
|
|
"test:ci": "npm run test:cover",
|
|
"test:cover": "nyc npm run mocha"
|
|
},
|
|
"dependencies": {
|
|
"to-regex-range": "^5.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"gulp-format-md": "^2.0.0",
|
|
"mocha": "^6.1.1",
|
|
"nyc": "^15.1.0"
|
|
},
|
|
"keywords": [
|
|
"alpha",
|
|
"alphabetical",
|
|
"array",
|
|
"bash",
|
|
"brace",
|
|
"expand",
|
|
"expansion",
|
|
"fill",
|
|
"glob",
|
|
"match",
|
|
"matches",
|
|
"matching",
|
|
"number",
|
|
"numerical",
|
|
"range",
|
|
"ranges",
|
|
"regex",
|
|
"sh"
|
|
],
|
|
"verb": {
|
|
"toc": false,
|
|
"layout": "default",
|
|
"tasks": [
|
|
"readme"
|
|
],
|
|
"plugins": [
|
|
"gulp-format-md"
|
|
],
|
|
"lint": {
|
|
"reflinks": true
|
|
}
|
|
}
|
|
}
|