@nextage/era-lib 1.0.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 (209) hide show
  1. package/build/__mocks__/msg-wrapper.d.ts +6 -0
  2. package/build/__mocks__/msg-wrapper.d.ts.map +1 -0
  3. package/build/__mocks__/msg-wrapper.js +13 -0
  4. package/build/__mocks__/msg-wrapper.js.map +1 -0
  5. package/build/__mocks__/nats-wrapper.d.ts +6 -0
  6. package/build/__mocks__/nats-wrapper.d.ts.map +1 -0
  7. package/build/__mocks__/nats-wrapper.js +13 -0
  8. package/build/__mocks__/nats-wrapper.js.map +1 -0
  9. package/build/constants.d.ts +52 -0
  10. package/build/constants.d.ts.map +1 -0
  11. package/build/constants.js +19 -0
  12. package/build/constants.js.map +1 -0
  13. package/build/enums.d.ts +46 -0
  14. package/build/enums.d.ts.map +1 -0
  15. package/build/enums.js +55 -0
  16. package/build/enums.js.map +1 -0
  17. package/build/errors/app-error.d.ts +13 -0
  18. package/build/errors/app-error.d.ts.map +1 -0
  19. package/build/errors/app-error.js +18 -0
  20. package/build/errors/app-error.js.map +1 -0
  21. package/build/errors/custom-error.d.ts +9 -0
  22. package/build/errors/custom-error.d.ts.map +1 -0
  23. package/build/errors/custom-error.js +11 -0
  24. package/build/errors/custom-error.js.map +1 -0
  25. package/build/errors/index.d.ts +3 -0
  26. package/build/errors/index.d.ts.map +1 -0
  27. package/build/errors/index.js +19 -0
  28. package/build/errors/index.js.map +1 -0
  29. package/build/events/base-listener.d.ts +16 -0
  30. package/build/events/base-listener.d.ts.map +1 -0
  31. package/build/events/base-listener.js +31 -0
  32. package/build/events/base-listener.js.map +1 -0
  33. package/build/events/base-nats-listener.d.ts +40 -0
  34. package/build/events/base-nats-listener.d.ts.map +1 -0
  35. package/build/events/base-nats-listener.js +102 -0
  36. package/build/events/base-nats-listener.js.map +1 -0
  37. package/build/events/base-nats-publisher.d.ts +14 -0
  38. package/build/events/base-nats-publisher.d.ts.map +1 -0
  39. package/build/events/base-nats-publisher.js +31 -0
  40. package/build/events/base-nats-publisher.js.map +1 -0
  41. package/build/events/base-publisher.d.ts +13 -0
  42. package/build/events/base-publisher.d.ts.map +1 -0
  43. package/build/events/base-publisher.js +18 -0
  44. package/build/events/base-publisher.js.map +1 -0
  45. package/build/events/business-unit/created-event.d.ts +7 -0
  46. package/build/events/business-unit/created-event.d.ts.map +1 -0
  47. package/build/events/business-unit/created-event.js +3 -0
  48. package/build/events/business-unit/created-event.js.map +1 -0
  49. package/build/events/business-unit/index.d.ts +4 -0
  50. package/build/events/business-unit/index.d.ts.map +1 -0
  51. package/build/events/business-unit/index.js +20 -0
  52. package/build/events/business-unit/index.js.map +1 -0
  53. package/build/events/business-unit/removed-event.d.ts +7 -0
  54. package/build/events/business-unit/removed-event.d.ts.map +1 -0
  55. package/build/events/business-unit/removed-event.js +3 -0
  56. package/build/events/business-unit/removed-event.js.map +1 -0
  57. package/build/events/business-unit/updated-event.d.ts +7 -0
  58. package/build/events/business-unit/updated-event.d.ts.map +1 -0
  59. package/build/events/business-unit/updated-event.js +3 -0
  60. package/build/events/business-unit/updated-event.js.map +1 -0
  61. package/build/events/employee/created-event.d.ts +7 -0
  62. package/build/events/employee/created-event.d.ts.map +1 -0
  63. package/build/events/employee/created-event.js +3 -0
  64. package/build/events/employee/created-event.js.map +1 -0
  65. package/build/events/employee/index.d.ts +4 -0
  66. package/build/events/employee/index.d.ts.map +1 -0
  67. package/build/events/employee/index.js +20 -0
  68. package/build/events/employee/index.js.map +1 -0
  69. package/build/events/employee/interfaces.d.ts +8 -0
  70. package/build/events/employee/interfaces.d.ts.map +1 -0
  71. package/build/events/employee/interfaces.js +3 -0
  72. package/build/events/employee/interfaces.js.map +1 -0
  73. package/build/events/employee/removed-event.d.ts +7 -0
  74. package/build/events/employee/removed-event.d.ts.map +1 -0
  75. package/build/events/employee/removed-event.js +3 -0
  76. package/build/events/employee/removed-event.js.map +1 -0
  77. package/build/events/employee/updated-event.d.ts +7 -0
  78. package/build/events/employee/updated-event.d.ts.map +1 -0
  79. package/build/events/employee/updated-event.js +3 -0
  80. package/build/events/employee/updated-event.js.map +1 -0
  81. package/build/events/employee-role/created-event.d.ts +7 -0
  82. package/build/events/employee-role/created-event.d.ts.map +1 -0
  83. package/build/events/employee-role/created-event.js +3 -0
  84. package/build/events/employee-role/created-event.js.map +1 -0
  85. package/build/events/employee-role/index.d.ts +4 -0
  86. package/build/events/employee-role/index.d.ts.map +1 -0
  87. package/build/events/employee-role/index.js +20 -0
  88. package/build/events/employee-role/index.js.map +1 -0
  89. package/build/events/employee-role/removed-event.d.ts +7 -0
  90. package/build/events/employee-role/removed-event.d.ts.map +1 -0
  91. package/build/events/employee-role/removed-event.js +3 -0
  92. package/build/events/employee-role/removed-event.js.map +1 -0
  93. package/build/events/employee-role/updated-event.d.ts +7 -0
  94. package/build/events/employee-role/updated-event.d.ts.map +1 -0
  95. package/build/events/employee-role/updated-event.js +3 -0
  96. package/build/events/employee-role/updated-event.js.map +1 -0
  97. package/build/events/event-message.d.ts +7 -0
  98. package/build/events/event-message.d.ts.map +1 -0
  99. package/build/events/event-message.js +16 -0
  100. package/build/events/event-message.js.map +1 -0
  101. package/build/events/event-subscription.d.ts +10 -0
  102. package/build/events/event-subscription.d.ts.map +1 -0
  103. package/build/events/event-subscription.js +16 -0
  104. package/build/events/event-subscription.js.map +1 -0
  105. package/build/events/index.d.ts +13 -0
  106. package/build/events/index.d.ts.map +1 -0
  107. package/build/events/index.js +35 -0
  108. package/build/events/index.js.map +1 -0
  109. package/build/events/interfaces.d.ts +16 -0
  110. package/build/events/interfaces.d.ts.map +1 -0
  111. package/build/events/interfaces.js +3 -0
  112. package/build/events/interfaces.js.map +1 -0
  113. package/build/events/msg-client-manager.d.ts +38 -0
  114. package/build/events/msg-client-manager.d.ts.map +1 -0
  115. package/build/events/msg-client-manager.js +93 -0
  116. package/build/events/msg-client-manager.js.map +1 -0
  117. package/build/events/nats-client-manager.d.ts +51 -0
  118. package/build/events/nats-client-manager.d.ts.map +1 -0
  119. package/build/events/nats-client-manager.js +169 -0
  120. package/build/events/nats-client-manager.js.map +1 -0
  121. package/build/events/nats-client-manager.old.d.ts +49 -0
  122. package/build/events/nats-client-manager.old.d.ts.map +1 -0
  123. package/build/events/nats-client-manager.old.js +108 -0
  124. package/build/events/nats-client-manager.old.js.map +1 -0
  125. package/build/events/types/base-event.controller.d.ts +44 -0
  126. package/build/events/types/base-event.controller.d.ts.map +1 -0
  127. package/build/events/types/base-event.controller.js +65 -0
  128. package/build/events/types/base-event.controller.js.map +1 -0
  129. package/build/events/types/employee.enums.d.ts +8 -0
  130. package/build/events/types/employee.enums.d.ts.map +1 -0
  131. package/build/events/types/employee.enums.js +12 -0
  132. package/build/events/types/employee.enums.js.map +1 -0
  133. package/build/events/types/enums.d.ts +26 -0
  134. package/build/events/types/enums.d.ts.map +1 -0
  135. package/build/events/types/enums.js +40 -0
  136. package/build/events/types/enums.js.map +1 -0
  137. package/build/events/types/events.interfaces.d.ts +13 -0
  138. package/build/events/types/events.interfaces.d.ts.map +1 -0
  139. package/build/events/types/events.interfaces.js +3 -0
  140. package/build/events/types/events.interfaces.js.map +1 -0
  141. package/build/events/types/index.d.ts +6 -0
  142. package/build/events/types/index.d.ts.map +1 -0
  143. package/build/events/types/index.js +22 -0
  144. package/build/events/types/index.js.map +1 -0
  145. package/build/events/types/order.enums.d.ts +8 -0
  146. package/build/events/types/order.enums.d.ts.map +1 -0
  147. package/build/events/types/order.enums.js +17 -0
  148. package/build/events/types/order.enums.js.map +1 -0
  149. package/build/events/types/project.enums.d.ts +8 -0
  150. package/build/events/types/project.enums.d.ts.map +1 -0
  151. package/build/events/types/project.enums.js +12 -0
  152. package/build/events/types/project.enums.js.map +1 -0
  153. package/build/index.d.ts +8 -0
  154. package/build/index.d.ts.map +1 -0
  155. package/build/index.js +24 -0
  156. package/build/index.js.map +1 -0
  157. package/build/interfaces.d.ts +47 -0
  158. package/build/interfaces.d.ts.map +1 -0
  159. package/build/interfaces.js +3 -0
  160. package/build/interfaces.js.map +1 -0
  161. package/build/msg-wrapper.d.ts +10 -0
  162. package/build/msg-wrapper.d.ts.map +1 -0
  163. package/build/msg-wrapper.js +18 -0
  164. package/build/msg-wrapper.js.map +1 -0
  165. package/build/nats-wrapper.d.ts +14 -0
  166. package/build/nats-wrapper.d.ts.map +1 -0
  167. package/build/nats-wrapper.js +24 -0
  168. package/build/nats-wrapper.js.map +1 -0
  169. package/build/routes/index.d.ts +3 -0
  170. package/build/routes/index.d.ts.map +1 -0
  171. package/build/routes/index.js +19 -0
  172. package/build/routes/index.js.map +1 -0
  173. package/build/routes/swagger.d.ts +13 -0
  174. package/build/routes/swagger.d.ts.map +1 -0
  175. package/build/routes/swagger.js +13 -0
  176. package/build/routes/swagger.js.map +1 -0
  177. package/build/routes/validators.d.ts +11 -0
  178. package/build/routes/validators.d.ts.map +1 -0
  179. package/build/routes/validators.js +17 -0
  180. package/build/routes/validators.js.map +1 -0
  181. package/build/services/index.d.ts +2 -0
  182. package/build/services/index.d.ts.map +1 -0
  183. package/build/services/index.js +18 -0
  184. package/build/services/index.js.map +1 -0
  185. package/build/services/password.d.ts +5 -0
  186. package/build/services/password.d.ts.map +1 -0
  187. package/build/services/password.js +20 -0
  188. package/build/services/password.js.map +1 -0
  189. package/build/types/base-user/index.d.ts +7 -0
  190. package/build/types/base-user/index.d.ts.map +1 -0
  191. package/build/types/base-user/index.js +3 -0
  192. package/build/types/base-user/index.js.map +1 -0
  193. package/build/types/express-session/index.d.ts +10 -0
  194. package/build/types/express-session/index.d.ts.map +1 -0
  195. package/build/types/express-session/index.js +3 -0
  196. package/build/types/express-session/index.js.map +1 -0
  197. package/build/utils/express.d.ts +31 -0
  198. package/build/utils/express.d.ts.map +1 -0
  199. package/build/utils/express.js +77 -0
  200. package/build/utils/express.js.map +1 -0
  201. package/build/utils/functs.d.ts +45 -0
  202. package/build/utils/functs.d.ts.map +1 -0
  203. package/build/utils/functs.js +269 -0
  204. package/build/utils/functs.js.map +1 -0
  205. package/build/utils/index.d.ts +3 -0
  206. package/build/utils/index.d.ts.map +1 -0
  207. package/build/utils/index.js +19 -0
  208. package/build/utils/index.js.map +1 -0
  209. package/package.json +64 -0
@@ -0,0 +1,6 @@
1
+ export declare const msgWrapper: {
2
+ client: {
3
+ publish: jest.Mock<any, any, any>;
4
+ };
5
+ };
6
+ //# sourceMappingURL=msg-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-wrapper.d.ts","sourceRoot":"","sources":["../../src/__mocks__/msg-wrapper.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;CActB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.msgWrapper = void 0;
4
+ exports.msgWrapper = {
5
+ client: {
6
+ publish: jest.fn().mockImplementation((subject, data, options) => {
7
+ })
8
+ // publish: (subject: string, data: string, callback: () => void) => {
9
+ // callback();
10
+ // },
11
+ }
12
+ };
13
+ //# sourceMappingURL=msg-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msg-wrapper.js","sourceRoot":"","sources":["../../src/__mocks__/msg-wrapper.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IAExB,MAAM,EAAE;QAEN,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CACnC,CAAC,OAAe,EAAE,IAAY,EAAE,OAAkB,EAAE,EAAE;QAEtD,CAAC,CACF;QACD,sEAAsE;QACtE,gBAAgB;QAChB,KAAK;KAEN;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const natsWrapper: {
2
+ client: {
3
+ publish: jest.Mock<any, any, any>;
4
+ };
5
+ };
6
+ //# sourceMappingURL=nats-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nats-wrapper.d.ts","sourceRoot":"","sources":["../../src/__mocks__/nats-wrapper.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;CAcvB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.natsWrapper = void 0;
4
+ exports.natsWrapper = {
5
+ client: {
6
+ publish: jest.fn().mockImplementation((subject, payload, options) => {
7
+ })
8
+ // publish: (subject: string, data: string, callback: () => void) => {
9
+ // callback();
10
+ // },
11
+ }
12
+ };
13
+ //# sourceMappingURL=nats-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nats-wrapper.js","sourceRoot":"","sources":["../../src/__mocks__/nats-wrapper.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAG;IAEzB,MAAM,EAAE;QAEN,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CACnC,CAAC,OAAe,EAAE,OAAe,EAAE,OAAkB,EAAE,EAAE;QAEzD,CAAC,CACF;QACD,sEAAsE;QACtE,gBAAgB;QAChB,KAAK;KAEN;CACF,CAAC"}
@@ -0,0 +1,52 @@
1
+ export declare const LICENSE_DATE_FORMAT = "YYYY-MM-DD";
2
+ export declare const RES_CODE: {
3
+ SUCCESS: {
4
+ code: number;
5
+ message: string;
6
+ };
7
+ MISSING_DATA: {
8
+ code: number;
9
+ message: string;
10
+ };
11
+ MISSING_CONFIG: {
12
+ code: number;
13
+ message: string;
14
+ };
15
+ INCORRECT_DATA: {
16
+ code: number;
17
+ message: string;
18
+ };
19
+ ALREADY_EXISTS: {
20
+ code: number;
21
+ message: string;
22
+ };
23
+ NOT_FOUND: {
24
+ code: number;
25
+ message: string;
26
+ };
27
+ FORBIDDEN: {
28
+ code: number;
29
+ message: string;
30
+ };
31
+ MISSING_MODULE: {
32
+ code: number;
33
+ message: string;
34
+ };
35
+ DECRYPT_ERR: {
36
+ code: number;
37
+ message: string;
38
+ };
39
+ GENERIC: {
40
+ code: number;
41
+ message: string;
42
+ };
43
+ AUTH_REQUIRED: {
44
+ code: number;
45
+ message: string;
46
+ };
47
+ LOGIN_ATTEMPTS: {
48
+ code: number;
49
+ message: string;
50
+ };
51
+ };
52
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAapB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RES_CODE = exports.LICENSE_DATE_FORMAT = void 0;
4
+ exports.LICENSE_DATE_FORMAT = 'YYYY-MM-DD';
5
+ exports.RES_CODE = {
6
+ SUCCESS: { code: 10, message: 'success' },
7
+ MISSING_DATA: { code: 20, message: 'missing data' },
8
+ MISSING_CONFIG: { code: 21, message: 'missing config' },
9
+ INCORRECT_DATA: { code: 23, message: 'incorrect data' },
10
+ ALREADY_EXISTS: { code: 24, message: 'item already exists' },
11
+ NOT_FOUND: { code: 25, message: 'not found' },
12
+ FORBIDDEN: { code: 26, message: 'forbidden' },
13
+ MISSING_MODULE: { code: 30, message: 'module does not exist' },
14
+ DECRYPT_ERR: { code: 40, message: 'error decrypting data' },
15
+ GENERIC: { code: 99, message: 'internal error' },
16
+ AUTH_REQUIRED: { code: 27, message: 'authentication required' },
17
+ LOGIN_ATTEMPTS: { code: 27, message: 'too many login attempts' }
18
+ };
19
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,YAAY,CAAC;AAEnC,QAAA,QAAQ,GAAG;IACtB,OAAO,EAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;IAChD,YAAY,EAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;IACrD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACvD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACvD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;IAC5D,SAAS,EAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IAClD,SAAS,EAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IAClD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;IAC9D,WAAW,EAAK,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE;IAC9D,OAAO,EAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACvD,aAAa,EAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAC;IAC/D,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAC;CAChE,CAAC"}
@@ -0,0 +1,46 @@
1
+ export declare enum SecurityLogs {
2
+ changePwdFailed = "changePwdFailed",
3
+ changePwdSuccess = "changePwdSuccess",
4
+ loginExpiredPwd = "loginExpiredPwd",
5
+ loginInvalidPwd = "loginInvalidPwd",
6
+ loginUnknownUser = "loginUnknownUser",
7
+ loginUserNotActive = "loginUserNotActive",
8
+ loginSuccess = "loginSuccess",
9
+ loginAttempts = "loginAttempts",
10
+ authRequired = "authRequired"
11
+ }
12
+ export declare enum SecurityLogLevel {
13
+ info = "info",
14
+ warning = "warn",
15
+ error = "error",
16
+ debug = "debug"
17
+ }
18
+ export declare enum AuthIssuer {
19
+ USER = "user",
20
+ DEVICE = "device",
21
+ INVITE = "invite",
22
+ OID = "openid"
23
+ }
24
+ export declare enum LOGIN_ERRORS {
25
+ USER_NOT_FOUND = "userNotFound",
26
+ USER_NOT_ACTIVE = "userNotActive",
27
+ LOGIN_FAILED = "loginFailed",
28
+ EXPIRED = "expired"
29
+ }
30
+ export declare enum BaseRoles {
31
+ SADMIN = "SUPERADMIN",
32
+ ADMIN = "ADMIN",
33
+ CONFIG = "CONFIG",
34
+ ORG_CFG = "ORG_CFG",
35
+ ORG_MANAGER = "ORG_MANAGER",
36
+ ORG_MEMBER = "ORG_MEMBER",
37
+ DRG_CALC = "DRG_CALC"
38
+ }
39
+ export declare enum UserCrudEventType {
40
+ addRole = "addRole",
41
+ removeRole = "removeRole",
42
+ addOrganization = "addOrganization",
43
+ removeOrganization = "removeOrganization",
44
+ updatePw = "updatePw"
45
+ }
46
+ //# sourceMappingURL=enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,eAAe,oBAAsB;IACrC,gBAAgB,qBAAsB;IACtC,eAAe,oBAAsB;IACrC,eAAe,oBAAsB;IACrC,gBAAgB,qBAAsB;IACtC,kBAAkB,uBAAsB;IACxC,YAAY,iBAAsB;IAClC,aAAa,kBAAsB;IACnC,YAAY,iBAAsB;CACnC;AAED,oBAAY,gBAAgB;IAC1B,IAAI,SAAY;IAChB,OAAO,SAAS;IAChB,KAAK,UAAY;IACjB,KAAK,UAAY;CAClB;AAED,oBAAY,UAAU;IACpB,IAAI,SAAW;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,GAAG,WAAc;CAClB;AAED,oBAAY,YAAY;IACtB,cAAc,iBAAkB;IAChC,eAAe,kBAAkB;IACjC,YAAY,gBAAmB;IAC/B,OAAO,YAAoB;CAC5B;AAED,oBAAY,SAAS;IACnB,MAAM,eAAoB;IAC1B,KAAK,UAAgB;IACrB,MAAM,WAAgB;IACtB,OAAO,YAAgB;IACvB,WAAW,gBAAgB;IAC3B,UAAU,eAAgB;IAC1B,QAAQ,aAAgB;CACzB;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAuB;IAC9B,UAAU,eAAuB;IACjC,eAAe,oBAAuB;IACtC,kBAAkB,uBAAuB;IACzC,QAAQ,aAAuB;CAChC"}
package/build/enums.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserCrudEventType = exports.BaseRoles = exports.LOGIN_ERRORS = exports.AuthIssuer = exports.SecurityLogLevel = exports.SecurityLogs = void 0;
4
+ var SecurityLogs;
5
+ (function (SecurityLogs) {
6
+ SecurityLogs["changePwdFailed"] = "changePwdFailed";
7
+ SecurityLogs["changePwdSuccess"] = "changePwdSuccess";
8
+ SecurityLogs["loginExpiredPwd"] = "loginExpiredPwd";
9
+ SecurityLogs["loginInvalidPwd"] = "loginInvalidPwd";
10
+ SecurityLogs["loginUnknownUser"] = "loginUnknownUser";
11
+ SecurityLogs["loginUserNotActive"] = "loginUserNotActive";
12
+ SecurityLogs["loginSuccess"] = "loginSuccess";
13
+ SecurityLogs["loginAttempts"] = "loginAttempts";
14
+ SecurityLogs["authRequired"] = "authRequired";
15
+ })(SecurityLogs || (exports.SecurityLogs = SecurityLogs = {}));
16
+ var SecurityLogLevel;
17
+ (function (SecurityLogLevel) {
18
+ SecurityLogLevel["info"] = "info";
19
+ SecurityLogLevel["warning"] = "warn";
20
+ SecurityLogLevel["error"] = "error";
21
+ SecurityLogLevel["debug"] = "debug";
22
+ })(SecurityLogLevel || (exports.SecurityLogLevel = SecurityLogLevel = {}));
23
+ var AuthIssuer;
24
+ (function (AuthIssuer) {
25
+ AuthIssuer["USER"] = "user";
26
+ AuthIssuer["DEVICE"] = "device";
27
+ AuthIssuer["INVITE"] = "invite";
28
+ AuthIssuer["OID"] = "openid";
29
+ })(AuthIssuer || (exports.AuthIssuer = AuthIssuer = {}));
30
+ var LOGIN_ERRORS;
31
+ (function (LOGIN_ERRORS) {
32
+ LOGIN_ERRORS["USER_NOT_FOUND"] = "userNotFound";
33
+ LOGIN_ERRORS["USER_NOT_ACTIVE"] = "userNotActive";
34
+ LOGIN_ERRORS["LOGIN_FAILED"] = "loginFailed";
35
+ LOGIN_ERRORS["EXPIRED"] = "expired";
36
+ })(LOGIN_ERRORS || (exports.LOGIN_ERRORS = LOGIN_ERRORS = {}));
37
+ var BaseRoles;
38
+ (function (BaseRoles) {
39
+ BaseRoles["SADMIN"] = "SUPERADMIN";
40
+ BaseRoles["ADMIN"] = "ADMIN";
41
+ BaseRoles["CONFIG"] = "CONFIG";
42
+ BaseRoles["ORG_CFG"] = "ORG_CFG";
43
+ BaseRoles["ORG_MANAGER"] = "ORG_MANAGER";
44
+ BaseRoles["ORG_MEMBER"] = "ORG_MEMBER";
45
+ BaseRoles["DRG_CALC"] = "DRG_CALC";
46
+ })(BaseRoles || (exports.BaseRoles = BaseRoles = {}));
47
+ var UserCrudEventType;
48
+ (function (UserCrudEventType) {
49
+ UserCrudEventType["addRole"] = "addRole";
50
+ UserCrudEventType["removeRole"] = "removeRole";
51
+ UserCrudEventType["addOrganization"] = "addOrganization";
52
+ UserCrudEventType["removeOrganization"] = "removeOrganization";
53
+ UserCrudEventType["updatePw"] = "updatePw";
54
+ })(UserCrudEventType || (exports.UserCrudEventType = UserCrudEventType = {}));
55
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../src/enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAUX;AAVD,WAAY,YAAY;IACtB,mDAAqC,CAAA;IACrC,qDAAsC,CAAA;IACtC,mDAAqC,CAAA;IACrC,mDAAqC,CAAA;IACrC,qDAAsC,CAAA;IACtC,yDAAwC,CAAA;IACxC,6CAAkC,CAAA;IAClC,+CAAmC,CAAA;IACnC,6CAAkC,CAAA;AACpC,CAAC,EAVW,YAAY,4BAAZ,YAAY,QAUvB;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,iCAAgB,CAAA;IAChB,oCAAgB,CAAA;IAChB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,2BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,4BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,+CAAgC,CAAA;IAChC,iDAAiC,CAAA;IACjC,4CAA+B,CAAA;IAC/B,mCAA2B,CAAA;AAC7B,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,kCAA0B,CAAA;IAC1B,4BAAqB,CAAA;IACrB,8BAAsB,CAAA;IACtB,gCAAuB,CAAA;IACvB,wCAA2B,CAAA;IAC3B,sCAA0B,CAAA;IAC1B,kCAAwB,CAAA;AAC1B,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAED,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,wCAA8B,CAAA;IAC9B,8CAAiC,CAAA;IACjC,wDAAsC,CAAA;IACtC,8DAAyC,CAAA;IACzC,0CAA+B,CAAA;AACjC,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B"}
@@ -0,0 +1,13 @@
1
+ import { CustomError } from './custom-error';
2
+ export declare class AppError extends CustomError {
3
+ message: string;
4
+ statusCode: number;
5
+ extensions: {
6
+ code: string;
7
+ };
8
+ constructor(message: string);
9
+ serializeErrors(): {
10
+ message: string;
11
+ }[];
12
+ }
13
+ //# sourceMappingURL=app-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,QAAS,SAAQ,WAAW;IAKpB,OAAO,EAAE,MAAM;IAHlC,UAAU,SAAO;IACjB,UAAU;;MAAyB;gBAEhB,OAAO,EAAE,MAAM;IAOlC,eAAe;;;CAGhB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppError = void 0;
4
+ const custom_error_1 = require("./custom-error");
5
+ class AppError extends custom_error_1.CustomError {
6
+ constructor(message) {
7
+ super(message || 'Application Error');
8
+ this.message = message;
9
+ this.statusCode = 400;
10
+ this.extensions = { code: 'APP_ERROR' };
11
+ Object.setPrototypeOf(this, AppError.prototype);
12
+ }
13
+ serializeErrors() {
14
+ return [{ message: this.message }];
15
+ }
16
+ }
17
+ exports.AppError = AppError;
18
+ //# sourceMappingURL=app-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,MAAa,QAAS,SAAQ,0BAAW;IAKvC,YAAmB,OAAe;QAEhC,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC,CAAC;QAFrB,YAAO,GAAP,OAAO,CAAQ;QAHlC,eAAU,GAAG,GAAG,CAAC;QACjB,eAAU,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAMjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;CACF;AAfD,4BAeC"}
@@ -0,0 +1,9 @@
1
+ export declare abstract class CustomError extends Error {
2
+ abstract statusCode: number;
3
+ constructor(message: string);
4
+ abstract serializeErrors(): {
5
+ message: string;
6
+ field?: string;
7
+ }[];
8
+ }
9
+ //# sourceMappingURL=custom-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-error.d.ts","sourceRoot":"","sources":["../../src/errors/custom-error.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAY,SAAQ,KAAK;IAE7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,MAAM;IAO3B,QAAQ,CAAC,eAAe,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;CAClE"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomError = void 0;
4
+ class CustomError extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ Object.setPrototypeOf(this, CustomError.prototype);
8
+ }
9
+ }
10
+ exports.CustomError = CustomError;
11
+ //# sourceMappingURL=custom-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-error.js","sourceRoot":"","sources":["../../src/errors/custom-error.ts"],"names":[],"mappings":";;;AAAA,MAAsB,WAAY,SAAQ,KAAK;IAI7C,YAAY,OAAe;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CAGF;AAZD,kCAYC"}
@@ -0,0 +1,3 @@
1
+ export * from './app-error';
2
+ export * from './custom-error';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./app-error"), exports);
18
+ __exportStar(require("./custom-error"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B"}
@@ -0,0 +1,16 @@
1
+ import { Message } from './event-message';
2
+ import { Event, MsgClientInterface, EventSubOptions } from './interfaces';
3
+ export declare abstract class Listener<T extends Event> {
4
+ abstract subject: T['subject'];
5
+ abstract queueGroupName: string;
6
+ abstract onMessage(data: T['data'], msg: Message): void;
7
+ private readonly client;
8
+ private subscription;
9
+ protected ackWait: number;
10
+ constructor(client: MsgClientInterface);
11
+ subscriptionOptions(): EventSubOptions;
12
+ listen(): void;
13
+ stopListening(): void;
14
+ private parseMessage;
15
+ }
16
+ //# sourceMappingURL=base-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAA2C,iBAAiB,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1E,8BAAsB,QAAQ,CAAC,CAAC,SAAS,KAAK;IAE5C,QAAQ,CAAC,OAAO,EAAS,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAEvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAmC;IAEvD,SAAS,CAAC,OAAO,EAAQ,MAAM,CAAY;gBAE9B,MAAM,EAAE,kBAAkB;IAIvC,mBAAmB,IAAI,eAAe;IAKtC,MAAM,IAAI,IAAI;IAiBd,aAAa,IAAI,IAAI;IAMrB,OAAO,CAAC,YAAY;CAKrB"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Listener = void 0;
4
+ const nx_frame_be_1 = require("@nextage/nx-frame-be");
5
+ class Listener {
6
+ constructor(client) {
7
+ this.ackWait = 5 * 1000;
8
+ this.client = client;
9
+ }
10
+ subscriptionOptions() {
11
+ return {};
12
+ }
13
+ listen() {
14
+ this.subscription = this.client.subscribe(this.subject, this.queueGroupName, this.subscriptionOptions());
15
+ this.subscription?.on('message', (msg) => {
16
+ nx_frame_be_1.APP.logger.info(`Message received: ${this.subject} / ${this.queueGroupName} - %o`, msg, (0, nx_frame_be_1.logClassCtx)(this));
17
+ const parsedData = this.parseMessage(msg);
18
+ this.onMessage(parsedData, msg);
19
+ });
20
+ }
21
+ stopListening() {
22
+ if (this.subscription)
23
+ this.client.unsubscribe(this.subscription);
24
+ }
25
+ parseMessage(msg) {
26
+ const data = msg.getData();
27
+ return typeof data === 'string' ? JSON.parse(data) : JSON.parse(data.toString('utf8'));
28
+ }
29
+ }
30
+ exports.Listener = Listener;
31
+ //# sourceMappingURL=base-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-listener.js","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":";;;AAAA,sDAAoF;AAKpF,MAAsB,QAAQ;IAY5B,YAAa,MAA0B;QAF7B,YAAO,GAAiB,CAAC,GAAG,IAAI,CAAC;QAGzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,mBAAmB;QAEjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM;QAEJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CACvC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,mBAAmB,EAAE,CAC3B,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;YAEhD,iBAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,OAAO,MAAM,IAAI,CAAC,cAAc,OAAO,EAAE,GAAG,EAAE,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC,CAAC;YAE3G,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa;QAEX,IAAI,IAAI,CAAC,YAAY;YACnB,IAAI,CAAC,MAAM,CAAC,WAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAEO,YAAY,CAAC,GAAY;QAE/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;CACF;AAjDD,4BAiDC"}
@@ -0,0 +1,40 @@
1
+ import { Event, MsgClientInterface, EventSubOptions } from './interfaces';
2
+ import { JsMsg } from 'nats';
3
+ export declare abstract class NatsListener<T extends Event> {
4
+ private readonly client;
5
+ abstract subject: T['subject'];
6
+ abstract queueGroupName: string;
7
+ abstract streamName: string;
8
+ private consumer?;
9
+ private isListening;
10
+ protected ackWait: number;
11
+ protected maxDeliver: number;
12
+ abstract onMessage(data: T['data'], msg: JsMsg): void;
13
+ constructor(client: MsgClientInterface);
14
+ /**
15
+ *
16
+ * @returns
17
+ */
18
+ subscriptionOptions(): EventSubOptions;
19
+ /**
20
+ *
21
+ */
22
+ listen(): Promise<void>;
23
+ /**
24
+ *
25
+ * @returns
26
+ */
27
+ private processMessages;
28
+ /**
29
+ *
30
+ * @returns
31
+ */
32
+ stop(): Promise<void>;
33
+ /**
34
+ *
35
+ * @param msg
36
+ * @returns
37
+ */
38
+ private parseMessage;
39
+ }
40
+ //# sourceMappingURL=base-nats-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-nats-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-nats-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAY,KAAK,EAAE,MAAiC,MAAM,CAAC;AAElE,8BAAsB,YAAY,CAAC,CAAC,SAAS,KAAK;IAenC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbpC,QAAQ,CAAC,OAAO,EAAS,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAM,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAsB;IAEzC,SAAS,CAAC,OAAO,EAAQ,MAAM,CAAuB;IACtD,SAAS,CAAC,UAAU,EAAK,MAAM,CAAK;IAGpC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI;gBAEvB,MAAM,EAAE,kBAAkB;IAExD;;;OAGG;IACH,mBAAmB,IAAI,eAAe;IAKtC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB7B;;;OAGG;YACW,eAAe;IAiC7B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAarB"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NatsListener = void 0;
4
+ const nx_frame_be_1 = require("@nextage/nx-frame-be");
5
+ class NatsListener {
6
+ constructor(client) {
7
+ this.client = client;
8
+ this.isListening = false;
9
+ this.ackWait = 30 * 1000 * 1000000; // 30 secondi in nanosecondi;
10
+ this.maxDeliver = 3;
11
+ }
12
+ /**
13
+ *
14
+ * @returns
15
+ */
16
+ subscriptionOptions() {
17
+ return {};
18
+ }
19
+ /**
20
+ *
21
+ */
22
+ async listen() {
23
+ try {
24
+ // Ottieni il consumer per il consumo dei messaggi
25
+ const opts = { max_deliver: this.maxDeliver, ack_wait: this.ackWait };
26
+ this.consumer = await this.client.subscribe(this.subject, this.streamName, this.queueGroupName, opts);
27
+ // APP.logger.info(`👂 Listening on '${this.subject}' with consumer '${this.queueGroupName}'`);
28
+ this.isListening = true;
29
+ this.processMessages();
30
+ }
31
+ catch (error) {
32
+ console.error(`❌ Failed to setup consumer for '${this.subject}':`, error);
33
+ throw error;
34
+ }
35
+ }
36
+ /**
37
+ *
38
+ * @returns
39
+ */
40
+ async processMessages() {
41
+ if (!this.consumer)
42
+ return;
43
+ try {
44
+ const messages = await this.consumer.consume();
45
+ for await (const msg of messages) {
46
+ if (!this.isListening)
47
+ break;
48
+ try {
49
+ nx_frame_be_1.APP.logger.info(`📥 Received message on '${this.subject}'`);
50
+ const parsedData = this.parseMessage(msg);
51
+ await this.onMessage(parsedData.data, msg);
52
+ msg.ack();
53
+ nx_frame_be_1.APP.logger.info(`✅ Message acknowledged on '${this.subject}'`);
54
+ }
55
+ catch (error) {
56
+ console.error(`❌ Error processing message on '${this.subject}':`, error);
57
+ msg.nak();
58
+ }
59
+ }
60
+ }
61
+ catch (error) {
62
+ if (this.isListening) {
63
+ console.error(`❌ Consumer error on '${this.subject}':`, error);
64
+ // Riprova dopo un breve delay
65
+ setTimeout(() => this.processMessages(), 5000);
66
+ }
67
+ }
68
+ }
69
+ /**
70
+ *
71
+ * @returns
72
+ */
73
+ async stop() {
74
+ this.isListening = false;
75
+ if (!this.consumer)
76
+ return;
77
+ try {
78
+ await this.client.unsubscribe(this.subject, this.streamName, this.queueGroupName);
79
+ nx_frame_be_1.APP.logger.info(`🛑 Stopped and deleted consumer '${this.queueGroupName}' for '${this.subject}'`);
80
+ }
81
+ catch (error) {
82
+ nx_frame_be_1.APP.logger.info(`🛑 Stopped listening on '${this.subject}' (consumer may have been already deleted)`);
83
+ }
84
+ }
85
+ /**
86
+ *
87
+ * @param msg
88
+ * @returns
89
+ */
90
+ parseMessage(msg) {
91
+ try {
92
+ const decoded = new TextDecoder().decode(msg.data);
93
+ return JSON.parse(decoded);
94
+ }
95
+ catch (error) {
96
+ console.error('❌ Failed to parse message:', error);
97
+ throw new Error('Invalid message format');
98
+ }
99
+ }
100
+ }
101
+ exports.NatsListener = NatsListener;
102
+ //# sourceMappingURL=base-nats-listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-nats-listener.js","sourceRoot":"","sources":["../../src/events/base-nats-listener.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { JetStreamPublishOptions } from 'nats';
2
+ import { Event, MsgClientInterface } from './interfaces';
3
+ export declare abstract class NatsPublisher<T extends Event> {
4
+ private readonly client;
5
+ abstract subject: T['subject'];
6
+ constructor(client: MsgClientInterface);
7
+ /**
8
+ *
9
+ * @param data
10
+ * @param options
11
+ */
12
+ publish(data: T['data'], options?: Partial<JetStreamPublishOptions>): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=base-nats-publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-nats-publisher.d.ts","sourceRoot":"","sources":["../../src/events/base-nats-publisher.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAQ,MAAM,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEzD,8BAAsB,aAAa,CAAC,CAAC,SAAS,KAAK;IAIrC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBAEF,MAAM,EAAE,kBAAkB;IAEvD;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB1F"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NatsPublisher = void 0;
4
+ const nx_frame_be_1 = require("@nextage/nx-frame-be");
5
+ class NatsPublisher {
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ /**
10
+ *
11
+ * @param data
12
+ * @param options
13
+ */
14
+ async publish(data, options) {
15
+ try {
16
+ const message = {
17
+ id: (0, nx_frame_be_1.uuid)(),
18
+ subject: this.subject,
19
+ data,
20
+ timestamp: new Date().toISOString(),
21
+ };
22
+ await this.client.publish(this.subject, JSON.stringify(message), options);
23
+ }
24
+ catch (error) {
25
+ console.error(`❌ Failed to publish to '${this.subject}':`, error);
26
+ throw error;
27
+ }
28
+ }
29
+ }
30
+ exports.NatsPublisher = NatsPublisher;
31
+ //# sourceMappingURL=base-nats-publisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-nats-publisher.js","sourceRoot":"","sources":["../../src/events/base-nats-publisher.ts"],"names":[],"mappings":";;;AAAA,sDAAiE;AAIjE,MAAsB,aAAa;IAIjC,YAA6B,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAE3D;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,IAAe,EAAE,OAA0C;QAExE,IAAI,CAAC;YAEF,MAAM,OAAO,GAAG;gBACd,EAAE,EAAO,IAAA,kBAAI,GAAE;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI;gBACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YAEF,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACvB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,OAAO,CACR,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAjCD,sCAiCC"}
@@ -0,0 +1,13 @@
1
+ import { Event, MsgClientInterface } from './interfaces';
2
+ export declare abstract class Publisher<T extends Event> {
3
+ abstract subject: T['subject'];
4
+ private readonly client;
5
+ constructor(client: MsgClientInterface);
6
+ /**
7
+ *
8
+ * @param data
9
+ * @returns
10
+ */
11
+ publish(data: T['data']): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=base-publisher.d.ts.map