@conduitplatform/module-tools 0.16.5 → 0.16.7

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 (71) hide show
  1. package/dist/classes/ConduitServiceModule.d.ts +2 -2
  2. package/dist/index.cjs +1776 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.esm.js +1749 -0
  5. package/dist/index.esm.js.map +1 -0
  6. package/dist/utilities/initializeSdk.d.ts +1 -1
  7. package/package.json +27 -5
  8. package/dist/ManagedModule.js +0 -221
  9. package/dist/ManagedModule.js.map +0 -1
  10. package/dist/classes/ConduitActiveSchema.js +0 -44
  11. package/dist/classes/ConduitActiveSchema.js.map +0 -1
  12. package/dist/classes/ConduitServiceModule.js +0 -110
  13. package/dist/classes/ConduitServiceModule.js.map +0 -1
  14. package/dist/classes/ConfigController.js +0 -16
  15. package/dist/classes/ConfigController.js.map +0 -1
  16. package/dist/classes/GrpcServer.js +0 -121
  17. package/dist/classes/GrpcServer.js.map +0 -1
  18. package/dist/classes/index.js +0 -5
  19. package/dist/classes/index.js.map +0 -1
  20. package/dist/helpers/GrpcHelper.js +0 -38
  21. package/dist/helpers/GrpcHelper.js.map +0 -1
  22. package/dist/helpers/GrpcToParsedRouterRequest.js +0 -15
  23. package/dist/helpers/GrpcToParsedRouterRequest.js.map +0 -1
  24. package/dist/helpers/TypeHelpers.js +0 -79
  25. package/dist/helpers/TypeHelpers.js.map +0 -1
  26. package/dist/helpers/index.js +0 -5
  27. package/dist/helpers/index.js.map +0 -1
  28. package/dist/helpers/wrapGrpcFunctions.js +0 -48
  29. package/dist/helpers/wrapGrpcFunctions.js.map +0 -1
  30. package/dist/index.js +0 -7
  31. package/dist/index.js.map +0 -1
  32. package/dist/interfaces/ConduitService.js +0 -2
  33. package/dist/interfaces/ConduitService.js.map +0 -1
  34. package/dist/interfaces/ModuleLifecycleStage.js +0 -9
  35. package/dist/interfaces/ModuleLifecycleStage.js.map +0 -1
  36. package/dist/interfaces/index.js +0 -3
  37. package/dist/interfaces/index.js.map +0 -1
  38. package/dist/logging/index.js +0 -124
  39. package/dist/logging/index.js.map +0 -1
  40. package/dist/metrics/MetricsServer.js +0 -42
  41. package/dist/metrics/MetricsServer.js.map +0 -1
  42. package/dist/metrics/clientMiddleware.js +0 -120
  43. package/dist/metrics/clientMiddleware.js.map +0 -1
  44. package/dist/metrics/config/defaults.js +0 -91
  45. package/dist/metrics/config/defaults.js.map +0 -1
  46. package/dist/metrics/index.js +0 -109
  47. package/dist/metrics/index.js.map +0 -1
  48. package/dist/routing/ProxyRouteBuilder.js +0 -74
  49. package/dist/routing/ProxyRouteBuilder.js.map +0 -1
  50. package/dist/routing/RouteBuilder.js +0 -100
  51. package/dist/routing/RouteBuilder.js.map +0 -1
  52. package/dist/routing/RoutingController.js +0 -21
  53. package/dist/routing/RoutingController.js.map +0 -1
  54. package/dist/routing/RoutingManager.js +0 -140
  55. package/dist/routing/RoutingManager.js.map +0 -1
  56. package/dist/routing/RoutingUtilities.js +0 -9
  57. package/dist/routing/RoutingUtilities.js.map +0 -1
  58. package/dist/routing/index.js +0 -6
  59. package/dist/routing/index.js.map +0 -1
  60. package/dist/routing/wrapRouterFunctions.js +0 -120
  61. package/dist/routing/wrapRouterFunctions.js.map +0 -1
  62. package/dist/utilities/convictConfigParser.js +0 -14
  63. package/dist/utilities/convictConfigParser.js.map +0 -1
  64. package/dist/utilities/index.js +0 -4
  65. package/dist/utilities/index.js.map +0 -1
  66. package/dist/utilities/initializeSdk.js +0 -35
  67. package/dist/utilities/initializeSdk.js.map +0 -1
  68. package/dist/utilities/linearBackoffTimeout.js +0 -57
  69. package/dist/utilities/linearBackoffTimeout.js.map +0 -1
  70. package/dist/utilities/merge.js +0 -11
  71. package/dist/utilities/merge.js.map +0 -1
@@ -1,38 +0,0 @@
1
- import { loadPackageDefinition, Server, ServerCredentials, } from '@grpc/grpc-js';
2
- import protoLoader from '@grpc/proto-loader';
3
- export function createServer(port) {
4
- const grpcServer = new Server({
5
- 'grpc.max_receive_message_length': 1024 * 1024 * 100,
6
- 'grpc.max_send_message_length': 1024 * 1024 * 100,
7
- });
8
- return new Promise((resolve, reject) => {
9
- grpcServer.bindAsync(port, ServerCredentials.createInsecure(), (err, port) => {
10
- if (err) {
11
- reject(err);
12
- }
13
- else {
14
- resolve({
15
- server: grpcServer,
16
- port,
17
- });
18
- }
19
- });
20
- });
21
- }
22
- export function addServiceToServer(server, protoPath, descriptorObject, functions) {
23
- const packageDefinition = protoLoader.loadSync(protoPath, {
24
- keepCase: true,
25
- longs: String,
26
- enums: String,
27
- defaults: true,
28
- oneofs: true,
29
- });
30
- const protoDescriptor = loadPackageDefinition(packageDefinition);
31
- const objs = descriptorObject.split('.');
32
- let descObj = protoDescriptor;
33
- objs.forEach((r) => {
34
- descObj = descObj[r];
35
- });
36
- server.addService(descObj.service, functions);
37
- }
38
- //# sourceMappingURL=GrpcHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrpcHelper.js","sourceRoot":"","sources":["../../src/helpers/GrpcHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,MAAM,EACN,iBAAiB,GAElB,MAAM,eAAe,CAAC;AAEvB,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,UAAU,GAAW,IAAI,MAAM,CAAC;QACpC,iCAAiC,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;QACpD,8BAA8B,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;KAClD,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC3E,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC;oBACN,MAAM,EAAE,UAAU;oBAClB,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,SAAiB,EACjB,gBAAwB,EACxB,SAAuC;IAEvC,MAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE;QACxD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,GAAQ,eAAe,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;QACzB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAQ,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAyC,CAAC,CAAC;AAChF,CAAC"}
@@ -1,15 +0,0 @@
1
- export function createParsedRouterRequest(params, urlParams, queryParams, bodyParams, path, headers, context, cookies) {
2
- return {
3
- request: {
4
- params,
5
- urlParams: urlParams !== null && urlParams !== void 0 ? urlParams : {},
6
- queryParams: queryParams !== null && queryParams !== void 0 ? queryParams : {},
7
- bodyParams: bodyParams !== null && bodyParams !== void 0 ? bodyParams : {},
8
- path: path !== null && path !== void 0 ? path : '',
9
- headers: headers,
10
- context: context !== null && context !== void 0 ? context : {},
11
- cookies: cookies !== null && cookies !== void 0 ? cookies : {},
12
- },
13
- };
14
- }
15
- //# sourceMappingURL=GrpcToParsedRouterRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrpcToParsedRouterRequest.js","sourceRoot":"","sources":["../../src/helpers/GrpcToParsedRouterRequest.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,SAAkB,EAClB,WAAoB,EACpB,UAAmB,EACnB,IAAa,EACb,OAAiB,EACjB,OAAiB,EACjB,OAAiB;IAEjB,OAA4B;QAC1B,OAAO,EAAE;YACP,MAAM;YACN,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE;YAC1B,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE;YAC9B,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE;YAC5B,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE;YAChB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;YACtB,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE;SACvB;KACF,CAAC;AACJ,CAAC"}
@@ -1,79 +0,0 @@
1
- import { TYPE } from '@conduitplatform/grpc-sdk';
2
- class ConduitStringConstructor {
3
- // private to disallow creating other instances of this type
4
- constructor() { }
5
- static get Optional() {
6
- return TYPE.String;
7
- }
8
- static get Required() {
9
- return { type: TYPE.String, required: true };
10
- }
11
- }
12
- export const ConduitString = ConduitStringConstructor;
13
- class ConduitNumberConstructor {
14
- // private to disallow creating other instances of this type
15
- constructor() { }
16
- static get Optional() {
17
- return TYPE.Number;
18
- }
19
- static get Required() {
20
- return { type: TYPE.Number, required: true };
21
- }
22
- }
23
- export const ConduitNumber = ConduitNumberConstructor;
24
- class ConduitBooleanConstructor {
25
- // private to disallow creating other instances of this type
26
- constructor() { }
27
- static get Optional() {
28
- return TYPE.Boolean;
29
- }
30
- static get Required() {
31
- return { type: TYPE.Boolean, required: true };
32
- }
33
- }
34
- export const ConduitBoolean = ConduitBooleanConstructor;
35
- class ConduitDateConstructor {
36
- // private to disallow creating other instances of this type
37
- constructor() { }
38
- static get Optional() {
39
- return TYPE.Date;
40
- }
41
- static get Required() {
42
- return { type: TYPE.Date, required: true };
43
- }
44
- }
45
- export const ConduitDate = ConduitDateConstructor;
46
- class ConduitObjectIdConstructor {
47
- // private to disallow creating other instances of this type
48
- constructor() { }
49
- static get Optional() {
50
- return TYPE.ObjectId;
51
- }
52
- static get Required() {
53
- return { type: TYPE.ObjectId, required: true };
54
- }
55
- }
56
- export const ConduitObjectId = ConduitObjectIdConstructor;
57
- class ConduitJSONConstructor {
58
- // private to disallow creating other instances of this type
59
- constructor() { }
60
- static get Optional() {
61
- return TYPE.JSON;
62
- }
63
- static get Required() {
64
- return { type: TYPE.JSON, required: true };
65
- }
66
- }
67
- export const ConduitJson = ConduitJSONConstructor;
68
- class ConduitRelationConstructor {
69
- // private to disallow creating other instances of this type
70
- constructor() { }
71
- static Optional(model) {
72
- return { type: TYPE.Relation, model, required: false };
73
- }
74
- static Required(model) {
75
- return { type: TYPE.Relation, model, required: true };
76
- }
77
- }
78
- export const ConduitRelation = ConduitRelationConstructor;
79
- //# sourceMappingURL=TypeHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypeHelpers.js","sourceRoot":"","sources":["../../src/helpers/TypeHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEjD,MAAM,wBAAwB;IAC5B,4DAA4D;IAC5D,gBAAuB,CAAC;IAExB,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAEtD,MAAM,wBAAwB;IAC5B,4DAA4D;IAC5D,gBAAuB,CAAC;IAExB,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAEtD,MAAM,yBAAyB;IAC7B,4DAA4D;IAC5D,gBAAuB,CAAC;IAExB,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,yBAAyB,CAAC;AAExD,MAAM,sBAAsB;IAC1B,4DAA4D;IAC5D,gBAAuB,CAAC;IAExB,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAElD,MAAM,0BAA0B;IAC9B,4DAA4D;IAC5D,gBAAuB,CAAC;IAExB,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,MAAM,sBAAsB;IAC1B,4DAA4D;IAC5D,gBAAuB,CAAC;IAExB,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,QAAQ;QACjB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAElD,MAAM,0BAA0B;IAC9B,4DAA4D;IAC5D,gBAAuB,CAAC;IAExB,MAAM,CAAC,QAAQ,CAAC,KAAa;QAK3B,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC"}
@@ -1,5 +0,0 @@
1
- export * from './TypeHelpers.js';
2
- export * from './GrpcHelper.js';
3
- export * from './wrapGrpcFunctions.js';
4
- export * from './GrpcToParsedRouterRequest.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC"}
@@ -1,48 +0,0 @@
1
- import { createVerifier } from 'fast-jwt';
2
- import { status } from '@grpc/grpc-js';
3
- import ConduitGrpcSdk from '@conduitplatform/grpc-sdk';
4
- export function wrapGrpcFunctions(functions, postponeRestart) {
5
- const grpcKey = process.env.GRPC_KEY;
6
- const wrappedFunctions = {};
7
- Object.keys(functions).forEach(name => {
8
- wrappedFunctions[name] = (call, callback) => {
9
- var _a;
10
- (_a = ConduitGrpcSdk.Metrics) === null || _a === void 0 ? void 0 : _a.increment('internal_grpc_requests_total');
11
- postponeRestart();
12
- if (grpcKey) {
13
- const verify = createVerifier({ key: grpcKey });
14
- const grpcToken = call.metadata.get('grpc-token')[0];
15
- if (!grpcToken) {
16
- return throwError(callback, 'No gRPC protection token provided', status.PERMISSION_DENIED);
17
- }
18
- try {
19
- const jwt = verify(grpcToken);
20
- call.metadata.set('module-name', jwt.moduleName);
21
- }
22
- catch (_b) {
23
- return throwError(callback, 'Failed to verify gRPC protection token. GRPC_KEY value differs', status.PERMISSION_DENIED);
24
- }
25
- }
26
- let invoked;
27
- try {
28
- invoked = functions[name](call, callback);
29
- }
30
- catch (error) {
31
- return throwError(callback, error.message);
32
- }
33
- if (typeof (invoked === null || invoked === void 0 ? void 0 : invoked.then) === 'function') {
34
- invoked.then().catch((error) => {
35
- return throwError(callback, error.message);
36
- });
37
- }
38
- };
39
- });
40
- return wrappedFunctions;
41
- }
42
- function throwError(callback, message, code = status.INTERNAL) {
43
- // Aborting server streams is not yet implemented!
44
- if (callback) {
45
- callback({ code, message });
46
- }
47
- }
48
- //# sourceMappingURL=wrapGrpcFunctions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrapGrpcFunctions.js","sourceRoot":"","sources":["../../src/helpers/wrapGrpcFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,cAAgC,MAAM,2BAA2B,CAAC;AAOzE,MAAM,UAAU,iBAAiB,CAC/B,SAAuC,EACvC,eAA2B;IAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,MAAM,gBAAgB,GAAiC,EAAE,CAAC;IAC1D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAS,EAAE,QAAa,EAAE,EAAE;;YACpD,MAAA,cAAc,CAAC,OAAO,0CAAE,SAAS,CAAC,8BAA8B,CAAC,CAAC;YAClE,eAAe,EAAE,CAAC;YAClB,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,UAAU,CACf,QAAQ,EACR,mCAAmC,EACnC,MAAM,CAAC,iBAAiB,CACzB,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,GAAG,GAAQ,MAAM,CAAC,SAAS,CAAC,CAAC;oBACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBACnD,CAAC;gBAAC,WAAM,CAAC;oBACP,OAAO,UAAU,CACf,QAAQ,EACR,gEAAgE,EAChE,MAAM,CAAC,iBAAiB,CACzB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,OAA2B,CAAC;YAChC,IAAI,CAAC;gBACH,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,UAAU,CAAC,QAAQ,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAA,KAAK,UAAU,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;oBACpC,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,UAAU,CACjB,QAAuC,EACvC,OAAe,EACf,OAAe,MAAM,CAAC,QAAQ;IAE9B,kDAAkD;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
package/dist/index.js DELETED
@@ -1,7 +0,0 @@
1
- export * from './ManagedModule.js';
2
- export * from './interfaces/index.js';
3
- export * from './classes/index.js';
4
- export * from './helpers/index.js';
5
- export * from './routing/index.js';
6
- export * from './utilities/index.js';
7
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ConduitService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConduitService.js","sourceRoot":"","sources":["../../src/interfaces/ConduitService.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- export var ModuleLifecycleStage;
2
- (function (ModuleLifecycleStage) {
3
- ModuleLifecycleStage["CREATE_GRPC"] = "creat-grpc-server";
4
- ModuleLifecycleStage["PRE_SERVER_START"] = "pre-grpc-start";
5
- ModuleLifecycleStage["SERVER_STARTED"] = "grpc-server-started";
6
- ModuleLifecycleStage["PRE_REGISTER"] = "pre-register";
7
- ModuleLifecycleStage["POST_REGISTER"] = "post-register";
8
- })(ModuleLifecycleStage || (ModuleLifecycleStage = {}));
9
- //# sourceMappingURL=ModuleLifecycleStage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModuleLifecycleStage.js","sourceRoot":"","sources":["../../src/interfaces/ModuleLifecycleStage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,yDAAiC,CAAA;IACjC,2DAAmC,CAAA;IACnC,8DAAsC,CAAA;IACtC,qDAA6B,CAAA;IAC7B,uDAA+B,CAAA;AACjC,CAAC,EANW,oBAAoB,KAApB,oBAAoB,QAM/B"}
@@ -1,3 +0,0 @@
1
- export * from './ConduitService.js';
2
- export * from './ModuleLifecycleStage.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -1,124 +0,0 @@
1
- import ConduitGrpcSdk from '@conduitplatform/grpc-sdk';
2
- import winston, { format } from 'winston';
3
- import { isEmpty } from 'lodash-es';
4
- import { get } from 'http';
5
- import LokiTransport from 'winston-loki';
6
- import { linearBackoffTimeoutAsync } from '../utilities/index.js';
7
- const processMeta = (meta) => {
8
- if (Array.isArray(meta)) {
9
- return meta.reduce((message, meta) => `${message} \n ${JSON.stringify(meta, null, 2)}`, '');
10
- }
11
- else {
12
- return JSON.stringify(meta, null, 2);
13
- }
14
- };
15
- const createFormat = (logMeta = true) => {
16
- return format.combine(format.printf(info => {
17
- // This will customize the Error Message
18
- if (info.stack) {
19
- return `[${info.timestamp}] [${info.level.toUpperCase()}]: ${info.message} ${info.stack}`;
20
- }
21
- if (logMeta) {
22
- return `[${info.timestamp}] [${info.level.toUpperCase()}]: ${info.message} ${!isEmpty(info.meta) ? processMeta(info.meta) : ''}`;
23
- }
24
- else {
25
- return `[${info.timestamp}] [${info.level.toUpperCase()}]: ${info.message}`;
26
- }
27
- }));
28
- };
29
- const defaultTransport = new winston.transports.Console({
30
- level: 'debug',
31
- format: format.combine(format.prettyPrint(), format.errors({ stack: true }), format.timestamp({
32
- format: 'YYYY-MM-DD HH:mm:ss',
33
- }), createFormat(false), format.colorize({
34
- all: true,
35
- })),
36
- });
37
- export class ConduitLogger {
38
- constructor(transports) {
39
- this._winston = winston.createLogger({
40
- format: format.combine(format.prettyPrint(), format.errors({ stack: true }), format.timestamp({
41
- format: 'YYYY-MM-DD HH:mm:ss',
42
- }), createFormat()),
43
- transports: transports ? [...transports, defaultTransport] : [defaultTransport],
44
- });
45
- }
46
- get winston() {
47
- return this._winston;
48
- }
49
- addTransport(transport) {
50
- this._winston.add(transport);
51
- }
52
- log(message, level = 'info', cb) {
53
- return this._winston.log(level, message, cb);
54
- }
55
- logObject(object, message = '', level = 'info', cb) {
56
- return this._winston.log(level, message, object, cb);
57
- }
58
- info(message, cb) {
59
- return this._winston.info(message, cb);
60
- }
61
- warn(message, cb) {
62
- return this._winston.warn(message, cb);
63
- }
64
- error(message, cb) {
65
- if (typeof message === 'object') {
66
- return this._winston.error(message);
67
- }
68
- return this._winston.error(message, cb);
69
- }
70
- http(message, cb) {
71
- return this._winston.http(message, cb);
72
- }
73
- verbose(message, cb) {
74
- return this._winston.verbose(message, cb);
75
- }
76
- }
77
- async function lokiReadyCheck(lokiUrl) {
78
- return new Promise((resolve, reject) => {
79
- const data = [];
80
- get(`${lokiUrl}/ready`, r => {
81
- r.on('data', chunk => data.push(chunk));
82
- r.on('end', () => {
83
- if (Buffer.concat(data).toString() === 'ready\n')
84
- resolve();
85
- else
86
- reject(false);
87
- });
88
- }).on('error', err => {
89
- reject(err.message);
90
- });
91
- });
92
- }
93
- export async function setupLoki(module, instance) {
94
- let lokiUrl = process.env.LOKI_URL;
95
- if (lokiUrl && lokiUrl !== '') {
96
- if (lokiUrl.endsWith('/'))
97
- lokiUrl = lokiUrl.slice(0, -1);
98
- const onTry = async () => {
99
- return await lokiReadyCheck(lokiUrl)
100
- .then(() => {
101
- ConduitGrpcSdk.Logger.addTransport(new LokiTransport({
102
- level: 'debug',
103
- host: lokiUrl,
104
- batching: false,
105
- replaceTimestamp: true,
106
- labels: {
107
- module,
108
- instance,
109
- ...(process.env.CONDUIT_NAMESPACE && {
110
- namespace: process.env.CONDUIT_NAMESPACE,
111
- }),
112
- },
113
- }));
114
- return false;
115
- })
116
- .catch(() => true); // retry
117
- };
118
- const onFailure = () => {
119
- ConduitGrpcSdk.Logger.error(`Failed to connect to Loki on '${lokiUrl}'`);
120
- };
121
- await linearBackoffTimeoutAsync(onTry, 250, 15, onFailure, true);
122
- }
123
- }
124
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- import express from 'express';
2
- import { isNaN } from 'lodash-es';
3
- import ConduitGrpcSdk from '@conduitplatform/grpc-sdk';
4
- export class MetricsServer {
5
- constructor(moduleName, instance, registry) {
6
- this.moduleName = moduleName;
7
- this.instance = instance;
8
- this.Registry = registry;
9
- }
10
- initialize() {
11
- const server = express();
12
- const port = this.getHttpPort();
13
- const url = '0.0.0.0:' + port.toString();
14
- server.listen(port, () => {
15
- ConduitGrpcSdk.Logger.info(`Metrics server listening on: ${url}`);
16
- });
17
- server.get('/', (req, res) => {
18
- return res
19
- .status(200)
20
- .send(`Conduit Metrics for module: ${this.moduleName}, instance: ${this.instance}`);
21
- });
22
- server.get('/metrics', async (req, res) => {
23
- const metrics = await this.Registry.metrics();
24
- return res.status(200).send(metrics);
25
- });
26
- return server;
27
- }
28
- getHttpPort() {
29
- const value = process.env['METRICS_PORT'];
30
- if (!value) {
31
- ConduitGrpcSdk.Logger.error(`Metrics HTTP port not set`);
32
- process.exit(-1);
33
- }
34
- const port = parseInt(value, 10);
35
- if (isNaN(port) || port < 1 || port > 65535) {
36
- ConduitGrpcSdk.Logger.error(`Invalid HTTP port value: ${port}`);
37
- process.exit(-1);
38
- }
39
- return port;
40
- }
41
- }
42
- //# sourceMappingURL=MetricsServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetricsServer.js","sourceRoot":"","sources":["../../src/metrics/MetricsServer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAoB,MAAM,SAAS,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,MAAM,OAAO,aAAa;IAKxB,YAAY,UAAkB,EAAE,QAAgB,EAAE,QAAkB;QAClE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACvB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;YAC9D,OAAO,GAAG;iBACP,MAAM,CAAC,GAAG,CAAC;iBACX,IAAI,CACH,+BAA+B,IAAI,CAAC,UAAU,eAAe,IAAI,CAAC,QAAQ,EAAE,CAC7E,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;YAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW;QACT,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YAC5C,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,120 +0,0 @@
1
- // Forked from nice-grpc-prometheus
2
- import { isAbortError } from 'abort-controller-x';
3
- import { ClientError, Status, } from 'nice-grpc-common';
4
- import { Counter, exponentialBuckets, Histogram, Registry } from 'prom-client';
5
- const registry = new Registry();
6
- const typeLabel = 'grpc_type';
7
- const serviceLabel = 'grpc_service';
8
- const methodLabel = 'grpc_method';
9
- const pathLabel = 'grpc_path';
10
- const codeLabel = 'grpc_code';
11
- /**
12
- * 1ms, 4ms, 16ms, ..., ~1 hour in seconds
13
- */
14
- const latencySecondsBuckets = exponentialBuckets(0.001, 4, 12);
15
- function getLabels(method) {
16
- const callType = method.requestStream
17
- ? method.responseStream
18
- ? 'bidi_stream'
19
- : 'client_stream'
20
- : method.responseStream
21
- ? 'server_stream'
22
- : 'unary';
23
- const { path } = method;
24
- const [serviceName, methodName] = path.split('/').slice(1);
25
- return {
26
- [typeLabel]: callType,
27
- [serviceLabel]: serviceName,
28
- [methodLabel]: methodName,
29
- [pathLabel]: path,
30
- };
31
- }
32
- async function* incrementStreamMessagesCounter(iterable, counter) {
33
- for await (const item of iterable) {
34
- counter.inc();
35
- yield item;
36
- }
37
- }
38
- const clientStartedMetric = new Counter({
39
- registers: [registry],
40
- name: 'conduit_grpc_client_started_total',
41
- help: 'Total number of RPCs started on the client.',
42
- labelNames: [typeLabel, serviceLabel, methodLabel, pathLabel],
43
- });
44
- const clientHandledMetric = new Counter({
45
- registers: [registry],
46
- name: 'conduit_grpc_client_handled_total',
47
- help: 'Total number of RPCs completed on the client, regardless of success or failure.',
48
- labelNames: [typeLabel, serviceLabel, methodLabel, pathLabel, codeLabel],
49
- });
50
- const clientStreamMsgReceivedMetric = new Counter({
51
- registers: [registry],
52
- name: 'conduit_grpc_client_msg_received_total',
53
- help: 'Total number of RPC stream messages received by the client.',
54
- labelNames: [typeLabel, serviceLabel, methodLabel, pathLabel],
55
- });
56
- const clientStreamMsgSentMetric = new Counter({
57
- registers: [registry],
58
- name: 'conduit_grpc_client_msg_sent_total',
59
- help: 'Total number of gRPC stream messages sent by the client.',
60
- labelNames: [typeLabel, serviceLabel, methodLabel, pathLabel],
61
- });
62
- const clientHandlingSecondsMetric = new Histogram({
63
- registers: [registry],
64
- name: 'grpc_client_handling_seconds',
65
- help: 'Histogram of response latency (seconds) of the gRPC until it is finished by the application.',
66
- labelNames: [typeLabel, serviceLabel, methodLabel, pathLabel, codeLabel],
67
- buckets: latencySecondsBuckets,
68
- });
69
- export function clientMiddleware() {
70
- return async function* prometheusClientMiddlewareGenerator(call, options) {
71
- const labels = getLabels(call.method);
72
- clientStartedMetric.inc(labels);
73
- const stopTimer = clientHandlingSecondsMetric.startTimer(labels);
74
- let settled = false;
75
- let status = Status.OK;
76
- try {
77
- let request;
78
- if (!call.requestStream) {
79
- request = call.request;
80
- }
81
- else {
82
- request = incrementStreamMessagesCounter(call.request, clientStreamMsgSentMetric.labels(labels));
83
- }
84
- if (!call.responseStream) {
85
- const response = yield* call.next(request, options);
86
- settled = true;
87
- return response;
88
- }
89
- else {
90
- yield* incrementStreamMessagesCounter(call.next(request, options), clientStreamMsgReceivedMetric.labels(labels));
91
- settled = true;
92
- return;
93
- }
94
- }
95
- catch (err) {
96
- settled = true;
97
- if (err instanceof ClientError) {
98
- status = err.code;
99
- }
100
- else if (isAbortError(err)) {
101
- status = Status.ABORTED;
102
- }
103
- else {
104
- status = Status.UNKNOWN;
105
- }
106
- throw err;
107
- }
108
- finally {
109
- if (!settled) {
110
- status = Status.CANCELLED;
111
- }
112
- stopTimer({ [codeLabel]: Status[status] });
113
- clientHandledMetric.inc({
114
- ...labels,
115
- [codeLabel]: Status[status],
116
- });
117
- }
118
- };
119
- }
120
- //# sourceMappingURL=clientMiddleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientMiddleware.js","sourceRoot":"","sources":["../../src/metrics/clientMiddleware.ts"],"names":[],"mappings":"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"}