@restorecommerce/chassis-srv 0.3.12 → 1.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 (39) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/lib/command-interface/index.d.ts +14 -13
  3. package/lib/command-interface/index.js +43 -65
  4. package/lib/command-interface/index.js.map +1 -1
  5. package/lib/database/index.d.ts +2 -1
  6. package/lib/database/index.js.map +1 -1
  7. package/lib/database/provider/arango/base.d.ts +1 -1
  8. package/lib/database/provider/arango/base.js.map +1 -1
  9. package/lib/database/provider/arango/graph.d.ts +3 -2
  10. package/lib/database/provider/arango/graph.js +4 -4
  11. package/lib/database/provider/arango/graph.js.map +1 -1
  12. package/lib/database/provider/arango/interface.d.ts +0 -65
  13. package/lib/database/provider/arango/interface.js +0 -43
  14. package/lib/database/provider/arango/interface.js.map +1 -1
  15. package/lib/database/provider/arango/utils.d.ts +1 -1
  16. package/lib/database/provider/arango/utils.js +7 -6
  17. package/lib/database/provider/arango/utils.js.map +1 -1
  18. package/lib/health/index.d.ts +5 -4
  19. package/lib/health/index.js +21 -38
  20. package/lib/health/index.js.map +1 -1
  21. package/lib/index.d.ts +6 -8
  22. package/lib/index.js +3 -6
  23. package/lib/index.js.map +1 -1
  24. package/lib/microservice/endpoint.d.ts +1 -16
  25. package/lib/microservice/endpoint.js +2 -214
  26. package/lib/microservice/endpoint.js.map +1 -1
  27. package/lib/microservice/server.d.ts +4 -3
  28. package/lib/microservice/server.js +8 -101
  29. package/lib/microservice/server.js.map +1 -1
  30. package/lib/microservice/transport/provider/grpc/index.d.ts +16 -11
  31. package/lib/microservice/transport/provider/grpc/index.js +20 -288
  32. package/lib/microservice/transport/provider/grpc/index.js.map +1 -1
  33. package/lib/microservice/transport/provider/grpc/middlewares.d.ts +7 -0
  34. package/lib/microservice/transport/provider/grpc/middlewares.js +55 -0
  35. package/lib/microservice/transport/provider/grpc/middlewares.js.map +1 -0
  36. package/lib/microservice/transport/provider/grpc/reflection.d.ts +7 -41
  37. package/lib/microservice/transport/provider/grpc/reflection.js +13 -519
  38. package/lib/microservice/transport/provider/grpc/reflection.js.map +1 -1
  39. package/package.json +23 -20
@@ -1,524 +1,18 @@
1
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 __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ServerReflection = void 0;
27
- const protoBuf = __importStar(require("protobufjs"));
28
- const fs = __importStar(require("fs"));
29
- const grpc = __importStar(require("@grpc/grpc-js"));
30
- const _ = __importStar(require("lodash"));
31
- const path = __importStar(require("path"));
32
- const recursiveResolvePath = (t, finalPackage) => {
33
- if (t.parent) {
34
- let temp = (finalPackage === '') ? (t.parent.name) : (t.parent.name + '.' + finalPackage);
35
- finalPackage = recursiveResolvePath(t.parent, temp);
36
- return finalPackage;
37
- }
38
- return finalPackage;
39
- };
40
- const findType = (t, root) => {
41
- let pkgName;
42
- if (t.parent) {
43
- pkgName = recursiveResolvePath(t, '');
44
- }
45
- if (pkgName.charAt(0) === '.') {
46
- pkgName = pkgName.substring(1);
47
- }
48
- const files = _.keys(root.files);
49
- let foundAst;
50
- const foundFile = _.find(files, (file) => {
51
- const protoFilepath = root.files[file];
52
- let ast = protoBuf.parse(fs.readFileSync(protoFilepath).toString(), new protoBuf.Root());
53
- if (pkgName === ast.package) {
54
- foundAst = ast;
55
- return true;
56
- }
57
- return false;
58
- });
59
- return {
60
- ast: foundAst,
61
- file: foundFile,
62
- };
63
- };
64
- const lookupType = (path, node) => {
65
- const elements = path.split('.');
66
- const msg = _.find(node.messages, { name: elements[0] });
67
- if (!_.isNil(msg)) {
68
- const newPath = path.substring(elements[0].length + 1);
69
- if (newPath.length > 0) {
70
- return lookupType(newPath, msg);
71
- }
72
- return msg;
73
- }
74
- const service = _.find(node.services, { name: elements[0] });
75
- if (!_.isNil(service)) {
76
- const newPath = path.substring(elements[0].length + 1);
77
- if (newPath.length > 0) {
78
- return lookupType(newPath, service);
79
- }
80
- return service;
81
- }
82
- const rpc = _.get(node.rpc, elements[0]);
83
- if (!_.isNil(rpc)) {
84
- const newPath = path.substring(elements[0].length + 1);
85
- if (newPath.length > 0) {
86
- return lookupType(newPath, rpc);
87
- }
88
- return rpc;
89
- }
90
- return null;
91
- };
92
- const isEmpty = (value) => {
93
- return _.isNil(value) || _.isEmpty(value) || _.size(value) === 0;
94
- };
95
- const stringToTypeMap = {
96
- double: 1,
97
- float: 2,
98
- int64: 3,
99
- uint64: 4,
100
- int32: 5,
101
- string: 9,
102
- };
103
- const getOneOfIndex = (field, oneofs) => {
104
- if (_.isNil(oneofs)) {
105
- return undefined;
106
- }
107
- const index = _.findIndex(oneofs[field.name], field.index);
108
- if (index < 0)
109
- return undefined;
110
- return index;
111
- };
112
- const stringToLabelMap = {
113
- optional: 1,
114
- required: 2,
115
- repeated: 3,
116
- };
117
- const createFieldDescriptorProto = (field, oneofs) => {
118
- const fdp = {
119
- name: field.name,
120
- number: field.id,
121
- label: stringToLabelMap[field.rule],
122
- type: stringToTypeMap[field.type],
123
- typeName: field.type,
124
- // extendee
125
- oneofIndex: getOneOfIndex(field, oneofs),
126
- // jsonName
127
- };
128
- if (field.options) {
129
- fdp.options = {
130
- packed: field.options.packed,
131
- deprecated: field.options.deprecated,
132
- };
133
- fdp.defaultValue = `${field.options.default}`;
134
- }
135
- return fdp;
136
- };
137
- const createEnumDescriptorProto = (enumType) => {
138
- const values = _.map(enumType.values, (value) => {
139
- return {
140
- name: value.name,
141
- number: value.id,
142
- // options
143
- };
3
+ exports.buildReflectionService = void 0;
4
+ const descriptor_pb_1 = require("google-protobuf/google/protobuf/descriptor_pb");
5
+ const nice_grpc_server_reflection_1 = require("nice-grpc-server-reflection");
6
+ const descriptor_1 = require("@restorecommerce/rc-grpc-clients/dist/generated/google/protobuf/descriptor");
7
+ const buildReflectionService = (services) => {
8
+ const set = new descriptor_pb_1.FileDescriptorSet();
9
+ const names = [];
10
+ services.forEach((service, i) => {
11
+ const serialized = descriptor_1.FileDescriptorProto.encode(service.descriptor).finish();
12
+ set.addFile(descriptor_pb_1.FileDescriptorProto.deserializeBinary(serialized), i);
13
+ names.push(service.name || service.descriptor.name + '.Service');
144
14
  });
145
- return {
146
- name: enumType.name,
147
- value: values,
148
- options: enumType.options,
149
- };
150
- };
151
- const messageOptions = [
152
- 'message_set_wire_format',
153
- 'no_standard_descriptor_accessor',
154
- 'deprecated',
155
- 'map_entry'
156
- ];
157
- const createMessageOptions = (options) => {
158
- const opts = _.pick(options, messageOptions);
159
- return _.mapKeys(opts, (value, key) => {
160
- return _.camelCase(key);
161
- });
162
- };
163
- const createFileOptions = (options) => {
164
- return _.mapKeys(options, (value, key) => {
165
- return _.camelCase(key);
166
- });
167
- };
168
- const createDescriptorProto = (message) => {
169
- const fields = _.map(message.fields, (field) => {
170
- return createFieldDescriptorProto(field, message.oneofs);
171
- });
172
- const nestedType = _.map(message.nested, (type) => {
173
- return createDescriptorProto(type);
174
- });
175
- const oneofs = _.map(message.oneofs, (value) => {
176
- return {
177
- name: value.name,
178
- };
179
- });
180
- const enums = _.map(message.enums, createEnumDescriptorProto);
181
- return {
182
- name: message.name,
183
- field: fields,
184
- // extension
185
- nested_type: nestedType,
186
- enumType: enums,
187
- // extensionRange
188
- oneofDecl: oneofs,
189
- options: createMessageOptions(message.options),
190
- // reservedRange
191
- // reservedName
192
- };
193
- };
194
- const createFileDescriptorProto = (file, ast) => {
195
- const packageName = ast.package;
196
- const pkgArr = packageName.split('.');
197
- let normalizedObj = ast.root.nested;
198
- for (let obj of pkgArr) {
199
- normalizedObj = normalizedObj[obj];
200
- if (normalizedObj.nested) {
201
- normalizedObj = normalizedObj.nested;
202
- }
203
- }
204
- const messages = _.map(normalizedObj, createDescriptorProto);
205
- return {
206
- name: ast.root.name,
207
- package: ast.package,
208
- dependency: ast.imports,
209
- // publicDependency
210
- // weakDependency
211
- message_type: messages,
212
- // enumType
213
- // service
214
- // extension
215
- options: createFileOptions(ast.options),
216
- // sourceCodeInfo
217
- syntax: ast.syntax,
218
- };
219
- };
220
- const applyProtoRoot = (filename, root) => {
221
- if (_.isString(filename)) {
222
- return filename;
223
- }
224
- filename.root = path.resolve(filename.root) + '/';
225
- root.resolvePath = (originPath, importPath, alreadyNormalized) => {
226
- return protoBuf.util.path.resolve(filename.root, importPath, alreadyNormalized);
227
- };
228
- return filename.file;
15
+ return (0, nice_grpc_server_reflection_1.ServerReflection)(set.serializeBinary(), names);
229
16
  };
230
- /**
231
- * An implementation of the grpc.reflection.v1alpha.ServerReflection service.
232
- * Uses the provided builder and config to reflection on served endpoints.
233
- */
234
- class ServerReflection {
235
- /**
236
- * @param (ProtoBuf.Builder) The protobuf builder which the gRPC transport provider is using.
237
- * @config (Object) Server cofnig.
238
- */
239
- constructor(root, config) {
240
- // this.builder = builder;
241
- root = new protoBuf.Root();
242
- let protoroot = config.transports[0].protoRoot;
243
- let files = config.transports[0].protos;
244
- _.forEach(files, (fileName, key) => {
245
- let filename = { root: protoroot, file: fileName };
246
- root.loadSync(applyProtoRoot(filename, root), { keepCase: true });
247
- });
248
- this.root = root;
249
- this.config = config;
250
- // const protoRoot = 'node_modules/@restorecommerce/protos/';
251
- const descriptor_file = 'google/protobuf/descriptor.proto';
252
- const filename = { root: protoroot, file: descriptor_file };
253
- const root_desc = new protoBuf.Root();
254
- const fileDescriptorRoot = root_desc.loadSync(applyProtoRoot(filename, root_desc), { keepCase: true });
255
- this.fileDescriptorProto = fileDescriptorRoot.lookupType('google.protobuf.FileDescriptorProto');
256
- }
257
- /**
258
- * Service endpoint for gRPC ServerReflectionInfo.
259
- */
260
- async serverReflectionInfo(call, context) {
261
- const logger = context.logger;
262
- let openCall = true;
263
- let req;
264
- while (openCall) {
265
- try {
266
- req = await call.read();
267
- req = await new Promise((resolve, reject) => {
268
- req((err, response) => {
269
- if (err) {
270
- reject(err);
271
- }
272
- resolve(response);
273
- });
274
- });
275
- }
276
- catch (error) {
277
- if (error.message === 'stream end') {
278
- await call.end();
279
- return;
280
- }
281
- logger.error('Error reading stream on serverReflectionInfo', { code: error.code, message: error.message, stack: error.stack });
282
- continue;
283
- }
284
- let methodName = req.message_request;
285
- delete req.message_request;
286
- if (!methodName) {
287
- methodName = Object.keys(req)[0];
288
- }
289
- req = _.omitBy(req, isEmpty);
290
- if (_.isNil(methodName)) {
291
- logger.info('empty message_request', req);
292
- await call.write({
293
- valid_host: req.host,
294
- original_request: req,
295
- error_response: {
296
- error_code: grpc.status.INVALID_ARGUMENT,
297
- error_message: 'message_request is empty',
298
- },
299
- });
300
- continue;
301
- }
302
- const methodArg = req[methodName];
303
- let method;
304
- switch (`${methodName}`) {
305
- case 'file_by_filename':
306
- method = this.fileByFilename(methodArg, req);
307
- break;
308
- case 'file_containing_symbol':
309
- method = this.findProtoFileByPath(methodArg, req);
310
- break;
311
- case 'file_containing_extension':
312
- method = this.fileContainingExtension(methodArg, req);
313
- break;
314
- case 'all_extension_numbers_of_type':
315
- method = this.allExtensionNumbersOfType(methodArg, req);
316
- break;
317
- case 'list_services':
318
- method = this.listServices(req);
319
- break;
320
- // allExtensionNumbersOfType
321
- default:
322
- logger.info(`method ${methodName} does not exist`, req);
323
- await call.write({
324
- valid_host: req.host,
325
- original_request: req,
326
- error_response: {
327
- error_code: grpc.status.UNIMPLEMENTED,
328
- error_message: `method ${methodName} does not exist`,
329
- },
330
- });
331
- continue;
332
- }
333
- try {
334
- const result = await method;
335
- await call.write(result);
336
- openCall = false;
337
- await call.end();
338
- return result;
339
- }
340
- catch (error) {
341
- openCall = false;
342
- logger.info(error);
343
- break;
344
- }
345
- }
346
- await call.end();
347
- }
348
- /**
349
- * Find a proto file by the file name.
350
- */
351
- fileByFilename(fileName, req) {
352
- const files = _.keys(this.root.files);
353
- const file = _.find(files, (path) => {
354
- return _.endsWith(this.root.files[path], fileName);
355
- });
356
- if (_.isNil(file)) {
357
- return {
358
- valid_host: req.host,
359
- error_response: {
360
- error_code: grpc.status.NOT_FOUND,
361
- error_message: `file ${fileName} does not exist`,
362
- },
363
- };
364
- }
365
- const protoFilepath = this.root.files[file];
366
- const ast = protoBuf.parse(fs.readFileSync(protoFilepath).toString(), new protoBuf.Root());
367
- if (_.isNil(this.fileDescriptorProto)) {
368
- throw new Error('Could not find google.protobuf.FileDescriptorProto');
369
- }
370
- const fdp = createFileDescriptorProto(protoFilepath, ast);
371
- const fDescProto = this.fileDescriptorProto.create(fdp);
372
- return {
373
- valid_host: req.host,
374
- original_request: req,
375
- file_descriptor_response: {
376
- file_descriptor_proto: [this.fileDescriptorProto.encode(fDescProto).finish()]
377
- },
378
- };
379
- }
380
- /**
381
- * Find a proto file by a symbol.
382
- *
383
- * @param {string} path Path to symbol
384
- * Format: <package>.<service>[.<method>] or <package>.<type>)
385
- */
386
- findProtoFileByPath(path, req) {
387
- const t = this.root.lookup(path);
388
- if (_.isNil(t)) {
389
- return {
390
- valid_host: req.host,
391
- original_request: req,
392
- error_response: {
393
- error_code: grpc.status.NOT_FOUND,
394
- error_message: `symbol ${path} not found`,
395
- },
396
- };
397
- }
398
- const res = findType(t, this.root);
399
- if (_.isNil(this.fileDescriptorProto)) {
400
- throw new Error('Could not find google.protobuf.FileDescriptorProto');
401
- }
402
- const fdp = createFileDescriptorProto(res.file, res.ast);
403
- const fDescProto = this.fileDescriptorProto.create(fdp);
404
- return {
405
- valid_host: req.host,
406
- original_request: req,
407
- file_descriptor_response: {
408
- file_descriptor_proto: [this.fileDescriptorProto.encode(fDescProto).finish()]
409
- },
410
- };
411
- }
412
- /**
413
- * Find the proto file which defines an extension extending the given
414
- * message type with the given field number.
415
- */
416
- fileContainingExtension(arg, req) {
417
- const path = arg.containing_type;
418
- const t = this.root.lookupType(path);
419
- const id = arg.extension_number;
420
- if (_.isNil(t)) {
421
- return {
422
- valid_host: req.host,
423
- original_request: req,
424
- error_response: {
425
- error_code: grpc.status.NOT_FOUND,
426
- error_message: `symbol ${path} not found`,
427
- },
428
- };
429
- }
430
- let ids = _.map(t.fields, (field) => {
431
- return field.id;
432
- });
433
- if (ids.indexOf(id) > -1) {
434
- console.log('Extension number is being used');
435
- }
436
- else {
437
- // extension_number is not being used, so return error message
438
- return {
439
- validHost: req.host,
440
- originalRequest: req,
441
- errorResponse: {
442
- errorCode: grpc.status.NOT_FOUND,
443
- errorMessage: `extension number ${id} is not used`,
444
- },
445
- };
446
- }
447
- const res = findType(t, this.root);
448
- if (_.isNil(this.fileDescriptorProto)) {
449
- throw new Error('Could not find google.protobuf.FileDescriptorProto');
450
- }
451
- const fdp = createFileDescriptorProto(res.file, res.ast);
452
- const fDescProto = this.fileDescriptorProto.create(fdp);
453
- return {
454
- valid_host: req.host,
455
- original_request: req,
456
- file_descriptor_response: {
457
- file_descriptor_proto: [this.fileDescriptorProto.encode(fDescProto).finish()]
458
- },
459
- };
460
- }
461
- allExtensionNumbersOfType(path, req) {
462
- const t = this.root.lookup(path);
463
- if (_.isNil(t)) {
464
- return {
465
- valid_host: req.host,
466
- original_request: req,
467
- error_response: {
468
- error_code: grpc.status.NOT_FOUND,
469
- error_message: `symbol ${path} not found`,
470
- },
471
- };
472
- }
473
- // Iterate through each of fields and get the ID.
474
- let ids = _.map(t.fields, (field) => {
475
- return field.id;
476
- });
477
- return {
478
- valid_host: req.host,
479
- original_request: req,
480
- all_extension_numbers_response: {
481
- base_type_name: t.fullName,
482
- extension_number: ids,
483
- },
484
- };
485
- }
486
- /**
487
- * Lists all gRPC provided services.
488
- * NOTE: Services using other transport providers are not listed.
489
- */
490
- listServices(req) {
491
- const transports = _.filter(this.config.transports, { provider: 'grpc' });
492
- let services = [];
493
- _.forEach(transports, (transport) => {
494
- const srvs = _.values(transport.services);
495
- if (_.includes(srvs, 'grpc.reflection.v1alpha.ServerReflection')) {
496
- services = _.concat(services, transport.services);
497
- }
498
- });
499
- services = _.uniq(services);
500
- let labelSrvMapping = [];
501
- services = _.map(services, (service) => {
502
- // Map the service label to name of the serivce
503
- for (let key in service) {
504
- if (service.hasOwnProperty(key)) {
505
- const obj = {
506
- label: key,
507
- name: service[key]
508
- };
509
- labelSrvMapping.push(obj);
510
- }
511
- }
512
- return labelSrvMapping;
513
- });
514
- return {
515
- valid_host: req.host,
516
- original_request: req,
517
- list_services_response: {
518
- service: services[0],
519
- },
520
- };
521
- }
522
- }
523
- exports.ServerReflection = ServerReflection;
17
+ exports.buildReflectionService = buildReflectionService;
524
18
  //# sourceMappingURL=reflection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../../../../src/microservice/transport/provider/grpc/reflection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../../../../src/microservice/transport/provider/grpc/reflection.ts"],"names":[],"mappings":";;;AACA,iFAGuD;AACvD,6EAAgE;AAChE,2GAAiH;AAK1G,MAAM,sBAAsB,GAAG,CAAC,QAGpC,EAAmD,EAAE;IACtD,MAAM,GAAG,GAAG,IAAI,iCAAiB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,gCAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,mCAAyB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,8CAAgB,EAAC,GAAG,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAZW,QAAA,sBAAsB,0BAYjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@restorecommerce/chassis-srv",
3
- "version": "0.3.12",
3
+ "version": "1.0.2",
4
4
  "description": "Restore Commerce microservice chassis",
5
5
  "main": "./lib/index.js",
6
6
  "author": "n-fuse GmbH",
@@ -18,47 +18,50 @@
18
18
  "typings": "lib/index.d.ts",
19
19
  "dependencies": {
20
20
  "@grpc/grpc-js": "^1.6.7",
21
- "@grpc/proto-loader": "^0.6.13",
22
- "@restorecommerce/grpc-client": "^0.4.5",
23
- "@restorecommerce/kafka-client": "^0.4.3",
24
- "@restorecommerce/logger": "^0.13.0",
25
- "@restorecommerce/protos": "^0.7.2",
26
- "@restorecommerce/service-config": "^0.4.27",
21
+ "@restorecommerce/grpc-client": "^1.0.0",
22
+ "@restorecommerce/kafka-client": "^1.0.1",
23
+ "@restorecommerce/logger": "^1.0.0",
24
+ "@restorecommerce/protos": "^1.0.0",
25
+ "@restorecommerce/rc-grpc-clients": "^1.0.1",
26
+ "@restorecommerce/service-config": "^1.0.0",
27
27
  "arangojs": "^7.8.0",
28
28
  "async": "^3.2.4",
29
29
  "async-retry": "^1.3.3",
30
- "cache-manager": "^4.0.1",
30
+ "cache-manager": "^4.1.0",
31
31
  "cls-hooked": "^4.2.2",
32
32
  "cls-rtracer": "^2.6.2",
33
- "kafkajs": "^2.1.0",
33
+ "google-protobuf": "^3.21.0",
34
+ "kafkajs": "^2.2.0",
34
35
  "lodash": "^4.17.21",
35
36
  "long": "^5.2.0",
36
37
  "nedb": "^1.8.0",
37
- "protobufjs": "^6.11.3",
38
- "redis": "^4.2.0"
38
+ "nice-grpc": "^2.0.0",
39
+ "nice-grpc-server-reflection": "^2.0.0",
40
+ "protobufjs": "^7.0.0",
41
+ "redis": "^4.3.0"
39
42
  },
40
43
  "devDependencies": {
41
44
  "@types/cache-manager": "^4.0.1",
42
- "@types/lodash": "^4.14.182",
43
- "@types/long": "^4.0.2",
45
+ "@types/lodash": "^4.14.184",
46
+ "@types/long": "^5.0.0",
44
47
  "@types/mocha": "^9.1.1",
45
48
  "@types/nedb": "^1.8.12",
46
- "@types/node": "^18.0.3",
47
- "@typescript-eslint/eslint-plugin": "^5.30.5",
48
- "@typescript-eslint/eslint-plugin-tslint": "^5.30.5",
49
- "@typescript-eslint/parser": "^5.30.5",
49
+ "@types/node": "^18.7.13",
50
+ "@typescript-eslint/eslint-plugin": "^5.35.1",
51
+ "@typescript-eslint/eslint-plugin-tslint": "^5.35.1",
52
+ "@typescript-eslint/parser": "^5.35.1",
50
53
  "cross-env": "^7.0.3",
51
- "eslint": "^8.19.0",
54
+ "eslint": "^8.22.0",
52
55
  "eslint-plugin-prefer-arrow-functions": "^3.1.4",
53
56
  "mocha": "^10.0.0",
54
57
  "mocha-typescript": "^1.1.17",
55
58
  "npm-run-all": "^4.1.5",
56
59
  "nyc": "^15.1.0",
57
60
  "rimraf": "^3.0.2",
58
- "rxjs": "^7.5.5",
61
+ "rxjs": "^7.5.6",
59
62
  "should": "^13.2.3",
60
63
  "sleep": "^6.3.0",
61
- "ts-node": "^10.8.2",
64
+ "ts-node": "^10.9.1",
62
65
  "tslint": "^6.1.3",
63
66
  "typescript": "^4.7.4"
64
67
  },