@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.
- package/build/__mocks__/msg-wrapper.d.ts +6 -0
- package/build/__mocks__/msg-wrapper.d.ts.map +1 -0
- package/build/__mocks__/msg-wrapper.js +13 -0
- package/build/__mocks__/msg-wrapper.js.map +1 -0
- package/build/__mocks__/nats-wrapper.d.ts +6 -0
- package/build/__mocks__/nats-wrapper.d.ts.map +1 -0
- package/build/__mocks__/nats-wrapper.js +13 -0
- package/build/__mocks__/nats-wrapper.js.map +1 -0
- package/build/constants.d.ts +52 -0
- package/build/constants.d.ts.map +1 -0
- package/build/constants.js +19 -0
- package/build/constants.js.map +1 -0
- package/build/enums.d.ts +46 -0
- package/build/enums.d.ts.map +1 -0
- package/build/enums.js +55 -0
- package/build/enums.js.map +1 -0
- package/build/errors/app-error.d.ts +13 -0
- package/build/errors/app-error.d.ts.map +1 -0
- package/build/errors/app-error.js +18 -0
- package/build/errors/app-error.js.map +1 -0
- package/build/errors/custom-error.d.ts +9 -0
- package/build/errors/custom-error.d.ts.map +1 -0
- package/build/errors/custom-error.js +11 -0
- package/build/errors/custom-error.js.map +1 -0
- package/build/errors/index.d.ts +3 -0
- package/build/errors/index.d.ts.map +1 -0
- package/build/errors/index.js +19 -0
- package/build/errors/index.js.map +1 -0
- package/build/events/base-listener.d.ts +16 -0
- package/build/events/base-listener.d.ts.map +1 -0
- package/build/events/base-listener.js +31 -0
- package/build/events/base-listener.js.map +1 -0
- package/build/events/base-nats-listener.d.ts +40 -0
- package/build/events/base-nats-listener.d.ts.map +1 -0
- package/build/events/base-nats-listener.js +102 -0
- package/build/events/base-nats-listener.js.map +1 -0
- package/build/events/base-nats-publisher.d.ts +14 -0
- package/build/events/base-nats-publisher.d.ts.map +1 -0
- package/build/events/base-nats-publisher.js +31 -0
- package/build/events/base-nats-publisher.js.map +1 -0
- package/build/events/base-publisher.d.ts +13 -0
- package/build/events/base-publisher.d.ts.map +1 -0
- package/build/events/base-publisher.js +18 -0
- package/build/events/base-publisher.js.map +1 -0
- package/build/events/business-unit/created-event.d.ts +7 -0
- package/build/events/business-unit/created-event.d.ts.map +1 -0
- package/build/events/business-unit/created-event.js +3 -0
- package/build/events/business-unit/created-event.js.map +1 -0
- package/build/events/business-unit/index.d.ts +4 -0
- package/build/events/business-unit/index.d.ts.map +1 -0
- package/build/events/business-unit/index.js +20 -0
- package/build/events/business-unit/index.js.map +1 -0
- package/build/events/business-unit/removed-event.d.ts +7 -0
- package/build/events/business-unit/removed-event.d.ts.map +1 -0
- package/build/events/business-unit/removed-event.js +3 -0
- package/build/events/business-unit/removed-event.js.map +1 -0
- package/build/events/business-unit/updated-event.d.ts +7 -0
- package/build/events/business-unit/updated-event.d.ts.map +1 -0
- package/build/events/business-unit/updated-event.js +3 -0
- package/build/events/business-unit/updated-event.js.map +1 -0
- package/build/events/employee/created-event.d.ts +7 -0
- package/build/events/employee/created-event.d.ts.map +1 -0
- package/build/events/employee/created-event.js +3 -0
- package/build/events/employee/created-event.js.map +1 -0
- package/build/events/employee/index.d.ts +4 -0
- package/build/events/employee/index.d.ts.map +1 -0
- package/build/events/employee/index.js +20 -0
- package/build/events/employee/index.js.map +1 -0
- package/build/events/employee/interfaces.d.ts +8 -0
- package/build/events/employee/interfaces.d.ts.map +1 -0
- package/build/events/employee/interfaces.js +3 -0
- package/build/events/employee/interfaces.js.map +1 -0
- package/build/events/employee/removed-event.d.ts +7 -0
- package/build/events/employee/removed-event.d.ts.map +1 -0
- package/build/events/employee/removed-event.js +3 -0
- package/build/events/employee/removed-event.js.map +1 -0
- package/build/events/employee/updated-event.d.ts +7 -0
- package/build/events/employee/updated-event.d.ts.map +1 -0
- package/build/events/employee/updated-event.js +3 -0
- package/build/events/employee/updated-event.js.map +1 -0
- package/build/events/employee-role/created-event.d.ts +7 -0
- package/build/events/employee-role/created-event.d.ts.map +1 -0
- package/build/events/employee-role/created-event.js +3 -0
- package/build/events/employee-role/created-event.js.map +1 -0
- package/build/events/employee-role/index.d.ts +4 -0
- package/build/events/employee-role/index.d.ts.map +1 -0
- package/build/events/employee-role/index.js +20 -0
- package/build/events/employee-role/index.js.map +1 -0
- package/build/events/employee-role/removed-event.d.ts +7 -0
- package/build/events/employee-role/removed-event.d.ts.map +1 -0
- package/build/events/employee-role/removed-event.js +3 -0
- package/build/events/employee-role/removed-event.js.map +1 -0
- package/build/events/employee-role/updated-event.d.ts +7 -0
- package/build/events/employee-role/updated-event.d.ts.map +1 -0
- package/build/events/employee-role/updated-event.js +3 -0
- package/build/events/employee-role/updated-event.js.map +1 -0
- package/build/events/event-message.d.ts +7 -0
- package/build/events/event-message.d.ts.map +1 -0
- package/build/events/event-message.js +16 -0
- package/build/events/event-message.js.map +1 -0
- package/build/events/event-subscription.d.ts +10 -0
- package/build/events/event-subscription.d.ts.map +1 -0
- package/build/events/event-subscription.js +16 -0
- package/build/events/event-subscription.js.map +1 -0
- package/build/events/index.d.ts +13 -0
- package/build/events/index.d.ts.map +1 -0
- package/build/events/index.js +35 -0
- package/build/events/index.js.map +1 -0
- package/build/events/interfaces.d.ts +16 -0
- package/build/events/interfaces.d.ts.map +1 -0
- package/build/events/interfaces.js +3 -0
- package/build/events/interfaces.js.map +1 -0
- package/build/events/msg-client-manager.d.ts +38 -0
- package/build/events/msg-client-manager.d.ts.map +1 -0
- package/build/events/msg-client-manager.js +93 -0
- package/build/events/msg-client-manager.js.map +1 -0
- package/build/events/nats-client-manager.d.ts +51 -0
- package/build/events/nats-client-manager.d.ts.map +1 -0
- package/build/events/nats-client-manager.js +169 -0
- package/build/events/nats-client-manager.js.map +1 -0
- package/build/events/nats-client-manager.old.d.ts +49 -0
- package/build/events/nats-client-manager.old.d.ts.map +1 -0
- package/build/events/nats-client-manager.old.js +108 -0
- package/build/events/nats-client-manager.old.js.map +1 -0
- package/build/events/types/base-event.controller.d.ts +44 -0
- package/build/events/types/base-event.controller.d.ts.map +1 -0
- package/build/events/types/base-event.controller.js +65 -0
- package/build/events/types/base-event.controller.js.map +1 -0
- package/build/events/types/employee.enums.d.ts +8 -0
- package/build/events/types/employee.enums.d.ts.map +1 -0
- package/build/events/types/employee.enums.js +12 -0
- package/build/events/types/employee.enums.js.map +1 -0
- package/build/events/types/enums.d.ts +26 -0
- package/build/events/types/enums.d.ts.map +1 -0
- package/build/events/types/enums.js +40 -0
- package/build/events/types/enums.js.map +1 -0
- package/build/events/types/events.interfaces.d.ts +13 -0
- package/build/events/types/events.interfaces.d.ts.map +1 -0
- package/build/events/types/events.interfaces.js +3 -0
- package/build/events/types/events.interfaces.js.map +1 -0
- package/build/events/types/index.d.ts +6 -0
- package/build/events/types/index.d.ts.map +1 -0
- package/build/events/types/index.js +22 -0
- package/build/events/types/index.js.map +1 -0
- package/build/events/types/order.enums.d.ts +8 -0
- package/build/events/types/order.enums.d.ts.map +1 -0
- package/build/events/types/order.enums.js +17 -0
- package/build/events/types/order.enums.js.map +1 -0
- package/build/events/types/project.enums.d.ts +8 -0
- package/build/events/types/project.enums.d.ts.map +1 -0
- package/build/events/types/project.enums.js +12 -0
- package/build/events/types/project.enums.js.map +1 -0
- package/build/index.d.ts +8 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +24 -0
- package/build/index.js.map +1 -0
- package/build/interfaces.d.ts +47 -0
- package/build/interfaces.d.ts.map +1 -0
- package/build/interfaces.js +3 -0
- package/build/interfaces.js.map +1 -0
- package/build/msg-wrapper.d.ts +10 -0
- package/build/msg-wrapper.d.ts.map +1 -0
- package/build/msg-wrapper.js +18 -0
- package/build/msg-wrapper.js.map +1 -0
- package/build/nats-wrapper.d.ts +14 -0
- package/build/nats-wrapper.d.ts.map +1 -0
- package/build/nats-wrapper.js +24 -0
- package/build/nats-wrapper.js.map +1 -0
- package/build/routes/index.d.ts +3 -0
- package/build/routes/index.d.ts.map +1 -0
- package/build/routes/index.js +19 -0
- package/build/routes/index.js.map +1 -0
- package/build/routes/swagger.d.ts +13 -0
- package/build/routes/swagger.d.ts.map +1 -0
- package/build/routes/swagger.js +13 -0
- package/build/routes/swagger.js.map +1 -0
- package/build/routes/validators.d.ts +11 -0
- package/build/routes/validators.d.ts.map +1 -0
- package/build/routes/validators.js +17 -0
- package/build/routes/validators.js.map +1 -0
- package/build/services/index.d.ts +2 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +18 -0
- package/build/services/index.js.map +1 -0
- package/build/services/password.d.ts +5 -0
- package/build/services/password.d.ts.map +1 -0
- package/build/services/password.js +20 -0
- package/build/services/password.js.map +1 -0
- package/build/types/base-user/index.d.ts +7 -0
- package/build/types/base-user/index.d.ts.map +1 -0
- package/build/types/base-user/index.js +3 -0
- package/build/types/base-user/index.js.map +1 -0
- package/build/types/express-session/index.d.ts +10 -0
- package/build/types/express-session/index.d.ts.map +1 -0
- package/build/types/express-session/index.js +3 -0
- package/build/types/express-session/index.js.map +1 -0
- package/build/utils/express.d.ts +31 -0
- package/build/utils/express.d.ts.map +1 -0
- package/build/utils/express.js +77 -0
- package/build/utils/express.js.map +1 -0
- package/build/utils/functs.d.ts +45 -0
- package/build/utils/functs.d.ts.map +1 -0
- package/build/utils/functs.js +269 -0
- package/build/utils/functs.js.map +1 -0
- package/build/utils/index.d.ts +3 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +19 -0
- package/build/utils/index.js.map +1 -0
- package/package.json +64 -0
|
@@ -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 @@
|
|
|
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"}
|
package/build/enums.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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
|