
- 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.
371 lines
4.8 KiB
Plaintext
371 lines
4.8 KiB
Plaintext
TN:
|
|
SF:src/index.ts
|
|
FN:1,(anonymous_0)
|
|
FNF:1
|
|
FNH:0
|
|
FNDA:0,(anonymous_0)
|
|
DA:1,0
|
|
DA:2,0
|
|
DA:3,0
|
|
DA:9,0
|
|
DA:10,0
|
|
DA:11,0
|
|
DA:12,0
|
|
LF:7
|
|
LH:0
|
|
BRF:0
|
|
BRH:0
|
|
end_of_record
|
|
TN:
|
|
SF:src/logger.ts
|
|
FN:17,(anonymous_0)
|
|
FN:26,(anonymous_1)
|
|
FN:30,(anonymous_2)
|
|
FN:32,(anonymous_3)
|
|
FN:35,(anonymous_4)
|
|
FN:37,(anonymous_5)
|
|
FN:40,(anonymous_6)
|
|
FN:46,(anonymous_7)
|
|
FN:52,(anonymous_8)
|
|
FN:59,(anonymous_9)
|
|
FN:65,(anonymous_10)
|
|
FN:68,(anonymous_11)
|
|
FN:74,(anonymous_12)
|
|
FN:77,makeLogger
|
|
FNF:14
|
|
FNH:13
|
|
FNDA:2,(anonymous_0)
|
|
FNDA:1,(anonymous_1)
|
|
FNDA:5,(anonymous_2)
|
|
FNDA:0,(anonymous_3)
|
|
FNDA:8,(anonymous_4)
|
|
FNDA:5,(anonymous_5)
|
|
FNDA:2,(anonymous_6)
|
|
FNDA:5,(anonymous_7)
|
|
FNDA:4,(anonymous_8)
|
|
FNDA:5,(anonymous_9)
|
|
FNDA:1,(anonymous_10)
|
|
FNDA:5,(anonymous_11)
|
|
FNDA:1,(anonymous_12)
|
|
FNDA:5,makeLogger
|
|
DA:1,2
|
|
DA:17,2
|
|
DA:18,2
|
|
DA:19,2
|
|
DA:20,2
|
|
DA:23,2
|
|
DA:24,2
|
|
DA:26,2
|
|
DA:30,2
|
|
DA:31,5
|
|
DA:35,8
|
|
DA:37,2
|
|
DA:40,5
|
|
DA:41,2
|
|
DA:46,2
|
|
DA:51,5
|
|
DA:53,4
|
|
DA:59,2
|
|
DA:64,5
|
|
DA:65,1
|
|
DA:68,2
|
|
DA:73,5
|
|
DA:74,1
|
|
DA:77,2
|
|
DA:78,5
|
|
DA:79,5
|
|
LF:26
|
|
LH:26
|
|
BRDA:17,0,0,2
|
|
BRDA:17,0,1,2
|
|
BRDA:31,1,0,0
|
|
BRDA:31,1,1,5
|
|
BRDA:42,2,0,1
|
|
BRDA:42,2,1,1
|
|
BRDA:51,3,0,4
|
|
BRDA:51,3,1,1
|
|
BRDA:54,4,0,1
|
|
BRDA:54,4,1,3
|
|
BRDA:64,5,0,5
|
|
BRDA:64,5,1,0
|
|
BRDA:73,6,0,5
|
|
BRDA:73,6,1,0
|
|
BRF:14
|
|
BRH:11
|
|
end_of_record
|
|
TN:
|
|
SF:src/options.ts
|
|
FN:33,getOptions
|
|
FN:47,validateOptions
|
|
FN:62,makeOptions
|
|
FNF:3
|
|
FNH:3
|
|
FNDA:3,getOptions
|
|
FNDA:3,validateOptions
|
|
FNDA:3,makeOptions
|
|
DA:17,1
|
|
DA:33,1
|
|
DA:34,3
|
|
DA:36,3
|
|
DA:38,3
|
|
DA:48,3
|
|
DA:49,3
|
|
DA:50,10
|
|
DA:52,10
|
|
DA:53,10
|
|
DA:54,0
|
|
DA:63,3
|
|
DA:79,3
|
|
DA:84,3
|
|
LF:14
|
|
LH:13
|
|
BRDA:53,0,0,0
|
|
BRF:1
|
|
BRH:0
|
|
end_of_record
|
|
TN:
|
|
SF:src/plugin.ts
|
|
FN:124,(anonymous_2)
|
|
FN:138,TsconfigPathsPlugin
|
|
FN:167,(anonymous_4)
|
|
FN:185,(anonymous_5)
|
|
FN:237,loadConfig
|
|
FN:252,createPluginCallback
|
|
FN:265,(anonymous_8)
|
|
FN:292,(anonymous_9)
|
|
FN:314,(anonymous_10)
|
|
FN:340,(anonymous_11)
|
|
FN:360,createPluginLegacy
|
|
FN:369,(anonymous_13)
|
|
FN:385,(anonymous_14)
|
|
FN:409,(anonymous_15)
|
|
FN:428,readJson
|
|
FN:437,(anonymous_17)
|
|
FN:455,createReadJsonAsync
|
|
FN:459,(anonymous_19)
|
|
FN:460,(anonymous_20)
|
|
FN:471,createFileExistAsync
|
|
FN:474,(anonymous_22)
|
|
FN:478,(anonymous_23)
|
|
FNF:22
|
|
FNH:17
|
|
FNDA:1,(anonymous_2)
|
|
FNDA:3,TsconfigPathsPlugin
|
|
FNDA:1,(anonymous_4)
|
|
FNDA:6,(anonymous_5)
|
|
FNDA:4,loadConfig
|
|
FNDA:6,createPluginCallback
|
|
FNDA:39,(anonymous_8)
|
|
FNDA:7,(anonymous_9)
|
|
FNDA:39,(anonymous_10)
|
|
FNDA:18,(anonymous_11)
|
|
FNDA:0,createPluginLegacy
|
|
FNDA:0,(anonymous_13)
|
|
FNDA:0,(anonymous_14)
|
|
FNDA:0,(anonymous_15)
|
|
FNDA:36,readJson
|
|
FNDA:0,(anonymous_17)
|
|
FNDA:6,createReadJsonAsync
|
|
FNDA:36,(anonymous_19)
|
|
FNDA:36,(anonymous_20)
|
|
FNDA:6,createFileExistAsync
|
|
FNDA:171,(anonymous_22)
|
|
FNDA:171,(anonymous_23)
|
|
DA:1,1
|
|
DA:2,1
|
|
DA:3,1
|
|
DA:4,1
|
|
DA:5,1
|
|
DA:122,1
|
|
DA:124,1
|
|
DA:127,3
|
|
DA:128,3
|
|
DA:138,3
|
|
DA:139,3
|
|
DA:141,3
|
|
DA:142,3
|
|
DA:146,3
|
|
DA:151,3
|
|
DA:152,3
|
|
DA:154,3
|
|
DA:155,3
|
|
DA:156,3
|
|
DA:157,3
|
|
DA:160,3
|
|
DA:166,3
|
|
DA:167,1
|
|
DA:168,1
|
|
DA:169,1
|
|
DA:170,1
|
|
DA:171,2
|
|
DA:172,1
|
|
DA:179,1
|
|
DA:185,1
|
|
DA:186,6
|
|
DA:187,0
|
|
DA:190,0
|
|
DA:196,6
|
|
DA:197,0
|
|
DA:202,0
|
|
DA:206,6
|
|
DA:207,6
|
|
DA:220,0
|
|
DA:222,0
|
|
DA:223,0
|
|
DA:235,1
|
|
DA:241,4
|
|
DA:242,4
|
|
DA:243,0
|
|
DA:245,4
|
|
DA:249,4
|
|
DA:263,6
|
|
DA:264,6
|
|
DA:265,6
|
|
DA:270,39
|
|
DA:272,39
|
|
DA:277,0
|
|
DA:283,39
|
|
DA:284,39
|
|
DA:288,27
|
|
DA:289,6
|
|
DA:291,21
|
|
DA:293,7
|
|
DA:294,7
|
|
DA:301,21
|
|
DA:302,6
|
|
DA:307,39
|
|
DA:309,39
|
|
DA:315,39
|
|
DA:316,0
|
|
DA:319,39
|
|
DA:320,21
|
|
DA:323,18
|
|
DA:332,18
|
|
DA:334,18
|
|
DA:343,18
|
|
DA:344,0
|
|
DA:348,18
|
|
DA:349,0
|
|
DA:352,18
|
|
DA:367,0
|
|
DA:368,0
|
|
DA:369,0
|
|
DA:370,0
|
|
DA:372,0
|
|
DA:377,0
|
|
DA:380,0
|
|
DA:386,0
|
|
DA:387,0
|
|
DA:390,0
|
|
DA:391,0
|
|
DA:394,0
|
|
DA:403,0
|
|
DA:405,0
|
|
DA:415,0
|
|
DA:416,0
|
|
DA:420,0
|
|
DA:433,36
|
|
DA:434,36
|
|
DA:437,0
|
|
DA:438,0
|
|
DA:439,0
|
|
DA:444,0
|
|
DA:446,0
|
|
DA:448,0
|
|
DA:451,0
|
|
DA:459,6
|
|
DA:460,36
|
|
DA:462,36
|
|
DA:463,27
|
|
DA:464,27
|
|
DA:466,9
|
|
DA:474,6
|
|
DA:478,171
|
|
DA:480,171
|
|
DA:481,138
|
|
DA:482,138
|
|
DA:484,33
|
|
LF:114
|
|
LH:78
|
|
BRDA:138,0,0,0
|
|
BRDA:148,1,0,3
|
|
BRDA:148,1,1,0
|
|
BRDA:151,2,0,3
|
|
BRDA:151,2,1,3
|
|
BRDA:152,3,0,3
|
|
BRDA:152,3,1,0
|
|
BRDA:155,4,0,3
|
|
BRDA:156,5,0,3
|
|
BRDA:156,5,1,3
|
|
BRDA:157,6,0,0
|
|
BRDA:157,6,1,3
|
|
BRDA:166,7,0,1
|
|
BRDA:168,8,0,1
|
|
BRDA:170,9,0,1
|
|
BRDA:186,10,0,0
|
|
BRDA:196,11,0,0
|
|
BRDA:206,12,0,6
|
|
BRDA:206,12,1,0
|
|
BRDA:206,13,0,6
|
|
BRDA:206,13,1,6
|
|
BRDA:220,14,0,0
|
|
BRDA:242,15,0,0
|
|
BRDA:242,15,1,4
|
|
BRDA:272,16,0,0
|
|
BRDA:273,17,0,39
|
|
BRDA:273,17,1,39
|
|
BRDA:273,17,2,39
|
|
BRDA:274,18,0,0
|
|
BRDA:274,18,1,39
|
|
BRDA:274,19,0,39
|
|
BRDA:274,19,1,39
|
|
BRDA:274,20,0,0
|
|
BRDA:274,20,1,39
|
|
BRDA:274,21,0,39
|
|
BRDA:274,21,1,39
|
|
BRDA:275,22,0,0
|
|
BRDA:275,22,1,39
|
|
BRDA:275,23,0,39
|
|
BRDA:275,23,1,39
|
|
BRDA:275,24,0,0
|
|
BRDA:275,24,1,39
|
|
BRDA:275,25,0,39
|
|
BRDA:275,25,1,39
|
|
BRDA:284,26,0,27
|
|
BRDA:285,27,0,39
|
|
BRDA:285,27,1,39
|
|
BRDA:288,28,0,6
|
|
BRDA:288,28,1,21
|
|
BRDA:293,29,0,7
|
|
BRDA:293,29,1,0
|
|
BRDA:295,30,0,7
|
|
BRDA:295,30,1,7
|
|
BRDA:295,30,2,6
|
|
BRDA:301,31,0,6
|
|
BRDA:307,32,0,39
|
|
BRDA:307,32,1,27
|
|
BRDA:315,33,0,0
|
|
BRDA:319,34,0,21
|
|
BRDA:343,35,0,0
|
|
BRDA:348,36,0,0
|
|
BRDA:372,37,0,0
|
|
BRDA:373,38,0,0
|
|
BRDA:373,38,1,0
|
|
BRDA:373,38,2,0
|
|
BRDA:386,39,0,0
|
|
BRDA:390,40,0,0
|
|
BRDA:415,41,0,0
|
|
BRDA:433,42,0,36
|
|
BRDA:433,43,0,36
|
|
BRDA:433,43,1,36
|
|
BRDA:438,44,0,0
|
|
BRDA:462,45,0,27
|
|
BRDA:462,46,0,36
|
|
BRDA:462,46,1,9
|
|
BRDA:480,47,0,138
|
|
BRDA:484,48,0,33
|
|
BRDA:484,48,1,0
|
|
BRF:78
|
|
BRH:51
|
|
end_of_record
|