@blumintinc/typescript-memoize 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,249 +1,250 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.clear = exports.MemoizeExpiring = exports.Memoize = void 0;
13
- var equal = require('fast-deep-equal');
14
- function Memoize(args) {
15
- var _a;
16
- var hashFunction;
17
- var duration;
18
- var tags;
19
- var useDeepEqual = true;
20
- if (typeof args === 'object') {
21
- hashFunction = args.hashFunction;
22
- duration = args.expiring;
23
- tags = args.tags;
24
- useDeepEqual = (_a = args.useDeepEqual) !== null && _a !== void 0 ? _a : true;
25
- }
26
- else {
27
- hashFunction = args;
28
- }
29
- return function (target, propertyKey, descriptor) {
30
- if (descriptor.value != null) {
31
- descriptor.value = getNewFunction(descriptor.value, hashFunction, duration, tags, useDeepEqual);
32
- }
33
- else if (descriptor.get != null) {
34
- descriptor.get = getNewFunction(descriptor.get, hashFunction, duration, tags, useDeepEqual);
35
- }
36
- else {
37
- throw 'Only put a Memoize() decorator on a method or get accessor.';
38
- }
39
- };
40
- }
41
- exports.Memoize = Memoize;
42
- function MemoizeExpiring(expiring, hashFunction) {
43
- return Memoize({
44
- expiring: expiring,
45
- hashFunction: hashFunction
46
- });
47
- }
48
- exports.MemoizeExpiring = MemoizeExpiring;
49
- var clearCacheTagsMap = new Map();
50
- function clear(tags) {
51
- var cleared = new Set();
52
- for (var _i = 0, tags_1 = tags; _i < tags_1.length; _i++) {
53
- var tag = tags_1[_i];
54
- var maps = clearCacheTagsMap.get(tag);
55
- if (maps) {
56
- for (var _a = 0, maps_1 = maps; _a < maps_1.length; _a++) {
57
- var mp = maps_1[_a];
58
- if (!cleared.has(mp)) {
59
- mp.clear();
60
- cleared.add(mp);
61
- }
62
- }
63
- }
64
- }
65
- return cleared.size;
66
- }
67
- exports.clear = clear;
68
- var DeepEqualMap = (function () {
69
- function DeepEqualMap() {
70
- this.map = new Map();
71
- }
72
- DeepEqualMap.prototype.has = function (key) {
73
- var entries = Array.from(this.map.values());
74
- for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
75
- var entry = entries_1[_i];
76
- if (equal(entry.key, key)) {
77
- return true;
78
- }
79
- }
80
- return false;
81
- };
82
- DeepEqualMap.prototype.get = function (key) {
83
- var entries = Array.from(this.map.values());
84
- for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {
85
- var entry = entries_2[_i];
86
- if (equal(entry.key, key)) {
87
- return entry.value;
88
- }
89
- }
90
- return undefined;
91
- };
92
- DeepEqualMap.prototype.set = function (key, value) {
93
- var entries = Array.from(this.map.entries());
94
- for (var _i = 0, entries_3 = entries; _i < entries_3.length; _i++) {
95
- var _a = entries_3[_i], serializedKey_1 = _a[0], entry = _a[1];
96
- if (equal(entry.key, key)) {
97
- this.map.delete(serializedKey_1);
98
- break;
99
- }
100
- }
101
- var serializedKey = Date.now() + "_" + Math.random();
102
- this.map.set(serializedKey, { key: key, value: value });
103
- return this;
104
- };
105
- DeepEqualMap.prototype.clear = function () {
106
- this.map.clear();
107
- };
108
- return DeepEqualMap;
109
- }());
110
- function getNewFunction(originalMethod, hashFunction, duration, tags, useDeepEqual) {
111
- if (duration === void 0) { duration = 0; }
112
- if (useDeepEqual === void 0) { useDeepEqual = true; }
113
- var propMapName = Symbol("__memoized_map__");
114
- var propDeepMapName = Symbol("__memoized_deep_map__");
115
- return function () {
116
- var args = [];
117
- for (var _i = 0; _i < arguments.length; _i++) {
118
- args[_i] = arguments[_i];
119
- }
120
- var returnedValue;
121
- if (useDeepEqual) {
122
- if (!this.hasOwnProperty(propDeepMapName)) {
123
- Object.defineProperty(this, propDeepMapName, {
124
- configurable: false,
125
- enumerable: false,
126
- writable: false,
127
- value: new DeepEqualMap()
128
- });
129
- }
130
- var myMap_1 = this[propDeepMapName];
131
- if (Array.isArray(tags)) {
132
- for (var _a = 0, tags_2 = tags; _a < tags_2.length; _a++) {
133
- var tag = tags_2[_a];
134
- var mapWrapper = {
135
- clear: function () { return myMap_1.clear(); }
136
- };
137
- if (clearCacheTagsMap.has(tag)) {
138
- clearCacheTagsMap.get(tag).push(mapWrapper);
139
- }
140
- else {
141
- clearCacheTagsMap.set(tag, [mapWrapper]);
142
- }
143
- }
144
- }
145
- var hashKey = void 0;
146
- if (hashFunction === true) {
147
- hashKey = args;
148
- }
149
- else if (hashFunction) {
150
- hashKey = hashFunction.apply(this, args);
151
- }
152
- else if (args.length > 0) {
153
- hashKey = args.length === 1 ? args[0] : args;
154
- }
155
- else {
156
- hashKey = this;
157
- }
158
- var timestampKey = { __timestamp: true, key: hashKey };
159
- var isExpired = false;
160
- if (duration > 0) {
161
- if (!myMap_1.has(timestampKey)) {
162
- isExpired = true;
163
- }
164
- else {
165
- var timestamp = myMap_1.get(timestampKey);
166
- isExpired = (Date.now() - timestamp) > duration;
167
- }
168
- }
169
- if (myMap_1.has(hashKey) && !isExpired) {
170
- returnedValue = myMap_1.get(hashKey);
171
- }
172
- else {
173
- returnedValue = originalMethod.apply(this, args);
174
- myMap_1.set(hashKey, returnedValue);
175
- if (duration > 0) {
176
- myMap_1.set(timestampKey, Date.now());
177
- }
178
- }
179
- }
180
- else {
181
- if (!this.hasOwnProperty(propMapName)) {
182
- Object.defineProperty(this, propMapName, {
183
- configurable: false,
184
- enumerable: false,
185
- writable: false,
186
- value: new Map()
187
- });
188
- }
189
- var myMap = this[propMapName];
190
- if (Array.isArray(tags)) {
191
- for (var _b = 0, tags_3 = tags; _b < tags_3.length; _b++) {
192
- var tag = tags_3[_b];
193
- if (clearCacheTagsMap.has(tag)) {
194
- clearCacheTagsMap.get(tag).push(myMap);
195
- }
196
- else {
197
- clearCacheTagsMap.set(tag, [myMap]);
198
- }
199
- }
200
- }
201
- if (hashFunction || args.length > 0 || duration > 0) {
202
- var hashKey = void 0;
203
- if (hashFunction === true) {
204
- hashKey = args.map(function (a) { return a.toString(); }).join('!');
205
- }
206
- else if (hashFunction) {
207
- hashKey = hashFunction.apply(this, args);
208
- }
209
- else {
210
- hashKey = args[0];
211
- }
212
- var timestampKey = hashKey + "__timestamp";
213
- var isExpired = false;
214
- if (duration > 0) {
215
- if (!myMap.has(timestampKey)) {
216
- isExpired = true;
217
- }
218
- else {
219
- var timestamp = myMap.get(timestampKey);
220
- isExpired = (Date.now() - timestamp) > duration;
221
- }
222
- }
223
- if (myMap.has(hashKey) && !isExpired) {
224
- returnedValue = myMap.get(hashKey);
225
- }
226
- else {
227
- returnedValue = originalMethod.apply(this, args);
228
- myMap.set(hashKey, returnedValue);
229
- if (duration > 0) {
230
- myMap.set(timestampKey, Date.now());
231
- }
232
- }
233
- }
234
- else {
235
- var hashKey = this;
236
- if (myMap.has(hashKey)) {
237
- returnedValue = myMap.get(hashKey);
238
- }
239
- else {
240
- returnedValue = originalMethod.apply(this, args);
241
- myMap.set(hashKey, returnedValue);
242
- }
243
- }
244
- }
245
- return returnedValue;
246
- };
247
- }
248
- });
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "tslib", "@blumintinc/fast-deep-equal"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.clear = exports.MemoizeExpiring = exports.Memoize = void 0;
13
+ var tslib_1 = require("tslib");
14
+ var fast_deep_equal_1 = tslib_1.__importDefault(require("@blumintinc/fast-deep-equal"));
15
+ function Memoize(args) {
16
+ var _a;
17
+ var hashFunction;
18
+ var duration;
19
+ var tags;
20
+ var useDeepEqual = true;
21
+ if (typeof args === 'object') {
22
+ hashFunction = args.hashFunction;
23
+ duration = args.expiring;
24
+ tags = args.tags;
25
+ useDeepEqual = (_a = args.useDeepEqual) !== null && _a !== void 0 ? _a : true;
26
+ }
27
+ else {
28
+ hashFunction = args;
29
+ }
30
+ return function (target, propertyKey, descriptor) {
31
+ if (descriptor.value != null) {
32
+ descriptor.value = getNewFunction(descriptor.value, hashFunction, duration, tags, useDeepEqual);
33
+ }
34
+ else if (descriptor.get != null) {
35
+ descriptor.get = getNewFunction(descriptor.get, hashFunction, duration, tags, useDeepEqual);
36
+ }
37
+ else {
38
+ throw 'Only put a Memoize() decorator on a method or get accessor.';
39
+ }
40
+ };
41
+ }
42
+ exports.Memoize = Memoize;
43
+ function MemoizeExpiring(expiring, hashFunction) {
44
+ return Memoize({
45
+ expiring: expiring,
46
+ hashFunction: hashFunction
47
+ });
48
+ }
49
+ exports.MemoizeExpiring = MemoizeExpiring;
50
+ var clearCacheTagsMap = new Map();
51
+ function clear(tags) {
52
+ var cleared = new Set();
53
+ for (var _i = 0, tags_1 = tags; _i < tags_1.length; _i++) {
54
+ var tag = tags_1[_i];
55
+ var maps = clearCacheTagsMap.get(tag);
56
+ if (maps) {
57
+ for (var _a = 0, maps_1 = maps; _a < maps_1.length; _a++) {
58
+ var mp = maps_1[_a];
59
+ if (!cleared.has(mp)) {
60
+ mp.clear();
61
+ cleared.add(mp);
62
+ }
63
+ }
64
+ }
65
+ }
66
+ return cleared.size;
67
+ }
68
+ exports.clear = clear;
69
+ var DeepEqualMap = (function () {
70
+ function DeepEqualMap() {
71
+ this.map = new Map();
72
+ }
73
+ DeepEqualMap.prototype.has = function (key) {
74
+ var entries = Array.from(this.map.values());
75
+ for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
76
+ var entry = entries_1[_i];
77
+ if (fast_deep_equal_1.default(entry.key, key)) {
78
+ return true;
79
+ }
80
+ }
81
+ return false;
82
+ };
83
+ DeepEqualMap.prototype.get = function (key) {
84
+ var entries = Array.from(this.map.values());
85
+ for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {
86
+ var entry = entries_2[_i];
87
+ if (fast_deep_equal_1.default(entry.key, key)) {
88
+ return entry.value;
89
+ }
90
+ }
91
+ return undefined;
92
+ };
93
+ DeepEqualMap.prototype.set = function (key, value) {
94
+ var entries = Array.from(this.map.entries());
95
+ for (var _i = 0, entries_3 = entries; _i < entries_3.length; _i++) {
96
+ var _a = entries_3[_i], serializedKey_1 = _a[0], entry = _a[1];
97
+ if (fast_deep_equal_1.default(entry.key, key)) {
98
+ this.map.delete(serializedKey_1);
99
+ break;
100
+ }
101
+ }
102
+ var serializedKey = Date.now() + "_" + Math.random();
103
+ this.map.set(serializedKey, { key: key, value: value });
104
+ return this;
105
+ };
106
+ DeepEqualMap.prototype.clear = function () {
107
+ this.map.clear();
108
+ };
109
+ return DeepEqualMap;
110
+ }());
111
+ function getNewFunction(originalMethod, hashFunction, duration, tags, useDeepEqual) {
112
+ if (duration === void 0) { duration = 0; }
113
+ if (useDeepEqual === void 0) { useDeepEqual = true; }
114
+ var propMapName = Symbol("__memoized_map__");
115
+ var propDeepMapName = Symbol("__memoized_deep_map__");
116
+ return function () {
117
+ var args = [];
118
+ for (var _i = 0; _i < arguments.length; _i++) {
119
+ args[_i] = arguments[_i];
120
+ }
121
+ var returnedValue;
122
+ if (useDeepEqual) {
123
+ if (!this.hasOwnProperty(propDeepMapName)) {
124
+ Object.defineProperty(this, propDeepMapName, {
125
+ configurable: false,
126
+ enumerable: false,
127
+ writable: false,
128
+ value: new DeepEqualMap()
129
+ });
130
+ }
131
+ var myMap_1 = this[propDeepMapName];
132
+ if (Array.isArray(tags)) {
133
+ for (var _a = 0, tags_2 = tags; _a < tags_2.length; _a++) {
134
+ var tag = tags_2[_a];
135
+ var mapWrapper = {
136
+ clear: function () { return myMap_1.clear(); }
137
+ };
138
+ if (clearCacheTagsMap.has(tag)) {
139
+ clearCacheTagsMap.get(tag).push(mapWrapper);
140
+ }
141
+ else {
142
+ clearCacheTagsMap.set(tag, [mapWrapper]);
143
+ }
144
+ }
145
+ }
146
+ var hashKey = void 0;
147
+ if (hashFunction === true) {
148
+ hashKey = args;
149
+ }
150
+ else if (hashFunction) {
151
+ hashKey = hashFunction.apply(this, args);
152
+ }
153
+ else if (args.length > 0) {
154
+ hashKey = args.length === 1 ? args[0] : args;
155
+ }
156
+ else {
157
+ hashKey = this;
158
+ }
159
+ var timestampKey = { __timestamp: true, key: hashKey };
160
+ var isExpired = false;
161
+ if (duration > 0) {
162
+ if (!myMap_1.has(timestampKey)) {
163
+ isExpired = true;
164
+ }
165
+ else {
166
+ var timestamp = myMap_1.get(timestampKey);
167
+ isExpired = (Date.now() - timestamp) > duration;
168
+ }
169
+ }
170
+ if (myMap_1.has(hashKey) && !isExpired) {
171
+ returnedValue = myMap_1.get(hashKey);
172
+ }
173
+ else {
174
+ returnedValue = originalMethod.apply(this, args);
175
+ myMap_1.set(hashKey, returnedValue);
176
+ if (duration > 0) {
177
+ myMap_1.set(timestampKey, Date.now());
178
+ }
179
+ }
180
+ }
181
+ else {
182
+ if (!this.hasOwnProperty(propMapName)) {
183
+ Object.defineProperty(this, propMapName, {
184
+ configurable: false,
185
+ enumerable: false,
186
+ writable: false,
187
+ value: new Map()
188
+ });
189
+ }
190
+ var myMap = this[propMapName];
191
+ if (Array.isArray(tags)) {
192
+ for (var _b = 0, tags_3 = tags; _b < tags_3.length; _b++) {
193
+ var tag = tags_3[_b];
194
+ if (clearCacheTagsMap.has(tag)) {
195
+ clearCacheTagsMap.get(tag).push(myMap);
196
+ }
197
+ else {
198
+ clearCacheTagsMap.set(tag, [myMap]);
199
+ }
200
+ }
201
+ }
202
+ if (hashFunction || args.length > 0 || duration > 0) {
203
+ var hashKey = void 0;
204
+ if (hashFunction === true) {
205
+ hashKey = args.map(function (a) { return a.toString(); }).join('!');
206
+ }
207
+ else if (hashFunction) {
208
+ hashKey = hashFunction.apply(this, args);
209
+ }
210
+ else {
211
+ hashKey = args[0];
212
+ }
213
+ var timestampKey = hashKey + "__timestamp";
214
+ var isExpired = false;
215
+ if (duration > 0) {
216
+ if (!myMap.has(timestampKey)) {
217
+ isExpired = true;
218
+ }
219
+ else {
220
+ var timestamp = myMap.get(timestampKey);
221
+ isExpired = (Date.now() - timestamp) > duration;
222
+ }
223
+ }
224
+ if (myMap.has(hashKey) && !isExpired) {
225
+ returnedValue = myMap.get(hashKey);
226
+ }
227
+ else {
228
+ returnedValue = originalMethod.apply(this, args);
229
+ myMap.set(hashKey, returnedValue);
230
+ if (duration > 0) {
231
+ myMap.set(timestampKey, Date.now());
232
+ }
233
+ }
234
+ }
235
+ else {
236
+ var hashKey = this;
237
+ if (myMap.has(hashKey)) {
238
+ returnedValue = myMap.get(hashKey);
239
+ }
240
+ else {
241
+ returnedValue = originalMethod.apply(this, args);
242
+ myMap.set(hashKey, returnedValue);
243
+ }
244
+ }
245
+ }
246
+ return returnedValue;
247
+ };
248
+ }
249
+ });
249
250
  //# sourceMappingURL=memoize-decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-decorator.js","sourceRoot":"","sources":["../src/memoize-decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memoize-decorator.js","sourceRoot":"","sources":["../src/memoize-decorator.ts"],"names":[],"mappings":";;;;;;;;;;;;;IAAA,wFAAgD;IAUhD,SAAgB,OAAO,CAAC,IAAgD;;QACvE,IAAI,YAAyC,CAAC;QAC9C,IAAI,QAAiC,CAAC;QACtC,IAAI,IAAyB,CAAC;QAC9B,IAAI,YAAY,GAAgC,IAAI,CAAC;QAErD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC7B,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACjC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,YAAY,SAAG,IAAI,CAAC,YAAY,mCAAI,IAAI,CAAC;SACzC;aAAM;YACN,YAAY,GAAG,IAAI,CAAC;SACpB;QAED,OAAO,UAAC,MAAc,EAAE,WAAmB,EAAE,UAAwC;YACpF,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC7B,UAAU,CAAC,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;aAChG;iBAAM,IAAI,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE;gBAClC,UAAU,CAAC,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;aAC5F;iBAAM;gBACN,MAAM,6DAA6D,CAAC;aACpE;QACF,CAAC,CAAC;IACH,CAAC;IAxBD,0BAwBC;IAED,SAAgB,eAAe,CAAC,QAAgB,EAAE,YAA0C;QAC3F,OAAO,OAAO,CAAC;YACd,QAAQ,UAAA;YACR,YAAY,cAAA;SACZ,CAAC,CAAC;IACJ,CAAC;IALD,0CAKC;IAED,IAAM,iBAAiB,GAAiC,IAAI,GAAG,EAAE,CAAC;IAElE,SAAgB,KAAK,CAAE,IAAc;QACpC,IAAM,OAAO,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC9C,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YACb,IAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,IAAI,EAAE;gBACT,KAAiB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;oBAAlB,IAAM,EAAE,aAAA;oBACZ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;wBACrB,EAAE,CAAC,KAAK,EAAE,CAAC;wBACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;qBAChB;iBACD;aACD;SACD;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACrB,CAAC;IAdD,sBAcC;IAGD;QAAA;YACS,QAAG,GAAG,IAAI,GAAG,EAAgC,CAAC;QAuCvD,CAAC;QArCA,0BAAG,GAAH,UAAI,GAAM;YACT,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,KAAoB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;gBAAxB,IAAM,KAAK,gBAAA;gBACf,IAAI,yBAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;oBAC1B,OAAO,IAAI,CAAC;iBACZ;aACD;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAED,0BAAG,GAAH,UAAI,GAAM;YACT,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,KAAoB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;gBAAxB,IAAM,KAAK,gBAAA;gBACf,IAAI,yBAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;oBAC1B,OAAO,KAAK,CAAC,KAAK,CAAC;iBACnB;aACD;YACD,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,0BAAG,GAAH,UAAI,GAAM,EAAE,KAAQ;YACnB,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,KAAqC,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;gBAAnC,IAAA,kBAAsB,EAArB,eAAa,QAAA,EAAE,KAAK,QAAA;gBAC/B,IAAI,yBAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAa,CAAC,CAAC;oBAC/B,MAAM;iBACN;aACD;YAED,IAAM,aAAa,GAAM,IAAI,CAAC,GAAG,EAAE,SAAI,IAAI,CAAC,MAAM,EAAI,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,KAAA,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,4BAAK,GAAL;YACC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACF,mBAAC;IAAD,CAAC,AAxCD,IAwCC;IAED,SAAS,cAAc,CACtB,cAA0B,EAC1B,YAA0C,EAC1C,QAAoB,EACpB,IAA0B,EAC1B,YAA4B;QAF5B,yBAAA,EAAA,YAAoB;QAEpB,6BAAA,EAAA,mBAA4B;QAE5B,IAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC/C,IAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAGxD,OAAO;YAAU,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAC9B,IAAI,aAAkB,CAAC;YAGvB,IAAI,YAAY,EAAE;gBACjB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;oBAC1C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE;wBAC5C,YAAY,EAAE,KAAK;wBACnB,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,KAAK;wBACf,KAAK,EAAE,IAAI,YAAY,EAAY;qBACnC,CAAC,CAAC;iBACH;gBACD,IAAI,OAAK,GAA2B,IAAI,CAAC,eAAe,CAAC,CAAC;gBAE1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACxB,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;wBAAnB,IAAM,GAAG,aAAA;wBAGb,IAAM,UAAU,GAAG;4BAClB,KAAK,EAAE,cAAM,OAAA,OAAK,CAAC,KAAK,EAAE,EAAb,CAAa;yBACnB,CAAC;wBAET,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BAC/B,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBAC5C;6BAAM;4BACN,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;yBACzC;qBACD;iBACD;gBAED,IAAI,OAAO,SAAK,CAAC;gBAGjB,IAAI,YAAY,KAAK,IAAI,EAAE;oBAC1B,OAAO,GAAG,IAAI,CAAC;iBACf;qBAAM,IAAI,YAAY,EAAE;oBACxB,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACzC;qBAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC7C;qBAAM;oBACN,OAAO,GAAG,IAAI,CAAC;iBACf;gBAGD,IAAM,YAAY,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;gBACzD,IAAI,SAAS,GAAY,KAAK,CAAC;gBAE/B,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACjB,IAAI,CAAC,OAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;wBAC7B,SAAS,GAAG,IAAI,CAAC;qBACjB;yBAAM;wBACN,IAAI,SAAS,GAAG,OAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wBACxC,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC;qBAChD;iBACD;gBAED,IAAI,OAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;oBACrC,aAAa,GAAG,OAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;iBACnC;qBAAM;oBACN,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjD,OAAK,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;oBAClC,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACjB,OAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;qBACpC;iBACD;aACD;iBAAM;gBAEN,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;oBACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;wBACxC,YAAY,EAAE,KAAK;wBACnB,UAAU,EAAE,KAAK;wBACjB,QAAQ,EAAE,KAAK;wBACf,KAAK,EAAE,IAAI,GAAG,EAAY;qBAC1B,CAAC,CAAC;iBACH;gBACD,IAAI,KAAK,GAAkB,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACxB,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;wBAAnB,IAAM,GAAG,aAAA;wBACb,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BAC/B,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACvC;6BAAM;4BACN,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;yBACpC;qBACD;iBACD;gBAED,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;oBACpD,IAAI,OAAO,SAAK,CAAC;oBAGjB,IAAI,YAAY,KAAK,IAAI,EAAE;wBAC1B,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,QAAQ,EAAE,EAAZ,CAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAChD;yBAAM,IAAI,YAAY,EAAE;wBACxB,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACzC;yBAAM;wBACN,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;qBAClB;oBAED,IAAM,YAAY,GAAM,OAAO,gBAAa,CAAC;oBAC7C,IAAI,SAAS,GAAY,KAAK,CAAC;oBAC/B,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;4BAE7B,SAAS,GAAG,IAAI,CAAC;yBACjB;6BAAM;4BACN,IAAI,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BACxC,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC;yBAChD;qBACD;oBAED,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;wBACrC,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;qBACnC;yBAAM;wBACN,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACjD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;wBAClC,IAAI,QAAQ,GAAG,CAAC,EAAE;4BACjB,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;yBACpC;qBACD;iBAED;qBAAM;oBACN,IAAM,OAAO,GAAG,IAAI,CAAC;oBACrB,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBACvB,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;qBACnC;yBAAM;wBACN,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACjD,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;qBAClC;iBACD;aACD;YAED,OAAO,aAAa,CAAC;QACtB,CAAC,CAAC;IACH,CAAC"}