
- 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.
51 lines
2.1 KiB
TypeScript
51 lines
2.1 KiB
TypeScript
/**
|
|
* Internal Merkle-Damgard hash utils.
|
|
* @module
|
|
*/
|
|
import { type Input, Hash } from './utils.ts';
|
|
/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */
|
|
export declare function setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void;
|
|
/** Choice: a ? b : c */
|
|
export declare function Chi(a: number, b: number, c: number): number;
|
|
/** Majority function, true if any two inputs is true. */
|
|
export declare function Maj(a: number, b: number, c: number): number;
|
|
/**
|
|
* Merkle-Damgard hash construction base class.
|
|
* Could be used to create MD5, RIPEMD, SHA1, SHA2.
|
|
*/
|
|
export declare abstract class HashMD<T extends HashMD<T>> extends Hash<T> {
|
|
protected abstract process(buf: DataView, offset: number): void;
|
|
protected abstract get(): number[];
|
|
protected abstract set(...args: number[]): void;
|
|
abstract destroy(): void;
|
|
protected abstract roundClean(): void;
|
|
readonly blockLen: number;
|
|
readonly outputLen: number;
|
|
readonly padOffset: number;
|
|
readonly isLE: boolean;
|
|
protected buffer: Uint8Array;
|
|
protected view: DataView;
|
|
protected finished: boolean;
|
|
protected length: number;
|
|
protected pos: number;
|
|
protected destroyed: boolean;
|
|
constructor(blockLen: number, outputLen: number, padOffset: number, isLE: boolean);
|
|
update(data: Input): this;
|
|
digestInto(out: Uint8Array): void;
|
|
digest(): Uint8Array;
|
|
_cloneInto(to?: T): T;
|
|
clone(): T;
|
|
}
|
|
/**
|
|
* Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.
|
|
* Check out `test/misc/sha2-gen-iv.js` for recomputation guide.
|
|
*/
|
|
/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */
|
|
export declare const SHA256_IV: Uint32Array;
|
|
/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */
|
|
export declare const SHA224_IV: Uint32Array;
|
|
/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */
|
|
export declare const SHA384_IV: Uint32Array;
|
|
/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */
|
|
export declare const SHA512_IV: Uint32Array;
|
|
//# sourceMappingURL=_md.d.ts.map
|