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

267 lines
6.6 KiB
JSON

{
"name": "@noble/hashes",
"version": "1.8.0",
"description": "Audited & minimal 0-dependency JS implementation of SHA, RIPEMD, BLAKE, HMAC, HKDF, PBKDF & Scrypt",
"files": [
"/*.js",
"/*.js.map",
"/*.d.ts",
"/*.d.ts.map",
"esm",
"src/*.ts"
],
"scripts": {
"bench": "node benchmark/noble.js",
"bench:compare": "MBENCH_DIMS='algorithm,buffer,library' node benchmark/hashes.js",
"bench:compare-hkdf": "MBENCH_DIMS='algorithm,length,library' node benchmark/hkdf.js",
"bench:compare-scrypt": "MBENCH_DIMS='iters,library' MBENCH_FILTER='async' node benchmark/scrypt.js",
"bench:install": "cd benchmark; npm install; npm install .. --install-links",
"build": "npm run build:clean; tsc && tsc -p tsconfig.cjs.json",
"build:clean": "rm -f *.{js,d.ts,js.map,d.ts.map} esm/*.{js,js.map,d.ts.map}",
"build:release": "npx jsbt esbuild test/build",
"lint": "prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts}'",
"format": "prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts}'",
"test": "node --import ./test/esm-register.js test/index.js",
"test:bun": "bun test/index.js",
"test:deno": "deno --allow-env --allow-read --import-map=./test/import_map.json test/index.js",
"test:dos": "node --import ./test/esm-register.js test/slow-dos.test.js",
"test:big": "node --import ./test/esm-register.js test/slow-big.test.js",
"test:kdf": "node --import ./test/esm-register.js test/slow-kdf.test.js"
},
"author": "Paul Miller (https://paulmillr.com)",
"homepage": "https://paulmillr.com/noble/",
"repository": {
"type": "git",
"url": "git+https://github.com/paulmillr/noble-hashes.git"
},
"license": "MIT",
"devDependencies": {
"@paulmillr/jsbt": "0.3.3",
"fast-check": "3.0.0",
"micro-bmark": "0.4.1",
"micro-should": "0.5.2",
"prettier": "3.5.3",
"typescript": "5.8.3"
},
"engines": {
"node": "^14.21.3 || >=16"
},
"exports": {
".": {
"import": "./esm/index.js",
"require": "./index.js"
},
"./crypto": {
"node": {
"import": "./esm/cryptoNode.js",
"default": "./cryptoNode.js"
},
"import": "./esm/crypto.js",
"default": "./crypto.js"
},
"./_assert": {
"import": "./esm/_assert.js",
"require": "./_assert.js"
},
"./_md": {
"import": "./esm/_md.js",
"require": "./_md.js"
},
"./argon2": {
"import": "./esm/argon2.js",
"require": "./argon2.js"
},
"./blake1": {
"import": "./esm/blake1.js",
"require": "./blake1.js"
},
"./blake2": {
"import": "./esm/blake2.js",
"require": "./blake2.js"
},
"./blake2b": {
"import": "./esm/blake2b.js",
"require": "./blake2b.js"
},
"./blake2s": {
"import": "./esm/blake2s.js",
"require": "./blake2s.js"
},
"./blake3": {
"import": "./esm/blake3.js",
"require": "./blake3.js"
},
"./eskdf": {
"import": "./esm/eskdf.js",
"require": "./eskdf.js"
},
"./hkdf": {
"import": "./esm/hkdf.js",
"require": "./hkdf.js"
},
"./hmac": {
"import": "./esm/hmac.js",
"require": "./hmac.js"
},
"./legacy": {
"import": "./esm/legacy.js",
"require": "./legacy.js"
},
"./pbkdf2": {
"import": "./esm/pbkdf2.js",
"require": "./pbkdf2.js"
},
"./ripemd160": {
"import": "./esm/ripemd160.js",
"require": "./ripemd160.js"
},
"./scrypt": {
"import": "./esm/scrypt.js",
"require": "./scrypt.js"
},
"./sha1": {
"import": "./esm/sha1.js",
"require": "./sha1.js"
},
"./sha2": {
"import": "./esm/sha2.js",
"require": "./sha2.js"
},
"./sha3-addons": {
"import": "./esm/sha3-addons.js",
"require": "./sha3-addons.js"
},
"./sha3": {
"import": "./esm/sha3.js",
"require": "./sha3.js"
},
"./sha256": {
"import": "./esm/sha256.js",
"require": "./sha256.js"
},
"./sha512": {
"import": "./esm/sha512.js",
"require": "./sha512.js"
},
"./utils": {
"import": "./esm/utils.js",
"require": "./utils.js"
},
"./_assert.js": {
"import": "./esm/_assert.js",
"require": "./_assert.js"
},
"./_md.js": {
"import": "./esm/_md.js",
"require": "./_md.js"
},
"./argon2.js": {
"import": "./esm/argon2.js",
"require": "./argon2.js"
},
"./blake1.js": {
"import": "./esm/blake1.js",
"require": "./blake1.js"
},
"./blake2.js": {
"import": "./esm/blake2.js",
"require": "./blake2.js"
},
"./blake2b.js": {
"import": "./esm/blake2b.js",
"require": "./blake2b.js"
},
"./blake2s.js": {
"import": "./esm/blake2s.js",
"require": "./blake2s.js"
},
"./blake3.js": {
"import": "./esm/blake3.js",
"require": "./blake3.js"
},
"./eskdf.js": {
"import": "./esm/eskdf.js",
"require": "./eskdf.js"
},
"./hkdf.js": {
"import": "./esm/hkdf.js",
"require": "./hkdf.js"
},
"./hmac.js": {
"import": "./esm/hmac.js",
"require": "./hmac.js"
},
"./legacy.js": {
"import": "./esm/legacy.js",
"require": "./legacy.js"
},
"./pbkdf2.js": {
"import": "./esm/pbkdf2.js",
"require": "./pbkdf2.js"
},
"./ripemd160.js": {
"import": "./esm/ripemd160.js",
"require": "./ripemd160.js"
},
"./scrypt.js": {
"import": "./esm/scrypt.js",
"require": "./scrypt.js"
},
"./sha1.js": {
"import": "./esm/sha1.js",
"require": "./sha1.js"
},
"./sha2.js": {
"import": "./esm/sha2.js",
"require": "./sha2.js"
},
"./sha3-addons.js": {
"import": "./esm/sha3-addons.js",
"require": "./sha3-addons.js"
},
"./sha3.js": {
"import": "./esm/sha3.js",
"require": "./sha3.js"
},
"./sha256.js": {
"import": "./esm/sha256.js",
"require": "./sha256.js"
},
"./sha512.js": {
"import": "./esm/sha512.js",
"require": "./sha512.js"
},
"./utils.js": {
"import": "./esm/utils.js",
"require": "./utils.js"
}
},
"sideEffects": false,
"browser": {
"node:crypto": false,
"./crypto": "./crypto.js"
},
"keywords": [
"sha",
"sha2",
"sha3",
"sha256",
"sha512",
"keccak",
"kangarootwelve",
"ripemd160",
"blake2",
"blake3",
"hmac",
"hkdf",
"pbkdf2",
"scrypt",
"kdf",
"hash",
"cryptography",
"security",
"noble"
],
"funding": "https://paulmillr.com/funding/"
}