@webda/core 1.2.1 → 1.6.0-beta.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/lib/application.d.ts +3 -0
- package/lib/application.js +26 -22
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +185 -2
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +62 -6
- package/lib/core.js +127 -86
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +151 -6
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +42 -3
- package/lib/models/aclmodel.js +58 -3
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +46 -0
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +58 -10
- package/lib/models/coremodel.js +39 -32
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +68 -6
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/ident.d.ts +8 -2
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +16 -0
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +1 -1
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +22 -19
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +2 -0
- package/lib/models/user.js +4 -2
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +9 -2
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +63 -0
- package/lib/queues/filequeue.js +161 -0
- package/lib/queues/filequeue.js.map +1 -0
- package/lib/queues/filequeue.spec.d.ts +1 -0
- package/lib/queues/filequeue.spec.js +90 -0
- package/lib/queues/filequeue.spec.js.map +1 -0
- package/lib/queues/memoryqueue.d.ts +18 -4
- package/lib/queues/memoryqueue.js +20 -13
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +142 -39
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/pubsubservice.d.ts +27 -0
- package/lib/queues/pubsubservice.js +21 -0
- package/lib/queues/pubsubservice.js.map +1 -0
- package/lib/queues/queue.spec.js +16 -7
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.d.ts +108 -13
- package/lib/queues/queueservice.js +100 -36
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.js +4 -6
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +27 -2
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +110 -5
- package/lib/services/asyncevents.js +134 -39
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/asyncevents.spec.js +58 -4
- package/lib/services/asyncevents.spec.js.map +1 -1
- package/lib/services/authentication.d.ts +57 -5
- package/lib/services/authentication.js +93 -84
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +118 -82
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +175 -48
- package/lib/services/binary.js +205 -170
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +22 -3
- package/lib/services/binary.spec.js +327 -22
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/configuration.d.ts +94 -13
- package/lib/services/configuration.js +98 -28
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +40 -1
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +4 -4
- package/lib/services/cron.js +37 -53
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.d.ts +1 -0
- package/lib/services/cron.spec.js +76 -0
- package/lib/services/cron.spec.js.map +1 -0
- package/lib/services/debugmailer.spec.js +18 -4
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.js +22 -13
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.d.ts +1 -0
- package/lib/services/echo.spec.js +52 -0
- package/lib/services/echo.spec.js.map +1 -0
- package/lib/services/filebinary.d.ts +16 -9
- package/lib/services/filebinary.js +58 -73
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +8 -1
- package/lib/services/filebinary.spec.js +133 -7
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +9 -3
- package/lib/services/fileconfiguration.js +13 -6
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +100 -5
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.d.ts +8 -2
- package/lib/services/kubernetesconfiguration.js +16 -5
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +53 -16
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +11 -2
- package/lib/services/mailer.js +28 -34
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +69 -23
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +5 -2
- package/lib/services/oauth.js +22 -8
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +33 -3
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/resource.spec.js +39 -2
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +16 -0
- package/lib/services/service.js +47 -6
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.d.ts +1 -0
- package/lib/services/service.spec.js +119 -0
- package/lib/services/service.spec.js.map +1 -0
- package/lib/stores/aggregator.d.ts +43 -0
- package/lib/stores/aggregator.js +106 -0
- package/lib/stores/aggregator.js.map +1 -0
- package/lib/stores/file.d.ts +49 -11
- package/lib/stores/file.js +84 -81
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.d.ts +6 -1
- package/lib/stores/file.spec.js +134 -9
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +151 -0
- package/lib/stores/mapper.js +294 -0
- package/lib/stores/mapper.js.map +1 -0
- package/lib/stores/mapper.spec.d.ts +1 -0
- package/lib/stores/mapper.spec.js +55 -0
- package/lib/stores/mapper.spec.js.map +1 -0
- package/lib/stores/memory.d.ts +52 -7
- package/lib/stores/memory.js +71 -33
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +6 -1
- package/lib/stores/memory.spec.js +65 -4
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +263 -126
- package/lib/stores/store.js +285 -493
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +20 -0
- package/lib/stores/store.spec.js +242 -18
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/test.d.ts +1 -7
- package/lib/test.js +3 -12
- package/lib/test.js.map +1 -1
- package/lib/utils/abstractdeployer.spec.d.ts +1 -0
- package/lib/utils/abstractdeployer.spec.js +23 -0
- package/lib/utils/abstractdeployer.spec.js.map +1 -0
- package/lib/utils/context.d.ts +25 -2
- package/lib/utils/context.js +33 -12
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +81 -11
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +12 -0
- package/lib/utils/cookie.js +13 -1
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +42 -11
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/logger.d.ts +23 -4
- package/lib/utils/logger.js +29 -6
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js +8 -0
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.d.ts +5 -5
- package/lib/utils/serializers.js +10 -10
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +41 -16
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/waiter.d.ts +59 -1
- package/lib/utils/waiter.js +86 -3
- package/lib/utils/waiter.js.map +1 -1
- package/lib/utils/waiter.spec.js +48 -4
- package/lib/utils/waiter.spec.js.map +1 -1
- package/package.json +16 -11
- package/test/badapp/package.json +4 -0
- package/test/badapp/webda.config.json +1 -0
- package/test/cachedapp/webda.config.json +7 -0
- package/test/config-file-no-reload.json +70 -0
- package/test/config-file-reload.json +7 -1
- package/test/config-kube-reload.json +7 -1
- package/test/config.json +45 -21
- package/test/config.old-default.json +0 -16
- package/test/config.old.json +0 -16
- package/test/deployments/invalid.json +1 -0
- package/test/moddas/fakeservice.js +5 -0
- package/test/models/ident.js +10 -14
- package/test/models/task.js +2 -4
|
@@ -17,7 +17,7 @@ class ConfigurationServiceParameters extends service_1.ServiceParameters {
|
|
|
17
17
|
constructor(params) {
|
|
18
18
|
var _a;
|
|
19
19
|
super(params);
|
|
20
|
-
|
|
20
|
+
(_a = this.checkInterval) !== null && _a !== void 0 ? _a : (this.checkInterval = 3600);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
exports.ConfigurationServiceParameters = ConfigurationServiceParameters;
|
|
@@ -27,12 +27,18 @@ exports.ConfigurationServiceParameters = ConfigurationServiceParameters;
|
|
|
27
27
|
*
|
|
28
28
|
* Load configuration from another service
|
|
29
29
|
*
|
|
30
|
+
* If the result contains `webda.services` in his object then webda configuration will
|
|
31
|
+
* be dynamically reloaded
|
|
32
|
+
*
|
|
30
33
|
* @category CoreServices
|
|
31
34
|
*/
|
|
32
35
|
class ConfigurationService extends service_1.Service {
|
|
33
36
|
constructor() {
|
|
34
37
|
super(...arguments);
|
|
35
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Watchs for configuration update
|
|
40
|
+
*/
|
|
41
|
+
this.watchs = [];
|
|
36
42
|
}
|
|
37
43
|
/**
|
|
38
44
|
* Load parameters
|
|
@@ -43,6 +49,9 @@ class ConfigurationService extends service_1.Service {
|
|
|
43
49
|
loadParameters(params) {
|
|
44
50
|
return new ConfigurationServiceParameters(params);
|
|
45
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* @inheritdoc
|
|
54
|
+
*/
|
|
46
55
|
init() {
|
|
47
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
57
|
// Check interval by default every hour
|
|
@@ -50,60 +59,108 @@ class ConfigurationService extends service_1.Service {
|
|
|
50
59
|
throw new core_1.WebdaError("CONFIGURATION_SOURCE_MISSING", "Need a source for ConfigurationService");
|
|
51
60
|
}
|
|
52
61
|
let source = this.parameters.source.split(":");
|
|
53
|
-
this.
|
|
54
|
-
if (!this.
|
|
62
|
+
this.sourceService = this.getService(source[0]);
|
|
63
|
+
if (!this.sourceService) {
|
|
55
64
|
throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", 'Need a valid service for source ("sourceService:sourceId")');
|
|
56
65
|
}
|
|
57
|
-
this.
|
|
58
|
-
if (!this.
|
|
66
|
+
this.sourceId = source[1];
|
|
67
|
+
if (!this.sourceId) {
|
|
59
68
|
throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", 'Need a valid source ("sourceService:sourceId")');
|
|
60
69
|
}
|
|
61
|
-
if (!this.
|
|
62
|
-
throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", `Service ${source[0]} is not implementing ConfigurationProvider interface`);
|
|
70
|
+
if (!this.sourceService.getConfiguration) {
|
|
71
|
+
throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", `Service '${source[0]}' is not implementing ConfigurationProvider interface`);
|
|
63
72
|
}
|
|
64
|
-
this.
|
|
65
|
-
yield this.
|
|
66
|
-
if (!this.
|
|
67
|
-
this.
|
|
73
|
+
this.serializedConfiguration = JSON.stringify(this.parameters.default);
|
|
74
|
+
yield this.checkUpdate();
|
|
75
|
+
if (!this.sourceService.canTriggerConfiguration(this.sourceId, this.checkUpdate.bind(this, true))) {
|
|
76
|
+
this.interval = setInterval(this.checkUpdate.bind(this), 1000);
|
|
68
77
|
}
|
|
69
78
|
// Add webda info
|
|
70
79
|
this.watch("$.webda.services", this._webda.reinit.bind(this._webda));
|
|
71
80
|
});
|
|
72
81
|
}
|
|
73
|
-
|
|
74
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Watch a specific configuration modification
|
|
84
|
+
*
|
|
85
|
+
* @param jsonPath JSON Path to the object to watch
|
|
86
|
+
* @param callback Method to call with the updated version
|
|
87
|
+
* @param defaultValue Default value of the jsonPath if it does not exist
|
|
88
|
+
*/
|
|
89
|
+
watch(jsonPath, callback, defaultValue = undefined) {
|
|
90
|
+
this.watchs.push({ path: jsonPath, callback, defaultValue });
|
|
75
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Clear the check interval if exist
|
|
94
|
+
*/
|
|
76
95
|
stop() {
|
|
77
|
-
|
|
78
|
-
|
|
96
|
+
if (this.interval !== undefined) {
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
clearInterval(this.interval);
|
|
99
|
+
}
|
|
79
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
*
|
|
103
|
+
* @returns current configuration
|
|
104
|
+
*/
|
|
80
105
|
getConfiguration() {
|
|
81
106
|
return this.configuration || {};
|
|
82
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* We cannot reinit the configurationService by itself
|
|
110
|
+
*
|
|
111
|
+
* @inheritdoc
|
|
112
|
+
*/
|
|
83
113
|
reinit(config) {
|
|
84
114
|
return __awaiter(this, void 0, void 0, function* () {
|
|
85
115
|
// Need to prevent any reinit
|
|
86
116
|
});
|
|
87
117
|
}
|
|
88
|
-
|
|
118
|
+
/**
|
|
119
|
+
* Load the configuration by calling the source service with the source id
|
|
120
|
+
* @returns
|
|
121
|
+
*/
|
|
122
|
+
loadConfiguration() {
|
|
123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
return this.sourceService.getConfiguration(this.sourceId);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
initConfiguration() {
|
|
89
128
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
|
|
129
|
+
throw new Error("ConfigurationService with dependencies cannot be used");
|
|
91
130
|
});
|
|
92
131
|
}
|
|
93
|
-
|
|
132
|
+
/**
|
|
133
|
+
* Checking for configuration updates
|
|
134
|
+
*
|
|
135
|
+
* If configuration is updated, it will trigger all the watchs accordingly
|
|
136
|
+
*
|
|
137
|
+
* @returns
|
|
138
|
+
*/
|
|
139
|
+
checkUpdate(dynamic = false) {
|
|
94
140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
95
141
|
// If the ConfigurationProvider cannot trigger we check at interval
|
|
96
|
-
if (this.
|
|
142
|
+
if (!dynamic && this.interval && this.nextCheck > Date.now()) {
|
|
97
143
|
return;
|
|
144
|
+
}
|
|
98
145
|
this.log("DEBUG", "Refreshing configuration");
|
|
99
|
-
|
|
100
|
-
|
|
146
|
+
const newConfig = (yield this.loadConfiguration()) || this.parameters.default;
|
|
147
|
+
const serializedConfig = JSON.stringify(newConfig);
|
|
148
|
+
if (serializedConfig !== this.serializedConfiguration) {
|
|
101
149
|
this.emit("Configuration.Applying");
|
|
102
150
|
this.log("DEBUG", "Apply new configuration");
|
|
103
|
-
this.
|
|
151
|
+
this.serializedConfiguration = serializedConfig;
|
|
104
152
|
this.configuration = newConfig;
|
|
153
|
+
// Add the webda parameters logical
|
|
154
|
+
if (this.configuration.webda && this.configuration.webda.services) {
|
|
155
|
+
// Merge parameters with each service
|
|
156
|
+
for (let i in this.configuration.webda.services) {
|
|
157
|
+
if (this.getWebda().getService(i)) {
|
|
158
|
+
this.configuration.webda.services[i] = this.getWebda().getServiceParams(i, this.configuration.webda);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
105
162
|
let promises = [];
|
|
106
|
-
this.
|
|
163
|
+
this.watchs.forEach(w => {
|
|
107
164
|
this.log("TRACE", "Apply new configuration value", jsonpath.query(newConfig, w.path).pop() || w.defaultValue);
|
|
108
165
|
let p = w.callback(jsonpath.query(newConfig, w.path).pop() || w.defaultValue);
|
|
109
166
|
if (p) {
|
|
@@ -114,14 +171,27 @@ class ConfigurationService extends service_1.Service {
|
|
|
114
171
|
this.emit("Configuration.Applied");
|
|
115
172
|
}
|
|
116
173
|
// If the ConfigurationProvider cannot trigger we check at interval
|
|
117
|
-
if (this.
|
|
118
|
-
this.
|
|
174
|
+
if (this.interval) {
|
|
175
|
+
this.updateNextCheck();
|
|
119
176
|
this.log("DEBUG", "Next configuration refresh in", this.parameters.checkInterval, "s");
|
|
120
177
|
}
|
|
121
178
|
});
|
|
122
179
|
}
|
|
123
|
-
|
|
124
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Update the next check time
|
|
182
|
+
*/
|
|
183
|
+
updateNextCheck() {
|
|
184
|
+
this.nextCheck = Date.now() + this.parameters.checkInterval * 1000;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Read the file and store it
|
|
188
|
+
*/
|
|
189
|
+
loadAndStoreConfiguration() {
|
|
190
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
+
let res = yield this.loadConfiguration();
|
|
192
|
+
this.serializedConfiguration = JSON.stringify(res);
|
|
193
|
+
return res;
|
|
194
|
+
});
|
|
125
195
|
}
|
|
126
196
|
}
|
|
127
197
|
exports.default = ConfigurationService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/services/configuration.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAuD;AACvD,kCAAqC;AACrC,qCAAqC;
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/services/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
const assert = require("assert");
|
|
19
19
|
const mocha_1 = require("@testdeck/mocha");
|
|
20
20
|
const test_1 = require("../test");
|
|
21
|
+
const configuration_1 = require("./configuration");
|
|
22
|
+
const sinon_1 = require("sinon");
|
|
21
23
|
let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.WebdaTest {
|
|
22
24
|
getTestConfiguration() {
|
|
23
25
|
return __dirname + "/../../test/config-reload.json";
|
|
@@ -38,6 +40,23 @@ let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.Web
|
|
|
38
40
|
this.webda.getService("ConfigurationService").stop();
|
|
39
41
|
});
|
|
40
42
|
}
|
|
43
|
+
init() {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
let service = new configuration_1.ConfigurationService(this.webda, "name", {});
|
|
46
|
+
assert.deepStrictEqual(service.getConfiguration(), {});
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
service.configuration = { test: "plop" };
|
|
49
|
+
assert.deepStrictEqual(service.getConfiguration(), { test: "plop" });
|
|
50
|
+
yield assert.rejects(() => service.init(), /Need a source for ConfigurationService/);
|
|
51
|
+
service.getParameters().source = "none:plopId";
|
|
52
|
+
yield assert.rejects(() => service.init(), /Need a valid service for source/);
|
|
53
|
+
service.getParameters().source = "DefinedMailer";
|
|
54
|
+
yield assert.rejects(() => service.init(), /Need a valid source/);
|
|
55
|
+
service.getParameters().source = "DefinedMailer:none";
|
|
56
|
+
yield assert.rejects(() => service.init(), /Service 'DefinedMailer' is not implementing ConfigurationProvider interface/);
|
|
57
|
+
yield assert.rejects(() => service.initConfiguration(), /ConfigurationService with dependencies cannot be used/);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
41
60
|
initialLoad() {
|
|
42
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
62
|
assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test");
|
|
@@ -46,7 +65,13 @@ let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.Web
|
|
|
46
65
|
uuid: "test",
|
|
47
66
|
webda: {
|
|
48
67
|
services: {
|
|
49
|
-
|
|
68
|
+
Authentication: {
|
|
69
|
+
providers: {
|
|
70
|
+
email: {
|
|
71
|
+
text: "Plop"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
50
75
|
}
|
|
51
76
|
}
|
|
52
77
|
};
|
|
@@ -57,9 +82,23 @@ let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.Web
|
|
|
57
82
|
}));
|
|
58
83
|
assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Plop");
|
|
59
84
|
assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer");
|
|
85
|
+
let service = this.webda.getService("ConfigurationService");
|
|
86
|
+
// @ts-ignore
|
|
87
|
+
yield service.checkUpdate();
|
|
88
|
+
let mock = (0, sinon_1.stub)(service, "loadConfiguration").callsFake(() => { });
|
|
89
|
+
// @ts-ignore
|
|
90
|
+
service.nextCheck = Date.now() + 86400000;
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
service.interval = 1;
|
|
93
|
+
// @ts-ignore
|
|
94
|
+
yield service.checkUpdate();
|
|
95
|
+
assert.strictEqual(mock.callCount, 0);
|
|
60
96
|
});
|
|
61
97
|
}
|
|
62
98
|
};
|
|
99
|
+
__decorate([
|
|
100
|
+
mocha_1.test
|
|
101
|
+
], ConfigurationServiceTest.prototype, "init", null);
|
|
63
102
|
__decorate([
|
|
64
103
|
mocha_1.test
|
|
65
104
|
], ConfigurationServiceTest.prototype, "initialLoad", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.spec.js","sourceRoot":"","sources":["../../src/services/configuration.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAG9C,kCAAoC;
|
|
1
|
+
{"version":3,"file":"configuration.spec.js","sourceRoot":"","sources":["../../src/services/configuration.spec.ts"],"names":[],"mappings":"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"}
|
package/lib/services/cron.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Service } from "./service";
|
|
2
|
-
import { ModdaDefinition } from "..";
|
|
2
|
+
import { ModdaDefinition, CancelablePromise } from "..";
|
|
3
3
|
/**
|
|
4
4
|
* Cron item
|
|
5
5
|
*/
|
|
@@ -33,7 +33,7 @@ export declare class CronDefinition {
|
|
|
33
33
|
* @param method
|
|
34
34
|
* @param description
|
|
35
35
|
*/
|
|
36
|
-
constructor(cron: string, args
|
|
36
|
+
constructor(cron: string, args?: any[], serviceName?: string, method?: string, description?: string);
|
|
37
37
|
toString(): string;
|
|
38
38
|
}
|
|
39
39
|
declare class CronService extends Service {
|
|
@@ -60,8 +60,8 @@ declare class CronService extends Service {
|
|
|
60
60
|
args?: any[];
|
|
61
61
|
cb?: () => void;
|
|
62
62
|
}[];
|
|
63
|
-
work(annotations?: string):
|
|
64
|
-
run(annotations?: boolean):
|
|
63
|
+
work(annotations?: string): CancelablePromise;
|
|
64
|
+
run(annotations?: boolean): CancelablePromise;
|
|
65
65
|
schedule(cron: string, cb: () => any, description?: string): void;
|
|
66
66
|
/**
|
|
67
67
|
* @inheritdoc
|
package/lib/services/cron.js
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
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
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.CronService = exports.Cron = exports.CronDefinition = void 0;
|
|
13
4
|
const crontab = require("node-cron");
|
|
14
5
|
const service_1 = require("./service");
|
|
6
|
+
const __1 = require("..");
|
|
15
7
|
/**
|
|
16
8
|
* Cron item
|
|
17
9
|
*/
|
|
@@ -24,7 +16,7 @@ class CronDefinition {
|
|
|
24
16
|
* @param method
|
|
25
17
|
* @param description
|
|
26
18
|
*/
|
|
27
|
-
constructor(cron, args, serviceName = "", method = "", description = "") {
|
|
19
|
+
constructor(cron, args = [], serviceName = "", method = "", description = "") {
|
|
28
20
|
this.cron = cron;
|
|
29
21
|
this.serviceName = serviceName;
|
|
30
22
|
this.method = method;
|
|
@@ -79,50 +71,44 @@ class CronService extends service_1.Service {
|
|
|
79
71
|
return this.crons;
|
|
80
72
|
}
|
|
81
73
|
work(annotations = "true") {
|
|
82
|
-
return
|
|
83
|
-
yield this.run(annotations === "true");
|
|
84
|
-
});
|
|
74
|
+
return this.run(annotations === "true");
|
|
85
75
|
}
|
|
86
76
|
run(annotations = true) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
77
|
+
this.log("INFO", "Running crontab with" + (annotations ? "" : "out"), "annotations");
|
|
78
|
+
// Load all annotations
|
|
79
|
+
if (annotations) {
|
|
80
|
+
this.addAnnotations();
|
|
81
|
+
}
|
|
82
|
+
this.enable = true;
|
|
83
|
+
// Run schedule
|
|
84
|
+
this.crons.forEach(i => {
|
|
85
|
+
if (i.cb) {
|
|
86
|
+
this.schedule(i.cron, i.cb);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.schedule(i.cron, () => {
|
|
90
|
+
this.getService(i.serviceName)[i.method](...i.args);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
let msgs = [];
|
|
95
|
+
// Display before
|
|
96
|
+
this.crons.forEach(c => {
|
|
97
|
+
if (c.cb) {
|
|
98
|
+
msgs.push(`[NativeCode:${c.context || ""}]`);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
msgs.push(`${c.serviceName}.${c.method}(${c.args.length ? "..." + c.args : ""})`);
|
|
92
102
|
}
|
|
93
|
-
this.enable = true;
|
|
94
|
-
// Run schedule
|
|
95
|
-
this.crons.forEach(i => {
|
|
96
|
-
if (i.cb) {
|
|
97
|
-
this.schedule(i.cron, i.cb);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
this.schedule(i.cron, () => {
|
|
101
|
-
this.getService(i.serviceName)[i.method](...i.args);
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
let msgs = [];
|
|
106
|
-
// Display before
|
|
107
|
-
this.crons.forEach(c => {
|
|
108
|
-
if (c.cb) {
|
|
109
|
-
msgs.push(`[NativeCode:${c.context || ""}]`);
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
msgs.push(`${c.serviceName}.${c.method}(${c.args.length ? "..." + c.args : ""})`);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
let cronPad = Math.max(...this.crons.map(c => c.cron.length));
|
|
116
|
-
let servicePad = Math.max(...msgs.map(c => c.length));
|
|
117
|
-
this.crons.forEach((c, i) => {
|
|
118
|
-
this.log("INFO", `${c.cron.padEnd(cronPad)} : ${msgs[i].padEnd(servicePad)}${c.description ? " # " + c.description : ""}`);
|
|
119
|
-
});
|
|
120
|
-
// Remove from memory
|
|
121
|
-
this.crons = [];
|
|
122
|
-
return new Promise(resolve => {
|
|
123
|
-
// Never ending promise
|
|
124
|
-
});
|
|
125
103
|
});
|
|
104
|
+
let cronPad = Math.max(...this.crons.map(c => c.cron.length));
|
|
105
|
+
let servicePad = Math.max(...msgs.map(c => c.length));
|
|
106
|
+
this.crons.forEach((c, i) => {
|
|
107
|
+
this.log("INFO", `${c.cron.padEnd(cronPad)} : ${msgs[i].padEnd(servicePad)}${c.description ? " # " + c.description : ""}`);
|
|
108
|
+
});
|
|
109
|
+
// Remove from memory
|
|
110
|
+
this.crons = [];
|
|
111
|
+
return new __1.CancelablePromise();
|
|
126
112
|
}
|
|
127
113
|
schedule(cron, cb, description = "") {
|
|
128
114
|
if (this.enable) {
|
|
@@ -136,9 +122,7 @@ class CronService extends service_1.Service {
|
|
|
136
122
|
catch (err) {
|
|
137
123
|
// Based on stack trace (not super clean)
|
|
138
124
|
let info = err.stack.split("\n")[2].match(/\((.*)\)/);
|
|
139
|
-
|
|
140
|
-
context = info[1].replace(process.cwd() + "/", "");
|
|
141
|
-
}
|
|
125
|
+
context = info[1].replace(process.cwd() + "/", "");
|
|
142
126
|
}
|
|
143
127
|
this.crons.push({ cron, cb, description, context });
|
|
144
128
|
}
|
package/lib/services/cron.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const assert = require("assert");
|
|
10
|
+
const mocha_1 = require("@testdeck/mocha");
|
|
11
|
+
const test_1 = require("../test");
|
|
12
|
+
const __1 = require("..");
|
|
13
|
+
const crontab = require("node-cron");
|
|
14
|
+
const sinon = require("sinon");
|
|
15
|
+
class MyService extends __1.Service {
|
|
16
|
+
test() {
|
|
17
|
+
// Empty one
|
|
18
|
+
}
|
|
19
|
+
test2(myArg) { }
|
|
20
|
+
}
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, __1.Cron)("0/15 * * * *", "plop")
|
|
23
|
+
], MyService.prototype, "test", null);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, __1.Cron)("0/25 * * * *", undefined, "myArg")
|
|
26
|
+
], MyService.prototype, "test2", null);
|
|
27
|
+
let CronServiceTest = class CronServiceTest extends test_1.WebdaTest {
|
|
28
|
+
annotations() {
|
|
29
|
+
this.registerService("myService", new MyService(this.webda, "myService", {}));
|
|
30
|
+
let def = new __1.CronDefinition("0/15 * * * *", [], "myService", "test", "plop");
|
|
31
|
+
let service = new __1.CronService(this.webda, "cron", {});
|
|
32
|
+
service.schedule("* * * * *", () => { }, "mine");
|
|
33
|
+
assert.deepStrictEqual(service.getCrontab()[1], def);
|
|
34
|
+
// for cov
|
|
35
|
+
assert.deepStrictEqual(service.getCrontab()[1], def);
|
|
36
|
+
__1.CronService.getModda();
|
|
37
|
+
const cron = sinon.stub(crontab, "schedule").callsFake((cron, cb) => {
|
|
38
|
+
try {
|
|
39
|
+
cb();
|
|
40
|
+
}
|
|
41
|
+
catch (err) { }
|
|
42
|
+
});
|
|
43
|
+
try {
|
|
44
|
+
let promise = service.work();
|
|
45
|
+
promise.cancel();
|
|
46
|
+
service.enable = false;
|
|
47
|
+
service.schedule("* * * * *", () => { }, "mine");
|
|
48
|
+
service.crons[0].context = undefined;
|
|
49
|
+
promise = service.run();
|
|
50
|
+
promise.cancel();
|
|
51
|
+
promise = service.run(false);
|
|
52
|
+
promise.cancel();
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
__decorate([
|
|
59
|
+
mocha_1.test
|
|
60
|
+
], CronServiceTest.prototype, "annotations", null);
|
|
61
|
+
CronServiceTest = __decorate([
|
|
62
|
+
mocha_1.suite
|
|
63
|
+
], CronServiceTest);
|
|
64
|
+
let CronDefinitionTest = class CronDefinitionTest {
|
|
65
|
+
testString() {
|
|
66
|
+
assert.strictEqual(new __1.CronDefinition("* * * * *").toString(), "* * * * *: .()");
|
|
67
|
+
assert.strictEqual(new __1.CronDefinition("* * * * *", [{}, {}], "plop", "method", "desc").toString(), "* * * * *: plop.method([object Object],[object Object]) # desc");
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
__decorate([
|
|
71
|
+
mocha_1.test
|
|
72
|
+
], CronDefinitionTest.prototype, "testString", null);
|
|
73
|
+
CronDefinitionTest = __decorate([
|
|
74
|
+
mocha_1.suite
|
|
75
|
+
], CronDefinitionTest);
|
|
76
|
+
//# sourceMappingURL=cron.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron.spec.js","sourceRoot":"","sources":["../../src/services/cron.spec.ts"],"names":[],"mappings":";;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAC9C,kCAAoC;AACpC,0BAAgE;AAChE,qCAAqC;AACrC,+BAA+B;AAE/B,MAAM,SAAU,SAAQ,WAAO;IAE7B,IAAI;QACF,YAAY;IACd,CAAC;IAGD,KAAK,CAAC,KAAa,IAAG,CAAC;CACxB;AANC;IADC,IAAA,QAAI,EAAC,cAAc,EAAE,MAAM,CAAC;qCAG5B;AAGD;IADC,IAAA,QAAI,EAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC;sCAClB;AAGzB,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,gBAAS;IAErC,WAAW;QACT,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9E,IAAI,GAAG,GAAG,IAAI,kBAAc,CAAC,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9E,IAAI,OAAO,GAAG,IAAI,eAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,UAAU;QACV,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,eAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YAClE,IAAI;gBACF,EAAE,EAAE,CAAC;aACN;YAAC,OAAO,GAAG,EAAE,GAAE;QAClB,CAAC,CAAC,CAAC;QACH,IAAI;YACF,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;YACrC,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,CAAC,MAAM,EAAE,CAAC;SAClB;gBAAS;SACT;IACH,CAAC;CACF,CAAA;AA3BC;IADC,YAAI;kDA2BJ;AA5BG,eAAe;IADpB,aAAK;GACA,eAAe,CA6BpB;AAGD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEtB,UAAU;QACR,MAAM,CAAC,WAAW,CAAC,IAAI,kBAAc,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACjF,MAAM,CAAC,WAAW,CAChB,IAAI,kBAAc,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAC9E,gEAAgE,CACjE,CAAC;IACJ,CAAC;CACF,CAAA;AAPC;IADC,YAAI;oDAOJ;AARG,kBAAkB;IADvB,aAAK;GACA,kBAAkB,CASvB"}
|
|
@@ -5,6 +5,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
8
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
18
|
const assert = require("assert");
|
|
10
19
|
const mocha_1 = require("@testdeck/mocha");
|
|
@@ -12,10 +21,15 @@ const test_1 = require("../test");
|
|
|
12
21
|
const debugmailer_1 = require("./debugmailer");
|
|
13
22
|
let DebugMailerTest = class DebugMailerTest extends test_1.WebdaTest {
|
|
14
23
|
testSend() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
let mailer = new debugmailer_1.DebugMailer(this.webda, "test", {});
|
|
26
|
+
mailer.send({ option1: "test" });
|
|
27
|
+
assert.strictEqual(mailer.sent.length, 1);
|
|
28
|
+
assert.strictEqual(mailer.sent[0].option1, "test");
|
|
29
|
+
yield mailer.async();
|
|
30
|
+
assert.throws(() => mailer.error(), /FakeError/);
|
|
31
|
+
yield assert.rejects(() => mailer.errorAsync(), /FakeError/);
|
|
32
|
+
});
|
|
19
33
|
}
|
|
20
34
|
};
|
|
21
35
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugmailer.spec.js","sourceRoot":"","sources":["../../src/services/debugmailer.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debugmailer.spec.js","sourceRoot":"","sources":["../../src/services/debugmailer.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAC9C,kCAAoC;AACpC,+CAA4C;AAG5C,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,gBAAS;IAE/B,QAAQ;;YACZ,IAAI,MAAM,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC;KAAA;CACF,CAAA;AATC;IADC,YAAI;+CASJ;AAVG,eAAe;IADpB,aAAK;GACA,eAAe,CAWpB"}
|