@conduitplatform/grpc-sdk 0.13.0-rc0 → 0.14.0-0
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.
- package/dist/classes/ConduitModule.js +0 -1
- package/dist/classes/ConduitModule.js.map +1 -1
- package/dist/classes/ConduitParser.d.ts +1 -0
- package/dist/classes/ConduitParser.js.map +1 -1
- package/dist/classes/GrpcServer.d.ts +2 -1
- package/dist/classes/GrpcServer.js +29 -15
- package/dist/classes/GrpcServer.js.map +1 -1
- package/dist/classes/HealthCheck.d.ts +1 -0
- package/dist/classes/HealthCheck.js +76 -0
- package/dist/classes/HealthCheck.js.map +1 -0
- package/dist/classes/ManagedModule.d.ts +38 -0
- package/dist/classes/ManagedModule.js +83 -14
- package/dist/classes/ManagedModule.js.map +1 -1
- package/dist/classes/ModuleManager.js +12 -25
- package/dist/classes/ModuleManager.js.map +1 -1
- package/dist/classes/Routing/RoutingManager.js.map +1 -1
- package/dist/constants/enums/PlatformTypesEnum.d.ts +2 -1
- package/dist/constants/enums/PlatformTypesEnum.js +1 -0
- package/dist/constants/enums/PlatformTypesEnum.js.map +1 -1
- package/dist/helpers/RoutingJsonConstructor.js.map +1 -1
- package/dist/helpers/RoutingUtilities.js.map +1 -1
- package/dist/helpers/TypeHelpers.d.ts +7 -7
- package/dist/helpers/TypeHelpers.js.map +1 -1
- package/dist/helpers/wrapRouterFunctions.js +7 -3
- package/dist/helpers/wrapRouterFunctions.js.map +1 -1
- package/dist/index.d.ts +10 -3
- package/dist/index.js +122 -77
- package/dist/index.js.map +1 -1
- package/dist/modules/admin/index.js.map +1 -1
- package/dist/modules/authentication/index.d.ts +1 -2
- package/dist/modules/authentication/index.js +0 -5
- package/dist/modules/authentication/index.js.map +1 -1
- package/dist/modules/chat/index.d.ts +0 -1
- package/dist/modules/chat/index.js +0 -5
- package/dist/modules/chat/index.js.map +1 -1
- package/dist/modules/config/index.d.ts +2 -0
- package/dist/modules/config/index.js +19 -4
- package/dist/modules/config/index.js.map +1 -1
- package/dist/modules/database/index.js.map +1 -1
- package/dist/modules/email/index.d.ts +0 -1
- package/dist/modules/email/index.js +0 -5
- package/dist/modules/email/index.js.map +1 -1
- package/dist/modules/forms/index.d.ts +0 -1
- package/dist/modules/forms/index.js +0 -5
- package/dist/modules/forms/index.js.map +1 -1
- package/dist/modules/pushNotifications/index.d.ts +0 -1
- package/dist/modules/pushNotifications/index.js +0 -5
- package/dist/modules/pushNotifications/index.js.map +1 -1
- package/dist/modules/router/index.d.ts +2 -2
- package/dist/modules/router/index.js +2 -2
- package/dist/modules/router/index.js.map +1 -1
- package/dist/modules/sms/index.d.ts +0 -1
- package/dist/modules/sms/index.js +0 -5
- package/dist/modules/sms/index.js.map +1 -1
- package/dist/modules/storage/index.d.ts +1 -2
- package/dist/modules/storage/index.js +0 -5
- package/dist/modules/storage/index.js.map +1 -1
- package/dist/protoUtils/authentication.js +0 -8
- package/dist/protoUtils/authentication.js.map +1 -1
- package/dist/protoUtils/chat.js +0 -8
- package/dist/protoUtils/chat.js.map +1 -1
- package/dist/protoUtils/core.d.ts +20 -117
- package/dist/protoUtils/core.js +24 -560
- package/dist/protoUtils/core.js.map +1 -1
- package/dist/protoUtils/database.js +0 -8
- package/dist/protoUtils/database.js.map +1 -1
- package/dist/protoUtils/email.js +0 -8
- package/dist/protoUtils/email.js.map +1 -1
- package/dist/protoUtils/forms.js +0 -8
- package/dist/protoUtils/forms.js.map +1 -1
- package/dist/protoUtils/grpc_health_check.js +0 -8
- package/dist/protoUtils/grpc_health_check.js.map +1 -1
- package/dist/protoUtils/push-notifications.js +0 -8
- package/dist/protoUtils/push-notifications.js.map +1 -1
- package/dist/protoUtils/router.d.ts +171 -0
- package/dist/protoUtils/router.js +690 -0
- package/dist/protoUtils/router.js.map +1 -0
- package/dist/protoUtils/sms.js +0 -8
- package/dist/protoUtils/sms.js.map +1 -1
- package/dist/protoUtils/storage.js +0 -8
- package/dist/protoUtils/storage.js.map +1 -1
- package/dist/utilities/EventBus.js +4 -3
- package/dist/utilities/EventBus.js.map +1 -1
- package/dist/utilities/Logger.d.ts +13 -0
- package/dist/utilities/Logger.js +104 -0
- package/dist/utilities/Logger.js.map +1 -0
- package/dist/utilities/StateManager.js +1 -1
- package/dist/utilities/StateManager.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConduitModule.js","sourceRoot":"","sources":["../../src/classes/ConduitModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAE1F,uCAAgF;AAChF,qEAAwF;AACxF,iCAAsC;
|
|
1
|
+
{"version":3,"file":"ConduitModule.js","sourceRoot":"","sources":["../../src/classes/ConduitModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export declare abstract class ConduitParser<ParseResult, ProcessingObject> {
|
|
|
5
5
|
abstract extractTypes(name: string, fields: ConduitModel | ConduitRouteOption | string, isInput: boolean): ParseResult;
|
|
6
6
|
protected abstract getType(conduitType: TYPE): string | {
|
|
7
7
|
type?: string;
|
|
8
|
+
$ref?: string;
|
|
8
9
|
format?: string;
|
|
9
10
|
properties?: object;
|
|
10
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConduitParser.js","sourceRoot":"","sources":["../../src/classes/ConduitParser.ts"],"names":[],"mappings":";;;AAQA;IAAA;
|
|
1
|
+
{"version":3,"file":"ConduitParser.js","sourceRoot":"","sources":["../../src/classes/ConduitParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,12 @@ export declare class GrpcServer {
|
|
|
4
4
|
private startedOnce;
|
|
5
5
|
private _serviceNames;
|
|
6
6
|
private scheduledRestart;
|
|
7
|
+
private _useForce?;
|
|
7
8
|
private _services;
|
|
8
9
|
constructor(port?: string);
|
|
9
10
|
private _url;
|
|
10
11
|
get url(): string;
|
|
11
|
-
createNewServer(): Promise<number>;
|
|
12
|
+
createNewServer(useForce?: boolean): Promise<number>;
|
|
12
13
|
addService(protoFilePath: string, protoDescription: string, functions: {
|
|
13
14
|
[name: string]: Function;
|
|
14
15
|
}): Promise<GrpcServer>;
|
|
@@ -35,9 +35,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
38
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
42
|
exports.GrpcServer = void 0;
|
|
40
43
|
var helpers_1 = require("../helpers");
|
|
44
|
+
var lodash_1 = require("lodash");
|
|
45
|
+
var index_1 = __importDefault(require("../index"));
|
|
41
46
|
var GrpcServer = /** @class */ (function () {
|
|
42
47
|
function GrpcServer(port) {
|
|
43
48
|
this.started = false;
|
|
@@ -53,12 +58,17 @@ var GrpcServer = /** @class */ (function () {
|
|
|
53
58
|
enumerable: false,
|
|
54
59
|
configurable: true
|
|
55
60
|
});
|
|
56
|
-
GrpcServer.prototype.createNewServer = function () {
|
|
61
|
+
GrpcServer.prototype.createNewServer = function (useForce) {
|
|
62
|
+
if (useForce === void 0) { useForce = false; }
|
|
57
63
|
return __awaiter(this, void 0, void 0, function () {
|
|
58
64
|
var serverResult;
|
|
59
65
|
return __generator(this, function (_a) {
|
|
60
66
|
switch (_a.label) {
|
|
61
|
-
case 0:
|
|
67
|
+
case 0:
|
|
68
|
+
if (lodash_1.isNil(this._useForce)) {
|
|
69
|
+
this._useForce = useForce;
|
|
70
|
+
}
|
|
71
|
+
return [4 /*yield*/, helpers_1.createServer(this._url)];
|
|
62
72
|
case 1:
|
|
63
73
|
serverResult = _a.sent();
|
|
64
74
|
this.grpcServer = serverResult.server;
|
|
@@ -77,7 +87,7 @@ var GrpcServer = /** @class */ (function () {
|
|
|
77
87
|
functions = helpers_1.wrapGrpcFunctions(functions);
|
|
78
88
|
}
|
|
79
89
|
if (!(this._serviceNames.indexOf(protoDescription) !== -1)) return [3 /*break*/, 1];
|
|
80
|
-
|
|
90
|
+
index_1.default.Logger.log('Service already exists, performing replace');
|
|
81
91
|
this._services[this._serviceNames.indexOf(protoDescription)] = {
|
|
82
92
|
protoFilePath: protoFilePath,
|
|
83
93
|
protoDescription: protoDescription,
|
|
@@ -89,7 +99,7 @@ var GrpcServer = /** @class */ (function () {
|
|
|
89
99
|
this._services.push({ protoFilePath: protoFilePath, protoDescription: protoDescription, functions: functions });
|
|
90
100
|
this._serviceNames.push(protoDescription);
|
|
91
101
|
if (!this.started) return [3 /*break*/, 2];
|
|
92
|
-
|
|
102
|
+
index_1.default.Logger.log('Server already started, scheduling refresh..');
|
|
93
103
|
this.scheduleRefresh();
|
|
94
104
|
return [2 /*return*/, this];
|
|
95
105
|
case 2:
|
|
@@ -123,16 +133,20 @@ var GrpcServer = /** @class */ (function () {
|
|
|
123
133
|
return __generator(this, function (_a) {
|
|
124
134
|
switch (_a.label) {
|
|
125
135
|
case 0:
|
|
126
|
-
if (!this.started) return [3 /*break*/,
|
|
136
|
+
if (!this.started) return [3 /*break*/, 3];
|
|
127
137
|
this.started = false;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
138
|
+
if (!this._useForce) return [3 /*break*/, 1];
|
|
139
|
+
this.grpcServer.forceShutdown();
|
|
140
|
+
return [3 /*break*/, 3];
|
|
141
|
+
case 1:
|
|
142
|
+
//gracefully shutdown so that there are no service disruption
|
|
143
|
+
return [4 /*yield*/, new Promise(function (resolve) { return _this.grpcServer.tryShutdown(function () { return resolve(); }); })];
|
|
144
|
+
case 2:
|
|
131
145
|
//gracefully shutdown so that there are no service disruption
|
|
132
146
|
_a.sent();
|
|
133
|
-
_a.label =
|
|
134
|
-
case
|
|
135
|
-
case
|
|
147
|
+
_a.label = 3;
|
|
148
|
+
case 3: return [4 /*yield*/, this.createNewServer()];
|
|
149
|
+
case 4:
|
|
136
150
|
_a.sent();
|
|
137
151
|
this._services.forEach(function (service) {
|
|
138
152
|
helpers_1.addServiceToServer(_this.grpcServer, service.protoFilePath, service.protoDescription, service.functions);
|
|
@@ -156,11 +170,11 @@ var GrpcServer = /** @class */ (function () {
|
|
|
156
170
|
return __generator(this, function (_a) {
|
|
157
171
|
switch (_a.label) {
|
|
158
172
|
case 0:
|
|
159
|
-
|
|
173
|
+
index_1.default.Logger.log('Begin refresh');
|
|
160
174
|
return [4 /*yield*/, self.refresh()];
|
|
161
175
|
case 1:
|
|
162
176
|
_a.sent();
|
|
163
|
-
|
|
177
|
+
index_1.default.Logger.log('Refresh complete');
|
|
164
178
|
return [2 /*return*/];
|
|
165
179
|
}
|
|
166
180
|
});
|
|
@@ -169,11 +183,11 @@ var GrpcServer = /** @class */ (function () {
|
|
|
169
183
|
GrpcServer.prototype.start = function () {
|
|
170
184
|
var _a;
|
|
171
185
|
if (this.started) {
|
|
172
|
-
|
|
186
|
+
index_1.default.Logger.error('gRPC server is already running!');
|
|
173
187
|
return;
|
|
174
188
|
}
|
|
175
189
|
else if (!this.started && this.startedOnce) {
|
|
176
|
-
|
|
190
|
+
index_1.default.Logger.error('gRPC server is down for refresh!');
|
|
177
191
|
}
|
|
178
192
|
this.started = true;
|
|
179
193
|
this.startedOnce = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrpcServer.js","sourceRoot":"","sources":["../../src/classes/GrpcServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GrpcServer.js","sourceRoot":"","sources":["../../src/classes/GrpcServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function checkModuleHealth(clientName: string, serviceUrl: string, service?: string, grpcToken?: string): Promise<any>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.checkModuleHealth = void 0;
|
|
40
|
+
var interceptors_1 = require("../interceptors");
|
|
41
|
+
var nice_grpc_1 = require("nice-grpc");
|
|
42
|
+
var grpc_health_check_1 = require("../protoUtils/grpc_health_check");
|
|
43
|
+
function checkModuleHealth(clientName, serviceUrl, service, grpcToken) {
|
|
44
|
+
if (service === void 0) { service = ''; }
|
|
45
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
+
var channel, clientFactory, _healthClient, error, status;
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
channel = nice_grpc_1.createChannel(serviceUrl, undefined, {
|
|
51
|
+
'grpc.max_receive_message_length': 1024 * 1024 * 100,
|
|
52
|
+
'grpc.max_send_message_length': 1024 * 1024 * 100,
|
|
53
|
+
});
|
|
54
|
+
clientFactory = nice_grpc_1.createClientFactory().use(grpcToken
|
|
55
|
+
? interceptors_1.getGrpcSignedTokenInterceptor(grpcToken)
|
|
56
|
+
: interceptors_1.getModuleNameInterceptor(clientName));
|
|
57
|
+
_healthClient = clientFactory.create(grpc_health_check_1.HealthDefinition, channel);
|
|
58
|
+
return [4 /*yield*/, _healthClient
|
|
59
|
+
.check({ service: service })
|
|
60
|
+
.then(function (res) {
|
|
61
|
+
return res.status;
|
|
62
|
+
})
|
|
63
|
+
.catch(function (err) { return (error = err); })];
|
|
64
|
+
case 1:
|
|
65
|
+
status = _a.sent();
|
|
66
|
+
channel.close();
|
|
67
|
+
if (!error) {
|
|
68
|
+
return [2 /*return*/, status];
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
exports.checkModuleHealth = checkModuleHealth;
|
|
76
|
+
//# sourceMappingURL=HealthCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HealthCheck.js","sourceRoot":"","sources":["../../src/classes/HealthCheck.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAA+D;AAC/D,qEAAwF;AAExF,SAAsB,iBAAiB,CACrC,UAAkB,EAClB,UAAkB,EAClB,OAAoB,EACpB,SAAkB;IADlB,wBAAA,EAAA,YAAoB;;;;;;oBAGhB,OAAO,GAAG,yBAAa,CAAC,UAAU,EAAE,SAAS,EAAE;wBACjD,iCAAiC,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;wBACpD,8BAA8B,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;qBAClD,CAAC,CAAC;oBACG,aAAa,GAAG,+BAAmB,EAAE,CAAC,GAAG,CAC7C,SAAS;wBACP,CAAC,CAAC,4CAA6B,CAAC,SAAS,CAAC;wBAC1C,CAAC,CAAC,uCAAwB,CAAC,UAAU,CAAC,CACzC,CAAC;oBACE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,oCAAgB,EAAE,OAAO,CAAC,CAAC;oBAEvD,qBAAM,aAAa;6BAC7B,KAAK,CAAC,EAAE,OAAO,SAAA,EAAE,CAAC;6BAClB,IAAI,CAAC,UAAC,GAAwB;4BAC7B,OAAO,GAAG,CAAC,MAAM,CAAC;wBACpB,CAAC,CAAC;6BACD,KAAK,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,KAAK,GAAG,GAAG,CAAC,EAAb,CAAa,CAAC,EAAA;;oBAL1B,MAAM,GAAG,SAKiB;oBAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,KAAK,EAAE;wBACV,sBAAO,MAAM,EAAC;qBACf;oBACD,MAAM,KAAK,CAAC;;;;CACb;AA5BD,8CA4BC"}
|
|
@@ -6,12 +6,50 @@ export declare abstract class ManagedModule<T> extends ConduitServiceModule {
|
|
|
6
6
|
service?: ConduitService;
|
|
7
7
|
protected constructor(moduleName: string);
|
|
8
8
|
get name(): string;
|
|
9
|
+
/**
|
|
10
|
+
* This is the first function triggered on module spin up.
|
|
11
|
+
* @param grpcSdk
|
|
12
|
+
*/
|
|
9
13
|
initialize(grpcSdk: ConduitGrpcSdk): void;
|
|
14
|
+
/**
|
|
15
|
+
* This is triggered before spinning up the Grpc Server
|
|
16
|
+
* of the module. On this stage, the redis bus and state have
|
|
17
|
+
* not yet been initialized, and only communications with Conduit core
|
|
18
|
+
* have been established.
|
|
19
|
+
*/
|
|
10
20
|
preServerStart(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* This is triggered right after Grpc Server start.
|
|
23
|
+
* At this stage the core module will communicate with your service
|
|
24
|
+
* for health checks, and the Bus and State management mechanics
|
|
25
|
+
* are online and available.
|
|
26
|
+
*/
|
|
11
27
|
onServerStart(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Triggers right before registering the module with Conduit Core.
|
|
30
|
+
*/
|
|
12
31
|
preRegister(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Triggers when module has been registered with Conduit Core
|
|
34
|
+
* This is the step where you should initialize your
|
|
35
|
+
* module's general routing (admin or client) and any other operation,
|
|
36
|
+
* that would require other modules being able to reach you
|
|
37
|
+
*/
|
|
13
38
|
onRegister(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* This is triggered when the module receives new configuration.
|
|
41
|
+
* At this step the configuration has not been checked yet,
|
|
42
|
+
* and has only been parsed.
|
|
43
|
+
* @param config
|
|
44
|
+
*/
|
|
14
45
|
preConfig(config: T): Promise<T>;
|
|
46
|
+
/**
|
|
47
|
+
* This is triggered when new configuration has been applied.
|
|
48
|
+
* This happens either when changes are being made on the configuration,
|
|
49
|
+
* or on module start up, where the config is recovered from the database.
|
|
50
|
+
* In either case the configuration is now available through the
|
|
51
|
+
* Config Controller of the sdk.
|
|
52
|
+
*/
|
|
15
53
|
onConfig(): Promise<void>;
|
|
16
54
|
createGrpcServer(servicePort?: string): Promise<void>;
|
|
17
55
|
startGrpcServer(): Promise<void>;
|
|
@@ -14,6 +14,36 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
14
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
|
+
var __assign = (this && this.__assign) || function () {
|
|
18
|
+
__assign = Object.assign || function(t) {
|
|
19
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
20
|
+
s = arguments[i];
|
|
21
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
22
|
+
t[p] = s[p];
|
|
23
|
+
}
|
|
24
|
+
return t;
|
|
25
|
+
};
|
|
26
|
+
return __assign.apply(this, arguments);
|
|
27
|
+
};
|
|
28
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
29
|
+
if (k2 === undefined) k2 = k;
|
|
30
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
31
|
+
}) : (function(o, m, k, k2) {
|
|
32
|
+
if (k2 === undefined) k2 = k;
|
|
33
|
+
o[k2] = m[k];
|
|
34
|
+
}));
|
|
35
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
36
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
37
|
+
}) : function(o, v) {
|
|
38
|
+
o["default"] = v;
|
|
39
|
+
});
|
|
40
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
17
47
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
48
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
49
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -52,7 +82,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
52
82
|
};
|
|
53
83
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
84
|
exports.ManagedModule = void 0;
|
|
55
|
-
var __1 = require("..");
|
|
85
|
+
var __1 = __importStar(require(".."));
|
|
56
86
|
var ConduitServiceModule_1 = require("./ConduitServiceModule");
|
|
57
87
|
var ConfigController_1 = require("./ConfigController");
|
|
58
88
|
var lodash_1 = require("lodash");
|
|
@@ -69,29 +99,60 @@ var ManagedModule = /** @class */ (function (_super) {
|
|
|
69
99
|
enumerable: false,
|
|
70
100
|
configurable: true
|
|
71
101
|
});
|
|
102
|
+
/**
|
|
103
|
+
* This is the first function triggered on module spin up.
|
|
104
|
+
* @param grpcSdk
|
|
105
|
+
*/
|
|
72
106
|
ManagedModule.prototype.initialize = function (grpcSdk) {
|
|
73
107
|
this.grpcSdk = grpcSdk;
|
|
74
108
|
};
|
|
109
|
+
/**
|
|
110
|
+
* This is triggered before spinning up the Grpc Server
|
|
111
|
+
* of the module. On this stage, the redis bus and state have
|
|
112
|
+
* not yet been initialized, and only communications with Conduit core
|
|
113
|
+
* have been established.
|
|
114
|
+
*/
|
|
75
115
|
ManagedModule.prototype.preServerStart = function () {
|
|
76
116
|
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
77
117
|
return [2 /*return*/];
|
|
78
118
|
}); });
|
|
79
119
|
};
|
|
120
|
+
/**
|
|
121
|
+
* This is triggered right after Grpc Server start.
|
|
122
|
+
* At this stage the core module will communicate with your service
|
|
123
|
+
* for health checks, and the Bus and State management mechanics
|
|
124
|
+
* are online and available.
|
|
125
|
+
*/
|
|
80
126
|
ManagedModule.prototype.onServerStart = function () {
|
|
81
127
|
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
82
128
|
return [2 /*return*/];
|
|
83
129
|
}); });
|
|
84
130
|
};
|
|
131
|
+
/**
|
|
132
|
+
* Triggers right before registering the module with Conduit Core.
|
|
133
|
+
*/
|
|
85
134
|
ManagedModule.prototype.preRegister = function () {
|
|
86
135
|
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
87
136
|
return [2 /*return*/];
|
|
88
137
|
}); });
|
|
89
138
|
};
|
|
139
|
+
/**
|
|
140
|
+
* Triggers when module has been registered with Conduit Core
|
|
141
|
+
* This is the step where you should initialize your
|
|
142
|
+
* module's general routing (admin or client) and any other operation,
|
|
143
|
+
* that would require other modules being able to reach you
|
|
144
|
+
*/
|
|
90
145
|
ManagedModule.prototype.onRegister = function () {
|
|
91
146
|
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
92
147
|
return [2 /*return*/];
|
|
93
148
|
}); });
|
|
94
149
|
};
|
|
150
|
+
/**
|
|
151
|
+
* This is triggered when the module receives new configuration.
|
|
152
|
+
* At this step the configuration has not been checked yet,
|
|
153
|
+
* and has only been parsed.
|
|
154
|
+
* @param config
|
|
155
|
+
*/
|
|
95
156
|
ManagedModule.prototype.preConfig = function (config) {
|
|
96
157
|
return __awaiter(this, void 0, void 0, function () {
|
|
97
158
|
return __generator(this, function (_a) {
|
|
@@ -99,6 +160,13 @@ var ManagedModule = /** @class */ (function (_super) {
|
|
|
99
160
|
});
|
|
100
161
|
});
|
|
101
162
|
};
|
|
163
|
+
/**
|
|
164
|
+
* This is triggered when new configuration has been applied.
|
|
165
|
+
* This happens either when changes are being made on the configuration,
|
|
166
|
+
* or on module start up, where the config is recovered from the database.
|
|
167
|
+
* In either case the configuration is now available through the
|
|
168
|
+
* Config Controller of the sdk.
|
|
169
|
+
*/
|
|
102
170
|
ManagedModule.prototype.onConfig = function () {
|
|
103
171
|
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
104
172
|
return [2 /*return*/];
|
|
@@ -136,7 +204,7 @@ var ManagedModule = /** @class */ (function (_super) {
|
|
|
136
204
|
return [4 /*yield*/, this.grpcServer.start()];
|
|
137
205
|
case 3:
|
|
138
206
|
_a.sent();
|
|
139
|
-
|
|
207
|
+
__1.default.Logger.log('gRPC server is online');
|
|
140
208
|
_a.label = 4;
|
|
141
209
|
case 4: return [2 /*return*/];
|
|
142
210
|
}
|
|
@@ -146,11 +214,11 @@ var ManagedModule = /** @class */ (function (_super) {
|
|
|
146
214
|
ManagedModule.prototype.setConfig = function (call, callback) {
|
|
147
215
|
var _a;
|
|
148
216
|
return __awaiter(this, void 0, void 0, function () {
|
|
149
|
-
var config,
|
|
217
|
+
var config, previousConfig, e_1;
|
|
150
218
|
return __generator(this, function (_b) {
|
|
151
219
|
switch (_b.label) {
|
|
152
220
|
case 0:
|
|
153
|
-
_b.trys.push([0,
|
|
221
|
+
_b.trys.push([0, 3, , 4]);
|
|
154
222
|
if (!this.config) {
|
|
155
223
|
return [2 /*return*/, callback({
|
|
156
224
|
code: grpc_js_1.status.INVALID_ARGUMENT,
|
|
@@ -158,31 +226,32 @@ var ManagedModule = /** @class */ (function (_super) {
|
|
|
158
226
|
})];
|
|
159
227
|
}
|
|
160
228
|
config = JSON.parse(call.request.newConfig);
|
|
229
|
+
config = __assign(__assign({}, this.config.getProperties()), config);
|
|
161
230
|
return [4 /*yield*/, this.preConfig(config)];
|
|
162
231
|
case 1:
|
|
163
232
|
config = _b.sent();
|
|
233
|
+
previousConfig = this.config.getProperties();
|
|
164
234
|
try {
|
|
165
235
|
this.config.load(config).validate();
|
|
236
|
+
config = this.config.getProperties();
|
|
166
237
|
}
|
|
167
238
|
catch (e) {
|
|
239
|
+
this.config.load(previousConfig);
|
|
168
240
|
return [2 /*return*/, callback({
|
|
169
241
|
code: grpc_js_1.status.INVALID_ARGUMENT,
|
|
170
|
-
message: 'Invalid configuration values',
|
|
242
|
+
message: 'Invalid configuration values: ' + e.message,
|
|
171
243
|
})];
|
|
172
244
|
}
|
|
173
|
-
|
|
174
|
-
case 2:
|
|
175
|
-
moduleConfig = _b.sent();
|
|
176
|
-
ConfigController_1.ConfigController.getInstance().config = moduleConfig;
|
|
245
|
+
ConfigController_1.ConfigController.getInstance().config = config;
|
|
177
246
|
return [4 /*yield*/, this.onConfig()];
|
|
178
|
-
case
|
|
247
|
+
case 2:
|
|
179
248
|
_b.sent();
|
|
180
|
-
(_a = this.grpcSdk.bus) === null || _a === void 0 ? void 0 : _a.publish(lodash_1.kebabCase(this.name) + ':config:update', JSON.stringify(
|
|
181
|
-
return [2 /*return*/, callback(null, { updatedConfig: JSON.stringify(
|
|
182
|
-
case
|
|
249
|
+
(_a = this.grpcSdk.bus) === null || _a === void 0 ? void 0 : _a.publish(lodash_1.kebabCase(this.name) + ':config:update', JSON.stringify(config));
|
|
250
|
+
return [2 /*return*/, callback(null, { updatedConfig: JSON.stringify(config) })];
|
|
251
|
+
case 3:
|
|
183
252
|
e_1 = _b.sent();
|
|
184
253
|
return [2 /*return*/, callback({ code: grpc_js_1.status.INTERNAL, message: e_1.message })];
|
|
185
|
-
case
|
|
254
|
+
case 4: return [2 /*return*/];
|
|
186
255
|
}
|
|
187
256
|
});
|
|
188
257
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagedModule.js","sourceRoot":"","sources":["../../src/classes/ManagedModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ManagedModule.js","sourceRoot":"","sources":["../../src/classes/ManagedModule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAKY;AACZ,+DAA8D;AAC9D,uDAAsD;AACtD,iCAAmC;AACnC,yCAAuC;AAGvC;IAA+C,iCAAoB;IAIjE,uBAAsB,UAAkB;eACtC,kBAAM,UAAU,CAAC;IACnB,CAAC;IAED,sBAAI,+BAAI;aAAR;YACE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;;;OAAA;IAED;;;OAGG;IACH,kCAAU,GAAV,UAAW,OAAuB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACG,sCAAc,GAApB;;;;KAAyB;IAEzB;;;;;OAKG;IACG,qCAAa,GAAnB;;;;KAAwB;IAExB;;OAEG;IACG,mCAAW,GAAjB;;;;KAAsB;IAEtB;;;;;OAKG;IACG,kCAAU,GAAhB;;;;KAAqB;IAErB;;;;;OAKG;IACG,iCAAS,GAAf,UAAgB,MAAS;;;gBACvB,sBAAO,MAAM,EAAC;;;KACf;IAED;;;;;;OAMG;IACG,gCAAQ,GAAd;;;;KAAmB;IAEb,wCAAgB,GAAtB,UAAuB,WAAoB;;;;;;wBACzC,IAAI,CAAC,UAAU,GAAG,IAAI,cAAU,CAAC,WAAW,CAAC,CAAC;wBAC9C,KAAA,IAAI,CAAA;wBAAU,qBAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAA;;wBAArD,GAAK,KAAK,GAAG,CAAC,SAAuC,CAAC,CAAC,QAAQ,EAAE,CAAC;;;;;KACnE;IAEK,uCAAe,GAArB;;;;;6BACM,IAAI,CAAC,OAAO,EAAZ,wBAAY;wBACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CACzD,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAC/C,CAAC;wBACF,qBAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,CACvB,EAAA;;wBAJD,SAIC,CAAC;wBACF,qBAAM,IAAI,CAAC,qBAAqB,EAAE,EAAA;;wBAAlC,SAAkC,CAAC;wBACnC,qBAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAA;;wBAA7B,SAA6B,CAAC;wBAC9B,WAAc,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;;;;;;KAEtD;IAEK,iCAAS,GAAf,UAAgB,IAAsB,EAAE,QAA2B;;;;;;;;wBAE/D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;4BAChB,sBAAO,QAAQ,CAAC;oCACd,IAAI,EAAE,gBAAM,CAAC,gBAAgB;oCAC7B,OAAO,EAAE,4BAA4B;iCACtC,CAAC,EAAC;yBACJ;wBACG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;wBAChD,MAAM,yBAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAK,MAAM,CAAE,CAAC;wBAC9C,qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAA;;wBAArC,MAAM,GAAG,SAA4B,CAAC;wBAChC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;wBACnD,IAAI;4BACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;4BACpC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;yBACtC;wBAAC,OAAO,CAAC,EAAE;4BACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;4BACjC,sBAAO,QAAQ,CAAC;oCACd,IAAI,EAAE,gBAAM,CAAC,gBAAgB;oCAC7B,OAAO,EAAE,gCAAgC,GAAG,CAAC,CAAC,OAAO;iCACtD,CAAC,EAAC;yBACJ;wBACD,mCAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;wBAC/C,qBAAM,IAAI,CAAC,QAAQ,EAAE,EAAA;;wBAArB,SAAqB,CAAC;wBACtB,MAAA,IAAI,CAAC,OAAO,CAAC,GAAG,0CAAE,OAAO,CACvB,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,EACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;wBACF,sBAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAC;;;wBAEjE,sBAAO,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAC,CAAC,OAAO,EAAE,CAAC,EAAC;;;;;KAElE;IAEe,oCAAY,GAA5B,UAA6B,MAAU;;;gBACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;iBAC/C;gBACD,IAAI,MAAM,EAAE;oBACV,mCAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC/C,sBAAO,OAAO,CAAC,OAAO,EAAE,EAAC;iBAC1B;qBAAM;oBACL,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,MAAS;4BACvD,mCAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;wBACjD,CAAC,CAAC,EAAC;iBACJ;;;;KACF;IACH,oBAAC;AAAD,CAAC,AAxID,CAA+C,2CAAoB,GAwIlE;AAxIqB,sCAAa"}
|
|
@@ -104,13 +104,14 @@ var ModuleManager = /** @class */ (function () {
|
|
|
104
104
|
return [3 /*break*/, 6];
|
|
105
105
|
case 5:
|
|
106
106
|
err_1 = _a.sent();
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
__1.default.Logger.error('Failed to initialize server');
|
|
108
|
+
__1.default.Logger.error(err_1);
|
|
109
109
|
process.exit(-1);
|
|
110
110
|
return [3 /*break*/, 6];
|
|
111
111
|
case 6: return [4 /*yield*/, this.postRegisterLifecycle().catch(function (err) {
|
|
112
|
-
|
|
113
|
-
|
|
112
|
+
__1.default.Logger.error('Failed to activate module');
|
|
113
|
+
__1.default.Logger.error(err);
|
|
114
|
+
process.exit(-1);
|
|
114
115
|
})];
|
|
115
116
|
case 7:
|
|
116
117
|
_a.sent();
|
|
@@ -148,39 +149,25 @@ var ModuleManager = /** @class */ (function () {
|
|
|
148
149
|
};
|
|
149
150
|
ModuleManager.prototype.postRegisterLifecycle = function () {
|
|
150
151
|
return __awaiter(this, void 0, void 0, function () {
|
|
151
|
-
var config
|
|
152
|
+
var config;
|
|
152
153
|
return __generator(this, function (_a) {
|
|
153
154
|
switch (_a.label) {
|
|
154
155
|
case 0: return [4 /*yield*/, this.module.onRegister()];
|
|
155
156
|
case 1:
|
|
156
157
|
_a.sent();
|
|
157
|
-
if (!this.module.config) return [3 /*break*/,
|
|
158
|
-
|
|
159
|
-
_a.label = 2;
|
|
158
|
+
if (!this.module.config) return [3 /*break*/, 4];
|
|
159
|
+
return [4 /*yield*/, this.grpcSdk.config.configure(this.module.config.getProperties(), this.module.name)];
|
|
160
160
|
case 2:
|
|
161
|
-
_a.trys.push([2, 4, , 6]);
|
|
162
|
-
return [4 /*yield*/, this.grpcSdk.config.get(this.module.name)];
|
|
163
|
-
case 3:
|
|
164
|
-
_a.sent();
|
|
165
|
-
return [3 /*break*/, 6];
|
|
166
|
-
case 4:
|
|
167
|
-
e_1 = _a.sent();
|
|
168
|
-
return [4 /*yield*/, this.grpcSdk.config.updateConfig(this.module.config.getProperties(), this.module.name)];
|
|
169
|
-
case 5:
|
|
170
|
-
_a.sent();
|
|
171
|
-
return [3 /*break*/, 6];
|
|
172
|
-
case 6: return [4 /*yield*/, this.grpcSdk.config.addFieldsToConfig(this.module.config.getProperties(), this.module.name)];
|
|
173
|
-
case 7:
|
|
174
161
|
config = _a.sent();
|
|
175
162
|
__1.ConfigController.getInstance();
|
|
176
163
|
if (config)
|
|
177
164
|
__1.ConfigController.getInstance().config = config;
|
|
178
|
-
if (!(!config || config.active)) return [3 /*break*/,
|
|
165
|
+
if (!(!config || config.active || !config.hasOwnProperty('active'))) return [3 /*break*/, 4];
|
|
179
166
|
return [4 /*yield*/, this.module.onConfig()];
|
|
180
|
-
case
|
|
167
|
+
case 3:
|
|
181
168
|
_a.sent();
|
|
182
|
-
_a.label =
|
|
183
|
-
case
|
|
169
|
+
_a.label = 4;
|
|
170
|
+
case 4: return [2 /*return*/];
|
|
184
171
|
}
|
|
185
172
|
});
|
|
186
173
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleManager.js","sourceRoot":"","sources":["../../src/classes/ModuleManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAqE;AAErE;IAKE,uBAA6B,MAAwB;QAArD,iBAqBC;QArB4B,WAAM,GAAN,MAAM,CAAkB;QACnD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;SAC5E;QACD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU;YAC1C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU;YACvC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI;YACF,IAAI,CAAC,OAAO,GAAG,IAAI,WAAc,CAC/B,OAAO,CAAC,GAAG,CAAC,cAAc,EAC1B;gBACE,OAAO,KAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACjC,CAAC,EACD,MAAM,CAAC,IAAI,CACZ,CAAC;SACH;QAAC,WAAM;YACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;IACH,CAAC;IAEK,6BAAK,GAAX;;;;;4BACE,qBAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAA;;wBAA/B,SAA+B,CAAC;wBAChC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC/B,IAAI,GAAG,IAAI,CAAC;;;;wBAEhB,qBAAM,IAAI,CAAC,oBAAoB,EAAE,EAAA;;wBAAjC,SAAiC,CAAC;wBAC5B,GAAG,GACP,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM;4BACnC,CAAC,CAAI,IAAI,CAAC,MAAM,CAAC,IAAI,MAAG;4BACxB,CAAC,CAAI,IAAI,CAAC,cAAc,MAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBACpD,qBAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CACtC,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,GAAG,EACH,IAAI,CAAC,MAAM,CAAC,WAAW,CACxB,EAAA;;wBAJD,SAIC,CAAC;;;;wBAEF,
|
|
1
|
+
{"version":3,"file":"ModuleManager.js","sourceRoot":"","sources":["../../src/classes/ModuleManager.ts"],"names":[],"mappings":"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"}
|