lemon-core 3.1.1 → 3.1.2
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 +2 -1
- package/dist/controllers/dummy-controller.d.ts +1 -1
- package/dist/controllers/general-api-controller.d.ts +1 -1
- package/dist/controllers/general-api-controller.js.map +1 -1
- package/dist/controllers/general-controller.d.ts +1 -1
- package/dist/cores/core-services.d.ts +1 -2
- package/dist/cores/core-services.js +0 -25
- package/dist/cores/core-services.js.map +1 -1
- package/dist/cores/dynamo/dynamo-query-service.d.ts +1 -1
- package/dist/cores/dynamo/dynamo-scan-service.d.ts +1 -1
- package/dist/cores/dynamo/dynamo-service.d.ts +1 -1
- package/dist/cores/elastic/elastic6-query-service.d.ts +1 -1
- package/dist/cores/elastic/elastic6-service.d.ts +1 -1
- package/dist/cores/index.d.ts +1 -1
- package/dist/cores/index.js +1 -1
- package/dist/cores/index.js.map +1 -1
- package/dist/cores/lambda/lambda-cron-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-dynamo-stream-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-handler.d.ts +2 -1
- package/dist/cores/lambda/lambda-handler.js.map +1 -1
- package/dist/cores/lambda/lambda-notification-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-sns-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-sqs-handler.d.ts +1 -1
- package/dist/cores/lambda/lambda-web-handler.d.ts +2 -2
- package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
- package/dist/cores/protocol/protocol-service.d.ts +1 -1
- package/dist/cores/storage/model-manager.d.ts +2 -1
- package/dist/cores/storage/model-manager.js.map +1 -1
- package/dist/cores/storage/proxy-storage-service.d.ts +2 -71
- package/dist/cores/storage/proxy-storage-service.js +4 -7
- package/dist/cores/storage/proxy-storage-service.js.map +1 -1
- package/dist/cores/storage/storage-service.d.ts +5 -17
- package/dist/cores/storage/storage-service.js +3 -0
- package/dist/cores/storage/storage-service.js.map +1 -1
- package/dist/engine/engine.d.ts +1 -1
- package/dist/engine/engine.js.map +1 -1
- package/dist/extended/abstract-service.d.ts +8 -1
- package/dist/extended/abstract-service.js +13 -4
- package/dist/extended/abstract-service.js.map +1 -1
- package/package.json +3 -2
- package/dist/cores/api-service.d.ts +0 -239
- package/dist/cores/api-service.js +0 -674
- package/dist/cores/api-service.js.map +0 -1
- package/dist/cores/cache-service.d.ts +0 -424
- package/dist/cores/cache-service.js +0 -948
- package/dist/cores/cache-service.js.map +0 -1
- package/dist/cores/core-types.d.ts +0 -398
- package/dist/cores/core-types.js +0 -15
- package/dist/cores/core-types.js.map +0 -1
- package/dist/cores/dynamo-query-service.d.ts +0 -52
- package/dist/cores/dynamo-query-service.js +0 -127
- package/dist/cores/dynamo-query-service.js.map +0 -1
- package/dist/cores/dynamo-scan-service.d.ts +0 -70
- package/dist/cores/dynamo-scan-service.js +0 -164
- package/dist/cores/dynamo-scan-service.js.map +0 -1
- package/dist/cores/dynamo-service.d.ts +0 -192
- package/dist/cores/dynamo-service.js +0 -525
- package/dist/cores/dynamo-service.js.map +0 -1
- package/dist/cores/elastic6-query-service.d.ts +0 -104
- package/dist/cores/elastic6-query-service.js +0 -510
- package/dist/cores/elastic6-query-service.js.map +0 -1
- package/dist/cores/elastic6-service.d.ts +0 -273
- package/dist/cores/elastic6-service.js +0 -903
- package/dist/cores/elastic6-service.js.map +0 -1
- package/dist/cores/hangul-service.d.ts +0 -102
- package/dist/cores/hangul-service.js +0 -205
- package/dist/cores/hangul-service.js.map +0 -1
- package/dist/cores/http-storage-service.d.ts +0 -22
- package/dist/cores/http-storage-service.js +0 -129
- package/dist/cores/http-storage-service.js.map +0 -1
- package/dist/cores/model-manager.d.ts +0 -93
- package/dist/cores/model-manager.js +0 -192
- package/dist/cores/model-manager.js.map +0 -1
- package/dist/cores/proxy-storage-service.d.ts +0 -573
- package/dist/cores/proxy-storage-service.js +0 -913
- package/dist/cores/proxy-storage-service.js.map +0 -1
- package/dist/cores/redis-storage-service.d.ts +0 -183
- package/dist/cores/redis-storage-service.js +0 -391
- package/dist/cores/redis-storage-service.js.map +0 -1
- package/dist/cores/storage-service.d.ts +0 -170
- package/dist/cores/storage-service.js +0 -389
- package/dist/cores/storage-service.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-storage-service.js","sourceRoot":"","sources":["../../src/cores/proxy-storage-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `redis-storage-services.ts`
|
|
3
|
-
* - storage implementation on redis backend
|
|
4
|
-
*
|
|
5
|
-
* @author Tim Hong <tim@lemoncloud.io>
|
|
6
|
-
* @date 2020-12-08 initial version
|
|
7
|
-
*
|
|
8
|
-
* @copyright (C) lemoncloud.io 2020 - All Rights Reserved.
|
|
9
|
-
*/
|
|
10
|
-
import { Redis } from 'ioredis';
|
|
11
|
-
import { StorageService, StorageModel } from './storage-service';
|
|
12
|
-
/** ********************************************************************************************************************
|
|
13
|
-
* Exported Types
|
|
14
|
-
** ********************************************************************************************************************/
|
|
15
|
-
/**
|
|
16
|
-
* type `RedisOptions`
|
|
17
|
-
*/
|
|
18
|
-
export interface RedisOptions {
|
|
19
|
-
/**
|
|
20
|
-
* (optional) cache server endpoint
|
|
21
|
-
*/
|
|
22
|
-
endpoint?: string;
|
|
23
|
-
/**
|
|
24
|
-
* (optional) virtual table name used as key prefix
|
|
25
|
-
*/
|
|
26
|
-
tableName: string | number;
|
|
27
|
-
/**
|
|
28
|
-
* (optional) default time to live of a model in seconds. 0 for unlimited (default: 0)
|
|
29
|
-
*/
|
|
30
|
-
defTimeout?: number;
|
|
31
|
-
}
|
|
32
|
-
/** ********************************************************************************************************************
|
|
33
|
-
* Exported Class
|
|
34
|
-
** ********************************************************************************************************************/
|
|
35
|
-
/**
|
|
36
|
-
* class `RedisStorageService`
|
|
37
|
-
*/
|
|
38
|
-
export declare class RedisStorageService<T extends StorageModel> implements StorageService<T> {
|
|
39
|
-
/**
|
|
40
|
-
* Environment variable name for redis server endpoint
|
|
41
|
-
* @static
|
|
42
|
-
*/
|
|
43
|
-
static readonly ENV_REDIS_ENDPOINT = "MY_REDIS_ENDPOINT";
|
|
44
|
-
/**
|
|
45
|
-
* Maximum retry count of check-and-save behavior
|
|
46
|
-
* @static
|
|
47
|
-
*/
|
|
48
|
-
static readonly CAS_MAX_RETRIES = 5;
|
|
49
|
-
/**
|
|
50
|
-
* ioredis client
|
|
51
|
-
* @protected
|
|
52
|
-
*/
|
|
53
|
-
protected readonly redis: Redis;
|
|
54
|
-
/**
|
|
55
|
-
* Virtual table name
|
|
56
|
-
* @private
|
|
57
|
-
*/
|
|
58
|
-
readonly tableName: string;
|
|
59
|
-
/**
|
|
60
|
-
* Default time to live of a model
|
|
61
|
-
* @private
|
|
62
|
-
*/
|
|
63
|
-
readonly ttl: number;
|
|
64
|
-
/**
|
|
65
|
-
* Public constructor
|
|
66
|
-
*
|
|
67
|
-
* @options redis options
|
|
68
|
-
*/
|
|
69
|
-
constructor(options: RedisOptions);
|
|
70
|
-
/**
|
|
71
|
-
* Say hello
|
|
72
|
-
*/
|
|
73
|
-
hello(): string;
|
|
74
|
-
/**
|
|
75
|
-
* Disconnect from redis
|
|
76
|
-
*/
|
|
77
|
-
quit(): Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
* Read model by id
|
|
80
|
-
*
|
|
81
|
-
* @param id
|
|
82
|
-
*/
|
|
83
|
-
read(id: string): Promise<T>;
|
|
84
|
-
/**
|
|
85
|
-
* Read model or create if id does not exist
|
|
86
|
-
*
|
|
87
|
-
* @param id
|
|
88
|
-
* @param model
|
|
89
|
-
*/
|
|
90
|
-
readOrCreate(id: string, model: T): Promise<T>;
|
|
91
|
-
/**
|
|
92
|
-
* Create model and overwrite if id exists
|
|
93
|
-
*
|
|
94
|
-
* @param id
|
|
95
|
-
* @param model
|
|
96
|
-
*/
|
|
97
|
-
save(id: string, model: T): Promise<T>;
|
|
98
|
-
/**
|
|
99
|
-
* Update existing model and create if id does not exist
|
|
100
|
-
* @param id
|
|
101
|
-
* @param update model to update
|
|
102
|
-
* @param increment (optional) model to increment
|
|
103
|
-
*/
|
|
104
|
-
update(id: string, update: T, increment?: T): Promise<T>;
|
|
105
|
-
/**
|
|
106
|
-
* Increment the integer value of a key
|
|
107
|
-
*
|
|
108
|
-
* @param id
|
|
109
|
-
* @param increment model to increment
|
|
110
|
-
* @param update (optional) model to update
|
|
111
|
-
*/
|
|
112
|
-
increment(id: string, increment: T, update?: T): Promise<T>;
|
|
113
|
-
/**
|
|
114
|
-
* Delete a key
|
|
115
|
-
*
|
|
116
|
-
* @param id
|
|
117
|
-
* @return true on success
|
|
118
|
-
*/
|
|
119
|
-
delete(id: string): Promise<T>;
|
|
120
|
-
/**
|
|
121
|
-
* Get redis key from id
|
|
122
|
-
* @param id
|
|
123
|
-
* @protected
|
|
124
|
-
*/
|
|
125
|
-
asKey(id: string): string;
|
|
126
|
-
/**
|
|
127
|
-
* Serialize model into internal data
|
|
128
|
-
* @param model
|
|
129
|
-
* @protected
|
|
130
|
-
*/
|
|
131
|
-
serialize(model: T): Record<string, string>;
|
|
132
|
-
/**
|
|
133
|
-
* Deserialize internal data into model
|
|
134
|
-
* @param data
|
|
135
|
-
* @protected
|
|
136
|
-
*/
|
|
137
|
-
deserialize(data: Record<string, string>): T;
|
|
138
|
-
/**
|
|
139
|
-
* Update key w/ check-and-save behavior and retries
|
|
140
|
-
* @param id
|
|
141
|
-
* @param update (optional) model to update
|
|
142
|
-
* @param increment (optional) model to increment
|
|
143
|
-
* @private
|
|
144
|
-
*/
|
|
145
|
-
private updateCAS;
|
|
146
|
-
/**
|
|
147
|
-
* Prepare new model - original model + update + increment
|
|
148
|
-
* @param orig
|
|
149
|
-
* @param update
|
|
150
|
-
* @param increment
|
|
151
|
-
* @private
|
|
152
|
-
*/
|
|
153
|
-
private prepareUpdatedModel;
|
|
154
|
-
/**
|
|
155
|
-
* Check transaction results and throw if error occurred
|
|
156
|
-
* @param results transaction pipeline execution results
|
|
157
|
-
* @private
|
|
158
|
-
*/
|
|
159
|
-
private static throwIfTransactionError;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* class `DummyRedisStorageService`
|
|
163
|
-
* - Use local redis server and non-default logical database
|
|
164
|
-
*/
|
|
165
|
-
export declare class DummyRedisStorageService<T extends StorageModel> extends RedisStorageService<T> {
|
|
166
|
-
/**
|
|
167
|
-
* Database index. Each DummyRedisStorageService uses different logical database.
|
|
168
|
-
* @private
|
|
169
|
-
*/
|
|
170
|
-
private static dbIndex;
|
|
171
|
-
/**
|
|
172
|
-
* Public constructor
|
|
173
|
-
*/
|
|
174
|
-
constructor();
|
|
175
|
-
/**
|
|
176
|
-
* Say hello
|
|
177
|
-
*/
|
|
178
|
-
hello(): string;
|
|
179
|
-
/**
|
|
180
|
-
* Delete all data in database
|
|
181
|
-
*/
|
|
182
|
-
truncate(): Promise<void>;
|
|
183
|
-
}
|
|
@@ -1,391 +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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.DummyRedisStorageService = exports.RedisStorageService = void 0;
|
|
16
|
-
/**
|
|
17
|
-
* `redis-storage-services.ts`
|
|
18
|
-
* - storage implementation on redis backend
|
|
19
|
-
*
|
|
20
|
-
* @author Tim Hong <tim@lemoncloud.io>
|
|
21
|
-
* @date 2020-12-08 initial version
|
|
22
|
-
*
|
|
23
|
-
* @copyright (C) lemoncloud.io 2020 - All Rights Reserved.
|
|
24
|
-
*/
|
|
25
|
-
const ioredis_1 = __importDefault(require("ioredis"));
|
|
26
|
-
const engine_1 = require("../engine");
|
|
27
|
-
// Log namespace
|
|
28
|
-
const NS = engine_1.$U.NS('RSTR', 'blue');
|
|
29
|
-
/** ********************************************************************************************************************
|
|
30
|
-
* Exported Class
|
|
31
|
-
** ********************************************************************************************************************/
|
|
32
|
-
/**
|
|
33
|
-
* class `RedisStorageService`
|
|
34
|
-
*/
|
|
35
|
-
class RedisStorageService {
|
|
36
|
-
/**
|
|
37
|
-
* Public constructor
|
|
38
|
-
*
|
|
39
|
-
* @options redis options
|
|
40
|
-
*/
|
|
41
|
-
constructor(options) {
|
|
42
|
-
const defTimeout = engine_1.$U.N(options === null || options === void 0 ? void 0 : options.defTimeout, 0);
|
|
43
|
-
if (typeof options.tableName === 'number') {
|
|
44
|
-
// For dummy: open in non-default database (db index > 0)
|
|
45
|
-
this.redis = new ioredis_1.default(options.endpoint, { db: options.tableName });
|
|
46
|
-
this.tableName = 'dummy';
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
// For normal usage: open in default database (db index = 0) w/ virtual table
|
|
50
|
-
const endpoint = options.endpoint || engine_1.$U.env(RedisStorageService.ENV_REDIS_ENDPOINT);
|
|
51
|
-
const tableName = options.tableName;
|
|
52
|
-
if (!endpoint)
|
|
53
|
-
throw new Error(`.endpoint (URL) is required.`);
|
|
54
|
-
if (!tableName)
|
|
55
|
-
throw new Error(`.tableName (string) is required.`);
|
|
56
|
-
this.redis = new ioredis_1.default(endpoint, { keyPrefix: tableName });
|
|
57
|
-
this.tableName = tableName;
|
|
58
|
-
}
|
|
59
|
-
this.ttl = defTimeout;
|
|
60
|
-
(0, engine_1._inf)(NS, `RedisStorageService constructed.`);
|
|
61
|
-
(0, engine_1._inf)(NS, ` > tableName =`, this.tableName);
|
|
62
|
-
(0, engine_1._inf)(NS, ` > default TTL =`, this.ttl);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Say hello
|
|
66
|
-
*/
|
|
67
|
-
hello() {
|
|
68
|
-
return `redis-storage-service:${this.tableName}`;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Disconnect from redis
|
|
72
|
-
*/
|
|
73
|
-
quit() {
|
|
74
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
yield this.redis.quit();
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Read model by id
|
|
80
|
-
*
|
|
81
|
-
* @param id
|
|
82
|
-
*/
|
|
83
|
-
read(id) {
|
|
84
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
if (!id)
|
|
86
|
-
throw new Error(`@id is required.`);
|
|
87
|
-
const key = this.asKey(id);
|
|
88
|
-
const data = yield this.redis.hgetall(key); // {} if the key does not exist
|
|
89
|
-
if (Object.keys(data).length > 0) {
|
|
90
|
-
const ret = this.deserialize(data);
|
|
91
|
-
(0, engine_1._log)(NS, `> read[${id}].ret =`, engine_1.$U.json(ret));
|
|
92
|
-
return ret;
|
|
93
|
-
}
|
|
94
|
-
throw new Error(`404 NOT FOUND - ${this.tableName}/${id}`);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Read model or create if id does not exist
|
|
99
|
-
*
|
|
100
|
-
* @param id
|
|
101
|
-
* @param model
|
|
102
|
-
*/
|
|
103
|
-
readOrCreate(id, model) {
|
|
104
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
-
if (!id)
|
|
106
|
-
throw new Error(`@id is required.`);
|
|
107
|
-
if (!model)
|
|
108
|
-
throw new Error(`@model is required.`);
|
|
109
|
-
const key = this.asKey(id);
|
|
110
|
-
// check-and-save w/ retries to avoid race conditions
|
|
111
|
-
for (let retry = 0; retry < RedisStorageService.CAS_MAX_RETRIES; yield sleep(10), retry++) {
|
|
112
|
-
yield this.redis.watch(key); // Lock
|
|
113
|
-
let data = yield this.redis.hgetall(key); // {} if the key does not exist
|
|
114
|
-
// 1. Return if a model found
|
|
115
|
-
if (Object.keys(data).length > 0) {
|
|
116
|
-
yield this.redis.unwatch(); // Unlock
|
|
117
|
-
const ret = this.deserialize(data);
|
|
118
|
-
(0, engine_1._log)(NS, `> readOrCreate[${id}(read)].ret =`, engine_1.$U.json(ret));
|
|
119
|
-
return ret;
|
|
120
|
-
}
|
|
121
|
-
// 2. Otherwise try to create a new model
|
|
122
|
-
data = this.serialize(Object.assign(Object.assign({}, model), { id }));
|
|
123
|
-
const pipeline = this.redis.multi().hset(key, data);
|
|
124
|
-
if (this.ttl > 0)
|
|
125
|
-
pipeline.expire(key, this.ttl);
|
|
126
|
-
const results = yield pipeline.exec(); // Unlock, null if the key has been changed
|
|
127
|
-
if (results) {
|
|
128
|
-
RedisStorageService.throwIfTransactionError(results);
|
|
129
|
-
const ret = this.deserialize(data);
|
|
130
|
-
(0, engine_1._log)(NS, `> readOrCreate[${id}(created)].ret =`, engine_1.$U.json(ret));
|
|
131
|
-
return ret;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
const message = `transaction max retries exceeded.`;
|
|
135
|
-
(0, engine_1._err)(NS, `> readOrCreate[${id}].err =`, message);
|
|
136
|
-
throw new Error(`redis transaction error: ${message}`);
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Create model and overwrite if id exists
|
|
141
|
-
*
|
|
142
|
-
* @param id
|
|
143
|
-
* @param model
|
|
144
|
-
*/
|
|
145
|
-
save(id, model) {
|
|
146
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
-
if (!id)
|
|
148
|
-
throw new Error(`@id is required.`);
|
|
149
|
-
if (!model)
|
|
150
|
-
throw new Error(`@model is required.`);
|
|
151
|
-
const key = this.asKey(id);
|
|
152
|
-
const data = this.serialize(Object.assign(Object.assign({}, model), { id }));
|
|
153
|
-
// Create transaction pipeline
|
|
154
|
-
const pipeline = this.redis
|
|
155
|
-
.multi()
|
|
156
|
-
.del(key) // TODO: 만약 save의 overwrite 정책이 기존 존재하는 키는 유지하는 것이라면 del()은 제거해야 함
|
|
157
|
-
.hset(key, data);
|
|
158
|
-
if (this.ttl > 0)
|
|
159
|
-
pipeline.expire(key, this.ttl);
|
|
160
|
-
// Execute transaction
|
|
161
|
-
const results = yield pipeline.exec();
|
|
162
|
-
RedisStorageService.throwIfTransactionError(results);
|
|
163
|
-
const ret = this.deserialize(data);
|
|
164
|
-
(0, engine_1._log)(NS, `> save[${id}].ret =`, engine_1.$U.json(ret));
|
|
165
|
-
return ret;
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Update existing model and create if id does not exist
|
|
170
|
-
* @param id
|
|
171
|
-
* @param update model to update
|
|
172
|
-
* @param increment (optional) model to increment
|
|
173
|
-
*/
|
|
174
|
-
update(id, update, increment) {
|
|
175
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
176
|
-
if (!id)
|
|
177
|
-
throw new Error(`@id is required.`);
|
|
178
|
-
if (!update)
|
|
179
|
-
throw new Error(`@update is required.`);
|
|
180
|
-
const ret = yield this.updateCAS(id, update, increment);
|
|
181
|
-
(0, engine_1._log)(NS, `> update[${id}].ret =`, engine_1.$U.json(ret));
|
|
182
|
-
return ret;
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Increment the integer value of a key
|
|
187
|
-
*
|
|
188
|
-
* @param id
|
|
189
|
-
* @param increment model to increment
|
|
190
|
-
* @param update (optional) model to update
|
|
191
|
-
*/
|
|
192
|
-
increment(id, increment, update) {
|
|
193
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
194
|
-
if (!id)
|
|
195
|
-
throw new Error(`@id is required.`);
|
|
196
|
-
if (!increment)
|
|
197
|
-
throw new Error(`@increment is required.`);
|
|
198
|
-
const ret = yield this.updateCAS(id, update, increment);
|
|
199
|
-
(0, engine_1._log)(NS, `> increment[${id}].ret =`, engine_1.$U.json(ret));
|
|
200
|
-
return ret;
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Delete a key
|
|
205
|
-
*
|
|
206
|
-
* @param id
|
|
207
|
-
* @return true on success
|
|
208
|
-
*/
|
|
209
|
-
delete(id) {
|
|
210
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
-
if (!id)
|
|
212
|
-
throw new Error(`@key is required.`);
|
|
213
|
-
const key = this.asKey(id);
|
|
214
|
-
// Execute transaction
|
|
215
|
-
const results = yield this.redis
|
|
216
|
-
.multi()
|
|
217
|
-
.hgetall(key) // Read
|
|
218
|
-
.del(key) // And delete
|
|
219
|
-
.exec();
|
|
220
|
-
RedisStorageService.throwIfTransactionError(results);
|
|
221
|
-
const data = results[0][1];
|
|
222
|
-
if (Object.keys(data).length > 0) {
|
|
223
|
-
const ret = this.deserialize(data);
|
|
224
|
-
(0, engine_1._log)(NS, `> delete[${id}].ret =`, engine_1.$U.json(ret));
|
|
225
|
-
return ret;
|
|
226
|
-
}
|
|
227
|
-
throw new Error(`404 NOT FOUND - ${this.tableName}/${id}`);
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Get redis key from id
|
|
232
|
-
* @param id
|
|
233
|
-
* @protected
|
|
234
|
-
*/
|
|
235
|
-
asKey(id) {
|
|
236
|
-
return `${this.tableName}::${id}`;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Serialize model into internal data
|
|
240
|
-
* @param model
|
|
241
|
-
* @protected
|
|
242
|
-
*/
|
|
243
|
-
serialize(model) {
|
|
244
|
-
return Object.entries(model).reduce((data, [key, val]) => {
|
|
245
|
-
if (val !== undefined)
|
|
246
|
-
data[key] = JSON.stringify(val);
|
|
247
|
-
return data;
|
|
248
|
-
}, {});
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
|
-
* Deserialize internal data into model
|
|
252
|
-
* @param data
|
|
253
|
-
* @protected
|
|
254
|
-
*/
|
|
255
|
-
deserialize(data) {
|
|
256
|
-
return Object.entries(data).reduce((model, [field, value]) => {
|
|
257
|
-
model[field] = JSON.parse(value);
|
|
258
|
-
return model;
|
|
259
|
-
}, {});
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Update key w/ check-and-save behavior and retries
|
|
263
|
-
* @param id
|
|
264
|
-
* @param update (optional) model to update
|
|
265
|
-
* @param increment (optional) model to increment
|
|
266
|
-
* @private
|
|
267
|
-
*/
|
|
268
|
-
updateCAS(id, update, increment) {
|
|
269
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
270
|
-
const key = this.asKey(id);
|
|
271
|
-
// Use watch and transaction to avoid race conditions
|
|
272
|
-
for (let retry = 0; retry < RedisStorageService.CAS_MAX_RETRIES; yield sleep(10), retry++) {
|
|
273
|
-
yield this.redis.watch(key); // Lock
|
|
274
|
-
try {
|
|
275
|
-
// Evaluate new model to store
|
|
276
|
-
const curData = yield this.redis.hgetall(key); // {} if the key does not exist
|
|
277
|
-
const curModel = this.deserialize(curData);
|
|
278
|
-
const newModel = this.prepareUpdatedModel(curModel, update, increment);
|
|
279
|
-
// Create transaction pipeline
|
|
280
|
-
const data = this.serialize(Object.assign(Object.assign({}, newModel), { id }));
|
|
281
|
-
const pipeline = this.redis.multi().hset(key, data);
|
|
282
|
-
if (this.ttl > 0)
|
|
283
|
-
pipeline.expire(key, this.ttl);
|
|
284
|
-
// Execute transaction
|
|
285
|
-
const results = yield pipeline.exec(); // Unlock, null if the key has been changed
|
|
286
|
-
if (results) {
|
|
287
|
-
RedisStorageService.throwIfTransactionError(results);
|
|
288
|
-
return this.deserialize(data);
|
|
289
|
-
}
|
|
290
|
-
// Retry until max retry count reached
|
|
291
|
-
}
|
|
292
|
-
catch (e) {
|
|
293
|
-
yield this.redis.unwatch(); // Unlock explicitly
|
|
294
|
-
throw e; // Rethrow
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
const message = `transaction max retries exceeded.`;
|
|
298
|
-
(0, engine_1._err)(NS, `> updateCAS[${id}].err =`, message);
|
|
299
|
-
throw new Error(`redis error: ${message}`);
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Prepare new model - original model + update + increment
|
|
304
|
-
* @param orig
|
|
305
|
-
* @param update
|
|
306
|
-
* @param increment
|
|
307
|
-
* @private
|
|
308
|
-
*/
|
|
309
|
-
prepareUpdatedModel(orig, update, increment) {
|
|
310
|
-
const updated = Object.assign(orig, update);
|
|
311
|
-
if (increment) {
|
|
312
|
-
for (const [field, value] of Object.entries(increment)) {
|
|
313
|
-
const key = field;
|
|
314
|
-
const oldVal = updated[key] || orig[key] || 0;
|
|
315
|
-
if (typeof oldVal !== 'number') {
|
|
316
|
-
throw new Error(`.${key} is non-numeric field and cannot be incremented.`);
|
|
317
|
-
}
|
|
318
|
-
updated[key] = oldVal + value;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
return updated;
|
|
322
|
-
}
|
|
323
|
-
/**
|
|
324
|
-
* Check transaction results and throw if error occurred
|
|
325
|
-
* @param results transaction pipeline execution results
|
|
326
|
-
* @private
|
|
327
|
-
*/
|
|
328
|
-
static throwIfTransactionError(results) {
|
|
329
|
-
if (!results)
|
|
330
|
-
throw new Error(`redis transaction failed: transaction aborted by key modification.`);
|
|
331
|
-
const err = results.map(result => result[0]).find(err => err !== null);
|
|
332
|
-
if (err)
|
|
333
|
-
throw new Error(`redis transaction failed: ${err.message}`);
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
exports.RedisStorageService = RedisStorageService;
|
|
337
|
-
/**
|
|
338
|
-
* Environment variable name for redis server endpoint
|
|
339
|
-
* @static
|
|
340
|
-
*/
|
|
341
|
-
RedisStorageService.ENV_REDIS_ENDPOINT = 'MY_REDIS_ENDPOINT';
|
|
342
|
-
/**
|
|
343
|
-
* Maximum retry count of check-and-save behavior
|
|
344
|
-
* @static
|
|
345
|
-
*/
|
|
346
|
-
RedisStorageService.CAS_MAX_RETRIES = 5;
|
|
347
|
-
/**
|
|
348
|
-
* class `DummyRedisStorageService`
|
|
349
|
-
* - Use local redis server and non-default logical database
|
|
350
|
-
*/
|
|
351
|
-
class DummyRedisStorageService extends RedisStorageService {
|
|
352
|
-
/**
|
|
353
|
-
* Public constructor
|
|
354
|
-
*/
|
|
355
|
-
constructor() {
|
|
356
|
-
super({
|
|
357
|
-
endpoint: 'localhost:6379',
|
|
358
|
-
tableName: ++DummyRedisStorageService.dbIndex, // Open non-default DB
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
/**
|
|
362
|
-
* Say hello
|
|
363
|
-
*/
|
|
364
|
-
hello() {
|
|
365
|
-
return `dummy-redis-storage-service`;
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Delete all data in database
|
|
369
|
-
*/
|
|
370
|
-
truncate() {
|
|
371
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
372
|
-
yield this.redis.flushdb();
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
exports.DummyRedisStorageService = DummyRedisStorageService;
|
|
377
|
-
/**
|
|
378
|
-
* Database index. Each DummyRedisStorageService uses different logical database.
|
|
379
|
-
* @private
|
|
380
|
-
*/
|
|
381
|
-
DummyRedisStorageService.dbIndex = 0;
|
|
382
|
-
/**
|
|
383
|
-
* function `sleep`
|
|
384
|
-
* @param ms duration in milliseconds
|
|
385
|
-
*/
|
|
386
|
-
function sleep(ms) {
|
|
387
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
388
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
389
|
-
});
|
|
390
|
-
}
|
|
391
|
-
//# sourceMappingURL=redis-storage-service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis-storage-service.js","sourceRoot":"","sources":["../../src/cores/redis-storage-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;GAQG;AACH,sDAAyC;AACzC,sCAAiD;AAGjD,gBAAgB;AAChB,MAAM,EAAE,GAAG,WAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAuBjC;;yHAEyH;AACzH;;GAEG;AACH,MAAa,mBAAmB;IA+B5B;;;;OAIG;IACH,YAAmB,OAAqB;QACpC,MAAM,UAAU,GAAG,WAAE,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAEhD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE;YACvC,yDAAyD;YACzD,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;SAC5B;aAAM;YACH,6EAA6E;YAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,WAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YACpF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACpC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;QACD,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC;QAEtB,IAAA,aAAI,EAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC7C,IAAA,aAAI,EAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAA,aAAI,EAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK;QACR,OAAO,yBAAyB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACU,IAAI;;YACb,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;KAAA;IAED;;;;OAIG;IACU,IAAI,CAAC,EAAU;;YACxB,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B;YAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAA,aAAI,EAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,OAAO,GAAG,CAAC;aACd;YAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;KAAA;IAED;;;;;OAKG;IACU,YAAY,CAAC,EAAU,EAAE,KAAQ;;YAC1C,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAEnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3B,qDAAqD;YACrD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,mBAAmB,CAAC,eAAe,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;gBACvF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;gBACpC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B;gBAEzE,6BAA6B;gBAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS;oBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAA,aAAI,EAAC,EAAE,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC5D,OAAO,GAAG,CAAC;iBACd;gBAED,yCAAyC;gBACzC,IAAI,GAAG,IAAI,CAAC,SAAS,iCAAM,KAAK,KAAE,EAAE,IAAG,CAAC;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACpD,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEjD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,2CAA2C;gBAClF,IAAI,OAAO,EAAE;oBACT,mBAAmB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;oBAErD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAA,aAAI,EAAC,EAAE,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/D,OAAO,GAAG,CAAC;iBACd;aACJ;YAED,MAAM,OAAO,GAAG,mCAAmC,CAAC;YACpD,IAAA,aAAI,EAAC,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;KAAA;IAED;;;;;OAKG;IACU,IAAI,CAAC,EAAU,EAAE,KAAQ;;YAClC,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAEnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,iCAAM,KAAK,KAAE,EAAE,IAAG,CAAC;YAE9C,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;iBACtB,KAAK,EAAE;iBACP,GAAG,CAAC,GAAG,CAAC,CAAC,kEAAkE;iBAC3E,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;gBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAEjD,sBAAsB;YACtB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,mBAAmB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAErD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,IAAA,aAAI,EAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IAED;;;;;OAKG;IACU,MAAM,CAAC,EAAU,EAAE,MAAS,EAAE,SAAa;;YACpD,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAErD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAA,aAAI,EAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,WAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IAED;;;;;;OAMG;IACU,SAAS,CAAC,EAAU,EAAE,SAAY,EAAE,MAAU;;YACvD,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAE3D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACxD,IAAA,aAAI,EAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,WAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACnD,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IAED;;;;;OAKG;IACU,MAAM,CAAC,EAAU;;YAC1B,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAE9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3B,sBAAsB;YACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;iBAC3B,KAAK,EAAE;iBACP,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO;iBACpB,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa;iBACtB,IAAI,EAAE,CAAC;YACZ,mBAAmB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAErD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAA,aAAI,EAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,WAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChD,OAAO,GAAG,CAAC;aACd;YAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;KAAA;IAED;;;;OAIG;IACI,KAAK,CAAC,EAAU;QACnB,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,KAAQ;QACrB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAyB,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;YAC7E,IAAI,GAAG,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,IAA4B;QAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9D,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED;;;;;;OAMG;IACW,SAAS,CAAC,EAAU,EAAE,MAAU,EAAE,SAAa;;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE3B,qDAAqD;YACrD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,mBAAmB,CAAC,eAAe,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;gBACvF,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;gBAEpC,IAAI;oBACA,8BAA8B;oBAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B;oBAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;oBAEvE,8BAA8B;oBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,iCAAM,QAAQ,KAAE,EAAE,IAAG,CAAC;oBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACpD,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;wBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAEjD,sBAAsB;oBACtB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,2CAA2C;oBAClF,IAAI,OAAO,EAAE;wBACT,mBAAmB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;wBACrD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;qBACjC;oBAED,sCAAsC;iBACzC;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,oBAAoB;oBAChD,MAAM,CAAC,CAAC,CAAC,UAAU;iBACtB;aACJ;YAED,MAAM,OAAO,GAAG,mCAAmC,CAAC;YACpD,IAAA,aAAI,EAAC,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;KAAA;IAED;;;;;;OAMG;IACK,mBAAmB,CAAC,IAAO,EAAE,MAAU,EAAE,SAAa;QAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE;YACX,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBACpD,MAAM,GAAG,GAAG,KAA2B,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;oBAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,kDAAkD,CAAC,CAAC;iBAC9E;gBACD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;aACjC;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,uBAAuB,CAAC,OAA8B;QACjE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACvE,IAAI,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;;AA9UL,kDA+UC;AA9UG;;;GAGG;AACoB,sCAAkB,GAAG,mBAAmB,CAAC;AAEhE;;;GAGG;AACoB,mCAAe,GAAG,CAAC,CAAC;AAsU/C;;;GAGG;AACH,MAAa,wBAAiD,SAAQ,mBAAsB;IAOxF;;OAEG;IACH;QACI,KAAK,CAAC;YACF,QAAQ,EAAE,gBAAgB;YAC1B,SAAS,EAAE,EAAE,wBAAwB,CAAC,OAAO,EAAE,sBAAsB;SACxE,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,KAAK;QACR,OAAO,6BAA6B,CAAC;IACzC,CAAC;IAED;;OAEG;IACU,QAAQ;;YACjB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;KAAA;;AA7BL,4DA8BC;AA7BG;;;GAGG;AACY,gCAAO,GAAG,CAAC,CAAC;AA2B/B;;;GAGG;AACH,SAAe,KAAK,CAAC,EAAU;;QAC3B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;CAAA"}
|