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.
Files changed (257) hide show
  1. package/LICENSE.md +1 -0
  2. package/README.md +220 -36
  3. package/dist/async/abortable.d.ts +2 -2
  4. package/dist/async/abortable.d.ts.map +1 -1
  5. package/dist/async/abortable.js.map +1 -1
  6. package/dist/caching/mod.d.ts +2 -0
  7. package/dist/caching/mod.d.ts.map +1 -0
  8. package/dist/caching/mod.js +2 -0
  9. package/dist/caching/mod.js.map +1 -0
  10. package/dist/caching/src/cache.d.ts +89 -0
  11. package/dist/caching/src/cache.d.ts.map +1 -0
  12. package/dist/caching/src/cache.js +309 -0
  13. package/dist/caching/src/cache.js.map +1 -0
  14. package/dist/caching/src/hashing/cache.d.ts +92 -0
  15. package/dist/caching/src/hashing/cache.d.ts.map +1 -0
  16. package/dist/caching/src/hashing/cache.js +119 -0
  17. package/dist/caching/src/hashing/cache.js.map +1 -0
  18. package/dist/caching/src/hashing/hooks/eventified.d.ts +157 -0
  19. package/dist/caching/src/hashing/hooks/eventified.d.ts.map +1 -0
  20. package/dist/caching/src/hashing/hooks/eventified.js +333 -0
  21. package/dist/caching/src/hashing/hooks/eventified.js.map +1 -0
  22. package/dist/caching/src/hashing/hooks/index.d.ts +199 -0
  23. package/dist/caching/src/hashing/hooks/index.d.ts.map +1 -0
  24. package/dist/caching/src/hashing/hooks/index.js +383 -0
  25. package/dist/caching/src/hashing/hooks/index.js.map +1 -0
  26. package/dist/caching/src/hashing/hooks/types.d.ts +217 -0
  27. package/dist/caching/src/hashing/hooks/types.d.ts.map +1 -0
  28. package/dist/caching/src/hashing/hooks/types.js +10 -0
  29. package/dist/caching/src/hashing/hooks/types.js.map +1 -0
  30. package/dist/caching/src/hashing/index.d.ts +236 -0
  31. package/dist/caching/src/hashing/index.d.ts.map +1 -0
  32. package/dist/caching/src/hashing/index.js +447 -0
  33. package/dist/caching/src/hashing/index.js.map +1 -0
  34. package/dist/caching/src/hashing/providers/crc.d.ts +15 -0
  35. package/dist/caching/src/hashing/providers/crc.d.ts.map +1 -0
  36. package/dist/caching/src/hashing/providers/crc.js +49 -0
  37. package/dist/caching/src/hashing/providers/crc.js.map +1 -0
  38. package/dist/caching/src/hashing/providers/crypto.d.ts +19 -0
  39. package/dist/caching/src/hashing/providers/crypto.d.ts.map +1 -0
  40. package/dist/caching/src/hashing/providers/crypto.js +28 -0
  41. package/dist/caching/src/hashing/providers/crypto.js.map +1 -0
  42. package/dist/caching/src/hashing/providers/djb2.d.ts +60 -0
  43. package/dist/caching/src/hashing/providers/djb2.d.ts.map +1 -0
  44. package/dist/caching/src/hashing/providers/djb2.js +92 -0
  45. package/dist/caching/src/hashing/providers/djb2.js.map +1 -0
  46. package/dist/caching/src/hashing/providers/fnv1.d.ts +33 -0
  47. package/dist/caching/src/hashing/providers/fnv1.d.ts.map +1 -0
  48. package/dist/caching/src/hashing/providers/fnv1.js +68 -0
  49. package/dist/caching/src/hashing/providers/fnv1.js.map +1 -0
  50. package/dist/caching/src/hashing/providers/murmur.d.ts +81 -0
  51. package/dist/caching/src/hashing/providers/murmur.d.ts.map +1 -0
  52. package/dist/caching/src/hashing/providers/murmur.js +173 -0
  53. package/dist/caching/src/hashing/providers/murmur.js.map +1 -0
  54. package/dist/caching/src/hashing/providers.d.ts +126 -0
  55. package/dist/caching/src/hashing/providers.d.ts.map +1 -0
  56. package/dist/caching/src/hashing/providers.js +163 -0
  57. package/dist/caching/src/hashing/providers.js.map +1 -0
  58. package/dist/caching/src/hashing/types.d.ts +340 -0
  59. package/dist/caching/src/hashing/types.d.ts.map +1 -0
  60. package/dist/caching/src/hashing/types.js +10 -0
  61. package/dist/caching/src/hashing/types.js.map +1 -0
  62. package/dist/caching/src/keyValue/capabilities.d.ts +161 -0
  63. package/dist/caching/src/keyValue/capabilities.d.ts.map +1 -0
  64. package/dist/caching/src/keyValue/capabilities.js +334 -0
  65. package/dist/caching/src/keyValue/capabilities.js.map +1 -0
  66. package/dist/caching/src/keyValue/event-manager.d.ts +27 -0
  67. package/dist/caching/src/keyValue/event-manager.d.ts.map +1 -0
  68. package/dist/caching/src/keyValue/event-manager.js +88 -0
  69. package/dist/caching/src/keyValue/event-manager.js.map +1 -0
  70. package/dist/caching/src/keyValue/generic-store.d.ts +243 -0
  71. package/dist/caching/src/keyValue/generic-store.d.ts.map +1 -0
  72. package/dist/caching/src/keyValue/generic-store.js +295 -0
  73. package/dist/caching/src/keyValue/generic-store.js.map +1 -0
  74. package/dist/caching/src/keyValue/hooks-manager.d.ts +21 -0
  75. package/dist/caching/src/keyValue/hooks-manager.d.ts.map +1 -0
  76. package/dist/caching/src/keyValue/hooks-manager.js +59 -0
  77. package/dist/caching/src/keyValue/hooks-manager.js.map +1 -0
  78. package/dist/caching/src/keyValue/index.d.ts +334 -0
  79. package/dist/caching/src/keyValue/index.d.ts.map +1 -0
  80. package/dist/caching/src/keyValue/index.js +796 -0
  81. package/dist/caching/src/keyValue/index.js.map +1 -0
  82. package/dist/caching/src/keyValue/serialize/serialize.d.ts +12 -0
  83. package/dist/caching/src/keyValue/serialize/serialize.d.ts.map +1 -0
  84. package/dist/caching/src/keyValue/serialize/serialize.js +64 -0
  85. package/dist/caching/src/keyValue/serialize/serialize.js.map +1 -0
  86. package/dist/caching/src/keyValue/stats-manager.d.ts +27 -0
  87. package/dist/caching/src/keyValue/stats-manager.d.ts.map +1 -0
  88. package/dist/caching/src/keyValue/stats-manager.js +64 -0
  89. package/dist/caching/src/keyValue/stats-manager.js.map +1 -0
  90. package/dist/caching/src/keyValue/types.d.ts +22 -0
  91. package/dist/caching/src/keyValue/types.d.ts.map +1 -0
  92. package/dist/caching/src/keyValue/types.js +11 -0
  93. package/dist/caching/src/keyValue/types.js.map +1 -0
  94. package/dist/caching/src/keyv-adapter.d.ts +40 -0
  95. package/dist/caching/src/keyv-adapter.d.ts.map +1 -0
  96. package/dist/caching/src/keyv-adapter.js +56 -0
  97. package/dist/caching/src/keyv-adapter.js.map +1 -0
  98. package/dist/caching/src/utils/cache-tags.d.ts +275 -0
  99. package/dist/caching/src/utils/cache-tags.d.ts.map +1 -0
  100. package/dist/caching/src/utils/cache-tags.js +407 -0
  101. package/dist/caching/src/utils/cache-tags.js.map +1 -0
  102. package/dist/caching/src/utils/cacheable-item-types.d.ts +35 -0
  103. package/dist/caching/src/utils/cacheable-item-types.d.ts.map +1 -0
  104. package/dist/caching/src/utils/cacheable-item-types.js +10 -0
  105. package/dist/caching/src/utils/cacheable-item-types.js.map +1 -0
  106. package/dist/caching/src/utils/coalesce-async.d.ts +29 -0
  107. package/dist/caching/src/utils/coalesce-async.d.ts.map +1 -0
  108. package/dist/caching/src/utils/coalesce-async.js +88 -0
  109. package/dist/caching/src/utils/coalesce-async.js.map +1 -0
  110. package/dist/caching/src/utils/hash.d.ts +55 -0
  111. package/dist/caching/src/utils/hash.d.ts.map +1 -0
  112. package/dist/caching/src/utils/hash.js +116 -0
  113. package/dist/caching/src/utils/hash.js.map +1 -0
  114. package/dist/caching/src/utils/index.d.ts +24 -0
  115. package/dist/caching/src/utils/index.d.ts.map +1 -0
  116. package/dist/caching/src/utils/index.js +21 -0
  117. package/dist/caching/src/utils/index.js.map +1 -0
  118. package/dist/caching/src/utils/is-keyv-instance.d.ts +10 -0
  119. package/dist/caching/src/utils/is-keyv-instance.d.ts.map +1 -0
  120. package/dist/caching/src/utils/is-keyv-instance.js +37 -0
  121. package/dist/caching/src/utils/is-keyv-instance.js.map +1 -0
  122. package/dist/caching/src/utils/is-object.d.ts +10 -0
  123. package/dist/caching/src/utils/is-object.d.ts.map +1 -0
  124. package/dist/caching/src/utils/is-object.js +13 -0
  125. package/dist/caching/src/utils/is-object.js.map +1 -0
  126. package/dist/caching/src/utils/less-than.d.ts +10 -0
  127. package/dist/caching/src/utils/less-than.d.ts.map +1 -0
  128. package/dist/caching/src/utils/less-than.js +13 -0
  129. package/dist/caching/src/utils/less-than.js.map +1 -0
  130. package/dist/caching/src/utils/memoize.d.ts +107 -0
  131. package/dist/caching/src/utils/memoize.d.ts.map +1 -0
  132. package/dist/caching/src/utils/memoize.js +201 -0
  133. package/dist/caching/src/utils/memoize.js.map +1 -0
  134. package/dist/caching/src/utils/mock-cacheable.d.ts +28 -0
  135. package/dist/caching/src/utils/mock-cacheable.d.ts.map +1 -0
  136. package/dist/caching/src/utils/mock-cacheable.js +87 -0
  137. package/dist/caching/src/utils/mock-cacheable.js.map +1 -0
  138. package/dist/caching/src/utils/run-if-fn.d.ts +12 -0
  139. package/dist/caching/src/utils/run-if-fn.d.ts.map +1 -0
  140. package/dist/caching/src/utils/run-if-fn.js +12 -0
  141. package/dist/caching/src/utils/run-if-fn.js.map +1 -0
  142. package/dist/caching/src/utils/shorthand-time.d.ts +27 -0
  143. package/dist/caching/src/utils/shorthand-time.d.ts.map +1 -0
  144. package/dist/caching/src/utils/shorthand-time.js +96 -0
  145. package/dist/caching/src/utils/shorthand-time.js.map +1 -0
  146. package/dist/caching/src/utils/sleep.d.ts +10 -0
  147. package/dist/caching/src/utils/sleep.d.ts.map +1 -0
  148. package/dist/caching/src/utils/sleep.js +11 -0
  149. package/dist/caching/src/utils/sleep.js.map +1 -0
  150. package/dist/caching/src/utils/stats.d.ts +354 -0
  151. package/dist/caching/src/utils/stats.d.ts.map +1 -0
  152. package/dist/caching/src/utils/stats.js +593 -0
  153. package/dist/caching/src/utils/stats.js.map +1 -0
  154. package/dist/caching/src/utils/ttl.d.ts +58 -0
  155. package/dist/caching/src/utils/ttl.d.ts.map +1 -0
  156. package/dist/caching/src/utils/ttl.js +77 -0
  157. package/dist/caching/src/utils/ttl.js.map +1 -0
  158. package/dist/logtape/logtape/level.d.ts +1 -2
  159. package/dist/logtape/logtape/level.d.ts.map +1 -1
  160. package/dist/logtape/logtape/level.js +1 -1
  161. package/dist/logtape/logtape/level.js.map +1 -1
  162. package/dist/logtape/logtape/mod.d.ts +1 -1
  163. package/dist/logtape/logtape/mod.d.ts.map +1 -1
  164. package/dist/logtape/logtape/mod.js +1 -1
  165. package/dist/logtape/logtape/mod.js.map +1 -1
  166. package/dist/utils/mod.d.ts +1 -1
  167. package/dist/utils/mod.d.ts.map +1 -1
  168. package/dist/utils/mod.js.map +1 -1
  169. package/dist/utils/validation/inRangeOfMaxInt32.d.ts +2 -0
  170. package/dist/utils/validation/inRangeOfMaxInt32.d.ts.map +1 -0
  171. package/dist/utils/validation/inRangeOfMaxInt32.js +4 -0
  172. package/dist/utils/validation/inRangeOfMaxInt32.js.map +1 -0
  173. package/dist/utils/validation/isEmail.d.ts +2 -0
  174. package/dist/utils/validation/isEmail.d.ts.map +1 -0
  175. package/dist/utils/validation/isEmail.js +7 -0
  176. package/dist/utils/validation/isEmail.js.map +1 -0
  177. package/dist/utils/validation/isEmptyObject.d.ts +9 -0
  178. package/dist/utils/validation/isEmptyObject.d.ts.map +1 -0
  179. package/dist/utils/validation/isEmptyObject.js +16 -0
  180. package/dist/utils/validation/isEmptyObject.js.map +1 -0
  181. package/dist/utils/validation/isNotEmptyString.d.ts +7 -0
  182. package/dist/utils/validation/isNotEmptyString.d.ts.map +1 -0
  183. package/dist/utils/validation/isNotEmptyString.js +17 -0
  184. package/dist/utils/validation/isNotEmptyString.js.map +1 -0
  185. package/dist/utils/validation/isPositiveInteger.d.ts +2 -0
  186. package/dist/utils/validation/isPositiveInteger.d.ts.map +1 -0
  187. package/dist/utils/validation/isPositiveInteger.js +7 -0
  188. package/dist/utils/validation/isPositiveInteger.js.map +1 -0
  189. package/dist/utils/validation/isUuid.d.ts +2 -0
  190. package/dist/utils/validation/isUuid.d.ts.map +1 -0
  191. package/dist/utils/validation/isUuid.js +7 -0
  192. package/dist/utils/validation/isUuid.js.map +1 -0
  193. package/dist/utils/validation/isUuidArray.d.ts +2 -0
  194. package/dist/utils/validation/isUuidArray.d.ts.map +1 -0
  195. package/dist/utils/validation/isUuidArray.js +7 -0
  196. package/dist/utils/validation/isUuidArray.js.map +1 -0
  197. package/dist/utils/validation/isValidFileName.d.ts +2 -0
  198. package/dist/utils/validation/isValidFileName.d.ts.map +1 -0
  199. package/dist/utils/validation/isValidFileName.js +33 -0
  200. package/dist/utils/validation/isValidFileName.js.map +1 -0
  201. package/dist/utils/validation/isValidUrlLike.d.ts +6 -0
  202. package/dist/utils/validation/isValidUrlLike.d.ts.map +1 -0
  203. package/dist/utils/validation/isValidUrlLike.js +8 -0
  204. package/dist/utils/validation/isValidUrlLike.js.map +1 -0
  205. package/dist/utils/validation/mod.d.ts +21 -0
  206. package/dist/utils/validation/mod.d.ts.map +1 -0
  207. package/dist/utils/validation/mod.js +21 -0
  208. package/dist/utils/validation/mod.js.map +1 -0
  209. package/dist/utils/validation/vEnvBoolean.d.ts +3 -0
  210. package/dist/utils/validation/vEnvBoolean.d.ts.map +1 -0
  211. package/dist/utils/validation/vEnvBoolean.js +5 -0
  212. package/dist/utils/validation/vEnvBoolean.js.map +1 -0
  213. package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts +3 -0
  214. package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts.map +1 -0
  215. package/dist/utils/validation/vEnvBooleanOrUndefined.js +5 -0
  216. package/dist/utils/validation/vEnvBooleanOrUndefined.js.map +1 -0
  217. package/dist/utils/validation/vEnvLogLevel.d.ts +4 -0
  218. package/dist/utils/validation/vEnvLogLevel.d.ts.map +1 -0
  219. package/dist/utils/validation/vEnvLogLevel.js +6 -0
  220. package/dist/utils/validation/vEnvLogLevel.js.map +1 -0
  221. package/dist/utils/validation/vFileName.d.ts +4 -0
  222. package/dist/utils/validation/vFileName.d.ts.map +1 -0
  223. package/dist/utils/validation/vFileName.js +21 -0
  224. package/dist/utils/validation/vFileName.js.map +1 -0
  225. package/dist/utils/validation/vISO8601DateTime.d.ts +5 -0
  226. package/dist/utils/validation/vISO8601DateTime.d.ts.map +1 -0
  227. package/dist/utils/validation/vISO8601DateTime.js +37 -0
  228. package/dist/utils/validation/vISO8601DateTime.js.map +1 -0
  229. package/dist/utils/validation/vLatinInput.d.ts +3 -0
  230. package/dist/utils/validation/vLatinInput.d.ts.map +1 -0
  231. package/dist/utils/validation/vLatinInput.js +3 -0
  232. package/dist/utils/validation/vLatinInput.js.map +1 -0
  233. package/dist/utils/validation/vOmniBoolean.d.ts +3 -0
  234. package/dist/utils/validation/vOmniBoolean.d.ts.map +1 -0
  235. package/dist/utils/validation/vOmniBoolean.js +10 -0
  236. package/dist/utils/validation/vOmniBoolean.js.map +1 -0
  237. package/dist/utils/validation/vQueryBoolean.d.ts +3 -0
  238. package/dist/utils/validation/vQueryBoolean.d.ts.map +1 -0
  239. package/dist/utils/validation/vQueryBoolean.js +7 -0
  240. package/dist/utils/validation/vQueryBoolean.js.map +1 -0
  241. package/dist/utils/validation/vQueryEmailArray.d.ts +9 -0
  242. package/dist/utils/validation/vQueryEmailArray.d.ts.map +1 -0
  243. package/dist/utils/validation/vQueryEmailArray.js +29 -0
  244. package/dist/utils/validation/vQueryEmailArray.js.map +1 -0
  245. package/dist/utils/validation/vQueryNumberArray.d.ts +10 -0
  246. package/dist/utils/validation/vQueryNumberArray.d.ts.map +1 -0
  247. package/dist/utils/validation/vQueryNumberArray.js +32 -0
  248. package/dist/utils/validation/vQueryNumberArray.js.map +1 -0
  249. package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts +3 -0
  250. package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts.map +1 -0
  251. package/dist/utils/validation/vQueryStringifiedEnumArray.js +25 -0
  252. package/dist/utils/validation/vQueryStringifiedEnumArray.js.map +1 -0
  253. package/dist/utils/validation/vQueryUuidArray.d.ts +9 -0
  254. package/dist/utils/validation/vQueryUuidArray.d.ts.map +1 -0
  255. package/dist/utils/validation/vQueryUuidArray.js +27 -0
  256. package/dist/utils/validation/vQueryUuidArray.js.map +1 -0
  257. package/package.json +19 -3
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import type { PerStoreTtl } from './ttl.ts';
10
+ export type CacheInstance = {
11
+ get: (key: string) => Promise<any | undefined>;
12
+ has: (key: string) => Promise<boolean>;
13
+ set: (key: string, value: any, ttl?: number | string | PerStoreTtl) => Promise<void>;
14
+ on: (event: string, listener: (...args: any[]) => void) => void;
15
+ emit: (event: string, ...args: any[]) => boolean;
16
+ };
17
+ export type CacheSyncInstance = {
18
+ get: (key: string) => any | undefined;
19
+ has: (key: string) => boolean;
20
+ set: (key: string, value: any, ttl?: number | string) => void;
21
+ on: (event: string, listener: (...args: any[]) => void) => void;
22
+ emit: (event: string, ...args: any[]) => boolean;
23
+ };
24
+ export type GetOrSetKey = string | ((options?: GetOrSetOptions) => string);
25
+ type GetOrSetThrowErrorsContext = 'function' | 'store';
26
+ export type GetOrSetFunctionOptions = {
27
+ ttl?: number | string;
28
+ cacheErrors?: boolean;
29
+ /** Whether or not to throw errors:
30
+ * - `false` (default) - do not throw any errors
31
+ * - `true` - throw any error
32
+ * - `"function"` - only throw errors that occur in the provided function / setter
33
+ * - `"store"` - only throw errors that occur when getting/setting the cache
34
+ */
35
+ throwErrors?: boolean | GetOrSetThrowErrorsContext;
36
+ /**
37
+ * If set, this will bypass the instances nonBlocking setting for the get call.
38
+ * @type {boolean}
39
+ */
40
+ nonBlocking?: boolean;
41
+ };
42
+ export type GetOrSetOptions = Omit<GetOrSetFunctionOptions, 'ttl'> & {
43
+ ttl?: number | string | PerStoreTtl;
44
+ cacheId?: string;
45
+ cache: CacheInstance;
46
+ };
47
+ /**
48
+ * Options for {@link getOrSetSync}, the synchronous counterpart to {@link GetOrSetOptions}. It
49
+ * targets a {@link CacheSyncInstance} and its `ttl` is always a single value (a number in
50
+ * milliseconds or a shorthand string), never a per-store object. The inherited `nonBlocking`
51
+ * option has no effect on a single, synchronous store.
52
+ */
53
+ export type GetOrSetSyncOptions = GetOrSetFunctionOptions & {
54
+ cache: CacheSyncInstance;
55
+ };
56
+ /**
57
+ * A cache key for {@link getOrSetSync}: either a string or a function that derives the key from the
58
+ * resolved {@link GetOrSetSyncOptions}.
59
+ */
60
+ export type GetOrSetSyncKey = string | ((options?: GetOrSetSyncOptions) => string);
61
+ export type CreateWrapKey = (function_: AnyFunction, arguments_: any[], options?: WrapFunctionOptions) => string;
62
+ export type WrapFunctionOptions = {
63
+ ttl?: number | string;
64
+ keyPrefix?: string;
65
+ createKey?: CreateWrapKey;
66
+ cacheErrors?: boolean;
67
+ cacheId?: string;
68
+ serialize?: (object: any) => string;
69
+ };
70
+ export type WrapOptions = Omit<WrapFunctionOptions, 'ttl'> & {
71
+ ttl?: number | string | PerStoreTtl;
72
+ cache: CacheInstance;
73
+ serialize?: (object: any) => string;
74
+ };
75
+ export type WrapSyncOptions = WrapFunctionOptions & {
76
+ cache: CacheSyncInstance;
77
+ serialize?: (object: any) => string;
78
+ };
79
+ export type AnyFunction = (...arguments_: any[]) => any;
80
+ export declare function wrapSync<T>(function_: AnyFunction, options: WrapSyncOptions): AnyFunction;
81
+ export declare function getOrSet<T>(key: GetOrSetKey, function_: () => Promise<T>, options: GetOrSetOptions): Promise<T | undefined>;
82
+ /**
83
+ * Synchronous counterpart to {@link getOrSet}. Reads `key` from the cache and, on a miss, computes
84
+ * the value with `function_`, stores it, and returns it.
85
+ *
86
+ * Unlike {@link getOrSet} there is no request coalescing: synchronous code runs to completion
87
+ * without interleaving, so concurrent callers cannot stampede the setter the way they can with an
88
+ * async cache.
89
+ *
90
+ * Error handling mirrors {@link getOrSet}: errors are emitted on the cache's `error` event, can be
91
+ * cached when `cacheErrors` is set, and can be rethrown selectively via `throwErrors` (`true` for
92
+ * any error, `"function"` for setter errors, `"store"` for cache read/write errors).
93
+ *
94
+ * @param key - The cache key, or a function that derives it from the resolved options.
95
+ * @param function_ - The setter invoked on a cache miss to compute the value.
96
+ * @param options - The {@link GetOrSetSyncOptions} including the target synchronous cache.
97
+ * @returns The cached or freshly computed value, or `undefined`.
98
+ */
99
+ export declare function getOrSetSync<T>(key: GetOrSetSyncKey, function_: () => T, options: GetOrSetSyncOptions): T | undefined;
100
+ export declare function wrap<T>(function_: AnyFunction, options: WrapOptions): AnyFunction;
101
+ export type CreateWrapKeyOptions = {
102
+ keyPrefix?: string;
103
+ serialize?: (object: any) => string;
104
+ };
105
+ export declare function createWrapKey(function_: AnyFunction, arguments_: any[], options?: CreateWrapKeyOptions): string;
106
+ export {};
107
+ //# sourceMappingURL=memoize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/memoize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import { coalesceAsync } from "./coalesce-async.js";
10
+ import { hashSync } from "./hash.js";
11
+ export function wrapSync(function_, options) {
12
+ const { ttl, keyPrefix, cache, serialize } = options;
13
+ // biome-ignore lint/suspicious/noExplicitAny: type format
14
+ return (...arguments_) => {
15
+ let cacheKey = createWrapKey(function_, arguments_, {
16
+ keyPrefix,
17
+ serialize
18
+ });
19
+ if (options.createKey) {
20
+ cacheKey = options.createKey(function_, arguments_, options);
21
+ }
22
+ let value = cache.get(cacheKey);
23
+ if (value === undefined) {
24
+ try {
25
+ value = function_(...arguments_);
26
+ cache.set(cacheKey, value, ttl);
27
+ }
28
+ catch (error) {
29
+ cache.emit('error', error);
30
+ if (options.cacheErrors) {
31
+ cache.set(cacheKey, error, ttl);
32
+ }
33
+ }
34
+ }
35
+ return value;
36
+ };
37
+ }
38
+ export async function getOrSet(key, function_, options) {
39
+ const keyString = typeof key === 'function' ? key(options) : key;
40
+ let value;
41
+ try {
42
+ value = await options.cache.get(keyString);
43
+ }
44
+ catch (error) {
45
+ options.cache.emit('error', error);
46
+ if (options.throwErrors === true || options.throwErrors === 'store') {
47
+ throw error;
48
+ }
49
+ }
50
+ if (value === undefined) {
51
+ const cacheId = options.cacheId ?? 'default';
52
+ const coalesceKey = `${cacheId}::${keyString}`;
53
+ value = await coalesceAsync(coalesceKey, async () => {
54
+ let result;
55
+ try {
56
+ // try to do the logic passed in as the setter
57
+ try {
58
+ result = await function_();
59
+ }
60
+ catch (error) {
61
+ throw new ErrorEnvelope(error, 'function');
62
+ }
63
+ // try to write the result to the cache
64
+ try {
65
+ await options.cache.set(keyString, result, options.ttl);
66
+ }
67
+ catch (error) {
68
+ throw new ErrorEnvelope(error, 'store');
69
+ }
70
+ return result;
71
+ }
72
+ catch (caught) {
73
+ const errorType = caught instanceof ErrorEnvelope
74
+ ? caught.context
75
+ : /* c8 ignore next 1 */
76
+ undefined;
77
+ const error = caught instanceof ErrorEnvelope ? caught.error : caught;
78
+ options.cache.emit('error', error);
79
+ // Only cache errors that originated in the value function — a failed store write has
80
+ // no error worth caching and the store is already unhealthy. Wrapping the write also
81
+ // keeps a second failure from escaping as an uncaught rejection that bypasses the
82
+ // throwErrors handling below.
83
+ if (options.cacheErrors && errorType === 'function') {
84
+ try {
85
+ await options.cache.set(keyString, error, options.ttl);
86
+ }
87
+ catch (storeError) {
88
+ options.cache.emit('error', storeError);
89
+ }
90
+ }
91
+ if (options.throwErrors === true || options.throwErrors === errorType) {
92
+ throw error;
93
+ }
94
+ }
95
+ return result;
96
+ });
97
+ }
98
+ return value;
99
+ }
100
+ /**
101
+ * Synchronous counterpart to {@link getOrSet}. Reads `key` from the cache and, on a miss, computes
102
+ * the value with `function_`, stores it, and returns it.
103
+ *
104
+ * Unlike {@link getOrSet} there is no request coalescing: synchronous code runs to completion
105
+ * without interleaving, so concurrent callers cannot stampede the setter the way they can with an
106
+ * async cache.
107
+ *
108
+ * Error handling mirrors {@link getOrSet}: errors are emitted on the cache's `error` event, can be
109
+ * cached when `cacheErrors` is set, and can be rethrown selectively via `throwErrors` (`true` for
110
+ * any error, `"function"` for setter errors, `"store"` for cache read/write errors).
111
+ *
112
+ * @param key - The cache key, or a function that derives it from the resolved options.
113
+ * @param function_ - The setter invoked on a cache miss to compute the value.
114
+ * @param options - The {@link GetOrSetSyncOptions} including the target synchronous cache.
115
+ * @returns The cached or freshly computed value, or `undefined`.
116
+ */
117
+ export function getOrSetSync(key, function_, options) {
118
+ const keyString = typeof key === 'function' ? key(options) : key;
119
+ let value;
120
+ try {
121
+ value = options.cache.get(keyString);
122
+ }
123
+ catch (error) {
124
+ options.cache.emit('error', error);
125
+ if (options.throwErrors === true || options.throwErrors === 'store') {
126
+ throw error;
127
+ }
128
+ }
129
+ if (value === undefined) {
130
+ try {
131
+ // try to do the logic passed in as the setter
132
+ try {
133
+ value = function_();
134
+ }
135
+ catch (error) {
136
+ throw new ErrorEnvelope(error, 'function');
137
+ }
138
+ // try to write the result to the cache
139
+ try {
140
+ options.cache.set(keyString, value, options.ttl);
141
+ }
142
+ catch (error) {
143
+ throw new ErrorEnvelope(error, 'store');
144
+ }
145
+ }
146
+ catch (caught) {
147
+ const errorType = caught instanceof ErrorEnvelope
148
+ ? caught.context
149
+ : /* c8 ignore next 1 */
150
+ undefined;
151
+ const error = caught instanceof ErrorEnvelope ? caught.error : caught;
152
+ options.cache.emit('error', error);
153
+ // Only cache errors that originated in the value function — a failed store write has no
154
+ // error worth caching and the store is already unhealthy. Wrapping the write also keeps a
155
+ // second failure from escaping as an uncaught throw that bypasses the throwErrors handling
156
+ // below.
157
+ if (options.cacheErrors && errorType === 'function') {
158
+ try {
159
+ options.cache.set(keyString, error, options.ttl);
160
+ }
161
+ catch (storeError) {
162
+ options.cache.emit('error', storeError);
163
+ }
164
+ }
165
+ if (options.throwErrors === true || options.throwErrors === errorType) {
166
+ throw error;
167
+ }
168
+ }
169
+ }
170
+ return value;
171
+ }
172
+ export function wrap(function_, options) {
173
+ const { keyPrefix, serialize } = options;
174
+ return async (...arguments_) => {
175
+ let cacheKey = createWrapKey(function_, arguments_, {
176
+ keyPrefix,
177
+ serialize
178
+ });
179
+ if (options.createKey) {
180
+ // @ts-ignore original library same
181
+ cacheKey = options.createKey(function_, arguments_, options);
182
+ }
183
+ return getOrSet(cacheKey, async () => function_(...arguments_), options);
184
+ };
185
+ }
186
+ export function createWrapKey(function_, arguments_, options) {
187
+ const { keyPrefix, serialize } = options || {};
188
+ if (!keyPrefix) {
189
+ return `${function_.name}::${hashSync(arguments_, { serialize })}`;
190
+ }
191
+ return `${keyPrefix}::${function_.name}::${hashSync(arguments_, { serialize })}`;
192
+ }
193
+ class ErrorEnvelope {
194
+ error;
195
+ context;
196
+ constructor(error, context) {
197
+ this.error = error;
198
+ this.context = context;
199
+ }
200
+ }
201
+ //# sourceMappingURL=memoize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/memoize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import type { CacheInstance, CacheSyncInstance } from './memoize.ts';
10
+ export declare class MockCacheable implements CacheInstance {
11
+ private readonly cache;
12
+ private readonly listeners;
13
+ get(key: string): Promise<any | undefined>;
14
+ has(key: string): Promise<boolean>;
15
+ set(key: string, value: any, ttl?: number | string): Promise<void>;
16
+ on(event: string, listener: (...args: any[]) => void): void;
17
+ emit(event: string, ...args: any[]): boolean;
18
+ }
19
+ export declare class MockCacheableMemory implements CacheSyncInstance {
20
+ private readonly cache;
21
+ private readonly listeners;
22
+ get(key: string): any | undefined;
23
+ has(key: string): boolean;
24
+ set(key: string, value: any, ttl?: number | string): void;
25
+ on(event: string, listener: (...args: any[]) => void): void;
26
+ emit(event: string, ...args: any[]): boolean;
27
+ }
28
+ //# sourceMappingURL=mock-cacheable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-cacheable.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/mock-cacheable.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGrE,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAE3E,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAU1C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAM3D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;CAU7C;AAED,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IAEjF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAUjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAYzD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAK3D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;CAU7C"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import { shorthandToMilliseconds } from "./shorthand-time.js";
10
+ export class MockCacheable {
11
+ cache = new Map();
12
+ listeners = {};
13
+ async get(key) {
14
+ const item = this.cache.get(key);
15
+ if (item?.expires && Date.now() > item.expires) {
16
+ this.cache.delete(key);
17
+ return undefined;
18
+ }
19
+ return item?.value;
20
+ }
21
+ async has(key) {
22
+ return (await this.get(key)) !== undefined;
23
+ }
24
+ // @ts-ignore original library same
25
+ async set(key, value, ttl) {
26
+ let expires;
27
+ if (ttl) {
28
+ const ttlMs = shorthandToMilliseconds(ttl);
29
+ if (ttlMs && ttlMs > 0) {
30
+ expires = Date.now() + ttlMs;
31
+ }
32
+ }
33
+ this.cache.set(key, { key, value, expires });
34
+ }
35
+ on(event, listener) {
36
+ this.listeners[event] ||= [];
37
+ this.listeners[event].push(listener);
38
+ }
39
+ emit(event, ...args) {
40
+ const listeners = this.listeners[event];
41
+ if (listeners) {
42
+ for (const listener of listeners) {
43
+ listener(...args);
44
+ }
45
+ }
46
+ return true;
47
+ }
48
+ }
49
+ export class MockCacheableMemory {
50
+ cache = new Map();
51
+ listeners = {};
52
+ get(key) {
53
+ const result = this.cache.get(key);
54
+ if (result?.expires && Date.now() > result.expires) {
55
+ this.cache.delete(key);
56
+ return undefined;
57
+ }
58
+ return result?.value;
59
+ }
60
+ has(key) {
61
+ return this.get(key) !== undefined;
62
+ }
63
+ set(key, value, ttl) {
64
+ let expires;
65
+ if (ttl) {
66
+ const ttlMs = shorthandToMilliseconds(ttl);
67
+ if (ttlMs && ttlMs > 0) {
68
+ expires = Date.now() + ttlMs;
69
+ }
70
+ }
71
+ this.cache.set(key, { key, value, expires });
72
+ }
73
+ on(event, listener) {
74
+ this.listeners[event] ||= [];
75
+ this.listeners[event].push(listener);
76
+ }
77
+ emit(event, ...args) {
78
+ const listeners = this.listeners[event];
79
+ if (listeners) {
80
+ for (const listener of listeners) {
81
+ listener(...args);
82
+ }
83
+ }
84
+ return true;
85
+ }
86
+ }
87
+ //# sourceMappingURL=mock-cacheable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-cacheable.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/mock-cacheable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ type Function_<P, T> = (...arguments_: P[]) => T;
10
+ export declare function runIfFn<T, P>(valueOrFunction: T | Function_<P, T>, ...arguments_: P[]): T;
11
+ export {};
12
+ //# sourceMappingURL=run-if-fn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-if-fn.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/run-if-fn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAGL,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAEjD,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAEzF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ export function runIfFn(valueOrFunction, ...arguments_) {
10
+ return typeof valueOrFunction === 'function' ? valueOrFunction(...arguments_) : valueOrFunction;
11
+ }
12
+ //# sourceMappingURL=run-if-fn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-if-fn.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/run-if-fn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAKL,MAAM,UAAU,OAAO,CAAO,eAAoC,EAAE,GAAG,UAAe;IACpF,OAAO,OAAO,eAAe,KAAK,UAAU,CAAC,CAAC,CAAE,eAAmC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;AACvH,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ /**
10
+ * Converts a shorthand time string or number into milliseconds.
11
+ * The shorthand can be a string like '1s', '2m', '3h', '4d', or a number representing milliseconds.
12
+ * If the input is undefined, it returns undefined.
13
+ * If the input is a string that does not match the expected format, it throws an error.
14
+ * @param shorthand - A shorthand time string or number representing milliseconds.
15
+ * @returns The equivalent time in milliseconds or undefined.
16
+ */
17
+ export declare const shorthandToMilliseconds: (shorthand?: string | number) => number | undefined;
18
+ /**
19
+ * Converts a shorthand time string or number into a timestamp.
20
+ * If the shorthand is undefined, it returns the current date's timestamp.
21
+ * If the shorthand is a valid time format, it adds that duration to the current date's timestamp.
22
+ * @param shorthand - A shorthand time string or number representing milliseconds.
23
+ * @param fromDate - An optional Date object to calculate from. Defaults to the current date if not provided.
24
+ * @returns The timestamp in milliseconds since epoch.
25
+ */
26
+ export declare const shorthandToTime: (shorthand?: string | number, fromDate?: Date) => number;
27
+ //# sourceMappingURL=shorthand-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shorthand-time.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/shorthand-time.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,GAAG,MAAM,KAAG,MAAM,GAAG,SA0E9E,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,GAAG,MAAM,EAAE,WAAW,IAAI,KAAG,MAS9E,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ /**
10
+ * Converts a shorthand time string or number into milliseconds.
11
+ * The shorthand can be a string like '1s', '2m', '3h', '4d', or a number representing milliseconds.
12
+ * If the input is undefined, it returns undefined.
13
+ * If the input is a string that does not match the expected format, it throws an error.
14
+ * @param shorthand - A shorthand time string or number representing milliseconds.
15
+ * @returns The equivalent time in milliseconds or undefined.
16
+ */
17
+ export const shorthandToMilliseconds = (shorthand) => {
18
+ let milliseconds;
19
+ if (shorthand === undefined) {
20
+ return undefined;
21
+ }
22
+ if (typeof shorthand === 'number') {
23
+ milliseconds = shorthand;
24
+ }
25
+ else {
26
+ // Verify type safety before converting to string
27
+ if (typeof shorthand !== 'string') {
28
+ return undefined;
29
+ }
30
+ // convert it to string
31
+ shorthand = shorthand.trim();
32
+ // Check if the string is purely numeric
33
+ if (Number.isNaN(Number(shorthand))) {
34
+ // Use a case-insensitive regex that supports decimals and 'ms' unit
35
+ const match = /^([\d.]+)\s*(ms|s|m|h|hr|d)$/i.exec(shorthand);
36
+ if (!match) {
37
+ throw new Error(`Unsupported time format: "${shorthand}". Use 'ms', 's', 'm', 'h', 'hr', or 'd'.`);
38
+ }
39
+ const [, value, unit] = match;
40
+ const numericValue = Number.parseFloat(value);
41
+ const unitLower = unit.toLowerCase();
42
+ switch (unitLower) {
43
+ case 'ms': {
44
+ milliseconds = numericValue;
45
+ break;
46
+ }
47
+ case 's': {
48
+ milliseconds = numericValue * 1000;
49
+ break;
50
+ }
51
+ case 'm': {
52
+ milliseconds = numericValue * 1000 * 60;
53
+ break;
54
+ }
55
+ case 'h': {
56
+ milliseconds = numericValue * 1000 * 60 * 60;
57
+ break;
58
+ }
59
+ case 'hr': {
60
+ milliseconds = numericValue * 1000 * 60 * 60;
61
+ break;
62
+ }
63
+ case 'd': {
64
+ milliseconds = numericValue * 1000 * 60 * 60 * 24;
65
+ break;
66
+ }
67
+ /* v8 ignore next -- @preserve */
68
+ default: {
69
+ milliseconds = Number(shorthand);
70
+ }
71
+ }
72
+ /* v8 ignore next -- @preserve */
73
+ }
74
+ else {
75
+ milliseconds = Number(shorthand);
76
+ }
77
+ }
78
+ return milliseconds;
79
+ };
80
+ /**
81
+ * Converts a shorthand time string or number into a timestamp.
82
+ * If the shorthand is undefined, it returns the current date's timestamp.
83
+ * If the shorthand is a valid time format, it adds that duration to the current date's timestamp.
84
+ * @param shorthand - A shorthand time string or number representing milliseconds.
85
+ * @param fromDate - An optional Date object to calculate from. Defaults to the current date if not provided.
86
+ * @returns The timestamp in milliseconds since epoch.
87
+ */
88
+ export const shorthandToTime = (shorthand, fromDate) => {
89
+ fromDate ??= new Date();
90
+ const milliseconds = shorthandToMilliseconds(shorthand);
91
+ if (milliseconds === undefined) {
92
+ return fromDate.getTime();
93
+ }
94
+ return fromDate.getTime() + milliseconds;
95
+ };
96
+ //# sourceMappingURL=shorthand-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shorthand-time.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/shorthand-time.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAA2B,EAAsB,EAAE;IACzF,IAAI,YAAoB,CAAC;IAEzB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,uBAAuB;QACvB,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAE7B,wCAAwC;QACxC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACpC,oEAAoE;YACpE,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,2CAA2C,CAAC,CAAC;YACrG,CAAC;YAED,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;YAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAErC,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,IAAI,CAAC,CAAC,CAAC;oBACV,YAAY,GAAG,YAAY,CAAC;oBAC5B,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC;oBACnC,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;oBACxC,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBAED,KAAK,IAAI,CAAC,CAAC,CAAC;oBACV,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBAED,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,YAAY,GAAG,YAAY,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAClD,MAAM;gBACR,CAAC;gBAED,iCAAiC;gBACjC,OAAO,CAAC,CAAC,CAAC;oBACR,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,iCAAiC;QACnC,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA2B,EAAE,QAAe,EAAU,EAAE;IACtF,QAAQ,KAAK,IAAI,IAAI,EAAE,CAAC;IAExB,MAAM,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC;AAC3C,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ export declare const sleep: (ms: number) => Promise<unknown>;
10
+ //# sourceMappingURL=sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/sleep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL,eAAO,MAAM,KAAK,GAAU,IAAI,MAAM,qBAAsD,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Original library: @cacheable/utils (v2.4.2)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ // TODO SDK
10
+ export const sleep = async (ms) => new Promise((resolve) => setTimeout(resolve, ms));
11
+ //# sourceMappingURL=sleep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/sleep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,WAAW;AAEX,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC"}