@rsdk/grpc.clients 3.0.1-next.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/clients.module.d.ts +15 -0
  3. package/dist/clients.module.js +102 -0
  4. package/dist/clients.module.js.map +1 -0
  5. package/dist/grpc-client-key-map.generator.d.ts +5 -0
  6. package/dist/grpc-client-key-map.generator.js +32 -0
  7. package/dist/grpc-client-key-map.generator.js.map +1 -0
  8. package/dist/grpc-client.plugin.d.ts +10 -0
  9. package/dist/grpc-client.plugin.js +27 -0
  10. package/dist/grpc-client.plugin.js.map +1 -0
  11. package/dist/grpc-clients.plugin.d.ts +5 -0
  12. package/dist/grpc-clients.plugin.js +10 -0
  13. package/dist/grpc-clients.plugin.js.map +1 -0
  14. package/dist/grpc-storage.module.d.ts +12 -0
  15. package/dist/grpc-storage.module.js +33 -0
  16. package/dist/grpc-storage.module.js.map +1 -0
  17. package/dist/grpc.servers.d.ts +5 -0
  18. package/dist/grpc.servers.js +32 -0
  19. package/dist/grpc.servers.js.map +1 -0
  20. package/dist/grpcClientInstanceMetadataValue.d.ts +5 -0
  21. package/dist/grpcClientInstanceMetadataValue.js +3 -0
  22. package/dist/grpcClientInstanceMetadataValue.js.map +1 -0
  23. package/dist/inject-client-factory.decorator.d.ts +16 -0
  24. package/dist/inject-client-factory.decorator.js +19 -0
  25. package/dist/inject-client-factory.decorator.js.map +1 -0
  26. package/dist/inject-client.decorator.d.ts +11 -0
  27. package/dist/inject-client.decorator.js +20 -0
  28. package/dist/inject-client.decorator.js.map +1 -0
  29. package/dist/middleware/rich-error.middlewate.d.ts +2 -0
  30. package/dist/middleware/rich-error.middlewate.js +48 -0
  31. package/dist/middleware/rich-error.middlewate.js.map +1 -0
  32. package/dist/storage/grpc-client.storage.d.ts +18 -0
  33. package/dist/storage/grpc-client.storage.js +39 -0
  34. package/dist/storage/grpc-client.storage.js.map +1 -0
  35. package/dist/storage/grpc-storage.module.d.ts +6 -0
  36. package/dist/storage/grpc-storage.module.js +25 -0
  37. package/dist/storage/grpc-storage.module.js.map +1 -0
  38. package/dist/storage/grpc.storage.d.ts +11 -0
  39. package/dist/storage/grpc.storage.js +16 -0
  40. package/dist/storage/grpc.storage.js.map +1 -0
  41. package/dist/tsconfig.tsbuildinfo +1 -0
  42. package/dist/types.d.ts +26 -0
  43. package/dist/types.js +3 -0
  44. package/dist/types.js.map +1 -0
  45. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
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
+ ## [3.0.2](https://github.com/R-Vision/rsdk/compare/v3.0.1...v3.0.2) (2023-08-07)
7
+
8
+ **Note:** Version bump only for package @rsdk/grpc.clients
9
+
10
+ ## [3.0.1](https://github.com/R-Vision/rsdk/compare/v3.0.0...v3.0.1) (2023-08-07)
11
+
12
+ ### Bug Fixes
13
+
14
+ * **deps:** correctly peerDependencies ([349628f](https://github.com/R-Vision/rsdk/commit/349628f10da46a30d6c8b9f9387e010869318212))
15
+
6
16
  ## [3.0.1-next.0](https://github.com/R-Vision/rsdk/compare/v3.0.0...v3.0.1-next.0) (2023-08-07)
7
17
 
8
18
  **Note:** Version bump only for package @rsdk/grpc.clients
@@ -0,0 +1,15 @@
1
+ import type { DynamicModule } from '@nestjs/common';
2
+ import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
3
+ export declare class GrpcClientsModule1 {
4
+ private static logger;
5
+ private static factory;
6
+ /**
7
+ * Adds grpc client to module's scope. Is nesessary to make the
8
+ * client available in DI.
9
+ * @param serverName Name of the grpc server.
10
+ * @param definition grpc-service definitions (from generated code)
11
+ * @returns ParameterDecorator
12
+ */
13
+ static forInstance(serverName: string, definition: CompatServiceDefinition): DynamicModule;
14
+ static forFactory(definition: CompatServiceDefinition): DynamicModule;
15
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrpcClientsModule1 = void 0;
4
+ const autodoc_protocol_1 = require("@rsdk/autodoc.protocol");
5
+ const core_1 = require("@rsdk/core");
6
+ const grpc_common_1 = require("@rsdk/grpc-common");
7
+ const logging_1 = require("@rsdk/logging");
8
+ const metadata_1 = require("@rsdk/metadata");
9
+ const nice_grpc_1 = require("nice-grpc");
10
+ const nice_grpc_opentelemetry_1 = require("nice-grpc-opentelemetry");
11
+ const constants_1 = require("./metadata/constants");
12
+ const grpc_clients_autodoc_resolver_1 = require("./metadata/grpc-clients.autodoc-resolver");
13
+ const grpc_client_storage_1 = require("./storage/grpc-client.storage");
14
+ const grpc_storage_module_1 = require("./storage/grpc-storage.module");
15
+ const token_factories_1 = require("./token.factories");
16
+ const cached = (cache, fn) => {
17
+ return (key) => {
18
+ if (cache.has(key)) {
19
+ return cache.get(key);
20
+ }
21
+ const result = fn();
22
+ cache.set(key, result);
23
+ return result;
24
+ };
25
+ };
26
+ class GrpcClientsModule1 {
27
+ static logger = logging_1.LoggerFactory.create(GrpcClientsModule1);
28
+ static factory = (0, nice_grpc_1.createClientFactory)().use((0, nice_grpc_opentelemetry_1.openTelemetryClientMiddleware)());
29
+ /**
30
+ * Adds grpc client to module's scope. Is nesessary to make the
31
+ * client available in DI.
32
+ * @param serverName Name of the grpc server.
33
+ * @param definition grpc-service definitions (from generated code)
34
+ * @returns ParameterDecorator
35
+ */
36
+ static forInstance(serverName, definition) {
37
+ const CONFIG_PROPERTY_ALIAS = (0, token_factories_1.getPropertyKey)(serverName);
38
+ const propertyToken = (0, core_1.getPropertyToken)(CONFIG_PROPERTY_ALIAS);
39
+ const clientToken = (0, token_factories_1.getClientToken)(definition);
40
+ const channelToken = (0, token_factories_1.getChannelToken)(serverName);
41
+ const channelProvider = {
42
+ provide: channelToken,
43
+ inject: [propertyToken, grpc_client_storage_1.GrpcClientStorage],
44
+ useFactory: (address, grpc) => {
45
+ const channels = grpc.channels;
46
+ return cached(channels, () => {
47
+ this.logger.info(`Creating channel for ${serverName} (${address})...`);
48
+ return (0, nice_grpc_1.createChannel)(address);
49
+ })(channelToken);
50
+ },
51
+ };
52
+ const clientProvider = {
53
+ provide: clientToken,
54
+ inject: [channelToken, grpc_client_storage_1.GrpcClientStorage],
55
+ useFactory: (channel, grpc) => {
56
+ return cached(grpc.clients, () => {
57
+ this.logger.info(`Creating client for ${definition.fullName.toString()} on (${channel.getTarget()})...`);
58
+ return this.factory.create(definition, channel);
59
+ })(clientToken);
60
+ },
61
+ };
62
+ const moduleDefinition = {
63
+ imports: [
64
+ core_1.PlatformConfigModule.forProperty(CONFIG_PROPERTY_ALIAS),
65
+ grpc_storage_module_1.GrpcStorageModule,
66
+ ],
67
+ module: GrpcClientsModule1,
68
+ providers: [channelProvider, clientProvider],
69
+ exports: [clientProvider],
70
+ };
71
+ const key = (0, token_factories_1.getPropertyKey)(serverName);
72
+ core_1.ConfigMetadataRegistry.registerProperty(moduleDefinition, key, {
73
+ key: key,
74
+ parser: new grpc_common_1.GrpcAddressParser(),
75
+ description: `${serverName.toString()} service host`,
76
+ expectedInEnv: false,
77
+ });
78
+ metadata_1.RsdkMetadata.add(moduleDefinition, {
79
+ serverName,
80
+ definition,
81
+ }, constants_1.GRPC_CLIENTS_RSDK_METADATA_SCOPE);
82
+ autodoc_protocol_1.AutodocMetadata.defineResolver(moduleDefinition, constants_1.GRPC_CLIENTS_RSDK_METADATA_SCOPE, grpc_clients_autodoc_resolver_1.grpcClientAutodocResolver);
83
+ return moduleDefinition;
84
+ }
85
+ static forFactory(definition) {
86
+ const provider = {
87
+ provide: (0, token_factories_1.getFactoryToken)(definition),
88
+ useFactory: () => ({
89
+ create(address) {
90
+ return GrpcClientsModule1.factory.create(definition, (0, nice_grpc_1.createChannel)(address));
91
+ },
92
+ }),
93
+ };
94
+ return {
95
+ module: GrpcClientsModule1,
96
+ providers: [provider],
97
+ exports: [provider],
98
+ };
99
+ }
100
+ }
101
+ exports.GrpcClientsModule1 = GrpcClientsModule1;
102
+ //# sourceMappingURL=clients.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clients.module.js","sourceRoot":"","sources":["../src/clients.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { KeyDeclaration, KeyDefinition, KeyMap } from './types';
2
+ export declare class GrpcClientKeyMapGenerator {
3
+ static createFromDeclaration<TKeyDeclaration extends KeyDeclaration>(declaration: TKeyDeclaration): KeyMap<TKeyDeclaration>;
4
+ static extractDefinition<TKeyDeclaration extends KeyDeclaration, TKeyMap extends KeyMap<TKeyDeclaration> = KeyMap<TKeyDeclaration>>(keyMap: TKeyMap): KeyDefinition[];
5
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrpcClientKeyMapGenerator = void 0;
4
+ class GrpcClientKeyMapGenerator {
5
+ static createFromDeclaration(declaration) {
6
+ const map1 = Object.entries(declaration).map(([serverName, serviceMap]) => {
7
+ const map = Object.entries(serviceMap).map(([serviceName, definition]) => {
8
+ return [
9
+ serviceName,
10
+ {
11
+ serverName,
12
+ serviceName,
13
+ definition,
14
+ },
15
+ ];
16
+ });
17
+ return [serverName, Object.fromEntries(map)];
18
+ });
19
+ return Object.fromEntries(map1);
20
+ }
21
+ static extractDefinition(keyMap) {
22
+ const definitions = [];
23
+ for (const serviceMap of Object.values(keyMap)) {
24
+ for (const value of Object.values(serviceMap)) {
25
+ definitions.push(value);
26
+ }
27
+ }
28
+ return definitions;
29
+ }
30
+ }
31
+ exports.GrpcClientKeyMapGenerator = GrpcClientKeyMapGenerator;
32
+ //# sourceMappingURL=grpc-client-key-map.generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-client-key-map.generator.js","sourceRoot":"","sources":["../src/grpc-client-key-map.generator.ts"],"names":[],"mappings":";;;AAEA,MAAa,yBAAyB;IACpC,MAAM,CAAC,qBAAqB,CAC1B,WAA4B;QAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE;YACxE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CACxC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,EAAE;gBAC5B,OAAO;oBACL,WAAW;oBACX;wBACE,UAAU;wBACV,WAAW;wBACX,UAAU;qBACX;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,iBAAiB,CAGtB,MAAe;QACf,MAAM,WAAW,GAAoB,EAAE,CAAC;QAExC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBAC7C,WAAW,CAAC,IAAI,CAAC,KAAsB,CAAC,CAAC;aAC1C;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AArCD,8DAqCC"}
@@ -0,0 +1,10 @@
1
+ import type { DynamicModule } from '@nestjs/common';
2
+ import type { Constructor } from '@rsdk/common';
3
+ import type { AppropriateTransports, PlatformAppPlugin } from '@rsdk/core';
4
+ import type { GrpcServerDeclaration, GrpcServerMap } from './servers/types';
5
+ export declare class GrpcClientPlugin<T extends GrpcServerDeclaration> implements PlatformAppPlugin {
6
+ readonly keyMap: GrpcServerMap<T>;
7
+ constructor(keyMap: GrpcServerMap<T>);
8
+ forTransports(): AppropriateTransports;
9
+ modules(): (Constructor | DynamicModule)[];
10
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrpcClientPlugin = void 0;
4
+ const grpc_servers_1 = require("./servers/grpc.servers");
5
+ class GrpcClientPlugin {
6
+ keyMap;
7
+ constructor(keyMap) {
8
+ this.keyMap = keyMap;
9
+ }
10
+ forTransports() {
11
+ return 'any';
12
+ }
13
+ modules() {
14
+ const grpcDefinition = grpc_servers_1.GrpcServers.extractDefinition(this.keyMap);
15
+ return [
16
+ // {
17
+ // global: true,
18
+ // module: GrpcClientPlugin,
19
+ // imports: grpcDefinition.map(({ definition, serverName }) =>
20
+ // this.createModuleDefinition(serverName, definition),
21
+ // ),
22
+ // },
23
+ ];
24
+ }
25
+ }
26
+ exports.GrpcClientPlugin = GrpcClientPlugin;
27
+ //# sourceMappingURL=grpc-client.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-client.plugin.js","sourceRoot":"","sources":["../src/grpc-client.plugin.ts"],"names":[],"mappings":";;;AAkBA,yDAAqD;AAYrD,MAAa,gBAAgB;IAGN;IAArB,YAAqB,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;IAAG,CAAC;IAEjD,aAAa;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,MAAM,cAAc,GAAG,0BAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElE,OAAO;QACL,IAAI;QACJ,kBAAkB;QAClB,8BAA8B;QAC9B,gEAAgE;QAChE,2DAA2D;QAC3D,OAAO;QACP,KAAK;SACN,CAAC;IACJ,CAAC;CACF;AAtBD,4CAsBC"}
@@ -0,0 +1,5 @@
1
+ import type { NestModuleDefinition } from '@rsdk/common';
2
+ import type { PlatformAppPlugin } from '@rsdk/core';
3
+ export declare class GrpcClientsPlugin implements PlatformAppPlugin {
4
+ modules(): Promise<NestModuleDefinition[]>;
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrpcClientsPlugin = void 0;
4
+ class GrpcClientsPlugin {
5
+ async modules() {
6
+ return [];
7
+ }
8
+ }
9
+ exports.GrpcClientsPlugin = GrpcClientsPlugin;
10
+ //# sourceMappingURL=grpc-clients.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-clients.plugin.js","sourceRoot":"","sources":["../src/grpc-clients.plugin.ts"],"names":[],"mappings":";;;AAGA,MAAa,iBAAiB;IAC5B,KAAK,CAAC,OAAO;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAJD,8CAIC"}
@@ -0,0 +1,12 @@
1
+ import type { Channel, Client } from 'nice-grpc';
2
+ import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
3
+ export declare class GrpcStorage {
4
+ static x: never[];
5
+ constructor();
6
+ servers: Set<string>;
7
+ definitions: Set<CompatServiceDefinition>;
8
+ channels: Map<string, Channel>;
9
+ clients: Map<string, Client<CompatServiceDefinition>>;
10
+ }
11
+ export declare class GrpcStorageModule {
12
+ }
@@ -0,0 +1,33 @@
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.GrpcStorageModule = exports.GrpcStorage = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ class GrpcStorage {
12
+ static x = [];
13
+ constructor() {
14
+ GrpcStorage.x.push(this);
15
+ }
16
+ // Registration
17
+ servers = new Set();
18
+ definitions = new Set();
19
+ // Caches
20
+ channels = new Map();
21
+ clients = new Map();
22
+ }
23
+ exports.GrpcStorage = GrpcStorage;
24
+ let GrpcStorageModule = class GrpcStorageModule {
25
+ };
26
+ GrpcStorageModule = __decorate([
27
+ (0, common_1.Module)({
28
+ providers: [GrpcStorage],
29
+ exports: [GrpcStorage],
30
+ })
31
+ ], GrpcStorageModule);
32
+ exports.GrpcStorageModule = GrpcStorageModule;
33
+ //# sourceMappingURL=grpc-storage.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-storage.module.js","sourceRoot":"","sources":["../src/grpc-storage.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAIxC,MAAa,WAAW;IACtB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;IAEd;QACE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,eAAe;IACf,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,SAAS;IACT,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtC,OAAO,GAAG,IAAI,GAAG,EAA2C,CAAC;;AAZlD,kCAAW;AAmBxB,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAJ7B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,WAAW,CAAC;QACxB,OAAO,EAAE,CAAC,WAAW,CAAC;KACvB,CAAC;GACW,iBAAiB,CAAG;AAApB,8CAAiB"}
@@ -0,0 +1,5 @@
1
+ import type { KeyDeclaration, KeyDefinition, KeyMap } from './types';
2
+ export declare class GrpcServers {
3
+ static define<TKeyDeclaration extends KeyDeclaration>(declaration: TKeyDeclaration): KeyMap<TKeyDeclaration>;
4
+ static extractDefinition<TKeyDeclaration extends KeyDeclaration, TKeyMap extends KeyMap<TKeyDeclaration> = KeyMap<TKeyDeclaration>>(keyMap: TKeyMap): KeyDefinition[];
5
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrpcServers = void 0;
4
+ class GrpcServers {
5
+ static define(declaration) {
6
+ const map1 = Object.entries(declaration).map(([serverName, serviceMap]) => {
7
+ const map = Object.entries(serviceMap).map(([serviceName, definition]) => {
8
+ return [
9
+ serviceName,
10
+ {
11
+ serverName,
12
+ serviceName,
13
+ definition,
14
+ },
15
+ ];
16
+ });
17
+ return [serverName, Object.fromEntries(map)];
18
+ });
19
+ return Object.fromEntries(map1);
20
+ }
21
+ static extractDefinition(keyMap) {
22
+ const definitions = [];
23
+ for (const serviceMap of Object.values(keyMap)) {
24
+ for (const value of Object.values(serviceMap)) {
25
+ definitions.push(value);
26
+ }
27
+ }
28
+ return definitions;
29
+ }
30
+ }
31
+ exports.GrpcServers = GrpcServers;
32
+ //# sourceMappingURL=grpc.servers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc.servers.js","sourceRoot":"","sources":["../src/grpc.servers.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IACtB,MAAM,CAAC,MAAM,CACX,WAA4B;QAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE;YACxE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CACxC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,EAAE;gBAC5B,OAAO;oBACL,WAAW;oBACX;wBACE,UAAU;wBACV,WAAW;wBACX,UAAU;qBACX;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,iBAAiB,CAGtB,MAAe;QACf,MAAM,WAAW,GAAoB,EAAE,CAAC;QAExC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBAC7C,WAAW,CAAC,IAAI,CAAC,KAAsB,CAAC,CAAC;aAC1C;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AArCD,kCAqCC"}
@@ -0,0 +1,5 @@
1
+ import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
2
+ export type GrpcClientInstanceMetadataValue = {
3
+ serverName: string;
4
+ definition: CompatServiceDefinition;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=grpcClientInstanceMetadataValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpcClientInstanceMetadataValue.js","sourceRoot":"","sources":["../src/grpcClientInstanceMetadataValue.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
2
+ export interface GrpcClientsFactory<T> {
3
+ /**
4
+ * Creates instance of grpc client
5
+ * @param address Address of grpc server in format {host}:{port}
6
+ */
7
+ create(address: string): T;
8
+ }
9
+ /**
10
+ * Injects factory of grpc clients for specific grpc-service. Main
11
+ * use case is when you need to add some middleware before creating
12
+ * client instance.
13
+ * @param definition grpc-service definitions (from generated code)
14
+ * @returns ParameterDecorator
15
+ */
16
+ export declare const InjectGrpcClientsFactory: (definition: CompatServiceDefinition) => ParameterDecorator;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InjectGrpcClientsFactory = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const token_factories_1 = require("./token.factories");
6
+ /**
7
+ * Injects factory of grpc clients for specific grpc-service. Main
8
+ * use case is when you need to add some middleware before creating
9
+ * client instance.
10
+ * @param definition grpc-service definitions (from generated code)
11
+ * @returns ParameterDecorator
12
+ */
13
+ const InjectGrpcClientsFactory = (definition) => {
14
+ const token = (0, token_factories_1.getFactoryToken)(definition);
15
+ // TODO Add metadata registration
16
+ return (0, common_1.Inject)(token);
17
+ };
18
+ exports.InjectGrpcClientsFactory = InjectGrpcClientsFactory;
19
+ //# sourceMappingURL=inject-client-factory.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-client-factory.decorator.js","sourceRoot":"","sources":["../src/inject-client-factory.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAGxC,uDAAoD;AAWpD;;;;;;GAMG;AACI,MAAM,wBAAwB,GAAG,CACtC,UAAmC,EACf,EAAE;IACtB,MAAM,KAAK,GAAG,IAAA,iCAAe,EAAC,UAAU,CAAC,CAAC;IAE1C,iCAAiC;IACjC,OAAO,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AAPW,QAAA,wBAAwB,4BAOnC"}
@@ -0,0 +1,11 @@
1
+ import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
2
+ import type { KeyMapValue } from './types';
3
+ /**
4
+ * Injects ready to use client for particular grpc-service
5
+ * on specific server (grpc-service and grpc-server are different
6
+ * concepts!)
7
+ * configure channel is generated from this client.
8
+ * @returns ParameterDecorator
9
+ * @param keyMapValue
10
+ */
11
+ export declare const InjectGrpcClient: <TServerName, TServiceName, TServiceDefinition extends CompatServiceDefinition>(keyMapValue: KeyMapValue<TServerName, TServiceName, TServiceDefinition>) => ParameterDecorator;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InjectGrpcClient = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const token_factories_1 = require("./token.factories");
6
+ /**
7
+ * Injects ready to use client for particular grpc-service
8
+ * on specific server (grpc-service and grpc-server are different
9
+ * concepts!)
10
+ * configure channel is generated from this client.
11
+ * @returns ParameterDecorator
12
+ * @param keyMapValue
13
+ */
14
+ const InjectGrpcClient = (keyMapValue) => {
15
+ return (target, propertyKey, parameterIndex) => {
16
+ (0, common_1.Inject)((0, token_factories_1.getClientToken)(keyMapValue.definition))(target, propertyKey, parameterIndex);
17
+ };
18
+ };
19
+ exports.InjectGrpcClient = InjectGrpcClient;
20
+ //# sourceMappingURL=inject-client.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-client.decorator.js","sourceRoot":"","sources":["../src/inject-client.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAGxC,uDAAmD;AAGnD;;;;;;;GAOG;AACI,MAAM,gBAAgB,GAAG,CAK9B,WAAuE,EACnD,EAAE;IACtB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;QAC7C,IAAA,eAAM,EAAC,IAAA,gCAAc,EAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAC5C,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
@@ -0,0 +1,2 @@
1
+ import type { ClientMiddleware } from 'nice-grpc-common';
2
+ export declare const errorDetailsClientMiddleware: ClientMiddleware;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.errorDetailsClientMiddleware = void 0;
4
+ const error_1 = require("@rsdk/builtin-contract/dist/grpc/error/v1/error");
5
+ const core_1 = require("@rsdk/core");
6
+ const grpc_common_1 = require("@rsdk/grpc.common");
7
+ const errorDetailsClientMiddleware = async function* errorDetailsClientMiddleware(call, options) {
8
+ let status;
9
+ try {
10
+ return yield* call.next(call.request, {
11
+ ...options,
12
+ onTrailer(trailer) {
13
+ const detailsBuffer = trailer.get('grpc-status-details-bin');
14
+ if (detailsBuffer != null) {
15
+ status = error_1.Status.decode(detailsBuffer);
16
+ }
17
+ console.log({ status });
18
+ options.onTrailer?.(trailer);
19
+ },
20
+ });
21
+ }
22
+ catch (error) {
23
+ if (status !== undefined) {
24
+ const exKindMapItem = [...grpc_common_1.kindMap.entries()].find(([_, value]) => value === status.kind);
25
+ const exKind = exKindMapItem ? exKindMapItem[0] : core_1.ExceptionKind.UNKNOWN;
26
+ const createFromKind = (kind, message, props) => {
27
+ const map = new Map([
28
+ [core_1.ExceptionKind.INTERNAL, core_1.InternalException],
29
+ [core_1.ExceptionKind.AUTHENTICATION, core_1.AuthException],
30
+ [core_1.ExceptionKind.CONFLICT, core_1.ConflictException],
31
+ [core_1.ExceptionKind.TIMEOUT, core_1.TimeoutException],
32
+ [core_1.ExceptionKind.NOT_ALLOWED, core_1.NotAllowedException],
33
+ [core_1.ExceptionKind.NOT_FOUND, core_1.NotAllowedException],
34
+ [core_1.ExceptionKind.DUPLICATION, core_1.DuplicateEntityException],
35
+ ]);
36
+ const cls = map.get(kind) ?? core_1.InternalException;
37
+ return Reflect.construct(cls, [message, props]);
38
+ };
39
+ throw createFromKind(exKind, status.message, {
40
+ details: status.details,
41
+ code: status.rsdkCode,
42
+ });
43
+ }
44
+ throw error;
45
+ }
46
+ };
47
+ exports.errorDetailsClientMiddleware = errorDetailsClientMiddleware;
48
+ //# sourceMappingURL=rich-error.middlewate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rich-error.middlewate.js","sourceRoot":"","sources":["../../src/middleware/rich-error.middlewate.ts"],"names":[],"mappings":";;;AAAA,2EAAyE;AAGzE,qCAQoB;AACpB,mDAA4C;AAGrC,MAAM,4BAA4B,GACvC,KAAK,SAAS,CAAC,CAAC,4BAA4B,CAAC,IAAI,EAAE,OAAO;IACxD,IAAI,MAA0B,CAAC;IAE/B,IAAI;QACF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACpC,GAAG,OAAO;YACV,SAAS,CAAC,OAAO;gBACf,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBAE7D,IAAI,aAAa,IAAI,IAAI,EAAE;oBACzB,MAAM,GAAG,cAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;iBACvC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACxB,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,aAAa,GAAG,CAAC,GAAG,qBAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,MAAO,CAAC,IAAI,CACvC,CAAC;YAEF,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAa,CAAC,OAAO,CAAC;YAExE,MAAM,cAAc,GAAG,CACrB,IAAmB,EACnB,OAAe,EACf,KAAuB,EACJ,EAAE;gBACrB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAgD;oBACjE,CAAC,oBAAa,CAAC,QAAQ,EAAE,wBAAiB,CAAC;oBAC3C,CAAC,oBAAa,CAAC,cAAc,EAAE,oBAAa,CAAC;oBAC7C,CAAC,oBAAa,CAAC,QAAQ,EAAE,wBAAiB,CAAC;oBAC3C,CAAC,oBAAa,CAAC,OAAO,EAAE,uBAAgB,CAAC;oBACzC,CAAC,oBAAa,CAAC,WAAW,EAAE,0BAAmB,CAAC;oBAChD,CAAC,oBAAa,CAAC,SAAS,EAAE,0BAAmB,CAAC;oBAC9C,CAAC,oBAAa,CAAC,WAAW,EAAE,+BAAwB,CAAC;iBACtD,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,wBAAiB,CAAC;gBAE/C,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC;YAEF,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;gBAC3C,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM,CAAC,QAAQ;aACtB,CAAC,CAAC;SACJ;QAED,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC;AArDS,QAAA,4BAA4B,gCAqDrC"}
@@ -0,0 +1,18 @@
1
+ import type { ChannelImplementation } from '@grpc/grpc-js/build/src/channel';
2
+ import type { Client } from 'nice-grpc';
3
+ import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
4
+ /**
5
+ * Простое кеш хранилище внутри DI для кеширования на замену статике
6
+ */
7
+ export declare class GrpcClientStorage {
8
+ private static factory;
9
+ logger: import("@rsdk/logging").ILogger;
10
+ servers: Set<string>;
11
+ definitions: Set<CompatServiceDefinition>;
12
+ channels: Map<string, ChannelImplementation>;
13
+ clients: Map<string, Client<CompatServiceDefinition>>;
14
+ private static createChannel;
15
+ private static createClient;
16
+ resolveChannel(address: string, channelToken: string): ChannelImplementation;
17
+ resolveClient(definition: CompatServiceDefinition, channel: ChannelImplementation, clientToken: string): Client<CompatServiceDefinition>;
18
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrpcClientStorage = void 0;
4
+ const logging_1 = require("@rsdk/logging");
5
+ const nice_grpc_1 = require("nice-grpc");
6
+ const nice_grpc_opentelemetry_1 = require("nice-grpc-opentelemetry");
7
+ /**
8
+ * Простое кеш хранилище внутри DI для кеширования на замену статике
9
+ */
10
+ class GrpcClientStorage {
11
+ static factory = (0, nice_grpc_1.createClientFactory)().use((0, nice_grpc_opentelemetry_1.openTelemetryClientMiddleware)());
12
+ logger = logging_1.LoggerFactory.create(GrpcClientStorage);
13
+ // Registration
14
+ servers = new Set();
15
+ definitions = new Set();
16
+ // Caches
17
+ channels = new Map();
18
+ clients = new Map();
19
+ static createChannel(address) {
20
+ return (0, nice_grpc_1.createChannel)(address);
21
+ }
22
+ static createClient(definition, channel) {
23
+ return GrpcClientStorage.factory.create(definition, channel);
24
+ }
25
+ resolveChannel(address, channelToken) {
26
+ const existed = this.channels.get(channelToken) ??
27
+ GrpcClientStorage.createChannel(address);
28
+ this.channels.set(channelToken, existed);
29
+ return existed;
30
+ }
31
+ resolveClient(definition, channel, clientToken) {
32
+ const existed = this.clients.get(clientToken) ??
33
+ GrpcClientStorage.createClient(definition, channel);
34
+ this.clients.set(clientToken, existed);
35
+ return existed;
36
+ }
37
+ }
38
+ exports.GrpcClientStorage = GrpcClientStorage;
39
+ //# sourceMappingURL=grpc-client.storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-client.storage.js","sourceRoot":"","sources":["../../src/storage/grpc-client.storage.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C,yCAA+D;AAE/D,qEAAwE;AAExE;;GAEG;AACH,MAAa,iBAAiB;IACpB,MAAM,CAAC,OAAO,GAAkB,IAAA,+BAAmB,GAAE,CAAC,GAAG,CAC/D,IAAA,uDAA6B,GAAE,CAChC,CAAC;IAEF,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjD,eAAe;IACf,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,SAAS;IACT,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IACtC,OAAO,GAAG,IAAI,GAAG,EAA2C,CAAC;IAErD,MAAM,CAAC,aAAa,CAAC,OAAe;QAC1C,OAAO,IAAA,yBAAa,EAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEO,MAAM,CAAC,YAAY,CACzB,UAAmC,EACnC,OAA8B;QAE9B,OAAO,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,YAAoB;QAClD,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;YAC/B,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,aAAa,CACX,UAAmC,EACnC,OAA8B,EAC9B,WAAmB;QAEnB,MAAM,OAAO,GACX,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YAC7B,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEvC,OAAO,OAAO,CAAC;IACjB,CAAC;;AA9CU,8CAAiB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Вынесено в отдельный модуль для того чтобы не было дублирования внутри DI
3
+ * Но при этом чтобы не надо было делать `forRoot` в корне приложения
4
+ */
5
+ export declare class GrpcStorageModule {
6
+ }
@@ -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.GrpcStorageModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const grpc_client_storage_1 = require("./grpc-client.storage");
12
+ /**
13
+ * Вынесено в отдельный модуль для того чтобы не было дублирования внутри DI
14
+ * Но при этом чтобы не надо было делать `forRoot` в корне приложения
15
+ */
16
+ let GrpcStorageModule = class GrpcStorageModule {
17
+ };
18
+ GrpcStorageModule = __decorate([
19
+ (0, common_1.Module)({
20
+ providers: [grpc_client_storage_1.GrpcClientStorage],
21
+ exports: [grpc_client_storage_1.GrpcClientStorage],
22
+ })
23
+ ], GrpcStorageModule);
24
+ exports.GrpcStorageModule = GrpcStorageModule;
25
+ //# sourceMappingURL=grpc-storage.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpc-storage.module.js","sourceRoot":"","sources":["../../src/storage/grpc-storage.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAExC,+DAA0D;AAE1D;;;GAGG;AAKH,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAJ7B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,uCAAiB,CAAC;QAC9B,OAAO,EAAE,CAAC,uCAAiB,CAAC;KAC7B,CAAC;GACW,iBAAiB,CAAG;AAApB,8CAAiB"}
@@ -0,0 +1,11 @@
1
+ import type { Channel, Client } from 'nice-grpc';
2
+ import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
3
+ /**
4
+ * Простое кеш хранилище внутри DI для кеширования на замену статике
5
+ */
6
+ export declare class GrpcStorage {
7
+ servers: Set<string>;
8
+ definitions: Set<CompatServiceDefinition>;
9
+ channels: Map<string, Channel>;
10
+ clients: Map<string, Client<CompatServiceDefinition>>;
11
+ }