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,593 @@
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
+ * Event map for `@cacheable/node-cache` instances. node-cache emits with
11
+ * positional arguments (e.g. `set(key, value)`), and emits each lifecycle
12
+ * event exactly once, so the counts map cleanly. `flush` clears the cache data
13
+ * and `flush_stats` resets the stats counters, mirroring node-cache's
14
+ * `flushAll()` / `flushStats()` lifecycle.
15
+ *
16
+ * Presets for `cacheable` and `cache-manager` are intentionally not provided:
17
+ * their event streams emit per-store probes (and, for cache-manager, do not
18
+ * emit an event on a normal miss), so a simple map cannot faithfully reproduce
19
+ * their imperative stats. Wire those up with a custom map or imperative calls.
20
+ */
21
+ export const nodeCacheStatsEventMap = {
22
+ set: (stats, key) => {
23
+ stats.increment('sets');
24
+ if (typeof key === 'string' || typeof key === 'number') {
25
+ stats.recordKey(String(key), 'sets');
26
+ }
27
+ },
28
+ del: (stats, key) => {
29
+ stats.increment('deletes');
30
+ if (typeof key === 'string' || typeof key === 'number') {
31
+ stats.recordKey(String(key), 'deletes');
32
+ }
33
+ },
34
+ flush: 'clears',
35
+ flush_stats: (stats) => {
36
+ stats.reset();
37
+ }
38
+ };
39
+ export class Stats {
40
+ _counters = {
41
+ hits: 0,
42
+ misses: 0,
43
+ gets: 0,
44
+ sets: 0,
45
+ deletes: 0,
46
+ clears: 0,
47
+ count: 0
48
+ };
49
+ _vsize = 0;
50
+ _ksize = 0;
51
+ _enabled = false;
52
+ _lastUpdated;
53
+ _lastReset;
54
+ _subscriptions = [];
55
+ /** Backing store for the public {@link trackedKeys} read-only view. */
56
+ _trackedKeys = new Map();
57
+ _trackKeys = false;
58
+ _maxTrackedKeys;
59
+ constructor(options) {
60
+ if (options?.enabled) {
61
+ this._enabled = options.enabled;
62
+ }
63
+ if (options?.trackKeys) {
64
+ this._trackKeys = options.trackKeys;
65
+ }
66
+ if (options?.maxTrackedKeys !== undefined) {
67
+ this._maxTrackedKeys = options.maxTrackedKeys;
68
+ }
69
+ if (options?.emitter && options?.eventMap) {
70
+ this.subscribe(options.emitter, options.eventMap);
71
+ }
72
+ }
73
+ /**
74
+ * @returns {boolean} - Whether the stats are enabled
75
+ */
76
+ get enabled() {
77
+ return this._enabled;
78
+ }
79
+ /**
80
+ * @param {boolean} enabled - Whether to enable the stats
81
+ */
82
+ set enabled(enabled) {
83
+ this._enabled = enabled;
84
+ }
85
+ /**
86
+ * @returns {boolean} - Whether per-key statistics are tracked
87
+ */
88
+ get trackKeys() {
89
+ return this._trackKeys;
90
+ }
91
+ /**
92
+ * @param {boolean} trackKeys - Whether to track per-key statistics
93
+ */
94
+ set trackKeys(trackKeys) {
95
+ this._trackKeys = trackKeys;
96
+ }
97
+ /**
98
+ * @returns {number | undefined} - The cap on unique keys tracked, or
99
+ * `undefined` when unbounded
100
+ */
101
+ get maxTrackedKeys() {
102
+ return this._maxTrackedKeys;
103
+ }
104
+ /**
105
+ * @param {number | undefined} maxTrackedKeys - The cap on unique keys
106
+ * tracked. Set `undefined` for unbounded.
107
+ */
108
+ set maxTrackedKeys(maxTrackedKeys) {
109
+ this._maxTrackedKeys = maxTrackedKeys;
110
+ }
111
+ /**
112
+ * Per-key statistics, keyed by cache key, holding each key's raw
113
+ * `hits`/`misses`/`gets`/`sets`/`deletes` counters. Populated by
114
+ * {@link recordKey} when {@link trackKeys} is enabled; read `trackedKeys.size`
115
+ * for the number of unique keys currently tracked. The returned map is a
116
+ * read-only view — mutate per-key stats via {@link recordKey} /
117
+ * {@link clearKeys} / {@link reset}.
118
+ * @returns {ReadonlyMap<string, Readonly<KeyCounters>>}
119
+ * @readonly
120
+ */
121
+ get trackedKeys() {
122
+ return this._trackedKeys;
123
+ }
124
+ /**
125
+ * @returns {number} - The number of hits
126
+ * @readonly
127
+ */
128
+ get hits() {
129
+ return this._counters.hits;
130
+ }
131
+ /**
132
+ * @returns {number} - The number of misses
133
+ * @readonly
134
+ */
135
+ get misses() {
136
+ return this._counters.misses;
137
+ }
138
+ /**
139
+ * @returns {number} - The number of gets
140
+ * @readonly
141
+ */
142
+ get gets() {
143
+ return this._counters.gets;
144
+ }
145
+ /**
146
+ * @returns {number} - The number of sets
147
+ * @readonly
148
+ */
149
+ get sets() {
150
+ return this._counters.sets;
151
+ }
152
+ /**
153
+ * @returns {number} - The number of deletes
154
+ * @readonly
155
+ */
156
+ get deletes() {
157
+ return this._counters.deletes;
158
+ }
159
+ /**
160
+ * @returns {number} - The number of clears
161
+ * @readonly
162
+ */
163
+ get clears() {
164
+ return this._counters.clears;
165
+ }
166
+ /**
167
+ * @returns {number} - The vsize (value size) of the cache instance
168
+ * @readonly
169
+ */
170
+ get vsize() {
171
+ return this._vsize;
172
+ }
173
+ /**
174
+ * @returns {number} - The ksize (key size) of the cache instance
175
+ * @readonly
176
+ */
177
+ get ksize() {
178
+ return this._ksize;
179
+ }
180
+ /**
181
+ * @returns {number} - The count of the cache instance
182
+ * @readonly
183
+ */
184
+ get count() {
185
+ return this._counters.count;
186
+ }
187
+ /**
188
+ * The ratio of hits to total lookups (hits + misses). Returns `0` when there
189
+ * have been no lookups.
190
+ * @returns {number} - A value between 0 and 1
191
+ * @readonly
192
+ */
193
+ get hitRate() {
194
+ const total = this._counters.hits + this._counters.misses;
195
+ return total === 0 ? 0 : this._counters.hits / total;
196
+ }
197
+ /**
198
+ * The ratio of misses to total lookups (hits + misses). Returns `0` when
199
+ * there have been no lookups.
200
+ * @returns {number} - A value between 0 and 1
201
+ * @readonly
202
+ */
203
+ get missRate() {
204
+ const total = this._counters.hits + this._counters.misses;
205
+ return total === 0 ? 0 : this._counters.misses / total;
206
+ }
207
+ /**
208
+ * The timestamp (ms since epoch) of the last mutation while enabled, or
209
+ * `undefined` if there have been none since the last reset.
210
+ * @returns {number | undefined}
211
+ * @readonly
212
+ */
213
+ get lastUpdated() {
214
+ return this._lastUpdated;
215
+ }
216
+ /**
217
+ * The timestamp (ms since epoch) of the last {@link reset}/{@link clear}, or
218
+ * `undefined` if it has never been reset.
219
+ * @returns {number | undefined}
220
+ * @readonly
221
+ */
222
+ get lastReset() {
223
+ return this._lastReset;
224
+ }
225
+ /**
226
+ * Increment a counter field by `amount` (default `1`). No-op when disabled.
227
+ * @param {StatField} field - The counter to increment
228
+ * @param {number} amount - The amount to add (default 1)
229
+ */
230
+ increment(field, amount = 1) {
231
+ if (!this._enabled) {
232
+ return;
233
+ }
234
+ this._counters[field] += amount;
235
+ this.touch();
236
+ }
237
+ /**
238
+ * Decrement a counter field by `amount` (default `1`). No-op when disabled.
239
+ * @param {StatField} field - The counter to decrement
240
+ * @param {number} amount - The amount to subtract (default 1)
241
+ */
242
+ decrement(field, amount = 1) {
243
+ if (!this._enabled) {
244
+ return;
245
+ }
246
+ this._counters[field] -= amount;
247
+ this.touch();
248
+ }
249
+ incrementHits(amount = 1) {
250
+ this.increment('hits', amount);
251
+ }
252
+ incrementMisses(amount = 1) {
253
+ this.increment('misses', amount);
254
+ }
255
+ incrementGets(amount = 1) {
256
+ this.increment('gets', amount);
257
+ }
258
+ incrementSets(amount = 1) {
259
+ this.increment('sets', amount);
260
+ }
261
+ incrementDeletes(amount = 1) {
262
+ this.increment('deletes', amount);
263
+ }
264
+ incrementClears(amount = 1) {
265
+ this.increment('clears', amount);
266
+ }
267
+ incrementVSize(value) {
268
+ if (!this._enabled) {
269
+ return;
270
+ }
271
+ this._vsize += this.roughSizeOfObject(value);
272
+ this.touch();
273
+ }
274
+ decreaseVSize(value) {
275
+ if (!this._enabled) {
276
+ return;
277
+ }
278
+ // Clamp at 0 so the counter never goes negative when an entry is removed that
279
+ // was added before stats were enabled (and was therefore never counted).
280
+ this._vsize = Math.max(0, this._vsize - this.roughSizeOfObject(value));
281
+ this.touch();
282
+ }
283
+ incrementKSize(key) {
284
+ if (!this._enabled) {
285
+ return;
286
+ }
287
+ this._ksize += this.roughSizeOfString(key);
288
+ this.touch();
289
+ }
290
+ decreaseKSize(key) {
291
+ if (!this._enabled) {
292
+ return;
293
+ }
294
+ // Clamp at 0 so the counter never goes negative when an entry is removed that
295
+ // was added before stats were enabled (and was therefore never counted).
296
+ this._ksize = Math.max(0, this._ksize - this.roughSizeOfString(key));
297
+ this.touch();
298
+ }
299
+ incrementCount(amount = 1) {
300
+ this.increment('count', amount);
301
+ }
302
+ decreaseCount(amount = 1) {
303
+ if (!this._enabled) {
304
+ return;
305
+ }
306
+ // Clamp at 0 so the counter never goes negative when an entry is removed that
307
+ // was added before stats were enabled (and was therefore never counted).
308
+ this._counters.count = Math.max(0, this._counters.count - amount);
309
+ this.touch();
310
+ }
311
+ setCount(count) {
312
+ if (!this._enabled) {
313
+ return;
314
+ }
315
+ this._counters.count = count;
316
+ this.touch();
317
+ }
318
+ roughSizeOfString(value) {
319
+ // Keys are strings (UTF-16)
320
+ return value.length * 2;
321
+ }
322
+ roughSizeOfObject(object) {
323
+ const objectList = [];
324
+ const stack = [object];
325
+ let bytes = 0;
326
+ while (stack.length > 0) {
327
+ const value = stack.pop();
328
+ if (typeof value === 'boolean') {
329
+ bytes += 4; // Booleans are 4 bytes
330
+ }
331
+ else if (typeof value === 'string') {
332
+ bytes += value.length * 2; // Each character is 2 bytes (UTF-16 encoding)
333
+ }
334
+ else if (typeof value === 'number') {
335
+ bytes += 8; // Numbers are 8 bytes (IEEE 754 format)
336
+ }
337
+ else {
338
+ // Handle null values
339
+ if (value === null || value === undefined) {
340
+ bytes += 4;
341
+ continue;
342
+ }
343
+ // Check for circular references - if this object was already processed, skip it
344
+ if (objectList.includes(value)) {
345
+ continue;
346
+ }
347
+ // object as default
348
+ objectList.push(value);
349
+ // Estimate object overhead, and then recursively estimate the size of properties
350
+ for (const key in value) {
351
+ bytes += key.length * 2; // Keys are strings (UTF-16)
352
+ stack.push(value[key]); // Add values to the stack to compute their size
353
+ }
354
+ }
355
+ }
356
+ return bytes;
357
+ }
358
+ /**
359
+ * Enable stat tracking. Equivalent to setting {@link enabled} to `true`.
360
+ */
361
+ enable() {
362
+ this._enabled = true;
363
+ }
364
+ /**
365
+ * Disable stat tracking. Equivalent to setting {@link enabled} to `false`.
366
+ */
367
+ disable() {
368
+ this._enabled = false;
369
+ }
370
+ /**
371
+ * Reset all counters to zero and record the reset timestamp. Alias of
372
+ * {@link reset}.
373
+ */
374
+ clear() {
375
+ this.reset();
376
+ }
377
+ reset() {
378
+ this._counters = {
379
+ hits: 0,
380
+ misses: 0,
381
+ gets: 0,
382
+ sets: 0,
383
+ deletes: 0,
384
+ clears: 0,
385
+ count: 0
386
+ };
387
+ this._vsize = 0;
388
+ this._ksize = 0;
389
+ this._trackedKeys.clear();
390
+ this._lastReset = Date.now();
391
+ this._lastUpdated = undefined;
392
+ }
393
+ resetStoreValues() {
394
+ this._vsize = 0;
395
+ this._ksize = 0;
396
+ this._counters.count = 0;
397
+ }
398
+ /**
399
+ * @returns {StatsSnapshot} - A plain-object snapshot of the current stats,
400
+ * including computed `hitRate`/`missRate` and timestamps.
401
+ */
402
+ toJSON() {
403
+ return {
404
+ enabled: this._enabled,
405
+ hits: this._counters.hits,
406
+ misses: this._counters.misses,
407
+ gets: this._counters.gets,
408
+ sets: this._counters.sets,
409
+ deletes: this._counters.deletes,
410
+ clears: this._counters.clears,
411
+ vsize: this._vsize,
412
+ ksize: this._ksize,
413
+ count: this._counters.count,
414
+ hitRate: this.hitRate,
415
+ missRate: this.missRate,
416
+ trackedKeys: this._trackedKeys.size,
417
+ lastUpdated: this._lastUpdated,
418
+ lastReset: this._lastReset
419
+ };
420
+ }
421
+ /**
422
+ * @returns {StatsSnapshot} - A plain-object snapshot of the current stats.
423
+ * Alias of {@link toJSON}.
424
+ */
425
+ snapshot() {
426
+ return this.toJSON();
427
+ }
428
+ /**
429
+ * Record an operation against a specific key for per-key statistics. No-op
430
+ * unless both {@link enabled} and {@link trackKeys} are `true`.
431
+ * @param {string} key - The cache key the operation touched
432
+ * @param {KeyStatField} field - The per-key counter to increment
433
+ * @param {number} amount - The amount to add (default 1)
434
+ */
435
+ recordKey(key, field, amount = 1) {
436
+ if (!this._enabled || !this._trackKeys) {
437
+ return;
438
+ }
439
+ let counters = this._trackedKeys.get(key);
440
+ if (!counters) {
441
+ counters = { hits: 0, misses: 0, gets: 0, sets: 0, deletes: 0 };
442
+ this._trackedKeys.set(key, counters);
443
+ this.pruneTrackedKeys(key);
444
+ }
445
+ counters[field] += amount;
446
+ this.touch();
447
+ }
448
+ /**
449
+ * The most-used keys, sorted descending. Sorts by total recorded operations,
450
+ * or by a single field when `field` is provided. Ties order by key.
451
+ * @param {number} limit - Maximum entries to return (default 100)
452
+ * @param {KeyStatField} [field] - Optionally rank by one counter (e.g. "hits")
453
+ * @returns {StatsKeyEntry[]}
454
+ */
455
+ mostUsedKeys(limit = 100, field) {
456
+ return this.sortedKeyEntries(field, 'desc').slice(0, limit);
457
+ }
458
+ /**
459
+ * The least-used keys, sorted ascending. Sorts by total recorded operations,
460
+ * or by a single field when `field` is provided. Ties order by key. Note:
461
+ * only keys that have been recorded at least once can be ranked, and when
462
+ * {@link maxTrackedKeys} pruning has occurred the true least-used keys may
463
+ * have been evicted.
464
+ * @param {number} limit - Maximum entries to return (default 100)
465
+ * @param {KeyStatField} [field] - Optionally rank by one counter (e.g. "gets")
466
+ * @returns {StatsKeyEntry[]}
467
+ */
468
+ leastUsedKeys(limit = 100, field) {
469
+ return this.sortedKeyEntries(field, 'asc').slice(0, limit);
470
+ }
471
+ /**
472
+ * @param {string} key - The key to look up
473
+ * @returns {StatsKeyEntry | undefined} - The per-key statistics, or
474
+ * `undefined` if the key has not been recorded
475
+ */
476
+ keyStats(key) {
477
+ const counters = this._trackedKeys.get(key);
478
+ return counters ? this.toKeyEntry(key, counters) : undefined;
479
+ }
480
+ /**
481
+ * Clear all per-key statistics without touching the aggregate counters.
482
+ */
483
+ clearKeys() {
484
+ this._trackedKeys.clear();
485
+ }
486
+ totalOf(counters) {
487
+ return counters.hits + counters.misses + counters.gets + counters.sets + counters.deletes;
488
+ }
489
+ toKeyEntry(key, counters) {
490
+ const lookups = counters.hits + counters.misses;
491
+ return {
492
+ key,
493
+ count: this.totalOf(counters),
494
+ hits: counters.hits,
495
+ misses: counters.misses,
496
+ gets: counters.gets,
497
+ sets: counters.sets,
498
+ deletes: counters.deletes,
499
+ hitRate: lookups === 0 ? 0 : counters.hits / lookups
500
+ };
501
+ }
502
+ sortedKeyEntries(field, direction) {
503
+ const entries = [];
504
+ for (const [key, counters] of this._trackedKeys) {
505
+ entries.push(this.toKeyEntry(key, counters));
506
+ }
507
+ const sign = direction === 'asc' ? 1 : -1;
508
+ entries.sort((a, b) => {
509
+ const valueA = field ? a[field] : a.count;
510
+ const valueB = field ? b[field] : b.count;
511
+ if (valueA !== valueB) {
512
+ return (valueA - valueB) * sign;
513
+ }
514
+ return a.key < b.key ? -1 : 1;
515
+ });
516
+ return entries;
517
+ }
518
+ /**
519
+ * When over {@link maxTrackedKeys}, prune the lowest-count keys down to 90%
520
+ * of the cap (batched so the sort cost amortizes across inserts). The key
521
+ * that was just recorded is never pruned.
522
+ */
523
+ pruneTrackedKeys(protectedKey) {
524
+ if (this._maxTrackedKeys === undefined || this._trackedKeys.size <= this._maxTrackedKeys) {
525
+ return;
526
+ }
527
+ const target = Math.max(1, Math.floor(this._maxTrackedKeys * 0.9));
528
+ const sorted = [...this._trackedKeys.entries()].sort((a, b) => this.totalOf(a[1]) - this.totalOf(b[1]));
529
+ for (const [key] of sorted) {
530
+ if (this._trackedKeys.size <= target) {
531
+ break;
532
+ }
533
+ if (key === protectedKey) {
534
+ continue;
535
+ }
536
+ this._trackedKeys.delete(key);
537
+ }
538
+ }
539
+ /**
540
+ * Subscribe to an emitter so that matching events automatically update the
541
+ * stats. Counting is gated by {@link enabled}, so you may subscribe first and
542
+ * toggle enablement later. Call {@link unsubscribe} to detach.
543
+ * @param {StatsEmitter} emitter - The emitter to listen on
544
+ * @param {StatsEventMap} eventMap - The event-to-stat mapping (e.g.
545
+ * {@link nodeCacheStatsEventMap} or a custom map)
546
+ */
547
+ subscribe(emitter, eventMap) {
548
+ for (const [event, action] of Object.entries(eventMap)) {
549
+ const listener = (...args) => {
550
+ this.applyEvent(action, args);
551
+ };
552
+ emitter.on(event, listener);
553
+ this._subscriptions.push({ emitter, event, listener });
554
+ }
555
+ }
556
+ /**
557
+ * Detach listeners previously attached via {@link subscribe}. When `emitter`
558
+ * is provided, only that emitter's listeners are removed; otherwise all are.
559
+ * @param {StatsEmitter} [emitter] - The emitter to detach from
560
+ */
561
+ unsubscribe(emitter) {
562
+ const remaining = [];
563
+ for (const sub of this._subscriptions) {
564
+ if (emitter && sub.emitter !== emitter) {
565
+ remaining.push(sub);
566
+ continue;
567
+ }
568
+ const off = sub.emitter.off ?? sub.emitter.removeListener;
569
+ off?.call(sub.emitter, sub.event, sub.listener);
570
+ }
571
+ this._subscriptions = remaining;
572
+ }
573
+ applyEvent(action, args) {
574
+ if (!this._enabled) {
575
+ return;
576
+ }
577
+ if (typeof action === 'function') {
578
+ action(this, ...args);
579
+ return;
580
+ }
581
+ if (Array.isArray(action)) {
582
+ for (const field of action) {
583
+ this.increment(field);
584
+ }
585
+ return;
586
+ }
587
+ this.increment(action);
588
+ }
589
+ touch() {
590
+ this._lastUpdated = Date.now();
591
+ }
592
+ }
593
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
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
+ * A per-store time-to-live override. Each field is a normal TTL (a number in milliseconds or a
11
+ * human-readable shorthand such as `1s`, `1m`, `1h`, `1d`) applied to that specific store. Fields
12
+ * left undefined fall back to that store's own default TTL resolution.
13
+ */
14
+ export type PerStoreTtl = {
15
+ /**
16
+ * The time-to-live to use for the primary store.
17
+ */
18
+ primary?: number | string;
19
+ /**
20
+ * The time-to-live to use for the secondary store.
21
+ */
22
+ secondary?: number | string;
23
+ };
24
+ /**
25
+ * Normalizes a TTL input into per-store milliseconds. When given an object it resolves the
26
+ * `primary` and `secondary` fields independently; when given a number or shorthand string it
27
+ * applies the same value to both stores. Undefined fields (or undefined input) resolve to
28
+ * `undefined` so the caller can fall back to its own default TTL.
29
+ * @param ttl - The TTL input: a number (ms), a shorthand string, or a {@link PerStoreTtl} object.
30
+ * @returns {{ primary?: number; secondary?: number }} The resolved per-store TTLs in milliseconds.
31
+ */
32
+ export declare function resolvePerStoreTtl(ttl?: number | string | PerStoreTtl): {
33
+ primary?: number;
34
+ secondary?: number;
35
+ };
36
+ /**
37
+ * Converts a exspires value to a TTL value.
38
+ * @param expires - The expires value to convert.
39
+ * @returns {number | undefined} The TTL value in milliseconds, or undefined if the expires value is not valid.
40
+ */
41
+ export declare function getTtlFromExpires(expires: number | undefined): number | undefined;
42
+ /**
43
+ * Get the TTL value from the cacheableTtl, primaryTtl, and secondaryTtl values.
44
+ * @param cacheableTtl - The cacheableTtl value to use.
45
+ * @param primaryTtl - The primaryTtl value to use.
46
+ * @param secondaryTtl - The secondaryTtl value to use.
47
+ * @returns {number | undefined} The TTL value in milliseconds, or undefined if all values are undefined.
48
+ */
49
+ export declare function getCascadingTtl(cacheableTtl?: number | string, primaryTtl?: number, secondaryTtl?: number): number | undefined;
50
+ /**
51
+ * Calculate the TTL value from the expires value. If the ttl is undefined, it will be set to the expires value. If the
52
+ * expires value is undefined, it will be set to the ttl value. If both values are defined, the smaller of the two will be used.
53
+ * @param ttl
54
+ * @param expires
55
+ * @returns
56
+ */
57
+ export declare function calculateTtlFromExpiration(ttl: number | undefined, expires: number | undefined): number | undefined;
58
+ //# sourceMappingURL=ttl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ttl.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/ttl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAIL;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAcA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAWjF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAgBnH"}