@signageos/lib 23.11.0-master.4438 → 23.11.1-master.4444

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # General Library
2
2
 
3
- This repository contains all sets of generic TypeScript tools and utils for different technologies, like databases: 'MongoDB,
4
- Redis, InfluxDB', monitoring in Prometheus, wrappers and helpers for Azure SDK, Browser Storage, time management,
3
+ This repository contains all sets of generic TypeScript tools and utils for different technologies, like databases: 'MongoDB, InfluxDB',
4
+ monitoring in Prometheus, wrappers and helpers for Azure SDK, Browser Storage, time management,
5
5
  observables, async iterators and a lot more.
6
6
 
7
7
  It's published as an npm library @signageos/lib that can be used in any project that requires and is using those technologies to simplify
@@ -1,3 +1,3 @@
1
1
  import { IGetStatus } from '../status';
2
- import { IRedisConnection } from '../../Redis/redisConnectionFactory';
2
+ import { IRedisConnection } from '@signageos/redis/dist/redisConnectionFactory';
3
3
  export declare function redisStatus(connections: IRedisConnection[], serviceUid: string): IGetStatus;
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.redisStatus = redisStatus;
30
30
  var status_1 = __importDefault(require("../status"));
31
- var redisStatusCheck_1 = __importStar(require("../checks/redisStatusCheck"));
31
+ var redisStatusCheck_1 = __importStar(require("@signageos/redis/dist/StatusCheck/redisStatusCheck"));
32
32
  function redisStatus(connections, serviceUid) {
33
33
  return (0, status_1.default)(connections, redisStatusCheck_1.default, redisStatusCheck_1.REDIS_LABEL, serviceUid);
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redisStatus.js","sourceRoot":"","sources":["../../../src/HttpStatus/statuses/redisStatus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kCAEC;AAND,qDAAoD;AAEpD,6EAA+E;AAE/E,SAAgB,WAAW,CAAC,WAA+B,EAAE,UAAkB;IAC9E,OAAO,IAAA,gBAAW,EAAmB,WAAW,EAAE,0BAAoB,EAAE,8BAAW,EAAE,UAAU,CAAC,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"redisStatus.js","sourceRoot":"","sources":["../../../src/HttpStatus/statuses/redisStatus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kCAEC;AAND,qDAAoD;AAEpD,qGAAuG;AAEvG,SAAgB,WAAW,CAAC,WAA+B,EAAE,UAAkB;IAC9E,OAAO,IAAA,gBAAW,EAAmB,WAAW,EAAE,0BAAoB,EAAE,8BAAW,EAAE,UAAU,CAAC,CAAC;AAClG,CAAC"}
@@ -1,4 +1,4 @@
1
- interface PostponedAction<Type extends string> {
2
- type: Type;
3
- }
4
- export default PostponedAction;
1
+ /**
2
+ * @deprecated Use `@signageos/redis/dist/DeviceActions/PostponedAction` instead.
3
+ */
4
+ export { default } from '@signageos/redis/dist/DeviceActions/PostponedAction';
@@ -1,8 +1,4 @@
1
- import { IRedisConnection } from '../../Redis/redisConnectionFactory';
2
- import PostponedAction from './PostponedAction';
3
1
  /**
4
- * Update list of action types bound by a device and its particular socket name
2
+ * @deprecated Use `@signageos/redis/dist/DeviceActions/postponedDeviceActions` instead.
5
3
  */
6
- export declare function updateDeviceBoundActionTypes(redisConnection: IRedisConnection, deviceUid: string, socketName: string, actionTypes: string[]): Promise<void>;
7
- export declare function popDevicePostponedActionIterator(redisConnection: IRedisConnection, deviceUid: string, socketName: string): AsyncGenerator<PostponedAction<string>, void, unknown>;
8
- export declare function pushDevicePostponedAction(redisConnection: IRedisConnection, deviceUid: string, action: PostponedAction<string>): Promise<void>;
4
+ export * from '@signageos/redis/dist/DeviceActions/postponedDeviceActions';
@@ -10,324 +10,12 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
- 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;
42
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
49
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
- if (t[2]) _.ops.pop();
54
- _.trys.pop(); continue;
55
- }
56
- op = body.call(thisArg, _);
57
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
- }
60
- };
61
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
62
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
63
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
64
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
65
- return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
66
- function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
67
- function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
68
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
69
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
70
- function fulfill(value) { resume("next", value); }
71
- function reject(value) { resume("throw", value); }
72
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
73
- };
74
- var __importDefault = (this && this.__importDefault) || function (mod) {
75
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
76
15
  };
77
16
  Object.defineProperty(exports, "__esModule", { value: true });
78
- exports.updateDeviceBoundActionTypes = updateDeviceBoundActionTypes;
79
- exports.popDevicePostponedActionIterator = popDevicePostponedActionIterator;
80
- exports.pushDevicePostponedAction = pushDevicePostponedAction;
81
- var _ = __importStar(require("lodash"));
82
- var redisLock_1 = require("../../Redis/redisLock");
83
- var debug_1 = __importDefault(require("debug"));
84
- var debug = (0, debug_1.default)('@signageos/lib:Redis:DeviceActions:postponedDeviceActions');
85
17
  /**
86
- * Update list of action types bound by a device and its particular socket name
18
+ * @deprecated Use `@signageos/redis/dist/DeviceActions/postponedDeviceActions` instead.
87
19
  */
88
- function updateDeviceBoundActionTypes(redisConnection, deviceUid, socketName, actionTypes) {
89
- return __awaiter(this, void 0, void 0, function () {
90
- var releaseLock, boundKey_1, prevActionTypes, newActionTypes_1, extraActionTypes_1;
91
- return __generator(this, function (_a) {
92
- switch (_a.label) {
93
- case 0: return [4 /*yield*/, acquireDeviceLock(redisConnection, deviceUid, socketName)];
94
- case 1:
95
- releaseLock = _a.sent();
96
- _a.label = 2;
97
- case 2:
98
- _a.trys.push([2, , 8, 10]);
99
- boundKey_1 = getDeviceBoundActionTypesKey(deviceUid, socketName);
100
- debug('set device bound action types', deviceUid, socketName, actionTypes);
101
- return [4 /*yield*/, new Promise(function (resolve, reject) {
102
- redisConnection.connection.smembers(boundKey_1, function (error, result) { return (error ? reject(error) : resolve(result)); });
103
- })];
104
- case 3:
105
- prevActionTypes = _a.sent();
106
- newActionTypes_1 = _.difference(actionTypes, prevActionTypes);
107
- if (!(newActionTypes_1.length > 0)) return [3 /*break*/, 5];
108
- return [4 /*yield*/, new Promise(function (resolve, reject) {
109
- redisConnection.connection.sadd(boundKey_1, newActionTypes_1, function (error) { return (error ? reject(error) : resolve()); });
110
- })];
111
- case 4:
112
- _a.sent();
113
- _a.label = 5;
114
- case 5:
115
- extraActionTypes_1 = _.difference(prevActionTypes, actionTypes);
116
- if (!(extraActionTypes_1.length > 0)) return [3 /*break*/, 7];
117
- return [4 /*yield*/, new Promise(function (resolve, reject) {
118
- redisConnection.connection.srem(boundKey_1, extraActionTypes_1, function (error) { return (error ? reject(error) : resolve()); });
119
- })];
120
- case 6:
121
- _a.sent();
122
- _a.label = 7;
123
- case 7: return [3 /*break*/, 10];
124
- case 8: return [4 /*yield*/, releaseLock()];
125
- case 9:
126
- _a.sent();
127
- return [7 /*endfinally*/];
128
- case 10: return [2 /*return*/];
129
- }
130
- });
131
- });
132
- }
133
- function popDevicePostponedActionIterator(redisConnection, deviceUid, socketName) {
134
- return __asyncGenerator(this, arguments, function popDevicePostponedActionIterator_1() {
135
- var releaseLock, postponedKey_1, size, i, action, sizeAfterPop;
136
- return __generator(this, function (_a) {
137
- switch (_a.label) {
138
- case 0: return [4 /*yield*/, __await(acquireDeviceLock(redisConnection, deviceUid, socketName))];
139
- case 1:
140
- releaseLock = _a.sent();
141
- _a.label = 2;
142
- case 2:
143
- _a.trys.push([2, , 14, 16]);
144
- debug('peak next device postponed action', deviceUid, socketName);
145
- postponedKey_1 = getDevicePostponedActionsKey(deviceUid, socketName);
146
- return [4 /*yield*/, __await(new Promise(function (resolve) {
147
- redisConnection.connection.llen(postponedKey_1, function (error, length) { return (error ? resolve(0) : resolve(length)); });
148
- }))];
149
- case 3:
150
- size = _a.sent();
151
- i = 0;
152
- _a.label = 4;
153
- case 4:
154
- if (!(i < size)) return [3 /*break*/, 10];
155
- return [4 /*yield*/, __await(new Promise(function (resolve, reject) {
156
- // get the next action from the list but don't pop it until it's succesfully processed
157
- redisConnection.connection.lindex(postponedKey_1, 0, function (error, item) {
158
- return error ? reject(error) : resolve(item ? JSON.parse(item) : null);
159
- });
160
- }))];
161
- case 5:
162
- action = _a.sent();
163
- debug('pop device postponed action', deviceUid, socketName, action);
164
- if (!action) {
165
- // If other process emptied list
166
- return [3 /*break*/, 10];
167
- }
168
- return [4 /*yield*/, __await(action)];
169
- case 6: return [4 /*yield*/, _a.sent()];
170
- case 7:
171
- _a.sent();
172
- // now the action has been processed and we can pop it so it's removed from the list
173
- return [4 /*yield*/, __await(new Promise(function (resolve, reject) {
174
- redisConnection.connection.lpop(postponedKey_1, function (error) { return (error ? reject(error) : resolve()); });
175
- }))];
176
- case 8:
177
- // now the action has been processed and we can pop it so it's removed from the list
178
- _a.sent();
179
- _a.label = 9;
180
- case 9:
181
- i++;
182
- return [3 /*break*/, 4];
183
- case 10: return [4 /*yield*/, __await(new Promise(function (resolve) {
184
- redisConnection.connection.llen(postponedKey_1, function (error, length) { return (error ? resolve(0) : resolve(length)); });
185
- }))];
186
- case 11:
187
- sizeAfterPop = _a.sent();
188
- if (!(sizeAfterPop === 0)) return [3 /*break*/, 13];
189
- return [4 /*yield*/, __await(new Promise(function (resolve, reject) {
190
- redisConnection.connection.unlink(postponedKey_1, function (error) { return (error ? reject(error) : resolve()); });
191
- }))];
192
- case 12:
193
- _a.sent();
194
- _a.label = 13;
195
- case 13: return [3 /*break*/, 16];
196
- case 14: return [4 /*yield*/, __await(releaseLock())];
197
- case 15:
198
- _a.sent();
199
- return [7 /*endfinally*/];
200
- case 16: return [2 /*return*/];
201
- }
202
- });
203
- });
204
- }
205
- function pushDevicePostponedAction(redisConnection, deviceUid, action) {
206
- return __awaiter(this, void 0, void 0, function () {
207
- var socketNames, _i, socketNames_1, socketName;
208
- return __generator(this, function (_a) {
209
- switch (_a.label) {
210
- case 0: return [4 /*yield*/, getSocketNamesWithBoundDeviceActionType(redisConnection, deviceUid, action.type)];
211
- case 1:
212
- socketNames = _a.sent();
213
- _i = 0, socketNames_1 = socketNames;
214
- _a.label = 2;
215
- case 2:
216
- if (!(_i < socketNames_1.length)) return [3 /*break*/, 5];
217
- socketName = socketNames_1[_i];
218
- return [4 /*yield*/, pushDevicePostponedActionToSocket(redisConnection, deviceUid, socketName, action)];
219
- case 3:
220
- _a.sent();
221
- _a.label = 4;
222
- case 4:
223
- _i++;
224
- return [3 /*break*/, 2];
225
- case 5: return [2 /*return*/];
226
- }
227
- });
228
- });
229
- }
230
- function getSocketNamesWithBoundDeviceActionType(redisConnection, deviceUid, actionType) {
231
- return __awaiter(this, void 0, void 0, function () {
232
- var boundKeys, boundKeyPrefix, boundSocketNames, _loop_1, _i, boundKeys_1, boundKey;
233
- return __generator(this, function (_a) {
234
- switch (_a.label) {
235
- case 0:
236
- debug('get socket names with bound device action type', deviceUid, actionType);
237
- return [4 /*yield*/, new Promise(function (resolve, reject) {
238
- var boundKeyPattern = getDeviceBoundActionTypesKey(deviceUid, '*');
239
- redisConnection.connection.keys(boundKeyPattern, function (error, keys) { return (error ? reject(error) : resolve(keys)); });
240
- })];
241
- case 1:
242
- boundKeys = _a.sent();
243
- boundKeyPrefix = getDeviceBoundActionTypesKey(deviceUid, '');
244
- boundSocketNames = [];
245
- _loop_1 = function (boundKey) {
246
- var exists, socketName;
247
- return __generator(this, function (_b) {
248
- switch (_b.label) {
249
- case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {
250
- redisConnection.connection.sismember(boundKey, actionType, function (error, isMember) {
251
- return error ? reject(error) : resolve(isMember === 1);
252
- });
253
- })];
254
- case 1:
255
- exists = _b.sent();
256
- if (exists) {
257
- socketName = boundKey.substr(boundKeyPrefix.length);
258
- boundSocketNames.push(socketName);
259
- }
260
- return [2 /*return*/];
261
- }
262
- });
263
- };
264
- _i = 0, boundKeys_1 = boundKeys;
265
- _a.label = 2;
266
- case 2:
267
- if (!(_i < boundKeys_1.length)) return [3 /*break*/, 5];
268
- boundKey = boundKeys_1[_i];
269
- return [5 /*yield**/, _loop_1(boundKey)];
270
- case 3:
271
- _a.sent();
272
- _a.label = 4;
273
- case 4:
274
- _i++;
275
- return [3 /*break*/, 2];
276
- case 5:
277
- debug('got socket names with bound device action type', deviceUid, actionType, boundSocketNames);
278
- return [2 /*return*/, boundSocketNames];
279
- }
280
- });
281
- });
282
- }
283
- function pushDevicePostponedActionToSocket(redisConnection, deviceUid, socketName, action) {
284
- return __awaiter(this, void 0, void 0, function () {
285
- var releaseLock, postponedKey_2;
286
- return __generator(this, function (_a) {
287
- switch (_a.label) {
288
- case 0: return [4 /*yield*/, acquireDeviceLock(redisConnection, deviceUid, socketName)];
289
- case 1:
290
- releaseLock = _a.sent();
291
- _a.label = 2;
292
- case 2:
293
- _a.trys.push([2, , 4, 6]);
294
- postponedKey_2 = getDevicePostponedActionsKey(deviceUid, socketName);
295
- return [4 /*yield*/, new Promise(function (resolve, reject) {
296
- redisConnection.connection.rpush(postponedKey_2, JSON.stringify(action), function (error) { return (error ? reject(error) : resolve()); });
297
- })];
298
- case 3:
299
- _a.sent();
300
- return [3 /*break*/, 6];
301
- case 4: return [4 /*yield*/, releaseLock()];
302
- case 5:
303
- _a.sent();
304
- return [7 /*endfinally*/];
305
- case 6: return [2 /*return*/];
306
- }
307
- });
308
- });
309
- }
310
- function acquireDeviceLock(redisConnection, deviceUid, socketName) {
311
- var REDIS_LOCK_OPTIONS = {
312
- acquireTimeout: 10e3,
313
- releaseTimeout: 10e3,
314
- retryDelay: 200,
315
- prolongInterval: 1e3,
316
- ttlExtraTimeout: 2e3,
317
- };
318
- var acquireLock = (0, redisLock_1.redisLock)(redisConnection.connection);
319
- var lockKey = getDeviceLockKey(deviceUid, socketName);
320
- return acquireLock(lockKey, REDIS_LOCK_OPTIONS);
321
- }
322
- function getDeviceLockKey(deviceUid, socketName) {
323
- return "deviceLock.".concat(deviceUid, ".").concat(socketName);
324
- }
325
- function getDeviceBoundActionTypesKey(deviceUid, socketName) {
326
- // socketName has to be last because of redis prefix fetching
327
- return "deviceBoundActions.".concat(deviceUid, ".").concat(socketName);
328
- }
329
- function getDevicePostponedActionsKey(deviceUid, socketName) {
330
- // socketName has to be last because of redis prefix fetching
331
- return "devicePostponedActions.".concat(deviceUid, ".").concat(socketName);
332
- }
20
+ __exportStar(require("@signageos/redis/dist/DeviceActions/postponedDeviceActions"), exports);
333
21
  //# sourceMappingURL=postponedDeviceActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postponedDeviceActions.js","sourceRoot":"","sources":["../../../src/Redis/DeviceActions/postponedDeviceActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postponedDeviceActions.js","sourceRoot":"","sources":["../../../src/Redis/DeviceActions/postponedDeviceActions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,6FAA2E"}
@@ -1,41 +1,4 @@
1
- import * as redis from 'redis';
2
- import { IConnection } from '../ThirdParty/connection';
3
- import { IRedisDBDriverExporter } from '../Metrics/redisMetrics';
4
- export interface IRedisConnection extends IConnection<IRedisDBDriverExporter> {
5
- connection: redis.RedisClient;
6
- /**
7
- * You can get a sub-connection to the specific database using a number of database.
8
- * By default is usually used one specific num=0 for all logic.
9
- * But there can be switched for single usage to different sub-database.
10
- * The original connection is untouched and new one is connected.
11
- */
12
- getDB: (num: number) => IRedisConnection;
13
- }
14
- export interface Options extends redis.ClientOpts {
15
- retryStrategy?: redis.RetryStrategy | undefined;
16
- /**
17
- * This is a setting that should be enabled on all production environments.
18
- * It disables usage of expensive (and/or locking) operations in Redis.
19
- * Only good reason to disable this would be for some specific test cases.
20
- *
21
- * @note Even disabled it will still throw warnings (outside of test enviroments)
22
- * @default false
23
- */
24
- disableExpensiveOperations?: boolean;
25
- /**
26
- * Debugging option, allows warning to appear on test enviroments.
27
- *
28
- * @default false
29
- */
30
- enableExpensiveOperationsWarning?: boolean;
31
- /**
32
- * By default, if there is no active connection to the Redis server,
33
- * commands are added to a queue and are executed once the connection has been established.
34
- * Setting `enable_offline_queue` to `false` will disable this feature
35
- * and the callback will be executed immediately with an error,
36
- * or an error will be emitted if no callback is specified.
37
- * @default true
38
- */
39
- enable_offline_queue?: boolean;
40
- }
41
- export declare function createRedisConnection(redisDsn: string, options?: Options): IRedisConnection;
1
+ /**
2
+ * @deprecated Use `@signageos/redis/dist/redisConnectionFactory` instead.
3
+ */
4
+ export * from '@signageos/redis/dist/redisConnectionFactory';
@@ -1,15 +1,4 @@
1
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
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -21,138 +10,12 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
21
10
  if (k2 === undefined) k2 = k;
22
11
  o[k2] = m[k];
23
12
  }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
- 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;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
71
15
  };
72
16
  Object.defineProperty(exports, "__esModule", { value: true });
73
- exports.createRedisConnection = createRedisConnection;
74
- var redis = __importStar(require("redis"));
75
- var URL = __importStar(require("url"));
76
- var logging_1 = require("../Logging/logging");
77
- var redisMetrics_1 = require("../Metrics/redisMetrics");
78
- var connection_utils_1 = require("../Lib/Redis/connection.utils");
79
- var logger = logging_1.logger.createNamespace('RedisConnection');
80
- function infiniteRetryStrategy(options) {
81
- return Math.min(options.attempt * 100, 3e3);
82
- }
83
- var exporter = new redisMetrics_1.RedisDBDriverExporter();
84
- function monitorConnection(connection, connectionName) {
85
- exporter.monitorRedisClient(connection, connectionName);
86
- connection.on('error', function (error) {
87
- logger.error('error', { connectionName: connectionName, error: error });
88
- });
89
- connection.on('connect', function () {
90
- logger.info('connect', { connectionName: connectionName });
91
- });
92
- connection.on('ready', function () {
93
- logger.info('ready', { connectionName: connectionName });
94
- });
95
- connection.on('reconnecting', function () {
96
- logger.info('reconnecting', { connectionName: connectionName });
97
- });
98
- connection.on('end', function () {
99
- logger.info('end', { connectionName: connectionName });
100
- });
101
- }
102
- function createRedisConnection(redisDsn, options) {
103
- if (options === void 0) { options = { disableExpensiveOperations: false, enable_offline_queue: true }; }
104
- var connection = (0, connection_utils_1.wrapRedisConnection)(redis.createClient(redisDsn, __assign(__assign({}, options), { retry_strategy: options.retryStrategy ? options.retryStrategy : infiniteRetryStrategy })), options);
105
- var databases = {};
106
- return {
107
- getDB: function (num) {
108
- if (num !== 0) {
109
- throw new Error('Only db 0 is supported in library code, use getDB(0) or default connection');
110
- }
111
- if (databases[num] !== undefined) {
112
- return databases[num];
113
- }
114
- var parsedDsn = URL.parse(redisDsn, true);
115
- parsedDsn.query.db = num.toString();
116
- var subRedisDsn = URL.format(parsedDsn);
117
- var subConnection = createRedisConnection(subRedisDsn, options);
118
- subConnection.connect(); // it's practically not a promise
119
- databases[num] = subConnection;
120
- return subConnection;
121
- },
122
- connection: connection,
123
- connect: function () {
124
- // 1 error handler is needed at least. It throws exception otherwise
125
- connection.on('error', function (error) {
126
- return __awaiter(this, void 0, void 0, function () {
127
- return __generator(this, function (_a) {
128
- console.error(error);
129
- return [2 /*return*/];
130
- });
131
- });
132
- });
133
- return Promise.resolve();
134
- },
135
- close: function () {
136
- return __awaiter(this, void 0, void 0, function () {
137
- var num;
138
- return __generator(this, function (_a) {
139
- switch (_a.label) {
140
- case 0: return [4 /*yield*/, new Promise(function (resolve, reject) { return connection.quit(function (error) { return (error ? reject(error) : resolve()); }); })];
141
- case 1:
142
- _a.sent();
143
- for (num in databases) {
144
- databases[num].close();
145
- delete databases[num];
146
- }
147
- return [2 /*return*/];
148
- }
149
- });
150
- });
151
- },
152
- monitor: function (connectionName) {
153
- connection.removeAllListeners('error');
154
- monitorConnection(connection, connectionName);
155
- },
156
- };
157
- }
17
+ /**
18
+ * @deprecated Use `@signageos/redis/dist/redisConnectionFactory` instead.
19
+ */
20
+ __exportStar(require("@signageos/redis/dist/redisConnectionFactory"), exports);
158
21
  //# sourceMappingURL=redisConnectionFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redisConnectionFactory.js","sourceRoot":"","sources":["../../src/Redis/redisConnectionFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redisConnectionFactory.js","sourceRoot":"","sources":["../../src/Redis/redisConnectionFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,+EAA6D"}
@@ -1,11 +1,4 @@
1
- import { RedisClient } from 'redis';
2
- export type IOptions = {
3
- acquireTimeout: number;
4
- releaseTimeout: number;
5
- retryDelay?: number;
6
- prolongInterval?: number;
7
- ttlExtraTimeout?: number;
8
- };
9
- export declare const redisLock: (client: RedisClient) => (key: string, options: IOptions) => Promise<() => Promise<void>>;
10
- export declare class LockAcquisitionError extends Error {
11
- }
1
+ /**
2
+ * @deprecated Use `@signageos/redis/dist/Lock/redisLock` instead.
3
+ */
4
+ export * from '@signageos/redis/dist/Lock/redisLock';
@@ -1,213 +1,21 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
- var __generator = (this && this.__generator) || function (thisArg, body) {
27
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
- function verb(n) { return function (v) { return step([n, v]); }; }
30
- function step(op) {
31
- if (f) throw new TypeError("Generator is already executing.");
32
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
- 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;
34
- if (y = 0, t) op = [op[0] & 2, t.value];
35
- switch (op[0]) {
36
- case 0: case 1: t = op; break;
37
- case 4: _.label++; return { value: op[1], done: false };
38
- case 5: _.label++; y = op[1]; op = [0]; continue;
39
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
- default:
41
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
- if (t[2]) _.ops.pop();
46
- _.trys.pop(); continue;
47
- }
48
- op = body.call(thisArg, _);
49
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
51
7
  }
52
- };
53
- var __importDefault = (this && this.__importDefault) || function (mod) {
54
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
55
15
  };
56
16
  Object.defineProperty(exports, "__esModule", { value: true });
57
- exports.LockAcquisitionError = exports.redisLock = void 0;
58
- var wait_1 = __importDefault(require("../Timer/wait"));
59
- var generator_1 = require("../Hash/generator");
60
- var DEFAULT_RETRY_DELAY = 200;
61
- var DEFAULT_PROLONG_INTERVAL = 10000;
62
- var DEFAULT_TTL_EXTRA_TIMEOUT = 5000;
63
- var redisLock = function (client) { return function (key, options) { return __awaiter(void 0, void 0, void 0, function () {
64
- var acquireStartedAt, retryDelay, currentTime, error_1;
65
- return __generator(this, function (_a) {
66
- switch (_a.label) {
67
- case 0:
68
- acquireStartedAt = new Date();
69
- retryDelay = options.retryDelay || DEFAULT_RETRY_DELAY;
70
- _a.label = 1;
71
- case 1:
72
- if (!true) return [3 /*break*/, 7];
73
- currentTime = new Date();
74
- if (currentTime.valueOf() - acquireStartedAt.valueOf() >= options.acquireTimeout) {
75
- throw new LockAcquisitionError("Could not acquire lock on \"".concat(key, "\""));
76
- }
77
- _a.label = 2;
78
- case 2:
79
- _a.trys.push([2, 4, , 5]);
80
- return [4 /*yield*/, createLock(client, key, options)];
81
- case 3: return [2 /*return*/, _a.sent()];
82
- case 4:
83
- error_1 = _a.sent();
84
- return [3 /*break*/, 5];
85
- case 5: return [4 /*yield*/, (0, wait_1.default)(retryDelay)];
86
- case 6:
87
- _a.sent();
88
- return [3 /*break*/, 1];
89
- case 7: return [2 /*return*/];
90
- }
91
- });
92
- }); }; };
93
- exports.redisLock = redisLock;
94
- var LockAcquisitionError = /** @class */ (function (_super) {
95
- __extends(LockAcquisitionError, _super);
96
- function LockAcquisitionError() {
97
- return _super !== null && _super.apply(this, arguments) || this;
98
- }
99
- return LockAcquisitionError;
100
- }(Error));
101
- exports.LockAcquisitionError = LockAcquisitionError;
102
- function createLock(client, key, options) {
103
- return __awaiter(this, void 0, void 0, function () {
104
- var lockUid, prolongInterval, ttlExtraTimeout, ttl, reply, prolonger, releaseCb, releaseTimeout;
105
- var _this = this;
106
- return __generator(this, function (_a) {
107
- switch (_a.label) {
108
- case 0:
109
- lockUid = (0, generator_1.generateUniqueHash)();
110
- prolongInterval = options.prolongInterval || DEFAULT_PROLONG_INTERVAL;
111
- ttlExtraTimeout = options.ttlExtraTimeout || DEFAULT_TTL_EXTRA_TIMEOUT;
112
- ttl = prolongInterval + ttlExtraTimeout;
113
- return [4 /*yield*/, redisSet(client, key, lockUid, 'PX', ttl, 'NX')];
114
- case 1:
115
- reply = _a.sent();
116
- if (reply !== 'OK') {
117
- throw new LockAcquisitionError("Could not create lock on \"".concat(key, "\". Reason: Already exists."));
118
- }
119
- prolonger = setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
120
- var currentLockUid;
121
- return __generator(this, function (_a) {
122
- switch (_a.label) {
123
- case 0: return [4 /*yield*/, redisGet(client, key)];
124
- case 1:
125
- currentLockUid = _a.sent();
126
- if (currentLockUid !== lockUid) {
127
- // This should never happen when used the same version of redisLock and nothing else writes to redis
128
- throw new Error("Lock was stolen by other process: \"".concat(key, "\". Uid ").concat(lockUid, " was expected but ").concat(currentLockUid, " given."));
129
- }
130
- return [4 /*yield*/, redisSet(client, key, lockUid, 'PX', ttl, 'XX')];
131
- case 2:
132
- _a.sent();
133
- return [2 /*return*/];
134
- }
135
- });
136
- }); }, prolongInterval);
137
- releaseCb = createReleaseCallback(client, key, prolonger);
138
- releaseTimeout = setTimeout(function () {
139
- console.warn("redisLock releaseTimeout ".concat(options.releaseTimeout, "ms reached for key \"").concat(key, "\""));
140
- releaseCb();
141
- }, options.releaseTimeout);
142
- return [2 /*return*/, function () { return __awaiter(_this, void 0, void 0, function () {
143
- return __generator(this, function (_a) {
144
- switch (_a.label) {
145
- case 0:
146
- clearTimeout(releaseTimeout);
147
- return [4 /*yield*/, releaseCb()];
148
- case 1:
149
- _a.sent();
150
- return [2 /*return*/];
151
- }
152
- });
153
- }); }];
154
- }
155
- });
156
- });
157
- }
158
- function createReleaseCallback(client, key, prolonger) {
159
- var _this = this;
160
- var runningProlonger = prolonger;
161
- return function () { return __awaiter(_this, void 0, void 0, function () {
162
- return __generator(this, function (_a) {
163
- switch (_a.label) {
164
- case 0:
165
- if (!(runningProlonger !== null)) return [3 /*break*/, 2];
166
- clearInterval(runningProlonger);
167
- runningProlonger = null;
168
- return [4 /*yield*/, redisDel(client, key)];
169
- case 1:
170
- _a.sent();
171
- _a.label = 2;
172
- case 2: return [2 /*return*/];
173
- }
174
- });
175
- }); };
176
- }
177
- function redisGet(client, key) {
178
- return new Promise(function (resolve, reject) {
179
- client.get(key, function (error, value) {
180
- if (error) {
181
- reject(error);
182
- }
183
- else {
184
- resolve(value);
185
- }
186
- });
187
- });
188
- }
189
- function redisSet(client, key, value, mode, duration, flag) {
190
- return new Promise(function (resolve, reject) {
191
- client.set(key, value, mode, duration, flag, function (error, reply) {
192
- if (error) {
193
- reject(error);
194
- }
195
- else {
196
- resolve(reply);
197
- }
198
- });
199
- });
200
- }
201
- function redisDel(client, key) {
202
- return new Promise(function (resolve, reject) {
203
- client.unlink(key, function (error, reply) {
204
- if (error) {
205
- reject(error);
206
- }
207
- else {
208
- resolve(reply);
209
- }
210
- });
211
- });
212
- }
17
+ /**
18
+ * @deprecated Use `@signageos/redis/dist/Lock/redisLock` instead.
19
+ */
20
+ __exportStar(require("@signageos/redis/dist/Lock/redisLock"), exports);
213
21
  //# sourceMappingURL=redisLock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redisLock.js","sourceRoot":"","sources":["../../src/Redis/redisLock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redisLock.js","sourceRoot":"","sources":["../../src/Redis/redisLock.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,uEAAqD"}
@@ -1,6 +1,6 @@
1
1
  import { IAMQPConnection } from '@signageos/amqp/dist/amqpConnectionFactory';
2
2
  import { IMongodbConnection } from '../MongoDB/mongoDBConnectionFactory';
3
- import { IRedisConnection } from '../Redis/redisConnectionFactory';
3
+ import { IRedisConnection } from '@signageos/redis/dist/redisConnectionFactory';
4
4
  export interface DBConnections {
5
5
  redis?: Record<string, IRedisConnection>;
6
6
  amqp?: Record<string, IAMQPConnection>;
@@ -1,2 +1,2 @@
1
- import { IRedisConnection } from '../../Redis/redisConnectionFactory';
1
+ import { IRedisConnection } from '@signageos/redis/dist/redisConnectionFactory';
2
2
  export declare function initRedisDBConnectionsMetrics(connections: Record<string, IRedisConnection>): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signageos/lib",
3
- "version": "23.11.0-master.4438",
3
+ "version": "23.11.1-master.4444",
4
4
  "main": "./dist",
5
5
  "type": "commonjs",
6
6
  "files": [
@@ -25,7 +25,6 @@
25
25
  "clean-build": "rm -rf dist/* es6/* && npm run build",
26
26
  "test": "NODE_ENV=test mocha",
27
27
  "test:coverage": "c8 npm run test",
28
- "test-connections": "NODE_ENV=test mocha --allow-uncaught --config .mocharc.connections.js",
29
28
  "test:benchmark": "NODE_ENV=test mocha --config .mocharc.benchmark.js",
30
29
  "watch": "tsc --watch",
31
30
  "check": "npm run depcheck && ../../tools/check-deps",
@@ -40,8 +39,9 @@
40
39
  "dependencies": {
41
40
  "@signageos/amqp": "^0.2.0",
42
41
  "@signageos/core": "^1.0.0",
43
- "@signageos/lib-ci": "23.11.0-master.4438",
42
+ "@signageos/lib-ci": "23.11.1-master.4444",
44
43
  "@signageos/metrics": "^1.0.0",
44
+ "@signageos/redis": "^1.0.0",
45
45
  "async-lock": "1.4.0",
46
46
  "auth0": "4.4.1",
47
47
  "basic-auth": "2.0.1",
@@ -78,7 +78,6 @@
78
78
  "aws-sdk": "^2.1472.0",
79
79
  "@influxdata/influxdb-client": "1.16.0",
80
80
  "mocha": "^3.1.2",
81
- "redis": "^3.1.2",
82
81
  "mongoose": "^8.0.0",
83
82
  "mongodb": "6.2.0",
84
83
  "sinon": "15.2.0",
@@ -114,7 +113,6 @@
114
113
  "@types/on-finished": "2.3.4",
115
114
  "@types/path-browserify": "1.0.2",
116
115
  "@types/qs": "6.9.14",
117
- "@types/redis": "2.8.32",
118
116
  "@types/rsync": "0.4.30",
119
117
  "@types/semver": "7.5.6",
120
118
  "@types/should": "8.3.0",
@@ -136,7 +134,6 @@
136
134
  "mocha": "10.2.0",
137
135
  "mongodb": "6.12.0",
138
136
  "mongoose": "8.8.4",
139
- "redis": "3.1.2",
140
137
  "should": "11.2.1",
141
138
  "should-sinon": "0.0.6",
142
139
  "sinon": "15.2.0",
@@ -1,3 +0,0 @@
1
- import { IRedisConnection } from '../../Redis/redisConnectionFactory';
2
- export declare const REDIS_LABEL = "redis";
3
- export default function (redisConnection: IRedisConnection, uid: string): Promise<object>;
@@ -1,94 +0,0 @@
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 (g && (g = 0, op[0] && (_ = 0)), _) 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.REDIS_LABEL = void 0;
40
- exports.default = default_1;
41
- exports.REDIS_LABEL = 'redis';
42
- function default_1(redisConnection, uid) {
43
- return __awaiter(this, void 0, void 0, function () {
44
- var HEALTH_CHECK_KEY, HEALTH_CHECK_VALUE, result;
45
- return __generator(this, function (_a) {
46
- switch (_a.label) {
47
- case 0:
48
- HEALTH_CHECK_KEY = "___".concat(uid, "_check_connection_status");
49
- HEALTH_CHECK_VALUE = "".concat(uid, "_this_will_be_returned_if_connection_is_working");
50
- return [4 /*yield*/, new Promise(function (resolve, reject) {
51
- return redisConnection.connection.set(HEALTH_CHECK_KEY, HEALTH_CHECK_VALUE, 'EX', 30, function (error) {
52
- if (error) {
53
- reject(error);
54
- }
55
- else {
56
- resolve();
57
- }
58
- });
59
- })];
60
- case 1:
61
- _a.sent();
62
- return [4 /*yield*/, new Promise(function (resolve, reject) {
63
- return redisConnection.connection.get(HEALTH_CHECK_KEY, function (error, value) {
64
- if (error) {
65
- reject(error);
66
- }
67
- else {
68
- resolve(value);
69
- }
70
- });
71
- })];
72
- case 2:
73
- result = _a.sent();
74
- return [4 /*yield*/, new Promise(function (resolve, reject) {
75
- return redisConnection.connection.unlink(HEALTH_CHECK_KEY, function (error) {
76
- if (error) {
77
- reject(error);
78
- }
79
- else {
80
- resolve();
81
- }
82
- });
83
- })];
84
- case 3:
85
- _a.sent();
86
- if (result !== HEALTH_CHECK_VALUE) {
87
- throw new Error("Value returned by redis DB is not the same that was saved there. ".concat(HEALTH_CHECK_KEY, ", ").concat(HEALTH_CHECK_VALUE, ", ").concat(result));
88
- }
89
- return [2 /*return*/, {}];
90
- }
91
- });
92
- });
93
- }
94
- //# sourceMappingURL=redisStatusCheck.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redisStatusCheck.js","sourceRoot":"","sources":["../../../src/HttpStatus/checks/redisStatusCheck.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,4BAwCC;AA1CY,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC,mBAA+B,eAAiC,EAAE,GAAW;;;;;;oBACtE,gBAAgB,GAAG,aAAM,GAAG,6BAA0B,CAAC;oBACvD,kBAAkB,GAAG,UAAG,GAAG,oDAAiD,CAAC;oBAEnF,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAmB,EAAE,MAA8B;4BAC3E,OAAA,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAC,KAAmB;gCAClG,IAAI,KAAK,EAAE,CAAC;oCACX,MAAM,CAAC,KAAK,CAAC,CAAC;gCACf,CAAC;qCAAM,CAAC;oCACP,OAAO,EAAE,CAAC;gCACX,CAAC;4BACF,CAAC,CAAC;wBANF,CAME,CACF,EAAA;;oBARD,SAQC,CAAC;oBAEa,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAgC,EAAE,MAA8B;4BACjG,OAAA,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAC,KAAmB,EAAE,KAAa;gCACnF,IAAI,KAAK,EAAE,CAAC;oCACX,MAAM,CAAC,KAAK,CAAC,CAAC;gCACf,CAAC;qCAAM,CAAC;oCACP,OAAO,CAAC,KAAK,CAAC,CAAC;gCAChB,CAAC;4BACF,CAAC,CAAC;wBANF,CAME,CACF,EAAA;;oBARK,MAAM,GAAG,SAQd;oBAED,qBAAM,IAAI,OAAO,CAAO,UAAC,OAAmB,EAAE,MAA8B;4BAC3E,OAAA,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAC,KAAmB;gCACvE,IAAI,KAAK,EAAE,CAAC;oCACX,MAAM,CAAC,KAAK,CAAC,CAAC;gCACf,CAAC;qCAAM,CAAC;oCACP,OAAO,EAAE,CAAC;gCACX,CAAC;4BACF,CAAC,CAAC;wBANF,CAME,CACF,EAAA;;oBARD,SAQC,CAAC;oBAEF,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CACd,2EAAoE,gBAAgB,eAAK,kBAAkB,eAAK,MAAM,CAAE,CACxH,CAAC;oBACH,CAAC;oBACD,sBAAO,EAAE,EAAC;;;;CACV"}
@@ -1,22 +0,0 @@
1
- import { RedisClient } from 'redis';
2
- import { Options } from '../../Redis/redisConnectionFactory';
3
- interface DangerousRedisOperationReasoning {
4
- reason: string;
5
- documentationLink: string;
6
- alternativeOperation?: keyof RedisClient;
7
- }
8
- /**
9
- * Wraps the dangerous function with either an error or a warning. Almost always it should throw an error, indicating that
10
- * developer is playing with fire. Logs warnings by default.
11
- *
12
- * Testing enviroments are exception and do not log warnings unless explicitly enabled by options.
13
- *
14
- * For more explanation @see wrapRedisConnection
15
- */
16
- export declare function wrapDangerousRedisFunction<T extends Function>(fn: T, reasoning: DangerousRedisOperationReasoning, { disableExpensiveOperations, enableExpensiveOperationsWarning }: Options): T;
17
- /**
18
- * Created to ban all dangerous Redis operations that could take down production. While they are possible to enable,
19
- * only acceptable use case should be testing. Outside of that, do not disable this without a very good reason.
20
- */
21
- export declare function wrapRedisConnection(redisConnection: RedisClient, options: Options): RedisClient;
22
- export {};
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
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
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.wrapDangerousRedisFunction = wrapDangerousRedisFunction;
30
- exports.wrapRedisConnection = wrapRedisConnection;
31
- var DangerousRedisOperationError = /** @class */ (function (_super) {
32
- __extends(DangerousRedisOperationError, _super);
33
- function DangerousRedisOperationError(_a) {
34
- var disabledOperation = _a.disabledOperation, reason = _a.reason, documentationLink = _a.documentationLink, alternativeOperation = _a.alternativeOperation;
35
- var _this = _super.call(this, "\n\t\t\tRedis operation - ".concat(disabledOperation, " is banned!\n\n\t\t\t\tYou should not use this function in production. It may not be a good idea in development either.\n\n\n\t\t\tDetail: ").concat(reason, "\n\n\t\t\tDocumentation: ").concat(documentationLink, "\n\t\t\t").concat(alternativeOperation ? '\n\nAlternatively you can use safer operation - ' + alternativeOperation.toString() : '', "\n\t\t")) || this;
36
- _this.disabledOperation = disabledOperation;
37
- return _this;
38
- }
39
- return DangerousRedisOperationError;
40
- }(Error));
41
- /**
42
- * Wraps the dangerous function with either an error or a warning. Almost always it should throw an error, indicating that
43
- * developer is playing with fire. Logs warnings by default.
44
- *
45
- * Testing enviroments are exception and do not log warnings unless explicitly enabled by options.
46
- *
47
- * For more explanation @see wrapRedisConnection
48
- */
49
- function wrapDangerousRedisFunction(fn, reasoning, _a) {
50
- var disableExpensiveOperations = _a.disableExpensiveOperations, enableExpensiveOperationsWarning = _a.enableExpensiveOperationsWarning;
51
- var error = new DangerousRedisOperationError(__assign({ disabledOperation: fn.name }, reasoning));
52
- if (disableExpensiveOperations === true) {
53
- return (function () {
54
- throw error;
55
- });
56
- }
57
- if (process.env.NODE_ENV !== 'test' || enableExpensiveOperationsWarning === true) {
58
- console.warn(error);
59
- }
60
- return fn;
61
- }
62
- /**
63
- * Created to ban all dangerous Redis operations that could take down production. While they are possible to enable,
64
- * only acceptable use case should be testing. Outside of that, do not disable this without a very good reason.
65
- */
66
- function wrapRedisConnection(redisConnection, options) {
67
- redisConnection.keys = wrapDangerousRedisFunction(redisConnection.keys, {
68
- reason: 'Iterates over every single key in DB and locks the thread while doing so.',
69
- documentationLink: 'https://redis.io/docs/latest/commands/keys/',
70
- }, options);
71
- redisConnection.KEYS = wrapDangerousRedisFunction(redisConnection.KEYS, {
72
- reason: 'Iterates over every single key in DB and locks the thread while doing so.',
73
- documentationLink: 'https://redis.io/docs/latest/commands/keys/',
74
- }, options);
75
- redisConnection.scan = wrapDangerousRedisFunction(redisConnection.scan, {
76
- reason: 'Iterates over every single key in DB, it may not lock but the performance cost is major.',
77
- documentationLink: 'https://redis.io/docs/latest/commands/scan/',
78
- }, options);
79
- redisConnection.SCAN = wrapDangerousRedisFunction(redisConnection.SCAN, {
80
- reason: 'Iterates over every single key in DB, it may not lock but the performance cost is major.',
81
- documentationLink: 'https://redis.io/docs/latest/commands/scan/',
82
- }, options);
83
- redisConnection.del = wrapDangerousRedisFunction(redisConnection.del, {
84
- reason: 'Locks the thread while it reclaims memory. Especially dangerous when deleting many keys.',
85
- documentationLink: 'https://redis.io/docs/latest/commands/del/',
86
- alternativeOperation: 'UNLINK',
87
- }, options);
88
- redisConnection.DEL = wrapDangerousRedisFunction(redisConnection.DEL, {
89
- reason: 'Locks the thread while it reclaims memory. Especially dangerous when deleting many keys.',
90
- documentationLink: 'https://redis.io/docs/latest/commands/del/',
91
- alternativeOperation: 'UNLINK',
92
- }, options);
93
- return redisConnection;
94
- }
95
- //# sourceMappingURL=connection.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.utils.js","sourceRoot":"","sources":["../../../src/Lib/Redis/connection.utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,gEAgBC;AAMD,kDA0DC;AAnHD;IAA2C,gDAAK;IAG/C,sCAAY,EAOX;YANA,iBAAiB,uBAAA,EACjB,MAAM,YAAA,EACN,iBAAiB,uBAAA,EACjB,oBAAoB,0BAAA;QAIpB,YAAA,MAAK,YAAC,oCACe,iBAAiB,wJAE3B,MAAM,sCACC,iBAAiB,qBAChC,oBAAoB,CAAC,CAAC,CAAC,kDAAkD,GAAG,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,WAClH,CAAC,SAAC;QACH,KAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;;IAC5C,CAAC;IACF,mCAAC;AAAD,CAAC,AApBD,CAA2C,KAAK,GAoB/C;AAOD;;;;;;;GAOG;AACH,SAAgB,0BAA0B,CACzC,EAAK,EACL,SAA2C,EAC3C,EAAyE;QAAvE,0BAA0B,gCAAA,EAAE,gCAAgC,sCAAA;IAE9D,IAAM,KAAK,GAAG,IAAI,4BAA4B,YAAG,iBAAiB,EAAE,EAAE,CAAC,IAAI,IAAK,SAAS,EAAG,CAAC;IAE7F,IAAI,0BAA0B,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC;YACP,MAAM,KAAK,CAAC;QACb,CAAC,CAAiB,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,gCAAgC,KAAK,IAAI,EAAE,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,eAA4B,EAAE,OAAgB;IACjF,eAAe,CAAC,IAAI,GAAG,0BAA0B,CAChD,eAAe,CAAC,IAAI,EACpB;QACC,MAAM,EAAE,2EAA2E;QACnF,iBAAiB,EAAE,6CAA6C;KAChE,EACD,OAAO,CACP,CAAC;IAEF,eAAe,CAAC,IAAI,GAAG,0BAA0B,CAChD,eAAe,CAAC,IAAI,EACpB;QACC,MAAM,EAAE,2EAA2E;QACnF,iBAAiB,EAAE,6CAA6C;KAChE,EACD,OAAO,CACP,CAAC;IAEF,eAAe,CAAC,IAAI,GAAG,0BAA0B,CAChD,eAAe,CAAC,IAAI,EACpB;QACC,MAAM,EAAE,0FAA0F;QAClG,iBAAiB,EAAE,6CAA6C;KAChE,EACD,OAAO,CACP,CAAC;IAEF,eAAe,CAAC,IAAI,GAAG,0BAA0B,CAChD,eAAe,CAAC,IAAI,EACpB;QACC,MAAM,EAAE,0FAA0F;QAClG,iBAAiB,EAAE,6CAA6C;KAChE,EACD,OAAO,CACP,CAAC;IAEF,eAAe,CAAC,GAAG,GAAG,0BAA0B,CAC/C,eAAe,CAAC,GAAG,EACnB;QACC,MAAM,EAAE,0FAA0F;QAClG,iBAAiB,EAAE,4CAA4C;QAC/D,oBAAoB,EAAE,QAAQ;KAC9B,EACD,OAAO,CACP,CAAC;IAEF,eAAe,CAAC,GAAG,GAAG,0BAA0B,CAC/C,eAAe,CAAC,GAAG,EACnB;QACC,MAAM,EAAE,0FAA0F;QAClG,iBAAiB,EAAE,4CAA4C;QAC/D,oBAAoB,EAAE,QAAQ;KAC9B,EACD,OAAO,CACP,CAAC;IAEF,OAAO,eAAe,CAAC;AACxB,CAAC"}
@@ -1,13 +0,0 @@
1
- import * as redis from 'redis';
2
- export interface IRedisDBDriverExporter extends RedisDBDriverExporter {
3
- }
4
- export declare class RedisDBDriverExporter {
5
- /**
6
- * Start monitoring the given redis client instance
7
- *
8
- * @param redisClient mongo client instance
9
- * @param name unique name for the client that will be used as a label to differentiate between multiple clients
10
- */
11
- monitorRedisClient(redisClient: redis.RedisClient, name: string): void;
12
- private onError;
13
- }
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RedisDBDriverExporter = void 0;
4
- var metrics_1 = require("./metrics");
5
- var prefix = 'sos_';
6
- var redisMetricsConfig = {
7
- redis_driver_errors: {
8
- metric: 'Counter',
9
- help: 'Counter of redis errors',
10
- method: 'inc',
11
- labels: {
12
- name: 'NOT_PREDEFINED_VALUE',
13
- error_type: 'NOT_PREDEFINED_VALUE',
14
- },
15
- },
16
- redis_driver_connection_ready: {
17
- metric: 'Counter',
18
- help: 'Counter of redis successful connections',
19
- method: 'inc',
20
- labels: {
21
- name: 'NOT_PREDEFINED_VALUE',
22
- },
23
- },
24
- redis_driver_connection_end: {
25
- metric: 'Counter',
26
- help: 'Counter of redis ended connections',
27
- method: 'inc',
28
- labels: {
29
- name: 'NOT_PREDEFINED_VALUE',
30
- },
31
- },
32
- };
33
- var metrics = new metrics_1.Metrics({
34
- metricsConfig: redisMetricsConfig,
35
- prefix: prefix,
36
- });
37
- var RedisDBDriverExporter = /** @class */ (function () {
38
- function RedisDBDriverExporter() {
39
- }
40
- /**
41
- * Start monitoring the given redis client instance
42
- *
43
- * @param redisClient mongo client instance
44
- * @param name unique name for the client that will be used as a label to differentiate between multiple clients
45
- */
46
- RedisDBDriverExporter.prototype.monitorRedisClient = function (redisClient, name) {
47
- var _this = this;
48
- var labels = { name: name };
49
- redisClient.on('error', function (event) { return _this.onError(labels, event); });
50
- redisClient.on('end', function () { return metrics.emit('redis_driver_connection_end', labels, 1, 'inc'); });
51
- redisClient.on('ready', function () { return metrics.emit('redis_driver_connection_ready', labels, 1, 'inc'); });
52
- };
53
- RedisDBDriverExporter.prototype.onError = function (labels, event) {
54
- labels.error_type = event.code ? event.code : 'UNKNOWN_ERROR';
55
- metrics.emit('redis_driver_errors', labels, 1, 'inc');
56
- };
57
- return RedisDBDriverExporter;
58
- }());
59
- exports.RedisDBDriverExporter = RedisDBDriverExporter;
60
- //# sourceMappingURL=redisMetrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redisMetrics.js","sourceRoot":"","sources":["../../src/Metrics/redisMetrics.ts"],"names":[],"mappings":";;;AAEA,qCAAoD;AAUpD,IAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,IAAM,kBAAkB,GAAgD;IACvE,mBAAmB,EAAE;QACpB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,sBAAsB;SAClC;KACD;IACD,6BAA6B,EAAE;QAC9B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;SAC5B;KACD;IACD,2BAA2B,EAAE;QAC5B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,oCAAoC;QAC1C,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;SAC5B;KACD;CACD,CAAC;AAEF,IAAI,OAAO,GAAG,IAAI,iBAAO,CAA8B;IACtD,aAAa,EAAE,kBAAkB;IACjC,MAAM,QAAA;CACN,CAAC,CAAC;AAEH;IAAA;IAkBA,CAAC;IAjBA;;;;;OAKG;IACI,kDAAkB,GAAzB,UAA0B,WAA8B,EAAE,IAAY;QAAtE,iBAKC;QAJA,IAAM,MAAM,GAAG,EAAE,IAAI,MAAA,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;QAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAA7D,CAA6D,CAAC,CAAC;QAC3F,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAA/D,CAA+D,CAAC,CAAC;IAChG,CAAC;IAEO,uCAAO,GAAf,UAAgB,MAA8B,EAAE,KAAU;QACzD,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACF,4BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,sDAAqB"}