@daiso-tech/core 0.11.0 → 0.13.0

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 (320) hide show
  1. package/dist/cjs/_module.js +2 -2
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/{storage/implementations/adapters/sqlite/libsql-storage-adapter → cache/contracts}/_module.js +5 -1
  4. package/dist/cjs/cache/contracts/_module.js.map +1 -0
  5. package/dist/cjs/{storage/contracts/storage-factory.contract.js → cache/contracts/cache-adapter.contract.js} +1 -1
  6. package/dist/cjs/cache/contracts/cache-adapter.contract.js.map +1 -0
  7. package/dist/cjs/{storage/contracts/storage-adapter.contract.js → cache/contracts/cache-factory.contract.js} +1 -1
  8. package/dist/cjs/cache/contracts/cache-factory.contract.js.map +1 -0
  9. package/dist/cjs/{storage/contracts/storage.contract.js → cache/contracts/cache.contract.js} +1 -1
  10. package/dist/cjs/cache/contracts/cache.contract.js.map +1 -0
  11. package/dist/cjs/cache/contracts/cache.errors.js +32 -0
  12. package/dist/cjs/cache/contracts/cache.errors.js.map +1 -0
  13. package/dist/cjs/{storage/contracts/storage.events.js → cache/contracts/cache.events.js} +3 -3
  14. package/dist/cjs/cache/contracts/cache.events.js.map +1 -0
  15. package/dist/cjs/{storage → cache}/implementations/_module.js +3 -3
  16. package/dist/cjs/cache/implementations/_module.js.map +1 -0
  17. package/dist/cjs/{storage/implementations/_shared/test-utilities → cache/implementations/_shared}/_module.js +1 -1
  18. package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -0
  19. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +192 -0
  20. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -0
  21. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +1009 -0
  22. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -0
  23. package/dist/cjs/{storage/contracts → cache/implementations/adapters}/_module.js +5 -5
  24. package/dist/cjs/cache/implementations/adapters/_module.js.map +1 -0
  25. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js +18 -0
  26. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js.map +1 -0
  27. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +291 -0
  28. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -0
  29. package/dist/cjs/{storage/implementations/adapters/redis-storage-adapter → cache/implementations/adapters/libsql-cache-adapter}/_module.js +1 -1
  30. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -0
  31. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +61 -0
  32. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -0
  33. package/dist/cjs/{storage/implementations/adapters/memory-storage-adapter → cache/implementations/adapters/memory-cache-adapter}/_module.js +1 -1
  34. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -0
  35. package/dist/{esm/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js → cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js} +24 -6
  36. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -0
  37. package/dist/cjs/{storage/implementations/adapters/sqlite/_shared → cache/implementations/adapters/mongodb-cache-adapter}/_module.js +1 -1
  38. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -0
  39. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +262 -0
  40. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -0
  41. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +18 -0
  42. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -0
  43. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +147 -0
  44. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -0
  45. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +18 -0
  46. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -0
  47. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +60 -0
  48. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -0
  49. package/dist/cjs/cache/implementations/derivables/_module.js +20 -0
  50. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -0
  51. package/dist/cjs/{storage/implementations/derivables/storage.js → cache/implementations/derivables/base-cache.js} +30 -197
  52. package/dist/cjs/cache/implementations/derivables/base-cache.js.map +1 -0
  53. package/dist/cjs/{storage/implementations/derivables/storage-factory.js → cache/implementations/derivables/cache-factory.js} +11 -14
  54. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -0
  55. package/dist/cjs/cache/implementations/derivables/cache.js +191 -0
  56. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -0
  57. package/dist/cjs/collection/contracts/_module.js +1 -0
  58. package/dist/cjs/collection/contracts/_module.js.map +1 -1
  59. package/dist/cjs/collection/contracts/_shared.js +0 -43
  60. package/dist/cjs/collection/contracts/_shared.js.map +1 -1
  61. package/dist/cjs/collection/contracts/collection.errors.js +46 -0
  62. package/dist/cjs/collection/contracts/collection.errors.js.map +1 -0
  63. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-count-by-iterable.js.map +1 -1
  64. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-entries-iterable.js.map +1 -1
  65. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js.map +1 -1
  66. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-update-iterable.js +3 -3
  67. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js.map +1 -1
  68. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +38 -1
  69. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  70. package/dist/cjs/collection/implementations/iterable-collection/_shared/count-by-iterable.js.map +1 -1
  71. package/dist/cjs/collection/implementations/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  72. package/dist/cjs/collection/implementations/iterable-collection/_shared/entries-iterable.js.map +1 -1
  73. package/dist/cjs/collection/implementations/iterable-collection/_shared/group-by-iterable.js.map +1 -1
  74. package/dist/cjs/collection/implementations/iterable-collection/_shared/update-iterable.js +3 -3
  75. package/dist/cjs/collection/implementations/iterable-collection/_shared/zip-iterable.js.map +1 -1
  76. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js +34 -1
  77. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  78. package/dist/cjs/collection/implementations/list-collection/list-collection.js +34 -1
  79. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  80. package/dist/cjs/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +1 -1
  81. package/dist/esm/_module.js +2 -2
  82. package/dist/esm/_module.js.map +1 -1
  83. package/dist/esm/cache/contracts/_module.js +6 -0
  84. package/dist/esm/cache/contracts/_module.js.map +1 -0
  85. package/dist/esm/cache/contracts/cache-adapter.contract.js +1 -0
  86. package/dist/esm/cache/contracts/cache-adapter.contract.js.map +1 -0
  87. package/dist/esm/cache/contracts/cache-factory.contract.js +1 -0
  88. package/dist/esm/cache/contracts/cache-factory.contract.js.map +1 -0
  89. package/dist/esm/cache/contracts/cache.contract.js +1 -0
  90. package/dist/esm/cache/contracts/cache.contract.js.map +1 -0
  91. package/dist/esm/cache/contracts/cache.errors.js +25 -0
  92. package/dist/esm/cache/contracts/cache.errors.js.map +1 -0
  93. package/dist/esm/{storage/contracts/storage.events.js → cache/contracts/cache.events.js} +2 -2
  94. package/dist/esm/cache/contracts/cache.events.js.map +1 -0
  95. package/dist/esm/cache/implementations/_module.js +4 -0
  96. package/dist/esm/cache/implementations/_module.js.map +1 -0
  97. package/dist/esm/cache/implementations/_shared/_module.js +2 -0
  98. package/dist/esm/cache/implementations/_shared/_module.js.map +1 -0
  99. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +189 -0
  100. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -0
  101. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +1006 -0
  102. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -0
  103. package/dist/esm/cache/implementations/adapters/_module.js +6 -0
  104. package/dist/esm/cache/implementations/adapters/_module.js.map +1 -0
  105. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js +2 -0
  106. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js.map +1 -0
  107. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +287 -0
  108. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -0
  109. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -0
  110. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -0
  111. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +57 -0
  112. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -0
  113. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +2 -0
  114. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -0
  115. package/dist/{cjs/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js → esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js} +20 -10
  116. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -0
  117. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -0
  118. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -0
  119. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +255 -0
  120. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -0
  121. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +2 -0
  122. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -0
  123. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +143 -0
  124. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -0
  125. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +2 -0
  126. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -0
  127. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +56 -0
  128. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -0
  129. package/dist/esm/cache/implementations/derivables/_module.js +4 -0
  130. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -0
  131. package/dist/esm/cache/implementations/derivables/base-cache.js +258 -0
  132. package/dist/esm/cache/implementations/derivables/base-cache.js.map +1 -0
  133. package/dist/esm/{storage/implementations/derivables/storage-factory.js → cache/implementations/derivables/cache-factory.js} +9 -12
  134. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -0
  135. package/dist/esm/cache/implementations/derivables/cache.js +187 -0
  136. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -0
  137. package/dist/esm/collection/contracts/_module.js +1 -0
  138. package/dist/esm/collection/contracts/_module.js.map +1 -1
  139. package/dist/esm/collection/contracts/_shared.js +0 -36
  140. package/dist/esm/collection/contracts/_shared.js.map +1 -1
  141. package/dist/esm/collection/contracts/collection.errors.js +37 -0
  142. package/dist/esm/collection/contracts/collection.errors.js.map +1 -0
  143. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-count-by-iterable.js.map +1 -1
  144. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-entries-iterable.js.map +1 -1
  145. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js.map +1 -1
  146. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-update-iterable.js +1 -1
  147. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js.map +1 -1
  148. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +39 -2
  149. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  150. package/dist/esm/collection/implementations/iterable-collection/_shared/count-by-iterable.js.map +1 -1
  151. package/dist/esm/collection/implementations/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  152. package/dist/esm/collection/implementations/iterable-collection/_shared/entries-iterable.js.map +1 -1
  153. package/dist/esm/collection/implementations/iterable-collection/_shared/group-by-iterable.js.map +1 -1
  154. package/dist/esm/collection/implementations/iterable-collection/_shared/update-iterable.js +1 -1
  155. package/dist/esm/collection/implementations/iterable-collection/_shared/zip-iterable.js.map +1 -1
  156. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js +35 -2
  157. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  158. package/dist/esm/collection/implementations/list-collection/list-collection.js +34 -1
  159. package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
  160. package/dist/esm/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +1 -1
  161. package/dist/types/_module.d.ts +2 -2
  162. package/dist/types/_shared/types.d.ts +0 -1
  163. package/dist/types/cache/contracts/_module.d.ts +5 -0
  164. package/dist/types/{storage/contracts/storage-adapter.contract.d.ts → cache/contracts/cache-adapter.contract.d.ts} +10 -7
  165. package/dist/types/cache/contracts/cache-factory.contract.d.ts +48 -0
  166. package/dist/types/{storage/contracts/storage.contract.d.ts → cache/contracts/cache.contract.d.ts} +69 -56
  167. package/dist/types/{storage/contracts/storage.errors.d.ts → cache/contracts/cache.errors.d.ts} +5 -5
  168. package/dist/types/cache/contracts/cache.events.d.ts +96 -0
  169. package/dist/types/cache/implementations/_module.d.ts +3 -0
  170. package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
  171. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +51 -0
  172. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +60 -0
  173. package/dist/types/cache/implementations/adapters/_module.d.ts +5 -0
  174. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.d.ts +1 -0
  175. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +55 -0
  176. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +1 -0
  177. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +35 -0
  178. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
  179. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +20 -0
  180. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +1 -0
  181. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +41 -0
  182. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
  183. package/dist/types/{storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.d.ts → cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts} +11 -11
  184. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
  185. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +35 -0
  186. package/dist/types/cache/implementations/derivables/_module.d.ts +3 -0
  187. package/dist/types/cache/implementations/derivables/base-cache.d.ts +57 -0
  188. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +56 -0
  189. package/dist/types/cache/implementations/derivables/cache.d.ts +88 -0
  190. package/dist/types/collection/contracts/_module.d.ts +1 -0
  191. package/dist/types/collection/contracts/_shared.d.ts +2 -36
  192. package/dist/types/collection/contracts/async-collection.contract.d.ts +39 -60
  193. package/dist/types/collection/contracts/collection.contract.d.ts +36 -55
  194. package/dist/types/collection/contracts/collection.errors.d.ts +39 -0
  195. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-count-by-iterable.d.ts +2 -3
  196. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-entries-iterable.d.ts +2 -3
  197. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.d.ts +3 -0
  198. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-group-by-iterable.d.ts +6 -3
  199. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-update-iterable.d.ts +1 -1
  200. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.d.ts +2 -3
  201. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +8 -6
  202. package/dist/types/collection/implementations/iterable-collection/_shared/count-by-iterable.d.ts +2 -3
  203. package/dist/types/collection/implementations/iterable-collection/_shared/cross-join-iterable.d.ts +3 -0
  204. package/dist/types/collection/implementations/iterable-collection/_shared/entries-iterable.d.ts +2 -3
  205. package/dist/types/collection/implementations/iterable-collection/_shared/group-by-iterable.d.ts +2 -3
  206. package/dist/types/collection/implementations/iterable-collection/_shared/update-iterable.d.ts +1 -1
  207. package/dist/types/collection/implementations/iterable-collection/_shared/zip-iterable.d.ts +2 -3
  208. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +8 -6
  209. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +7 -5
  210. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +1 -1
  211. package/package.json +1 -1
  212. package/dist/cjs/storage/contracts/_module.js.map +0 -1
  213. package/dist/cjs/storage/contracts/storage-adapter.contract.js.map +0 -1
  214. package/dist/cjs/storage/contracts/storage-factory.contract.js.map +0 -1
  215. package/dist/cjs/storage/contracts/storage.contract.js.map +0 -1
  216. package/dist/cjs/storage/contracts/storage.errors.js +0 -32
  217. package/dist/cjs/storage/contracts/storage.errors.js.map +0 -1
  218. package/dist/cjs/storage/contracts/storage.events.js.map +0 -1
  219. package/dist/cjs/storage/implementations/_module.js.map +0 -1
  220. package/dist/cjs/storage/implementations/_shared/test-utilities/_module.js.map +0 -1
  221. package/dist/cjs/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js +0 -130
  222. package/dist/cjs/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js.map +0 -1
  223. package/dist/cjs/storage/implementations/adapters/_module.js +0 -21
  224. package/dist/cjs/storage/implementations/adapters/_module.js.map +0 -1
  225. package/dist/cjs/storage/implementations/adapters/memory-storage-adapter/_module.js.map +0 -1
  226. package/dist/cjs/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js.map +0 -1
  227. package/dist/cjs/storage/implementations/adapters/mongodb-storage-adapter/_module.js +0 -6
  228. package/dist/cjs/storage/implementations/adapters/mongodb-storage-adapter/_module.js.map +0 -1
  229. package/dist/cjs/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.js +0 -132
  230. package/dist/cjs/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.js.map +0 -1
  231. package/dist/cjs/storage/implementations/adapters/redis-storage-adapter/_module.js.map +0 -1
  232. package/dist/cjs/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js +0 -89
  233. package/dist/cjs/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js.map +0 -1
  234. package/dist/cjs/storage/implementations/adapters/sqlite/_module.js +0 -19
  235. package/dist/cjs/storage/implementations/adapters/sqlite/_module.js.map +0 -1
  236. package/dist/cjs/storage/implementations/adapters/sqlite/_shared/_module.js.map +0 -1
  237. package/dist/cjs/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js +0 -119
  238. package/dist/cjs/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js.map +0 -1
  239. package/dist/cjs/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.js.map +0 -1
  240. package/dist/cjs/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +0 -53
  241. package/dist/cjs/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +0 -1
  242. package/dist/cjs/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js +0 -18
  243. package/dist/cjs/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js.map +0 -1
  244. package/dist/cjs/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +0 -52
  245. package/dist/cjs/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +0 -1
  246. package/dist/cjs/storage/implementations/derivables/_module.js +0 -19
  247. package/dist/cjs/storage/implementations/derivables/_module.js.map +0 -1
  248. package/dist/cjs/storage/implementations/derivables/storage-factory.js.map +0 -1
  249. package/dist/cjs/storage/implementations/derivables/storage.js.map +0 -1
  250. package/dist/esm/storage/contracts/_module.js +0 -6
  251. package/dist/esm/storage/contracts/_module.js.map +0 -1
  252. package/dist/esm/storage/contracts/storage-adapter.contract.js +0 -1
  253. package/dist/esm/storage/contracts/storage-adapter.contract.js.map +0 -1
  254. package/dist/esm/storage/contracts/storage-factory.contract.js +0 -1
  255. package/dist/esm/storage/contracts/storage-factory.contract.js.map +0 -1
  256. package/dist/esm/storage/contracts/storage.contract.js +0 -1
  257. package/dist/esm/storage/contracts/storage.contract.js.map +0 -1
  258. package/dist/esm/storage/contracts/storage.errors.js +0 -25
  259. package/dist/esm/storage/contracts/storage.errors.js.map +0 -1
  260. package/dist/esm/storage/contracts/storage.events.js.map +0 -1
  261. package/dist/esm/storage/implementations/_module.js +0 -4
  262. package/dist/esm/storage/implementations/_module.js.map +0 -1
  263. package/dist/esm/storage/implementations/_shared/test-utilities/_module.js +0 -2
  264. package/dist/esm/storage/implementations/_shared/test-utilities/_module.js.map +0 -1
  265. package/dist/esm/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js +0 -127
  266. package/dist/esm/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js.map +0 -1
  267. package/dist/esm/storage/implementations/adapters/_module.js +0 -5
  268. package/dist/esm/storage/implementations/adapters/_module.js.map +0 -1
  269. package/dist/esm/storage/implementations/adapters/memory-storage-adapter/_module.js +0 -2
  270. package/dist/esm/storage/implementations/adapters/memory-storage-adapter/_module.js.map +0 -1
  271. package/dist/esm/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js.map +0 -1
  272. package/dist/esm/storage/implementations/adapters/mongodb-storage-adapter/_module.js +0 -2
  273. package/dist/esm/storage/implementations/adapters/mongodb-storage-adapter/_module.js.map +0 -1
  274. package/dist/esm/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.js +0 -125
  275. package/dist/esm/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.js.map +0 -1
  276. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/_module.js +0 -2
  277. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/_module.js.map +0 -1
  278. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js +0 -85
  279. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js.map +0 -1
  280. package/dist/esm/storage/implementations/adapters/sqlite/_module.js +0 -3
  281. package/dist/esm/storage/implementations/adapters/sqlite/_module.js.map +0 -1
  282. package/dist/esm/storage/implementations/adapters/sqlite/_shared/_module.js +0 -2
  283. package/dist/esm/storage/implementations/adapters/sqlite/_shared/_module.js.map +0 -1
  284. package/dist/esm/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js +0 -115
  285. package/dist/esm/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js.map +0 -1
  286. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.js +0 -2
  287. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.js.map +0 -1
  288. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +0 -49
  289. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +0 -1
  290. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js +0 -2
  291. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js.map +0 -1
  292. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +0 -48
  293. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +0 -1
  294. package/dist/esm/storage/implementations/derivables/_module.js +0 -3
  295. package/dist/esm/storage/implementations/derivables/_module.js.map +0 -1
  296. package/dist/esm/storage/implementations/derivables/storage-factory.js.map +0 -1
  297. package/dist/esm/storage/implementations/derivables/storage.js +0 -425
  298. package/dist/esm/storage/implementations/derivables/storage.js.map +0 -1
  299. package/dist/types/storage/contracts/_module.d.ts +0 -5
  300. package/dist/types/storage/contracts/storage-factory.contract.d.ts +0 -67
  301. package/dist/types/storage/contracts/storage.events.d.ts +0 -94
  302. package/dist/types/storage/implementations/_module.d.ts +0 -3
  303. package/dist/types/storage/implementations/_shared/test-utilities/_module.d.ts +0 -1
  304. package/dist/types/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.d.ts +0 -36
  305. package/dist/types/storage/implementations/adapters/_module.d.ts +0 -4
  306. package/dist/types/storage/implementations/adapters/memory-storage-adapter/_module.d.ts +0 -1
  307. package/dist/types/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.d.ts +0 -18
  308. package/dist/types/storage/implementations/adapters/mongodb-storage-adapter/_module.d.ts +0 -1
  309. package/dist/types/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.d.ts +0 -40
  310. package/dist/types/storage/implementations/adapters/redis-storage-adapter/_module.d.ts +0 -1
  311. package/dist/types/storage/implementations/adapters/sqlite/_module.d.ts +0 -2
  312. package/dist/types/storage/implementations/adapters/sqlite/_shared/_module.d.ts +0 -1
  313. package/dist/types/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.d.ts +0 -45
  314. package/dist/types/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.d.ts +0 -1
  315. package/dist/types/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.d.ts +0 -37
  316. package/dist/types/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.d.ts +0 -1
  317. package/dist/types/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.d.ts +0 -37
  318. package/dist/types/storage/implementations/derivables/_module.d.ts +0 -2
  319. package/dist/types/storage/implementations/derivables/storage-factory.d.ts +0 -47
  320. package/dist/types/storage/implementations/derivables/storage.d.ts +0 -119
@@ -0,0 +1,1009 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cacheTestSuite = cacheTestSuite;
4
+ const _module_1 = require("../../../cache/contracts/_module");
5
+ const _module_2 = require("../../../utilities/_module");
6
+ function cacheTestSuite(settings) {
7
+ const { expect, test, createCacheA, createCacheB, describe, beforeEach } = settings;
8
+ let cacheA;
9
+ let cacheB;
10
+ beforeEach(async () => {
11
+ cacheA = await createCacheA();
12
+ cacheB = await createCacheB();
13
+ });
14
+ describe("Api tests:", () => {
15
+ const TTL = _module_2.TimeSpan.fromMilliseconds(50);
16
+ describe("method: exists", () => {
17
+ test("Should return true when key exists", async () => {
18
+ await cacheA.add("a", 1);
19
+ expect(await cacheA.exists("a")).toBe(true);
20
+ });
21
+ test("Should return false when key doesnt exists", async () => {
22
+ expect(await cacheA.exists("a")).toBe(false);
23
+ });
24
+ test("Should return false when key is expired", async () => {
25
+ await cacheA.add("a", 1, TTL);
26
+ await (0, _module_2.delay)(TTL);
27
+ expect(await cacheA.exists("a")).toBe(false);
28
+ });
29
+ });
30
+ describe("method: existsMany", () => {
31
+ test("Should return only true when all keys exists", async () => {
32
+ await cacheA.addMany({
33
+ a: { value: 1 },
34
+ b: { value: 1 },
35
+ });
36
+ expect(await cacheA.existsMany(["a", "b"])).toEqual({
37
+ a: true,
38
+ b: true,
39
+ });
40
+ });
41
+ test("Should return only false when all keys doesnt exists", async () => {
42
+ expect(await cacheA.existsMany(["a", "b"])).toEqual({
43
+ a: false,
44
+ b: false,
45
+ });
46
+ });
47
+ test("Should return true and false when some keys exists", async () => {
48
+ await cacheA.add("a", 1);
49
+ expect(await cacheA.existsMany(["a", "b"])).toEqual({
50
+ a: true,
51
+ b: false,
52
+ });
53
+ });
54
+ test("Should return false when key is expired", async () => {
55
+ await cacheA.add("a", 1, TTL);
56
+ await (0, _module_2.delay)(TTL);
57
+ expect(await cacheA.existsMany(["a"])).toEqual({
58
+ a: false,
59
+ });
60
+ });
61
+ });
62
+ describe("method: missing", () => {
63
+ test("Should return false when key exists", async () => {
64
+ await cacheA.add("a", 1);
65
+ expect(await cacheA.missing("a")).toBe(false);
66
+ });
67
+ test("Should return true when key doesnt exists", async () => {
68
+ expect(await cacheA.missing("a")).toBe(true);
69
+ });
70
+ test("Should return true when key is expired", async () => {
71
+ await cacheA.add("a", 1, TTL);
72
+ await (0, _module_2.delay)(TTL);
73
+ expect(await cacheA.missing("a")).toBe(true);
74
+ });
75
+ });
76
+ describe("method: missingMany", () => {
77
+ test("Should return only false when all keys exists", async () => {
78
+ await cacheA.addMany({
79
+ a: { value: 1 },
80
+ b: { value: 1 },
81
+ });
82
+ expect(await cacheA.missingMany(["a", "b"])).toEqual({
83
+ a: false,
84
+ b: false,
85
+ });
86
+ });
87
+ test("Should return only true when all keys doesnt exists", async () => {
88
+ expect(await cacheA.missingMany(["a", "b"])).toEqual({
89
+ a: true,
90
+ b: true,
91
+ });
92
+ });
93
+ test("Should return true and false when some keys exists", async () => {
94
+ await cacheA.add("a", 1);
95
+ expect(await cacheA.missingMany(["a", "b"])).toEqual({
96
+ a: false,
97
+ b: true,
98
+ });
99
+ });
100
+ test("Should return true when key is expired", async () => {
101
+ await cacheA.add("a", 1, TTL);
102
+ await (0, _module_2.delay)(TTL);
103
+ expect(await cacheA.missingMany(["a"])).toEqual({
104
+ a: true,
105
+ });
106
+ });
107
+ });
108
+ describe("method: get", () => {
109
+ test("Should return value when key exists", async () => {
110
+ await cacheA.add("a", 1);
111
+ expect(await cacheA.get("a")).toBe(1);
112
+ });
113
+ test("Should return null when key doesnt exists", async () => {
114
+ expect(await cacheA.get("a")).toBeNull();
115
+ });
116
+ test("Should return null when key is expired", async () => {
117
+ await cacheA.add("a", 1, TTL);
118
+ await (0, _module_2.delay)(TTL);
119
+ expect(await cacheA.get("a")).toBeNull();
120
+ });
121
+ });
122
+ describe("method: getMany", () => {
123
+ test("Should return only values when all keys exists", async () => {
124
+ await cacheA.addMany({
125
+ a: { value: 1 },
126
+ b: { value: 1 },
127
+ });
128
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
129
+ a: 1,
130
+ b: 1,
131
+ });
132
+ });
133
+ test("Should return only null when all keys doesnt exists", async () => {
134
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
135
+ a: null,
136
+ b: null,
137
+ });
138
+ });
139
+ test("Should return values and null when some keys exists", async () => {
140
+ await cacheA.add("a", 1);
141
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
142
+ a: 1,
143
+ b: null,
144
+ });
145
+ });
146
+ test("Should return null when key is expired", async () => {
147
+ await cacheA.add("a", 1, TTL);
148
+ await (0, _module_2.delay)(TTL);
149
+ expect(await cacheA.getMany(["a"])).toEqual({ a: null });
150
+ });
151
+ });
152
+ describe("method: getOr", () => {
153
+ test("Should return value when key exists", async () => {
154
+ await cacheA.add("a", 1);
155
+ expect(await cacheA.getOr("a", -1)).toBe(1);
156
+ });
157
+ describe("Should return default value when key doesnt exists", () => {
158
+ test("Eager", async () => {
159
+ expect(await cacheA.getOr("a", -1)).toBe(-1);
160
+ });
161
+ test("Lazy", async () => {
162
+ expect(await cacheA.getOr("a", () => -1)).toBe(-1);
163
+ });
164
+ test("Async lazy", async () => {
165
+ expect(await cacheA.getOr("a", () => Promise.resolve(-1))).toBe(-1);
166
+ });
167
+ });
168
+ describe("Should return default value when key is expired", () => {
169
+ test("Eager", async () => {
170
+ await cacheA.add("a", 1, TTL);
171
+ await (0, _module_2.delay)(TTL);
172
+ expect(await cacheA.getOr("a", -1)).toBe(-1);
173
+ });
174
+ test("Lazy", async () => {
175
+ await cacheA.add("a", 1, TTL);
176
+ await (0, _module_2.delay)(TTL);
177
+ expect(await cacheA.getOr("a", () => -1)).toBe(-1);
178
+ });
179
+ test("Async lazy", async () => {
180
+ await cacheA.add("a", 1, TTL);
181
+ await (0, _module_2.delay)(TTL);
182
+ expect(await cacheA.getOr("a", () => Promise.resolve(-1))).toBe(-1);
183
+ });
184
+ });
185
+ });
186
+ describe("method: getOrFail", () => {
187
+ test("Should return value when key exists", async () => {
188
+ await cacheA.add("a", 1);
189
+ expect(await cacheA.getOrFail("a")).toBe(1);
190
+ });
191
+ test("Should throw KeyNotFoundCacheError value when key doesnt exists", async () => {
192
+ await expect(cacheA.getOrFail("a")).rejects.toBeInstanceOf(_module_1.KeyNotFoundCacheError);
193
+ });
194
+ test("Should throw KeyNotFoundCacheError value when key is expired exists", async () => {
195
+ await cacheA.add("a", 1, TTL);
196
+ await (0, _module_2.delay)(TTL);
197
+ await expect(cacheA.getOrFail("a")).rejects.toBeInstanceOf(_module_1.KeyNotFoundCacheError);
198
+ });
199
+ });
200
+ describe("method: getOrMany", () => {
201
+ test("Should return only values when all keys exists", async () => {
202
+ await cacheA.addMany({
203
+ a: { value: 1 },
204
+ b: { value: 1 },
205
+ });
206
+ expect(await cacheA.getOrMany({ a: -1, b: -1 })).toEqual({
207
+ a: 1,
208
+ b: 1,
209
+ });
210
+ });
211
+ describe("Should return only default values when all keys doesnt exists", () => {
212
+ test("Eager", async () => {
213
+ expect(await cacheA.getOrMany({ a: -1, b: -1 })).toEqual({
214
+ a: -1,
215
+ b: -1,
216
+ });
217
+ });
218
+ test("Lazy", async () => {
219
+ expect(await cacheA.getOrMany({ a: () => -1, b: () => -1 })).toEqual({
220
+ a: -1,
221
+ b: -1,
222
+ });
223
+ });
224
+ test("Async lazy", async () => {
225
+ expect(await cacheA.getOrMany({
226
+ a: () => Promise.resolve(-1),
227
+ b: () => Promise.resolve(-1),
228
+ })).toEqual({
229
+ a: -1,
230
+ b: -1,
231
+ });
232
+ });
233
+ });
234
+ describe("Should return default value when key is expired", () => {
235
+ test("Eager", async () => {
236
+ await cacheA.add("a", 1, TTL);
237
+ await (0, _module_2.delay)(TTL);
238
+ expect(await cacheA.getOrMany({
239
+ a: -1,
240
+ })).toEqual({
241
+ a: -1,
242
+ });
243
+ });
244
+ test("Lazy", async () => {
245
+ await cacheA.add("a", 1, TTL);
246
+ await (0, _module_2.delay)(TTL);
247
+ expect(await cacheA.getOrMany({
248
+ a: () => -1,
249
+ })).toEqual({
250
+ a: -1,
251
+ });
252
+ });
253
+ test("Async lazy", async () => {
254
+ await cacheA.add("a", 1, TTL);
255
+ await (0, _module_2.delay)(TTL);
256
+ expect(await cacheA.getOrMany({
257
+ a: () => Promise.resolve(-1),
258
+ })).toEqual({
259
+ a: -1,
260
+ });
261
+ });
262
+ });
263
+ test("Should return values and default values when some keys exists", async () => {
264
+ await cacheA.add("a", 1);
265
+ expect(await cacheA.getOrMany({ a: -1, b: -1 })).toEqual({
266
+ a: 1,
267
+ b: -1,
268
+ });
269
+ });
270
+ });
271
+ describe("method: add", () => {
272
+ test("Should return true when key doesnt exist", async () => {
273
+ expect(await cacheA.add("a", 1)).toBe(true);
274
+ });
275
+ test("Should return true when key is expired", async () => {
276
+ await cacheA.add("a", 1, TTL);
277
+ await (0, _module_2.delay)(TTL);
278
+ expect(await cacheA.add("a", 1)).toBe(true);
279
+ });
280
+ test("Should persist value when key doesnt exist", async () => {
281
+ await cacheA.add("a", 1);
282
+ expect(await cacheA.get("a")).toBe(1);
283
+ });
284
+ test("Should persist value when key is expired", async () => {
285
+ await cacheA.add("a", 1, TTL);
286
+ await (0, _module_2.delay)(TTL);
287
+ await cacheA.add("a", 1);
288
+ expect(await cacheA.get("a")).toBe(1);
289
+ });
290
+ test("Should return false when key exist", async () => {
291
+ await cacheA.add("a", 1);
292
+ expect(await cacheA.add("a", 1)).toBe(false);
293
+ });
294
+ test("Should not persist value when key exist", async () => {
295
+ await cacheA.add("a", 1);
296
+ await cacheA.add("a", 2);
297
+ expect(await cacheA.get("a")).toBe(1);
298
+ });
299
+ });
300
+ describe("method: addMany", () => {
301
+ test("Should return only true when all keys doesnt exists", async () => {
302
+ expect(await cacheA.addMany({
303
+ a: { value: 1 },
304
+ b: { value: 1 },
305
+ })).toEqual({
306
+ a: true,
307
+ b: true,
308
+ });
309
+ });
310
+ test("Should return true when key is expired", async () => {
311
+ await cacheA.add("a", 1, TTL);
312
+ await (0, _module_2.delay)(TTL);
313
+ expect(await cacheA.addMany({ a: { value: 1 } })).toEqual({
314
+ a: true,
315
+ });
316
+ });
317
+ test("Should persist values when all keys doesnt exist", async () => {
318
+ await cacheA.addMany({
319
+ a: { value: 1 },
320
+ b: { value: 1 },
321
+ });
322
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
323
+ a: 1,
324
+ b: 1,
325
+ });
326
+ });
327
+ test("Should persist value when key is expired", async () => {
328
+ await cacheA.add("a", -1, TTL);
329
+ await (0, _module_2.delay)(TTL);
330
+ await cacheA.addMany({ a: { value: 1 } });
331
+ expect(await cacheA.get("a")).toBe(1);
332
+ });
333
+ test("Should return only false when all keys exists", async () => {
334
+ await cacheA.addMany({
335
+ a: { value: 1 },
336
+ b: { value: 1 },
337
+ });
338
+ expect(await cacheA.addMany({
339
+ a: { value: 1 },
340
+ b: { value: 1 },
341
+ })).toEqual({
342
+ a: false,
343
+ b: false,
344
+ });
345
+ });
346
+ test("Should not persist values when key exist", async () => {
347
+ await cacheA.addMany({
348
+ a: { value: 1 },
349
+ b: { value: 1 },
350
+ });
351
+ await cacheA.addMany({
352
+ a: { value: 1 },
353
+ b: { value: 1 },
354
+ });
355
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
356
+ a: 1,
357
+ b: 1,
358
+ });
359
+ });
360
+ test("Should return true and false when some keys exists", async () => {
361
+ await cacheA.add("a", 1);
362
+ expect(await cacheA.addMany({
363
+ a: { value: 1 },
364
+ b: { value: 1 },
365
+ })).toEqual({
366
+ a: false,
367
+ b: true,
368
+ });
369
+ });
370
+ test("Should persist and not persist values when some keys exists", async () => {
371
+ await cacheA.addMany({
372
+ a: { value: 1 },
373
+ });
374
+ await cacheA.addMany({
375
+ a: { value: 1 },
376
+ b: { value: 2 },
377
+ });
378
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
379
+ a: 1,
380
+ b: 2,
381
+ });
382
+ });
383
+ });
384
+ describe("method: update", () => {
385
+ test("Should return true when key exists", async () => {
386
+ await cacheA.add("a", 1);
387
+ expect(await cacheA.update("a", -1)).toBe(true);
388
+ });
389
+ test("Should persist update when key exists", async () => {
390
+ await cacheA.add("a", 1);
391
+ await cacheA.update("a", -1);
392
+ expect(await cacheA.get("a")).toBe(-1);
393
+ });
394
+ test("Should return false when key doesnt exists", async () => {
395
+ expect(await cacheA.update("a", -1)).toBe(false);
396
+ });
397
+ test("Should return false when key is expired", async () => {
398
+ await cacheA.add("a", 1, TTL);
399
+ await (0, _module_2.delay)(TTL);
400
+ expect(await cacheA.update("a", -1)).toBe(false);
401
+ });
402
+ test("Should not persist update when key doesnt exists", async () => {
403
+ await cacheA.update("a", -1);
404
+ expect(await cacheA.get("a")).toBeNull();
405
+ });
406
+ test("Should not persist update when key is expired", async () => {
407
+ await cacheA.add("a", 1, TTL);
408
+ await (0, _module_2.delay)(TTL);
409
+ await cacheA.update("a", -1);
410
+ expect(await cacheA.get("a")).toBeNull();
411
+ });
412
+ });
413
+ describe("method: updateMany", () => {
414
+ test("Should return only true when all keys exists", async () => {
415
+ await cacheA.addMany({
416
+ a: { value: 1 },
417
+ b: { value: 1 },
418
+ });
419
+ expect(await cacheA.updateMany({ a: -1, b: -1 })).toEqual({
420
+ a: true,
421
+ b: true,
422
+ });
423
+ });
424
+ test("Should persist values when all keys exist", async () => {
425
+ await cacheA.addMany({
426
+ a: { value: 1 },
427
+ b: { value: 1 },
428
+ });
429
+ await cacheA.updateMany({ a: -1, b: -1 });
430
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
431
+ a: -1,
432
+ b: -1,
433
+ });
434
+ });
435
+ test("Should return only false when all keys doesnt exists", async () => {
436
+ expect(await cacheA.updateMany({ a: -1, b: -1 })).toEqual({
437
+ a: false,
438
+ b: false,
439
+ });
440
+ });
441
+ test("Should return false when key is expired", async () => {
442
+ await cacheA.add("a", 1, TTL);
443
+ await (0, _module_2.delay)(TTL);
444
+ expect(await cacheA.updateMany({ a: -1 })).toEqual({
445
+ a: false,
446
+ });
447
+ });
448
+ test("Should not persist values when all keys doesnt exist", async () => {
449
+ await cacheA.updateMany({ a: -1, b: -1 });
450
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
451
+ a: null,
452
+ b: null,
453
+ });
454
+ });
455
+ test("Should not persist update when key is expired", async () => {
456
+ await cacheA.add("a", 1, TTL);
457
+ await (0, _module_2.delay)(TTL);
458
+ await cacheA.updateMany({ a: -1 });
459
+ expect(await cacheA.get("a")).toBeNull();
460
+ });
461
+ test("Should return true and false when some keys exists", async () => {
462
+ await cacheA.add("a", 1);
463
+ expect(await cacheA.updateMany({ a: -1, b: -1 })).toEqual({
464
+ a: true,
465
+ b: false,
466
+ });
467
+ });
468
+ test("Should persist and not persist values when some keys exists", async () => {
469
+ await cacheA.add("a", 1);
470
+ await cacheA.updateMany({ a: -1, b: -1 });
471
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
472
+ a: -1,
473
+ b: null,
474
+ });
475
+ });
476
+ });
477
+ describe("method: put", () => {
478
+ test("Should return true when key exists", async () => {
479
+ await cacheA.add("a", 1);
480
+ expect(await cacheA.put("a", -1)).toBe(true);
481
+ });
482
+ test("Should persist update when key exists", async () => {
483
+ await cacheA.add("a", 1);
484
+ await cacheA.put("a", -1);
485
+ expect(await cacheA.get("a")).toBe(-1);
486
+ });
487
+ test("Should return false when key doesnt exists", async () => {
488
+ expect(await cacheA.put("a", -1)).toBe(false);
489
+ });
490
+ test("Should return false when key is expired", async () => {
491
+ await cacheA.add("a", 1, TTL);
492
+ await (0, _module_2.delay)(TTL);
493
+ expect(await cacheA.put("a", -1)).toBe(false);
494
+ });
495
+ test("Should persist insertion when key doesnt exists", async () => {
496
+ await cacheA.put("a", -1);
497
+ expect(await cacheA.get("a")).toBe(-1);
498
+ });
499
+ test("Should persist insertion when key is expired", async () => {
500
+ await cacheA.add("a", 1, TTL);
501
+ await (0, _module_2.delay)(TTL);
502
+ await cacheA.put("a", -1);
503
+ expect(await cacheA.get("a")).toBe(-1);
504
+ });
505
+ });
506
+ describe("method: putMany", () => {
507
+ test("Should return only true when all keys exists", async () => {
508
+ await cacheA.addMany({
509
+ a: { value: 1 },
510
+ b: { value: 1 },
511
+ });
512
+ expect(await cacheA.putMany({
513
+ a: { value: -1 },
514
+ b: { value: -1 },
515
+ })).toEqual({
516
+ a: true,
517
+ b: true,
518
+ });
519
+ });
520
+ test("Should persist values when all keys exist", async () => {
521
+ await cacheA.addMany({
522
+ a: { value: 1 },
523
+ b: { value: 1 },
524
+ });
525
+ await cacheA.putMany({ a: { value: -1 }, b: { value: -1 } });
526
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
527
+ a: -1,
528
+ b: -1,
529
+ });
530
+ });
531
+ test("Should return only false when all keys doesnt exists", async () => {
532
+ expect(await cacheA.putMany({
533
+ a: { value: -1 },
534
+ b: { value: -1 },
535
+ })).toEqual({
536
+ a: false,
537
+ b: false,
538
+ });
539
+ });
540
+ test("Should return false when key is expired", async () => {
541
+ await cacheA.add("a", 1, TTL);
542
+ await (0, _module_2.delay)(TTL);
543
+ expect(await cacheA.putMany({ a: { value: -1 } })).toEqual({
544
+ a: false,
545
+ });
546
+ });
547
+ test("Should persist values when all keys doesnt exist", async () => {
548
+ await cacheA.putMany({ a: { value: -1 }, b: { value: -1 } });
549
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
550
+ a: -1,
551
+ b: -1,
552
+ });
553
+ });
554
+ test("Should persist insertion when key is expired", async () => {
555
+ await cacheA.add("a", 1, TTL);
556
+ await (0, _module_2.delay)(TTL);
557
+ await cacheA.putMany({ a: { value: -1 } });
558
+ expect(await cacheA.get("a")).toBe(-1);
559
+ });
560
+ test("Should return true and false when some keys exists", async () => {
561
+ await cacheA.add("a", 1);
562
+ expect(await cacheA.putMany({
563
+ a: { value: -1 },
564
+ b: { value: -1 },
565
+ })).toEqual({
566
+ a: true,
567
+ b: false,
568
+ });
569
+ });
570
+ test("Should persist all values when some keys exists", async () => {
571
+ await cacheA.add("a", 1);
572
+ await cacheA.putMany({ a: { value: -1 }, b: { value: -1 } });
573
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
574
+ a: -1,
575
+ b: -1,
576
+ });
577
+ });
578
+ });
579
+ describe("method: remove", () => {
580
+ test("Should return true when key exists", async () => {
581
+ await cacheA.add("a", 1);
582
+ expect(await cacheA.remove("a")).toBe(true);
583
+ });
584
+ test("Should persist removal when key exists", async () => {
585
+ await cacheA.add("a", 1);
586
+ await cacheA.remove("a");
587
+ expect(await cacheA.get("a")).toBeNull();
588
+ });
589
+ test("Should return false when key doesnt exists", async () => {
590
+ expect(await cacheA.remove("a")).toBe(false);
591
+ });
592
+ test("Should return false when key is expired", async () => {
593
+ await cacheA.add("a", 1, TTL);
594
+ await (0, _module_2.delay)(TTL);
595
+ expect(await cacheA.remove("a")).toBe(false);
596
+ });
597
+ });
598
+ describe("method: removeMany", () => {
599
+ test("Should return only true when all keys exists", async () => {
600
+ await cacheA.addMany({
601
+ a: { value: 1 },
602
+ b: { value: 1 },
603
+ });
604
+ expect(await cacheA.removeMany(["a", "b"])).toEqual({
605
+ a: true,
606
+ b: true,
607
+ });
608
+ });
609
+ test("Should persist values when all keys exist", async () => {
610
+ await cacheA.addMany({
611
+ a: { value: 1 },
612
+ b: { value: 1 },
613
+ });
614
+ await cacheA.removeMany(["a", "b"]);
615
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
616
+ a: null,
617
+ b: null,
618
+ });
619
+ });
620
+ test("Should return only false when all keys doesnt exists", async () => {
621
+ expect(await cacheA.removeMany(["a", "b"])).toEqual({
622
+ a: false,
623
+ b: false,
624
+ });
625
+ });
626
+ test("Should return false when key is expired", async () => {
627
+ await cacheA.add("a", 1, TTL);
628
+ await (0, _module_2.delay)(TTL);
629
+ expect(await cacheA.removeMany(["a"])).toEqual({ a: false });
630
+ });
631
+ test("Should return true and false when some keys exists", async () => {
632
+ await cacheA.add("a", 1);
633
+ expect(await cacheA.removeMany(["a", "b"])).toEqual({
634
+ a: true,
635
+ b: false,
636
+ });
637
+ });
638
+ });
639
+ describe("method: getAndRemove", () => {
640
+ test("Should return value when key exists", async () => {
641
+ await cacheA.add("a", 1);
642
+ expect(await cacheA.getAndRemove("a")).toBe(1);
643
+ });
644
+ test("Should return null when key doesnt exists", async () => {
645
+ expect(await cacheA.getAndRemove("a")).toBeNull();
646
+ });
647
+ test("Should return null when key is expired", async () => {
648
+ await cacheA.add("a", 1, TTL);
649
+ await (0, _module_2.delay)(TTL);
650
+ expect(await cacheA.getAndRemove("a")).toBeNull();
651
+ });
652
+ test("Should persist removal when key exists", async () => {
653
+ await cacheA.add("a", 1);
654
+ await cacheA.getAndRemove("a");
655
+ expect(await cacheA.get("a")).toBeNull();
656
+ });
657
+ });
658
+ describe("method: getOrAdd", () => {
659
+ test("Should return value when key exists", async () => {
660
+ await cacheA.add("a", 1);
661
+ expect(await cacheA.getOrAdd("a", -1)).toBe(1);
662
+ });
663
+ describe("Should persist insertion when key doesnt exists", () => {
664
+ test("Eager", async () => {
665
+ await cacheA.getOrAdd("a", -1);
666
+ expect(await cacheA.get("a")).toBe(-1);
667
+ });
668
+ test("Lazy", async () => {
669
+ await cacheA.getOrAdd("a", () => -1);
670
+ expect(await cacheA.get("a")).toBe(-1);
671
+ });
672
+ test("Async lazy", async () => {
673
+ await cacheA.getOrAdd("a", () => Promise.resolve(-1));
674
+ expect(await cacheA.get("a")).toBe(-1);
675
+ });
676
+ });
677
+ describe("Should persist insertion when key is expired", () => {
678
+ test("Eager", async () => {
679
+ await cacheA.add("a", 1, TTL);
680
+ await (0, _module_2.delay)(TTL);
681
+ await cacheA.getOrAdd("a", -1);
682
+ expect(await cacheA.get("a")).toBe(-1);
683
+ });
684
+ test("Lazy", async () => {
685
+ await cacheA.add("a", 1, TTL);
686
+ await (0, _module_2.delay)(TTL);
687
+ await cacheA.getOrAdd("a", () => -1);
688
+ expect(await cacheA.get("a")).toBe(-1);
689
+ });
690
+ test("Async lazy", async () => {
691
+ await cacheA.add("a", 1, TTL);
692
+ await (0, _module_2.delay)(TTL);
693
+ await cacheA.getOrAdd("a", () => Promise.resolve(-1));
694
+ expect(await cacheA.get("a")).toBe(-1);
695
+ });
696
+ });
697
+ });
698
+ describe("method: increment", () => {
699
+ test("Should return true when key exists", async () => {
700
+ await cacheA.add("a", 1);
701
+ expect(await cacheA.increment("a", 1)).toBe(true);
702
+ });
703
+ test("Should persist increment when key exists", async () => {
704
+ await cacheA.add("a", 1);
705
+ await cacheA.increment("a", 1);
706
+ expect(await cacheA.get("a")).toBe(2);
707
+ });
708
+ test("Should return false when key doesnt exists", async () => {
709
+ expect(await cacheA.increment("a", 1)).toBe(false);
710
+ });
711
+ test("Should return false when key is expired", async () => {
712
+ await cacheA.add("a", 1, TTL);
713
+ await (0, _module_2.delay)(TTL);
714
+ expect(await cacheA.increment("a", 1)).toBe(false);
715
+ });
716
+ test("Should not persist increment when key doesnt exists", async () => {
717
+ await cacheA.increment("a", 1);
718
+ expect(await cacheA.get("a")).toBeNull();
719
+ });
720
+ test("Should not persist increment when key is expired", async () => {
721
+ await cacheA.add("a", 1, TTL);
722
+ await (0, _module_2.delay)(TTL);
723
+ await cacheA.increment("a", 1);
724
+ expect(await cacheA.get("a")).toBeNull();
725
+ });
726
+ test("Should throw TypeCacheError key value is not number type", async () => {
727
+ await cacheA.add("a", "str");
728
+ await expect(cacheA.increment("a", 1)).rejects.toBeInstanceOf(_module_1.TypeCacheError);
729
+ });
730
+ });
731
+ describe("method: decrement", () => {
732
+ test("Should return true when key exists", async () => {
733
+ await cacheA.add("a", 1);
734
+ expect(await cacheA.decrement("a", 1)).toBe(true);
735
+ });
736
+ test("Should persist decrement when key exists", async () => {
737
+ await cacheA.add("a", 1);
738
+ await cacheA.decrement("a", 1);
739
+ expect(await cacheA.get("a")).toBe(0);
740
+ });
741
+ test("Should return false when key doesnt exists", async () => {
742
+ expect(await cacheA.decrement("a", 1)).toBe(false);
743
+ });
744
+ test("Should return false when key is expired", async () => {
745
+ await cacheA.add("a", 1, TTL);
746
+ await (0, _module_2.delay)(TTL);
747
+ expect(await cacheA.decrement("a", 1)).toBe(false);
748
+ });
749
+ test("Should not persist decrement when key doesnt exists", async () => {
750
+ await cacheA.decrement("a", 1);
751
+ expect(await cacheA.get("a")).toBeNull();
752
+ });
753
+ test("Should not persist decrement when key is expired", async () => {
754
+ await cacheA.add("a", 1, TTL);
755
+ await (0, _module_2.delay)(TTL);
756
+ await cacheA.decrement("a", 1);
757
+ expect(await cacheA.get("a")).toBeNull();
758
+ });
759
+ test("Should throw TypeCacheError key value is not number type", async () => {
760
+ await cacheA.add("a", "str");
761
+ await expect(cacheA.decrement("a", 1)).rejects.toBeInstanceOf(_module_1.TypeCacheError);
762
+ });
763
+ });
764
+ describe("method: clear", () => {
765
+ test("Should remove all keys", async () => {
766
+ await cacheA.addMany({
767
+ a: { value: 1 },
768
+ b: { value: 2 },
769
+ c: { value: 3 },
770
+ d: { value: 4 },
771
+ e: { value: 5 },
772
+ f: { value: 6 },
773
+ });
774
+ await cacheA.clear();
775
+ expect(await cacheA.getMany(["a", "b", "c", "d", "e", "f"])).toEqual({
776
+ a: null,
777
+ b: null,
778
+ c: null,
779
+ d: null,
780
+ e: null,
781
+ f: null,
782
+ });
783
+ });
784
+ });
785
+ });
786
+ describe("Namespace tests:", () => {
787
+ test("method: exists", async () => {
788
+ await cacheA.put("a", 1);
789
+ expect(await cacheA.exists("a")).toBe(true);
790
+ expect(await cacheB.exists("a")).toBe(false);
791
+ });
792
+ test("method: existsMany", async () => {
793
+ await cacheA.putMany({
794
+ a: { value: 1 },
795
+ b: { value: 1 },
796
+ });
797
+ expect(await cacheA.existsMany(["a", "b"])).toEqual({
798
+ a: true,
799
+ b: true,
800
+ });
801
+ expect(await cacheB.existsMany(["a", "b"])).toEqual({
802
+ a: false,
803
+ b: false,
804
+ });
805
+ });
806
+ test("method: missing", async () => {
807
+ await cacheA.put("a", 1);
808
+ expect(await cacheA.missing("a")).toBe(false);
809
+ expect(await cacheB.missing("a")).toBe(true);
810
+ });
811
+ test("method: missingMany", async () => {
812
+ await cacheA.putMany({
813
+ a: { value: 1 },
814
+ b: { value: 1 },
815
+ });
816
+ expect(await cacheA.missingMany(["a", "b"])).toEqual({
817
+ a: false,
818
+ b: false,
819
+ });
820
+ expect(await cacheB.missingMany(["a", "b"])).toEqual({
821
+ a: true,
822
+ b: true,
823
+ });
824
+ });
825
+ test("method: get", async () => {
826
+ await cacheA.put("a", 1);
827
+ expect(await cacheA.get("a")).toBe(1);
828
+ expect(await cacheB.get("a")).toBe(null);
829
+ });
830
+ test("method: getMany", async () => {
831
+ await cacheA.putMany({
832
+ a: { value: 1 },
833
+ b: { value: 1 },
834
+ });
835
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
836
+ a: 1,
837
+ b: 1,
838
+ });
839
+ expect(await cacheB.getMany(["a", "b"])).toEqual({
840
+ a: null,
841
+ b: null,
842
+ });
843
+ });
844
+ test("method: getOr", async () => {
845
+ await cacheA.put("a", 1);
846
+ expect(await cacheA.getOr("a", -1)).toBe(1);
847
+ expect(await cacheB.getOr("a", -1)).toBe(-1);
848
+ });
849
+ test("method: getOrMany", async () => {
850
+ await cacheA.putMany({
851
+ a: { value: 1 },
852
+ b: { value: 1 },
853
+ });
854
+ expect(await cacheA.getOrMany({
855
+ a: -1,
856
+ b: -1,
857
+ })).toEqual({
858
+ a: 1,
859
+ b: 1,
860
+ });
861
+ expect(await cacheB.getOrMany({
862
+ a: -1,
863
+ b: -1,
864
+ })).toEqual({
865
+ a: -1,
866
+ b: -1,
867
+ });
868
+ });
869
+ test("method: getOrFail", async () => {
870
+ await cacheA.put("a", 1);
871
+ expect(await cacheA.getOrFail("a")).toBe(1);
872
+ await expect(cacheB.getOrFail("a")).rejects.toBeInstanceOf(_module_1.KeyNotFoundCacheError);
873
+ });
874
+ test("method: add", async () => {
875
+ await cacheA.add("a", 1);
876
+ await cacheB.add("a", 2);
877
+ expect(await cacheA.get("a")).toBe(1);
878
+ expect(await cacheB.get("a")).toBe(2);
879
+ });
880
+ test("method: addMany", async () => {
881
+ await cacheA.addMany({
882
+ a: { value: 1 },
883
+ b: { value: 1 },
884
+ });
885
+ await cacheB.addMany({
886
+ a: { value: 2 },
887
+ b: { value: 2 },
888
+ });
889
+ expect(await cacheA.getMany(["a", "b"])).toEqual({ a: 1, b: 1 });
890
+ expect(await cacheB.getMany(["a", "b"])).toEqual({ a: 2, b: 2 });
891
+ });
892
+ test("method: update", async () => {
893
+ await cacheA.add("a", 1);
894
+ await cacheB.add("a", 1);
895
+ await cacheA.update("a", 2);
896
+ await cacheB.update("a", 3);
897
+ expect(await cacheA.get("a")).toBe(2);
898
+ expect(await cacheB.get("a")).toBe(3);
899
+ });
900
+ test("method: updateMany", async () => {
901
+ await cacheA.addMany({
902
+ a: { value: 1 },
903
+ b: { value: 1 },
904
+ });
905
+ await cacheB.addMany({
906
+ a: { value: 1 },
907
+ b: { value: 1 },
908
+ });
909
+ await cacheA.updateMany({
910
+ a: 2,
911
+ b: 2,
912
+ });
913
+ await cacheB.updateMany({
914
+ a: 3,
915
+ b: 3,
916
+ });
917
+ expect(await cacheA.getMany(["a", "b"])).toEqual({ a: 2, b: 2 });
918
+ expect(await cacheB.getMany(["a", "b"])).toEqual({ a: 3, b: 3 });
919
+ });
920
+ test("method: put", async () => {
921
+ await cacheA.put("a", 2);
922
+ await cacheB.put("a", 3);
923
+ expect(await cacheA.get("a")).toBe(2);
924
+ expect(await cacheB.get("a")).toBe(3);
925
+ });
926
+ test("method: putMany", async () => {
927
+ await cacheA.putMany({
928
+ a: { value: 2 },
929
+ b: { value: 2 },
930
+ });
931
+ await cacheB.putMany({
932
+ a: { value: 3 },
933
+ b: { value: 3 },
934
+ });
935
+ expect(await cacheA.getMany(["a", "b"])).toEqual({ a: 2, b: 2 });
936
+ expect(await cacheB.getMany(["a", "b"])).toEqual({ a: 3, b: 3 });
937
+ });
938
+ test("method: remove", async () => {
939
+ await cacheA.add("a", 1);
940
+ await cacheB.add("a", 1);
941
+ await cacheA.remove("a");
942
+ expect(await cacheA.get("a")).toBeNull();
943
+ expect(await cacheB.get("a")).toBe(1);
944
+ });
945
+ test("method: removeMany", async () => {
946
+ await cacheA.addMany({
947
+ a: { value: 1 },
948
+ b: { value: 1 },
949
+ });
950
+ await cacheB.addMany({
951
+ a: { value: 1 },
952
+ b: { value: 1 },
953
+ });
954
+ await cacheA.removeMany(["a", "b"]);
955
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
956
+ a: null,
957
+ b: null,
958
+ });
959
+ expect(await cacheB.getMany(["a", "b"])).toEqual({ a: 1, b: 1 });
960
+ });
961
+ test("method: getAndRemove", async () => {
962
+ await cacheA.add("a", 1);
963
+ await cacheB.add("a", 2);
964
+ expect(await cacheA.getAndRemove("a")).toBe(1);
965
+ expect(await cacheA.get("a")).toBeNull();
966
+ expect(await cacheB.get("a")).toBe(2);
967
+ });
968
+ test("method: getOrAdd", async () => {
969
+ await cacheA.getOrAdd("a", 1);
970
+ await cacheB.getOrAdd("a", 2);
971
+ expect(await cacheA.get("a")).toBe(1);
972
+ expect(await cacheB.get("a")).toBe(2);
973
+ });
974
+ test("method: increment", async () => {
975
+ await cacheA.add("a", 1);
976
+ await cacheB.add("a", 1);
977
+ await cacheA.increment("a", 1);
978
+ expect(await cacheA.get("a")).toBe(2);
979
+ expect(await cacheB.get("a")).toBe(1);
980
+ });
981
+ test("method: decrement", async () => {
982
+ await cacheA.add("a", 1);
983
+ await cacheB.add("a", 1);
984
+ await cacheA.decrement("a", 1);
985
+ expect(await cacheA.get("a")).toBe(0);
986
+ expect(await cacheB.get("a")).toBe(1);
987
+ });
988
+ test("method: clear", async () => {
989
+ await cacheA.addMany({
990
+ a: { value: 1 },
991
+ b: { value: 2 },
992
+ });
993
+ await cacheB.addMany({
994
+ a: { value: 1 },
995
+ b: { value: 2 },
996
+ });
997
+ await cacheA.clear();
998
+ expect(await cacheA.getMany(["a", "b"])).toEqual({
999
+ a: null,
1000
+ b: null,
1001
+ });
1002
+ expect(await cacheB.getMany(["a", "b"])).toEqual({
1003
+ a: 1,
1004
+ b: 2,
1005
+ });
1006
+ });
1007
+ });
1008
+ }
1009
+ //# sourceMappingURL=cache.test-suite.js.map