@daiso-tech/core 0.26.0 → 0.27.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 (275) hide show
  1. package/README.md +10 -0
  2. package/dist/async/utilities/delay/delay.d.ts +1 -12
  3. package/dist/async/utilities/delay/delay.js +1 -12
  4. package/dist/async/utilities/delay/delay.js.map +1 -1
  5. package/dist/async/utilities/lazy-promise/lazy-promise.d.ts +99 -65
  6. package/dist/async/utilities/lazy-promise/lazy-promise.js +151 -111
  7. package/dist/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  8. package/dist/cache/contracts/_module-exports.d.ts +1 -0
  9. package/dist/cache/contracts/_module-exports.js +1 -0
  10. package/dist/cache/contracts/_module-exports.js.map +1 -1
  11. package/dist/cache/contracts/cache-adapter.contract.d.ts +19 -21
  12. package/dist/cache/contracts/cache-adapter.contract.js +1 -4
  13. package/dist/cache/contracts/cache-adapter.contract.js.map +1 -1
  14. package/dist/cache/contracts/cache-factory.contract.d.ts +1 -1
  15. package/dist/cache/contracts/cache.contract.d.ts +52 -88
  16. package/dist/cache/contracts/cache.contract.js +1 -2
  17. package/dist/cache/contracts/cache.contract.js.map +1 -1
  18. package/dist/cache/contracts/cache.errors.js +2 -5
  19. package/dist/cache/contracts/cache.errors.js.map +1 -1
  20. package/dist/cache/contracts/cache.events.d.ts +10 -10
  21. package/dist/cache/contracts/cache.events.js +2 -5
  22. package/dist/cache/contracts/cache.events.js.map +1 -1
  23. package/dist/cache/contracts/database-cache-adapter.contract.d.ts +89 -0
  24. package/dist/cache/contracts/database-cache-adapter.contract.js +5 -0
  25. package/dist/cache/contracts/database-cache-adapter.contract.js.map +1 -0
  26. package/dist/cache/implementations/adapters/_module-exports.d.ts +0 -1
  27. package/dist/cache/implementations/adapters/_module-exports.js +0 -1
  28. package/dist/cache/implementations/adapters/_module-exports.js.map +1 -1
  29. package/dist/cache/implementations/adapters/{kysely-sqlite-cache-adapter → kysely-cache-adapter}/_module.d.ts +1 -1
  30. package/dist/cache/implementations/adapters/kysely-cache-adapter/_module.js +2 -0
  31. package/dist/cache/implementations/adapters/kysely-cache-adapter/_module.js.map +1 -0
  32. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +73 -0
  33. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +224 -0
  34. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -0
  35. package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +29 -39
  36. package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +45 -54
  37. package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  38. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +17 -33
  39. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +43 -52
  40. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  41. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-serde.d.ts +13 -0
  42. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-serde.js +38 -0
  43. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-serde.js.map +1 -0
  44. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +27 -33
  45. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +145 -197
  46. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  47. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-serde.d.ts +13 -0
  48. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-serde.js +39 -0
  49. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-serde.js.map +1 -0
  50. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +16 -22
  51. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +51 -132
  52. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  53. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.d.ts +13 -0
  54. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js +69 -0
  55. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js.map +1 -0
  56. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +29 -40
  57. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +46 -55
  58. package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  59. package/dist/cache/implementations/derivables/_module-exports.d.ts +1 -1
  60. package/dist/cache/implementations/derivables/_module-exports.js +1 -1
  61. package/dist/cache/implementations/derivables/_module-exports.js.map +1 -1
  62. package/dist/cache/implementations/derivables/cache/_module.d.ts +1 -0
  63. package/dist/cache/implementations/derivables/cache/_module.js +1 -0
  64. package/dist/cache/implementations/derivables/cache/_module.js.map +1 -1
  65. package/dist/cache/implementations/derivables/cache/cache.d.ts +122 -565
  66. package/dist/cache/implementations/derivables/cache/cache.js +342 -854
  67. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  68. package/dist/cache/implementations/derivables/cache/database-cache-adapter.d.ts +21 -0
  69. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js +110 -0
  70. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js.map +1 -0
  71. package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.d.ts +9 -0
  72. package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.js +20 -0
  73. package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.js.map +1 -0
  74. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +65 -104
  75. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +101 -85
  76. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  77. package/dist/cache/implementations/test-utilities/_module-exports.d.ts +1 -0
  78. package/dist/cache/implementations/test-utilities/_module-exports.js +1 -0
  79. package/dist/cache/implementations/test-utilities/_module-exports.js.map +1 -1
  80. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.d.ts +9 -11
  81. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js +246 -247
  82. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js.map +1 -1
  83. package/dist/cache/implementations/test-utilities/cache.test-suite.d.ts +16 -30
  84. package/dist/cache/implementations/test-utilities/cache.test-suite.js +271 -996
  85. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  86. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.d.ts +60 -0
  87. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +698 -0
  88. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -0
  89. package/dist/collection/contracts/async-collection.contract.d.ts +2 -3
  90. package/dist/collection/contracts/async-collection.contract.js +1 -12
  91. package/dist/collection/contracts/async-collection.contract.js.map +1 -1
  92. package/dist/collection/contracts/collection.contract.d.ts +1 -1
  93. package/dist/collection/contracts/collection.errors.d.ts +1 -1
  94. package/dist/collection/contracts/collection.errors.js +3 -6
  95. package/dist/collection/contracts/collection.errors.js.map +1 -1
  96. package/dist/collection/implementations/_shared.d.ts +4 -4
  97. package/dist/collection/implementations/_shared.js +6 -9
  98. package/dist/collection/implementations/_shared.js.map +1 -1
  99. package/dist/collection/implementations/async-iterable-collection/_shared/async-delay-iterable.js +2 -2
  100. package/dist/collection/implementations/async-iterable-collection/_shared/async-delay-iterable.js.map +1 -1
  101. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +1 -1
  102. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +6 -5
  103. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  104. package/dist/collection/implementations/iterable-collection/iterable-collection.d.ts +1 -1
  105. package/dist/collection/implementations/iterable-collection/iterable-collection.js +1 -1
  106. package/dist/collection/implementations/list-collection/list-collection.d.ts +1 -1
  107. package/dist/collection/implementations/list-collection/list-collection.js +1 -1
  108. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +0 -9
  109. package/dist/event-bus/contracts/event-bus.contract.d.ts +5 -5
  110. package/dist/event-bus/contracts/event-bus.contract.js.map +1 -1
  111. package/dist/event-bus/contracts/event-bus.errors.js +2 -5
  112. package/dist/event-bus/contracts/event-bus.errors.js.map +1 -1
  113. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +9 -29
  114. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +14 -35
  115. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  116. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +1 -3
  117. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +1 -7
  118. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  119. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +8 -15
  120. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +15 -34
  121. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  122. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +78 -267
  123. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +119 -323
  124. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  125. package/dist/event-bus/implementations/derivables/event-bus/listener-store.d.ts +13 -0
  126. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js +42 -0
  127. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js.map +1 -0
  128. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +70 -96
  129. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +100 -90
  130. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  131. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.d.ts +2 -48
  132. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js +31 -122
  133. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js.map +1 -1
  134. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.d.ts +2 -50
  135. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +41 -89
  136. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  137. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +0 -9
  138. package/dist/lock/contracts/lock-adapter.contract.d.ts +0 -9
  139. package/dist/lock/contracts/lock-provider.contract.d.ts +1 -1
  140. package/dist/lock/contracts/lock.errors.js +2 -5
  141. package/dist/lock/contracts/lock.errors.js.map +1 -1
  142. package/dist/lock/contracts/lock.events.js +2 -5
  143. package/dist/lock/contracts/lock.events.js.map +1 -1
  144. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +0 -5
  145. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +2 -21
  146. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  147. package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +11 -16
  148. package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +11 -20
  149. package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -1
  150. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +7 -26
  151. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +7 -35
  152. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  153. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +13 -20
  154. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +13 -37
  155. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  156. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +4 -22
  157. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +4 -31
  158. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  159. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +12 -17
  160. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +12 -21
  161. package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -1
  162. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +0 -2
  163. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +2 -8
  164. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  165. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.d.ts +9 -0
  166. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js +17 -0
  167. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js.map +1 -0
  168. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +115 -372
  169. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +197 -455
  170. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  171. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +15 -17
  172. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +42 -40
  173. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  174. package/dist/lock/implementations/derivables/lock-provider/lock-state.d.ts +3 -3
  175. package/dist/lock/implementations/derivables/lock-provider/lock-state.js.map +1 -1
  176. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +30 -754
  177. package/dist/lock/implementations/derivables/lock-provider/lock.js +94 -812
  178. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  179. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +58 -161
  180. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +116 -122
  181. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  182. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.d.ts +4 -5
  183. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js +172 -247
  184. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js.map +1 -1
  185. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.d.ts +5 -8
  186. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +93 -98
  187. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  188. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +15 -20
  189. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +133 -137
  190. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  191. package/dist/serde/implementations/adapters/mongodb-serde/mongodb-serde.js +1 -2
  192. package/dist/serde/implementations/adapters/mongodb-serde/mongodb-serde.js.map +1 -1
  193. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.d.ts +2 -2
  194. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js +1 -1
  195. package/dist/serde/implementations/adapters/redis-serde/redis-serde.js +1 -2
  196. package/dist/serde/implementations/adapters/redis-serde/redis-serde.js.map +1 -1
  197. package/dist/serde/implementations/adapters/sql-serde/sql-serde.js +1 -2
  198. package/dist/serde/implementations/adapters/sql-serde/sql-serde.js.map +1 -1
  199. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.d.ts +2 -2
  200. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +2 -2
  201. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
  202. package/dist/serde/implementations/derivables/serde.d.ts +14 -14
  203. package/dist/serde/implementations/derivables/serde.js +14 -15
  204. package/dist/serde/implementations/derivables/serde.js.map +1 -1
  205. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.d.ts +4 -4
  206. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.js +3 -3
  207. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.d.ts +5 -5
  208. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js +4 -4
  209. package/dist/utilities/_module-exports.d.ts +1 -2
  210. package/dist/utilities/_module-exports.js +1 -2
  211. package/dist/utilities/_module-exports.js.map +1 -1
  212. package/dist/utilities/classes/_module.d.ts +4 -0
  213. package/dist/utilities/classes/_module.js +5 -0
  214. package/dist/utilities/classes/_module.js.map +1 -0
  215. package/dist/utilities/classes/key-prefixer/_module.d.ts +2 -0
  216. package/dist/utilities/classes/key-prefixer/_module.js +3 -0
  217. package/dist/utilities/classes/key-prefixer/_module.js.map +1 -0
  218. package/dist/utilities/classes/key-prefixer/key-prefixer.contract.d.ts +28 -0
  219. package/dist/utilities/classes/key-prefixer/key-prefixer.contract.js +5 -0
  220. package/dist/utilities/classes/key-prefixer/key-prefixer.contract.js.map +1 -0
  221. package/dist/utilities/classes/key-prefixer/key-prefixer.d.ts +73 -0
  222. package/dist/utilities/classes/key-prefixer/key-prefixer.js +135 -0
  223. package/dist/utilities/classes/key-prefixer/key-prefixer.js.map +1 -0
  224. package/dist/utilities/classes/kysely-table-name-transformer-plugin/_module.d.ts +1 -0
  225. package/dist/utilities/classes/kysely-table-name-transformer-plugin/_module.js +2 -0
  226. package/dist/utilities/classes/kysely-table-name-transformer-plugin/_module.js.map +1 -0
  227. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.js.map +1 -0
  228. package/dist/utilities/classes/pipeline/_module.d.ts +1 -0
  229. package/dist/utilities/classes/pipeline/_module.js +2 -0
  230. package/dist/utilities/classes/pipeline/_module.js.map +1 -0
  231. package/dist/utilities/{pipeline → classes/pipeline}/pipeline.d.ts +3 -2
  232. package/dist/utilities/{pipeline → classes/pipeline}/pipeline.js +3 -2
  233. package/dist/utilities/classes/pipeline/pipeline.js.map +1 -0
  234. package/dist/utilities/classes/time-span/_module.d.ts +1 -0
  235. package/dist/utilities/classes/time-span/_module.js +2 -0
  236. package/dist/utilities/classes/time-span/_module.js.map +1 -0
  237. package/dist/utilities/{time-span → classes/time-span}/time-span.d.ts +2 -1
  238. package/dist/utilities/{time-span → classes/time-span}/time-span.js +1 -0
  239. package/dist/utilities/classes/time-span/time-span.js.map +1 -0
  240. package/dist/utilities/contracts/_module.d.ts +2 -1
  241. package/dist/utilities/contracts/_module.js +2 -1
  242. package/dist/utilities/contracts/_module.js.map +1 -1
  243. package/dist/utilities/contracts/prunable.contract.d.ts +11 -0
  244. package/dist/utilities/contracts/prunable.contract.js +5 -0
  245. package/dist/utilities/contracts/prunable.contract.js.map +1 -0
  246. package/dist/utilities/functions.d.ts +30 -2
  247. package/dist/utilities/functions.js +66 -4
  248. package/dist/utilities/functions.js.map +1 -1
  249. package/dist/utilities/types.d.ts +47 -14
  250. package/package.json +14 -13
  251. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js +0 -2
  252. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js.map +0 -1
  253. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +0 -61
  254. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +0 -318
  255. package/dist/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +0 -1
  256. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.d.ts +0 -1
  257. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.js +0 -2
  258. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module.js.map +0 -1
  259. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +0 -22
  260. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -39
  261. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +0 -1
  262. package/dist/utilities/kysely/_module.d.ts +0 -1
  263. package/dist/utilities/kysely/_module.js +0 -2
  264. package/dist/utilities/kysely/_module.js.map +0 -1
  265. package/dist/utilities/kysely/kysely-table-name-transformer-plugin.js.map +0 -1
  266. package/dist/utilities/pipeline/_module.d.ts +0 -1
  267. package/dist/utilities/pipeline/_module.js +0 -2
  268. package/dist/utilities/pipeline/_module.js.map +0 -1
  269. package/dist/utilities/pipeline/pipeline.js.map +0 -1
  270. package/dist/utilities/time-span/_module.d.ts +0 -1
  271. package/dist/utilities/time-span/_module.js +0 -2
  272. package/dist/utilities/time-span/_module.js.map +0 -1
  273. package/dist/utilities/time-span/time-span.js.map +0 -1
  274. /package/dist/utilities/{kysely → classes/kysely-table-name-transformer-plugin}/kysely-table-name-transformer-plugin.d.ts +0 -0
  275. /package/dist/utilities/{kysely → classes/kysely-table-name-transformer-plugin}/kysely-table-name-transformer-plugin.js +0 -0
@@ -5,25 +5,25 @@ import {} from "vitest";
5
5
  import { TypeCacheError, } from "../../../cache/contracts/_module-exports.js";
6
6
  import {} from "../../../utilities/_module-exports.js";
7
7
  import { TimeSpan } from "../../../utilities/_module-exports.js";
8
- import { delay } from "../../../async/_module-exports.js";
8
+ import { LazyPromise } from "../../../async/_module-exports.js";
9
9
  /**
10
10
  * The <i>cacheAdapterTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link ICacheAdapter}</i> with <i>vitest</i>.
11
11
  *
12
- * IMPORT_PATH: ```"@daiso-tech/core/cache/implementations/test-utilities"```
12
+ * IMPORT_PATH: ```"@daiso-tech/core/cache/test-utilities"```
13
13
  * @group Test utilities
14
14
  * @example
15
15
  * ```ts
16
16
  * import { afterEach, beforeEach, describe, expect, test } from "vitest";
17
- * import { cacheAdapterTestSuite } from "@daiso-tech/core/cache/implementations/test-utilities";
18
- * import { RedisCacheAdapter } from "@daiso-tech/core/cache/implementations/adapters";
19
17
  * import { Redis } from "ioredis";
20
18
  * import {
21
- * RedisContainer,
22
- * type StartedRedisContainer,
19
+ * RedisContainer,
20
+ * type StartedRedisContainer,
23
21
  * } from "@testcontainers/redis";
24
- * import { TimeSpan } from "@daiso-tech/core/utilities";
25
- * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/implementations/adapters";
26
- * import { Serde } from "@daiso-tech/core/serde/implementations/derivables";
22
+ * import { cacheAdapterTestSuite } from "@daiso-tech/cache/implementations/test-utilities";
23
+ * import { RedisCacheAdapter } from "@daiso-tech/cache/implementations/adapters";
24
+ * import { TimeSpan } from "@daiso-tech/cache/utilities";
25
+ * import { SuperJsonSerdeAdapter } from "@daiso-tech/cache/serde/implementations/adapters";
26
+ * import { Serde } from "@daiso-tech/cache/serde/implementations/derivables";
27
27
  *
28
28
  * const timeout = TimeSpan.fromMinutes(2);
29
29
  * describe("class: RedisCacheAdapter", () => {
@@ -42,7 +42,6 @@ import { delay } from "../../../async/_module-exports.js";
42
42
  * new RedisCacheAdapter({
43
43
  * database: client,
44
44
  * serde: new Serde(new SuperJsonSerdeAdapter()),
45
- * rootGroup: "@a",
46
45
  * }),
47
46
  * test,
48
47
  * beforeEach,
@@ -50,252 +49,252 @@ import { delay } from "../../../async/_module-exports.js";
50
49
  * describe,
51
50
  * });
52
51
  * });
53
- *
54
52
  * ```
55
53
  */
56
54
  export function cacheAdapterTestSuite(settings) {
57
55
  const { expect, test, createAdapter, describe, beforeEach } = settings;
58
- let cacheAdapterA;
59
- let cacheAdapterB;
56
+ let adapter;
60
57
  beforeEach(async () => {
61
- cacheAdapterA = await createAdapter();
62
- cacheAdapterB = cacheAdapterA.withGroup("b");
58
+ adapter = await createAdapter();
59
+ });
60
+ const TTL = TimeSpan.fromMilliseconds(50);
61
+ describe("method: get", () => {
62
+ test("Should return the value when key exists", async () => {
63
+ await adapter.add("a", 1, null);
64
+ await LazyPromise.delay(TTL.divide(4));
65
+ expect(await adapter.get("a")).toBe(1);
66
+ });
67
+ test("Should return null when keys doesnt exists", async () => {
68
+ expect(await adapter.get("a")).toBeNull();
69
+ });
70
+ test("Should return null when key is experied", async () => {
71
+ await adapter.add("a", 1, TTL);
72
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
73
+ expect(await adapter.get("a")).toBeNull();
74
+ });
63
75
  });
64
- describe("Api tests:", () => {
65
- const TTL = TimeSpan.fromMilliseconds(50);
66
- describe("method: get", () => {
67
- test("Should return the value when key exists", async () => {
68
- await cacheAdapterA.add("a", 1, null);
69
- expect(await cacheAdapterA.get("a")).toBe(1);
70
- });
71
- test("Should return null when keys doesnt exists", async () => {
72
- expect(await cacheAdapterA.get("a")).toBeNull();
73
- });
74
- test("Should return null when key is experied", async () => {
75
- await cacheAdapterA.add("a", 1, TTL);
76
- await delay(TTL);
77
- expect(await cacheAdapterA.get("a")).toBeNull();
78
- });
79
- });
80
- describe("method: add", () => {
81
- test("Should return true when key doesnt exists", async () => {
82
- expect(await cacheAdapterA.add("a", 1, null)).toBe(true);
83
- });
84
- test("Should return true when key is expired", async () => {
85
- await cacheAdapterA.add("a", 1, TTL);
86
- await delay(TTL);
87
- expect(await cacheAdapterA.add("a", 1, null)).toBe(true);
88
- });
89
- test("Should persist values when key doesnt exist", async () => {
90
- await cacheAdapterA.add("a", 1, null);
91
- expect(await cacheAdapterA.get("a")).toBe(1);
92
- });
93
- test("Should persist values when key is expired", async () => {
94
- await cacheAdapterA.add("a", -1, TTL);
95
- await delay(TTL);
96
- await cacheAdapterA.add("a", 1, null);
97
- expect(await cacheAdapterA.get("a")).toBe(1);
98
- });
99
- test("Should return false when key exists", async () => {
100
- await cacheAdapterA.add("a", 1, null);
101
- expect(await cacheAdapterA.add("a", 1, null)).toBe(false);
102
- });
103
- test("Should not persist value when key exist", async () => {
104
- await cacheAdapterA.add("a", 1, null);
105
- await cacheAdapterA.add("a", 2, null);
106
- expect(await cacheAdapterA.get("a")).toBe(1);
107
- });
108
- });
109
- describe("method: update", () => {
110
- test("Should return true when key exists", async () => {
111
- await cacheAdapterA.add("a", 1, null);
112
- expect(await cacheAdapterA.update("a", -1)).toBe(true);
113
- });
114
- test("Should persist value when key exist", async () => {
115
- await cacheAdapterA.add("a", 1, null);
116
- await cacheAdapterA.update("a", -1);
117
- expect(await cacheAdapterA.get("a")).toBe(-1);
118
- });
119
- test("Should return false when key doesnt exists", async () => {
120
- expect(await cacheAdapterA.update("a", -1)).toBe(false);
121
- });
122
- test("Should return false when key is expired", async () => {
123
- await cacheAdapterA.add("a", 1, TTL);
124
- await delay(TTL);
125
- expect(await cacheAdapterA.update("a", -1)).toBe(false);
126
- });
127
- test("Should not persist value when key doesnt exist", async () => {
128
- await cacheAdapterA.update("a", -1);
129
- expect(await cacheAdapterA.get("a")).toBeNull();
130
- });
131
- test("Should not persist value when key is expired", async () => {
132
- await cacheAdapterA.add("a", 1, TTL);
133
- await delay(TTL);
134
- await cacheAdapterA.update("a", -1);
135
- expect(await cacheAdapterA.get("a")).toBeNull();
136
- });
137
- });
138
- describe("method: put", () => {
139
- test("Should return only true when key exists", async () => {
140
- await cacheAdapterA.add("a", 1, null);
141
- expect(await cacheAdapterA.put("a", -1, null)).toBe(true);
142
- });
143
- test("Should persist value when key exist", async () => {
144
- await cacheAdapterA.add("a", 1, null);
145
- await cacheAdapterA.put("a", -1, null);
146
- expect(await cacheAdapterA.get("a")).toBe(-1);
147
- });
148
- test("Should return false when key doesnt exists", async () => {
149
- expect(await cacheAdapterA.put("a", -1, null)).toBe(false);
150
- });
151
- test("Should return false when key is expired", async () => {
152
- await cacheAdapterA.add("a", 1, TTL);
153
- await delay(TTL);
154
- expect(await cacheAdapterA.put("a", -1, null)).toBe(false);
155
- });
156
- test("Should persist values when key doesnt exist", async () => {
157
- await cacheAdapterA.put("a", -1, null);
158
- expect(await cacheAdapterA.get("a")).toBe(-1);
159
- });
160
- test("Should persist values when key is expired", async () => {
161
- await cacheAdapterA.add("a", 1, TTL);
162
- await delay(TTL);
163
- await cacheAdapterA.put("a", -1, null);
164
- expect(await cacheAdapterA.get("a")).toBe(-1);
165
- });
166
- test("Should replace the ttl value", async () => {
167
- const ttlA = TimeSpan.fromMilliseconds(100);
168
- await cacheAdapterA.add("a", 1, ttlA);
169
- const ttlB = TimeSpan.fromMilliseconds(50);
170
- await cacheAdapterA.put("a", -1, ttlB);
171
- await delay(ttlB);
172
- expect(await cacheAdapterA.get("a")).toBeNull();
173
- });
174
- });
175
- describe("method: remove", () => {
176
- test("Should return only true when key exists", async () => {
177
- await cacheAdapterA.add("a", 1, null);
178
- expect(await cacheAdapterA.remove("a")).toBe(true);
179
- });
180
- test("Should persist removal when key exist", async () => {
181
- await cacheAdapterA.add("a", 1, null);
182
- await cacheAdapterA.remove("a");
183
- expect(await cacheAdapterA.get("a")).toBeNull();
184
- });
185
- test("Should persist removal when key is expired", async () => {
186
- await cacheAdapterA.add("a", 1, TTL);
187
- await delay(TTL);
188
- await cacheAdapterA.remove("a");
189
- expect(await cacheAdapterA.get("a")).toBeNull();
190
- });
191
- test("Should return false when key doesnt exists", async () => {
192
- expect(await cacheAdapterA.remove("a")).toBe(false);
193
- });
194
- test("Should return false when key is expired", async () => {
195
- await cacheAdapterA.add("a", 1, TTL);
196
- await delay(TTL);
197
- expect(await cacheAdapterA.remove("a")).toBe(false);
198
- });
199
- });
200
- describe("method: increment", () => {
201
- test("Should return true when key exists", async () => {
202
- await cacheAdapterA.add("a", 1, null);
203
- expect(await cacheAdapterA.increment("a", 1)).toBe(true);
204
- });
205
- test("Should persist increment when key exists", async () => {
206
- await cacheAdapterA.add("a", 1, null);
207
- await cacheAdapterA.increment("a", 1);
208
- expect(await cacheAdapterA.get("a")).toBe(2);
209
- });
210
- test("Should return false when key doesnt exists", async () => {
211
- expect(await cacheAdapterA.increment("a", 1)).toBe(false);
212
- });
213
- test("Should return false when key is expired", async () => {
214
- await cacheAdapterA.add("a", 1, TTL);
215
- await delay(TTL);
216
- expect(await cacheAdapterA.increment("a", 1)).toBe(false);
217
- });
218
- test("Should not persist increment when key doesnt exists", async () => {
219
- await cacheAdapterA.increment("a", 1);
220
- expect(await cacheAdapterA.get("a")).toBeNull();
221
- });
222
- test("Should not persist increment when key is expired", async () => {
223
- await cacheAdapterA.add("a", 1, TTL);
224
- await delay(TTL);
225
- await cacheAdapterA.increment("a", 1);
226
- expect(await cacheAdapterA.get("a")).toBeNull();
227
- });
228
- test("Should throw TypeCacheError key value is not number type", async () => {
229
- await cacheAdapterA.add("a", "str", null);
230
- await expect(cacheAdapterA.increment("a", 1)).rejects.toBeInstanceOf(TypeCacheError);
231
- });
232
- });
233
- describe("method: clear", () => {
234
- test(`Should remove all keys`, async () => {
235
- await cacheAdapterA.add("a", 1, null);
236
- await cacheAdapterA.add("b", 2, null);
237
- await cacheAdapterA.add("c", 3, null);
238
- await cacheAdapterA.clear();
239
- expect([
240
- await cacheAdapterA.get("a"),
241
- await cacheAdapterA.get("b"),
242
- await cacheAdapterA.get("c"),
243
- ]).toEqual([null, null, null]);
244
- });
76
+ describe("method: getAndRemove", () => {
77
+ test("Should return value when key exists", async () => {
78
+ await adapter.add("a", 1, null);
79
+ await LazyPromise.delay(TTL.divide(4));
80
+ expect(await adapter.getAndRemove("a")).toBe(1);
81
+ });
82
+ test("Should return null when key doesnt exists", async () => {
83
+ expect(await adapter.getAndRemove("a")).toBeNull();
84
+ });
85
+ test("Should return null when key is expired", async () => {
86
+ await adapter.add("a", 1, TTL);
87
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
88
+ expect(await adapter.getAndRemove("a")).toBeNull();
89
+ });
90
+ test("Should persist removal when key exists", async () => {
91
+ await adapter.add("a", 1, null);
92
+ await LazyPromise.delay(TTL.divide(4));
93
+ await adapter.getAndRemove("a");
94
+ await LazyPromise.delay(TTL.divide(4));
95
+ expect(await adapter.get("a")).toBeNull();
96
+ });
97
+ });
98
+ describe("method: add", () => {
99
+ test("Should return true when key doesnt exists", async () => {
100
+ const result = await adapter.add("a", 1, null);
101
+ await LazyPromise.delay(TTL.divide(4));
102
+ expect(result).toBe(true);
103
+ });
104
+ test("Should return true when key is expired", async () => {
105
+ await adapter.add("a", 1, TTL);
106
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
107
+ expect(await adapter.add("a", 1, null)).toBe(true);
108
+ });
109
+ test("Should persist values when key doesnt exist", async () => {
110
+ await adapter.add("a", 1, null);
111
+ await LazyPromise.delay(TTL.divide(4));
112
+ expect(await adapter.get("a")).toBe(1);
113
+ });
114
+ test("Should persist values when key is expired", async () => {
115
+ await adapter.add("a", -1, TTL);
116
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
117
+ await adapter.add("a", 1, null);
118
+ expect(await adapter.get("a")).toBe(1);
119
+ });
120
+ test("Should return false when key exists", async () => {
121
+ await adapter.add("a", 1, null);
122
+ await LazyPromise.delay(TTL.divide(4));
123
+ expect(await adapter.add("a", 1, null)).toBe(false);
124
+ });
125
+ test("Should not persist value when key exist", async () => {
126
+ await adapter.add("a", 1, null);
127
+ await LazyPromise.delay(TTL.divide(4));
128
+ await adapter.add("a", 2, null);
129
+ await LazyPromise.delay(TTL.divide(4));
130
+ expect(await adapter.get("a")).toBe(1);
245
131
  });
246
132
  });
247
- describe("Group tests:", () => {
248
- test("method: get", async () => {
249
- await cacheAdapterA.put("a", 1, null);
250
- expect(await cacheAdapterA.get("a")).toBe(1);
251
- expect(await cacheAdapterB.get("a")).toBeNull();
252
- });
253
- test("method: add", async () => {
254
- await cacheAdapterA.add("a", 1, null);
255
- await cacheAdapterB.add("a", 2, null);
256
- expect(await cacheAdapterA.get("a")).toBe(1);
257
- expect(await cacheAdapterB.get("a")).toBe(2);
258
- });
259
- test("method: update", async () => {
260
- await cacheAdapterA.add("a", 1, null);
261
- await cacheAdapterB.add("a", 1, null);
262
- await cacheAdapterA.update("a", 2);
263
- await cacheAdapterB.update("a", 3);
264
- expect(await cacheAdapterA.get("a")).toBe(2);
265
- expect(await cacheAdapterB.get("a")).toBe(3);
266
- });
267
- test("method: put", async () => {
268
- await cacheAdapterA.put("a", 2, null);
269
- await cacheAdapterB.put("a", 3, null);
270
- expect(await cacheAdapterA.get("a")).toBe(2);
271
- expect(await cacheAdapterB.get("a")).toBe(3);
272
- });
273
- test("method: remove", async () => {
274
- await cacheAdapterA.add("a", 1, null);
275
- await cacheAdapterB.add("a", 1, null);
276
- await cacheAdapterA.remove("a");
277
- expect(await cacheAdapterA.get("a")).toBeNull();
278
- expect(await cacheAdapterB.get("a")).toBe(1);
279
- });
280
- test("method: increment", async () => {
281
- await cacheAdapterA.add("a", 1, null);
282
- await cacheAdapterB.add("a", 1, null);
283
- await cacheAdapterA.increment("a", 1);
284
- expect(await cacheAdapterA.get("a")).toBe(2);
285
- expect(await cacheAdapterB.get("a")).toBe(1);
286
- });
287
- test("method: clear", async () => {
288
- await cacheAdapterA.add("a", 1, null);
289
- await cacheAdapterA.add("b", 2, null);
290
- await cacheAdapterB.add("a", 1, null);
291
- await cacheAdapterB.add("b", 2, null);
292
- await cacheAdapterA.clear();
133
+ describe("method: put", () => {
134
+ test("Should return true when key exists", async () => {
135
+ await adapter.add("a", 1, null);
136
+ await LazyPromise.delay(TTL.divide(4));
137
+ expect(await adapter.put("a", -1, null)).toBe(true);
138
+ });
139
+ test("Should persist value when key exist", async () => {
140
+ await adapter.add("a", 1, null);
141
+ await LazyPromise.delay(TTL.divide(4));
142
+ await adapter.put("a", -1, null);
143
+ await LazyPromise.delay(TTL.divide(4));
144
+ expect(await adapter.get("a")).toBe(-1);
145
+ });
146
+ test("Should return false when key doesnt exists", async () => {
147
+ expect(await adapter.put("a", -1, null)).toBe(false);
148
+ });
149
+ test("Should return false when key is expired", async () => {
150
+ await adapter.add("a", 1, TTL);
151
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
152
+ expect(await adapter.put("a", -1, null)).toBe(false);
153
+ });
154
+ test("Should persist values when key doesnt exist", async () => {
155
+ await adapter.put("a", -1, null);
156
+ await LazyPromise.delay(TTL.divide(4));
157
+ expect(await adapter.get("a")).toBe(-1);
158
+ });
159
+ test("Should persist values when key is expired", async () => {
160
+ await adapter.add("a", 1, TTL);
161
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
162
+ await adapter.put("a", -1, null);
163
+ await LazyPromise.delay(TTL.divide(4));
164
+ expect(await adapter.get("a")).toBe(-1);
165
+ });
166
+ test("Should replace the ttl value", async () => {
167
+ const ttlA = TimeSpan.fromMilliseconds(100);
168
+ await adapter.add("a", 1, ttlA);
169
+ await LazyPromise.delay(TTL.divide(4));
170
+ const ttlB = TimeSpan.fromMilliseconds(50);
171
+ await adapter.put("a", -1, ttlB);
172
+ await LazyPromise.delay(ttlB);
173
+ expect(await adapter.get("a")).toBeNull();
174
+ });
175
+ });
176
+ describe("method: update", () => {
177
+ test("Should return true when key exists", async () => {
178
+ await adapter.add("a", 1, null);
179
+ await LazyPromise.delay(TTL.divide(4));
180
+ expect(await adapter.update("a", -1)).toBe(true);
181
+ });
182
+ test("Should persist value when key exist", async () => {
183
+ await adapter.add("a", 1, null);
184
+ await LazyPromise.delay(TTL.divide(4));
185
+ await adapter.update("a", -1);
186
+ await LazyPromise.delay(TTL.divide(4));
187
+ expect(await adapter.get("a")).toBe(-1);
188
+ });
189
+ test("Should return false when key doesnt exists", async () => {
190
+ expect(await adapter.update("a", -1)).toBe(false);
191
+ });
192
+ test("Should return false when key is expired", async () => {
193
+ await adapter.add("a", 1, TTL);
194
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
195
+ expect(await adapter.update("a", -1)).toBe(false);
196
+ });
197
+ test("Should not persist value when key doesnt exist", async () => {
198
+ await adapter.update("a", -1);
199
+ await LazyPromise.delay(TTL.divide(4));
200
+ expect(await adapter.get("a")).toBeNull();
201
+ });
202
+ test("Should not persist value when key is expired", async () => {
203
+ await adapter.add("a", 1, TTL);
204
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
205
+ await adapter.update("a", -1);
206
+ expect(await adapter.get("a")).toBeNull();
207
+ });
208
+ });
209
+ describe("method: increment", () => {
210
+ test("Should return true when key exists", async () => {
211
+ await adapter.add("a", 1, null);
212
+ await LazyPromise.delay(TTL.divide(4));
213
+ expect(await adapter.increment("a", 1)).toBe(true);
214
+ });
215
+ test("Should persist increment when key exists", async () => {
216
+ await adapter.add("a", 1, null);
217
+ await LazyPromise.delay(TTL.divide(4));
218
+ await adapter.increment("a", 1);
219
+ await LazyPromise.delay(TTL.divide(4));
220
+ expect(await adapter.get("a")).toBe(2);
221
+ });
222
+ test("Should return false when key doesnt exists", async () => {
223
+ expect(await adapter.increment("a", 1)).toBe(false);
224
+ });
225
+ test("Should return false when key is expired", async () => {
226
+ await adapter.add("a", 1, TTL);
227
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
228
+ expect(await adapter.increment("a", 1)).toBe(false);
229
+ });
230
+ test("Should not persist increment when key doesnt exists", async () => {
231
+ await adapter.increment("a", 1);
232
+ await LazyPromise.delay(TTL.divide(4));
233
+ expect(await adapter.get("a")).toBeNull();
234
+ });
235
+ test("Should not persist increment when key is expired", async () => {
236
+ await adapter.add("a", 1, TTL);
237
+ await LazyPromise.delay(TTL.addTimeSpan(TTL.divide(4)));
238
+ await adapter.increment("a", 1);
239
+ expect(await adapter.get("a")).toBeNull();
240
+ });
241
+ test("Should throw TypeCacheError key value is not number type", async () => {
242
+ await adapter.add("a", "str", null);
243
+ await LazyPromise.delay(TTL.divide(4));
244
+ await expect(adapter.increment("a", 1)).rejects.toBeInstanceOf(TypeCacheError);
245
+ });
246
+ });
247
+ describe("method: removeMany", () => {
248
+ test("Should return true when one key exists", async () => {
249
+ await adapter.add("a", 1, null);
250
+ await LazyPromise.delay(TTL.divide(4));
251
+ const result = await adapter.removeMany(["a", "b", "c"]);
252
+ expect(result).toBe(true);
253
+ });
254
+ test("Should persist removal of the keys that exists", async () => {
255
+ await adapter.add("a", 1, null);
256
+ await adapter.add("b", 2, null);
257
+ await adapter.add("c", 3, null);
258
+ await LazyPromise.delay(TTL.divide(4));
259
+ await adapter.removeMany(["a", "b"]);
260
+ await LazyPromise.delay(TTL.divide(4));
261
+ const result = [
262
+ await adapter.get("a"),
263
+ await adapter.get("b"),
264
+ await adapter.get("c"),
265
+ ];
266
+ expect(result).toEqual([null, null, 3]);
267
+ });
268
+ });
269
+ describe("method: removeAll", () => {
270
+ test("Should remove all keys", async () => {
271
+ await adapter.add("cache/a", 1, null);
272
+ await adapter.add("cache/b", 2, null);
273
+ await adapter.add("c", 3, null);
274
+ await LazyPromise.delay(TTL.divide(4));
275
+ await adapter.removeAll();
276
+ await LazyPromise.delay(TTL.divide(4));
293
277
  expect([
294
- await cacheAdapterA.get("a"),
295
- await cacheAdapterA.get("b"),
296
- await cacheAdapterB.get("a"),
297
- await cacheAdapterB.get("b"),
298
- ]).toEqual([null, null, 1, 2]);
278
+ await adapter.get("cache/a"),
279
+ await adapter.get("cache/b"),
280
+ await adapter.get("c"),
281
+ ]).toEqual([null, null, null]);
282
+ });
283
+ });
284
+ describe("method: removeByKeyPrefix", () => {
285
+ test(`Should remove all keys that start with prefix "cache"`, async () => {
286
+ await adapter.add("cache/a", 1, null);
287
+ await adapter.add("cache/b", 2, null);
288
+ await adapter.add("c", 3, null);
289
+ await LazyPromise.delay(TTL.divide(4));
290
+ await adapter.removeByKeyPrefix("cache");
291
+ await LazyPromise.delay(TTL.divide(4));
292
+ const result = [
293
+ await adapter.get("cache/a"),
294
+ await adapter.get("cache/b"),
295
+ await adapter.get("c"),
296
+ ];
297
+ expect(result).toEqual([null, null, 3]);
299
298
  });
300
299
  });
301
300
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache-adapter.test-suite.js","sourceRoot":"","sources":["../../../../src/cache/implementations/test-utilities/cache-adapter.test-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache-adapter.test-suite.js","sourceRoot":"","sources":["../../../../src/cache/implementations/test-utilities/cache-adapter.test-suite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAKN,MAAM,QAAQ,CAAC;AAChB,OAAO,EACH,cAAc,GAEjB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAezD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,UAAU,qBAAqB,CACjC,QAAuC;IAEvC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IACvE,IAAI,OAA2B,CAAC;IAChC,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAC1D,cAAc,CACjB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAChC,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAEzD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACrC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG;gBACX,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBACtB,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBACtB,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;aACzB,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC/B,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC;gBACH,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;aACzB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACvC,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG;gBACX,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;aACzB,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}