inray 0.0.2 → 0.0.3

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 (155) hide show
  1. package/LICENSE.md +1 -0
  2. package/README.md +132 -32
  3. package/dist/caching/mod.d.ts +2 -0
  4. package/dist/caching/mod.d.ts.map +1 -0
  5. package/dist/caching/mod.js +2 -0
  6. package/dist/caching/mod.js.map +1 -0
  7. package/dist/caching/src/cache.d.ts +89 -0
  8. package/dist/caching/src/cache.d.ts.map +1 -0
  9. package/dist/caching/src/cache.js +309 -0
  10. package/dist/caching/src/cache.js.map +1 -0
  11. package/dist/caching/src/hashing/cache.d.ts +92 -0
  12. package/dist/caching/src/hashing/cache.d.ts.map +1 -0
  13. package/dist/caching/src/hashing/cache.js +119 -0
  14. package/dist/caching/src/hashing/cache.js.map +1 -0
  15. package/dist/caching/src/hashing/hooks/eventified.d.ts +157 -0
  16. package/dist/caching/src/hashing/hooks/eventified.d.ts.map +1 -0
  17. package/dist/caching/src/hashing/hooks/eventified.js +333 -0
  18. package/dist/caching/src/hashing/hooks/eventified.js.map +1 -0
  19. package/dist/caching/src/hashing/hooks/index.d.ts +199 -0
  20. package/dist/caching/src/hashing/hooks/index.d.ts.map +1 -0
  21. package/dist/caching/src/hashing/hooks/index.js +383 -0
  22. package/dist/caching/src/hashing/hooks/index.js.map +1 -0
  23. package/dist/caching/src/hashing/hooks/types.d.ts +217 -0
  24. package/dist/caching/src/hashing/hooks/types.d.ts.map +1 -0
  25. package/dist/caching/src/hashing/hooks/types.js +10 -0
  26. package/dist/caching/src/hashing/hooks/types.js.map +1 -0
  27. package/dist/caching/src/hashing/index.d.ts +236 -0
  28. package/dist/caching/src/hashing/index.d.ts.map +1 -0
  29. package/dist/caching/src/hashing/index.js +447 -0
  30. package/dist/caching/src/hashing/index.js.map +1 -0
  31. package/dist/caching/src/hashing/providers/crc.d.ts +15 -0
  32. package/dist/caching/src/hashing/providers/crc.d.ts.map +1 -0
  33. package/dist/caching/src/hashing/providers/crc.js +49 -0
  34. package/dist/caching/src/hashing/providers/crc.js.map +1 -0
  35. package/dist/caching/src/hashing/providers/crypto.d.ts +19 -0
  36. package/dist/caching/src/hashing/providers/crypto.d.ts.map +1 -0
  37. package/dist/caching/src/hashing/providers/crypto.js +28 -0
  38. package/dist/caching/src/hashing/providers/crypto.js.map +1 -0
  39. package/dist/caching/src/hashing/providers/djb2.d.ts +60 -0
  40. package/dist/caching/src/hashing/providers/djb2.d.ts.map +1 -0
  41. package/dist/caching/src/hashing/providers/djb2.js +92 -0
  42. package/dist/caching/src/hashing/providers/djb2.js.map +1 -0
  43. package/dist/caching/src/hashing/providers/fnv1.d.ts +33 -0
  44. package/dist/caching/src/hashing/providers/fnv1.d.ts.map +1 -0
  45. package/dist/caching/src/hashing/providers/fnv1.js +68 -0
  46. package/dist/caching/src/hashing/providers/fnv1.js.map +1 -0
  47. package/dist/caching/src/hashing/providers/murmur.d.ts +81 -0
  48. package/dist/caching/src/hashing/providers/murmur.d.ts.map +1 -0
  49. package/dist/caching/src/hashing/providers/murmur.js +173 -0
  50. package/dist/caching/src/hashing/providers/murmur.js.map +1 -0
  51. package/dist/caching/src/hashing/providers.d.ts +126 -0
  52. package/dist/caching/src/hashing/providers.d.ts.map +1 -0
  53. package/dist/caching/src/hashing/providers.js +163 -0
  54. package/dist/caching/src/hashing/providers.js.map +1 -0
  55. package/dist/caching/src/hashing/types.d.ts +340 -0
  56. package/dist/caching/src/hashing/types.d.ts.map +1 -0
  57. package/dist/caching/src/hashing/types.js +10 -0
  58. package/dist/caching/src/hashing/types.js.map +1 -0
  59. package/dist/caching/src/keyValue/capabilities.d.ts +161 -0
  60. package/dist/caching/src/keyValue/capabilities.d.ts.map +1 -0
  61. package/dist/caching/src/keyValue/capabilities.js +334 -0
  62. package/dist/caching/src/keyValue/capabilities.js.map +1 -0
  63. package/dist/caching/src/keyValue/event-manager.d.ts +27 -0
  64. package/dist/caching/src/keyValue/event-manager.d.ts.map +1 -0
  65. package/dist/caching/src/keyValue/event-manager.js +88 -0
  66. package/dist/caching/src/keyValue/event-manager.js.map +1 -0
  67. package/dist/caching/src/keyValue/generic-store.d.ts +243 -0
  68. package/dist/caching/src/keyValue/generic-store.d.ts.map +1 -0
  69. package/dist/caching/src/keyValue/generic-store.js +295 -0
  70. package/dist/caching/src/keyValue/generic-store.js.map +1 -0
  71. package/dist/caching/src/keyValue/hooks-manager.d.ts +21 -0
  72. package/dist/caching/src/keyValue/hooks-manager.d.ts.map +1 -0
  73. package/dist/caching/src/keyValue/hooks-manager.js +59 -0
  74. package/dist/caching/src/keyValue/hooks-manager.js.map +1 -0
  75. package/dist/caching/src/keyValue/index.d.ts +334 -0
  76. package/dist/caching/src/keyValue/index.d.ts.map +1 -0
  77. package/dist/caching/src/keyValue/index.js +796 -0
  78. package/dist/caching/src/keyValue/index.js.map +1 -0
  79. package/dist/caching/src/keyValue/serialize/serialize.d.ts +12 -0
  80. package/dist/caching/src/keyValue/serialize/serialize.d.ts.map +1 -0
  81. package/dist/caching/src/keyValue/serialize/serialize.js +64 -0
  82. package/dist/caching/src/keyValue/serialize/serialize.js.map +1 -0
  83. package/dist/caching/src/keyValue/stats-manager.d.ts +27 -0
  84. package/dist/caching/src/keyValue/stats-manager.d.ts.map +1 -0
  85. package/dist/caching/src/keyValue/stats-manager.js +64 -0
  86. package/dist/caching/src/keyValue/stats-manager.js.map +1 -0
  87. package/dist/caching/src/keyValue/types.d.ts +22 -0
  88. package/dist/caching/src/keyValue/types.d.ts.map +1 -0
  89. package/dist/caching/src/keyValue/types.js +11 -0
  90. package/dist/caching/src/keyValue/types.js.map +1 -0
  91. package/dist/caching/src/keyv-adapter.d.ts +40 -0
  92. package/dist/caching/src/keyv-adapter.d.ts.map +1 -0
  93. package/dist/caching/src/keyv-adapter.js +56 -0
  94. package/dist/caching/src/keyv-adapter.js.map +1 -0
  95. package/dist/caching/src/utils/cache-tags.d.ts +275 -0
  96. package/dist/caching/src/utils/cache-tags.d.ts.map +1 -0
  97. package/dist/caching/src/utils/cache-tags.js +407 -0
  98. package/dist/caching/src/utils/cache-tags.js.map +1 -0
  99. package/dist/caching/src/utils/cacheable-item-types.d.ts +35 -0
  100. package/dist/caching/src/utils/cacheable-item-types.d.ts.map +1 -0
  101. package/dist/caching/src/utils/cacheable-item-types.js +10 -0
  102. package/dist/caching/src/utils/cacheable-item-types.js.map +1 -0
  103. package/dist/caching/src/utils/coalesce-async.d.ts +29 -0
  104. package/dist/caching/src/utils/coalesce-async.d.ts.map +1 -0
  105. package/dist/caching/src/utils/coalesce-async.js +88 -0
  106. package/dist/caching/src/utils/coalesce-async.js.map +1 -0
  107. package/dist/caching/src/utils/hash.d.ts +55 -0
  108. package/dist/caching/src/utils/hash.d.ts.map +1 -0
  109. package/dist/caching/src/utils/hash.js +116 -0
  110. package/dist/caching/src/utils/hash.js.map +1 -0
  111. package/dist/caching/src/utils/index.d.ts +24 -0
  112. package/dist/caching/src/utils/index.d.ts.map +1 -0
  113. package/dist/caching/src/utils/index.js +21 -0
  114. package/dist/caching/src/utils/index.js.map +1 -0
  115. package/dist/caching/src/utils/is-keyv-instance.d.ts +10 -0
  116. package/dist/caching/src/utils/is-keyv-instance.d.ts.map +1 -0
  117. package/dist/caching/src/utils/is-keyv-instance.js +37 -0
  118. package/dist/caching/src/utils/is-keyv-instance.js.map +1 -0
  119. package/dist/caching/src/utils/is-object.d.ts +10 -0
  120. package/dist/caching/src/utils/is-object.d.ts.map +1 -0
  121. package/dist/caching/src/utils/is-object.js +13 -0
  122. package/dist/caching/src/utils/is-object.js.map +1 -0
  123. package/dist/caching/src/utils/less-than.d.ts +10 -0
  124. package/dist/caching/src/utils/less-than.d.ts.map +1 -0
  125. package/dist/caching/src/utils/less-than.js +13 -0
  126. package/dist/caching/src/utils/less-than.js.map +1 -0
  127. package/dist/caching/src/utils/memoize.d.ts +107 -0
  128. package/dist/caching/src/utils/memoize.d.ts.map +1 -0
  129. package/dist/caching/src/utils/memoize.js +201 -0
  130. package/dist/caching/src/utils/memoize.js.map +1 -0
  131. package/dist/caching/src/utils/mock-cacheable.d.ts +28 -0
  132. package/dist/caching/src/utils/mock-cacheable.d.ts.map +1 -0
  133. package/dist/caching/src/utils/mock-cacheable.js +87 -0
  134. package/dist/caching/src/utils/mock-cacheable.js.map +1 -0
  135. package/dist/caching/src/utils/run-if-fn.d.ts +12 -0
  136. package/dist/caching/src/utils/run-if-fn.d.ts.map +1 -0
  137. package/dist/caching/src/utils/run-if-fn.js +12 -0
  138. package/dist/caching/src/utils/run-if-fn.js.map +1 -0
  139. package/dist/caching/src/utils/shorthand-time.d.ts +27 -0
  140. package/dist/caching/src/utils/shorthand-time.d.ts.map +1 -0
  141. package/dist/caching/src/utils/shorthand-time.js +96 -0
  142. package/dist/caching/src/utils/shorthand-time.js.map +1 -0
  143. package/dist/caching/src/utils/sleep.d.ts +10 -0
  144. package/dist/caching/src/utils/sleep.d.ts.map +1 -0
  145. package/dist/caching/src/utils/sleep.js +11 -0
  146. package/dist/caching/src/utils/sleep.js.map +1 -0
  147. package/dist/caching/src/utils/stats.d.ts +354 -0
  148. package/dist/caching/src/utils/stats.d.ts.map +1 -0
  149. package/dist/caching/src/utils/stats.js +593 -0
  150. package/dist/caching/src/utils/stats.js.map +1 -0
  151. package/dist/caching/src/utils/ttl.d.ts +58 -0
  152. package/dist/caching/src/utils/ttl.d.ts.map +1 -0
  153. package/dist/caching/src/utils/ttl.js +77 -0
  154. package/dist/caching/src/utils/ttl.js.map +1 -0
  155. package/package.json +11 -3
@@ -0,0 +1,77 @@
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
+ /**
11
+ * Normalizes a TTL input into per-store milliseconds. When given an object it resolves the
12
+ * `primary` and `secondary` fields independently; when given a number or shorthand string it
13
+ * applies the same value to both stores. Undefined fields (or undefined input) resolve to
14
+ * `undefined` so the caller can fall back to its own default TTL.
15
+ * @param ttl - The TTL input: a number (ms), a shorthand string, or a {@link PerStoreTtl} object.
16
+ * @returns {{ primary?: number; secondary?: number }} The resolved per-store TTLs in milliseconds.
17
+ */
18
+ export function resolvePerStoreTtl(ttl) {
19
+ if (ttl === undefined || ttl === null) {
20
+ return { primary: undefined, secondary: undefined };
21
+ }
22
+ if (typeof ttl === 'object') {
23
+ return {
24
+ primary: shorthandToMilliseconds(ttl.primary),
25
+ secondary: shorthandToMilliseconds(ttl.secondary)
26
+ };
27
+ }
28
+ const milliseconds = shorthandToMilliseconds(ttl);
29
+ return { primary: milliseconds, secondary: milliseconds };
30
+ }
31
+ /**
32
+ * Converts a exspires value to a TTL value.
33
+ * @param expires - The expires value to convert.
34
+ * @returns {number | undefined} The TTL value in milliseconds, or undefined if the expires value is not valid.
35
+ */
36
+ export function getTtlFromExpires(expires) {
37
+ if (expires === undefined || expires === null) {
38
+ return undefined;
39
+ }
40
+ const now = Date.now();
41
+ if (expires < now) {
42
+ return undefined;
43
+ }
44
+ return expires - now;
45
+ }
46
+ /**
47
+ * Get the TTL value from the cacheableTtl, primaryTtl, and secondaryTtl values.
48
+ * @param cacheableTtl - The cacheableTtl value to use.
49
+ * @param primaryTtl - The primaryTtl value to use.
50
+ * @param secondaryTtl - The secondaryTtl value to use.
51
+ * @returns {number | undefined} The TTL value in milliseconds, or undefined if all values are undefined.
52
+ */
53
+ export function getCascadingTtl(cacheableTtl, primaryTtl, secondaryTtl) {
54
+ return secondaryTtl ?? primaryTtl ?? shorthandToMilliseconds(cacheableTtl);
55
+ }
56
+ /**
57
+ * Calculate the TTL value from the expires value. If the ttl is undefined, it will be set to the expires value. If the
58
+ * 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.
59
+ * @param ttl
60
+ * @param expires
61
+ * @returns
62
+ */
63
+ export function calculateTtlFromExpiration(ttl, expires) {
64
+ const ttlFromExpires = getTtlFromExpires(expires);
65
+ const expiresFromTtl = ttl ? Date.now() + ttl : undefined;
66
+ if (ttlFromExpires === undefined) {
67
+ return ttl;
68
+ }
69
+ if (expiresFromTtl === undefined) {
70
+ return ttlFromExpires;
71
+ }
72
+ if (expires && expires > expiresFromTtl) {
73
+ return ttl;
74
+ }
75
+ return ttlFromExpires;
76
+ }
77
+ //# sourceMappingURL=ttl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ttl.js","sourceRoot":"","sources":["../../../../src/caching/src/utils/ttl.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,KAAK;AAEL,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAkB9D;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmC;IAIpE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACtD,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC;YAC7C,SAAS,EAAE,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,OAAO,GAAG,GAAG,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,YAA8B,EAC9B,UAAmB,EACnB,YAAqB;IAErB,OAAO,YAAY,IAAI,UAAU,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAuB,EAAE,OAA2B;IAC7F,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,GAAG,cAAc,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "inray",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Inray SDK",
5
+ "private": false,
5
6
  "type": "module",
6
7
  "repository": {
7
8
  "type": "git",
8
- "url": "ssh://git@codeberg.org/mirakl-026/inray-sdk.git"
9
+ "url": "git+https://codeberg.org/mirakl-026/inray-sdk.git"
9
10
  },
10
11
  "main": "dist/index.js",
11
12
  "types": "dist/index.d.ts",
@@ -19,6 +20,7 @@
19
20
  "test": "vitest",
20
21
  "test:async": "vitest run --project async",
21
22
  "test:bytes": "vitest run --project bytes",
23
+ "test:caching": "vitest run --project caching",
22
24
  "test:collections": "vitest run --project collections",
23
25
  "test:csv": "vitest run --project csv",
24
26
  "test:data-structures": "vitest run --project data-structures",
@@ -58,6 +60,10 @@
58
60
  "types": "./dist/bytes/mod.d.ts",
59
61
  "import": "./dist/bytes/mod.js"
60
62
  },
63
+ "./caching": {
64
+ "types": "./dist/caching/mod.d.ts",
65
+ "import": "./dist/caching/mod.js"
66
+ },
61
67
  "./collections": {
62
68
  "types": "./dist/collections/mod.d.ts",
63
69
  "import": "./dist/collections/mod.js"
@@ -616,9 +622,11 @@
616
622
  "@types/jsdom": "^21.1.7",
617
623
  "@types/ws": "^8.18.1",
618
624
  "@whatwg-node/fetch": "^0.10.13",
625
+ "cacheable": "^2.4.0",
619
626
  "consolemock": "^1.1.0",
620
- "esbuild": "^0.27.1",
627
+ "esbuild": "^0.28.2",
621
628
  "jsdom": "22.1.0",
629
+ "@faker-js/faker": "^10.6.0",
622
630
  "fast-check": "^4.9.0",
623
631
  "msw": "^2.6.0",
624
632
  "prettier": "^3.9.4",