@flusys/nestjs-shared 1.1.0-beta → 1.2.0-rc.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 (198) hide show
  1. package/README.md +146 -1330
  2. package/cjs/classes/api-controller.class.js +325 -49
  3. package/cjs/classes/api-service.class.js +271 -149
  4. package/cjs/classes/handle-custome-db.js +37 -0
  5. package/cjs/classes/index.js +2 -2
  6. package/cjs/classes/winston.logger.class.js +103 -70
  7. package/cjs/constants/index.js +15 -4
  8. package/cjs/constants/message-keys.js +68 -0
  9. package/cjs/constants/permissions.js +287 -0
  10. package/cjs/decorators/api-response.decorator.js +2 -3
  11. package/cjs/decorators/index.js +1 -0
  12. package/cjs/decorators/log-action.decorator.js +149 -0
  13. package/cjs/decorators/require-permission.decorator.js +5 -5
  14. package/cjs/dtos/delete.dto.js +10 -0
  15. package/cjs/dtos/filter-and-pagination.dto.js +24 -34
  16. package/cjs/dtos/get-by-ids.dto.js +65 -0
  17. package/cjs/dtos/identity-response.dto.js +4 -8
  18. package/cjs/dtos/index.js +1 -0
  19. package/cjs/dtos/pagination.dto.js +4 -8
  20. package/cjs/dtos/response-payload.dto.js +68 -112
  21. package/cjs/entities/identity.js +12 -6
  22. package/cjs/entities/index.js +1 -0
  23. package/cjs/entities/raw-type.js +4 -0
  24. package/cjs/entities/user-root.js +15 -15
  25. package/cjs/enums/index.js +20 -0
  26. package/cjs/enums/notification-type.enum.js +17 -0
  27. package/cjs/enums/participant-status.enum.js +17 -0
  28. package/cjs/enums/recurrence-type.enum.js +18 -0
  29. package/cjs/exceptions/base-app.exception.js +151 -0
  30. package/cjs/exceptions/index.js +1 -0
  31. package/cjs/exceptions/permission.exception.js +13 -9
  32. package/cjs/filters/global-exception.filter.js +279 -0
  33. package/cjs/filters/index.js +18 -0
  34. package/cjs/guards/jwt-auth.guard.js +4 -1
  35. package/cjs/guards/permission.guard.js +88 -148
  36. package/cjs/index.js +2 -0
  37. package/cjs/interceptors/idempotency.interceptor.js +1 -1
  38. package/cjs/interceptors/index.js +1 -4
  39. package/cjs/interceptors/set-user-field-on-body.interceptor.js +60 -0
  40. package/cjs/interceptors/slug.interceptor.js +30 -9
  41. package/cjs/interfaces/datasource.interface.js +4 -0
  42. package/cjs/interfaces/event-manager-adapter.interface.js +11 -0
  43. package/cjs/interfaces/index.js +4 -2
  44. package/cjs/interfaces/module-config.interface.js +4 -0
  45. package/cjs/interfaces/notification-adapter.interface.js +11 -0
  46. package/cjs/interfaces/permission.interface.js +1 -1
  47. package/cjs/middlewares/logger.middleware.js +133 -115
  48. package/cjs/modules/cache/cache.module.js +3 -3
  49. package/cjs/modules/datasource/index.js +0 -1
  50. package/cjs/modules/datasource/multi-tenant-datasource.service.js +60 -183
  51. package/cjs/modules/utils/utils.service.js +27 -206
  52. package/cjs/utils/date-time.util.js +94 -0
  53. package/cjs/utils/html-sanitizer.util.js +64 -0
  54. package/cjs/utils/index.js +5 -1
  55. package/cjs/utils/query-helpers.util.js +60 -0
  56. package/cjs/utils/request.util.js +96 -0
  57. package/cjs/utils/string.util.js +63 -0
  58. package/classes/api-controller.class.d.ts +16 -8
  59. package/classes/api-service.class.d.ts +30 -25
  60. package/classes/handle-custome-db.d.ts +3 -0
  61. package/classes/index.d.ts +2 -2
  62. package/classes/winston.logger.class.d.ts +1 -0
  63. package/constants/index.d.ts +2 -1
  64. package/constants/message-keys.d.ts +45 -0
  65. package/constants/permissions.d.ts +306 -0
  66. package/decorators/api-response.decorator.d.ts +1 -1
  67. package/decorators/current-user.decorator.d.ts +1 -1
  68. package/decorators/index.d.ts +1 -0
  69. package/decorators/log-action.decorator.d.ts +8 -0
  70. package/decorators/require-permission.decorator.d.ts +2 -2
  71. package/dtos/delete.dto.d.ts +1 -0
  72. package/dtos/filter-and-pagination.dto.d.ts +0 -2
  73. package/dtos/get-by-ids.dto.d.ts +4 -0
  74. package/dtos/index.d.ts +1 -0
  75. package/dtos/response-payload.dto.d.ts +8 -20
  76. package/entities/index.d.ts +1 -0
  77. package/entities/raw-type.d.ts +1 -0
  78. package/enums/index.d.ts +3 -0
  79. package/enums/notification-type.enum.d.ts +6 -0
  80. package/enums/participant-status.enum.d.ts +6 -0
  81. package/enums/recurrence-type.enum.d.ts +7 -0
  82. package/exceptions/base-app.exception.d.ts +41 -0
  83. package/exceptions/index.d.ts +1 -0
  84. package/exceptions/permission.exception.d.ts +2 -2
  85. package/fesm/classes/api-controller.class.js +326 -50
  86. package/fesm/classes/api-service.class.js +274 -152
  87. package/fesm/classes/handle-custome-db.js +19 -0
  88. package/fesm/classes/index.js +3 -2
  89. package/fesm/classes/winston.logger.class.js +100 -68
  90. package/fesm/constants/index.js +4 -1
  91. package/fesm/constants/message-keys.js +49 -0
  92. package/fesm/constants/permissions.js +200 -0
  93. package/fesm/decorators/api-response.decorator.js +3 -21
  94. package/fesm/decorators/index.js +1 -0
  95. package/fesm/decorators/log-action.decorator.js +139 -0
  96. package/fesm/decorators/require-permission.decorator.js +17 -65
  97. package/fesm/dtos/delete.dto.js +12 -2
  98. package/fesm/dtos/filter-and-pagination.dto.js +26 -47
  99. package/fesm/dtos/get-by-ids.dto.js +55 -0
  100. package/fesm/dtos/identity-response.dto.js +4 -8
  101. package/fesm/dtos/index.js +1 -0
  102. package/fesm/dtos/pagination.dto.js +4 -8
  103. package/fesm/dtos/response-payload.dto.js +68 -103
  104. package/fesm/entities/identity.js +12 -6
  105. package/fesm/entities/index.js +1 -0
  106. package/fesm/entities/raw-type.js +1 -0
  107. package/fesm/entities/user-root.js +15 -15
  108. package/fesm/enums/index.js +3 -0
  109. package/fesm/enums/notification-type.enum.js +7 -0
  110. package/fesm/enums/participant-status.enum.js +7 -0
  111. package/fesm/enums/recurrence-type.enum.js +8 -0
  112. package/fesm/exceptions/base-app.exception.js +115 -0
  113. package/fesm/exceptions/index.js +1 -0
  114. package/fesm/exceptions/permission.exception.js +16 -18
  115. package/fesm/filters/global-exception.filter.js +269 -0
  116. package/fesm/filters/index.js +1 -0
  117. package/fesm/guards/jwt-auth.guard.js +5 -2
  118. package/fesm/guards/permission.guard.js +90 -150
  119. package/fesm/index.js +2 -0
  120. package/fesm/interceptors/idempotency.interceptor.js +2 -2
  121. package/fesm/interceptors/index.js +1 -4
  122. package/fesm/interceptors/set-user-field-on-body.interceptor.js +39 -0
  123. package/fesm/interceptors/slug.interceptor.js +31 -10
  124. package/fesm/interfaces/datasource.interface.js +1 -0
  125. package/fesm/interfaces/event-manager-adapter.interface.js +1 -0
  126. package/fesm/interfaces/index.js +4 -2
  127. package/fesm/interfaces/module-config.interface.js +5 -0
  128. package/fesm/interfaces/notification-adapter.interface.js +1 -0
  129. package/fesm/interfaces/permission.interface.js +1 -3
  130. package/fesm/middlewares/logger.middleware.js +133 -109
  131. package/fesm/modules/cache/cache.module.js +2 -2
  132. package/fesm/modules/datasource/index.js +0 -1
  133. package/fesm/modules/datasource/multi-tenant-datasource.service.js +61 -184
  134. package/fesm/modules/utils/utils.service.js +27 -206
  135. package/fesm/utils/date-time.util.js +70 -0
  136. package/fesm/utils/html-sanitizer.util.js +69 -0
  137. package/fesm/utils/index.js +5 -1
  138. package/fesm/utils/query-helpers.util.js +85 -0
  139. package/fesm/utils/request.util.js +81 -0
  140. package/fesm/utils/string.util.js +71 -0
  141. package/filters/global-exception.filter.d.ts +9 -0
  142. package/filters/index.d.ts +1 -0
  143. package/guards/permission.guard.d.ts +4 -6
  144. package/index.d.ts +2 -0
  145. package/interceptors/idempotency.interceptor.d.ts +1 -1
  146. package/interceptors/index.d.ts +1 -4
  147. package/interceptors/set-user-field-on-body.interceptor.d.ts +5 -0
  148. package/interceptors/slug.interceptor.d.ts +2 -1
  149. package/interfaces/api.interface.d.ts +4 -2
  150. package/interfaces/datasource.interface.d.ts +5 -0
  151. package/interfaces/event-manager-adapter.interface.d.ts +43 -0
  152. package/interfaces/identity.interface.d.ts +4 -4
  153. package/interfaces/index.d.ts +4 -2
  154. package/interfaces/logged-user-info.interface.d.ts +0 -2
  155. package/interfaces/module-config.interface.d.ts +6 -0
  156. package/interfaces/notification-adapter.interface.d.ts +21 -0
  157. package/interfaces/permission.interface.d.ts +13 -9
  158. package/middlewares/logger.middleware.d.ts +2 -2
  159. package/modules/datasource/index.d.ts +0 -1
  160. package/modules/datasource/multi-tenant-datasource.service.d.ts +5 -16
  161. package/modules/utils/utils.service.d.ts +3 -14
  162. package/package.json +21 -14
  163. package/utils/date-time.util.d.ts +8 -0
  164. package/utils/html-sanitizer.util.d.ts +2 -0
  165. package/utils/index.d.ts +5 -1
  166. package/utils/query-helpers.util.d.ts +16 -0
  167. package/utils/request.util.d.ts +6 -0
  168. package/utils/string.util.d.ts +2 -0
  169. package/cjs/classes/request-scoped-api.service.js +0 -61
  170. package/cjs/classes/winston-logger-adapter.class.js +0 -121
  171. package/cjs/interceptors/query-performance.interceptor.js +0 -66
  172. package/cjs/interceptors/set-create-by-on-body.interceptor.js +0 -40
  173. package/cjs/interceptors/set-delete-by-on-body.interceptor.js +0 -40
  174. package/cjs/interceptors/set-update-by-on-body.interceptor.js +0 -40
  175. package/cjs/interfaces/base-query.interface.js +0 -6
  176. package/cjs/interfaces/logger.interface.js +0 -7
  177. package/cjs/modules/datasource/datasource.module.js +0 -120
  178. package/cjs/utils/error-handler.util.js +0 -67
  179. package/classes/request-scoped-api.service.d.ts +0 -13
  180. package/classes/winston-logger-adapter.class.d.ts +0 -20
  181. package/fesm/classes/request-scoped-api.service.js +0 -51
  182. package/fesm/classes/winston-logger-adapter.class.js +0 -124
  183. package/fesm/interceptors/query-performance.interceptor.js +0 -56
  184. package/fesm/interceptors/set-create-by-on-body.interceptor.js +0 -30
  185. package/fesm/interceptors/set-delete-by-on-body.interceptor.js +0 -30
  186. package/fesm/interceptors/set-update-by-on-body.interceptor.js +0 -30
  187. package/fesm/interfaces/base-query.interface.js +0 -3
  188. package/fesm/interfaces/logger.interface.js +0 -4
  189. package/fesm/modules/datasource/datasource.module.js +0 -110
  190. package/fesm/utils/error-handler.util.js +0 -59
  191. package/interceptors/query-performance.interceptor.d.ts +0 -8
  192. package/interceptors/set-create-by-on-body.interceptor.d.ts +0 -5
  193. package/interceptors/set-delete-by-on-body.interceptor.d.ts +0 -5
  194. package/interceptors/set-update-by-on-body.interceptor.d.ts +0 -5
  195. package/interfaces/base-query.interface.d.ts +0 -7
  196. package/interfaces/logger.interface.d.ts +0 -7
  197. package/modules/datasource/datasource.module.d.ts +0 -18
  198. package/utils/error-handler.util.d.ts +0 -24
@@ -0,0 +1,306 @@
1
+ export declare const USER_PERMISSIONS: {
2
+ readonly CREATE: "user.create";
3
+ readonly READ: "user.read";
4
+ readonly UPDATE: "user.update";
5
+ readonly DELETE: "user.delete";
6
+ };
7
+ export declare const COMPANY_PERMISSIONS: {
8
+ readonly CREATE: "company.create";
9
+ readonly READ: "company.read";
10
+ readonly UPDATE: "company.update";
11
+ readonly DELETE: "company.delete";
12
+ };
13
+ export declare const BRANCH_PERMISSIONS: {
14
+ readonly CREATE: "branch.create";
15
+ readonly READ: "branch.read";
16
+ readonly UPDATE: "branch.update";
17
+ readonly DELETE: "branch.delete";
18
+ };
19
+ export declare const ACTION_PERMISSIONS: {
20
+ readonly CREATE: "action.create";
21
+ readonly READ: "action.read";
22
+ readonly UPDATE: "action.update";
23
+ readonly DELETE: "action.delete";
24
+ };
25
+ export declare const ROLE_PERMISSIONS: {
26
+ readonly CREATE: "role.create";
27
+ readonly READ: "role.read";
28
+ readonly UPDATE: "role.update";
29
+ readonly DELETE: "role.delete";
30
+ };
31
+ export declare const ROLE_ACTION_PERMISSIONS: {
32
+ readonly READ: "role-action.read";
33
+ readonly ASSIGN: "role-action.assign";
34
+ };
35
+ export declare const USER_ROLE_PERMISSIONS: {
36
+ readonly READ: "user-role.read";
37
+ readonly ASSIGN: "user-role.assign";
38
+ };
39
+ export declare const USER_ACTION_PERMISSIONS: {
40
+ readonly READ: "user-action.read";
41
+ readonly ASSIGN: "user-action.assign";
42
+ };
43
+ export declare const COMPANY_ACTION_PERMISSIONS: {
44
+ readonly READ: "company-action.read";
45
+ readonly ASSIGN: "company-action.assign";
46
+ };
47
+ export declare const FILE_PERMISSIONS: {
48
+ readonly CREATE: "file.create";
49
+ readonly READ: "file.read";
50
+ readonly UPDATE: "file.update";
51
+ readonly DELETE: "file.delete";
52
+ };
53
+ export declare const FOLDER_PERMISSIONS: {
54
+ readonly CREATE: "folder.create";
55
+ readonly READ: "folder.read";
56
+ readonly UPDATE: "folder.update";
57
+ readonly DELETE: "folder.delete";
58
+ };
59
+ export declare const STORAGE_CONFIG_PERMISSIONS: {
60
+ readonly CREATE: "storage-config.create";
61
+ readonly READ: "storage-config.read";
62
+ readonly UPDATE: "storage-config.update";
63
+ readonly DELETE: "storage-config.delete";
64
+ };
65
+ export declare const UPLOAD_CONFIG_PERMISSIONS: {
66
+ readonly DELETE: "upload-config.delete";
67
+ };
68
+ export declare const EMAIL_CONFIG_PERMISSIONS: {
69
+ readonly CREATE: "email-config.create";
70
+ readonly READ: "email-config.read";
71
+ readonly UPDATE: "email-config.update";
72
+ readonly DELETE: "email-config.delete";
73
+ };
74
+ export declare const EMAIL_TEMPLATE_PERMISSIONS: {
75
+ readonly CREATE: "email-template.create";
76
+ readonly READ: "email-template.read";
77
+ readonly UPDATE: "email-template.update";
78
+ readonly DELETE: "email-template.delete";
79
+ };
80
+ export declare const FORM_PERMISSIONS: {
81
+ readonly CREATE: "form.create";
82
+ readonly READ: "form.read";
83
+ readonly UPDATE: "form.update";
84
+ readonly DELETE: "form.delete";
85
+ };
86
+ export declare const FORM_RESULT_PERMISSIONS: {
87
+ readonly CREATE: "form-result.create";
88
+ readonly READ: "form-result.read";
89
+ readonly UPDATE: "form-result.update";
90
+ readonly DELETE: "form-result.delete";
91
+ };
92
+ export declare const EVENT_PERMISSIONS: {
93
+ readonly CREATE: "event.create";
94
+ readonly READ: "event.read";
95
+ readonly UPDATE: "event.update";
96
+ readonly DELETE: "event.delete";
97
+ };
98
+ export declare const NOTIFICATION_PERMISSIONS: {
99
+ readonly CREATE: "notification.create";
100
+ readonly READ: "notification.read";
101
+ readonly UPDATE: "notification.update";
102
+ readonly DELETE: "notification.delete";
103
+ };
104
+ export declare const LANGUAGE_PERMISSIONS: {
105
+ readonly CREATE: "language.create";
106
+ readonly READ: "language.read";
107
+ readonly UPDATE: "language.update";
108
+ readonly DELETE: "language.delete";
109
+ };
110
+ export declare const TRANSLATION_KEY_PERMISSIONS: {
111
+ readonly CREATE: "translation-key.create";
112
+ readonly READ: "translation-key.read";
113
+ readonly UPDATE: "translation-key.update";
114
+ readonly DELETE: "translation-key.delete";
115
+ };
116
+ export declare const TRANSLATION_PERMISSIONS: {
117
+ readonly CREATE: "translation.create";
118
+ readonly READ: "translation.read";
119
+ readonly UPDATE: "translation.update";
120
+ readonly DELETE: "translation.delete";
121
+ };
122
+ export declare const TASK_BOARD_PERMISSIONS: {
123
+ readonly CREATE: "task-board.create";
124
+ readonly READ: "task-board.read";
125
+ readonly UPDATE: "task-board.update";
126
+ readonly DELETE: "task-board.delete";
127
+ readonly MANAGE_MEMBERS: "task-board.manage-members";
128
+ };
129
+ export declare const TASK_LIST_PERMISSIONS: {
130
+ readonly CREATE: "task-list.create";
131
+ readonly READ: "task-list.read";
132
+ readonly UPDATE: "task-list.update";
133
+ readonly DELETE: "task-list.delete";
134
+ };
135
+ export declare const TASK_PERMISSIONS: {
136
+ readonly CREATE: "task.create";
137
+ readonly READ: "task.read";
138
+ readonly UPDATE: "task.update";
139
+ readonly DELETE: "task.delete";
140
+ readonly MOVE: "task.move";
141
+ readonly ASSIGN: "task.assign";
142
+ };
143
+ export declare const TASK_LABEL_PERMISSIONS: {
144
+ readonly CREATE: "task-label.create";
145
+ readonly READ: "task-label.read";
146
+ readonly UPDATE: "task-label.update";
147
+ readonly DELETE: "task-label.delete";
148
+ };
149
+ export declare const TASK_COMMENT_PERMISSIONS: {
150
+ readonly CREATE: "task-comment.create";
151
+ readonly READ: "task-comment.read";
152
+ readonly DELETE: "task-comment.delete";
153
+ };
154
+ export declare const PERMISSIONS: {
155
+ readonly USER: {
156
+ readonly CREATE: "user.create";
157
+ readonly READ: "user.read";
158
+ readonly UPDATE: "user.update";
159
+ readonly DELETE: "user.delete";
160
+ };
161
+ readonly COMPANY: {
162
+ readonly CREATE: "company.create";
163
+ readonly READ: "company.read";
164
+ readonly UPDATE: "company.update";
165
+ readonly DELETE: "company.delete";
166
+ };
167
+ readonly BRANCH: {
168
+ readonly CREATE: "branch.create";
169
+ readonly READ: "branch.read";
170
+ readonly UPDATE: "branch.update";
171
+ readonly DELETE: "branch.delete";
172
+ };
173
+ readonly ACTION: {
174
+ readonly CREATE: "action.create";
175
+ readonly READ: "action.read";
176
+ readonly UPDATE: "action.update";
177
+ readonly DELETE: "action.delete";
178
+ };
179
+ readonly ROLE: {
180
+ readonly CREATE: "role.create";
181
+ readonly READ: "role.read";
182
+ readonly UPDATE: "role.update";
183
+ readonly DELETE: "role.delete";
184
+ };
185
+ readonly ROLE_ACTION: {
186
+ readonly READ: "role-action.read";
187
+ readonly ASSIGN: "role-action.assign";
188
+ };
189
+ readonly USER_ROLE: {
190
+ readonly READ: "user-role.read";
191
+ readonly ASSIGN: "user-role.assign";
192
+ };
193
+ readonly USER_ACTION: {
194
+ readonly READ: "user-action.read";
195
+ readonly ASSIGN: "user-action.assign";
196
+ };
197
+ readonly COMPANY_ACTION: {
198
+ readonly READ: "company-action.read";
199
+ readonly ASSIGN: "company-action.assign";
200
+ };
201
+ readonly FILE: {
202
+ readonly CREATE: "file.create";
203
+ readonly READ: "file.read";
204
+ readonly UPDATE: "file.update";
205
+ readonly DELETE: "file.delete";
206
+ };
207
+ readonly FOLDER: {
208
+ readonly CREATE: "folder.create";
209
+ readonly READ: "folder.read";
210
+ readonly UPDATE: "folder.update";
211
+ readonly DELETE: "folder.delete";
212
+ };
213
+ readonly STORAGE_CONFIG: {
214
+ readonly CREATE: "storage-config.create";
215
+ readonly READ: "storage-config.read";
216
+ readonly UPDATE: "storage-config.update";
217
+ readonly DELETE: "storage-config.delete";
218
+ };
219
+ readonly EMAIL_CONFIG: {
220
+ readonly CREATE: "email-config.create";
221
+ readonly READ: "email-config.read";
222
+ readonly UPDATE: "email-config.update";
223
+ readonly DELETE: "email-config.delete";
224
+ };
225
+ readonly EMAIL_TEMPLATE: {
226
+ readonly CREATE: "email-template.create";
227
+ readonly READ: "email-template.read";
228
+ readonly UPDATE: "email-template.update";
229
+ readonly DELETE: "email-template.delete";
230
+ };
231
+ readonly FORM: {
232
+ readonly CREATE: "form.create";
233
+ readonly READ: "form.read";
234
+ readonly UPDATE: "form.update";
235
+ readonly DELETE: "form.delete";
236
+ };
237
+ readonly FORM_RESULT: {
238
+ readonly CREATE: "form-result.create";
239
+ readonly READ: "form-result.read";
240
+ readonly UPDATE: "form-result.update";
241
+ readonly DELETE: "form-result.delete";
242
+ };
243
+ readonly EVENT: {
244
+ readonly CREATE: "event.create";
245
+ readonly READ: "event.read";
246
+ readonly UPDATE: "event.update";
247
+ readonly DELETE: "event.delete";
248
+ };
249
+ readonly NOTIFICATION: {
250
+ readonly CREATE: "notification.create";
251
+ readonly READ: "notification.read";
252
+ readonly UPDATE: "notification.update";
253
+ readonly DELETE: "notification.delete";
254
+ };
255
+ readonly LANGUAGE: {
256
+ readonly CREATE: "language.create";
257
+ readonly READ: "language.read";
258
+ readonly UPDATE: "language.update";
259
+ readonly DELETE: "language.delete";
260
+ };
261
+ readonly TRANSLATION_KEY: {
262
+ readonly CREATE: "translation-key.create";
263
+ readonly READ: "translation-key.read";
264
+ readonly UPDATE: "translation-key.update";
265
+ readonly DELETE: "translation-key.delete";
266
+ };
267
+ readonly TRANSLATION: {
268
+ readonly CREATE: "translation.create";
269
+ readonly READ: "translation.read";
270
+ readonly UPDATE: "translation.update";
271
+ readonly DELETE: "translation.delete";
272
+ };
273
+ readonly TASK_BOARD: {
274
+ readonly CREATE: "task-board.create";
275
+ readonly READ: "task-board.read";
276
+ readonly UPDATE: "task-board.update";
277
+ readonly DELETE: "task-board.delete";
278
+ readonly MANAGE_MEMBERS: "task-board.manage-members";
279
+ };
280
+ readonly TASK_LIST: {
281
+ readonly CREATE: "task-list.create";
282
+ readonly READ: "task-list.read";
283
+ readonly UPDATE: "task-list.update";
284
+ readonly DELETE: "task-list.delete";
285
+ };
286
+ readonly TASK: {
287
+ readonly CREATE: "task.create";
288
+ readonly READ: "task.read";
289
+ readonly UPDATE: "task.update";
290
+ readonly DELETE: "task.delete";
291
+ readonly MOVE: "task.move";
292
+ readonly ASSIGN: "task.assign";
293
+ };
294
+ readonly TASK_LABEL: {
295
+ readonly CREATE: "task-label.create";
296
+ readonly READ: "task-label.read";
297
+ readonly UPDATE: "task-label.update";
298
+ readonly DELETE: "task-label.delete";
299
+ };
300
+ readonly TASK_COMMENT: {
301
+ readonly CREATE: "task-comment.create";
302
+ readonly READ: "task-comment.read";
303
+ readonly DELETE: "task-comment.delete";
304
+ };
305
+ };
306
+ export type PermissionCode = (typeof PERMISSIONS)[keyof typeof PERMISSIONS][keyof (typeof PERMISSIONS)[keyof typeof PERMISSIONS]];
@@ -1,3 +1,3 @@
1
1
  import { Type } from '@nestjs/common';
2
- export type ArrayResponseType = 'list' | 'bulk';
2
+ export type ArrayResponseType = 'list' | 'bulk' | 'single';
3
3
  export declare const ApiResponseDto: <T extends Type<unknown>>(dto: T, isArray?: boolean, arrayType?: ArrayResponseType) => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -1 +1 @@
1
- export declare const CurrentUser: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>>)[]) => ParameterDecorator;
1
+ export declare const CurrentUser: (...dataOrPipes: (string | import("@nestjs/common").PipeTransform<any, any> | import("@nestjs/common").Type<import("@nestjs/common").PipeTransform<any, any>> | undefined)[]) => ParameterDecorator;
@@ -1,4 +1,5 @@
1
1
  export * from './api-response.decorator';
2
2
  export * from './current-user.decorator';
3
+ export * from './log-action.decorator';
3
4
  export * from './public.decorator';
4
5
  export * from './require-permission.decorator';
@@ -0,0 +1,8 @@
1
+ export interface ILogActionOptions {
2
+ action?: string;
3
+ module?: string;
4
+ includeParams?: boolean;
5
+ includeResult?: boolean;
6
+ logLevel?: 'debug' | 'info' | 'warn';
7
+ }
8
+ export declare function LogAction(options?: ILogActionOptions): MethodDecorator;
@@ -1,4 +1,4 @@
1
- import { PermissionCondition } from '../interfaces/permission.interface';
1
+ import { IPermissionLogic } from '../interfaces/permission.interface';
2
2
  export declare const RequirePermission: (...permissions: string[]) => import("@nestjs/common").CustomDecorator<string>;
3
3
  export declare const RequireAnyPermission: (...permissions: string[]) => import("@nestjs/common").CustomDecorator<string>;
4
- export declare const RequirePermissionCondition: (condition: PermissionCondition) => import("@nestjs/common").CustomDecorator<string>;
4
+ export declare const RequirePermissionLogic: (logic: IPermissionLogic) => import("@nestjs/common").CustomDecorator<string>;
@@ -1,4 +1,5 @@
1
1
  export declare class DeleteDto {
2
2
  id: string | string[];
3
3
  type: 'delete' | 'restore' | 'permanent';
4
+ deletedById?: string;
4
5
  }
@@ -5,9 +5,7 @@ export declare class FilterAndPaginationDto {
5
5
  sort?: Record<string, 'ASC' | 'DESC'>;
6
6
  select?: string[];
7
7
  withDeleted?: boolean;
8
- extraKey?: string[];
9
8
  }
10
9
  export declare class GetByIdBodyDto {
11
10
  select?: string[];
12
- extraKey?: string[];
13
11
  }
@@ -0,0 +1,4 @@
1
+ export declare class GetByIdsDto {
2
+ ids: string[];
3
+ select?: string[] | string;
4
+ }
package/dtos/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './delete.dto';
2
2
  export * from './filter-and-pagination.dto';
3
+ export * from './get-by-ids.dto';
3
4
  export * from './identity-response.dto';
4
5
  export * from './pagination.dto';
5
6
  export * from './response-payload.dto';
@@ -6,6 +6,8 @@ export declare class RequestMetaDto {
6
6
  export declare class SingleResponseDto<T> {
7
7
  success: boolean;
8
8
  message: string;
9
+ messageKey?: string;
10
+ messageVariables?: Record<string, string | number>;
9
11
  data?: T;
10
12
  _meta?: RequestMetaDto;
11
13
  }
@@ -20,6 +22,8 @@ export declare class PaginationMetaDto {
20
22
  export declare class ListResponseDto<T> {
21
23
  success: boolean;
22
24
  message: string;
25
+ messageKey?: string;
26
+ messageVariables?: Record<string, string | number>;
23
27
  data?: T[];
24
28
  meta: PaginationMetaDto;
25
29
  _meta?: RequestMetaDto;
@@ -32,6 +36,8 @@ export declare class BulkMetaDto {
32
36
  export declare class BulkResponseDto<T> {
33
37
  success: boolean;
34
38
  message: string;
39
+ messageKey?: string;
40
+ messageVariables?: Record<string, string | number>;
35
41
  data?: T[];
36
42
  meta: BulkMetaDto;
37
43
  _meta?: RequestMetaDto;
@@ -39,25 +45,7 @@ export declare class BulkResponseDto<T> {
39
45
  export declare class MessageResponseDto {
40
46
  success: boolean;
41
47
  message: string;
48
+ messageKey?: string;
49
+ messageVariables?: Record<string, string | number>;
42
50
  _meta?: RequestMetaDto;
43
51
  }
44
- export declare class ValidationErrorDto {
45
- field: string;
46
- message: string;
47
- constraint?: string;
48
- }
49
- export declare class ErrorResponseDto {
50
- success: false;
51
- message: string;
52
- code?: string;
53
- errors?: ValidationErrorDto[];
54
- _meta?: RequestMetaDto;
55
- }
56
- export declare class ResponsePayloadDto<T> {
57
- success: boolean;
58
- message: string;
59
- data?: T;
60
- meta?: PaginationMetaDto | BulkMetaDto;
61
- _meta?: RequestMetaDto;
62
- }
63
- export type ApiResponse<T> = SingleResponseDto<T> | ListResponseDto<T> | BulkResponseDto<T> | MessageResponseDto | ErrorResponseDto;
@@ -1,2 +1,3 @@
1
1
  export * from './identity';
2
+ export * from './raw-type';
2
3
  export * from './user-root';
@@ -0,0 +1 @@
1
+ export type RawEntity = Record<string, unknown>;
@@ -0,0 +1,3 @@
1
+ export * from './notification-type.enum';
2
+ export * from './participant-status.enum';
3
+ export * from './recurrence-type.enum';
@@ -0,0 +1,6 @@
1
+ export declare enum NotificationType {
2
+ INFO = "info",
3
+ WARNING = "warning",
4
+ SUCCESS = "success",
5
+ ERROR = "error"
6
+ }
@@ -0,0 +1,6 @@
1
+ export declare enum ParticipantStatus {
2
+ PENDING = "pending",
3
+ ACCEPTED = "accepted",
4
+ DECLINED = "declined",
5
+ TENTATIVE = "tentative"
6
+ }
@@ -0,0 +1,7 @@
1
+ export declare enum RecurrenceType {
2
+ NONE = "none",
3
+ DAILY = "daily",
4
+ WEEKLY = "weekly",
5
+ BIWEEKLY = "biweekly",
6
+ MONTHLY = "monthly"
7
+ }
@@ -0,0 +1,41 @@
1
+ import { HttpException, HttpStatus } from '@nestjs/common';
2
+ export interface IValidationError {
3
+ field: string;
4
+ message: string;
5
+ }
6
+ export interface IBaseAppExceptionOptions {
7
+ message: string;
8
+ messageKey?: string;
9
+ messageVariables?: Record<string, unknown>;
10
+ status?: HttpStatus;
11
+ errors?: IValidationError[];
12
+ metadata?: Record<string, unknown>;
13
+ }
14
+ export declare class BaseAppException extends HttpException {
15
+ readonly messageKey: string;
16
+ readonly messageVariables?: Record<string, unknown>;
17
+ readonly errors?: IValidationError[];
18
+ readonly metadata?: Record<string, unknown>;
19
+ constructor(options: IBaseAppExceptionOptions);
20
+ }
21
+ export declare class NotFoundException extends BaseAppException {
22
+ constructor(entity: string, id?: string);
23
+ }
24
+ export declare class ValidationException extends BaseAppException {
25
+ constructor(errors: IValidationError[]);
26
+ }
27
+ export declare class UnauthorizedException extends BaseAppException {
28
+ constructor(message?: string);
29
+ }
30
+ export declare class ForbiddenException extends BaseAppException {
31
+ constructor(message?: string);
32
+ }
33
+ export declare class ConflictException extends BaseAppException {
34
+ constructor(entity: string, field?: string);
35
+ }
36
+ export declare class InternalServerException extends BaseAppException {
37
+ constructor(message?: string);
38
+ }
39
+ export declare class ServiceUnavailableException extends BaseAppException {
40
+ constructor(service: string);
41
+ }
@@ -1 +1,2 @@
1
+ export * from './base-app.exception';
1
2
  export * from './permission.exception';
@@ -1,9 +1,9 @@
1
1
  import { ForbiddenException, InternalServerErrorException } from '@nestjs/common';
2
2
  export declare class PermissionSystemUnavailableException extends InternalServerErrorException {
3
- constructor(message?: string);
3
+ constructor();
4
4
  }
5
5
  export declare class InsufficientPermissionsException extends ForbiddenException {
6
- constructor(missingPermissions: string[], operator?: 'and' | 'or');
6
+ constructor(missingPermissions: string[], operator?: 'AND' | 'OR');
7
7
  }
8
8
  export declare class NoPermissionsFoundException extends ForbiddenException {
9
9
  constructor();