@conduitplatform/module-tools 0.16.0-alpha.10

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 (91) hide show
  1. package/README.mdx +18 -0
  2. package/dist/ManagedModule.d.ts +79 -0
  3. package/dist/ManagedModule.js +433 -0
  4. package/dist/ManagedModule.js.map +1 -0
  5. package/dist/classes/ConduitActiveSchema.d.ts +16 -0
  6. package/dist/classes/ConduitActiveSchema.js +57 -0
  7. package/dist/classes/ConduitActiveSchema.js.map +1 -0
  8. package/dist/classes/ConduitServiceModule.d.ts +26 -0
  9. package/dist/classes/ConduitServiceModule.js +184 -0
  10. package/dist/classes/ConduitServiceModule.js.map +1 -0
  11. package/dist/classes/ConfigController.d.ts +7 -0
  12. package/dist/classes/ConfigController.js +27 -0
  13. package/dist/classes/ConfigController.js.map +1 -0
  14. package/dist/classes/GrpcServer.d.ts +23 -0
  15. package/dist/classes/GrpcServer.js +222 -0
  16. package/dist/classes/GrpcServer.js.map +1 -0
  17. package/dist/classes/index.d.ts +4 -0
  18. package/dist/classes/index.js +21 -0
  19. package/dist/classes/index.js.map +1 -0
  20. package/dist/grpc_health_check.proto +21 -0
  21. package/dist/helpers/GrpcHelper.d.ts +8 -0
  22. package/dist/helpers/GrpcHelper.js +43 -0
  23. package/dist/helpers/GrpcHelper.js.map +1 -0
  24. package/dist/helpers/TypeHelpers.d.ts +70 -0
  25. package/dist/helpers/TypeHelpers.js +144 -0
  26. package/dist/helpers/TypeHelpers.js.map +1 -0
  27. package/dist/helpers/index.d.ts +3 -0
  28. package/dist/helpers/index.js +20 -0
  29. package/dist/helpers/index.js.map +1 -0
  30. package/dist/helpers/wrapGrpcFunctions.d.ts +5 -0
  31. package/dist/helpers/wrapGrpcFunctions.js +56 -0
  32. package/dist/helpers/wrapGrpcFunctions.js.map +1 -0
  33. package/dist/index.d.ts +6 -0
  34. package/dist/index.js +23 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/interfaces/ConduitService.d.ts +8 -0
  37. package/dist/interfaces/ConduitService.js +3 -0
  38. package/dist/interfaces/ConduitService.js.map +1 -0
  39. package/dist/interfaces/index.d.ts +1 -0
  40. package/dist/interfaces/index.js +18 -0
  41. package/dist/interfaces/index.js.map +1 -0
  42. package/dist/logging/index.d.ts +16 -0
  43. package/dist/logging/index.js +255 -0
  44. package/dist/logging/index.js.map +1 -0
  45. package/dist/metrics/MetricsServer.d.ts +10 -0
  46. package/dist/metrics/MetricsServer.js +94 -0
  47. package/dist/metrics/MetricsServer.js.map +1 -0
  48. package/dist/metrics/clientMiddleware.d.ts +2 -0
  49. package/dist/metrics/clientMiddleware.js +273 -0
  50. package/dist/metrics/clientMiddleware.js.map +1 -0
  51. package/dist/metrics/config/defaults.d.ts +91 -0
  52. package/dist/metrics/config/defaults.js +93 -0
  53. package/dist/metrics/config/defaults.js.map +1 -0
  54. package/dist/metrics/index.d.ts +22 -0
  55. package/dist/metrics/index.js +152 -0
  56. package/dist/metrics/index.js.map +1 -0
  57. package/dist/module.proto +14 -0
  58. package/dist/routing/ProxyRouteBuilder.d.ts +21 -0
  59. package/dist/routing/ProxyRouteBuilder.js +81 -0
  60. package/dist/routing/ProxyRouteBuilder.js.map +1 -0
  61. package/dist/routing/RouteBuilder.d.ts +23 -0
  62. package/dist/routing/RouteBuilder.js +107 -0
  63. package/dist/routing/RouteBuilder.js.map +1 -0
  64. package/dist/routing/RoutingManager.d.ts +32 -0
  65. package/dist/routing/RoutingManager.js +201 -0
  66. package/dist/routing/RoutingManager.js.map +1 -0
  67. package/dist/routing/RoutingUtilities.d.ts +7 -0
  68. package/dist/routing/RoutingUtilities.js +13 -0
  69. package/dist/routing/RoutingUtilities.js.map +1 -0
  70. package/dist/routing/index.d.ts +5 -0
  71. package/dist/routing/index.js +22 -0
  72. package/dist/routing/index.js.map +1 -0
  73. package/dist/routing/wrapRouterFunctions.d.ts +7 -0
  74. package/dist/routing/wrapRouterFunctions.js +136 -0
  75. package/dist/routing/wrapRouterFunctions.js.map +1 -0
  76. package/dist/utilities/convictConfigParser.d.ts +2 -0
  77. package/dist/utilities/convictConfigParser.js +18 -0
  78. package/dist/utilities/convictConfigParser.js.map +1 -0
  79. package/dist/utilities/index.d.ts +3 -0
  80. package/dist/utilities/index.js +20 -0
  81. package/dist/utilities/index.js.map +1 -0
  82. package/dist/utilities/initializeSdk.d.ts +2 -0
  83. package/dist/utilities/initializeSdk.js +64 -0
  84. package/dist/utilities/initializeSdk.js.map +1 -0
  85. package/dist/utilities/linearBackoffTimeout.d.ts +9 -0
  86. package/dist/utilities/linearBackoffTimeout.js +119 -0
  87. package/dist/utilities/linearBackoffTimeout.js.map +1 -0
  88. package/dist/utilities/merge.d.ts +1 -0
  89. package/dist/utilities/merge.js +15 -0
  90. package/dist/utilities/merge.js.map +1 -0
  91. package/package.json +58 -0
@@ -0,0 +1,91 @@
1
+ import { MetricType } from '@conduitplatform/grpc-sdk';
2
+ declare const _default: {
3
+ internalGrpcRequests: {
4
+ type: MetricType;
5
+ config: {
6
+ name: string;
7
+ help: string;
8
+ };
9
+ };
10
+ clientGrpcRequests: {
11
+ type: MetricType;
12
+ config: {
13
+ name: string;
14
+ help: string;
15
+ };
16
+ };
17
+ adminGrpcRequests: {
18
+ type: MetricType;
19
+ config: {
20
+ name: string;
21
+ help: string;
22
+ };
23
+ };
24
+ clientGrpcErrors: {
25
+ type: MetricType;
26
+ config: {
27
+ name: string;
28
+ help: string;
29
+ };
30
+ };
31
+ adminGrpcErrors: {
32
+ type: MetricType;
33
+ config: {
34
+ name: string;
35
+ help: string;
36
+ };
37
+ };
38
+ moduleHealthState: {
39
+ type: MetricType;
40
+ config: {
41
+ name: string;
42
+ help: string;
43
+ };
44
+ };
45
+ grpcRequestLatency: {
46
+ type: MetricType;
47
+ config: {
48
+ name: string;
49
+ help: string;
50
+ };
51
+ };
52
+ adminGrpcRequestLatency: {
53
+ type: MetricType;
54
+ config: {
55
+ name: string;
56
+ help: string;
57
+ };
58
+ };
59
+ clientGrpcRequestLatency: {
60
+ type: MetricType;
61
+ config: {
62
+ name: string;
63
+ help: string;
64
+ };
65
+ };
66
+ grpcResponseStatuses: {
67
+ type: MetricType;
68
+ config: {
69
+ name: string;
70
+ help: string;
71
+ labelNames: string[];
72
+ };
73
+ };
74
+ adminGrpcResponseStatuses: {
75
+ type: MetricType;
76
+ config: {
77
+ name: string;
78
+ help: string;
79
+ labelNames: string[];
80
+ };
81
+ };
82
+ clientGrpcResponseStatuses: {
83
+ type: MetricType;
84
+ config: {
85
+ name: string;
86
+ help: string;
87
+ labelNames: string[];
88
+ };
89
+ };
90
+ };
91
+ export default _default;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var grpc_sdk_1 = require("@conduitplatform/grpc-sdk");
4
+ exports.default = {
5
+ internalGrpcRequests: {
6
+ type: grpc_sdk_1.MetricType.Counter,
7
+ config: {
8
+ name: 'internal_grpc_requests_total',
9
+ help: "Tracks the total number of Conduit's internal gRPC requests",
10
+ },
11
+ },
12
+ clientGrpcRequests: {
13
+ type: grpc_sdk_1.MetricType.Counter,
14
+ config: {
15
+ name: 'client_grpc_requests_total',
16
+ help: 'Tracks the total number of the client gRPC requests',
17
+ },
18
+ },
19
+ adminGrpcRequests: {
20
+ type: grpc_sdk_1.MetricType.Counter,
21
+ config: {
22
+ name: 'admin_grpc_requests_total',
23
+ help: 'Tracks the total number of the admin gRPC requests',
24
+ },
25
+ },
26
+ clientGrpcErrors: {
27
+ type: grpc_sdk_1.MetricType.Counter,
28
+ config: {
29
+ name: 'client_grpc_errors_total',
30
+ help: 'Tracks the total number of client grpc errors',
31
+ },
32
+ },
33
+ adminGrpcErrors: {
34
+ type: grpc_sdk_1.MetricType.Counter,
35
+ config: {
36
+ name: 'admin_grpc_errors_total',
37
+ help: 'Tracks the total number of admin grpc errors',
38
+ },
39
+ },
40
+ moduleHealthState: {
41
+ type: grpc_sdk_1.MetricType.Gauge,
42
+ config: {
43
+ name: 'module_health_state',
44
+ help: 'Tracks the health state of the module',
45
+ },
46
+ },
47
+ grpcRequestLatency: {
48
+ type: grpc_sdk_1.MetricType.Gauge,
49
+ config: {
50
+ name: 'grpc_request_latency_seconds',
51
+ help: 'Tracks the latency of grpc requests in seconds',
52
+ },
53
+ },
54
+ adminGrpcRequestLatency: {
55
+ type: grpc_sdk_1.MetricType.Gauge,
56
+ config: {
57
+ name: 'admin_grpc_request_latency_seconds',
58
+ help: 'Tracks the latency of admin grpc requests in seconds',
59
+ },
60
+ },
61
+ clientGrpcRequestLatency: {
62
+ type: grpc_sdk_1.MetricType.Gauge,
63
+ config: {
64
+ name: 'client_grpc_request_latency_seconds',
65
+ help: 'Tracks the latency of client grpc requests in seconds',
66
+ },
67
+ },
68
+ grpcResponseStatuses: {
69
+ type: grpc_sdk_1.MetricType.Counter,
70
+ config: {
71
+ name: 'grpc_response_statuses_total',
72
+ help: 'Tracks the total number of grpc response codes',
73
+ labelNames: ['success'],
74
+ },
75
+ },
76
+ adminGrpcResponseStatuses: {
77
+ type: grpc_sdk_1.MetricType.Counter,
78
+ config: {
79
+ name: 'admin_grpc_response_statuses_total',
80
+ help: 'Tracks the total number of admin grpc response codes',
81
+ labelNames: ['success'],
82
+ },
83
+ },
84
+ clientGrpcResponseStatuses: {
85
+ type: grpc_sdk_1.MetricType.Counter,
86
+ config: {
87
+ name: 'client_grpc_response_statuses_total',
88
+ help: 'Tracks the total number of client grpc response codes',
89
+ labelNames: ['success'],
90
+ },
91
+ },
92
+ };
93
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/metrics/config/defaults.ts"],"names":[],"mappings":";;AAAA,sDAAuD;AAEvD,kBAAe;IACb,oBAAoB,EAAE;QACpB,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,6DAA6D;SACpE;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE,qDAAqD;SAC5D;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,oDAAoD;SAC3D;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,+CAA+C;SACtD;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,8CAA8C;SACrD;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,qBAAU,CAAC,KAAK;QACtB,MAAM,EAAE;YACN,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,uCAAuC;SAC9C;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,qBAAU,CAAC,KAAK;QACtB,MAAM,EAAE;YACN,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,gDAAgD;SACvD;KACF;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,qBAAU,CAAC,KAAK;QACtB,MAAM,EAAE;YACN,IAAI,EAAE,oCAAoC;YAC1C,IAAI,EAAE,sDAAsD;SAC7D;KACF;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,qBAAU,CAAC,KAAK;QACtB,MAAM,EAAE;YACN,IAAI,EAAE,qCAAqC;YAC3C,IAAI,EAAE,uDAAuD;SAC9D;KACF;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,gDAAgD;YACtD,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB;KACF;IACD,yBAAyB,EAAE;QACzB,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,oCAAoC;YAC1C,IAAI,EAAE,sDAAsD;YAC5D,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB;KACF;IACD,0BAA0B,EAAE;QAC1B,IAAI,EAAE,qBAAU,CAAC,OAAO;QACxB,MAAM,EAAE;YACN,IAAI,EAAE,qCAAqC;YAC3C,IAAI,EAAE,wDAAwD;YAC9D,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB;KACF;CACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Counter, CounterConfiguration, Gauge, GaugeConfiguration, Histogram, HistogramConfiguration, LabelValues, MetricConfiguration, Summary, SummaryConfiguration } from 'prom-client';
2
+ import { IConduitMetrics, MetricType } from '@conduitplatform/grpc-sdk';
3
+ export declare class ConduitMetrics implements IConduitMetrics {
4
+ private readonly moduleName;
5
+ private readonly instance;
6
+ private readonly _registry;
7
+ private _httpServer;
8
+ constructor(moduleName: string, instance: string);
9
+ initializeDefaultMetrics(): void;
10
+ registerMetric(type: MetricType, config: MetricConfiguration<string>): void;
11
+ collectDefaultMetrics(): void;
12
+ createCounter(config: CounterConfiguration<any>): Counter<any>;
13
+ createSummary(config: SummaryConfiguration<any>): Summary<any>;
14
+ createHistogram(config: HistogramConfiguration<any>): Histogram<any>;
15
+ createGauge(config: GaugeConfiguration<any>): Gauge<any>;
16
+ getMetric(name: string): import("prom-client").Metric<string> | undefined;
17
+ increment(metric: string, increment?: number, labels?: LabelValues<any>): void;
18
+ decrement(metric: string, decrement?: number, labels?: LabelValues<any>): void;
19
+ set(metric: string, value: number, labels?: LabelValues<any>): void;
20
+ observe(metric: string, value: number, labels?: LabelValues<any>): void;
21
+ private addPrefix;
22
+ }
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __values = (this && this.__values) || function(o) {
14
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
15
+ if (m) return m.call(o);
16
+ if (o && typeof o.length === "number") return {
17
+ next: function () {
18
+ if (o && i >= o.length) o = void 0;
19
+ return { value: o && o[i++], done: !o };
20
+ }
21
+ };
22
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.ConduitMetrics = void 0;
29
+ var prom_client_1 = require("prom-client");
30
+ var MetricsServer_1 = require("./MetricsServer");
31
+ var defaults_1 = __importDefault(require("./config/defaults"));
32
+ var grpc_sdk_1 = require("@conduitplatform/grpc-sdk");
33
+ var ConduitMetrics = /** @class */ (function () {
34
+ function ConduitMetrics(moduleName, instance) {
35
+ this.moduleName = moduleName;
36
+ this.instance = instance;
37
+ this._registry = new prom_client_1.Registry();
38
+ this._registry.setDefaultLabels({
39
+ module_name: this.moduleName,
40
+ module_instance: this.instance,
41
+ });
42
+ this.collectDefaultMetrics();
43
+ this._httpServer = new MetricsServer_1.MetricsServer(moduleName, instance, this._registry);
44
+ this._httpServer.initialize();
45
+ }
46
+ ConduitMetrics.prototype.initializeDefaultMetrics = function () {
47
+ var e_1, _a;
48
+ try {
49
+ for (var _b = __values(Object.values(defaults_1.default)), _c = _b.next(); !_c.done; _c = _b.next()) {
50
+ var metric = _c.value;
51
+ this.registerMetric(metric.type, metric.config);
52
+ }
53
+ }
54
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
55
+ finally {
56
+ try {
57
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
58
+ }
59
+ finally { if (e_1) throw e_1.error; }
60
+ }
61
+ };
62
+ ConduitMetrics.prototype.registerMetric = function (type, config) {
63
+ if (this.getMetric(config.name))
64
+ return;
65
+ var metricConfig = JSON.parse(JSON.stringify(config));
66
+ metricConfig.name = this.addPrefix(config.name);
67
+ switch (type) {
68
+ case grpc_sdk_1.MetricType.Counter:
69
+ this.createCounter(metricConfig);
70
+ break;
71
+ case grpc_sdk_1.MetricType.Gauge:
72
+ this.createGauge(metricConfig);
73
+ break;
74
+ case grpc_sdk_1.MetricType.Histogram:
75
+ this.createHistogram(metricConfig);
76
+ break;
77
+ case grpc_sdk_1.MetricType.Summary:
78
+ this.createSummary(metricConfig);
79
+ break;
80
+ }
81
+ };
82
+ ConduitMetrics.prototype.collectDefaultMetrics = function () {
83
+ (0, prom_client_1.collectDefaultMetrics)({
84
+ register: this._registry,
85
+ prefix: 'conduit_',
86
+ // probably not needed
87
+ labels: {
88
+ module_name: this.moduleName,
89
+ instance_instance: this.instance,
90
+ },
91
+ });
92
+ };
93
+ ConduitMetrics.prototype.createCounter = function (config) {
94
+ return new prom_client_1.Counter(__assign(__assign({}, config), { registers: [this._registry] }));
95
+ };
96
+ ConduitMetrics.prototype.createSummary = function (config) {
97
+ return new prom_client_1.Summary(__assign(__assign({}, config), { registers: [this._registry] }));
98
+ };
99
+ ConduitMetrics.prototype.createHistogram = function (config) {
100
+ return new prom_client_1.Histogram(__assign(__assign({}, config), { registers: [this._registry] }));
101
+ };
102
+ ConduitMetrics.prototype.createGauge = function (config) {
103
+ return new prom_client_1.Gauge(__assign(__assign({}, config), { registers: [this._registry] }));
104
+ };
105
+ ConduitMetrics.prototype.getMetric = function (name) {
106
+ return this._registry.getSingleMetric(this.addPrefix(name));
107
+ };
108
+ ConduitMetrics.prototype.increment = function (metric, increment, labels) {
109
+ if (increment === void 0) { increment = 1; }
110
+ var metricInstance = this._registry.getSingleMetric(this.addPrefix(metric));
111
+ if (!(metricInstance instanceof prom_client_1.Counter) && !(metricInstance instanceof prom_client_1.Gauge)) {
112
+ throw new Error("Metric ".concat(metric, " is not an incrementable metric"));
113
+ }
114
+ return labels
115
+ ? metricInstance.labels(__assign({}, labels)).inc(increment)
116
+ : metricInstance.inc(increment);
117
+ };
118
+ ConduitMetrics.prototype.decrement = function (metric, decrement, labels) {
119
+ if (decrement === void 0) { decrement = 1; }
120
+ var metricInstance = this._registry.getSingleMetric(this.addPrefix(metric));
121
+ if (!(metricInstance instanceof prom_client_1.Gauge)) {
122
+ throw new Error("Metric ".concat(metric, " is not a decrementable metric"));
123
+ }
124
+ return labels
125
+ ? metricInstance.labels(__assign({}, labels)).dec(decrement)
126
+ : metricInstance.dec(decrement);
127
+ };
128
+ ConduitMetrics.prototype.set = function (metric, value, labels) {
129
+ var metricInstance = this._registry.getSingleMetric(this.addPrefix(metric));
130
+ if (!(metricInstance instanceof prom_client_1.Gauge)) {
131
+ throw new Error("Metric ".concat(metric, " is not a Gauge"));
132
+ }
133
+ return labels
134
+ ? metricInstance.labels(__assign({}, labels)).set(value)
135
+ : metricInstance.set(value);
136
+ };
137
+ ConduitMetrics.prototype.observe = function (metric, value, labels) {
138
+ var metricInstance = this._registry.getSingleMetric(this.addPrefix(metric));
139
+ if (!(metricInstance instanceof prom_client_1.Histogram) && !(metricInstance instanceof prom_client_1.Summary)) {
140
+ throw new Error("Metric ".concat(metric, " is not a Histogram"));
141
+ }
142
+ return labels
143
+ ? metricInstance.labels(__assign({}, labels)).observe(value)
144
+ : metricInstance.observe(value);
145
+ };
146
+ ConduitMetrics.prototype.addPrefix = function (metric) {
147
+ return "conduit_".concat(metric);
148
+ };
149
+ return ConduitMetrics;
150
+ }());
151
+ exports.ConduitMetrics = ConduitMetrics;
152
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ syntax = "proto3";
2
+ package conduit.module.v1;
3
+
4
+ message SetConfigRequest {
5
+ string newConfig = 1;
6
+ }
7
+
8
+ message SetConfigResponse {
9
+ string updatedConfig = 1;
10
+ }
11
+
12
+ service ConduitModule {
13
+ rpc SetConfig(SetConfigRequest) returns (SetConfigResponse);
14
+ }
@@ -0,0 +1,21 @@
1
+ import { ProxyMiddlewareOptions, ProxyRouteActions, ProxyRouteOptions } from '@conduitplatform/grpc-sdk';
2
+ import { RoutingManager } from './RoutingManager';
3
+ export declare class ProxyRouteBuilder {
4
+ private readonly manager?;
5
+ private _options;
6
+ private _proxy;
7
+ constructor(manager?: RoutingManager | undefined);
8
+ method(action: ProxyRouteActions): ProxyRouteBuilder;
9
+ path(path: string): ProxyRouteBuilder;
10
+ target(target: string): ProxyRouteBuilder;
11
+ options(options: ProxyRouteOptions): ProxyRouteBuilder;
12
+ proxy(proxy: ProxyMiddlewareOptions): ProxyRouteBuilder;
13
+ middleware(middleware: string | string[], allowDuplicates?: boolean): ProxyRouteBuilder;
14
+ add(): void;
15
+ build(): {
16
+ input: {
17
+ options: ProxyRouteOptions;
18
+ proxy: ProxyMiddlewareOptions;
19
+ };
20
+ };
21
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProxyRouteBuilder = void 0;
4
+ var ProxyRouteBuilder = /** @class */ (function () {
5
+ function ProxyRouteBuilder(manager) {
6
+ this.manager = manager;
7
+ this._options = { path: '' };
8
+ this._proxy = { target: '' };
9
+ }
10
+ ProxyRouteBuilder.prototype.method = function (action) {
11
+ this._options.action = action;
12
+ return this;
13
+ };
14
+ ProxyRouteBuilder.prototype.path = function (path) {
15
+ this._options.path = path;
16
+ return this;
17
+ };
18
+ ProxyRouteBuilder.prototype.target = function (target) {
19
+ this._proxy.target = target;
20
+ return this;
21
+ };
22
+ ProxyRouteBuilder.prototype.options = function (options) {
23
+ this._options = options;
24
+ return this;
25
+ };
26
+ ProxyRouteBuilder.prototype.proxy = function (proxy) {
27
+ this._proxy = proxy;
28
+ return this;
29
+ };
30
+ ProxyRouteBuilder.prototype.middleware = function (middleware, allowDuplicates) {
31
+ var _this = this;
32
+ if (allowDuplicates === void 0) { allowDuplicates = false; }
33
+ if (!Array.isArray(middleware)) {
34
+ middleware = [middleware];
35
+ }
36
+ if (this._options.middlewares) {
37
+ if (allowDuplicates) {
38
+ this._options.middlewares = this._options.middlewares.concat(middleware);
39
+ }
40
+ else {
41
+ this._options.middlewares = this._options.middlewares.concat(middleware.filter(function (mid) { var _a; return ((_a = _this._options.middlewares) === null || _a === void 0 ? void 0 : _a.indexOf(mid)) === -1; }));
42
+ }
43
+ }
44
+ else {
45
+ this._options.middlewares = middleware;
46
+ }
47
+ return this;
48
+ };
49
+ ProxyRouteBuilder.prototype.add = function () {
50
+ if (!this.manager)
51
+ throw new Error('Builder not setup with manager');
52
+ if (!this._options.path)
53
+ throw new Error('Cannot build route without path');
54
+ if (!this._proxy.target)
55
+ throw new Error('Cannot build route without target');
56
+ var input = {
57
+ options: this._options,
58
+ proxy: this._proxy,
59
+ };
60
+ this.manager.proxyRoute(input);
61
+ };
62
+ ProxyRouteBuilder.prototype.build = function () {
63
+ if (!this.manager)
64
+ throw new Error('Builder not setup with manager');
65
+ if (!this._options.path)
66
+ throw new Error('Cannot build route without path');
67
+ if (!this._proxy.target)
68
+ throw new Error('Cannot build route without target');
69
+ if (!this._options.action)
70
+ throw new Error('Cannot build route without action');
71
+ return {
72
+ input: {
73
+ options: this._options,
74
+ proxy: this._proxy,
75
+ },
76
+ };
77
+ };
78
+ return ProxyRouteBuilder;
79
+ }());
80
+ exports.ProxyRouteBuilder = ProxyRouteBuilder;
81
+ //# sourceMappingURL=ProxyRouteBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProxyRouteBuilder.js","sourceRoot":"","sources":["../../src/routing/ProxyRouteBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { ConduitModel, ConduitQueryParams, ConduitReturn, ConduitRoute, ConduitRouteActions, ConduitUrlParams } from '@conduitplatform/grpc-sdk';
2
+ import { RoutingManager } from './RoutingManager';
3
+ import { RequestHandlers } from './wrapRouterFunctions';
4
+ export declare class RouteBuilder {
5
+ private readonly manager?;
6
+ private readonly _options;
7
+ private _returns;
8
+ private _handler;
9
+ constructor(manager?: RoutingManager | undefined);
10
+ method(action: ConduitRouteActions): RouteBuilder;
11
+ name(name: string): RouteBuilder;
12
+ description(description: string): RouteBuilder;
13
+ cacheControl(cache: string): RouteBuilder;
14
+ middleware(middleware: string | string[], allowDuplicates?: boolean): RouteBuilder;
15
+ path(path: string): RouteBuilder;
16
+ queryParams(params: ConduitQueryParams): RouteBuilder;
17
+ urlParams(params: ConduitUrlParams): RouteBuilder;
18
+ bodyParams(params: ConduitModel): RouteBuilder;
19
+ return(name: string, fields: ConduitReturn): RouteBuilder;
20
+ handler(fn: RequestHandlers): RouteBuilder;
21
+ add(): void;
22
+ build(): ConduitRoute;
23
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RouteBuilder = void 0;
4
+ var grpc_sdk_1 = require("@conduitplatform/grpc-sdk");
5
+ var RouteBuilder = /** @class */ (function () {
6
+ function RouteBuilder(manager) {
7
+ this.manager = manager;
8
+ this._options = {};
9
+ }
10
+ RouteBuilder.prototype.method = function (action) {
11
+ this._options.action = action;
12
+ return this;
13
+ };
14
+ RouteBuilder.prototype.name = function (name) {
15
+ this._options.name = name;
16
+ return this;
17
+ };
18
+ RouteBuilder.prototype.description = function (description) {
19
+ this._options.description = description;
20
+ return this;
21
+ };
22
+ RouteBuilder.prototype.cacheControl = function (cache) {
23
+ this._options.cacheControl = cache;
24
+ return this;
25
+ };
26
+ RouteBuilder.prototype.middleware = function (middleware, allowDuplicates) {
27
+ var _this = this;
28
+ var _a, _b, _c;
29
+ if (allowDuplicates === void 0) { allowDuplicates = false; }
30
+ if (!Array.isArray(middleware)) {
31
+ middleware = [middleware];
32
+ }
33
+ if (this._options.middlewares !== undefined &&
34
+ ((_a = this._options.middlewares) === null || _a === void 0 ? void 0 : _a.length) !== 0) {
35
+ if (allowDuplicates) {
36
+ this._options.middlewares = (_b = this._options.middlewares) === null || _b === void 0 ? void 0 : _b.concat(middleware);
37
+ }
38
+ else {
39
+ // add to existing middlewares and filter out potential duplicates
40
+ this._options.middlewares = (_c = this._options.middlewares) === null || _c === void 0 ? void 0 : _c.concat(middleware.filter(function (mid) { var _a; return ((_a = _this._options.middlewares) === null || _a === void 0 ? void 0 : _a.indexOf(mid)) === -1; }));
41
+ }
42
+ }
43
+ else {
44
+ this._options.middlewares = middleware;
45
+ }
46
+ return this;
47
+ };
48
+ RouteBuilder.prototype.path = function (path) {
49
+ this._options.path = path;
50
+ return this;
51
+ };
52
+ RouteBuilder.prototype.queryParams = function (params) {
53
+ this._options.queryParams = params;
54
+ return this;
55
+ };
56
+ RouteBuilder.prototype.urlParams = function (params) {
57
+ this._options.urlParams = params;
58
+ return this;
59
+ };
60
+ RouteBuilder.prototype.bodyParams = function (params) {
61
+ this._options.bodyParams = params;
62
+ return this;
63
+ };
64
+ RouteBuilder.prototype.return = function (name, fields) {
65
+ this._returns = new grpc_sdk_1.ConduitRouteReturnDefinition(name, fields);
66
+ return this;
67
+ };
68
+ RouteBuilder.prototype.handler = function (fn) {
69
+ this._handler = fn;
70
+ return this;
71
+ };
72
+ RouteBuilder.prototype.add = function () {
73
+ if (!this.manager)
74
+ throw new Error('Builder not setup with manager');
75
+ if (!this._options)
76
+ throw new Error('Cannot build route without options');
77
+ if (!this._options.action)
78
+ throw new Error('Cannot build route without action');
79
+ if (!this._options.path)
80
+ throw new Error('Cannot build route without action');
81
+ if (!this._returns)
82
+ throw new Error('Cannot build route without return');
83
+ if (!this._handler)
84
+ throw new Error('Cannot build route without handler');
85
+ this.manager.route(this._options, this._returns, this._handler);
86
+ };
87
+ RouteBuilder.prototype.build = function () {
88
+ if (!this._options)
89
+ throw new Error('Cannot build route without options');
90
+ if (!this._options.action)
91
+ throw new Error('Cannot build route without action');
92
+ if (!this._options.path)
93
+ throw new Error('Cannot build route without action');
94
+ if (!this._returns)
95
+ throw new Error('Cannot build route without return');
96
+ if (!this._handler)
97
+ throw new Error('Cannot build route without handler');
98
+ return {
99
+ input: this._options,
100
+ returnType: this._returns,
101
+ handler: this._handler,
102
+ };
103
+ };
104
+ return RouteBuilder;
105
+ }());
106
+ exports.RouteBuilder = RouteBuilder;
107
+ //# sourceMappingURL=RouteBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteBuilder.js","sourceRoot":"","sources":["../../src/routing/RouteBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { RouteBuilder } from './RouteBuilder';
2
+ import { RequestHandlers } from './wrapRouterFunctions';
3
+ import { Admin, ConduitMiddlewareOptions, ConduitRouteOptions, ConduitRouteReturnDefinition, ConduitSocketEventHandler, ConduitSocketOptions, ParsedRouterRequest, ProxyMiddlewareOptions, ProxyRouteOptions, Router, UnparsedRouterResponse } from '@conduitplatform/grpc-sdk';
4
+ import { GrpcServer } from '../classes';
5
+ import { ProxyRouteBuilder } from './ProxyRouteBuilder';
6
+ export declare class RoutingManager {
7
+ private readonly _router;
8
+ private readonly _server;
9
+ private _moduleRoutes;
10
+ private _moduleProxyRoutes;
11
+ private _routeHandlers;
12
+ private readonly isAdmin;
13
+ constructor(_router: Router | Admin, _server: GrpcServer);
14
+ get(path: string): RouteBuilder;
15
+ post(path: string): RouteBuilder;
16
+ delete(path: string): RouteBuilder;
17
+ update(path: string): RouteBuilder;
18
+ patch(path: string): RouteBuilder;
19
+ proxy(): ProxyRouteBuilder;
20
+ clear(): void;
21
+ middleware(input: ConduitMiddlewareOptions, handler: (request: ParsedRouterRequest) => Promise<UnparsedRouterResponse>): void;
22
+ route(input: ConduitRouteOptions, type: ConduitRouteReturnDefinition, handler: RequestHandlers): void;
23
+ proxyRoute(input: {
24
+ options: ProxyRouteOptions;
25
+ proxy: ProxyMiddlewareOptions;
26
+ }): void;
27
+ socket(input: ConduitSocketOptions, events: Record<string, ConduitSocketEventHandler>): void;
28
+ registerRoutes(): Promise<any>;
29
+ private generateGrpcName;
30
+ private extractNameFromPath;
31
+ private parseRouteObject;
32
+ }