@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
@@ -15,9 +15,6 @@ _export(exports, {
15
15
  get BulkResponseDto () {
16
16
  return BulkResponseDto;
17
17
  },
18
- get ErrorResponseDto () {
19
- return ErrorResponseDto;
20
- },
21
18
  get ListResponseDto () {
22
19
  return ListResponseDto;
23
20
  },
@@ -30,14 +27,8 @@ _export(exports, {
30
27
  get RequestMetaDto () {
31
28
  return RequestMetaDto;
32
29
  },
33
- get ResponsePayloadDto () {
34
- return ResponsePayloadDto;
35
- },
36
30
  get SingleResponseDto () {
37
31
  return SingleResponseDto;
38
- },
39
- get ValidationErrorDto () {
40
- return ValidationErrorDto;
41
32
  }
42
33
  });
43
34
  const _swagger = require("@nestjs/swagger");
@@ -92,6 +83,8 @@ let SingleResponseDto = class SingleResponseDto {
92
83
  constructor(){
93
84
  _define_property(this, "success", void 0);
94
85
  _define_property(this, "message", void 0);
86
+ _define_property(this, "messageKey", void 0);
87
+ _define_property(this, "messageVariables", void 0);
95
88
  _define_property(this, "data", void 0);
96
89
  _define_property(this, "_meta", void 0);
97
90
  }
@@ -108,6 +101,22 @@ _ts_decorate([
108
101
  }),
109
102
  _ts_metadata("design:type", String)
110
103
  ], SingleResponseDto.prototype, "message", void 0);
104
+ _ts_decorate([
105
+ (0, _swagger.ApiPropertyOptional)({
106
+ example: 'user.create.success',
107
+ description: 'Translation key for localization'
108
+ }),
109
+ _ts_metadata("design:type", String)
110
+ ], SingleResponseDto.prototype, "messageKey", void 0);
111
+ _ts_decorate([
112
+ (0, _swagger.ApiPropertyOptional)({
113
+ example: {
114
+ name: 'John'
115
+ },
116
+ description: 'Variables for message interpolation'
117
+ }),
118
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
119
+ ], SingleResponseDto.prototype, "messageVariables", void 0);
111
120
  _ts_decorate([
112
121
  (0, _swagger.ApiPropertyOptional)(),
113
122
  _ts_metadata("design:type", typeof T === "undefined" ? Object : T)
@@ -171,6 +180,8 @@ let ListResponseDto = class ListResponseDto {
171
180
  constructor(){
172
181
  _define_property(this, "success", void 0);
173
182
  _define_property(this, "message", void 0);
183
+ _define_property(this, "messageKey", void 0);
184
+ _define_property(this, "messageVariables", void 0);
174
185
  _define_property(this, "data", void 0);
175
186
  _define_property(this, "meta", void 0);
176
187
  _define_property(this, "_meta", void 0);
@@ -188,6 +199,22 @@ _ts_decorate([
188
199
  }),
189
200
  _ts_metadata("design:type", String)
190
201
  ], ListResponseDto.prototype, "message", void 0);
202
+ _ts_decorate([
203
+ (0, _swagger.ApiPropertyOptional)({
204
+ example: 'user.list.success',
205
+ description: 'Translation key for localization'
206
+ }),
207
+ _ts_metadata("design:type", String)
208
+ ], ListResponseDto.prototype, "messageKey", void 0);
209
+ _ts_decorate([
210
+ (0, _swagger.ApiPropertyOptional)({
211
+ example: {
212
+ count: 10
213
+ },
214
+ description: 'Variables for message interpolation'
215
+ }),
216
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
217
+ ], ListResponseDto.prototype, "messageVariables", void 0);
191
218
  _ts_decorate([
192
219
  (0, _swagger.ApiPropertyOptional)({
193
220
  isArray: true
@@ -238,6 +265,8 @@ let BulkResponseDto = class BulkResponseDto {
238
265
  constructor(){
239
266
  _define_property(this, "success", void 0);
240
267
  _define_property(this, "message", void 0);
268
+ _define_property(this, "messageKey", void 0);
269
+ _define_property(this, "messageVariables", void 0);
241
270
  _define_property(this, "data", void 0);
242
271
  _define_property(this, "meta", void 0);
243
272
  _define_property(this, "_meta", void 0);
@@ -255,6 +284,22 @@ _ts_decorate([
255
284
  }),
256
285
  _ts_metadata("design:type", String)
257
286
  ], BulkResponseDto.prototype, "message", void 0);
287
+ _ts_decorate([
288
+ (0, _swagger.ApiPropertyOptional)({
289
+ example: 'user.bulk.success',
290
+ description: 'Translation key for localization'
291
+ }),
292
+ _ts_metadata("design:type", String)
293
+ ], BulkResponseDto.prototype, "messageKey", void 0);
294
+ _ts_decorate([
295
+ (0, _swagger.ApiPropertyOptional)({
296
+ example: {
297
+ count: 5
298
+ },
299
+ description: 'Variables for message interpolation'
300
+ }),
301
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
302
+ ], BulkResponseDto.prototype, "messageVariables", void 0);
258
303
  _ts_decorate([
259
304
  (0, _swagger.ApiPropertyOptional)({
260
305
  isArray: true
@@ -280,6 +325,8 @@ let MessageResponseDto = class MessageResponseDto {
280
325
  constructor(){
281
326
  _define_property(this, "success", void 0);
282
327
  _define_property(this, "message", void 0);
328
+ _define_property(this, "messageKey", void 0);
329
+ _define_property(this, "messageVariables", void 0);
283
330
  _define_property(this, "_meta", void 0);
284
331
  }
285
332
  };
@@ -297,117 +344,26 @@ _ts_decorate([
297
344
  ], MessageResponseDto.prototype, "message", void 0);
298
345
  _ts_decorate([
299
346
  (0, _swagger.ApiPropertyOptional)({
300
- type: RequestMetaDto
301
- }),
302
- _ts_metadata("design:type", typeof RequestMetaDto === "undefined" ? Object : RequestMetaDto)
303
- ], MessageResponseDto.prototype, "_meta", void 0);
304
- MessageResponseDto = _ts_decorate([
305
- (0, _swagger.ApiExtraModels)()
306
- ], MessageResponseDto);
307
- let ValidationErrorDto = class ValidationErrorDto {
308
- constructor(){
309
- _define_property(this, "field", void 0);
310
- _define_property(this, "message", void 0);
311
- _define_property(this, "constraint", void 0);
312
- }
313
- };
314
- _ts_decorate([
315
- (0, _swagger.ApiProperty)({
316
- example: 'email'
317
- }),
318
- _ts_metadata("design:type", String)
319
- ], ValidationErrorDto.prototype, "field", void 0);
320
- _ts_decorate([
321
- (0, _swagger.ApiProperty)({
322
- example: 'Invalid email format'
323
- }),
324
- _ts_metadata("design:type", String)
325
- ], ValidationErrorDto.prototype, "message", void 0);
326
- _ts_decorate([
327
- (0, _swagger.ApiPropertyOptional)({
328
- example: 'isEmail'
329
- }),
330
- _ts_metadata("design:type", String)
331
- ], ValidationErrorDto.prototype, "constraint", void 0);
332
- let ErrorResponseDto = class ErrorResponseDto {
333
- constructor(){
334
- _define_property(this, "success", void 0);
335
- _define_property(this, "message", void 0);
336
- _define_property(this, "code", void 0);
337
- _define_property(this, "errors", void 0);
338
- _define_property(this, "_meta", void 0);
339
- }
340
- };
341
- _ts_decorate([
342
- (0, _swagger.ApiProperty)({
343
- example: false
344
- }),
345
- _ts_metadata("design:type", Boolean)
346
- ], ErrorResponseDto.prototype, "success", void 0);
347
- _ts_decorate([
348
- (0, _swagger.ApiProperty)({
349
- example: 'Validation failed'
350
- }),
351
- _ts_metadata("design:type", String)
352
- ], ErrorResponseDto.prototype, "message", void 0);
353
- _ts_decorate([
354
- (0, _swagger.ApiPropertyOptional)({
355
- example: 'VALIDATION_ERROR'
347
+ example: 'user.delete.success',
348
+ description: 'Translation key for localization'
356
349
  }),
357
350
  _ts_metadata("design:type", String)
358
- ], ErrorResponseDto.prototype, "code", void 0);
359
- _ts_decorate([
360
- (0, _swagger.ApiPropertyOptional)({
361
- type: [
362
- ValidationErrorDto
363
- ]
364
- }),
365
- _ts_metadata("design:type", Array)
366
- ], ErrorResponseDto.prototype, "errors", void 0);
351
+ ], MessageResponseDto.prototype, "messageKey", void 0);
367
352
  _ts_decorate([
368
353
  (0, _swagger.ApiPropertyOptional)({
369
- type: RequestMetaDto
370
- }),
371
- _ts_metadata("design:type", typeof RequestMetaDto === "undefined" ? Object : RequestMetaDto)
372
- ], ErrorResponseDto.prototype, "_meta", void 0);
373
- ErrorResponseDto = _ts_decorate([
374
- (0, _swagger.ApiExtraModels)()
375
- ], ErrorResponseDto);
376
- let ResponsePayloadDto = class ResponsePayloadDto {
377
- constructor(){
378
- _define_property(this, "success", void 0);
379
- _define_property(this, "message", void 0);
380
- _define_property(this, "data", void 0);
381
- _define_property(this, "meta", void 0);
382
- _define_property(this, "_meta", void 0);
383
- }
384
- };
385
- _ts_decorate([
386
- (0, _swagger.ApiProperty)({
387
- example: true
388
- }),
389
- _ts_metadata("design:type", Boolean)
390
- ], ResponsePayloadDto.prototype, "success", void 0);
391
- _ts_decorate([
392
- (0, _swagger.ApiProperty)({
393
- example: 'Operation successful'
354
+ example: {
355
+ count: 3
356
+ },
357
+ description: 'Variables for message interpolation'
394
358
  }),
395
- _ts_metadata("design:type", String)
396
- ], ResponsePayloadDto.prototype, "message", void 0);
397
- _ts_decorate([
398
- (0, _swagger.ApiPropertyOptional)(),
399
- _ts_metadata("design:type", typeof T === "undefined" ? Object : T)
400
- ], ResponsePayloadDto.prototype, "data", void 0);
401
- _ts_decorate([
402
- (0, _swagger.ApiPropertyOptional)(),
403
- _ts_metadata("design:type", Object)
404
- ], ResponsePayloadDto.prototype, "meta", void 0);
359
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
360
+ ], MessageResponseDto.prototype, "messageVariables", void 0);
405
361
  _ts_decorate([
406
362
  (0, _swagger.ApiPropertyOptional)({
407
363
  type: RequestMetaDto
408
364
  }),
409
365
  _ts_metadata("design:type", typeof RequestMetaDto === "undefined" ? Object : RequestMetaDto)
410
- ], ResponsePayloadDto.prototype, "_meta", void 0);
411
- ResponsePayloadDto = _ts_decorate([
366
+ ], MessageResponseDto.prototype, "_meta", void 0);
367
+ MessageResponseDto = _ts_decorate([
412
368
  (0, _swagger.ApiExtraModels)()
413
- ], ResponsePayloadDto);
369
+ ], MessageResponseDto);
@@ -36,10 +36,10 @@ let Identity = class Identity {
36
36
  _define_property(this, "id", void 0);
37
37
  _define_property(this, "createdAt", void 0);
38
38
  _define_property(this, "updatedAt", void 0);
39
- _define_property(this, "deletedAt", void 0);
40
- _define_property(this, "createdById", void 0);
41
- _define_property(this, "updatedById", void 0);
42
- _define_property(this, "deletedById", void 0);
39
+ _define_property(this, "deletedAt", null);
40
+ _define_property(this, "createdById", null);
41
+ _define_property(this, "updatedById", null);
42
+ _define_property(this, "deletedById", null);
43
43
  }
44
44
  };
45
45
  _ts_decorate([
@@ -49,14 +49,16 @@ _ts_decorate([
49
49
  _ts_decorate([
50
50
  (0, _typeorm.CreateDateColumn)({
51
51
  name: 'created_at',
52
- type: 'timestamp'
52
+ type: 'timestamp',
53
+ select: false
53
54
  }),
54
55
  _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
55
56
  ], Identity.prototype, "createdAt", void 0);
56
57
  _ts_decorate([
57
58
  (0, _typeorm.UpdateDateColumn)({
58
59
  name: 'updated_at',
59
- type: 'timestamp'
60
+ type: 'timestamp',
61
+ select: false
60
62
  }),
61
63
  _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
62
64
  ], Identity.prototype, "updatedAt", void 0);
@@ -64,6 +66,7 @@ _ts_decorate([
64
66
  (0, _typeorm.DeleteDateColumn)({
65
67
  name: 'deleted_at',
66
68
  type: 'timestamp',
69
+ select: false,
67
70
  nullable: true
68
71
  }),
69
72
  _ts_metadata("design:type", Object)
@@ -72,6 +75,7 @@ _ts_decorate([
72
75
  (0, _typeorm.Column)({
73
76
  name: 'created_by_id',
74
77
  type: 'uuid',
78
+ select: false,
75
79
  nullable: true
76
80
  }),
77
81
  _ts_metadata("design:type", Object)
@@ -80,6 +84,7 @@ _ts_decorate([
80
84
  (0, _typeorm.Column)({
81
85
  name: 'updated_by_id',
82
86
  type: 'uuid',
87
+ select: false,
83
88
  nullable: true
84
89
  }),
85
90
  _ts_metadata("design:type", Object)
@@ -88,6 +93,7 @@ _ts_decorate([
88
93
  (0, _typeorm.Column)({
89
94
  name: 'deleted_by_id',
90
95
  type: 'uuid',
96
+ select: false,
91
97
  nullable: true
92
98
  }),
93
99
  _ts_metadata("design:type", Object)
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  _export_star(require("./identity"), exports);
6
+ _export_star(require("./raw-type"), exports);
6
7
  _export_star(require("./user-root"), exports);
7
8
  function _export_star(from, to) {
8
9
  Object.keys(from).forEach(function(k) {
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "UserRoot", {
8
8
  return UserRoot;
9
9
  }
10
10
  });
11
+ const _nestjsshared = require("@flusys/nestjs-shared");
11
12
  const _typeorm = require("typeorm");
12
13
  function _define_property(obj, key, value) {
13
14
  if (key in obj) {
@@ -34,23 +35,22 @@ function _ts_metadata(k, v) {
34
35
  let UserRoot = class UserRoot {
35
36
  constructor(){
36
37
  _define_property(this, "id", void 0);
37
- _define_property(this, "name", void 0);
38
- _define_property(this, "password", void 0);
38
+ _define_property(this, "name", null);
39
+ _define_property(this, "password", null);
39
40
  _define_property(this, "email", void 0);
40
- _define_property(this, "phone", void 0);
41
- _define_property(this, "isActive", void 0);
42
- _define_property(this, "emailVerified", void 0);
43
- _define_property(this, "phoneVerified", void 0);
44
- _define_property(this, "profilePictureId", void 0);
45
- _define_property(this, "lastLoginAt", void 0);
46
- _define_property(this, "additionalFields", void 0);
41
+ _define_property(this, "phone", null);
42
+ _define_property(this, "isActive", true);
43
+ _define_property(this, "emailVerified", false);
44
+ _define_property(this, "phoneVerified", false);
45
+ _define_property(this, "profilePictureId", null);
46
+ _define_property(this, "lastLoginAt", null);
47
+ _define_property(this, "additionalFields", null);
47
48
  _define_property(this, "createdAt", void 0);
48
49
  _define_property(this, "updatedAt", void 0);
49
- _define_property(this, "deletedAt", void 0);
50
- // Audit columns (for ApiService compatibility)
51
- _define_property(this, "createdById", void 0);
52
- _define_property(this, "updatedById", void 0);
53
- _define_property(this, "deletedById", void 0);
50
+ _define_property(this, "deletedAt", null);
51
+ _define_property(this, "createdById", null);
52
+ _define_property(this, "updatedById", null);
53
+ _define_property(this, "deletedById", null);
54
54
  }
55
55
  };
56
56
  _ts_decorate([
@@ -135,7 +135,7 @@ _ts_decorate([
135
135
  ], UserRoot.prototype, "lastLoginAt", void 0);
136
136
  _ts_decorate([
137
137
  (0, _typeorm.Column)({
138
- type: 'json',
138
+ type: (0, _nestjsshared.getJsonColumnType)(),
139
139
  nullable: true,
140
140
  name: 'additional_fields'
141
141
  }),
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./notification-type.enum"), exports);
6
+ _export_star(require("./participant-status.enum"), exports);
7
+ _export_star(require("./recurrence-type.enum"), exports);
8
+ function _export_star(from, to) {
9
+ Object.keys(from).forEach(function(k) {
10
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
11
+ Object.defineProperty(to, k, {
12
+ enumerable: true,
13
+ get: function() {
14
+ return from[k];
15
+ }
16
+ });
17
+ }
18
+ });
19
+ return from;
20
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "NotificationType", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return NotificationType;
9
+ }
10
+ });
11
+ var NotificationType = /*#__PURE__*/ function(NotificationType) {
12
+ NotificationType["INFO"] = "info";
13
+ NotificationType["WARNING"] = "warning";
14
+ NotificationType["SUCCESS"] = "success";
15
+ NotificationType["ERROR"] = "error";
16
+ return NotificationType;
17
+ }({});
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "ParticipantStatus", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ParticipantStatus;
9
+ }
10
+ });
11
+ var ParticipantStatus = /*#__PURE__*/ function(ParticipantStatus) {
12
+ ParticipantStatus["PENDING"] = "pending";
13
+ ParticipantStatus["ACCEPTED"] = "accepted";
14
+ ParticipantStatus["DECLINED"] = "declined";
15
+ ParticipantStatus["TENTATIVE"] = "tentative";
16
+ return ParticipantStatus;
17
+ }({});
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "RecurrenceType", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return RecurrenceType;
9
+ }
10
+ });
11
+ var RecurrenceType = /*#__PURE__*/ function(RecurrenceType) {
12
+ RecurrenceType["NONE"] = "none";
13
+ RecurrenceType["DAILY"] = "daily";
14
+ RecurrenceType["WEEKLY"] = "weekly";
15
+ RecurrenceType["BIWEEKLY"] = "biweekly";
16
+ RecurrenceType["MONTHLY"] = "monthly";
17
+ return RecurrenceType;
18
+ }({});
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get BaseAppException () {
13
+ return BaseAppException;
14
+ },
15
+ get ConflictException () {
16
+ return ConflictException;
17
+ },
18
+ get ForbiddenException () {
19
+ return ForbiddenException;
20
+ },
21
+ get InternalServerException () {
22
+ return InternalServerException;
23
+ },
24
+ get NotFoundException () {
25
+ return NotFoundException;
26
+ },
27
+ get ServiceUnavailableException () {
28
+ return ServiceUnavailableException;
29
+ },
30
+ get UnauthorizedException () {
31
+ return UnauthorizedException;
32
+ },
33
+ get ValidationException () {
34
+ return ValidationException;
35
+ }
36
+ });
37
+ const _common = require("@nestjs/common");
38
+ const _messagekeys = require("../constants/message-keys");
39
+ function _define_property(obj, key, value) {
40
+ if (key in obj) {
41
+ Object.defineProperty(obj, key, {
42
+ value: value,
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true
46
+ });
47
+ } else {
48
+ obj[key] = value;
49
+ }
50
+ return obj;
51
+ }
52
+ let BaseAppException = class BaseAppException extends _common.HttpException {
53
+ constructor(options){
54
+ const status = options.status || _common.HttpStatus.BAD_REQUEST;
55
+ super({
56
+ success: false,
57
+ message: options.message,
58
+ messageKey: options.messageKey || _messagekeys.ERROR_MESSAGES.GENERIC,
59
+ messageVariables: options.messageVariables,
60
+ errors: options.errors
61
+ }, status), _define_property(this, "messageKey", void 0), _define_property(this, "messageVariables", void 0), _define_property(this, "errors", void 0), _define_property(this, "metadata", void 0);
62
+ this.messageKey = options.messageKey || _messagekeys.ERROR_MESSAGES.GENERIC;
63
+ this.messageVariables = options.messageVariables;
64
+ this.errors = options.errors;
65
+ this.metadata = options.metadata;
66
+ }
67
+ };
68
+ let NotFoundException = class NotFoundException extends BaseAppException {
69
+ constructor(entity, id){
70
+ super({
71
+ message: id ? `${entity} with id "${id}" not found` : `${entity} not found`,
72
+ messageKey: _messagekeys.ERROR_MESSAGES.NOT_FOUND,
73
+ status: _common.HttpStatus.NOT_FOUND,
74
+ metadata: {
75
+ entity,
76
+ id
77
+ }
78
+ });
79
+ }
80
+ };
81
+ let ValidationException = class ValidationException extends BaseAppException {
82
+ constructor(errors){
83
+ super({
84
+ message: 'Validation failed',
85
+ messageKey: _messagekeys.ERROR_MESSAGES.VALIDATION,
86
+ status: _common.HttpStatus.BAD_REQUEST,
87
+ errors
88
+ });
89
+ }
90
+ };
91
+ let UnauthorizedException = class UnauthorizedException extends BaseAppException {
92
+ constructor(message = 'Unauthorized access'){
93
+ super({
94
+ message,
95
+ messageKey: _messagekeys.ERROR_MESSAGES.UNAUTHORIZED,
96
+ status: _common.HttpStatus.UNAUTHORIZED
97
+ });
98
+ }
99
+ };
100
+ let ForbiddenException = class ForbiddenException extends BaseAppException {
101
+ constructor(message = 'Access forbidden'){
102
+ super({
103
+ message,
104
+ messageKey: _messagekeys.ERROR_MESSAGES.FORBIDDEN,
105
+ status: _common.HttpStatus.FORBIDDEN
106
+ });
107
+ }
108
+ };
109
+ let ConflictException = class ConflictException extends BaseAppException {
110
+ constructor(entity, field){
111
+ super({
112
+ message: field ? `${entity} with this ${field} already exists` : `${entity} already exists`,
113
+ messageKey: _messagekeys.ERROR_MESSAGES.CONFLICT,
114
+ messageVariables: {
115
+ entity,
116
+ ...field !== undefined && {
117
+ field
118
+ }
119
+ },
120
+ status: _common.HttpStatus.CONFLICT,
121
+ metadata: {
122
+ entity,
123
+ field
124
+ }
125
+ });
126
+ }
127
+ };
128
+ let InternalServerException = class InternalServerException extends BaseAppException {
129
+ constructor(message = 'Internal server error'){
130
+ super({
131
+ message,
132
+ messageKey: _messagekeys.ERROR_MESSAGES.INTERNAL,
133
+ status: _common.HttpStatus.INTERNAL_SERVER_ERROR
134
+ });
135
+ }
136
+ };
137
+ let ServiceUnavailableException = class ServiceUnavailableException extends BaseAppException {
138
+ constructor(service){
139
+ super({
140
+ message: `${service} is temporarily unavailable`,
141
+ messageKey: _messagekeys.ERROR_MESSAGES.SERVICE_UNAVAILABLE,
142
+ messageVariables: {
143
+ service
144
+ },
145
+ status: _common.HttpStatus.SERVICE_UNAVAILABLE,
146
+ metadata: {
147
+ service
148
+ }
149
+ });
150
+ }
151
+ };
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ _export_star(require("./base-app.exception"), exports);
5
6
  _export_star(require("./permission.exception"), exports);
6
7
  function _export_star(from, to) {
7
8
  Object.keys(from).forEach(function(k) {
@@ -20,22 +20,26 @@ _export(exports, {
20
20
  }
21
21
  });
22
22
  const _common = require("@nestjs/common");
23
+ const _messagekeys = require("../constants/message-keys");
23
24
  let PermissionSystemUnavailableException = class PermissionSystemUnavailableException extends _common.InternalServerErrorException {
24
- constructor(message = 'Permission system temporarily unavailable. Please try again later.'){
25
+ constructor(){
25
26
  super({
26
27
  success: false,
27
- message,
28
- code: 'PERMISSION_SYSTEM_UNAVAILABLE'
28
+ message: 'Permission system temporarily unavailable',
29
+ messageKey: _messagekeys.ERROR_MESSAGES.PERMISSION_SYSTEM_UNAVAILABLE
29
30
  });
30
31
  }
31
32
  };
32
33
  let InsufficientPermissionsException = class InsufficientPermissionsException extends _common.ForbiddenException {
33
- constructor(missingPermissions, operator = 'and'){
34
- const message = operator === 'or' ? `Requires at least one of: ${missingPermissions.join(', ')}` : `Missing required permissions: ${missingPermissions.join(', ')}`;
34
+ constructor(missingPermissions, operator = 'AND'){
35
+ const messageKey = operator === 'OR' ? _messagekeys.ERROR_MESSAGES.INSUFFICIENT_PERMISSIONS_OR : _messagekeys.ERROR_MESSAGES.INSUFFICIENT_PERMISSIONS;
35
36
  super({
36
37
  success: false,
37
- message,
38
- code: 'INSUFFICIENT_PERMISSIONS',
38
+ message: 'Insufficient permissions',
39
+ messageKey,
40
+ messageVariables: {
41
+ permissions: missingPermissions.join(', ')
42
+ },
39
43
  missingPermissions,
40
44
  operator
41
45
  });
@@ -45,8 +49,8 @@ let NoPermissionsFoundException = class NoPermissionsFoundException extends _com
45
49
  constructor(){
46
50
  super({
47
51
  success: false,
48
- message: 'No permissions found. Please contact administrator.',
49
- code: 'NO_PERMISSIONS_FOUND'
52
+ message: 'No permissions found',
53
+ messageKey: _messagekeys.ERROR_MESSAGES.NO_PERMISSIONS_FOUND
50
54
  });
51
55
  }
52
56
  };