inray 0.0.2 → 0.0.4
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/LICENSE.md +1 -0
- package/README.md +220 -36
- package/dist/async/abortable.d.ts +2 -2
- package/dist/async/abortable.d.ts.map +1 -1
- package/dist/async/abortable.js.map +1 -1
- package/dist/caching/mod.d.ts +2 -0
- package/dist/caching/mod.d.ts.map +1 -0
- package/dist/caching/mod.js +2 -0
- package/dist/caching/mod.js.map +1 -0
- package/dist/caching/src/cache.d.ts +89 -0
- package/dist/caching/src/cache.d.ts.map +1 -0
- package/dist/caching/src/cache.js +309 -0
- package/dist/caching/src/cache.js.map +1 -0
- package/dist/caching/src/hashing/cache.d.ts +92 -0
- package/dist/caching/src/hashing/cache.d.ts.map +1 -0
- package/dist/caching/src/hashing/cache.js +119 -0
- package/dist/caching/src/hashing/cache.js.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts +157 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.js +333 -0
- package/dist/caching/src/hashing/hooks/eventified.js.map +1 -0
- package/dist/caching/src/hashing/hooks/index.d.ts +199 -0
- package/dist/caching/src/hashing/hooks/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/index.js +383 -0
- package/dist/caching/src/hashing/hooks/index.js.map +1 -0
- package/dist/caching/src/hashing/hooks/types.d.ts +217 -0
- package/dist/caching/src/hashing/hooks/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/types.js +10 -0
- package/dist/caching/src/hashing/hooks/types.js.map +1 -0
- package/dist/caching/src/hashing/index.d.ts +236 -0
- package/dist/caching/src/hashing/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/index.js +447 -0
- package/dist/caching/src/hashing/index.js.map +1 -0
- package/dist/caching/src/hashing/providers/crc.d.ts +15 -0
- package/dist/caching/src/hashing/providers/crc.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crc.js +49 -0
- package/dist/caching/src/hashing/providers/crc.js.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts +19 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.js +28 -0
- package/dist/caching/src/hashing/providers/crypto.js.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts +60 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.js +92 -0
- package/dist/caching/src/hashing/providers/djb2.js.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts +33 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.js +68 -0
- package/dist/caching/src/hashing/providers/fnv1.js.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts +81 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.js +173 -0
- package/dist/caching/src/hashing/providers/murmur.js.map +1 -0
- package/dist/caching/src/hashing/providers.d.ts +126 -0
- package/dist/caching/src/hashing/providers.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers.js +163 -0
- package/dist/caching/src/hashing/providers.js.map +1 -0
- package/dist/caching/src/hashing/types.d.ts +340 -0
- package/dist/caching/src/hashing/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/types.js +10 -0
- package/dist/caching/src/hashing/types.js.map +1 -0
- package/dist/caching/src/keyValue/capabilities.d.ts +161 -0
- package/dist/caching/src/keyValue/capabilities.d.ts.map +1 -0
- package/dist/caching/src/keyValue/capabilities.js +334 -0
- package/dist/caching/src/keyValue/capabilities.js.map +1 -0
- package/dist/caching/src/keyValue/event-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/event-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/event-manager.js +88 -0
- package/dist/caching/src/keyValue/event-manager.js.map +1 -0
- package/dist/caching/src/keyValue/generic-store.d.ts +243 -0
- package/dist/caching/src/keyValue/generic-store.d.ts.map +1 -0
- package/dist/caching/src/keyValue/generic-store.js +295 -0
- package/dist/caching/src/keyValue/generic-store.js.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts +21 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.js +59 -0
- package/dist/caching/src/keyValue/hooks-manager.js.map +1 -0
- package/dist/caching/src/keyValue/index.d.ts +334 -0
- package/dist/caching/src/keyValue/index.d.ts.map +1 -0
- package/dist/caching/src/keyValue/index.js +796 -0
- package/dist/caching/src/keyValue/index.js.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts +12 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.js +64 -0
- package/dist/caching/src/keyValue/serialize/serialize.js.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.js +64 -0
- package/dist/caching/src/keyValue/stats-manager.js.map +1 -0
- package/dist/caching/src/keyValue/types.d.ts +22 -0
- package/dist/caching/src/keyValue/types.d.ts.map +1 -0
- package/dist/caching/src/keyValue/types.js +11 -0
- package/dist/caching/src/keyValue/types.js.map +1 -0
- package/dist/caching/src/keyv-adapter.d.ts +40 -0
- package/dist/caching/src/keyv-adapter.d.ts.map +1 -0
- package/dist/caching/src/keyv-adapter.js +56 -0
- package/dist/caching/src/keyv-adapter.js.map +1 -0
- package/dist/caching/src/utils/cache-tags.d.ts +275 -0
- package/dist/caching/src/utils/cache-tags.d.ts.map +1 -0
- package/dist/caching/src/utils/cache-tags.js +407 -0
- package/dist/caching/src/utils/cache-tags.js.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts +35 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.js +10 -0
- package/dist/caching/src/utils/cacheable-item-types.js.map +1 -0
- package/dist/caching/src/utils/coalesce-async.d.ts +29 -0
- package/dist/caching/src/utils/coalesce-async.d.ts.map +1 -0
- package/dist/caching/src/utils/coalesce-async.js +88 -0
- package/dist/caching/src/utils/coalesce-async.js.map +1 -0
- package/dist/caching/src/utils/hash.d.ts +55 -0
- package/dist/caching/src/utils/hash.d.ts.map +1 -0
- package/dist/caching/src/utils/hash.js +116 -0
- package/dist/caching/src/utils/hash.js.map +1 -0
- package/dist/caching/src/utils/index.d.ts +24 -0
- package/dist/caching/src/utils/index.d.ts.map +1 -0
- package/dist/caching/src/utils/index.js +21 -0
- package/dist/caching/src/utils/index.js.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts +10 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.js +37 -0
- package/dist/caching/src/utils/is-keyv-instance.js.map +1 -0
- package/dist/caching/src/utils/is-object.d.ts +10 -0
- package/dist/caching/src/utils/is-object.d.ts.map +1 -0
- package/dist/caching/src/utils/is-object.js +13 -0
- package/dist/caching/src/utils/is-object.js.map +1 -0
- package/dist/caching/src/utils/less-than.d.ts +10 -0
- package/dist/caching/src/utils/less-than.d.ts.map +1 -0
- package/dist/caching/src/utils/less-than.js +13 -0
- package/dist/caching/src/utils/less-than.js.map +1 -0
- package/dist/caching/src/utils/memoize.d.ts +107 -0
- package/dist/caching/src/utils/memoize.d.ts.map +1 -0
- package/dist/caching/src/utils/memoize.js +201 -0
- package/dist/caching/src/utils/memoize.js.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts +28 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.js +87 -0
- package/dist/caching/src/utils/mock-cacheable.js.map +1 -0
- package/dist/caching/src/utils/run-if-fn.d.ts +12 -0
- package/dist/caching/src/utils/run-if-fn.d.ts.map +1 -0
- package/dist/caching/src/utils/run-if-fn.js +12 -0
- package/dist/caching/src/utils/run-if-fn.js.map +1 -0
- package/dist/caching/src/utils/shorthand-time.d.ts +27 -0
- package/dist/caching/src/utils/shorthand-time.d.ts.map +1 -0
- package/dist/caching/src/utils/shorthand-time.js +96 -0
- package/dist/caching/src/utils/shorthand-time.js.map +1 -0
- package/dist/caching/src/utils/sleep.d.ts +10 -0
- package/dist/caching/src/utils/sleep.d.ts.map +1 -0
- package/dist/caching/src/utils/sleep.js +11 -0
- package/dist/caching/src/utils/sleep.js.map +1 -0
- package/dist/caching/src/utils/stats.d.ts +354 -0
- package/dist/caching/src/utils/stats.d.ts.map +1 -0
- package/dist/caching/src/utils/stats.js +593 -0
- package/dist/caching/src/utils/stats.js.map +1 -0
- package/dist/caching/src/utils/ttl.d.ts +58 -0
- package/dist/caching/src/utils/ttl.d.ts.map +1 -0
- package/dist/caching/src/utils/ttl.js +77 -0
- package/dist/caching/src/utils/ttl.js.map +1 -0
- package/dist/logtape/logtape/level.d.ts +1 -2
- package/dist/logtape/logtape/level.d.ts.map +1 -1
- package/dist/logtape/logtape/level.js +1 -1
- package/dist/logtape/logtape/level.js.map +1 -1
- package/dist/logtape/logtape/mod.d.ts +1 -1
- package/dist/logtape/logtape/mod.d.ts.map +1 -1
- package/dist/logtape/logtape/mod.js +1 -1
- package/dist/logtape/logtape/mod.js.map +1 -1
- package/dist/utils/mod.d.ts +1 -1
- package/dist/utils/mod.d.ts.map +1 -1
- package/dist/utils/mod.js.map +1 -1
- package/dist/utils/validation/inRangeOfMaxInt32.d.ts +2 -0
- package/dist/utils/validation/inRangeOfMaxInt32.d.ts.map +1 -0
- package/dist/utils/validation/inRangeOfMaxInt32.js +4 -0
- package/dist/utils/validation/inRangeOfMaxInt32.js.map +1 -0
- package/dist/utils/validation/isEmail.d.ts +2 -0
- package/dist/utils/validation/isEmail.d.ts.map +1 -0
- package/dist/utils/validation/isEmail.js +7 -0
- package/dist/utils/validation/isEmail.js.map +1 -0
- package/dist/utils/validation/isEmptyObject.d.ts +9 -0
- package/dist/utils/validation/isEmptyObject.d.ts.map +1 -0
- package/dist/utils/validation/isEmptyObject.js +16 -0
- package/dist/utils/validation/isEmptyObject.js.map +1 -0
- package/dist/utils/validation/isNotEmptyString.d.ts +7 -0
- package/dist/utils/validation/isNotEmptyString.d.ts.map +1 -0
- package/dist/utils/validation/isNotEmptyString.js +17 -0
- package/dist/utils/validation/isNotEmptyString.js.map +1 -0
- package/dist/utils/validation/isPositiveInteger.d.ts +2 -0
- package/dist/utils/validation/isPositiveInteger.d.ts.map +1 -0
- package/dist/utils/validation/isPositiveInteger.js +7 -0
- package/dist/utils/validation/isPositiveInteger.js.map +1 -0
- package/dist/utils/validation/isUuid.d.ts +2 -0
- package/dist/utils/validation/isUuid.d.ts.map +1 -0
- package/dist/utils/validation/isUuid.js +7 -0
- package/dist/utils/validation/isUuid.js.map +1 -0
- package/dist/utils/validation/isUuidArray.d.ts +2 -0
- package/dist/utils/validation/isUuidArray.d.ts.map +1 -0
- package/dist/utils/validation/isUuidArray.js +7 -0
- package/dist/utils/validation/isUuidArray.js.map +1 -0
- package/dist/utils/validation/isValidFileName.d.ts +2 -0
- package/dist/utils/validation/isValidFileName.d.ts.map +1 -0
- package/dist/utils/validation/isValidFileName.js +33 -0
- package/dist/utils/validation/isValidFileName.js.map +1 -0
- package/dist/utils/validation/isValidUrlLike.d.ts +6 -0
- package/dist/utils/validation/isValidUrlLike.d.ts.map +1 -0
- package/dist/utils/validation/isValidUrlLike.js +8 -0
- package/dist/utils/validation/isValidUrlLike.js.map +1 -0
- package/dist/utils/validation/mod.d.ts +21 -0
- package/dist/utils/validation/mod.d.ts.map +1 -0
- package/dist/utils/validation/mod.js +21 -0
- package/dist/utils/validation/mod.js.map +1 -0
- package/dist/utils/validation/vEnvBoolean.d.ts +3 -0
- package/dist/utils/validation/vEnvBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vEnvBoolean.js +5 -0
- package/dist/utils/validation/vEnvBoolean.js.map +1 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts +3 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts.map +1 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.js +5 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.js.map +1 -0
- package/dist/utils/validation/vEnvLogLevel.d.ts +4 -0
- package/dist/utils/validation/vEnvLogLevel.d.ts.map +1 -0
- package/dist/utils/validation/vEnvLogLevel.js +6 -0
- package/dist/utils/validation/vEnvLogLevel.js.map +1 -0
- package/dist/utils/validation/vFileName.d.ts +4 -0
- package/dist/utils/validation/vFileName.d.ts.map +1 -0
- package/dist/utils/validation/vFileName.js +21 -0
- package/dist/utils/validation/vFileName.js.map +1 -0
- package/dist/utils/validation/vISO8601DateTime.d.ts +5 -0
- package/dist/utils/validation/vISO8601DateTime.d.ts.map +1 -0
- package/dist/utils/validation/vISO8601DateTime.js +37 -0
- package/dist/utils/validation/vISO8601DateTime.js.map +1 -0
- package/dist/utils/validation/vLatinInput.d.ts +3 -0
- package/dist/utils/validation/vLatinInput.d.ts.map +1 -0
- package/dist/utils/validation/vLatinInput.js +3 -0
- package/dist/utils/validation/vLatinInput.js.map +1 -0
- package/dist/utils/validation/vOmniBoolean.d.ts +3 -0
- package/dist/utils/validation/vOmniBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vOmniBoolean.js +10 -0
- package/dist/utils/validation/vOmniBoolean.js.map +1 -0
- package/dist/utils/validation/vQueryBoolean.d.ts +3 -0
- package/dist/utils/validation/vQueryBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vQueryBoolean.js +7 -0
- package/dist/utils/validation/vQueryBoolean.js.map +1 -0
- package/dist/utils/validation/vQueryEmailArray.d.ts +9 -0
- package/dist/utils/validation/vQueryEmailArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryEmailArray.js +29 -0
- package/dist/utils/validation/vQueryEmailArray.js.map +1 -0
- package/dist/utils/validation/vQueryNumberArray.d.ts +10 -0
- package/dist/utils/validation/vQueryNumberArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryNumberArray.js +32 -0
- package/dist/utils/validation/vQueryNumberArray.js.map +1 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts +3 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.js +25 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.js.map +1 -0
- package/dist/utils/validation/vQueryUuidArray.d.ts +9 -0
- package/dist/utils/validation/vQueryUuidArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryUuidArray.js +27 -0
- package/dist/utils/validation/vQueryUuidArray.js.map +1 -0
- package/package.json +19 -3
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: cache-manager (v7.2.9)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
import EventEmitter from 'node:events';
|
|
10
|
+
import { coalesceAsync, isObject, lessThan as lt, runIfFn } from "./utils/index.js";
|
|
11
|
+
import { Keyv } from "./keyValue/index.js";
|
|
12
|
+
const _storeLabel = (i) => (i === 0 ? 'primary' : `secondary:${i - 1}`);
|
|
13
|
+
export const createCache = (options) => {
|
|
14
|
+
const eventEmitter = new EventEmitter();
|
|
15
|
+
const keyv = new Keyv();
|
|
16
|
+
keyv.serialize = undefined;
|
|
17
|
+
keyv.deserialize = undefined;
|
|
18
|
+
const stores = options?.stores?.length ? options.stores : [keyv];
|
|
19
|
+
const nonBlocking = options?.nonBlocking ?? false;
|
|
20
|
+
const _cacheId = options?.cacheId ?? Math.random().toString(36).slice(2);
|
|
21
|
+
const get = async (key) => {
|
|
22
|
+
// biome-ignore lint/suspicious/noImplicitAnyLet: need to fix
|
|
23
|
+
let result;
|
|
24
|
+
if (nonBlocking) {
|
|
25
|
+
try {
|
|
26
|
+
result = await Promise.race(stores.map(async (store) => store.get(key)));
|
|
27
|
+
if (result === undefined) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
eventEmitter.emit('get', { key, error });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
for (let i = 0; i < stores.length; i++) {
|
|
37
|
+
const store = stores[i];
|
|
38
|
+
try {
|
|
39
|
+
const cacheValue = await store.get(key);
|
|
40
|
+
if (cacheValue !== undefined) {
|
|
41
|
+
result = cacheValue;
|
|
42
|
+
eventEmitter.emit('get', {
|
|
43
|
+
key,
|
|
44
|
+
value: result,
|
|
45
|
+
store: _storeLabel(i)
|
|
46
|
+
});
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
eventEmitter.emit('get', { key, error, store: _storeLabel(i) });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
const mget = async (keys) => {
|
|
58
|
+
let result = keys.map(() => undefined);
|
|
59
|
+
if (nonBlocking) {
|
|
60
|
+
try {
|
|
61
|
+
result = await Promise.race(stores.map(async (store) => store.getMany(keys)));
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
eventEmitter.emit('mget', { keys, error });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
for (const store of stores) {
|
|
69
|
+
try {
|
|
70
|
+
const missingValues = result
|
|
71
|
+
.map((value, index) => (value === undefined ? { originalIndex: index, key: keys[index] } : undefined))
|
|
72
|
+
.filter((v) => v !== undefined);
|
|
73
|
+
if (missingValues.length === 0) {
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
const missingKeys = missingValues.map((v) => v.key);
|
|
77
|
+
const cacheValue = await store.getMany(missingKeys);
|
|
78
|
+
for (const [index, value] of cacheValue.entries()) {
|
|
79
|
+
if (value === undefined) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const { originalIndex } = missingValues[index];
|
|
83
|
+
result[originalIndex] = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
eventEmitter.emit('mget', { keys, error });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
eventEmitter.emit('mget', { keys, values: result });
|
|
92
|
+
return result;
|
|
93
|
+
};
|
|
94
|
+
const ttl = async (key) => {
|
|
95
|
+
// biome-ignore lint/suspicious/noImplicitAnyLet: need to fix
|
|
96
|
+
let result;
|
|
97
|
+
if (nonBlocking) {
|
|
98
|
+
try {
|
|
99
|
+
result = await Promise.race(stores.map(async (store) => store.get(key, { raw: true })));
|
|
100
|
+
if (result === undefined) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
eventEmitter.emit('ttl', { key, error });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
for (const store of stores) {
|
|
110
|
+
try {
|
|
111
|
+
const cacheValue = await store.get(key, { raw: true });
|
|
112
|
+
if (cacheValue !== undefined) {
|
|
113
|
+
result = cacheValue;
|
|
114
|
+
eventEmitter.emit('ttl', { key, value: result });
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
eventEmitter.emit('ttl', { key, error });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (result?.expires) {
|
|
124
|
+
return result.expires;
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
};
|
|
128
|
+
const set = async (stores, key, value, ttl) => {
|
|
129
|
+
try {
|
|
130
|
+
const promises = stores.map(async (store, i) => {
|
|
131
|
+
await store.set(key, value, ttl ?? options?.ttl);
|
|
132
|
+
eventEmitter.emit('set', { key, value, store: _storeLabel(i) });
|
|
133
|
+
});
|
|
134
|
+
if (nonBlocking) {
|
|
135
|
+
Promise.all(promises);
|
|
136
|
+
eventEmitter.emit('set', { key, value });
|
|
137
|
+
return value;
|
|
138
|
+
}
|
|
139
|
+
await Promise.all(promises);
|
|
140
|
+
eventEmitter.emit('set', { key, value });
|
|
141
|
+
return value;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
eventEmitter.emit('set', { key, value, error });
|
|
145
|
+
return Promise.reject(error);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const mset = async (stores, rawList) => {
|
|
149
|
+
const list = rawList.map(({ key, value, ttl }) => ({
|
|
150
|
+
key,
|
|
151
|
+
value,
|
|
152
|
+
ttl: ttl ?? options?.ttl
|
|
153
|
+
}));
|
|
154
|
+
try {
|
|
155
|
+
const promises = stores.map(async (store) => store.setMany(list));
|
|
156
|
+
if (nonBlocking) {
|
|
157
|
+
Promise.all(promises);
|
|
158
|
+
eventEmitter.emit('mset', { list });
|
|
159
|
+
return list;
|
|
160
|
+
}
|
|
161
|
+
await Promise.all(promises);
|
|
162
|
+
eventEmitter.emit('mset', { list });
|
|
163
|
+
return list;
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
/* v8 ignore next -- @preserve */
|
|
167
|
+
eventEmitter.emit('mset', { list, error });
|
|
168
|
+
/* v8 ignore next -- @preserve */
|
|
169
|
+
return Promise.reject(error);
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const del = async (key) => {
|
|
173
|
+
try {
|
|
174
|
+
if (nonBlocking) {
|
|
175
|
+
Promise.all(stores.map(async (store) => store.delete(key)));
|
|
176
|
+
eventEmitter.emit('del', { key });
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
await Promise.all(stores.map(async (store) => store.delete(key)));
|
|
180
|
+
eventEmitter.emit('del', { key });
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
eventEmitter.emit('del', { key, error });
|
|
185
|
+
return Promise.reject(error);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
const mdel = async (keys) => {
|
|
189
|
+
try {
|
|
190
|
+
const promises = [];
|
|
191
|
+
for (const key of keys) {
|
|
192
|
+
promises.push(...stores.map(async (store) => store.delete(key)));
|
|
193
|
+
}
|
|
194
|
+
if (nonBlocking) {
|
|
195
|
+
Promise.all(promises);
|
|
196
|
+
eventEmitter.emit('mdel', { keys });
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
await Promise.all(promises);
|
|
200
|
+
eventEmitter.emit('mdel', { keys });
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
/* v8 ignore next -- @preserve */
|
|
205
|
+
eventEmitter.emit('mdel', { keys, error });
|
|
206
|
+
/* v8 ignore next -- @preserve */
|
|
207
|
+
return Promise.reject(error);
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
const clear = async () => {
|
|
211
|
+
try {
|
|
212
|
+
if (nonBlocking) {
|
|
213
|
+
Promise.all(stores.map(async (store) => store.clear()));
|
|
214
|
+
eventEmitter.emit('clear');
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
await Promise.all(stores.map(async (store) => store.clear()));
|
|
218
|
+
eventEmitter.emit('clear');
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
eventEmitter.emit('clear', error);
|
|
223
|
+
return Promise.reject(error);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
const wrap = async (key, fnc, ttlOrOptions, refreshThresholdParameter) => coalesceAsync(`${_cacheId}::${key}`, async () => {
|
|
227
|
+
let value;
|
|
228
|
+
let rawData;
|
|
229
|
+
let i = 0;
|
|
230
|
+
let remainingTtl;
|
|
231
|
+
const { ttl, refreshThreshold, raw } = isObject(ttlOrOptions)
|
|
232
|
+
? ttlOrOptions
|
|
233
|
+
: { ttl: ttlOrOptions, refreshThreshold: refreshThresholdParameter };
|
|
234
|
+
const resolveTtl = (result) => runIfFn(ttl, result) ?? options?.ttl;
|
|
235
|
+
for (; i < stores.length; i++) {
|
|
236
|
+
try {
|
|
237
|
+
const data = await stores[i].get(key, { raw: true });
|
|
238
|
+
if (data !== undefined) {
|
|
239
|
+
value = data.value;
|
|
240
|
+
rawData = data;
|
|
241
|
+
if (typeof data.expires === 'number') {
|
|
242
|
+
remainingTtl = Math.max(0, data.expires - Date.now());
|
|
243
|
+
}
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
//
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (value === undefined) {
|
|
252
|
+
const result = await fnc();
|
|
253
|
+
// biome-ignore lint/style/noNonNullAssertion: need to fix
|
|
254
|
+
const ttl = resolveTtl(result);
|
|
255
|
+
await set(stores, key, result, ttl);
|
|
256
|
+
return raw ? { value: result, expires: Date.now() + ttl } : result;
|
|
257
|
+
}
|
|
258
|
+
const shouldRefresh = lt(remainingTtl, runIfFn(refreshThreshold, value) ?? options?.refreshThreshold);
|
|
259
|
+
if (shouldRefresh) {
|
|
260
|
+
coalesceAsync(`+++${_cacheId}__${key}`, fnc)
|
|
261
|
+
.then(async (result) => {
|
|
262
|
+
try {
|
|
263
|
+
await set(options?.refreshAllStores ? stores : stores.slice(0, i + 1), key, result, resolveTtl(result));
|
|
264
|
+
eventEmitter.emit('refresh', { key, value: result });
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
eventEmitter.emit('refresh', { key, value, error });
|
|
268
|
+
}
|
|
269
|
+
})
|
|
270
|
+
.catch((error) => {
|
|
271
|
+
eventEmitter.emit('refresh', { key, value, error });
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
if (!shouldRefresh && i > 0) {
|
|
275
|
+
await set(stores.slice(0, i), key, value, resolveTtl(value));
|
|
276
|
+
}
|
|
277
|
+
return raw ? rawData : value;
|
|
278
|
+
});
|
|
279
|
+
const on = (event, listener) => eventEmitter.addListener(event, listener);
|
|
280
|
+
/* v8 ignore next -- @preserve */
|
|
281
|
+
const off = (event, listener) => eventEmitter.removeListener(event, listener);
|
|
282
|
+
const disconnect = async () => {
|
|
283
|
+
try {
|
|
284
|
+
await Promise.all(stores.map(async (store) => store.disconnect()));
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
return Promise.reject(error);
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
const cacheId = () => _cacheId;
|
|
291
|
+
return {
|
|
292
|
+
get,
|
|
293
|
+
mget,
|
|
294
|
+
ttl,
|
|
295
|
+
set: async (key, value, ttl) => set(stores, key, value, ttl),
|
|
296
|
+
mset: async (list) => mset(stores, list),
|
|
297
|
+
del,
|
|
298
|
+
mdel,
|
|
299
|
+
clear,
|
|
300
|
+
wrap,
|
|
301
|
+
on,
|
|
302
|
+
off,
|
|
303
|
+
disconnect,
|
|
304
|
+
cacheId,
|
|
305
|
+
stores
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
export { KeyvAdapter } from './keyv-adapter.js';
|
|
309
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/caching/src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: hashery (v1.5.1)
|
|
3
|
+
* - Copyright (c) 2025 Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* Configuration options for the Cache class.
|
|
11
|
+
*/
|
|
12
|
+
export type CacheOptions = {
|
|
13
|
+
/**
|
|
14
|
+
* Enable or disable the cache.
|
|
15
|
+
* Defaults to true (enabled).
|
|
16
|
+
*/
|
|
17
|
+
enabled?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Maximum number of items to store in the cache.
|
|
20
|
+
* Defaults to 4000. When limit is reached, oldest entries are evicted (FIFO).
|
|
21
|
+
*
|
|
22
|
+
* Note: JavaScript Map can hold up to 2^24 (~16.7 million) entries in most
|
|
23
|
+
* environments, but practical limits depend on available memory and key/value sizes.
|
|
24
|
+
* For hash caching, 4000-10000 entries is typically sufficient for most use cases.
|
|
25
|
+
*/
|
|
26
|
+
maxSize?: number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* A simple FIFO (First In, First Out) cache for storing hash values.
|
|
30
|
+
* When the cache reaches its maximum size, the oldest entries are evicted.
|
|
31
|
+
*
|
|
32
|
+
* The cache uses a JavaScript Map internally, which can theoretically hold up to
|
|
33
|
+
* 2^24 (~16.7 million) entries. However, practical limits depend on available memory
|
|
34
|
+
* and the size of cached keys/values. The default maxSize of 4000 provides a good
|
|
35
|
+
* balance between performance and memory usage for typical hash caching scenarios.
|
|
36
|
+
*/
|
|
37
|
+
export declare class Cache {
|
|
38
|
+
private _enabled;
|
|
39
|
+
private _maxSize;
|
|
40
|
+
private _store;
|
|
41
|
+
private _keys;
|
|
42
|
+
constructor(options?: CacheOptions);
|
|
43
|
+
/**
|
|
44
|
+
* Gets whether the cache is enabled.
|
|
45
|
+
*/
|
|
46
|
+
get enabled(): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Sets whether the cache is enabled.
|
|
49
|
+
*/
|
|
50
|
+
set enabled(value: boolean);
|
|
51
|
+
/**
|
|
52
|
+
* Gets the maximum number of items the cache can hold.
|
|
53
|
+
*/
|
|
54
|
+
get maxSize(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Sets the maximum number of items the cache can hold.
|
|
57
|
+
*/
|
|
58
|
+
set maxSize(value: number);
|
|
59
|
+
/**
|
|
60
|
+
* Gets the underlying Map store.
|
|
61
|
+
*/
|
|
62
|
+
get store(): Map<string, string>;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the current number of items in the cache.
|
|
65
|
+
*/
|
|
66
|
+
get size(): number;
|
|
67
|
+
/**
|
|
68
|
+
* Gets a value from the cache.
|
|
69
|
+
* @param key - The cache key
|
|
70
|
+
* @returns The cached value, or undefined if not found
|
|
71
|
+
*/
|
|
72
|
+
get(key: string): string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Sets a value in the cache with FIFO eviction.
|
|
75
|
+
* If the cache is disabled, this method does nothing.
|
|
76
|
+
* If the cache is at capacity, the oldest entry is removed before adding the new one.
|
|
77
|
+
* @param key - The cache key
|
|
78
|
+
* @param value - The value to cache
|
|
79
|
+
*/
|
|
80
|
+
set(key: string, value: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* Checks if a key exists in the cache.
|
|
83
|
+
* @param key - The cache key
|
|
84
|
+
* @returns True if the key exists, false otherwise
|
|
85
|
+
*/
|
|
86
|
+
has(key: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Clears all entries from the cache.
|
|
89
|
+
*/
|
|
90
|
+
clear(): void;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/hashing/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,KAAK,CAAgB;gBAEjB,OAAO,CAAC,EAAE,YAAY;IAUlC;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED;;OAEG;IACH,IAAW,OAAO,CAAC,KAAK,EAAE,OAAO,EAEhC;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,IAAW,OAAO,CAAC,KAAK,EAAE,MAAM,EAE/B;IAED;;OAEG;IACH,IAAW,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEtC;IAED;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C;;;;;;OAMG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAyB5C;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACI,KAAK,IAAI,IAAI;CAIrB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: hashery (v1.5.1)
|
|
3
|
+
* - Copyright (c) 2025 Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* A simple FIFO (First In, First Out) cache for storing hash values.
|
|
11
|
+
* When the cache reaches its maximum size, the oldest entries are evicted.
|
|
12
|
+
*
|
|
13
|
+
* The cache uses a JavaScript Map internally, which can theoretically hold up to
|
|
14
|
+
* 2^24 (~16.7 million) entries. However, practical limits depend on available memory
|
|
15
|
+
* and the size of cached keys/values. The default maxSize of 4000 provides a good
|
|
16
|
+
* balance between performance and memory usage for typical hash caching scenarios.
|
|
17
|
+
*/
|
|
18
|
+
export class Cache {
|
|
19
|
+
_enabled = true;
|
|
20
|
+
_maxSize = 4000;
|
|
21
|
+
_store = new Map();
|
|
22
|
+
_keys = [];
|
|
23
|
+
constructor(options) {
|
|
24
|
+
if (options?.enabled !== undefined) {
|
|
25
|
+
this._enabled = options.enabled;
|
|
26
|
+
}
|
|
27
|
+
if (options?.maxSize !== undefined) {
|
|
28
|
+
this._maxSize = options.maxSize;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gets whether the cache is enabled.
|
|
33
|
+
*/
|
|
34
|
+
get enabled() {
|
|
35
|
+
return this._enabled;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Sets whether the cache is enabled.
|
|
39
|
+
*/
|
|
40
|
+
set enabled(value) {
|
|
41
|
+
this._enabled = value;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Gets the maximum number of items the cache can hold.
|
|
45
|
+
*/
|
|
46
|
+
get maxSize() {
|
|
47
|
+
return this._maxSize;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Sets the maximum number of items the cache can hold.
|
|
51
|
+
*/
|
|
52
|
+
set maxSize(value) {
|
|
53
|
+
this._maxSize = value;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Gets the underlying Map store.
|
|
57
|
+
*/
|
|
58
|
+
get store() {
|
|
59
|
+
return this._store;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Gets the current number of items in the cache.
|
|
63
|
+
*/
|
|
64
|
+
get size() {
|
|
65
|
+
return this._store.size;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Gets a value from the cache.
|
|
69
|
+
* @param key - The cache key
|
|
70
|
+
* @returns The cached value, or undefined if not found
|
|
71
|
+
*/
|
|
72
|
+
get(key) {
|
|
73
|
+
return this._store.get(key);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Sets a value in the cache with FIFO eviction.
|
|
77
|
+
* If the cache is disabled, this method does nothing.
|
|
78
|
+
* If the cache is at capacity, the oldest entry is removed before adding the new one.
|
|
79
|
+
* @param key - The cache key
|
|
80
|
+
* @param value - The value to cache
|
|
81
|
+
*/
|
|
82
|
+
set(key, value) {
|
|
83
|
+
if (!this._enabled) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// If key already exists, just update the value
|
|
87
|
+
if (this._store.has(key)) {
|
|
88
|
+
this._store.set(key, value);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// If at capacity, remove oldest (FIFO)
|
|
92
|
+
if (this._store.size >= this._maxSize) {
|
|
93
|
+
const oldestKey = this._keys.shift();
|
|
94
|
+
/* v8 ignore next -- @preserve */
|
|
95
|
+
if (oldestKey) {
|
|
96
|
+
this._store.delete(oldestKey);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Add new entry
|
|
100
|
+
this._keys.push(key);
|
|
101
|
+
this._store.set(key, value);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Checks if a key exists in the cache.
|
|
105
|
+
* @param key - The cache key
|
|
106
|
+
* @returns True if the key exists, false otherwise
|
|
107
|
+
*/
|
|
108
|
+
has(key) {
|
|
109
|
+
return this._store.has(key);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Clears all entries from the cache.
|
|
113
|
+
*/
|
|
114
|
+
clear() {
|
|
115
|
+
this._store.clear();
|
|
116
|
+
this._keys = [];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../src/caching/src/hashing/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAuBL;;;;;;;;GAQG;AACH,MAAM,OAAO,KAAK;IACR,QAAQ,GAAG,IAAI,CAAC;IAChB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnC,KAAK,GAAa,EAAE,CAAC;IAE7B,YAAY,OAAsB;QAChC,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAW,OAAO,CAAC,KAAc;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAW,OAAO,CAAC,KAAa;QAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACI,GAAG,CAAC,GAAW,EAAE,KAAa;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrC,iCAAiC;YACjC,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF"}
|