
- 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.
44 lines
1.2 KiB
Markdown
44 lines
1.2 KiB
Markdown
# istanbul-lib-report
|
|
|
|
[](https://greenkeeper.io/)
|
|
[](https://travis-ci.org/istanbuljs/istanbul-lib-report)
|
|
|
|
Core reporting utilities for istanbul.
|
|
|
|
## Example usage
|
|
|
|
```js
|
|
const libReport = require('istanbul-lib-report');
|
|
const reports = require('istanbul-reports');
|
|
|
|
// coverageMap, for instance, obtained from istanbul-lib-coverage
|
|
const coverageMap;
|
|
|
|
const configWatermarks = {
|
|
statements: [50, 80],
|
|
functions: [50, 80],
|
|
branches: [50, 80],
|
|
lines: [50, 80]
|
|
};
|
|
|
|
// create a context for report generation
|
|
const context = libReport.createContext({
|
|
dir: 'report/output/dir',
|
|
// The summarizer to default to (may be overridden by some reports)
|
|
// values can be nested/flat/pkg. Defaults to 'pkg'
|
|
defaultSummarizer: 'nested',
|
|
watermarks: configWatermarks,
|
|
coverageMap,
|
|
})
|
|
|
|
// create an instance of the relevant report class, passing the
|
|
// report name e.g. json/html/html-spa/text
|
|
const report = reports.create('json', {
|
|
skipEmpty: configSkipEmpty,
|
|
skipFull: configSkipFull
|
|
})
|
|
|
|
// call execute to synchronously create and write the report to disk
|
|
report.execute(context)
|
|
```
|