@haku-sci/utils 2.0.1 → 2.2.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.
- package/dist/TCP/restrict-sender.decorator.d.ts +2 -0
- package/dist/TCP/restrict-sender.decorator.js +11 -0
- package/dist/TCP/restrict-sender.decorator.js.map +1 -0
- package/dist/TCP/restrict-sender.interceptor.d.ts +8 -0
- package/dist/TCP/restrict-sender.interceptor.js +46 -0
- package/dist/TCP/restrict-sender.interceptor.js.map +1 -0
- package/dist/TCP/tcp.module.d.ts +2 -0
- package/dist/TCP/tcp.module.js +23 -0
- package/dist/TCP/tcp.module.js.map +1 -0
- package/dist/TCP/tcp.service.d.ts +6 -0
- package/dist/TCP/tcp.service.js +85 -0
- package/dist/TCP/tcp.service.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/microservice/consul.js.map +1 -1
- package/dist/microservice/exceptionFilter.d.ts +4 -1
- package/dist/microservice/exceptionFilter.js +12 -6
- package/dist/microservice/exceptionFilter.js.map +1 -1
- package/dist/microservice/microservice.service.d.ts +2 -2
- package/dist/microservice/microservice.service.js +3 -24
- package/dist/microservice/microservice.service.js.map +1 -1
- package/dist/microservice/tcp.service.d.ts +1 -3
- package/dist/microservice/tcp.service.js +38 -35
- package/dist/microservice/tcp.service.js.map +1 -1
- package/dist/rabbit-mq/rabbit-mq.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const RESTRICT_SENDER_KEY = "restrict_sender";
|
|
2
|
+
export declare function RestrictSender(allowedSenders: string[] | string): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RESTRICT_SENDER_KEY = void 0;
|
|
4
|
+
exports.RestrictSender = RestrictSender;
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const restrict_sender_interceptor_1 = require("./restrict-sender.interceptor");
|
|
7
|
+
exports.RESTRICT_SENDER_KEY = 'restrict_sender';
|
|
8
|
+
function RestrictSender(allowedSenders) {
|
|
9
|
+
return (0, common_1.applyDecorators)((0, common_1.SetMetadata)(exports.RESTRICT_SENDER_KEY, allowedSenders), (0, common_1.UseInterceptors)(restrict_sender_interceptor_1.RestrictSenderInterceptor));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=restrict-sender.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restrict-sender.decorator.js","sourceRoot":"","sources":["../../src/TCP/restrict-sender.decorator.ts"],"names":[],"mappings":";;;AAKA,wCAKC;AAVD,2CAA+E;AAC/E,+EAA0E;AAE7D,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,SAAgB,cAAc,CAAC,cAAiC;IAC9D,OAAO,IAAA,wBAAe,EACpB,IAAA,oBAAW,EAAC,2BAAmB,EAAE,cAAc,CAAC,EAChD,IAAA,wBAAe,EAAC,uDAAyB,CAAC,CAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { Reflector } from '@nestjs/core';
|
|
4
|
+
export declare class RestrictSenderInterceptor implements NestInterceptor {
|
|
5
|
+
private reflector;
|
|
6
|
+
constructor(reflector: Reflector);
|
|
7
|
+
intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RestrictSenderInterceptor = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const core_1 = require("@nestjs/core");
|
|
15
|
+
const restrict_sender_decorator_1 = require("./restrict-sender.decorator");
|
|
16
|
+
let RestrictSenderInterceptor = class RestrictSenderInterceptor {
|
|
17
|
+
constructor(reflector) {
|
|
18
|
+
this.reflector = reflector;
|
|
19
|
+
}
|
|
20
|
+
intercept(context, next) {
|
|
21
|
+
const ctx = context.switchToRpc();
|
|
22
|
+
const data = ctx.getData();
|
|
23
|
+
const sender = data?.sender;
|
|
24
|
+
const handler = context.getHandler();
|
|
25
|
+
const target = context.getClass();
|
|
26
|
+
const methodRestriction = this.reflector.get(restrict_sender_decorator_1.RESTRICT_SENDER_KEY, handler);
|
|
27
|
+
const classRestriction = this.reflector.get(restrict_sender_decorator_1.RESTRICT_SENDER_KEY, target);
|
|
28
|
+
if (methodRestriction === '*') {
|
|
29
|
+
return next.handle();
|
|
30
|
+
}
|
|
31
|
+
const allowedSenders = methodRestriction ?? classRestriction ?? [];
|
|
32
|
+
if (allowedSenders === '*') {
|
|
33
|
+
return next.handle();
|
|
34
|
+
}
|
|
35
|
+
if (allowedSenders !== sender && !allowedSenders.includes(sender)) {
|
|
36
|
+
throw new common_1.ForbiddenException(`Sender '${sender}' is not authorized`);
|
|
37
|
+
}
|
|
38
|
+
return next.handle();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.RestrictSenderInterceptor = RestrictSenderInterceptor;
|
|
42
|
+
exports.RestrictSenderInterceptor = RestrictSenderInterceptor = __decorate([
|
|
43
|
+
(0, common_1.Injectable)(),
|
|
44
|
+
__metadata("design:paramtypes", [core_1.Reflector])
|
|
45
|
+
], RestrictSenderInterceptor);
|
|
46
|
+
//# sourceMappingURL=restrict-sender.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restrict-sender.interceptor.js","sourceRoot":"","sources":["../../src/TCP/restrict-sender.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAMwB;AAExB,uCAAyC;AACzC,2EAAkE;AAG3D,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAI,CAAC;IAE7C,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QAE5B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAElC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAC1C,+CAAmB,EACnB,OAAO,CACR,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CACzC,+CAAmB,EACnB,MAAM,CACP,CAAC;QAGF,IAAI,iBAAiB,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAGD,MAAM,cAAc,GAAsB,iBAAiB,IAAI,gBAAgB,IAAI,EAAE,CAAC;QAEtF,IAAI,cAAc,KAAK,GAAG,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,cAAc,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,2BAAkB,CAAC,WAAW,MAAM,qBAAqB,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAvCY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;qCAEoB,gBAAS;GAD7B,yBAAyB,CAuCrC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TcpModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const tcp_service_1 = require("./tcp.service");
|
|
12
|
+
const core_1 = require("@nestjs/core");
|
|
13
|
+
const restrict_sender_interceptor_1 = require("./restrict-sender.interceptor");
|
|
14
|
+
let TcpModule = class TcpModule {
|
|
15
|
+
};
|
|
16
|
+
exports.TcpModule = TcpModule;
|
|
17
|
+
exports.TcpModule = TcpModule = __decorate([
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
providers: [tcp_service_1.TCPService, core_1.Reflector, restrict_sender_interceptor_1.RestrictSenderInterceptor],
|
|
20
|
+
exports: [tcp_service_1.TCPService]
|
|
21
|
+
})
|
|
22
|
+
], TcpModule);
|
|
23
|
+
//# sourceMappingURL=tcp.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp.module.js","sourceRoot":"","sources":["../../src/TCP/tcp.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAA2C;AAC3C,uCAAyC;AACzC,+EAA0E;AAMnE,IAAM,SAAS,GAAf,MAAM,SAAS;CAAI,CAAA;AAAb,8BAAS;oBAAT,SAAS;IAJrB,IAAA,eAAM,EAAC;QACJ,SAAS,EAAE,CAAC,wBAAU,EAAE,gBAAS,EAAE,uDAAyB,CAAC;QAC7D,OAAO,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAI"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
export declare class TCPService {
|
|
3
|
+
static sendMessage(service: any, action: string, resource?: string, payload?: any): Promise<any>;
|
|
4
|
+
static registerHakuSciMessageHandlers(app: any, logger: Logger): Promise<void>;
|
|
5
|
+
private static wrapHandler;
|
|
6
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var TCPService_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.TCPService = void 0;
|
|
11
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
12
|
+
const rxjs_1 = require("rxjs");
|
|
13
|
+
const utils = require("../utils");
|
|
14
|
+
const consul_1 = require("../microservice/consul");
|
|
15
|
+
const common_1 = require("@nestjs/common");
|
|
16
|
+
const exceptionFilter_1 = require("../microservice/exceptionFilter");
|
|
17
|
+
const constants_1 = require("@nestjs/microservices/constants");
|
|
18
|
+
const constants_2 = require("@nestjs/common/constants");
|
|
19
|
+
const nestjs_discovery_1 = require("@golevelup/nestjs-discovery");
|
|
20
|
+
let TCPService = TCPService_1 = class TCPService {
|
|
21
|
+
static async sendMessage(service, action, resource, payload) {
|
|
22
|
+
const client = await microservices_1.ClientProxyFactory.create({
|
|
23
|
+
transport: microservices_1.Transport.TCP,
|
|
24
|
+
options: await consul_1.Consul.getServiceURI(service),
|
|
25
|
+
});
|
|
26
|
+
try {
|
|
27
|
+
payload.sender = await utils.microServiceName();
|
|
28
|
+
let response$ = await client.send([resource, action].join("/"), payload).pipe((0, rxjs_1.catchError)(err => (0, rxjs_1.throwError)(() => new common_1.HttpException(err, err.status || 400))));
|
|
29
|
+
const watchdogTimeout = parseInt(process.env.WATCHDOG);
|
|
30
|
+
if (!isNaN(watchdogTimeout) && watchdogTimeout > 0)
|
|
31
|
+
response$ = response$.pipe((0, rxjs_1.timeout)({ first: watchdogTimeout }));
|
|
32
|
+
response$ = response$.pipe((0, rxjs_1.defaultIfEmpty)(null));
|
|
33
|
+
const result = await (0, rxjs_1.lastValueFrom)(response$);
|
|
34
|
+
if (result?.error)
|
|
35
|
+
(0, rxjs_1.throwError)(() => new Error(`[${service}] ${result.message}`));
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
try {
|
|
40
|
+
await client.close();
|
|
41
|
+
}
|
|
42
|
+
catch (closeError) {
|
|
43
|
+
console.error("Error closing client:", closeError.message);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
static async registerHakuSciMessageHandlers(app, logger) {
|
|
48
|
+
const moduleRef = app.select(nestjs_discovery_1.DiscoveryModule);
|
|
49
|
+
const discoveryService = moduleRef.get(nestjs_discovery_1.DiscoveryService, { strict: false });
|
|
50
|
+
const controllers = await discoveryService.controllers(() => true);
|
|
51
|
+
for (const { instance } of controllers) {
|
|
52
|
+
const resource = Reflect.getMetadata(constants_2.PATH_METADATA, instance.constructor).replace("/", "");
|
|
53
|
+
const prototype = Object.getPrototypeOf(instance);
|
|
54
|
+
for (const propertyName of Object.getOwnPropertyNames(prototype)) {
|
|
55
|
+
const method = prototype[propertyName];
|
|
56
|
+
if (propertyName === 'constructor' || typeof method !== 'function')
|
|
57
|
+
continue;
|
|
58
|
+
const action = Reflect.getMetadata(constants_1.PATTERN_METADATA, method)?.[0];
|
|
59
|
+
if (action) {
|
|
60
|
+
const handler = TCPService_1.wrapHandler(instance, propertyName, logger);
|
|
61
|
+
app.serverInstance.addHandler([resource, action].join("/"), handler, false);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
static wrapHandler(instance, methodName, logger) {
|
|
67
|
+
return async function boundHandler(data, context) {
|
|
68
|
+
try {
|
|
69
|
+
return await instance[methodName].call(instance, data);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
const host = {
|
|
73
|
+
switchToRpc: () => ({ getContext: () => context }),
|
|
74
|
+
getArgByIndex: (i) => (i === 0 ? data : context),
|
|
75
|
+
};
|
|
76
|
+
return new exceptionFilter_1.AllExceptionsFilter(logger).catch(err, host);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.TCPService = TCPService;
|
|
82
|
+
exports.TCPService = TCPService = TCPService_1 = __decorate([
|
|
83
|
+
(0, common_1.Injectable)()
|
|
84
|
+
], TCPService);
|
|
85
|
+
//# sourceMappingURL=tcp.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp.service.js","sourceRoot":"","sources":["../../src/TCP/tcp.service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './microservice/microservice.service';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './TCP/tcp.service';
|
|
3
|
+
export * from './TCP/tcp.module';
|
|
4
|
+
export * from './TCP/restrict-sender.decorator';
|
|
5
|
+
export * from './TCP/restrict-sender.interceptor';
|
|
3
6
|
export * from './rabbit-mq/rabbit-mq.module';
|
|
4
7
|
export * from './rabbit-mq/rabbit-mq.service';
|
|
5
8
|
export * from './utils';
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./microservice/microservice.service"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./TCP/tcp.service"), exports);
|
|
19
|
+
__exportStar(require("./TCP/tcp.module"), exports);
|
|
20
|
+
__exportStar(require("./TCP/restrict-sender.decorator"), exports);
|
|
21
|
+
__exportStar(require("./TCP/restrict-sender.interceptor"), exports);
|
|
19
22
|
__exportStar(require("./rabbit-mq/rabbit-mq.module"), exports);
|
|
20
23
|
__exportStar(require("./rabbit-mq/rabbit-mq.service"), exports);
|
|
21
24
|
__exportStar(require("./utils"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,oDAAkC;AAClC,mDAAiC;AACjC,kEAAgD;AAChD,oEAAkD;AAClD,+DAA6C;AAC7C,gEAA8C;AAC9C,0CAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consul.js","sourceRoot":"","sources":["../../src/microservice/consul.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAE1B,kCAAiC;AACjC,2CAAqE;AAErE,MAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"consul.js","sourceRoot":"","sources":["../../src/microservice/consul.ts"],"names":[],"mappings":";;;AAAA,iCAA0B;AAE1B,kCAAiC;AACjC,2CAAqE;AAErE,MAAa,MAAM;IACjB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,aAA8B,EAAE,MAAc;QACzE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAC5B,OAAO;QACT,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG;YAClB,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,KAAK,EAAE;gBACL,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE;gBACrD,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI;gBACb,8BAA8B,EAAE,IAAI;aACrC;SACF,CAAC;QAEF,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;QACvF,MAAM,CAAC,GAAG,CAAC,qCAAqC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC5C,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;QACnG,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;QAElC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;YAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,IAAI;aACX,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,oCAA2B,CAAC,WAAW,WAAW,8BAA8B,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;CACF;AAtCD,wBAsCC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { ArgumentsHost,
|
|
1
|
+
import { ArgumentsHost, Logger, RpcExceptionFilter } from '@nestjs/common';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
export declare class AllExceptionsFilter implements RpcExceptionFilter<any> {
|
|
4
4
|
private readonly logger;
|
|
5
5
|
constructor(logger: Logger);
|
|
6
|
+
handleUnknownError(exception: any, status: string): Observable<never>;
|
|
7
|
+
isError(exception: any): exception is Error;
|
|
6
8
|
catch(exception: any, host: ArgumentsHost): Observable<any>;
|
|
9
|
+
private handleException;
|
|
7
10
|
}
|
|
@@ -11,23 +11,29 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AllExceptionsFilter = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
|
-
const microservices_1 = require("@nestjs/microservices");
|
|
15
14
|
const rxjs_1 = require("rxjs");
|
|
15
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
16
16
|
let AllExceptionsFilter = class AllExceptionsFilter {
|
|
17
17
|
constructor(logger) {
|
|
18
18
|
this.logger = logger;
|
|
19
19
|
this.logger.log('ExceptionsHandler initialized');
|
|
20
20
|
}
|
|
21
|
+
handleUnknownError(exception, status) {
|
|
22
|
+
return this.handleException(exception);
|
|
23
|
+
}
|
|
24
|
+
isError(exception) {
|
|
25
|
+
throw new Error('Method not implemented.');
|
|
26
|
+
}
|
|
21
27
|
catch(exception, host) {
|
|
22
|
-
this.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return (0, rxjs_1.throwError)(() => new
|
|
28
|
+
return this.handleException(exception);
|
|
29
|
+
}
|
|
30
|
+
handleException(exception) {
|
|
31
|
+
return (0, rxjs_1.throwError)(() => new microservices_1.RpcException(exception));
|
|
26
32
|
}
|
|
27
33
|
};
|
|
28
34
|
exports.AllExceptionsFilter = AllExceptionsFilter;
|
|
29
35
|
exports.AllExceptionsFilter = AllExceptionsFilter = __decorate([
|
|
30
|
-
(0, common_1.Catch)(),
|
|
36
|
+
(0, common_1.Catch)(microservices_1.RpcException),
|
|
31
37
|
__metadata("design:paramtypes", [common_1.Logger])
|
|
32
38
|
], AllExceptionsFilter);
|
|
33
39
|
//# sourceMappingURL=exceptionFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exceptionFilter.js","sourceRoot":"","sources":["../../src/microservice/exceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"exceptionFilter.js","sourceRoot":"","sources":["../../src/microservice/exceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkF;AAClF,+BAA8C;AAC9C,yDAAqD;AAE9C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE9B,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,kBAAkB,CAAC,SAAc,EAAE,MAAc;QAC/C,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAsB,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,SAAc;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,SAAc,EAAE,IAAmB;QACvC,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAEO,eAAe,CAAC,SAAc;QACpC,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,4BAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AArBY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,cAAK,EAAC,4BAAY,CAAC;qCAGE,eAAM;GAFf,mBAAmB,CAqB/B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
1
2
|
export declare class Microservice {
|
|
2
3
|
private static serverAddress;
|
|
3
|
-
|
|
4
|
+
static logger: Logger;
|
|
4
5
|
static bootstrapMicroservice(appModule: any): Promise<void>;
|
|
5
|
-
static registerHakuSciMessageHandlers(app: any): Promise<void>;
|
|
6
6
|
private static isPortFree;
|
|
7
7
|
private static setServerAddress;
|
|
8
8
|
private static startMainMicroService;
|
|
@@ -7,11 +7,9 @@ const microservices_1 = require("@nestjs/microservices");
|
|
|
7
7
|
const net = require("net");
|
|
8
8
|
const utils = require("../utils");
|
|
9
9
|
const exceptionFilter_1 = require("./exceptionFilter");
|
|
10
|
-
const nestjs_discovery_1 = require("@golevelup/nestjs-discovery");
|
|
11
|
-
const constants_1 = require("@nestjs/common/constants");
|
|
12
|
-
const constants_2 = require("@nestjs/microservices/constants");
|
|
13
10
|
const os = require("os");
|
|
14
11
|
const consul_1 = require("./consul");
|
|
12
|
+
const tcp_service_1 = require("../TCP/tcp.service");
|
|
15
13
|
class Microservice {
|
|
16
14
|
static async bootstrapMicroservice(appModule) {
|
|
17
15
|
this.setServerAddress();
|
|
@@ -21,28 +19,9 @@ class Microservice {
|
|
|
21
19
|
postGresService.createDatabaseIfNotExists();
|
|
22
20
|
}
|
|
23
21
|
const app = await this.startMainMicroService(appModule);
|
|
24
|
-
await
|
|
22
|
+
await tcp_service_1.TCPService.registerHakuSciMessageHandlers(app, this.logger);
|
|
25
23
|
consul_1.Consul.registerService(this.serverAddress, this.logger);
|
|
26
24
|
}
|
|
27
|
-
static async registerHakuSciMessageHandlers(app) {
|
|
28
|
-
const moduleRef = app.select(nestjs_discovery_1.DiscoveryModule);
|
|
29
|
-
const discoveryService = moduleRef.get(nestjs_discovery_1.DiscoveryService, { strict: false });
|
|
30
|
-
const controllers = await discoveryService.controllers(() => true);
|
|
31
|
-
for (const { instance } of controllers) {
|
|
32
|
-
const resource = Reflect.getMetadata(constants_1.PATH_METADATA, instance.constructor).replace("/", "");
|
|
33
|
-
const prototype = Object.getPrototypeOf(instance);
|
|
34
|
-
for (const propertyName of Object.getOwnPropertyNames(prototype)) {
|
|
35
|
-
const method = prototype[propertyName];
|
|
36
|
-
if (propertyName === 'constructor' || typeof method !== 'function')
|
|
37
|
-
continue;
|
|
38
|
-
const action = Reflect.getMetadata(constants_2.PATTERN_METADATA, method)?.[0];
|
|
39
|
-
if (action) {
|
|
40
|
-
const handler = method.bind(instance);
|
|
41
|
-
app.serverInstance.addHandler([resource, action].join("/"), handler, false);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
25
|
static isPortFree(port) {
|
|
47
26
|
return new Promise((resolve) => {
|
|
48
27
|
const server = net.createServer();
|
|
@@ -61,7 +40,7 @@ class Microservice {
|
|
|
61
40
|
});
|
|
62
41
|
}
|
|
63
42
|
static async setServerAddress() {
|
|
64
|
-
this.serverAddress.address = Object.values(os.networkInterfaces())
|
|
43
|
+
this.serverAddress.address = process.env.DEBUG ? "127.0.0.1" : Object.values(os.networkInterfaces())
|
|
65
44
|
.flatMap((iface) => iface ?? [])
|
|
66
45
|
.find((addr) => addr.family === 'IPv4' && !addr.internal)
|
|
67
46
|
.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAC3D,uCAA2C;AAC3C,yDAAuE;AACvE,2BAA2B;AAC3B,kCAAiC;AAEjC,uDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
static sendMessage(service: any, action: string, resource?: string, payload?: any): Promise<any>;
|
|
3
|
-
}
|
|
1
|
+
export declare function RestrictSender(allowedSenders: string[]): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -1,40 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
throw new Error(`[${service}] ${result.message}`);
|
|
27
|
-
return result;
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
try {
|
|
31
|
-
await client.close();
|
|
32
|
-
}
|
|
33
|
-
catch (closeError) {
|
|
34
|
-
console.error("Error closing client:", closeError.message);
|
|
35
|
-
}
|
|
12
|
+
exports.RestrictSender = RestrictSender;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const core_1 = require("@nestjs/core");
|
|
15
|
+
const RESTRICT_SENDER_KEY = 'restrict_sender';
|
|
16
|
+
function RestrictSender(allowedSenders) {
|
|
17
|
+
return (0, common_1.applyDecorators)((0, common_1.SetMetadata)(RESTRICT_SENDER_KEY, allowedSenders), (0, common_1.UseInterceptors)(RestrictSenderInterceptor));
|
|
18
|
+
}
|
|
19
|
+
let RestrictSenderInterceptor = class RestrictSenderInterceptor {
|
|
20
|
+
constructor(reflector) {
|
|
21
|
+
this.reflector = reflector;
|
|
22
|
+
}
|
|
23
|
+
intercept(context, next) {
|
|
24
|
+
const ctx = context.switchToRpc();
|
|
25
|
+
const data = ctx.getData();
|
|
26
|
+
const handler = context.getHandler();
|
|
27
|
+
const target = context.getClass();
|
|
28
|
+
const allowedSenders = this.reflector.getAllAndOverride(RESTRICT_SENDER_KEY, [
|
|
29
|
+
context.getHandler(),
|
|
30
|
+
context.getClass(),
|
|
31
|
+
]) || [];
|
|
32
|
+
const sender = data?.sender;
|
|
33
|
+
if (!allowedSenders.includes(sender)) {
|
|
34
|
+
throw new common_1.ForbiddenException(`Sender '${sender}' is not authorized`);
|
|
36
35
|
}
|
|
36
|
+
return next.handle();
|
|
37
37
|
}
|
|
38
|
-
}
|
|
39
|
-
|
|
38
|
+
};
|
|
39
|
+
RestrictSenderInterceptor = __decorate([
|
|
40
|
+
(0, common_1.Injectable)(),
|
|
41
|
+
__metadata("design:paramtypes", [core_1.Reflector])
|
|
42
|
+
], RestrictSenderInterceptor);
|
|
40
43
|
//# sourceMappingURL=tcp.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcp.service.js","sourceRoot":"","sources":["../../src/microservice/tcp.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tcp.service.js","sourceRoot":"","sources":["../../src/microservice/tcp.service.ts"],"names":[],"mappings":";;;;;;;;;;;AAeA,wCAKC;AApBD,2CASwB;AACxB,uCAAyC;AAGzC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAE9C,SAAgB,cAAc,CAAC,cAAwB;IACrD,OAAO,IAAA,wBAAe,EACpB,IAAA,oBAAW,EAAC,mBAAmB,EAAE,cAAc,CAAC,EAChD,IAAA,wBAAe,EAAC,yBAAyB,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,IACM,yBAAyB,GAD/B,MACM,yBAAyB;IAC7B,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAGlC,MAAM,cAAc,GAClB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAW,mBAAmB,EAAE;YAC9D,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,IAAI,EAAE,CAAC;QAEX,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,2BAAkB,CAAC,WAAW,MAAM,qBAAqB,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAxBK,yBAAyB;IAD9B,IAAA,mBAAU,GAAE;qCAEoB,gBAAS;GADpC,yBAAyB,CAwB9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rabbit-mq.service.js","sourceRoot":"","sources":["../../src/rabbit-mq/rabbit-mq.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AA0GA,sCA0BC;AAnID,gEAA6E;AAC7E,2CAA4C;AAC5C,6CAA6C;AAC7C,kCAAkC;AAClC,iCAA0B;AAC1B,yDAAuE;AACvE,uCAA2C;AAC3C,oEAA+D;AAC/D,MAAM,eAAe,GAAG;IACpB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;IACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;CAC1C,CAAC;AAEK,IAAM,eAAe,GAArB,MAAM,eAAe;IAKhB,KAAK,CAAC,iBAAiB;QAC3B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,kBAAkB,CAAsB,iCAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"rabbit-mq.service.js","sourceRoot":"","sources":["../../src/rabbit-mq/rabbit-mq.service.ts"],"names":[],"mappings":"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"}
|