@trash-streamers/common 1.2.53 → 1.2.55

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.
@@ -1,3 +1,4 @@
1
+ import * as grpc from "@grpc/grpc-js";
1
2
  import { ConfigService } from "@nestjs/config";
2
3
  import { ClientGrpc } from "@nestjs/microservices";
3
4
  export declare class GrpcClientFactory {
@@ -9,6 +10,7 @@ export declare class GrpcClientFactory {
9
10
  protoPath: string;
10
11
  url: string;
11
12
  secure?: boolean;
13
+ credentials?: grpc.ChannelCredentials;
12
14
  }): Promise<ClientGrpc>;
13
15
  register(token: string, client: ClientGrpc): void;
14
16
  getClient<T extends ClientGrpc = ClientGrpc>(token: string): T;
@@ -54,84 +54,16 @@ let GrpcClientFactory = class GrpcClientFactory {
54
54
  }
55
55
  clients = new Map();
56
56
  async createClient(options) {
57
- let credentials = grpc.credentials.createInsecure();
58
- if (options.secure) {
59
- const CA_PEM = `-----BEGIN CERTIFICATE-----
60
- MIIDWzCCAkOgAwIBAgIULC3LplY9Eb6Bgk4dLVPd6pNYojIwDQYJKoZIhvcNAQEL
61
- BQAwIjEgMB4GA1UEAxMXdHJhc2gtc3RyZWFtZXJzLXJvb3QtY2EwHhcNMjYwMzE4
62
- MTE1NjU4WhcNMzYwMzE1MTE1NzI4WjAiMSAwHgYDVQQDExd0cmFzaC1zdHJlYW1l
63
- cnMtcm9vdC1jYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpm/YW2
64
- TP7Yj+76P4yFx2epmPaKGmeqIS+gOhSZ2c+IINnCREx+4UxiG75H8zq9H3GZfvsF
65
- thaBBtNVh64j++CkqUN1NtsV920mkVKqhP08s/mexd0YS4bPjiLRE6Y/eXnAIK+X
66
- hQ2JQA/MgreQCxc+0iEegAX3TgDkPX/TIL/vl1ZRu2daqupEfJWAn9MJ9Iq+viQW
67
- bnex2HrqdpVUdOYtbemeO+tdaCzX8keGvHNJp2SqDQixNipAqfvwGcI/P/HjRigh
68
- d4KJIkibdR/uOvbS76INPI4eOBCA0CMI8BWYXxhmJQMt7jlDqqnm8ZN3zeWc6/E4
69
- cZ0JZH56OuPgqSECAwEAAaOBiDCBhTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
70
- BAUwAwEB/zAdBgNVHQ4EFgQUC+Aeq5pdTJ9Ztksb9EkEVXtv4q8wHwYDVR0jBBgw
71
- FoAUC+Aeq5pdTJ9Ztksb9EkEVXtv4q8wIgYDVR0RBBswGYIXdHJhc2gtc3RyZWFt
72
- ZXJzLXJvb3QtY2EwDQYJKoZIhvcNAQELBQADggEBAFs8oOYWE29KX6aoJZxNLMU5
73
- VzVArkIkUv569Hic/1gRVy68wQ5bfvB8bZKJ+bo8rapbKTBVUWS8KE454qxmvCDz
74
- vkn3mCVIhp5itToIezN5jBpN4vOHVLIK5vEPO1WAtqaX8LwxHmEaVPoD/DKtvVof
75
- ObB+xckaNWb3/H784K1iqh3pKQ1WOkoVc7CM/fJcjMEdZYaaYthU86SZ9ym9CZPj
76
- 7Gn2qT/4Oed39JrK4bpakpV7EJPZOkKv44otW0qfooRRE4Oy0vryQNEqpKq6nAgR
77
- 9QDCNALA4SuO8pODznsET/vGRF2M1e8kBPnFNLi6Pfdfe9ncOhEB06QO6q1McL0=
78
- -----END CERTIFICATE-----`;
79
- const CERT_PEM = `-----BEGIN CERTIFICATE-----
80
- MIIDSTCCAjGgAwIBAgIUA16Da2satwVRfGWeMNcz1D1zpbowDQYJKoZIhvcNAQEL
81
- BQAwIjEgMB4GA1UEAxMXdHJhc2gtc3RyZWFtZXJzLXJvb3QtY2EwHhcNMjYwMzE4
82
- MTcxMTM5WhcNMjcwMzE4MTcxMjA5WjASMRAwDgYDVQQDEwdnYXRld2F5MIIBIjAN
83
- BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApXcQ/TXj4FLE2WWDDyRZdw7+kMUG
84
- 6kQCe5uQbBKiXo4QB0Yhrx3daf6gfjEYrzkcmRTZwa2L8e+v5rFxnBsj5SFRrvF6
85
- tcfq3w2YO7VAs8SxNBkwBK1M7qt0ynenBEiYUrSGm8RMakqh0rRMKbXRsGKU6pqW
86
- HFwje2nuAiaXi+CU2D6f/8pzBlorGh8tw3mlZykUdh22i8cW8vKQliQOy20skrC8
87
- ckHnE6ctw7SPtGcpdayl2Qv6h7wbtAWYtFu8K8+YG6zj9+jBfheOPu6PLF0cWCOY
88
- ERetYNYkCmxTe5rbqbQxMAeqW4Usw9/VZePFDlB2h+3D/0hkcy2suOIvpwIDAQAB
89
- o4GGMIGDMA4GA1UdDwEB/wQEAwIDqDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB
90
- BQUHAwIwHQYDVR0OBBYEFKNCcXfquYP84T0B+cv5WQwKTC6vMB8GA1UdIwQYMBaA
91
- FAvgHquaXUyfWbZLG/RJBFV7b+KvMBIGA1UdEQQLMAmCB2dhdGV3YXkwDQYJKoZI
92
- hvcNAQELBQADggEBAJee4T8NEFUB1MOruo5t0qW07XPHVHgskgx81U2x2AyW12MT
93
- 8N4bzwMbw0abY7rA881/eaHDEzwjA70fEOzDiAKyVp5Q2VuTc7tMeAD414bBHqr0
94
- jmHEXZlp++Iv8FHxX1kaeW09ywoGlHMLvlPC7R/7y5A9s8MbXgGoc+5zm5Lmuptv
95
- LvgxQ44qmmfE8bxi9670SpTx+35yW33hwV7AxmQLKCdzFCalvdj3dOrKchsc6+MP
96
- 6bOqrLhcZJ0fumu3mty9znjBVd7/RpMlxvE0T90o0mmPS4xb0uNX66QCFV5JfV0j
97
- NjBPGCaao3dz2+SfgNNYVCpiKH3o4mJM+vHwCk0=
98
- -----END CERTIFICATE-----`;
99
- const KEY_PEM = `-----BEGIN RSA PRIVATE KEY-----
100
- MIIEpAIBAAKCAQEApXcQ/TXj4FLE2WWDDyRZdw7+kMUG6kQCe5uQbBKiXo4QB0Yh
101
- rx3daf6gfjEYrzkcmRTZwa2L8e+v5rFxnBsj5SFRrvF6tcfq3w2YO7VAs8SxNBkw
102
- BK1M7qt0ynenBEiYUrSGm8RMakqh0rRMKbXRsGKU6pqWHFwje2nuAiaXi+CU2D6f
103
- /8pzBlorGh8tw3mlZykUdh22i8cW8vKQliQOy20skrC8ckHnE6ctw7SPtGcpdayl
104
- 2Qv6h7wbtAWYtFu8K8+YG6zj9+jBfheOPu6PLF0cWCOYERetYNYkCmxTe5rbqbQx
105
- MAeqW4Usw9/VZePFDlB2h+3D/0hkcy2suOIvpwIDAQABAoIBAA1RpkEbmLoyhLyT
106
- GpeaGhwmotXNu57D1rH9ywRIA7XkwuQzAFHI76Jb6ANVubebu0eUkWqw/jYn+wVw
107
- 0cT6Z6CcAVKPBuJMXgWSYedR0bbRZbTciixLiYkfWAlW1E+DSxpChHX+uRVH6KVo
108
- n0Yu59rGNK0lwGDhXHcksbnj7V2e7GlQEyWy9WCNTdSwQq8BKhA5n4oehSD6OHUS
109
- BVpQGHe2i26mRBntLG+cKNmRrHDnRTirzszrZqEetPrtOa3V4wUOP9GLWHcAONKm
110
- DEfP58V3EiQgoatDSCFDHCG+xIpZGfm9q8WLnd83oGm0bytmzRH7ADCiJ1oB4r++
111
- TMJnpPECgYEAwU25XSju3b0lPkPEioHHap1ndeajNH2NAQfUGlNxHpTRJrRpB201
112
- faTTywTAl/3SLDNFHEgkXWjjP9rmklOTvG1IWFVTIj6zPVjo4UKrCAEGrS548/0K
113
- ZBGtMeYjZ6lUZ5F/56NmC58H1R5rF4u0o94mmZnklNxhZZomWpPjYeUCgYEA2yHf
114
- A9x7WVRVxqmbZ3lItfssOuWg6e3oGeZXDp8XGBR+bhzUsTmnx7NRZ/e8xmGLBNUi
115
- feqbSQuQtZf8q5RnSk1Eh5LShpFJMdURvY5rmYsXLFSXoMBPxDhCZ2AoIon0Mw8Q
116
- 2nV2+e2PL6jYHciNxKgGCpBLw9FIiCq7E1kHopsCgYEAiv2rAgxTrMa7B8lMgdcN
117
- H2Dsqn7a7Pw1rf8GCKPk23tf4/em6XsiEiS5UOoq3V7Zh4SZ9dr9otivRhPM5HwJ
118
- 51ugwDsh2qbA1KSgVpBMUCYEufOHbtCMbyWypgV3garkkM+y60i3MDX6OMh1cmm2
119
- ynkKwjlAfbT0p0yutURPI+0CgYEAqZijY/emt9JfuKvYDNN/hOjqqILEcYihlDoD
120
- sttKImbqGwrRSoDW6+ZK4O6J+ffQgmL6mP2URYpf60vAUINBFe6LVWo66c9UGO9R
121
- FaY+fM17l+G4oL92fOUV77AqH+EpUMMeRhWXiYNkyHwjF5n6rvNkCZT4LouxWUHJ
122
- HAZRtHUCgYBkWNUwuR4DLCHzfYdxvu6nd2Bpvg7JZgDD0B8ZMhN1lzNJn44jUMTr
123
- UPZKYDgk2K64HYWZjUW85Cc3KvCJ0LDcEoepa/vOESLfhcDgPmTnK84S5M/jEWqG
124
- wBGprTrO2M+BK9RBCJCQgc2dYurW/+/0NN/3nL0fzucVQFbR9+HAGw==
125
- -----END RSA PRIVATE KEY-----`;
126
- credentials = grpc.credentials.createSsl(Buffer.from(CA_PEM), Buffer.from(KEY_PEM), Buffer.from(CERT_PEM));
127
- }
57
+ const credentials = options.credentials ?? grpc.credentials.createInsecure();
128
58
  return microservices_1.ClientProxyFactory.create({
129
59
  transport: microservices_1.Transport.GRPC,
130
60
  options: {
131
61
  ...options,
132
62
  credentials,
133
- 'grpc.ssl_target_name_override': 'system-chats.service',
134
- 'grpc.default_authority': 'system-chats.service',
63
+ channelOptions: {
64
+ 'grpc.ssl_target_name_override': 'system-chats.service',
65
+ 'grpc.default_authority': 'system-chats.service',
66
+ },
135
67
  loader: {
136
68
  keepCase: false,
137
69
  enums: String,
@@ -1,5 +1,8 @@
1
+ import * as grpc from "@grpc/grpc-js";
1
2
  import { type DynamicModule } from '@nestjs/common';
2
3
  import { GRPC_CLIENTS } from './registry/grpc.registry';
3
4
  export declare class GrpcModule {
4
- static register(clients: Array<keyof typeof GRPC_CLIENTS>): DynamicModule;
5
+ static register(clients: Array<keyof typeof GRPC_CLIENTS>, options?: {
6
+ credentialsFactory?: () => Promise<grpc.ChannelCredentials>;
7
+ }): DynamicModule;
5
8
  }
@@ -14,7 +14,7 @@ const grpc_constants_1 = require("./constants/grpc.constants");
14
14
  const grpc_client_factory_1 = require("./factory/grpc-client.factory");
15
15
  const grpc_registry_1 = require("./registry/grpc.registry");
16
16
  let GrpcModule = GrpcModule_1 = class GrpcModule {
17
- static register(clients) {
17
+ static register(clients, options) {
18
18
  return {
19
19
  module: GrpcModule_1,
20
20
  imports: [config_1.ConfigModule],
@@ -26,11 +26,15 @@ let GrpcModule = GrpcModule_1 = class GrpcModule {
26
26
  provide: `${grpc_constants_1.GRPC_CLIENT_PREFIX}_${token}`,
27
27
  useFactory: async (factory, config) => {
28
28
  const url = config.getOrThrow(cfg.env);
29
+ const credentials = cfg.secure && options?.credentialsFactory
30
+ ? await options.credentialsFactory()
31
+ : undefined;
29
32
  const client = await factory.createClient({
30
33
  package: cfg.package,
31
34
  protoPath: cfg.protoPath,
32
35
  url,
33
36
  secure: cfg.secure,
37
+ credentials
34
38
  });
35
39
  factory.register(token, client);
36
40
  return client;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trash-streamers/common",
3
- "version": "1.2.53",
3
+ "version": "1.2.55",
4
4
  "description": "Core shared component for Trash-streamers microservice ecosystem",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",