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,157 @@
1
+ /**
2
+ * Original library: hookified (v1.15.1)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ import type { EventEmitterOptions, EventListener, IEventEmitter, Logger } from './types.ts';
10
+ export type { EventEmitterOptions, EventListener, IEventEmitter };
11
+ export declare class Eventified implements IEventEmitter {
12
+ private readonly _eventListeners;
13
+ private _maxListeners;
14
+ private _logger?;
15
+ private _throwOnEmitError;
16
+ private _throwOnEmptyListeners;
17
+ private _errorEvent;
18
+ constructor(options?: EventEmitterOptions);
19
+ /**
20
+ * Gets the logger
21
+ * @returns {Logger}
22
+ */
23
+ get logger(): Logger | undefined;
24
+ /**
25
+ * Sets the logger
26
+ * @param {Logger} logger
27
+ */
28
+ set logger(logger: Logger | undefined);
29
+ /**
30
+ * Gets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
31
+ * @returns {boolean}
32
+ */
33
+ get throwOnEmitError(): boolean;
34
+ /**
35
+ * Sets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
36
+ * @param {boolean} value
37
+ */
38
+ set throwOnEmitError(value: boolean);
39
+ /**
40
+ * Gets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
41
+ * @returns {boolean}
42
+ */
43
+ get throwOnEmptyListeners(): boolean;
44
+ /**
45
+ * Sets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
46
+ * @param {boolean} value
47
+ */
48
+ set throwOnEmptyListeners(value: boolean);
49
+ /**
50
+ * Adds a handler function for a specific event that will run only once
51
+ * @param {string | symbol} eventName
52
+ * @param {EventListener} listener
53
+ * @returns {IEventEmitter} returns the instance of the class for chaining
54
+ */
55
+ once(eventName: string | symbol, listener: EventListener): IEventEmitter;
56
+ /**
57
+ * Gets the number of listeners for a specific event. If no event is provided, it returns the total number of listeners
58
+ * @param {string} eventName The event name. Not required
59
+ * @returns {number} The number of listeners
60
+ */
61
+ listenerCount(eventName?: string | symbol): number;
62
+ /**
63
+ * Gets an array of event names
64
+ * @returns {Array<string | symbol>} An array of event names
65
+ */
66
+ eventNames(): Array<string | symbol>;
67
+ /**
68
+ * Gets an array of listeners for a specific event. If no event is provided, it returns all listeners
69
+ * @param {string} [event] (Optional) The event name
70
+ * @returns {EventListener[]} An array of listeners
71
+ */
72
+ rawListeners(event?: string | symbol): EventListener[];
73
+ /**
74
+ * Prepends a listener to the beginning of the listeners array for the specified event
75
+ * @param {string | symbol} eventName
76
+ * @param {EventListener} listener
77
+ * @returns {IEventEmitter} returns the instance of the class for chaining
78
+ */
79
+ prependListener(eventName: string | symbol, listener: EventListener): IEventEmitter;
80
+ /**
81
+ * Prepends a one-time listener to the beginning of the listeners array for the specified event
82
+ * @param {string | symbol} eventName
83
+ * @param {EventListener} listener
84
+ * @returns {IEventEmitter} returns the instance of the class for chaining
85
+ */
86
+ prependOnceListener(eventName: string | symbol, listener: EventListener): IEventEmitter;
87
+ /**
88
+ * Gets the maximum number of listeners that can be added for a single event
89
+ * @returns {number} The maximum number of listeners
90
+ */
91
+ maxListeners(): number;
92
+ /**
93
+ * Adds a listener for a specific event. It is an alias for the on() method
94
+ * @param {string | symbol} event
95
+ * @param {EventListener} listener
96
+ * @returns {IEventEmitter} returns the instance of the class for chaining
97
+ */
98
+ addListener(event: string | symbol, listener: EventListener): IEventEmitter;
99
+ /**
100
+ * Adds a listener for a specific event
101
+ * @param {string | symbol} event
102
+ * @param {EventListener} listener
103
+ * @returns {IEventEmitter} returns the instance of the class for chaining
104
+ */
105
+ on(event: string | symbol, listener: EventListener): IEventEmitter;
106
+ /**
107
+ * Removes a listener for a specific event. It is an alias for the off() method
108
+ * @param {string | symbol} event
109
+ * @param {EventListener} listener
110
+ * @returns {IEventEmitter} returns the instance of the class for chaining
111
+ */
112
+ removeListener(event: string, listener: EventListener): IEventEmitter;
113
+ /**
114
+ * Removes a listener for a specific event
115
+ * @param {string | symbol} event
116
+ * @param {EventListener} listener
117
+ * @returns {IEventEmitter} returns the instance of the class for chaining
118
+ */
119
+ off(event: string | symbol, listener: EventListener): IEventEmitter;
120
+ /**
121
+ * Calls all listeners for a specific event
122
+ * @param {string | symbol} event
123
+ * @param arguments_ The arguments to pass to the listeners
124
+ * @returns {boolean} Returns true if the event had listeners, false otherwise
125
+ */
126
+ emit(event: string | symbol, ...arguments_: any[]): boolean;
127
+ /**
128
+ * Gets all listeners for a specific event. If no event is provided, it returns all listeners
129
+ * @param {string} [event] (Optional) The event name
130
+ * @returns {EventListener[]} An array of listeners
131
+ */
132
+ listeners(event: string | symbol): EventListener[];
133
+ /**
134
+ * Removes all listeners for a specific event. If no event is provided, it removes all listeners
135
+ * @param {string} [event] (Optional) The event name
136
+ * @returns {IEventEmitter} returns the instance of the class for chaining
137
+ */
138
+ removeAllListeners(event?: string | symbol): IEventEmitter;
139
+ /**
140
+ * Sets the maximum number of listeners that can be added for a single event
141
+ * @param {number} n The maximum number of listeners
142
+ * @returns {void}
143
+ */
144
+ setMaxListeners(n: number): void;
145
+ /**
146
+ * Gets all listeners
147
+ * @returns {EventListener[]} An array of listeners
148
+ */
149
+ getAllListeners(): EventListener[];
150
+ /**
151
+ * Sends a log message using the configured logger based on the event name
152
+ * @param {string | symbol} eventName - The event name that determines the log level
153
+ * @param {unknown} data - The data to log
154
+ */
155
+ private sendLog;
156
+ }
157
+ //# sourceMappingURL=eventified.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventified.d.ts","sourceRoot":"","sources":["../../../../../src/caching/src/hashing/hooks/eventified.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE5F,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAElE,qBAAa,UAAW,YAAW,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IACxE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,WAAW,CAAW;gBAElB,OAAO,CAAC,EAAE,mBAAmB;IAezC;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED;;;OAGG;IACH,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAE3C;IAED;;;OAGG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;;OAGG;IACH,IAAW,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAEzC;IAED;;;OAGG;IACH,IAAW,qBAAqB,IAAI,OAAO,CAE1C;IAED;;;OAGG;IACH,IAAW,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAE9C;IAED;;;;;OAKG;IACI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAU/E;;;;OAIG;IACI,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IASzD;;;OAGG;IACI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAI3C;;;;OAIG;IACI,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,EAAE;IAQ7D;;;;;OAKG;IACI,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAO1F;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAU9F;;;OAGG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAKlF;;;;;OAKG;IACI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAoBzE;;;;;OAKG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAK5E;;;;;OAKG;IACI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa;IAc1E;;;;;OAKG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO;IA6BlE;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,EAAE;IAIzD;;;;OAIG;IACI,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa;IAUjE;;;;OAIG;IACI,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IASvC;;;OAGG;IACI,eAAe,IAAI,aAAa,EAAE;IASzC;;;;OAIG;IACH,OAAO,CAAC,OAAO;CAoDhB"}
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Original library: hookified (v1.15.1)
3
+ * - Copyright (c) Jared Wray
4
+ *
5
+ * Modified and integrated in "Inray":
6
+ * - Evgeniy Bushin
7
+ */
8
+ /***/
9
+ export class Eventified {
10
+ _eventListeners;
11
+ _maxListeners;
12
+ _logger;
13
+ _throwOnEmitError = false;
14
+ _throwOnEmptyListeners = false;
15
+ _errorEvent = 'error';
16
+ constructor(options) {
17
+ this._eventListeners = new Map();
18
+ this._maxListeners = 100; // Default maximum number of listeners
19
+ this._logger = options?.logger;
20
+ if (options?.throwOnEmitError !== undefined) {
21
+ this._throwOnEmitError = options.throwOnEmitError;
22
+ }
23
+ if (options?.throwOnEmptyListeners !== undefined) {
24
+ this._throwOnEmptyListeners = options.throwOnEmptyListeners;
25
+ }
26
+ }
27
+ /**
28
+ * Gets the logger
29
+ * @returns {Logger}
30
+ */
31
+ get logger() {
32
+ return this._logger;
33
+ }
34
+ /**
35
+ * Sets the logger
36
+ * @param {Logger} logger
37
+ */
38
+ set logger(logger) {
39
+ this._logger = logger;
40
+ }
41
+ /**
42
+ * Gets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
43
+ * @returns {boolean}
44
+ */
45
+ get throwOnEmitError() {
46
+ return this._throwOnEmitError;
47
+ }
48
+ /**
49
+ * Sets whether an error should be thrown when an emit throws an error. Default is false and only emits an error event.
50
+ * @param {boolean} value
51
+ */
52
+ set throwOnEmitError(value) {
53
+ this._throwOnEmitError = value;
54
+ }
55
+ /**
56
+ * Gets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
57
+ * @returns {boolean}
58
+ */
59
+ get throwOnEmptyListeners() {
60
+ return this._throwOnEmptyListeners;
61
+ }
62
+ /**
63
+ * Sets whether an error should be thrown when emitting 'error' event with no listeners. Default is false.
64
+ * @param {boolean} value
65
+ */
66
+ set throwOnEmptyListeners(value) {
67
+ this._throwOnEmptyListeners = value;
68
+ }
69
+ /**
70
+ * Adds a handler function for a specific event that will run only once
71
+ * @param {string | symbol} eventName
72
+ * @param {EventListener} listener
73
+ * @returns {IEventEmitter} returns the instance of the class for chaining
74
+ */
75
+ once(eventName, listener) {
76
+ const onceListener = (...arguments_) => {
77
+ this.off(eventName, onceListener);
78
+ listener(...arguments_);
79
+ };
80
+ this.on(eventName, onceListener);
81
+ return this;
82
+ }
83
+ /**
84
+ * Gets the number of listeners for a specific event. If no event is provided, it returns the total number of listeners
85
+ * @param {string} eventName The event name. Not required
86
+ * @returns {number} The number of listeners
87
+ */
88
+ listenerCount(eventName) {
89
+ if (eventName === undefined) {
90
+ return this.getAllListeners().length;
91
+ }
92
+ const listeners = this._eventListeners.get(eventName);
93
+ return listeners ? listeners.length : 0;
94
+ }
95
+ /**
96
+ * Gets an array of event names
97
+ * @returns {Array<string | symbol>} An array of event names
98
+ */
99
+ eventNames() {
100
+ return [...this._eventListeners.keys()];
101
+ }
102
+ /**
103
+ * Gets an array of listeners for a specific event. If no event is provided, it returns all listeners
104
+ * @param {string} [event] (Optional) The event name
105
+ * @returns {EventListener[]} An array of listeners
106
+ */
107
+ rawListeners(event) {
108
+ if (event === undefined) {
109
+ return this.getAllListeners();
110
+ }
111
+ return this._eventListeners.get(event) ?? [];
112
+ }
113
+ /**
114
+ * Prepends a listener to the beginning of the listeners array for the specified event
115
+ * @param {string | symbol} eventName
116
+ * @param {EventListener} listener
117
+ * @returns {IEventEmitter} returns the instance of the class for chaining
118
+ */
119
+ prependListener(eventName, listener) {
120
+ const listeners = this._eventListeners.get(eventName) ?? [];
121
+ listeners.unshift(listener);
122
+ this._eventListeners.set(eventName, listeners);
123
+ return this;
124
+ }
125
+ /**
126
+ * Prepends a one-time listener to the beginning of the listeners array for the specified event
127
+ * @param {string | symbol} eventName
128
+ * @param {EventListener} listener
129
+ * @returns {IEventEmitter} returns the instance of the class for chaining
130
+ */
131
+ prependOnceListener(eventName, listener) {
132
+ const onceListener = (...arguments_) => {
133
+ this.off(eventName, onceListener);
134
+ listener(...arguments_);
135
+ };
136
+ this.prependListener(eventName, onceListener);
137
+ return this;
138
+ }
139
+ /**
140
+ * Gets the maximum number of listeners that can be added for a single event
141
+ * @returns {number} The maximum number of listeners
142
+ */
143
+ maxListeners() {
144
+ return this._maxListeners;
145
+ }
146
+ /**
147
+ * Adds a listener for a specific event. It is an alias for the on() method
148
+ * @param {string | symbol} event
149
+ * @param {EventListener} listener
150
+ * @returns {IEventEmitter} returns the instance of the class for chaining
151
+ */
152
+ addListener(event, listener) {
153
+ this.on(event, listener);
154
+ return this;
155
+ }
156
+ /**
157
+ * Adds a listener for a specific event
158
+ * @param {string | symbol} event
159
+ * @param {EventListener} listener
160
+ * @returns {IEventEmitter} returns the instance of the class for chaining
161
+ */
162
+ on(event, listener) {
163
+ if (!this._eventListeners.has(event)) {
164
+ this._eventListeners.set(event, []);
165
+ }
166
+ const listeners = this._eventListeners.get(event);
167
+ if (listeners) {
168
+ if (listeners.length >= this._maxListeners) {
169
+ console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length + 1} ${event} listeners added. Use setMaxListeners() to increase limit.`);
170
+ }
171
+ listeners.push(listener);
172
+ }
173
+ return this;
174
+ }
175
+ /**
176
+ * Removes a listener for a specific event. It is an alias for the off() method
177
+ * @param {string | symbol} event
178
+ * @param {EventListener} listener
179
+ * @returns {IEventEmitter} returns the instance of the class for chaining
180
+ */
181
+ removeListener(event, listener) {
182
+ this.off(event, listener);
183
+ return this;
184
+ }
185
+ /**
186
+ * Removes a listener for a specific event
187
+ * @param {string | symbol} event
188
+ * @param {EventListener} listener
189
+ * @returns {IEventEmitter} returns the instance of the class for chaining
190
+ */
191
+ off(event, listener) {
192
+ const listeners = this._eventListeners.get(event) ?? [];
193
+ const index = listeners.indexOf(listener);
194
+ if (index !== -1) {
195
+ listeners.splice(index, 1);
196
+ }
197
+ if (listeners.length === 0) {
198
+ this._eventListeners.delete(event);
199
+ }
200
+ return this;
201
+ }
202
+ /**
203
+ * Calls all listeners for a specific event
204
+ * @param {string | symbol} event
205
+ * @param arguments_ The arguments to pass to the listeners
206
+ * @returns {boolean} Returns true if the event had listeners, false otherwise
207
+ */
208
+ emit(event, ...arguments_) {
209
+ let result = false;
210
+ const listeners = this._eventListeners.get(event);
211
+ if (listeners && listeners.length > 0) {
212
+ for (const listener of listeners) {
213
+ listener(...arguments_);
214
+ result = true;
215
+ }
216
+ }
217
+ if (event === this._errorEvent) {
218
+ const error = arguments_[0] instanceof Error ? arguments_[0] : new Error(`${arguments_[0]}`);
219
+ if (this._throwOnEmitError && !result) {
220
+ throw error;
221
+ }
222
+ else {
223
+ if (this.listeners(this._errorEvent).length === 0 && this._throwOnEmptyListeners === true) {
224
+ throw error;
225
+ }
226
+ }
227
+ }
228
+ // send it to the logger
229
+ this.sendLog(event, arguments_);
230
+ return result;
231
+ }
232
+ /**
233
+ * Gets all listeners for a specific event. If no event is provided, it returns all listeners
234
+ * @param {string} [event] (Optional) The event name
235
+ * @returns {EventListener[]} An array of listeners
236
+ */
237
+ listeners(event) {
238
+ return this._eventListeners.get(event) ?? [];
239
+ }
240
+ /**
241
+ * Removes all listeners for a specific event. If no event is provided, it removes all listeners
242
+ * @param {string} [event] (Optional) The event name
243
+ * @returns {IEventEmitter} returns the instance of the class for chaining
244
+ */
245
+ removeAllListeners(event) {
246
+ if (event !== undefined) {
247
+ this._eventListeners.delete(event);
248
+ }
249
+ else {
250
+ this._eventListeners.clear();
251
+ }
252
+ return this;
253
+ }
254
+ /**
255
+ * Sets the maximum number of listeners that can be added for a single event
256
+ * @param {number} n The maximum number of listeners
257
+ * @returns {void}
258
+ */
259
+ setMaxListeners(n) {
260
+ this._maxListeners = n;
261
+ for (const listeners of this._eventListeners.values()) {
262
+ if (listeners.length > n) {
263
+ listeners.splice(n);
264
+ }
265
+ }
266
+ }
267
+ /**
268
+ * Gets all listeners
269
+ * @returns {EventListener[]} An array of listeners
270
+ */
271
+ getAllListeners() {
272
+ let result = [];
273
+ for (const listeners of this._eventListeners.values()) {
274
+ result = [...result, ...listeners];
275
+ }
276
+ return result;
277
+ }
278
+ /**
279
+ * Sends a log message using the configured logger based on the event name
280
+ * @param {string | symbol} eventName - The event name that determines the log level
281
+ * @param {unknown} data - The data to log
282
+ */
283
+ sendLog(eventName, data) {
284
+ if (!this._logger) {
285
+ return;
286
+ }
287
+ let message;
288
+ /* v8 ignore next -- @preserve */
289
+ if (typeof data === 'string') {
290
+ message = data;
291
+ }
292
+ else if (Array.isArray(data) && data.length > 0 && data[0] instanceof Error) {
293
+ message = data[0].message;
294
+ /* v8 ignore next -- @preserve */
295
+ }
296
+ else if (data instanceof Error) {
297
+ message = data.message;
298
+ }
299
+ else if (Array.isArray(data) && data.length > 0 && typeof data[0]?.message === 'string') {
300
+ message = data[0].message;
301
+ }
302
+ else {
303
+ message = JSON.stringify(data);
304
+ }
305
+ switch (eventName) {
306
+ case 'error': {
307
+ this._logger.error?.(message, { event: eventName, data });
308
+ break;
309
+ }
310
+ case 'warn': {
311
+ this._logger.warn?.(message, { event: eventName, data });
312
+ break;
313
+ }
314
+ case 'trace': {
315
+ this._logger.trace?.(message, { event: eventName, data });
316
+ break;
317
+ }
318
+ case 'debug': {
319
+ this._logger.debug?.(message, { event: eventName, data });
320
+ break;
321
+ }
322
+ case 'fatal': {
323
+ this._logger.fatal?.(message, { event: eventName, data });
324
+ break;
325
+ }
326
+ default: {
327
+ this._logger.info?.(message, { event: eventName, data });
328
+ break;
329
+ }
330
+ }
331
+ }
332
+ }
333
+ //# sourceMappingURL=eventified.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventified.js","sourceRoot":"","sources":["../../../../../src/caching/src/hashing/hooks/eventified.ts"],"names":[],"mappings":"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"}