@flusys/nestjs-task-manager 7.1.0 → 8.0.0-beta.1

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 (163) hide show
  1. package/config/index.d.ts +3 -3
  2. package/controllers/index.d.ts +5 -5
  3. package/controllers/task-board.controller.d.ts +3 -3
  4. package/controllers/task-comment.controller.d.ts +2 -2
  5. package/controllers/task-label.controller.d.ts +2 -2
  6. package/controllers/task-list.controller.d.ts +3 -3
  7. package/controllers/task.controller.d.ts +4 -4
  8. package/docs/index.d.ts +1 -1
  9. package/docs/task-manager-swagger.config.d.ts +1 -1
  10. package/dtos/index.d.ts +5 -5
  11. package/dtos/task-board.dto.d.ts +1 -1
  12. package/dtos/task.dto.d.ts +2 -2
  13. package/entities/index.d.ts +19 -19
  14. package/entities/task-board-with-company.entity.d.ts +1 -1
  15. package/fesm/234.js +1393 -0
  16. package/fesm/431.js +981 -0
  17. package/fesm/827.js +1054 -0
  18. package/fesm/988.js +881 -0
  19. package/fesm/config/index.js +156 -3
  20. package/fesm/controllers/index.js +21 -5
  21. package/fesm/docs/index.js +58 -1
  22. package/fesm/dtos/index.js +280 -5
  23. package/fesm/entities/index.js +26 -46
  24. package/fesm/gateways/index.js +288 -1
  25. package/fesm/index.js +440 -9
  26. package/fesm/interfaces/index.js +16 -2
  27. package/fesm/modules/index.js +210 -1
  28. package/fesm/runtime.js +85 -0
  29. package/fesm/services/index.js +53 -8
  30. package/gateways/index.d.ts +1 -1
  31. package/gateways/task-board.gateway.d.ts +3 -3
  32. package/index.d.ts +9 -9
  33. package/interfaces/index.d.ts +2 -2
  34. package/interfaces/task-manager-module.interface.d.ts +3 -3
  35. package/interfaces/task.interface.d.ts +2 -2
  36. package/modules/index.d.ts +1 -1
  37. package/modules/task-manager.module.d.ts +2 -2
  38. package/package.json +26 -36
  39. package/services/index.d.ts +8 -8
  40. package/services/task-activity.service.d.ts +1 -1
  41. package/services/task-board.service.d.ts +5 -5
  42. package/services/task-comment.service.d.ts +4 -4
  43. package/services/task-label.service.d.ts +4 -4
  44. package/services/task-list.service.d.ts +4 -4
  45. package/services/task-manager-config.service.d.ts +3 -3
  46. package/services/task-manager-datasource.provider.d.ts +3 -3
  47. package/services/task.service.d.ts +7 -7
  48. package/cjs/config/event-actions.js +0 -37
  49. package/cjs/config/index.js +0 -20
  50. package/cjs/config/message-keys.js +0 -92
  51. package/cjs/config/task-manager.constants.js +0 -11
  52. package/cjs/controllers/index.js +0 -22
  53. package/cjs/controllers/task-board.controller.js +0 -219
  54. package/cjs/controllers/task-board.controller.spec.js +0 -132
  55. package/cjs/controllers/task-comment.controller.js +0 -103
  56. package/cjs/controllers/task-comment.controller.spec.js +0 -86
  57. package/cjs/controllers/task-label.controller.js +0 -112
  58. package/cjs/controllers/task-label.controller.spec.js +0 -88
  59. package/cjs/controllers/task-list.controller.js +0 -158
  60. package/cjs/controllers/task-list.controller.spec.js +0 -112
  61. package/cjs/controllers/task.controller.js +0 -199
  62. package/cjs/controllers/task.controller.spec.js +0 -131
  63. package/cjs/docs/index.js +0 -18
  64. package/cjs/docs/task-manager-swagger.config.js +0 -43
  65. package/cjs/docs/task-manager-swagger.config.spec.js +0 -28
  66. package/cjs/dtos/index.js +0 -22
  67. package/cjs/dtos/task-board.dto.js +0 -310
  68. package/cjs/dtos/task-comment.dto.js +0 -131
  69. package/cjs/dtos/task-label.dto.js +0 -120
  70. package/cjs/dtos/task-list.dto.js +0 -198
  71. package/cjs/dtos/task.dto.js +0 -367
  72. package/cjs/entities/index.js +0 -72
  73. package/cjs/entities/index.spec.js +0 -30
  74. package/cjs/entities/task-activity.entity.js +0 -98
  75. package/cjs/entities/task-assignee.entity.js +0 -67
  76. package/cjs/entities/task-board-member.entity.js +0 -94
  77. package/cjs/entities/task-board-with-company.entity.js +0 -57
  78. package/cjs/entities/task-board.entity.js +0 -88
  79. package/cjs/entities/task-comment.entity.js +0 -80
  80. package/cjs/entities/task-label.entity.js +0 -72
  81. package/cjs/entities/task-list.entity.js +0 -104
  82. package/cjs/entities/task-task-label.entity.js +0 -67
  83. package/cjs/entities/task.entity.js +0 -151
  84. package/cjs/gateways/index.js +0 -18
  85. package/cjs/gateways/task-board.gateway.js +0 -167
  86. package/cjs/gateways/task-board.gateway.spec.js +0 -243
  87. package/cjs/index.js +0 -26
  88. package/cjs/interfaces/index.js +0 -19
  89. package/cjs/interfaces/task-manager-module.interface.js +0 -4
  90. package/cjs/interfaces/task.interface.js +0 -4
  91. package/cjs/modules/index.js +0 -18
  92. package/cjs/modules/task-manager.module.js +0 -135
  93. package/cjs/modules/task-manager.module.spec.js +0 -144
  94. package/cjs/services/index.js +0 -25
  95. package/cjs/services/task-activity.service.js +0 -76
  96. package/cjs/services/task-activity.service.spec.js +0 -125
  97. package/cjs/services/task-board.service.js +0 -247
  98. package/cjs/services/task-board.service.spec.js +0 -465
  99. package/cjs/services/task-comment.service.js +0 -103
  100. package/cjs/services/task-comment.service.spec.js +0 -160
  101. package/cjs/services/task-label.service.js +0 -97
  102. package/cjs/services/task-label.service.spec.js +0 -138
  103. package/cjs/services/task-list.service.js +0 -130
  104. package/cjs/services/task-list.service.spec.js +0 -284
  105. package/cjs/services/task-manager-config.service.js +0 -69
  106. package/cjs/services/task-manager-config.service.spec.js +0 -98
  107. package/cjs/services/task-manager-datasource.provider.js +0 -84
  108. package/cjs/services/task-manager-datasource.provider.spec.js +0 -131
  109. package/cjs/services/task.service.js +0 -398
  110. package/cjs/services/task.service.spec.js +0 -700
  111. package/fesm/config/event-actions.js +0 -16
  112. package/fesm/config/message-keys.js +0 -65
  113. package/fesm/config/task-manager.constants.js +0 -1
  114. package/fesm/controllers/task-board.controller.js +0 -209
  115. package/fesm/controllers/task-board.controller.spec.js +0 -128
  116. package/fesm/controllers/task-comment.controller.js +0 -93
  117. package/fesm/controllers/task-comment.controller.spec.js +0 -82
  118. package/fesm/controllers/task-label.controller.js +0 -102
  119. package/fesm/controllers/task-label.controller.spec.js +0 -84
  120. package/fesm/controllers/task-list.controller.js +0 -148
  121. package/fesm/controllers/task-list.controller.spec.js +0 -108
  122. package/fesm/controllers/task.controller.js +0 -189
  123. package/fesm/controllers/task.controller.spec.js +0 -127
  124. package/fesm/docs/task-manager-swagger.config.js +0 -33
  125. package/fesm/docs/task-manager-swagger.config.spec.js +0 -24
  126. package/fesm/dtos/task-board.dto.js +0 -277
  127. package/fesm/dtos/task-comment.dto.js +0 -110
  128. package/fesm/dtos/task-label.dto.js +0 -99
  129. package/fesm/dtos/task-list.dto.js +0 -174
  130. package/fesm/dtos/task.dto.js +0 -337
  131. package/fesm/entities/index.spec.js +0 -26
  132. package/fesm/entities/task-activity.entity.js +0 -88
  133. package/fesm/entities/task-assignee.entity.js +0 -57
  134. package/fesm/entities/task-board-member.entity.js +0 -76
  135. package/fesm/entities/task-board-with-company.entity.js +0 -47
  136. package/fesm/entities/task-board.entity.js +0 -78
  137. package/fesm/entities/task-comment.entity.js +0 -70
  138. package/fesm/entities/task-label.entity.js +0 -62
  139. package/fesm/entities/task-list.entity.js +0 -94
  140. package/fesm/entities/task-task-label.entity.js +0 -57
  141. package/fesm/entities/task.entity.js +0 -133
  142. package/fesm/gateways/task-board.gateway.js +0 -157
  143. package/fesm/gateways/task-board.gateway.spec.js +0 -239
  144. package/fesm/interfaces/task-manager-module.interface.js +0 -1
  145. package/fesm/interfaces/task.interface.js +0 -1
  146. package/fesm/modules/task-manager.module.js +0 -125
  147. package/fesm/modules/task-manager.module.spec.js +0 -140
  148. package/fesm/services/task-activity.service.js +0 -66
  149. package/fesm/services/task-activity.service.spec.js +0 -121
  150. package/fesm/services/task-board.service.js +0 -237
  151. package/fesm/services/task-board.service.spec.js +0 -461
  152. package/fesm/services/task-comment.service.js +0 -93
  153. package/fesm/services/task-comment.service.spec.js +0 -156
  154. package/fesm/services/task-label.service.js +0 -87
  155. package/fesm/services/task-label.service.spec.js +0 -134
  156. package/fesm/services/task-list.service.js +0 -120
  157. package/fesm/services/task-list.service.spec.js +0 -280
  158. package/fesm/services/task-manager-config.service.js +0 -59
  159. package/fesm/services/task-manager-config.service.spec.js +0 -94
  160. package/fesm/services/task-manager-datasource.provider.js +0 -74
  161. package/fesm/services/task-manager-datasource.provider.spec.js +0 -127
  162. package/fesm/services/task.service.js +0 -388
  163. package/fesm/services/task.service.spec.js +0 -696
@@ -1 +1,288 @@
1
- export * from './task-board.gateway';
1
+ import { envConfig } from "@flusys/nestjs-core/config";
2
+ import { ConnectedSocket, MessageBody, SubscribeMessage, WebSocketGateway, WebSocketServer } from "@nestjs/websockets";
3
+ import { Server, Socket } from "socket.io";
4
+ import * as __rspack_external__nestjs_common_a04939da from "@nestjs/common";
5
+ import * as __rspack_external__nestjs_jwt_50c0e0ae from "@nestjs/jwt";
6
+ export const __rspack_esm_id = 856;
7
+ export const __rspack_esm_ids = [856];
8
+ export const __webpack_modules__ = {
9
+ 924(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
10
+ const TASK_MANAGER_MODULE_OPTIONS = 'TASK_MANAGER_MODULE_OPTIONS';
11
+
12
+ __webpack_require__.d(__webpack_exports__, {
13
+ }, {
14
+ K: TASK_MANAGER_MODULE_OPTIONS
15
+ });
16
+
17
+
18
+ },
19
+ 603(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
20
+ /* import */ var _task_board_gateway_js__rspack_import_0 = __webpack_require__(736);
21
+
22
+
23
+ __webpack_require__.d(__webpack_exports__, {
24
+ M: () => (/* reexport safe */ _task_board_gateway_js__rspack_import_0.M)
25
+ });
26
+
27
+
28
+ },
29
+ 736(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
30
+
31
+ // EXPORTS
32
+ __webpack_require__.d(__webpack_exports__, {
33
+ M: () => (/* binding */ TaskBoardGateway)
34
+ });
35
+
36
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-core/config"
37
+
38
+ // EXTERNAL MODULE: external "@nestjs/common"
39
+ var common_ = __webpack_require__(157);
40
+ // EXTERNAL MODULE: external "@nestjs/jwt"
41
+ var jwt_ = __webpack_require__(125);
42
+ ;// CONCATENATED MODULE: external "@nestjs/websockets"
43
+
44
+ ;// CONCATENATED MODULE: external "socket.io"
45
+
46
+ // EXTERNAL MODULE: ./projects/nestjs-task-manager/src/services/task-manager-config.service.ts
47
+ var task_manager_config_service = __webpack_require__(973);
48
+ ;// CONCATENATED MODULE: ./projects/nestjs-task-manager/src/gateways/task-board.gateway.ts
49
+ function _ts_decorate(decorators, target, key, desc) {
50
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
52
+ r = Reflect.decorate(decorators, target, key, desc);
53
+ } else {
54
+ for(var i = decorators.length - 1; i >= 0; i--){
55
+ if (d = decorators[i]) {
56
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
57
+ }
58
+ }
59
+ }
60
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
61
+ }
62
+ function _ts_metadata(metadataKey, metadataValue) {
63
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
64
+ return Reflect.metadata(metadataKey, metadataValue);
65
+ }
66
+ }
67
+ function _ts_param(paramIndex, decorator) {
68
+ return function(target, key) {
69
+ decorator(target, key, paramIndex);
70
+ };
71
+ }
72
+
73
+
74
+
75
+
76
+
77
+
78
+ class TaskBoardGateway {
79
+ configService;
80
+ jwtService;
81
+ connectedUsers = new Map();
82
+ server;
83
+ constructor(configService, jwtService){
84
+ this.configService = configService;
85
+ this.jwtService = jwtService;
86
+ }
87
+ async handleConnection(client) {
88
+ try {
89
+ const token = this.extractToken(client);
90
+ if (!token) {
91
+ client.disconnect();
92
+ return;
93
+ }
94
+ const payload = this.verifyToken(token);
95
+ if (!payload) {
96
+ client.disconnect();
97
+ return;
98
+ }
99
+ client.data.userId = payload.id;
100
+ client.data.companyId = payload.companyId;
101
+ if (!this.connectedUsers.has(payload.id)) {
102
+ this.connectedUsers.set(payload.id, new Set());
103
+ }
104
+ this.connectedUsers.get(payload.id).add(client.id);
105
+ client.join(`user:${payload.id}`);
106
+ } catch {
107
+ client.disconnect();
108
+ }
109
+ }
110
+ handleDisconnect(client) {
111
+ const userId = client.data.userId;
112
+ if (userId) {
113
+ const sockets = this.connectedUsers.get(userId);
114
+ sockets?.delete(client.id);
115
+ if (sockets?.size === 0) {
116
+ this.connectedUsers.delete(userId);
117
+ }
118
+ }
119
+ }
120
+ handleJoinBoard(client, data) {
121
+ if (data?.boardId) {
122
+ client.join(`board:${data.boardId}`);
123
+ }
124
+ }
125
+ handleLeaveBoard(client, data) {
126
+ if (data?.boardId) {
127
+ client.leave(`board:${data.boardId}`);
128
+ }
129
+ }
130
+ emitToBoardRoom(boardId, event) {
131
+ this.server?.to(`board:${boardId}`).emit('board:event', event);
132
+ }
133
+ isUserOnline(userId) {
134
+ return this.connectedUsers.has(userId);
135
+ }
136
+ extractToken(client) {
137
+ const authToken = client.handshake.auth?.token;
138
+ if (authToken) return authToken;
139
+ const queryToken = client.handshake.query?.token;
140
+ if (typeof queryToken === 'string') return queryToken;
141
+ const authHeader = client.handshake.headers?.authorization;
142
+ if (authHeader?.startsWith('Bearer ')) return authHeader.substring(7);
143
+ return null;
144
+ }
145
+ verifyToken(token) {
146
+ try {
147
+ const secret = this.configService.getJwtSecret();
148
+ if (!secret) return null;
149
+ return this.jwtService.verify(token, {
150
+ secret,
151
+ algorithms: [
152
+ 'HS256'
153
+ ]
154
+ });
155
+ } catch {
156
+ return null;
157
+ }
158
+ }
159
+ }
160
+ _ts_decorate([
161
+ WebSocketServer(),
162
+ _ts_metadata("design:type", typeof Server === "undefined" ? Object : Server)
163
+ ], TaskBoardGateway.prototype, "server", void 0);
164
+ _ts_decorate([
165
+ SubscribeMessage('board:join'),
166
+ _ts_param(0, ConnectedSocket()),
167
+ _ts_param(1, MessageBody()),
168
+ _ts_metadata("design:type", Function),
169
+ _ts_metadata("design:paramtypes", [
170
+ typeof Socket === "undefined" ? Object : Socket,
171
+ Object
172
+ ]),
173
+ _ts_metadata("design:returntype", void 0)
174
+ ], TaskBoardGateway.prototype, "handleJoinBoard", null);
175
+ _ts_decorate([
176
+ SubscribeMessage('board:leave'),
177
+ _ts_param(0, ConnectedSocket()),
178
+ _ts_param(1, MessageBody()),
179
+ _ts_metadata("design:type", Function),
180
+ _ts_metadata("design:paramtypes", [
181
+ typeof Socket === "undefined" ? Object : Socket,
182
+ Object
183
+ ]),
184
+ _ts_metadata("design:returntype", void 0)
185
+ ], TaskBoardGateway.prototype, "handleLeaveBoard", null);
186
+ TaskBoardGateway = _ts_decorate([
187
+ WebSocketGateway({
188
+ namespace: '/task-boards',
189
+ cors: {
190
+ origin: envConfig.getOrigins(),
191
+ credentials: true
192
+ }
193
+ }),
194
+ _ts_param(0, (0,common_.Inject)(task_manager_config_service/* .TaskManagerConfigService */.O)),
195
+ _ts_param(1, (0,common_.Inject)(jwt_.JwtService)),
196
+ _ts_metadata("design:type", Function),
197
+ _ts_metadata("design:paramtypes", [
198
+ typeof task_manager_config_service/* .TaskManagerConfigService */.O === "undefined" ? Object : task_manager_config_service/* .TaskManagerConfigService */.O,
199
+ typeof jwt_.JwtService === "undefined" ? Object : jwt_.JwtService
200
+ ])
201
+ ], TaskBoardGateway);
202
+
203
+
204
+ },
205
+ 973(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
206
+ /* import */ var _nestjs_common__rspack_import_0 = __webpack_require__(157);
207
+ /* import */ var _config_task_manager_constants_js__rspack_import_1 = __webpack_require__(924);
208
+ function _ts_decorate(decorators, target, key, desc) {
209
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
210
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
211
+ r = Reflect.decorate(decorators, target, key, desc);
212
+ } else {
213
+ for(var i = decorators.length - 1; i >= 0; i--){
214
+ if (d = decorators[i]) {
215
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
216
+ }
217
+ }
218
+ }
219
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
220
+ }
221
+ function _ts_metadata(metadataKey, metadataValue) {
222
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
223
+ return Reflect.metadata(metadataKey, metadataValue);
224
+ }
225
+ }
226
+ function _ts_param(paramIndex, decorator) {
227
+ return function(target, key) {
228
+ decorator(target, key, paramIndex);
229
+ };
230
+ }
231
+
232
+
233
+ class TaskManagerConfigService {
234
+ options;
235
+ constructor(options){
236
+ this.options = options;
237
+ }
238
+ isCompanyFeatureEnabled() {
239
+ return this.options.bootstrapAppConfig?.enableCompanyFeature ?? false;
240
+ }
241
+ getDatabaseMode() {
242
+ return this.options.bootstrapAppConfig?.databaseMode ?? 'single';
243
+ }
244
+ isMultiTenant() {
245
+ return this.getDatabaseMode() === 'multi-tenant';
246
+ }
247
+ getJwtSecret() {
248
+ return this.options.config?.jwtSecret;
249
+ }
250
+ getOptions() {
251
+ return this.options;
252
+ }
253
+ }
254
+ TaskManagerConfigService = _ts_decorate([
255
+ (0,_nestjs_common__rspack_import_0.Injectable)(),
256
+ _ts_param(0, (0,_nestjs_common__rspack_import_0.Inject)(_config_task_manager_constants_js__rspack_import_1/* .TASK_MANAGER_MODULE_OPTIONS */.K)),
257
+ _ts_metadata("design:type", Function),
258
+ _ts_metadata("design:paramtypes", [
259
+ typeof TaskManagerModuleOptions === "undefined" ? Object : TaskManagerModuleOptions
260
+ ])
261
+ ], TaskManagerConfigService);
262
+
263
+ __webpack_require__.d(__webpack_exports__, {
264
+ O: () => (TaskManagerConfigService)
265
+ });
266
+
267
+
268
+ },
269
+ 157(module) {
270
+
271
+ module.exports = __rspack_external__nestjs_common_a04939da;
272
+
273
+
274
+ },
275
+ 125(module) {
276
+
277
+ module.exports = __rspack_external__nestjs_jwt_50c0e0ae;
278
+
279
+
280
+ },
281
+
282
+ };
283
+ import { __webpack_require__ } from '../runtime.js';
284
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
285
+ import * as __rspack_chunk_1 from './index.js';
286
+ __webpack_require__.C(__rspack_chunk_1);
287
+ var __webpack_exports__ = __webpack_exec__(603);var __webpack_exports__TaskBoardGateway = __webpack_exports__.M;
288
+ export { __webpack_exports__TaskBoardGateway as TaskBoardGateway };