@builder6/server 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/app.controller.d.ts +3 -0
  2. package/dist/app.controller.js +29 -0
  3. package/dist/app.controller.js.map +1 -0
  4. package/dist/app.express.d.ts +2 -0
  5. package/dist/app.express.js +45 -0
  6. package/dist/app.express.js.map +1 -0
  7. package/dist/app.module.d.ts +2 -0
  8. package/dist/app.module.js +48 -0
  9. package/dist/app.module.js.map +1 -0
  10. package/dist/auth/admin.guard.d.ts +8 -0
  11. package/dist/auth/admin.guard.js +47 -0
  12. package/dist/auth/admin.guard.js.map +1 -0
  13. package/dist/auth/auth.controller.d.ts +7 -0
  14. package/dist/auth/auth.controller.js +80 -0
  15. package/dist/auth/auth.controller.js.map +1 -0
  16. package/dist/auth/auth.guard.d.ts +7 -0
  17. package/dist/auth/auth.guard.js +41 -0
  18. package/dist/auth/auth.guard.js.map +1 -0
  19. package/dist/auth/auth.module.d.ts +2 -0
  20. package/dist/auth/auth.module.js +34 -0
  21. package/dist/auth/auth.module.js.map +1 -0
  22. package/dist/auth/auth.service.d.ts +22 -0
  23. package/dist/auth/auth.service.js +172 -0
  24. package/dist/auth/auth.service.js.map +1 -0
  25. package/dist/auth/index.d.ts +5 -0
  26. package/dist/auth/index.js +22 -0
  27. package/dist/auth/index.js.map +1 -0
  28. package/dist/b6.config.d.ts +0 -0
  29. package/dist/b6.config.js +6 -0
  30. package/dist/b6.config.js.map +1 -0
  31. package/dist/b6.server.d.ts +2 -0
  32. package/dist/b6.server.js +276 -0
  33. package/dist/b6.server.js.map +1 -0
  34. package/dist/files/files.controller.d.ts +8 -0
  35. package/dist/files/files.controller.js +110 -0
  36. package/dist/files/files.controller.js.map +1 -0
  37. package/dist/files/files.module.d.ts +2 -0
  38. package/dist/files/files.module.js +25 -0
  39. package/dist/files/files.module.js.map +1 -0
  40. package/dist/files/files.service.d.ts +30 -0
  41. package/dist/files/files.service.js +206 -0
  42. package/dist/files/files.service.js.map +1 -0
  43. package/dist/files/index.d.ts +3 -0
  44. package/dist/files/index.js +20 -0
  45. package/dist/files/index.js.map +1 -0
  46. package/dist/index.d.ts +5 -0
  47. package/dist/index.js +28 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/main.d.ts +1 -0
  50. package/dist/main.js +10 -0
  51. package/dist/main.js.map +1 -0
  52. package/dist/microsoft365/microsoft365.controller.d.ts +8 -0
  53. package/dist/microsoft365/microsoft365.controller.js +83 -0
  54. package/dist/microsoft365/microsoft365.controller.js.map +1 -0
  55. package/dist/microsoft365/microsoft365.module.d.ts +2 -0
  56. package/dist/microsoft365/microsoft365.module.js +22 -0
  57. package/dist/microsoft365/microsoft365.module.js.map +1 -0
  58. package/dist/microsoft365/microsoft365.service.d.ts +3 -0
  59. package/dist/microsoft365/microsoft365.service.js +32 -0
  60. package/dist/microsoft365/microsoft365.service.js.map +1 -0
  61. package/dist/moleculer/env.config.d.ts +2 -0
  62. package/dist/moleculer/env.config.js +38 -0
  63. package/dist/moleculer/env.config.js.map +1 -0
  64. package/dist/moleculer/moleculer.config.d.ts +2 -0
  65. package/dist/moleculer/moleculer.config.js +78 -0
  66. package/dist/moleculer/moleculer.config.js.map +1 -0
  67. package/dist/moleculer/moleculer.module.d.ts +2 -0
  68. package/dist/moleculer/moleculer.module.js +20 -0
  69. package/dist/moleculer/moleculer.module.js.map +1 -0
  70. package/dist/moleculer/moleculer.service.d.ts +11 -0
  71. package/dist/moleculer/moleculer.service.js +95 -0
  72. package/dist/moleculer/moleculer.service.js.map +1 -0
  73. package/dist/mongodb/index.d.ts +2 -0
  74. package/dist/mongodb/index.js +19 -0
  75. package/dist/mongodb/index.js.map +1 -0
  76. package/dist/mongodb/mongodb.module.d.ts +2 -0
  77. package/dist/mongodb/mongodb.module.js +21 -0
  78. package/dist/mongodb/mongodb.module.js.map +1 -0
  79. package/dist/mongodb/mongodb.service.d.ts +17 -0
  80. package/dist/mongodb/mongodb.service.js +113 -0
  81. package/dist/mongodb/mongodb.service.js.map +1 -0
  82. package/dist/oidc/oidc.controller.d.ts +7 -0
  83. package/dist/oidc/oidc.controller.js +93 -0
  84. package/dist/oidc/oidc.controller.js.map +1 -0
  85. package/dist/oidc/oidc.module.d.ts +2 -0
  86. package/dist/oidc/oidc.module.js +22 -0
  87. package/dist/oidc/oidc.module.js.map +1 -0
  88. package/dist/oidc/oidc.service.d.ts +15 -0
  89. package/dist/oidc/oidc.service.js +38 -0
  90. package/dist/oidc/oidc.service.js.map +1 -0
  91. package/dist/rooms/globals/augmentation.d.ts +25 -0
  92. package/dist/rooms/globals/augmentation.js +3 -0
  93. package/dist/rooms/globals/augmentation.js.map +1 -0
  94. package/dist/rooms/lib/DateToString.d.ts +3 -0
  95. package/dist/rooms/lib/DateToString.js +3 -0
  96. package/dist/rooms/lib/DateToString.js.map +1 -0
  97. package/dist/rooms/lib/Json.d.ts +9 -0
  98. package/dist/rooms/lib/Json.js +18 -0
  99. package/dist/rooms/lib/Json.js.map +1 -0
  100. package/dist/rooms/lib/utils.d.ts +33 -0
  101. package/dist/rooms/lib/utils.js +122 -0
  102. package/dist/rooms/lib/utils.js.map +1 -0
  103. package/dist/rooms/protocol/AuthToken.d.ts +50 -0
  104. package/dist/rooms/protocol/AuthToken.js +49 -0
  105. package/dist/rooms/protocol/AuthToken.js.map +1 -0
  106. package/dist/rooms/protocol/Authentication.d.ts +22 -0
  107. package/dist/rooms/protocol/Authentication.js +3 -0
  108. package/dist/rooms/protocol/Authentication.js.map +1 -0
  109. package/dist/rooms/protocol/BaseActivitiesData.d.ts +4 -0
  110. package/dist/rooms/protocol/BaseActivitiesData.js +3 -0
  111. package/dist/rooms/protocol/BaseActivitiesData.js.map +1 -0
  112. package/dist/rooms/protocol/BaseRoomInfo.d.ts +6 -0
  113. package/dist/rooms/protocol/BaseRoomInfo.js +3 -0
  114. package/dist/rooms/protocol/BaseRoomInfo.js.map +1 -0
  115. package/dist/rooms/protocol/BaseUserMeta.d.ts +10 -0
  116. package/dist/rooms/protocol/BaseUserMeta.js +3 -0
  117. package/dist/rooms/protocol/BaseUserMeta.js.map +1 -0
  118. package/dist/rooms/protocol/ClientMsg.d.ts +41 -0
  119. package/dist/rooms/protocol/ClientMsg.js +13 -0
  120. package/dist/rooms/protocol/ClientMsg.js.map +1 -0
  121. package/dist/rooms/protocol/Comments.d.ts +146 -0
  122. package/dist/rooms/protocol/Comments.js +3 -0
  123. package/dist/rooms/protocol/Comments.js.map +1 -0
  124. package/dist/rooms/protocol/InboxNotifications.d.ts +49 -0
  125. package/dist/rooms/protocol/InboxNotifications.js +3 -0
  126. package/dist/rooms/protocol/InboxNotifications.js.map +1 -0
  127. package/dist/rooms/protocol/Op.d.ts +82 -0
  128. package/dist/rooms/protocol/Op.js +28 -0
  129. package/dist/rooms/protocol/Op.js.map +1 -0
  130. package/dist/rooms/protocol/SerializedCrdt.d.ts +40 -0
  131. package/dist/rooms/protocol/SerializedCrdt.js +19 -0
  132. package/dist/rooms/protocol/SerializedCrdt.js.map +1 -0
  133. package/dist/rooms/protocol/ServerMsg.d.ts +128 -0
  134. package/dist/rooms/protocol/ServerMsg.js +25 -0
  135. package/dist/rooms/protocol/ServerMsg.js.map +1 -0
  136. package/dist/rooms/protocol/VersionHistory.d.ts +9 -0
  137. package/dist/rooms/protocol/VersionHistory.js +3 -0
  138. package/dist/rooms/protocol/VersionHistory.js.map +1 -0
  139. package/dist/rooms/rooms.controller.d.ts +64 -0
  140. package/dist/rooms/rooms.controller.js +401 -0
  141. package/dist/rooms/rooms.controller.js.map +1 -0
  142. package/dist/rooms/rooms.gateway.d.ts +30 -0
  143. package/dist/rooms/rooms.gateway.js +189 -0
  144. package/dist/rooms/rooms.gateway.js.map +1 -0
  145. package/dist/rooms/rooms.guard.d.ts +9 -0
  146. package/dist/rooms/rooms.guard.js +48 -0
  147. package/dist/rooms/rooms.guard.js.map +1 -0
  148. package/dist/rooms/rooms.module.d.ts +2 -0
  149. package/dist/rooms/rooms.module.js +36 -0
  150. package/dist/rooms/rooms.module.js.map +1 -0
  151. package/dist/rooms/rooms.service.d.ts +51 -0
  152. package/dist/rooms/rooms.service.js +223 -0
  153. package/dist/rooms/rooms.service.js.map +1 -0
  154. package/dist/steedos/mongodb.controller.d.ts +13 -0
  155. package/dist/steedos/mongodb.controller.js +355 -0
  156. package/dist/steedos/mongodb.controller.js.map +1 -0
  157. package/dist/steedos/object.service.d.ts +6 -0
  158. package/dist/steedos/object.service.js +34 -0
  159. package/dist/steedos/object.service.js.map +1 -0
  160. package/dist/steedos/steedos.module.d.ts +2 -0
  161. package/dist/steedos/steedos.module.js +27 -0
  162. package/dist/steedos/steedos.module.js.map +1 -0
  163. package/dist/tables/meta.service.d.ts +6 -0
  164. package/dist/tables/meta.service.js +82 -0
  165. package/dist/tables/meta.service.js.map +1 -0
  166. package/dist/tables/records.service.d.ts +13 -0
  167. package/dist/tables/records.service.js +73 -0
  168. package/dist/tables/records.service.js.map +1 -0
  169. package/dist/tables/tables.controller.d.ts +24 -0
  170. package/dist/tables/tables.controller.js +414 -0
  171. package/dist/tables/tables.controller.js.map +1 -0
  172. package/dist/tables/tables.module.d.ts +2 -0
  173. package/dist/tables/tables.module.js +28 -0
  174. package/dist/tables/tables.module.js.map +1 -0
  175. package/package.json +112 -0
  176. package/public/ag-grid/locale_zh.js +595 -0
  177. package/public/grid/index.html +25 -0
  178. package/public/grid/index.js +207 -0
  179. package/public/grid/styles.css +4 -0
  180. package/public/pivot/index.html +30 -0
  181. package/public/pivot/index.js +109 -0
  182. package/public/pivot/styles.css +7 -0
  183. package/views/ag-grid/README.md +15 -0
  184. package/views/ag-grid/ag-grid.hbs +1099 -0
  185. package/views/devextreme/datagrid.hbs +240 -0
@@ -0,0 +1,401 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RoomsController = void 0;
16
+ const auth_guard_1 = require("../auth/auth.guard");
17
+ const rooms_service_1 = require("./rooms.service");
18
+ const common_1 = require("@nestjs/common");
19
+ const jwt_1 = require("@nestjs/jwt");
20
+ const rooms_guard_1 = require("./rooms.guard");
21
+ const rawBody = require("raw-body");
22
+ const files_service_1 = require("../files/files.service");
23
+ const rooms_gateway_1 = require("./rooms.gateway");
24
+ const ServerMsg_1 = require("./protocol/ServerMsg");
25
+ let RoomsController = class RoomsController {
26
+ constructor(roomsService, filesService, jwtService, roomsGateway) {
27
+ this.roomsService = roomsService;
28
+ this.filesService = filesService;
29
+ this.jwtService = jwtService;
30
+ this.roomsGateway = roomsGateway;
31
+ }
32
+ async getAuthToken(body, req) {
33
+ const user = req['user'];
34
+ const { room = 'undefined' } = body;
35
+ const payload = {
36
+ k: 'acc',
37
+ pid: user.space,
38
+ sid: user.space,
39
+ uid: user.user,
40
+ mcpr: 10,
41
+ perms: {},
42
+ jti: 'S4EMiESTDe6k',
43
+ };
44
+ payload.perms[room] = ['room:write', 'comments:write'];
45
+ const token = await this.jwtService.signAsync(payload);
46
+ return { token };
47
+ }
48
+ async getUsers(userIds) {
49
+ const users = await this.roomsService.getUsers(userIds);
50
+ return users;
51
+ }
52
+ async searchUsers(req, keyword, roomdId) {
53
+ const spaceId = req['jwt'].sid;
54
+ const users = await this.roomsService.searchUsers(spaceId, keyword, roomdId);
55
+ return users;
56
+ }
57
+ async getThreads(roomId) {
58
+ const threads = await this.roomsService.getThreads(roomId);
59
+ return {
60
+ data: threads,
61
+ inboxNotifications: [],
62
+ meta: {
63
+ nextCursor: null,
64
+ requestedAt: new Date().toISOString(),
65
+ permissionHints: {
66
+ [roomId]: ['room:write'],
67
+ },
68
+ },
69
+ deletedThreads: [],
70
+ deletedInboxNotifications: [],
71
+ };
72
+ }
73
+ async getThreadsDelta(roomId, since) {
74
+ const sinceData = new Date(since);
75
+ const threads = await this.roomsService.getThreads(roomId);
76
+ return {
77
+ data: threads,
78
+ inboxNotifications: [],
79
+ meta: {
80
+ nextCursor: null,
81
+ requestedAt: new Date().toISOString(),
82
+ permissionHints: {
83
+ [roomId]: ['room:write'],
84
+ },
85
+ },
86
+ deletedThreads: [],
87
+ deletedInboxNotifications: [],
88
+ };
89
+ }
90
+ async createThread(req, roomId, record) {
91
+ const userId = req['jwt'].uid;
92
+ const newThread = await this.roomsService.createThread({
93
+ id: record.id,
94
+ comment: record.comment,
95
+ roomId,
96
+ userId,
97
+ metadata: {},
98
+ resolved: false,
99
+ });
100
+ this.roomsGateway.broadcastToRoom(roomId, {
101
+ type: ServerMsg_1.ServerMsgCode.THREAD_CREATED,
102
+ threadId: record.id,
103
+ });
104
+ this.roomsGateway.broadcastToRoom(roomId, {
105
+ type: ServerMsg_1.ServerMsgCode.COMMENT_CREATED,
106
+ threadId: record.id,
107
+ commentId: record.comment.id,
108
+ });
109
+ return newThread;
110
+ }
111
+ async threadWithNotification(req, roomId, threadId) {
112
+ const thread = await this.roomsService.getThread(roomId, threadId);
113
+ return { thread };
114
+ }
115
+ async threadMarkasResolved(req, roomId, threadId) {
116
+ const newThread = await this.roomsService.updateThread(threadId, {
117
+ resolved: true,
118
+ });
119
+ this.roomsGateway.broadcastToRoom(roomId, {
120
+ type: ServerMsg_1.ServerMsgCode.THREAD_UPDATED,
121
+ threadId: threadId,
122
+ });
123
+ return newThread;
124
+ }
125
+ async threadMarkasUnResolved(req, roomId, threadId) {
126
+ const newThread = await this.roomsService.updateThread(threadId, {
127
+ resolved: false,
128
+ });
129
+ this.roomsGateway.broadcastToRoom(roomId, {
130
+ type: ServerMsg_1.ServerMsgCode.THREAD_UPDATED,
131
+ threadId: threadId,
132
+ });
133
+ return newThread;
134
+ }
135
+ async createComment(req, roomId, threadId, record) {
136
+ const userId = req['jwt'].uid;
137
+ const newComment = await this.roomsService.createComment({
138
+ id: record.id,
139
+ attachmentIds: record.attachmentIds,
140
+ body: record.body,
141
+ roomId,
142
+ threadId: threadId,
143
+ userId: userId,
144
+ });
145
+ await this.roomsService.updateThread(threadId);
146
+ this.roomsGateway.broadcastToRoom(roomId, {
147
+ type: ServerMsg_1.ServerMsgCode.COMMENT_CREATED,
148
+ threadId: threadId,
149
+ commentId: record.id,
150
+ });
151
+ return newComment;
152
+ }
153
+ async updateComment(req, roomId, threadId, commentId, record) {
154
+ const userId = req['jwt'].uid;
155
+ const newComment = await this.roomsService.updateComment(commentId, {
156
+ attachmentIds: record.attachmentIds,
157
+ body: record.body,
158
+ userId,
159
+ });
160
+ await this.roomsService.updateThread(threadId);
161
+ this.roomsGateway.broadcastToRoom(roomId, {
162
+ type: ServerMsg_1.ServerMsgCode.COMMENT_EDITED,
163
+ threadId: threadId,
164
+ commentId: commentId,
165
+ });
166
+ return newComment;
167
+ }
168
+ async deleteComment(req, roomId, threadId, commentId) {
169
+ await this.roomsService.deleteComment(commentId);
170
+ await this.roomsService.updateThread(threadId);
171
+ this.roomsGateway.broadcastToRoom(roomId, {
172
+ type: ServerMsg_1.ServerMsgCode.COMMENT_DELETED,
173
+ threadId: threadId,
174
+ commentId: commentId,
175
+ });
176
+ return {};
177
+ }
178
+ async presignedUrls(attachmentIds) {
179
+ const urls = await Promise.all(attachmentIds.map(async (attachmentId) => {
180
+ return this.filesService.getPreSignedUrl('cfs.files.filerecord', attachmentId);
181
+ }));
182
+ return { urls };
183
+ }
184
+ async uploadFile(roomId, attachmentId, fileName, fileSize, req) {
185
+ if (req.headers['content-type'] !== 'application/octet-stream') {
186
+ throw new common_1.HttpException('Invalid content type', common_1.HttpStatus.BAD_REQUEST);
187
+ }
188
+ const fileBuffer = await rawBody(req);
189
+ const file = {
190
+ buffer: fileBuffer,
191
+ originalname: fileName,
192
+ size: fileSize,
193
+ };
194
+ const metadata = {
195
+ _id: attachmentId,
196
+ objectName: 'b6_rooms',
197
+ recordId: roomId,
198
+ };
199
+ if (!file) {
200
+ throw new Error('未找到上传的文件');
201
+ }
202
+ const fileRecord = await this.filesService.uploadFile('cfs.files.filerecord', file, metadata);
203
+ return fileRecord;
204
+ }
205
+ async createReaction(req, roomId, threadId, commentId, emoji) {
206
+ const userId = req['jwt'].uid;
207
+ const newComment = await this.roomsService.createReaction(commentId, {
208
+ userId: userId,
209
+ emoji: emoji,
210
+ });
211
+ await this.roomsService.updateThread(threadId);
212
+ this.roomsGateway.broadcastToRoom(roomId, {
213
+ type: ServerMsg_1.ServerMsgCode.COMMENT_REACTION_ADDED,
214
+ threadId: threadId,
215
+ commentId: commentId,
216
+ emoji: emoji,
217
+ });
218
+ return newComment;
219
+ }
220
+ async deleteReaction(req, roomId, threadId, commentId, emoji) {
221
+ const userId = req['jwt'].uid;
222
+ await this.roomsService.deleteReaction(commentId, { emoji, userId });
223
+ await this.roomsService.updateThread(threadId);
224
+ this.roomsGateway.broadcastToRoom(roomId, {
225
+ type: ServerMsg_1.ServerMsgCode.COMMENT_REACTION_REMOVED,
226
+ threadId: threadId,
227
+ commentId: commentId,
228
+ emoji: emoji,
229
+ });
230
+ return {};
231
+ }
232
+ };
233
+ exports.RoomsController = RoomsController;
234
+ __decorate([
235
+ (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
236
+ (0, common_1.Post)('auth'),
237
+ __param(0, (0, common_1.Body)()),
238
+ __param(1, (0, common_1.Req)()),
239
+ __metadata("design:type", Function),
240
+ __metadata("design:paramtypes", [Object, Object]),
241
+ __metadata("design:returntype", Promise)
242
+ ], RoomsController.prototype, "getAuthToken", null);
243
+ __decorate([
244
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
245
+ (0, common_1.Get)('users'),
246
+ __param(0, (0, common_1.Query)('userIds')),
247
+ __metadata("design:type", Function),
248
+ __metadata("design:paramtypes", [Object]),
249
+ __metadata("design:returntype", Promise)
250
+ ], RoomsController.prototype, "getUsers", null);
251
+ __decorate([
252
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
253
+ (0, common_1.Get)('users/search'),
254
+ __param(0, (0, common_1.Req)()),
255
+ __param(1, (0, common_1.Query)('keyword')),
256
+ __param(2, (0, common_1.Query)('roomdId')),
257
+ __metadata("design:type", Function),
258
+ __metadata("design:paramtypes", [Object, String, String]),
259
+ __metadata("design:returntype", Promise)
260
+ ], RoomsController.prototype, "searchUsers", null);
261
+ __decorate([
262
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
263
+ (0, common_1.Get)('rooms/:roomId/threads'),
264
+ __param(0, (0, common_1.Param)('roomId')),
265
+ __metadata("design:type", Function),
266
+ __metadata("design:paramtypes", [String]),
267
+ __metadata("design:returntype", Promise)
268
+ ], RoomsController.prototype, "getThreads", null);
269
+ __decorate([
270
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
271
+ (0, common_1.Get)('rooms/:roomId/threads/delta'),
272
+ __param(0, (0, common_1.Param)('roomId')),
273
+ __param(1, (0, common_1.Query)('since')),
274
+ __metadata("design:type", Function),
275
+ __metadata("design:paramtypes", [String, String]),
276
+ __metadata("design:returntype", Promise)
277
+ ], RoomsController.prototype, "getThreadsDelta", null);
278
+ __decorate([
279
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
280
+ (0, common_1.Post)('rooms/:roomId/threads'),
281
+ __param(0, (0, common_1.Req)()),
282
+ __param(1, (0, common_1.Param)('roomId')),
283
+ __param(2, (0, common_1.Body)()),
284
+ __metadata("design:type", Function),
285
+ __metadata("design:paramtypes", [Object, String, Object]),
286
+ __metadata("design:returntype", Promise)
287
+ ], RoomsController.prototype, "createThread", null);
288
+ __decorate([
289
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
290
+ (0, common_1.Get)('rooms/:roomId/thread-with-notification/:threadId'),
291
+ __param(0, (0, common_1.Req)()),
292
+ __param(1, (0, common_1.Param)('roomId')),
293
+ __param(2, (0, common_1.Param)('threadId')),
294
+ __metadata("design:type", Function),
295
+ __metadata("design:paramtypes", [Object, String, String]),
296
+ __metadata("design:returntype", Promise)
297
+ ], RoomsController.prototype, "threadWithNotification", null);
298
+ __decorate([
299
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
300
+ (0, common_1.Post)('rooms/:roomId/threads/:threadId/mark-as-resolved'),
301
+ __param(0, (0, common_1.Req)()),
302
+ __param(1, (0, common_1.Param)('roomId')),
303
+ __param(2, (0, common_1.Param)('threadId')),
304
+ __metadata("design:type", Function),
305
+ __metadata("design:paramtypes", [Object, String, String]),
306
+ __metadata("design:returntype", Promise)
307
+ ], RoomsController.prototype, "threadMarkasResolved", null);
308
+ __decorate([
309
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
310
+ (0, common_1.Post)('rooms/:roomId/threads/:threadId/mark-as-unresolved'),
311
+ __param(0, (0, common_1.Req)()),
312
+ __param(1, (0, common_1.Param)('roomId')),
313
+ __param(2, (0, common_1.Param)('threadId')),
314
+ __metadata("design:type", Function),
315
+ __metadata("design:paramtypes", [Object, String, String]),
316
+ __metadata("design:returntype", Promise)
317
+ ], RoomsController.prototype, "threadMarkasUnResolved", null);
318
+ __decorate([
319
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
320
+ (0, common_1.Post)('rooms/:roomId/threads/:threadId/comments'),
321
+ __param(0, (0, common_1.Req)()),
322
+ __param(1, (0, common_1.Param)('roomId')),
323
+ __param(2, (0, common_1.Param)('threadId')),
324
+ __param(3, (0, common_1.Body)()),
325
+ __metadata("design:type", Function),
326
+ __metadata("design:paramtypes", [Object, String, String, Object]),
327
+ __metadata("design:returntype", Promise)
328
+ ], RoomsController.prototype, "createComment", null);
329
+ __decorate([
330
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
331
+ (0, common_1.Post)('rooms/:roomId/threads/:threadId/comments/:commentId'),
332
+ __param(0, (0, common_1.Req)()),
333
+ __param(1, (0, common_1.Param)('roomId')),
334
+ __param(2, (0, common_1.Param)('threadId')),
335
+ __param(3, (0, common_1.Param)('commentId')),
336
+ __param(4, (0, common_1.Body)()),
337
+ __metadata("design:type", Function),
338
+ __metadata("design:paramtypes", [Object, String, String, String, Object]),
339
+ __metadata("design:returntype", Promise)
340
+ ], RoomsController.prototype, "updateComment", null);
341
+ __decorate([
342
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
343
+ (0, common_1.Delete)('rooms/:roomId/threads/:threadId/comments/:commentId'),
344
+ __param(0, (0, common_1.Req)()),
345
+ __param(1, (0, common_1.Param)('roomId')),
346
+ __param(2, (0, common_1.Param)('threadId')),
347
+ __param(3, (0, common_1.Param)('commentId')),
348
+ __metadata("design:type", Function),
349
+ __metadata("design:paramtypes", [Object, String, String, String]),
350
+ __metadata("design:returntype", Promise)
351
+ ], RoomsController.prototype, "deleteComment", null);
352
+ __decorate([
353
+ (0, common_1.Post)('rooms/:roomId/attachments/presigned-urls'),
354
+ __param(0, (0, common_1.Body)('attachmentIds')),
355
+ __metadata("design:type", Function),
356
+ __metadata("design:paramtypes", [Array]),
357
+ __metadata("design:returntype", Promise)
358
+ ], RoomsController.prototype, "presignedUrls", null);
359
+ __decorate([
360
+ (0, common_1.Put)('rooms/:roomId/attachments/:attachmentId/upload/:fileName'),
361
+ __param(0, (0, common_1.Param)('roomId')),
362
+ __param(1, (0, common_1.Param)('attachmentId')),
363
+ __param(2, (0, common_1.Param)('fileName')),
364
+ __param(3, (0, common_1.Query)('fileSize')),
365
+ __param(4, (0, common_1.Req)()),
366
+ __metadata("design:type", Function),
367
+ __metadata("design:paramtypes", [String, String, String, Number, Object]),
368
+ __metadata("design:returntype", Promise)
369
+ ], RoomsController.prototype, "uploadFile", null);
370
+ __decorate([
371
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
372
+ (0, common_1.Post)('rooms/:roomId/threads/:threadId/comments/:commentId/reactions'),
373
+ __param(0, (0, common_1.Req)()),
374
+ __param(1, (0, common_1.Param)('roomId')),
375
+ __param(2, (0, common_1.Param)('threadId')),
376
+ __param(3, (0, common_1.Param)('commentId')),
377
+ __param(4, (0, common_1.Body)('emoji')),
378
+ __metadata("design:type", Function),
379
+ __metadata("design:paramtypes", [Object, String, String, String, String]),
380
+ __metadata("design:returntype", Promise)
381
+ ], RoomsController.prototype, "createReaction", null);
382
+ __decorate([
383
+ (0, common_1.UseGuards)(rooms_guard_1.RoomsGuard),
384
+ (0, common_1.Delete)('rooms/:roomId/threads/:threadId/comments/:commentId/reactions/:emoji'),
385
+ __param(0, (0, common_1.Req)()),
386
+ __param(1, (0, common_1.Param)('roomId')),
387
+ __param(2, (0, common_1.Param)('threadId')),
388
+ __param(3, (0, common_1.Param)('commentId')),
389
+ __param(4, (0, common_1.Param)('emoji')),
390
+ __metadata("design:type", Function),
391
+ __metadata("design:paramtypes", [Object, String, String, String, String]),
392
+ __metadata("design:returntype", Promise)
393
+ ], RoomsController.prototype, "deleteReaction", null);
394
+ exports.RoomsController = RoomsController = __decorate([
395
+ (0, common_1.Controller)('v2/c/'),
396
+ __metadata("design:paramtypes", [rooms_service_1.RoomsService,
397
+ files_service_1.FilesService,
398
+ jwt_1.JwtService,
399
+ rooms_gateway_1.RoomsGateway])
400
+ ], RoomsController);
401
+ //# sourceMappingURL=rooms.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rooms.controller.js","sourceRoot":"","sources":["../../src/rooms/rooms.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { OnGatewayConnection } from '@nestjs/websockets';
2
+ import { WebSocket, Server } from 'ws';
3
+ import { JwtService } from '@nestjs/jwt';
4
+ export declare class RoomsGateway implements OnGatewayConnection {
5
+ private jwtService;
6
+ server: Server;
7
+ private roomStates;
8
+ private redis;
9
+ private pubRedis;
10
+ constructor(jwtService: JwtService);
11
+ afterInit(): Promise<void>;
12
+ handleConnection(client: WebSocket, req: any): Promise<void>;
13
+ handleClientMessage(client: WebSocket, parsedMessage: any): Promise<void>;
14
+ handleJoinRoom(client: WebSocket, payload: {
15
+ roomId: string;
16
+ userId: string;
17
+ }): Promise<number>;
18
+ handleLeaveRoom(client: WebSocket, payload: {
19
+ roomId: string;
20
+ userId: string;
21
+ }): Promise<void>;
22
+ handleUpdatePresence(client: WebSocket, payload: {
23
+ roomId: string;
24
+ connectionId: number;
25
+ data: any;
26
+ }): Promise<void>;
27
+ broadcastToRoom(roomId: string, message: any): void;
28
+ private handleBroadcastedMessage;
29
+ getUserScopes(roomId: string, userId: string): Promise<string[]>;
30
+ }
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var _a, _b, _c;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RoomsGateway = void 0;
14
+ const websockets_1 = require("@nestjs/websockets");
15
+ const ws_1 = require("ws");
16
+ const ioredis_1 = require("ioredis");
17
+ const url = require("url");
18
+ const uuid_1 = require("uuid");
19
+ const ServerMsg_1 = require("./protocol/ServerMsg");
20
+ const jwt_1 = require("@nestjs/jwt");
21
+ let RoomsGateway = class RoomsGateway {
22
+ constructor(jwtService) {
23
+ this.jwtService = jwtService;
24
+ this.roomStates = new Map();
25
+ this.redis = new ioredis_1.default('redis://localhost:6379');
26
+ this.pubRedis = new ioredis_1.default('redis://localhost:6379');
27
+ }
28
+ async afterInit() {
29
+ console.log('Rooms Gateway Initialized with Redis');
30
+ this.redis.subscribe('rooms_channel', (err) => {
31
+ if (err) {
32
+ console.error('Failed to subscribe: ', err);
33
+ }
34
+ });
35
+ this.redis.on('message', (channel, message) => {
36
+ if (channel === 'rooms_channel') {
37
+ const parsedMessage = JSON.parse(message);
38
+ this.handleBroadcastedMessage(parsedMessage);
39
+ }
40
+ });
41
+ }
42
+ async handleConnection(client, req) {
43
+ const parsedUrl = url.parse(req.url, true);
44
+ const roomId = parsedUrl.query['roomId'];
45
+ const token = parsedUrl.query['tok'];
46
+ const jwt = await this.jwtService.decode(token);
47
+ const userId = jwt.uid;
48
+ if (userId && roomId) {
49
+ client.on('message', (message) => {
50
+ const messageStr = message.toString();
51
+ console.log('Received message from client: ', messageStr);
52
+ if (messageStr === 'ping') {
53
+ client.send('pong');
54
+ return;
55
+ }
56
+ const parsedMessage = JSON.parse(messageStr);
57
+ if (Array.isArray(parsedMessage)) {
58
+ parsedMessage.forEach((msg) => {
59
+ this.handleClientMessage(client, msg);
60
+ });
61
+ }
62
+ else if (typeof parsedMessage === 'object') {
63
+ this.handleClientMessage(client, parsedMessage);
64
+ }
65
+ });
66
+ client.on('close', () => {
67
+ this.handleLeaveRoom(client, { roomId, userId });
68
+ });
69
+ await this.handleJoinRoom(client, { roomId, userId });
70
+ }
71
+ else {
72
+ client.close();
73
+ }
74
+ }
75
+ async handleClientMessage(client, parsedMessage) {
76
+ console.log('Received message from client: ', parsedMessage);
77
+ if (parsedMessage.type === ServerMsg_1.ServerMsgCode.UPDATE_PRESENCE) {
78
+ this.handleUpdatePresence(client, parsedMessage);
79
+ }
80
+ }
81
+ async handleJoinRoom(client, payload) {
82
+ const { roomId, userId } = payload;
83
+ let roomState = this.roomStates.get(roomId);
84
+ if (!roomState) {
85
+ roomState = { roomId, connections: {} };
86
+ this.roomStates.set(roomId, roomState);
87
+ }
88
+ const connectionId = await this.pubRedis.incr(`room:${roomId}:connectionId`);
89
+ const nonce = (0, uuid_1.v4)();
90
+ roomState.connections[connectionId] = { userId, nonce, roomId, client };
91
+ await this.pubRedis.hset(`room:${roomId}:connections`, connectionId.toString(), JSON.stringify({ userId, nonce, roomId }));
92
+ client.connectionId = connectionId;
93
+ const users = await Promise.all(Object.keys(roomState.connections).map(async (connId) => {
94
+ const connection = roomState.connections[parseInt(connId)];
95
+ const roomId = connection.roomId;
96
+ const scopes = await this.getUserScopes(roomId, connection.userId);
97
+ return {
98
+ connectionId: parseInt(connId),
99
+ userId: connection.userId,
100
+ scopes,
101
+ };
102
+ }));
103
+ const roomStateResponse = {
104
+ type: ServerMsg_1.ServerMsgCode.ROOM_STATE,
105
+ actor: connectionId,
106
+ nonce: nonce,
107
+ scopes: await this.getUserScopes(roomId, userId),
108
+ users: users.reduce((acc, user) => {
109
+ acc[user.connectionId] = {
110
+ id: user.userId,
111
+ scopes: user.scopes,
112
+ };
113
+ return acc;
114
+ }, {}),
115
+ };
116
+ client.send(JSON.stringify(roomStateResponse));
117
+ this.broadcastToRoom(roomId, {
118
+ type: ServerMsg_1.ServerMsgCode.USER_JOINED,
119
+ actor: connectionId,
120
+ userId,
121
+ });
122
+ console.log(`User ${connectionId},${userId} has join room: ${roomId}`);
123
+ return connectionId;
124
+ }
125
+ async handleLeaveRoom(client, payload) {
126
+ const { roomId, userId } = payload;
127
+ const connectionId = client.connectionId;
128
+ const roomState = this.roomStates.get(roomId);
129
+ if (roomState && roomState.connections[connectionId]) {
130
+ delete roomState.connections[connectionId];
131
+ await this.pubRedis.hdel(`room:${roomId}:connections`, connectionId.toString());
132
+ if (Object.keys(roomState.connections).length === 0) {
133
+ this.roomStates.delete(roomId);
134
+ }
135
+ this.broadcastToRoom(roomId, {
136
+ type: ServerMsg_1.ServerMsgCode.USER_LEFT,
137
+ actor: connectionId,
138
+ });
139
+ console.log(`User ${connectionId},${userId} has left room: ${roomId}`);
140
+ }
141
+ }
142
+ async handleUpdatePresence(client, payload) {
143
+ }
144
+ broadcastToRoom(roomId, message) {
145
+ this.pubRedis.publish('rooms_channel', JSON.stringify({ roomId, message }));
146
+ }
147
+ handleBroadcastedMessage(parsedMessage) {
148
+ const { roomId, message } = parsedMessage;
149
+ const roomState = this.roomStates.get(roomId);
150
+ if (roomState) {
151
+ Object.keys(roomState.connections).forEach((connectionId) => {
152
+ const client = roomState.connections[connectionId].client;
153
+ if (client.readyState === ws_1.WebSocket.OPEN) {
154
+ client.send(JSON.stringify(message));
155
+ }
156
+ });
157
+ }
158
+ }
159
+ async getUserScopes(roomId, userId) {
160
+ return ['room:write', 'comments:write'];
161
+ }
162
+ };
163
+ exports.RoomsGateway = RoomsGateway;
164
+ __decorate([
165
+ (0, websockets_1.WebSocketServer)(),
166
+ __metadata("design:type", typeof (_a = typeof ws_1.Server !== "undefined" && ws_1.Server) === "function" ? _a : Object)
167
+ ], RoomsGateway.prototype, "server", void 0);
168
+ __decorate([
169
+ (0, websockets_1.SubscribeMessage)('leaveRoom'),
170
+ __metadata("design:type", Function),
171
+ __metadata("design:paramtypes", [typeof (_b = typeof ws_1.WebSocket !== "undefined" && ws_1.WebSocket) === "function" ? _b : Object, Object]),
172
+ __metadata("design:returntype", Promise)
173
+ ], RoomsGateway.prototype, "handleLeaveRoom", null);
174
+ __decorate([
175
+ (0, websockets_1.SubscribeMessage)('updatePresence'),
176
+ __metadata("design:type", Function),
177
+ __metadata("design:paramtypes", [typeof (_c = typeof ws_1.WebSocket !== "undefined" && ws_1.WebSocket) === "function" ? _c : Object, Object]),
178
+ __metadata("design:returntype", Promise)
179
+ ], RoomsGateway.prototype, "handleUpdatePresence", null);
180
+ exports.RoomsGateway = RoomsGateway = __decorate([
181
+ (0, websockets_1.WebSocketGateway)({
182
+ path: '/v7',
183
+ cors: {
184
+ origin: '*',
185
+ },
186
+ }),
187
+ __metadata("design:paramtypes", [jwt_1.JwtService])
188
+ ], RoomsGateway);
189
+ //# sourceMappingURL=rooms.gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rooms.gateway.js","sourceRoot":"","sources":["../../src/rooms/rooms.gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { RoomsService } from './rooms.service';
3
+ import { JwtService } from '@nestjs/jwt';
4
+ export declare class RoomsGuard implements CanActivate {
5
+ private roomsService;
6
+ private jwtService;
7
+ constructor(roomsService: RoomsService, jwtService: JwtService);
8
+ canActivate(context: ExecutionContext): Promise<boolean>;
9
+ }