@rsdk/grpc.server 4.0.0-next.1 → 4.0.0-next.11
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/CHANGELOG.md +60 -0
- package/dist/controllers/health.controller.js +4 -4
- package/dist/controllers/health.controller.js.map +1 -1
- package/dist/controllers/index.d.ts +2 -0
- package/dist/controllers/index.js +2 -0
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/metrics.controller.js +2 -1
- package/dist/controllers/metrics.controller.js.map +1 -1
- package/dist/controllers/reflection/v1.base.controller.d.ts +32 -0
- package/dist/controllers/reflection/v1.base.controller.js +177 -0
- package/dist/controllers/reflection/v1.base.controller.js.map +1 -0
- package/dist/controllers/reflection/v1.controller.d.ts +10 -0
- package/dist/controllers/reflection/v1.controller.js +25 -0
- package/dist/controllers/reflection/v1.controller.js.map +1 -0
- package/dist/controllers/reflection/v1alpha.controller.d.ts +10 -0
- package/dist/controllers/reflection/v1alpha.controller.js +25 -0
- package/dist/controllers/reflection/v1alpha.controller.js.map +1 -0
- package/dist/grpc-logger.interceptor.d.ts +10 -0
- package/dist/grpc-logger.interceptor.js +73 -0
- package/dist/grpc-logger.interceptor.js.map +1 -0
- package/dist/grpc.config.d.ts +2 -0
- package/dist/grpc.config.js +18 -1
- package/dist/grpc.config.js.map +1 -1
- package/dist/grpc.transport.d.ts +13 -1
- package/dist/grpc.transport.js +55 -11
- package/dist/grpc.transport.js.map +1 -1
- package/dist/grpc.utils.d.ts +9 -0
- package/dist/grpc.utils.js +18 -0
- package/dist/grpc.utils.js.map +1 -0
- package/dist/reflection.module.d.ts +5 -0
- package/dist/reflection.module.js +33 -0
- package/dist/reflection.module.js.map +1 -0
- package/dist/reflection.service.d.ts +43 -0
- package/dist/reflection.service.js +151 -0
- package/dist/reflection.service.js.map +1 -0
- package/jest.config.js +11 -0
- package/package.json +17 -12
- package/src/controllers/index.ts +2 -0
- package/src/controllers/reflection/v1.base.controller.ts +173 -0
- package/src/controllers/reflection/v1.controller.ts +25 -0
- package/src/controllers/reflection/v1alpha.controller.ts +25 -0
- package/src/grpc-logger.interceptor.ts +72 -0
- package/src/grpc.config.ts +13 -0
- package/src/grpc.transport.ts +64 -15
- package/src/grpc.utils.ts +20 -0
- package/src/reflection.module.ts +26 -0
- package/src/reflection.service.spec.ts +86 -0
- package/src/reflection.service.ts +210 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,66 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.0.0-next.11](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.10...v4.0.0-next.11) (2023-11-29)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rsdk/grpc.server
|
|
9
|
+
|
|
10
|
+
## [4.0.0-next.10](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.9...v4.0.0-next.10) (2023-11-29)
|
|
11
|
+
|
|
12
|
+
## [3.8.0](https://github.com/R-Vision/rsdk/compare/v3.7.0...v3.8.0) (2023-11-15)
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* added configuration for request logging and move to trace level all request logging ([#158](https://github.com/R-Vision/rsdk/issues/158)) ([0304672](https://github.com/R-Vision/rsdk/commit/0304672c112fd626642a2d44b0384fbf188e71b4))
|
|
17
|
+
|
|
18
|
+
## [3.7.0](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.5...v3.7.0) (2023-11-15)
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* added logging to rpc and http transports ([#156](https://github.com/R-Vision/rsdk/issues/156)) ([7ebddb9](https://github.com/R-Vision/rsdk/commit/7ebddb97d2c30811eba9868b6d3ff9778708c957))
|
|
23
|
+
|
|
24
|
+
## [4.0.0-next.9](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.8...v4.0.0-next.9) (2023-11-29)
|
|
25
|
+
|
|
26
|
+
**Note:** Version bump only for package @rsdk/grpc.server
|
|
27
|
+
|
|
28
|
+
## [4.0.0-next.8](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.7...v4.0.0-next.8) (2023-11-29)
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* Kafka batch producer ([#150](https://github.com/R-Vision/rsdk/issues/150)) ([2faa2f4](https://github.com/R-Vision/rsdk/commit/2faa2f41ca0dbb6d8a92cbf0ab20cf5cefeaf4e9))
|
|
33
|
+
|
|
34
|
+
## [4.0.0-next.7](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.6...v4.0.0-next.7) (2023-11-21)
|
|
35
|
+
|
|
36
|
+
**Note:** Version bump only for package @rsdk/grpc.server
|
|
37
|
+
|
|
38
|
+
## [4.0.0-next.6](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.5...v4.0.0-next.6) (2023-11-21)
|
|
39
|
+
|
|
40
|
+
**Note:** Version bump only for package @rsdk/grpc.server
|
|
41
|
+
|
|
42
|
+
## [4.0.0-next.5](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.4...v4.0.0-next.5) (2023-11-13)
|
|
43
|
+
|
|
44
|
+
### Features
|
|
45
|
+
|
|
46
|
+
* **PFM-126:** reflection added ([ffaaa99](https://github.com/R-Vision/rsdk/commit/ffaaa996e0a81f98be46b0b73badb59f3e680eac))
|
|
47
|
+
|
|
48
|
+
### Bug Fixes
|
|
49
|
+
|
|
50
|
+
* resolve comments ([6ab44dc](https://github.com/R-Vision/rsdk/commit/6ab44dc3cde0a36ec6dea67522e8f0c54505513c))
|
|
51
|
+
|
|
52
|
+
## [4.0.0-next.4](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.3...v4.0.0-next.4) (2023-11-12)
|
|
53
|
+
|
|
54
|
+
**Note:** Version bump only for package @rsdk/grpc.server
|
|
55
|
+
|
|
56
|
+
## [4.0.0-next.3](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.2...v4.0.0-next.3) (2023-11-12)
|
|
57
|
+
|
|
58
|
+
### Bug Fixes
|
|
59
|
+
|
|
60
|
+
* all yarn peers dependency issues ([e0db9ef](https://github.com/R-Vision/rsdk/commit/e0db9ef1ab8a4df4e1f8ff6f6a9e3728f497549b))
|
|
61
|
+
|
|
62
|
+
## [4.0.0-next.2](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.1...v4.0.0-next.2) (2023-11-10)
|
|
63
|
+
|
|
64
|
+
**Note:** Version bump only for package @rsdk/grpc.server
|
|
65
|
+
|
|
6
66
|
## [4.0.0-next.1](https://github.com/R-Vision/rsdk/compare/v4.0.0-next.0...v4.0.0-next.1) (2023-11-10)
|
|
7
67
|
|
|
8
68
|
**Note:** Version bump only for package @rsdk/grpc.server
|
|
@@ -11,12 +11,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
-
var HealthController_1;
|
|
15
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
15
|
exports.HealthController = void 0;
|
|
17
16
|
const grpc_health_v1_1 = require("@rsdk/builtin-contract/dist/grpc.health.v1");
|
|
18
17
|
const core_1 = require("@rsdk/core");
|
|
19
|
-
let HealthController =
|
|
18
|
+
let HealthController = class HealthController {
|
|
20
19
|
logger;
|
|
21
20
|
health;
|
|
22
21
|
constructor(logger, health) {
|
|
@@ -47,9 +46,10 @@ let HealthController = exports.HealthController = HealthController_1 = class Hea
|
|
|
47
46
|
throw new core_1.InternalException('Watch method is not implemented!');
|
|
48
47
|
}
|
|
49
48
|
};
|
|
50
|
-
exports.HealthController = HealthController
|
|
49
|
+
exports.HealthController = HealthController;
|
|
50
|
+
exports.HealthController = HealthController = __decorate([
|
|
51
51
|
(0, grpc_health_v1_1.HealthGrpcMethods)(),
|
|
52
|
-
__param(0, (0, core_1.InjectLogger)(
|
|
52
|
+
__param(0, (0, core_1.InjectLogger)(HealthController)),
|
|
53
53
|
__metadata("design:paramtypes", [Object, core_1.HealthChecksService])
|
|
54
54
|
], HealthController);
|
|
55
55
|
//# sourceMappingURL=health.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../src/controllers/health.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../src/controllers/health.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,+EAGoD;AAEpD,qCAIoB;AAKb,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAEwB;IAChC;IAFnB,YACmD,MAAe,EAC/C,MAA2B;QADK,WAAM,GAAN,MAAM,CAAS;QAC/C,WAAM,GAAN,MAAM,CAAqB;IAC3C,CAAC;IAEJ;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAsB;QACzC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,iDAAgC,CAAC;QAElE,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;SAC5B;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAkB,CAAC,CAAC;YAE5D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;SAChC;IACH,CAAC;IAED,KAAK;QACH,MAAM,IAAI,wBAAiB,CAAC,kCAAkC,CAAC,CAAC;IAClE,CAAC;CACF,CAAA;AAhCY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,kCAAiB,GAAE;IAGf,WAAA,IAAA,mBAAY,EAAC,gBAAgB,CAAC,CAAA;6CACN,0BAAmB;GAHnC,gBAAgB,CAgC5B"}
|
|
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./health.controller"), exports);
|
|
18
18
|
__exportStar(require("./metrics.controller"), exports);
|
|
19
|
+
__exportStar(require("./reflection/v1.controller"), exports);
|
|
20
|
+
__exportStar(require("./reflection/v1alpha.controller"), exports);
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC;AACrC,6DAA2C;AAC3C,kEAAgD"}
|
|
@@ -9,12 +9,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.MetricsController = void 0;
|
|
10
10
|
const grpc_metrics_v1_1 = require("@rsdk/builtin-contract/dist/grpc.metrics.v1");
|
|
11
11
|
const core_1 = require("@rsdk/core");
|
|
12
|
-
let MetricsController =
|
|
12
|
+
let MetricsController = class MetricsController {
|
|
13
13
|
async get() {
|
|
14
14
|
const metrics = await core_1.register.metrics();
|
|
15
15
|
return { metrics };
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
+
exports.MetricsController = MetricsController;
|
|
18
19
|
exports.MetricsController = MetricsController = __decorate([
|
|
19
20
|
(0, grpc_metrics_v1_1.MetricsGrpcMethods)()
|
|
20
21
|
], MetricsController);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.controller.js","sourceRoot":"","sources":["../../src/controllers/metrics.controller.ts"],"names":[],"mappings":";;;;;;;;;AAIA,iFAAiF;AACjF,qCAAsC;AAG/B,IAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"metrics.controller.js","sourceRoot":"","sources":["../../src/controllers/metrics.controller.ts"],"names":[],"mappings":";;;;;;;;;AAIA,iFAAiF;AACjF,qCAAsC;AAG/B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,MAAM,eAAQ,CAAC,OAAO,EAAE,CAAC;QAEzC,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;CACF,CAAA;AANY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,oCAAkB,GAAE;GACR,iBAAiB,CAM7B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ServerReflectionGrpcController, ServerReflectionRequest, ServerReflectionResponse } from '@rsdk/builtin-contract/dist/grpc.reflection.v1';
|
|
2
|
+
import { ILogger } from '@rsdk/logging';
|
|
3
|
+
import type { Observable } from 'rxjs';
|
|
4
|
+
import { GRPCConfig } from '../../grpc.config';
|
|
5
|
+
import { ReflectionService } from '../../reflection.service';
|
|
6
|
+
/**
|
|
7
|
+
* Base class for alpha and final 'v1' versions of the gRPC reflection API
|
|
8
|
+
*
|
|
9
|
+
* note: the final version of the v1 spec was identical to the alpha version, so
|
|
10
|
+
* this common class is used in order to share logic across multiple controllers
|
|
11
|
+
* (this class itself is *not* a controller). See child classes for actual APIs
|
|
12
|
+
*
|
|
13
|
+
* @see {@link https://github.com/grpc/grpc/blob/master/doc/server-reflection.md}
|
|
14
|
+
*/
|
|
15
|
+
export declare class BaseV1GrpcReflectionController implements ServerReflectionGrpcController {
|
|
16
|
+
private readonly config;
|
|
17
|
+
private readonly logger;
|
|
18
|
+
private readonly service;
|
|
19
|
+
constructor(config: GRPCConfig, logger: ILogger, service: ReflectionService);
|
|
20
|
+
/** Main method for providing information about the running gRPC server
|
|
21
|
+
*
|
|
22
|
+
* The spec defines this as a single streaming method so that the connection
|
|
23
|
+
* stays open to the same running instance of the server for all follow-up
|
|
24
|
+
* requests. This means that we can keep some kind of state about what we've
|
|
25
|
+
* already to that client or not if we need to.
|
|
26
|
+
*/
|
|
27
|
+
serverReflectionInfo(request$: Observable<ServerReflectionRequest>): Observable<ServerReflectionResponse>;
|
|
28
|
+
private makeResponse;
|
|
29
|
+
private createServerReflectionResponse;
|
|
30
|
+
private resolveReflection;
|
|
31
|
+
private reflectionIsDisabled;
|
|
32
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
+
};
|
|
34
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
35
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.BaseV1GrpcReflectionController = void 0;
|
|
39
|
+
const grpc = __importStar(require("@grpc/grpc-js"));
|
|
40
|
+
const common_1 = require("@nestjs/common");
|
|
41
|
+
const core_1 = require("@rsdk/core");
|
|
42
|
+
const rxjs_1 = require("rxjs");
|
|
43
|
+
const grpc_config_1 = require("../../grpc.config");
|
|
44
|
+
const reflection_service_1 = require("../../reflection.service");
|
|
45
|
+
/**
|
|
46
|
+
* Base class for alpha and final 'v1' versions of the gRPC reflection API
|
|
47
|
+
*
|
|
48
|
+
* note: the final version of the v1 spec was identical to the alpha version, so
|
|
49
|
+
* this common class is used in order to share logic across multiple controllers
|
|
50
|
+
* (this class itself is *not* a controller). See child classes for actual APIs
|
|
51
|
+
*
|
|
52
|
+
* @see {@link https://github.com/grpc/grpc/blob/master/doc/server-reflection.md}
|
|
53
|
+
*/
|
|
54
|
+
let BaseV1GrpcReflectionController = class BaseV1GrpcReflectionController {
|
|
55
|
+
config;
|
|
56
|
+
logger;
|
|
57
|
+
service;
|
|
58
|
+
constructor(config, logger, service) {
|
|
59
|
+
this.config = config;
|
|
60
|
+
this.logger = logger;
|
|
61
|
+
this.service = service;
|
|
62
|
+
}
|
|
63
|
+
/** Main method for providing information about the running gRPC server
|
|
64
|
+
*
|
|
65
|
+
* The spec defines this as a single streaming method so that the connection
|
|
66
|
+
* stays open to the same running instance of the server for all follow-up
|
|
67
|
+
* requests. This means that we can keep some kind of state about what we've
|
|
68
|
+
* already to that client or not if we need to.
|
|
69
|
+
*/
|
|
70
|
+
serverReflectionInfo(request$) {
|
|
71
|
+
const response$ = new rxjs_1.Subject();
|
|
72
|
+
request$.subscribe({
|
|
73
|
+
next: this.config.reflection
|
|
74
|
+
? this.resolveReflection(response$)
|
|
75
|
+
: this.reflectionIsDisabled(response$),
|
|
76
|
+
complete: () => response$.complete(),
|
|
77
|
+
});
|
|
78
|
+
return response$.asObservable();
|
|
79
|
+
}
|
|
80
|
+
makeResponse(request) {
|
|
81
|
+
if (request.messageRequest?.$case === 'listServices') {
|
|
82
|
+
return this.createServerReflectionResponse(request, {
|
|
83
|
+
$case: 'listServicesResponse',
|
|
84
|
+
listServicesResponse: {
|
|
85
|
+
service: this.service.listServices().map((name) => ({ name })),
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (request.messageRequest?.$case === 'fileContainingSymbol') {
|
|
90
|
+
return this.createServerReflectionResponse(request, {
|
|
91
|
+
$case: 'fileDescriptorResponse',
|
|
92
|
+
fileDescriptorResponse: {
|
|
93
|
+
fileDescriptorProto: [
|
|
94
|
+
this.service.fileBySymbol(request.messageRequest.fileContainingSymbol),
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (request.messageRequest?.$case === 'fileByFilename') {
|
|
100
|
+
return this.createServerReflectionResponse(request, {
|
|
101
|
+
$case: 'fileDescriptorResponse',
|
|
102
|
+
fileDescriptorResponse: {
|
|
103
|
+
fileDescriptorProto: [
|
|
104
|
+
this.service.fileByName(request.messageRequest.fileByFilename),
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
if (request.messageRequest?.$case === 'fileContainingExtension') {
|
|
110
|
+
return this.createServerReflectionResponse(request, {
|
|
111
|
+
$case: 'fileDescriptorResponse',
|
|
112
|
+
fileDescriptorResponse: {
|
|
113
|
+
fileDescriptorProto: [
|
|
114
|
+
this.service.fileContainingExtension(request.messageRequest.fileContainingExtension.containingType, request.messageRequest.fileContainingExtension.extensionNumber),
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (request.messageRequest?.$case === 'allExtensionNumbersOfType') {
|
|
120
|
+
return this.createServerReflectionResponse(request, {
|
|
121
|
+
$case: 'allExtensionNumbersResponse',
|
|
122
|
+
allExtensionNumbersResponse: {
|
|
123
|
+
baseTypeName: request.messageRequest.allExtensionNumbersOfType,
|
|
124
|
+
extensionNumber: this.service.allExtensionNumbersOfType(request.messageRequest.allExtensionNumbersOfType),
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
this.logger.error('NotImplementedException', { request });
|
|
129
|
+
throw new common_1.NotImplementedException(request.messageRequest);
|
|
130
|
+
}
|
|
131
|
+
createServerReflectionResponse(request, message) {
|
|
132
|
+
return {
|
|
133
|
+
validHost: request.host,
|
|
134
|
+
originalRequest: request,
|
|
135
|
+
messageResponse: message,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
resolveReflection(response$) {
|
|
139
|
+
return (message) => {
|
|
140
|
+
try {
|
|
141
|
+
response$.next(this.makeResponse(message));
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (error instanceof Error) {
|
|
145
|
+
this.logger.error(error);
|
|
146
|
+
}
|
|
147
|
+
const response = this.createServerReflectionResponse(message, {
|
|
148
|
+
$case: 'errorResponse',
|
|
149
|
+
errorResponse: {
|
|
150
|
+
errorCode: grpc.status.UNKNOWN,
|
|
151
|
+
errorMessage: `Failed to process gRPC reflection request: ${error}`,
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
response$.next(response);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
reflectionIsDisabled(response$) {
|
|
159
|
+
return (message) => {
|
|
160
|
+
const response = this.createServerReflectionResponse(message, {
|
|
161
|
+
$case: 'errorResponse',
|
|
162
|
+
errorResponse: {
|
|
163
|
+
errorCode: grpc.status.UNAVAILABLE,
|
|
164
|
+
errorMessage: `Reflection is disabled by config`,
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
return response$.next(response);
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
exports.BaseV1GrpcReflectionController = BaseV1GrpcReflectionController;
|
|
172
|
+
exports.BaseV1GrpcReflectionController = BaseV1GrpcReflectionController = __decorate([
|
|
173
|
+
__param(1, (0, core_1.InjectLogger)(reflection_service_1.ReflectionService)),
|
|
174
|
+
__param(2, (0, common_1.Inject)(reflection_service_1.ReflectionService)),
|
|
175
|
+
__metadata("design:paramtypes", [grpc_config_1.GRPCConfig, Object, reflection_service_1.ReflectionService])
|
|
176
|
+
], BaseV1GrpcReflectionController);
|
|
177
|
+
//# sourceMappingURL=v1.base.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.base.controller.js","sourceRoot":"","sources":["../../../src/controllers/reflection/v1.base.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ServerReflectionGrpcController, ServerReflectionRequest, ServerReflectionResponse } from '@rsdk/builtin-contract/dist/grpc.reflection.v1';
|
|
2
|
+
import type { Observable } from 'rxjs';
|
|
3
|
+
import { BaseV1GrpcReflectionController } from './v1.base.controller';
|
|
4
|
+
/** Implements the 'v1' (final) version of the gRPC Reflection API spec
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://github.com/grpc/grpc/blob/master/doc/server-reflection.md}
|
|
7
|
+
*/
|
|
8
|
+
export declare class ReflectionV1Controller extends BaseV1GrpcReflectionController implements ServerReflectionGrpcController {
|
|
9
|
+
serverReflectionInfo(request: Observable<ServerReflectionRequest>): Observable<ServerReflectionResponse>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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.ReflectionV1Controller = void 0;
|
|
10
|
+
const grpc_reflection_v1_1 = require("@rsdk/builtin-contract/dist/grpc.reflection.v1");
|
|
11
|
+
const v1_base_controller_1 = require("./v1.base.controller");
|
|
12
|
+
/** Implements the 'v1' (final) version of the gRPC Reflection API spec
|
|
13
|
+
*
|
|
14
|
+
* @see {@link https://github.com/grpc/grpc/blob/master/doc/server-reflection.md}
|
|
15
|
+
*/
|
|
16
|
+
let ReflectionV1Controller = class ReflectionV1Controller extends v1_base_controller_1.BaseV1GrpcReflectionController {
|
|
17
|
+
serverReflectionInfo(request) {
|
|
18
|
+
return super.serverReflectionInfo(request);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.ReflectionV1Controller = ReflectionV1Controller;
|
|
22
|
+
exports.ReflectionV1Controller = ReflectionV1Controller = __decorate([
|
|
23
|
+
(0, grpc_reflection_v1_1.ServerReflectionGrpcMethods)()
|
|
24
|
+
], ReflectionV1Controller);
|
|
25
|
+
//# sourceMappingURL=v1.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.controller.js","sourceRoot":"","sources":["../../../src/controllers/reflection/v1.controller.ts"],"names":[],"mappings":";;;;;;;;;AAKA,uFAA6F;AAG7F,6DAAsE;AAEtE;;;GAGG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBACX,SAAQ,mDAA8B;IAG7B,oBAAoB,CAC3B,OAA4C;QAE5C,OAAO,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AATY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,gDAA2B,GAAE;GACjB,sBAAsB,CASlC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ServerReflectionGrpcController, ServerReflectionRequest, ServerReflectionResponse } from '@rsdk/builtin-contract/dist/grpc.reflection.v1alpha';
|
|
2
|
+
import type { Observable } from 'rxjs';
|
|
3
|
+
import { BaseV1GrpcReflectionController } from './v1.base.controller';
|
|
4
|
+
/** Implements the 'v1alpha' version of the gRPC Reflection API spec
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://github.com/grpc/grpc/blob/master/doc/server-reflection.md}
|
|
7
|
+
*/
|
|
8
|
+
export declare class ReflectionV1alphaController extends BaseV1GrpcReflectionController implements ServerReflectionGrpcController {
|
|
9
|
+
serverReflectionInfo(request: Observable<ServerReflectionRequest>): Observable<ServerReflectionResponse>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
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.ReflectionV1alphaController = void 0;
|
|
10
|
+
const grpc_reflection_v1_1 = require("@rsdk/builtin-contract/dist/grpc.reflection.v1");
|
|
11
|
+
const v1_base_controller_1 = require("./v1.base.controller");
|
|
12
|
+
/** Implements the 'v1alpha' version of the gRPC Reflection API spec
|
|
13
|
+
*
|
|
14
|
+
* @see {@link https://github.com/grpc/grpc/blob/master/doc/server-reflection.md}
|
|
15
|
+
*/
|
|
16
|
+
let ReflectionV1alphaController = class ReflectionV1alphaController extends v1_base_controller_1.BaseV1GrpcReflectionController {
|
|
17
|
+
serverReflectionInfo(request) {
|
|
18
|
+
return super.serverReflectionInfo(request);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.ReflectionV1alphaController = ReflectionV1alphaController;
|
|
22
|
+
exports.ReflectionV1alphaController = ReflectionV1alphaController = __decorate([
|
|
23
|
+
(0, grpc_reflection_v1_1.ServerReflectionGrpcMethods)()
|
|
24
|
+
], ReflectionV1alphaController);
|
|
25
|
+
//# sourceMappingURL=v1alpha.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1alpha.controller.js","sourceRoot":"","sources":["../../../src/controllers/reflection/v1alpha.controller.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uFAA6F;AAQ7F,6DAAsE;AAEtE;;;GAGG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BACX,SAAQ,mDAA8B;IAG7B,oBAAoB,CAC3B,OAA4C;QAE5C,OAAO,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AATY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,gDAA2B,GAAE;GACjB,2BAA2B,CASvC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common/interfaces';
|
|
2
|
+
import { ILogger } from '@rsdk/logging';
|
|
3
|
+
import type { Observable } from 'rxjs';
|
|
4
|
+
import { GRPCConfig } from './grpc.config';
|
|
5
|
+
export declare class GrpcLoggerInterceptor implements NestInterceptor {
|
|
6
|
+
private logger;
|
|
7
|
+
private grpcConfig;
|
|
8
|
+
constructor(logger: ILogger, grpcConfig: GRPCConfig);
|
|
9
|
+
intercept(context: ExecutionContext, next: CallHandler<any>): Observable<any> | Promise<Observable<any>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.GrpcLoggerInterceptor = void 0;
|
|
16
|
+
const core_1 = require("@rsdk/core");
|
|
17
|
+
const rxjs_1 = require("rxjs");
|
|
18
|
+
const grpc_config_1 = require("./grpc.config");
|
|
19
|
+
let GrpcLoggerInterceptor = class GrpcLoggerInterceptor {
|
|
20
|
+
logger;
|
|
21
|
+
grpcConfig;
|
|
22
|
+
constructor(logger, grpcConfig) {
|
|
23
|
+
this.logger = logger;
|
|
24
|
+
this.grpcConfig = grpcConfig;
|
|
25
|
+
}
|
|
26
|
+
intercept(context, next) {
|
|
27
|
+
if (!this.grpcConfig.requestLogging) {
|
|
28
|
+
return next.handle();
|
|
29
|
+
}
|
|
30
|
+
const isRpc = context.getType() === 'rpc';
|
|
31
|
+
if (!isRpc) {
|
|
32
|
+
return next.handle();
|
|
33
|
+
}
|
|
34
|
+
const rpc = context.switchToRpc();
|
|
35
|
+
const startDate = Date.now();
|
|
36
|
+
const rpcContext = rpc.getContext();
|
|
37
|
+
const serializedCtx = rpcContext?.toJSON?.() ?? rpcContext;
|
|
38
|
+
const requestForLog = {
|
|
39
|
+
data: rpc.getData(),
|
|
40
|
+
ctx: serializedCtx,
|
|
41
|
+
};
|
|
42
|
+
this.logger.trace('received rpc request', {
|
|
43
|
+
request: requestForLog,
|
|
44
|
+
timestamp: startDate,
|
|
45
|
+
});
|
|
46
|
+
return next.handle().pipe((0, rxjs_1.catchError)((error) => {
|
|
47
|
+
const endDate = Date.now();
|
|
48
|
+
this.logger.trace('handled rpc request with error', {
|
|
49
|
+
request: requestForLog,
|
|
50
|
+
startDate,
|
|
51
|
+
endDate,
|
|
52
|
+
duration: endDate - startDate,
|
|
53
|
+
error,
|
|
54
|
+
});
|
|
55
|
+
return (0, rxjs_1.throwError)(() => error);
|
|
56
|
+
}), (0, rxjs_1.tap)((response) => {
|
|
57
|
+
const endDate = Date.now();
|
|
58
|
+
this.logger.trace('handled rpc request', {
|
|
59
|
+
request: requestForLog,
|
|
60
|
+
startDate,
|
|
61
|
+
endDate,
|
|
62
|
+
duration: endDate - startDate,
|
|
63
|
+
response,
|
|
64
|
+
});
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
exports.GrpcLoggerInterceptor = GrpcLoggerInterceptor;
|
|
69
|
+
exports.GrpcLoggerInterceptor = GrpcLoggerInterceptor = __decorate([
|
|
70
|
+
__param(0, (0, core_1.InjectLogger)(GrpcLoggerInterceptor)),
|
|
71
|
+
__metadata("design:paramtypes", [Object, grpc_config_1.GRPCConfig])
|
|
72
|
+
], GrpcLoggerInterceptor);
|
|
73
|
+
//# sourceMappingURL=grpc-logger.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc-logger.interceptor.js","sourceRoot":"","sources":["../src/grpc-logger.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,qCAA0C;AAG1C,+BAAmD;AAEnD,+CAA2C;AAE3C,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;IAEe;IACrC;IAFV,YAC+C,MAAe,EACpD,UAAsB;QADe,WAAM,GAAN,MAAM,CAAS;QACpD,eAAU,GAAV,UAAU,CAAY;IAC7B,CAAC;IAEJ,SAAS,CACP,OAAyB,EACzB,IAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YACnC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;SACtB;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;SACtB;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAElC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,UAAU,CAAC;QAC3D,MAAM,aAAa,GAAG;YACpB,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;YACnB,GAAG,EAAE,aAAa;SACnB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;YACxC,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,iBAAU,EAAC,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gBAClD,OAAO,EAAE,aAAa;gBACtB,SAAS;gBACT,OAAO;gBACP,QAAQ,EAAE,OAAO,GAAG,SAAS;gBAC7B,KAAK;aACN,CAAC,CAAC;YACH,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,EACF,IAAA,UAAG,EAAC,CAAC,QAAQ,EAAE,EAAE;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBACvC,OAAO,EAAE,aAAa;gBACtB,SAAS;gBACT,OAAO;gBACP,QAAQ,EAAE,OAAO,GAAG,SAAS;gBAC7B,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AA3DY,sDAAqB;gCAArB,qBAAqB;IAE7B,WAAA,IAAA,mBAAY,EAAC,qBAAqB,CAAC,CAAA;6CAChB,wBAAU;GAHrB,qBAAqB,CA2DjC"}
|
package/dist/grpc.config.d.ts
CHANGED
package/dist/grpc.config.js
CHANGED
|
@@ -14,11 +14,14 @@ const constants_1 = require("@grpc/grpc-js/build/src/constants");
|
|
|
14
14
|
const common_1 = require("@rsdk/common");
|
|
15
15
|
const core_1 = require("@rsdk/core");
|
|
16
16
|
const grpc_common_1 = require("@rsdk/grpc.common");
|
|
17
|
-
let GRPCConfig =
|
|
17
|
+
let GRPCConfig = class GRPCConfig extends core_1.Config {
|
|
18
18
|
address;
|
|
19
19
|
maxRecv;
|
|
20
20
|
maxSend;
|
|
21
|
+
reflection;
|
|
22
|
+
requestLogging;
|
|
21
23
|
};
|
|
24
|
+
exports.GRPCConfig = GRPCConfig;
|
|
22
25
|
__decorate([
|
|
23
26
|
(0, core_1.Property)('GRPC_ADDRESS', new grpc_common_1.GrpcAddressParser(), {
|
|
24
27
|
defaultValue: '0.0.0.0:50051',
|
|
@@ -43,6 +46,20 @@ __decorate([
|
|
|
43
46
|
}),
|
|
44
47
|
__metadata("design:type", Number)
|
|
45
48
|
], GRPCConfig.prototype, "maxSend", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, core_1.Property)('GRPC_REFLECTION', new core_1.BoolParser(), {
|
|
51
|
+
defaultValue: false,
|
|
52
|
+
description: 'Enable reflection',
|
|
53
|
+
}),
|
|
54
|
+
__metadata("design:type", Boolean)
|
|
55
|
+
], GRPCConfig.prototype, "reflection", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, core_1.Property)('GRPC_REQUEST_LOGGING', new core_1.BoolParser(), {
|
|
58
|
+
defaultValue: false,
|
|
59
|
+
description: 'Enable trace logging all requests',
|
|
60
|
+
}),
|
|
61
|
+
__metadata("design:type", Boolean)
|
|
62
|
+
], GRPCConfig.prototype, "requestLogging", void 0);
|
|
46
63
|
exports.GRPCConfig = GRPCConfig = __decorate([
|
|
47
64
|
(0, core_1.ConfigSection)({
|
|
48
65
|
tags: [core_1.ConfigTag.infrastructure, core_1.ConfigTag.transport, core_1.ConfigTag.grpcServer],
|
package/dist/grpc.config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.config.js","sourceRoot":"","sources":["../src/grpc.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAG2C;AAC3C,yCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"grpc.config.js","sourceRoot":"","sources":["../src/grpc.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAG2C;AAC3C,yCAAoC;AACpC,qCAOoB;AACpB,mDAAsD;AAK/C,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,aAAM;IAQ3B,OAAO,CAAU;IAMjB,OAAO,CAAU;IAMjB,OAAO,CAAU;IAMjB,UAAU,CAAW;IAMrB,cAAc,CAAW;CACnC,CAAA;AAjCY,gCAAU;AAQZ;IAPR,IAAA,eAAQ,EAAC,cAAc,EAAE,IAAI,+BAAiB,EAAE,EAAE;QACjD,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,IAAA,aAAI,EAAA;;;KAGhB;KACF,CAAC;;2CACwB;AAMjB;IAJR,IAAA,eAAQ,EAAC,iCAAiC,EAAE,IAAI,gBAAS,EAAE,EAAE;QAC5D,YAAY,EAAE,8CAAkC;QAChD,WAAW,EAAE,iCAAiC;KAC/C,CAAC;;2CACwB;AAMjB;IAJR,IAAA,eAAQ,EAAC,8BAA8B,EAAE,IAAI,gBAAS,EAAE,EAAE;QACzD,YAAY,EAAE,2CAA+B;QAC7C,WAAW,EAAE,8BAA8B;KAC5C,CAAC;;2CACwB;AAMjB;IAJR,IAAA,eAAQ,EAAC,iBAAiB,EAAE,IAAI,iBAAU,EAAE,EAAE;QAC7C,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;8CAC4B;AAMrB;IAJR,IAAA,eAAQ,EAAC,sBAAsB,EAAE,IAAI,iBAAU,EAAE,EAAE;QAClD,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,mCAAmC;KACjD,CAAC;;kDACgC;qBAhCvB,UAAU;IAHtB,IAAA,oBAAa,EAAC;QACb,IAAI,EAAE,CAAC,gBAAS,CAAC,cAAc,EAAE,gBAAS,CAAC,SAAS,EAAE,gBAAS,CAAC,UAAU,CAAC;KAC5E,CAAC;GACW,UAAU,CAiCtB"}
|
package/dist/grpc.transport.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Controller } from '@nestjs/common/interfaces';
|
|
2
2
|
import type { MicroserviceOptions } from '@nestjs/microservices';
|
|
3
3
|
import type { Constructor } from '@rsdk/common';
|
|
4
|
-
import type { ConfigContext, IErrorsFormatter, IErrorsSender, IErrorsTransformer, IMicroserviceTransport } from '@rsdk/core';
|
|
4
|
+
import type { ConfigContext, IErrorsFormatter, IErrorsSender, IErrorsTransformer, IMicroserviceTransport, NestModuleDefinitions } from '@rsdk/core';
|
|
5
5
|
import type { Package } from '@rsdk/grpc.loader';
|
|
6
6
|
export declare class GrpcTransport implements IMicroserviceTransport {
|
|
7
|
+
private readonly systemPackages;
|
|
7
8
|
private readonly logger;
|
|
8
9
|
private readonly packages;
|
|
9
10
|
private address?;
|
|
@@ -17,6 +18,7 @@ export declare class GrpcTransport implements IMicroserviceTransport {
|
|
|
17
18
|
getErrorTransformers(): IErrorsTransformer[];
|
|
18
19
|
getMetricsController(): Constructor<Controller>;
|
|
19
20
|
getHealthController(): Constructor<Controller>;
|
|
21
|
+
modules(): NestModuleDefinitions;
|
|
20
22
|
/**
|
|
21
23
|
* Unfortunally we can't access GRPCConfig in constructor because
|
|
22
24
|
* PlatformConfigModule is not initilalized yet
|
|
@@ -25,4 +27,14 @@ export declare class GrpcTransport implements IMicroserviceTransport {
|
|
|
25
27
|
createMicroserviceOptions(): MicroserviceOptions;
|
|
26
28
|
onStart(): void;
|
|
27
29
|
private checkIsInitialized;
|
|
30
|
+
/**
|
|
31
|
+
* Checks the value must be defined and not null
|
|
32
|
+
* @param value any value
|
|
33
|
+
*/
|
|
34
|
+
private assertIsDefined;
|
|
35
|
+
/**
|
|
36
|
+
* Merge user packages with system packages
|
|
37
|
+
* @returns array of unique packages
|
|
38
|
+
*/
|
|
39
|
+
private getUniquePackages;
|
|
28
40
|
}
|