Automated Action 545563e776 Implement comprehensive real-time chat API with NestJS
- 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.
2025-06-21 17:13:05 +00:00

4.0 KiB

0.7.4 / 2020-05-22

  • Avoid crashing if process.version does not contain any digits
  • Emit ping and pong events from the Server driver
  • Require http-parser-js >=0.5.1 which fixes the bug we addressed in 0.7.3

0.7.3 / 2019-06-13

  • Cap version of http-parser-js below 0.4.11, which introduced a bug that prevents us from handling messages that are part of the same input buffer as the handshake response if chunked encoding is specified

0.7.2 / 2019-06-13

(This version was pulled due to an error when publishing)

0.7.1 / 2019-06-10

  • Catch any exceptions produced while generating a handshake response and send a 400 Bad Request response to the client
  • Pick the RFC-6455 protocol version if the request contains any of the headers used by that version
  • Use the Buffer.alloc() and Buffer.from() functions instead of the unsafe Buffer() constructor
  • Handle errors encountered while handling malformed draft-76 requests
  • Change license from MIT to Apache 2.0

0.7.0 / 2017-09-11

  • Add ping and pong to the set of events users can listen to
  • Replace the bindings to Node's HTTP parser with http-parser-js

0.6.5 / 2016-05-20

  • Don't mutate buffers passed in by the application when masking

0.6.4 / 2016-01-07

  • If a number is given as input for a frame payload, send it as a string

0.6.3 / 2015-11-06

  • Reject draft-76 handshakes if their Sec-WebSocket-Key headers are invalid
  • Throw a more helpful error if a client is created with an invalid URL

0.6.2 / 2015-07-18

  • When the peer sends a close frame with no error code, emit 1000

0.6.1 / 2015-07-13

  • Use the buffer.{read,write}UInt{16,32}BE methods for reading/writing numbers to buffers rather than including duplicate logic for this

0.6.0 / 2015-07-08

  • Allow the parser to recover cleanly if event listeners raise an error
  • Add a pong method for sending unsolicited pong frames

0.5.4 / 2015-03-29

  • Don't emit extra close frames if we receive a close frame after we already sent one
  • Fail the connection when the driver receives an invalid Sec-WebSocket-Extensions header

0.5.3 / 2015-02-22

  • Don't treat incoming data as WebSocket frames if a client driver is closed before receiving the server handshake

0.5.2 / 2015-02-19

  • Fix compatibility with the HTTP parser on io.js
  • Use websocket-extensions to make sure messages and close frames are kept in order
  • Don't emit multiple error events

0.5.1 / 2014-12-18

  • Don't allow drivers to be created with unrecognized options

0.5.0 / 2014-12-13

  • Support protocol extensions via the websocket-extensions module

0.4.0 / 2014-11-08

  • Support connection via HTTP proxies using CONNECT

0.3.6 / 2014-10-04

  • It is now possible to call close() before start() and close the driver

0.3.5 / 2014-07-06

  • Don't hold references to frame buffers after a message has been emitted
  • Make sure that protocol and version are exposed properly by the TCP driver

0.3.4 / 2014-05-08

  • Don't hold memory-leaking references to I/O buffers after they have been parsed

0.3.3 / 2014-04-24

  • Correct the draft-76 status line reason phrase

0.3.2 / 2013-12-29

  • Expand maxLength to cover sequences of continuation frames and draft-{75,76}
  • Decrease default maximum frame buffer size to 64MB
  • Stop parsing when the protocol enters a failure mode, to save CPU cycles

0.3.1 / 2013-12-03

  • Add a maxLength option to limit allowed frame size
  • Don't pre-allocate a message buffer until the whole frame has arrived
  • Fix compatibility with Node v0.11 HTTPParser

0.3.0 / 2013-09-09

  • Support client URLs with Basic Auth credentials

0.2.2 / 2013-07-05

  • No functional changes, just updates to package.json

0.2.1 / 2013-05-17

  • Export the isSecureRequest() method since faye-websocket relies on it
  • Queue sent messages in the client's initial state

0.2.0 / 2013-05-12

  • Add API for setting and reading headers
  • Add Driver.server() method for getting a driver for TCP servers

0.1.0 / 2013-05-04

  • First stable release