@daiso-tech/core 0.2.0 → 0.3.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 (260) hide show
  1. package/dist/cjs/_module.js +3 -1
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/_shared/kysely/_module.js +18 -0
  4. package/dist/cjs/_shared/kysely/_module.js.map +1 -0
  5. package/dist/cjs/_shared/kysely/kysely-table-name-transformer-plugin.js +45 -0
  6. package/dist/cjs/_shared/kysely/kysely-table-name-transformer-plugin.js.map +1 -0
  7. package/dist/cjs/_shared/redis/_module.js +20 -0
  8. package/dist/cjs/_shared/redis/_module.js.map +1 -0
  9. package/dist/cjs/_shared/redis/clear-iterable.js +25 -0
  10. package/dist/cjs/_shared/redis/clear-iterable.js.map +1 -0
  11. package/dist/cjs/_shared/redis/escape-redis-chars.js +41 -0
  12. package/dist/cjs/_shared/redis/escape-redis-chars.js.map +1 -0
  13. package/dist/cjs/_shared/redis/is-redis-type-error.js +9 -0
  14. package/dist/cjs/_shared/redis/is-redis-type-error.js.map +1 -0
  15. package/dist/cjs/_shared/utilities.js.map +1 -1
  16. package/dist/cjs/collection/async-iterable-collection/_shared/async-cross-join-iterable.js.map +1 -1
  17. package/dist/cjs/collection/async-iterable-collection/async-iterable-collection.js.map +1 -1
  18. package/dist/cjs/collection/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  19. package/dist/cjs/contracts/_module.js +2 -0
  20. package/dist/cjs/contracts/_module.js.map +1 -1
  21. package/dist/cjs/contracts/collection/_module.js.map +1 -1
  22. package/dist/cjs/contracts/serializer/_module.js +18 -0
  23. package/dist/cjs/contracts/serializer/_module.js.map +1 -0
  24. package/dist/cjs/contracts/serializer/serializer.contract.js +25 -0
  25. package/dist/cjs/contracts/serializer/serializer.contract.js.map +1 -0
  26. package/dist/cjs/contracts/storage/_module.js +20 -0
  27. package/dist/cjs/contracts/storage/_module.js.map +1 -0
  28. package/dist/cjs/contracts/storage/_shared.js +32 -0
  29. package/dist/cjs/contracts/storage/_shared.js.map +1 -0
  30. package/dist/cjs/contracts/storage/storage-adapter.contract.js +3 -0
  31. package/dist/cjs/contracts/storage/storage-adapter.contract.js.map +1 -0
  32. package/dist/cjs/contracts/storage/storage.contract.js +3 -0
  33. package/dist/cjs/contracts/storage/storage.contract.js.map +1 -0
  34. package/dist/cjs/serializer/_module.js +22 -0
  35. package/dist/cjs/serializer/_module.js.map +1 -0
  36. package/dist/cjs/serializer/_shared/test-utilities/_module.js +18 -0
  37. package/dist/cjs/serializer/_shared/test-utilities/_module.js.map +1 -0
  38. package/dist/cjs/serializer/_shared/test-utilities/serializer.test-suite.js +361 -0
  39. package/dist/cjs/serializer/_shared/test-utilities/serializer.test-suite.js.map +1 -0
  40. package/dist/cjs/serializer/mongodb-serializer/_module.js +18 -0
  41. package/dist/cjs/serializer/mongodb-serializer/_module.js.map +1 -0
  42. package/dist/cjs/serializer/mongodb-serializer/mongodb-serializer.js +36 -0
  43. package/dist/cjs/serializer/mongodb-serializer/mongodb-serializer.js.map +1 -0
  44. package/dist/cjs/serializer/redis-serializer/_module.js +18 -0
  45. package/dist/cjs/serializer/redis-serializer/_module.js.map +1 -0
  46. package/dist/cjs/serializer/redis-serializer/redis-serializer.js +37 -0
  47. package/dist/cjs/serializer/redis-serializer/redis-serializer.js.map +1 -0
  48. package/dist/cjs/serializer/sql-serializer/_module.js +18 -0
  49. package/dist/cjs/serializer/sql-serializer/_module.js.map +1 -0
  50. package/dist/cjs/serializer/sql-serializer/sql-serializer.js +37 -0
  51. package/dist/cjs/serializer/sql-serializer/sql-serializer.js.map +1 -0
  52. package/dist/cjs/serializer/super-json-serializer/_module.js +18 -0
  53. package/dist/cjs/serializer/super-json-serializer/_module.js.map +1 -0
  54. package/dist/cjs/serializer/super-json-serializer/super-json-serializer.js +304 -0
  55. package/dist/cjs/serializer/super-json-serializer/super-json-serializer.js.map +1 -0
  56. package/dist/cjs/storage/_module.js +23 -0
  57. package/dist/cjs/storage/_module.js.map +1 -0
  58. package/dist/cjs/storage/_shared/test-utilities/_module.js +18 -0
  59. package/dist/cjs/storage/_shared/test-utilities/_module.js.map +1 -0
  60. package/dist/cjs/storage/_shared/test-utilities/storage-api.test-suite.js +572 -0
  61. package/dist/cjs/storage/_shared/test-utilities/storage-api.test-suite.js.map +1 -0
  62. package/dist/cjs/storage/_shared/test-utilities/storage-namespace.test-suite.js +241 -0
  63. package/dist/cjs/storage/_shared/test-utilities/storage-namespace.test-suite.js.map +1 -0
  64. package/dist/cjs/storage/_shared/test-utilities/storage-value.test-suite.js +4172 -0
  65. package/dist/cjs/storage/_shared/test-utilities/storage-value.test-suite.js.map +1 -0
  66. package/dist/cjs/storage/_shared/test-utilities/storage.test-suite.js +12 -0
  67. package/dist/cjs/storage/_shared/test-utilities/storage.test-suite.js.map +1 -0
  68. package/dist/cjs/storage/memory-storage-adapter/_module.js +18 -0
  69. package/dist/cjs/storage/memory-storage-adapter/_module.js.map +1 -0
  70. package/dist/cjs/storage/memory-storage-adapter/memory-storage-adapter.js +62 -0
  71. package/dist/cjs/storage/memory-storage-adapter/memory-storage-adapter.js.map +1 -0
  72. package/dist/cjs/storage/mongodb-storage-adapter/_module.js +6 -0
  73. package/dist/cjs/storage/mongodb-storage-adapter/_module.js.map +1 -0
  74. package/dist/cjs/storage/mongodb-storage-adapter/mongodb-storage-adapter.js +273 -0
  75. package/dist/cjs/storage/mongodb-storage-adapter/mongodb-storage-adapter.js.map +1 -0
  76. package/dist/cjs/storage/namespace-storage-adapter.js +66 -0
  77. package/dist/cjs/storage/namespace-storage-adapter.js.map +1 -0
  78. package/dist/cjs/storage/redis-storage-adapter/_module.js +18 -0
  79. package/dist/cjs/storage/redis-storage-adapter/_module.js.map +1 -0
  80. package/dist/cjs/storage/redis-storage-adapter/redis-storage-adapter.js +248 -0
  81. package/dist/cjs/storage/redis-storage-adapter/redis-storage-adapter.js.map +1 -0
  82. package/dist/cjs/storage/sqlite/_module.js +19 -0
  83. package/dist/cjs/storage/sqlite/_module.js.map +1 -0
  84. package/dist/cjs/storage/sqlite/_shared/_module.js +18 -0
  85. package/dist/cjs/storage/sqlite/_shared/_module.js.map +1 -0
  86. package/dist/cjs/storage/sqlite/_shared/base-sqlite-storage-adapter.js +224 -0
  87. package/dist/cjs/storage/sqlite/_shared/base-sqlite-storage-adapter.js.map +1 -0
  88. package/dist/cjs/storage/sqlite/libsql-storage-adapter/_module.js +18 -0
  89. package/dist/cjs/storage/sqlite/libsql-storage-adapter/_module.js.map +1 -0
  90. package/dist/cjs/storage/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +53 -0
  91. package/dist/cjs/storage/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +1 -0
  92. package/dist/cjs/storage/sqlite/sqlite-storage-adapter/_module.js +18 -0
  93. package/dist/cjs/storage/sqlite/sqlite-storage-adapter/_module.js.map +1 -0
  94. package/dist/cjs/storage/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +52 -0
  95. package/dist/cjs/storage/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +1 -0
  96. package/dist/cjs/storage/storage.js +291 -0
  97. package/dist/cjs/storage/storage.js.map +1 -0
  98. package/dist/cjs/storage/usable-storage-adapter.js +102 -0
  99. package/dist/cjs/storage/usable-storage-adapter.js.map +1 -0
  100. package/dist/esm/_module.js +3 -1
  101. package/dist/esm/_module.js.map +1 -1
  102. package/dist/esm/_shared/kysely/_module.js +2 -0
  103. package/dist/esm/_shared/kysely/_module.js.map +1 -0
  104. package/dist/esm/_shared/kysely/kysely-table-name-transformer-plugin.js +41 -0
  105. package/dist/esm/_shared/kysely/kysely-table-name-transformer-plugin.js.map +1 -0
  106. package/dist/esm/_shared/redis/_module.js +4 -0
  107. package/dist/esm/_shared/redis/_module.js.map +1 -0
  108. package/dist/esm/_shared/redis/clear-iterable.js +21 -0
  109. package/dist/esm/_shared/redis/clear-iterable.js.map +1 -0
  110. package/dist/esm/_shared/redis/escape-redis-chars.js +38 -0
  111. package/dist/esm/_shared/redis/escape-redis-chars.js.map +1 -0
  112. package/dist/esm/_shared/redis/is-redis-type-error.js +6 -0
  113. package/dist/esm/_shared/redis/is-redis-type-error.js.map +1 -0
  114. package/dist/esm/_shared/utilities.js.map +1 -1
  115. package/dist/esm/collection/async-iterable-collection/_shared/async-cross-join-iterable.js.map +1 -1
  116. package/dist/esm/collection/async-iterable-collection/async-iterable-collection.js.map +1 -1
  117. package/dist/esm/collection/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  118. package/dist/esm/contracts/_module.js +2 -0
  119. package/dist/esm/contracts/_module.js.map +1 -1
  120. package/dist/esm/contracts/collection/_module.js.map +1 -1
  121. package/dist/esm/contracts/serializer/_module.js +2 -0
  122. package/dist/esm/contracts/serializer/_module.js.map +1 -0
  123. package/dist/esm/contracts/serializer/serializer.contract.js +19 -0
  124. package/dist/esm/contracts/serializer/serializer.contract.js.map +1 -0
  125. package/dist/esm/contracts/storage/_module.js +4 -0
  126. package/dist/esm/contracts/storage/_module.js.map +1 -0
  127. package/dist/esm/contracts/storage/_shared.js +25 -0
  128. package/dist/esm/contracts/storage/_shared.js.map +1 -0
  129. package/dist/esm/contracts/storage/storage-adapter.contract.js +1 -0
  130. package/dist/esm/contracts/storage/storage-adapter.contract.js.map +1 -0
  131. package/dist/esm/contracts/storage/storage.contract.js +1 -0
  132. package/dist/esm/contracts/storage/storage.contract.js.map +1 -0
  133. package/dist/esm/serializer/_module.js +6 -0
  134. package/dist/esm/serializer/_module.js.map +1 -0
  135. package/dist/esm/serializer/_shared/test-utilities/_module.js +2 -0
  136. package/dist/esm/serializer/_shared/test-utilities/_module.js.map +1 -0
  137. package/dist/esm/serializer/_shared/test-utilities/serializer.test-suite.js +358 -0
  138. package/dist/esm/serializer/_shared/test-utilities/serializer.test-suite.js.map +1 -0
  139. package/dist/esm/serializer/mongodb-serializer/_module.js +2 -0
  140. package/dist/esm/serializer/mongodb-serializer/_module.js.map +1 -0
  141. package/dist/esm/serializer/mongodb-serializer/mongodb-serializer.js +32 -0
  142. package/dist/esm/serializer/mongodb-serializer/mongodb-serializer.js.map +1 -0
  143. package/dist/esm/serializer/redis-serializer/_module.js +2 -0
  144. package/dist/esm/serializer/redis-serializer/_module.js.map +1 -0
  145. package/dist/esm/serializer/redis-serializer/redis-serializer.js +33 -0
  146. package/dist/esm/serializer/redis-serializer/redis-serializer.js.map +1 -0
  147. package/dist/esm/serializer/sql-serializer/_module.js +2 -0
  148. package/dist/esm/serializer/sql-serializer/_module.js.map +1 -0
  149. package/dist/esm/serializer/sql-serializer/sql-serializer.js +33 -0
  150. package/dist/esm/serializer/sql-serializer/sql-serializer.js.map +1 -0
  151. package/dist/esm/serializer/super-json-serializer/_module.js +2 -0
  152. package/dist/esm/serializer/super-json-serializer/_module.js.map +1 -0
  153. package/dist/esm/serializer/super-json-serializer/super-json-serializer.js +277 -0
  154. package/dist/esm/serializer/super-json-serializer/super-json-serializer.js.map +1 -0
  155. package/dist/esm/storage/_module.js +7 -0
  156. package/dist/esm/storage/_module.js.map +1 -0
  157. package/dist/esm/storage/_shared/test-utilities/_module.js +2 -0
  158. package/dist/esm/storage/_shared/test-utilities/_module.js.map +1 -0
  159. package/dist/esm/storage/_shared/test-utilities/storage-api.test-suite.js +569 -0
  160. package/dist/esm/storage/_shared/test-utilities/storage-api.test-suite.js.map +1 -0
  161. package/dist/esm/storage/_shared/test-utilities/storage-namespace.test-suite.js +238 -0
  162. package/dist/esm/storage/_shared/test-utilities/storage-namespace.test-suite.js.map +1 -0
  163. package/dist/esm/storage/_shared/test-utilities/storage-value.test-suite.js +4169 -0
  164. package/dist/esm/storage/_shared/test-utilities/storage-value.test-suite.js.map +1 -0
  165. package/dist/esm/storage/_shared/test-utilities/storage.test-suite.js +9 -0
  166. package/dist/esm/storage/_shared/test-utilities/storage.test-suite.js.map +1 -0
  167. package/dist/esm/storage/memory-storage-adapter/_module.js +2 -0
  168. package/dist/esm/storage/memory-storage-adapter/_module.js.map +1 -0
  169. package/dist/esm/storage/memory-storage-adapter/memory-storage-adapter.js +58 -0
  170. package/dist/esm/storage/memory-storage-adapter/memory-storage-adapter.js.map +1 -0
  171. package/dist/esm/storage/mongodb-storage-adapter/_module.js +2 -0
  172. package/dist/esm/storage/mongodb-storage-adapter/_module.js.map +1 -0
  173. package/dist/esm/storage/mongodb-storage-adapter/mongodb-storage-adapter.js +266 -0
  174. package/dist/esm/storage/mongodb-storage-adapter/mongodb-storage-adapter.js.map +1 -0
  175. package/dist/esm/storage/namespace-storage-adapter.js +62 -0
  176. package/dist/esm/storage/namespace-storage-adapter.js.map +1 -0
  177. package/dist/esm/storage/redis-storage-adapter/_module.js +2 -0
  178. package/dist/esm/storage/redis-storage-adapter/_module.js.map +1 -0
  179. package/dist/esm/storage/redis-storage-adapter/redis-storage-adapter.js +244 -0
  180. package/dist/esm/storage/redis-storage-adapter/redis-storage-adapter.js.map +1 -0
  181. package/dist/esm/storage/sqlite/_module.js +3 -0
  182. package/dist/esm/storage/sqlite/_module.js.map +1 -0
  183. package/dist/esm/storage/sqlite/_shared/_module.js +2 -0
  184. package/dist/esm/storage/sqlite/_shared/_module.js.map +1 -0
  185. package/dist/esm/storage/sqlite/_shared/base-sqlite-storage-adapter.js +220 -0
  186. package/dist/esm/storage/sqlite/_shared/base-sqlite-storage-adapter.js.map +1 -0
  187. package/dist/esm/storage/sqlite/libsql-storage-adapter/_module.js +2 -0
  188. package/dist/esm/storage/sqlite/libsql-storage-adapter/_module.js.map +1 -0
  189. package/dist/esm/storage/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +49 -0
  190. package/dist/esm/storage/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +1 -0
  191. package/dist/esm/storage/sqlite/sqlite-storage-adapter/_module.js +2 -0
  192. package/dist/esm/storage/sqlite/sqlite-storage-adapter/_module.js.map +1 -0
  193. package/dist/esm/storage/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +48 -0
  194. package/dist/esm/storage/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +1 -0
  195. package/dist/esm/storage/storage.js +287 -0
  196. package/dist/esm/storage/storage.js.map +1 -0
  197. package/dist/esm/storage/usable-storage-adapter.js +98 -0
  198. package/dist/esm/storage/usable-storage-adapter.js.map +1 -0
  199. package/dist/types/_module.d.ts +3 -1
  200. package/dist/types/_shared/kysely/_module.d.ts +1 -0
  201. package/dist/types/_shared/kysely/kysely-table-name-transformer-plugin.d.ts +13 -0
  202. package/dist/types/_shared/redis/_module.d.ts +3 -0
  203. package/dist/types/_shared/redis/clear-iterable.d.ts +13 -0
  204. package/dist/types/_shared/redis/escape-redis-chars.d.ts +7 -0
  205. package/dist/types/_shared/redis/is-redis-type-error.d.ts +7 -0
  206. package/dist/types/_shared/types.d.ts +15 -2
  207. package/dist/types/_shared/utilities.d.ts +11 -1
  208. package/dist/types/collection/_shared.d.ts +1 -1
  209. package/dist/types/collection/async-iterable-collection/_shared/async-cross-join-iterable.d.ts +2 -1
  210. package/dist/types/collection/async-iterable-collection/_shared/async-group-by-iterable.d.ts +1 -1
  211. package/dist/types/collection/async-iterable-collection/async-iterable-collection.d.ts +2 -2
  212. package/dist/types/collection/iterable-collection/_shared/cross-join-iterable.d.ts +1 -1
  213. package/dist/types/collection/iterable-collection/_shared/group-by-iterable.d.ts +1 -1
  214. package/dist/types/collection/iterable-collection/iterable-collection.d.ts +1 -1
  215. package/dist/types/collection/list-collection/list-collection.d.ts +1 -1
  216. package/dist/types/contracts/_module.d.ts +2 -0
  217. package/dist/types/contracts/collection/_module.d.ts +0 -3
  218. package/dist/types/contracts/collection/_shared.d.ts +1 -1
  219. package/dist/types/contracts/collection/async-collection.contract.d.ts +3 -3
  220. package/dist/types/contracts/collection/collection.contract.d.ts +3 -3
  221. package/dist/types/contracts/serializer/_module.d.ts +1 -0
  222. package/dist/types/contracts/serializer/serializer.contract.d.ts +37 -0
  223. package/dist/types/contracts/storage/_module.d.ts +3 -0
  224. package/dist/types/contracts/storage/_shared.d.ts +27 -0
  225. package/dist/types/contracts/storage/storage-adapter.contract.d.ts +72 -0
  226. package/dist/types/contracts/storage/storage.contract.d.ts +147 -0
  227. package/dist/types/serializer/_module.d.ts +5 -0
  228. package/dist/types/serializer/_shared/test-utilities/_module.d.ts +1 -0
  229. package/dist/types/serializer/_shared/test-utilities/serializer.test-suite.d.ts +18 -0
  230. package/dist/types/serializer/mongodb-serializer/_module.d.ts +1 -0
  231. package/dist/types/serializer/mongodb-serializer/mongodb-serializer.d.ts +13 -0
  232. package/dist/types/serializer/redis-serializer/_module.d.ts +1 -0
  233. package/dist/types/serializer/redis-serializer/redis-serializer.d.ts +13 -0
  234. package/dist/types/serializer/sql-serializer/_module.d.ts +1 -0
  235. package/dist/types/serializer/sql-serializer/sql-serializer.d.ts +13 -0
  236. package/dist/types/serializer/super-json-serializer/_module.d.ts +1 -0
  237. package/dist/types/serializer/super-json-serializer/super-json-serializer.d.ts +37 -0
  238. package/dist/types/storage/_module.d.ts +6 -0
  239. package/dist/types/storage/_shared/test-utilities/_module.d.ts +1 -0
  240. package/dist/types/storage/_shared/test-utilities/storage-api.test-suite.d.ts +20 -0
  241. package/dist/types/storage/_shared/test-utilities/storage-namespace.test-suite.d.ts +20 -0
  242. package/dist/types/storage/_shared/test-utilities/storage-value.test-suite.d.ts +20 -0
  243. package/dist/types/storage/_shared/test-utilities/storage.test-suite.d.ts +20 -0
  244. package/dist/types/storage/memory-storage-adapter/_module.d.ts +1 -0
  245. package/dist/types/storage/memory-storage-adapter/memory-storage-adapter.d.ts +16 -0
  246. package/dist/types/storage/mongodb-storage-adapter/_module.d.ts +1 -0
  247. package/dist/types/storage/mongodb-storage-adapter/mongodb-storage-adapter.d.ts +46 -0
  248. package/dist/types/storage/namespace-storage-adapter.d.ts +30 -0
  249. package/dist/types/storage/redis-storage-adapter/_module.d.ts +1 -0
  250. package/dist/types/storage/redis-storage-adapter/redis-storage-adapter.d.ts +41 -0
  251. package/dist/types/storage/sqlite/_module.d.ts +2 -0
  252. package/dist/types/storage/sqlite/_shared/_module.d.ts +1 -0
  253. package/dist/types/storage/sqlite/_shared/base-sqlite-storage-adapter.d.ts +42 -0
  254. package/dist/types/storage/sqlite/libsql-storage-adapter/_module.d.ts +1 -0
  255. package/dist/types/storage/sqlite/libsql-storage-adapter/libsql-storage-adapter.d.ts +30 -0
  256. package/dist/types/storage/sqlite/sqlite-storage-adapter/_module.d.ts +1 -0
  257. package/dist/types/storage/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.d.ts +30 -0
  258. package/dist/types/storage/storage.d.ts +36 -0
  259. package/dist/types/storage/usable-storage-adapter.d.ts +22 -0
  260. package/package.json +41 -6
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @module Serializer
3
+ */
4
+ import { type TestAPI, type ExpectStatic } from "vitest";
5
+ import { type ISerializer } from "../../../contracts/serializer/_module";
6
+ import { type Promisable } from "../../../_shared/types";
7
+ /**
8
+ * @group Utilities
9
+ */
10
+ export type SerializerSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ createAdapter: () => Promisable<ISerializer>;
14
+ };
15
+ /**
16
+ * @group Utilities
17
+ */
18
+ export declare function serializerTestSuite(settings: SerializerSuiteSettings): void;
@@ -0,0 +1 @@
1
+ export * from "../../serializer/mongodb-serializer/mongodb-serializer";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Serializer
3
+ */
4
+ import { type ISerializer } from "../../contracts/serializer/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class MongodbSerializer implements ISerializer<string | number> {
9
+ private readonly serializer;
10
+ constructor(serializer: ISerializer<string>);
11
+ serialize<TValue>(value: TValue): Promise<string | number>;
12
+ deserialize<TValue>(value: string | number): Promise<TValue>;
13
+ }
@@ -0,0 +1 @@
1
+ export * from "../../serializer/redis-serializer/redis-serializer";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Serializer
3
+ */
4
+ import { type ISerializer } from "../../contracts/serializer/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class RedisSerializer implements ISerializer<string> {
9
+ private readonly serializer;
10
+ constructor(serializer: ISerializer<string>);
11
+ serialize<TValue>(value: TValue): Promise<string>;
12
+ deserialize<TValue>(value: string): Promise<TValue>;
13
+ }
@@ -0,0 +1 @@
1
+ export * from "../../serializer/sql-serializer/sql-serializer";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Serializer
3
+ */
4
+ import { type ISerializer } from "../../contracts/serializer/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class SqlSerializer implements ISerializer<string> {
9
+ private readonly serializer;
10
+ constructor(serializer: ISerializer<string>);
11
+ serialize<TValue>(value: TValue): Promise<string>;
12
+ deserialize<TValue>(value: string): Promise<TValue>;
13
+ }
@@ -0,0 +1 @@
1
+ export * from "../../serializer/super-json-serializer/super-json-serializer";
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @module Serializer
3
+ */
4
+ import { type ISerializer } from "../../contracts/serializer/_module";
5
+ import type { SuperJSON } from "superjson";
6
+ /**
7
+ * @group Adapters
8
+ */
9
+ export type SuperJsonSerializerSettings = {
10
+ dedupe?: boolean;
11
+ registerClass?: (registerClass: SuperJSON["registerClass"]) => void;
12
+ registerSymbol?: (registerClass: SuperJSON["registerSymbol"]) => void;
13
+ registerCustom?: (registerClass: SuperJSON["registerCustom"]) => void;
14
+ };
15
+ /**
16
+ * @group Adapters
17
+ */
18
+ export declare class SuperJsonSerializer implements ISerializer<string> {
19
+ private superJson;
20
+ private dedupe;
21
+ private registerClass;
22
+ private registerSymbol;
23
+ private registerCustom;
24
+ constructor({ dedupe, registerClass, registerSymbol, registerCustom, }?: SuperJsonSerializerSettings);
25
+ private static registerBuffer;
26
+ private static registerUint8Array;
27
+ private static registerInt8Array;
28
+ private static registerUint16Array;
29
+ private static registerInt16Array;
30
+ private static registerUint32Array;
31
+ private static registerInt32Array;
32
+ private static registerFloat32Array;
33
+ private static registerFloat64Array;
34
+ private init;
35
+ serialize<TValue>(value: TValue): Promise<string>;
36
+ deserialize<TValue>(value: string): Promise<TValue>;
37
+ }
@@ -0,0 +1,6 @@
1
+ export * from "../storage/storage";
2
+ export * from "../storage/_shared/test-utilities/_module";
3
+ export * from "../storage/memory-storage-adapter/_module";
4
+ export * from "../storage/mongodb-storage-adapter/_module";
5
+ export * from "../storage/redis-storage-adapter/_module";
6
+ export * from "../storage/sqlite/_module";
@@ -0,0 +1 @@
1
+ export * from "../../../storage/_shared/test-utilities/storage.test-suite";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
+ import { type IStorageAdapter } from "../../../contracts/storage/_module";
6
+ import { type Promisable } from "../../../_shared/types";
7
+ /**
8
+ * @internal
9
+ */
10
+ export type StorageApiTestSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ describe: SuiteAPI;
14
+ beforeEach: typeof beforeEach;
15
+ createAdapter: () => Promisable<IStorageAdapter<unknown>>;
16
+ };
17
+ /**
18
+ * @internal
19
+ */
20
+ export declare function storageApiTestSuite(settings: StorageApiTestSuiteSettings): void;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type TestAPI, type ExpectStatic, type beforeEach, type SuiteAPI } from "vitest";
5
+ import { type IStorageAdapter } from "../../../contracts/storage/_module";
6
+ import { type Promisable } from "../../../_shared/types";
7
+ /**
8
+ * @internal
9
+ */
10
+ export type StorageNamespaceTestSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ describe: SuiteAPI;
14
+ beforeEach: typeof beforeEach;
15
+ createAdapter: () => Promisable<IStorageAdapter<unknown>>;
16
+ };
17
+ /**
18
+ * @internal
19
+ */
20
+ export declare function storageNamespaceTestSuite(settings: StorageNamespaceTestSuiteSettings): void;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
+ import { type IStorageAdapter } from "../../../contracts/storage/_module";
6
+ import { type Promisable } from "../../../_shared/types";
7
+ /**
8
+ * @internal
9
+ */
10
+ export type StorageValueTestSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ describe: SuiteAPI;
14
+ beforeEach: typeof beforeEach;
15
+ createAdapter: () => Promisable<IStorageAdapter<unknown>>;
16
+ };
17
+ /**
18
+ * @internal
19
+ */
20
+ export declare function storageValueTestSuite(settings: StorageValueTestSuiteSettings): void;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
+ import { type IStorageAdapter } from "../../../contracts/storage/_module";
6
+ import { type Promisable } from "../../../_shared/types";
7
+ /**
8
+ * @group Utilities
9
+ */
10
+ export type StorageTestSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ describe: SuiteAPI;
14
+ beforeEach: typeof beforeEach;
15
+ createAdapter: () => Promisable<IStorageAdapter<unknown>>;
16
+ };
17
+ /**
18
+ * @group Utilities
19
+ */
20
+ export declare function storageTestSuite(settings: StorageTestSuiteSettings): void;
@@ -0,0 +1 @@
1
+ export * from "../../storage/memory-storage-adapter/memory-storage-adapter";
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type IStorageAdapter } from "../../contracts/storage/storage-adapter.contract";
5
+ /**
6
+ * @group Adapters
7
+ */
8
+ export declare class MemoryStorageAdapter<TType> implements IStorageAdapter<TType> {
9
+ private readonly map;
10
+ constructor(map?: Map<string, TType>);
11
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
12
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
13
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
14
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
15
+ clear(prefix: string): Promise<void>;
16
+ }
@@ -0,0 +1 @@
1
+ export { MongodbStorageAdapter, type MongodbStorageAdapterSettings, } from "../../storage/mongodb-storage-adapter/mongodb-storage-adapter";
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type ISerializer } from "../../contracts/serializer/_module";
5
+ import type { GetOrAddResult } from "../../_shared/types";
6
+ import { type IInitizable } from "../../_shared/types";
7
+ import { type IStorageAdapter } from "../../contracts/storage/_module";
8
+ import { type Collection, ObjectId } from "mongodb";
9
+ /**
10
+ * @group Adapters
11
+ */
12
+ export type MongodbStorageDocument = {
13
+ _id: ObjectId;
14
+ key: string;
15
+ value: number | string;
16
+ };
17
+ /**
18
+ * @group Adapters
19
+ */
20
+ export type MongodbStorageAdapterSettings = {
21
+ serializer?: ISerializer<string>;
22
+ };
23
+ /**
24
+ * @group Adapters
25
+ */
26
+ export declare class MongodbStorageAdapter<TType> implements IStorageAdapter<TType>, IInitizable {
27
+ private readonly collection;
28
+ private static isMongodbIncrementError;
29
+ private static isMongoDuplicateError;
30
+ private serializer;
31
+ constructor(collection: Collection<MongodbStorageDocument>, { serializer, }?: MongodbStorageAdapterSettings);
32
+ init(): Promise<void>;
33
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
34
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
35
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
36
+ private updateOne;
37
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
38
+ private putOne;
39
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
40
+ private removeOne;
41
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
42
+ getAndRemove<TValue extends TType>(key: string): Promise<TValue | null>;
43
+ getOrAdd<TValue extends TType, TExtended extends TType>(key: string, valueToAdd: TExtended): Promise<GetOrAddResult<TValue | TExtended>>;
44
+ increment(key: string, value: number): Promise<boolean>;
45
+ clear(prefix: string): Promise<void>;
46
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import type { AsyncLazyable } from "../_shared/types";
5
+ import { type IStorageAdapter } from "../contracts/storage/_module";
6
+ import type { UsableStorageAdapter } from "../storage/usable-storage-adapter";
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare class NamespaceStorageAdapter<TType> implements Required<Omit<IStorageAdapter<TType>, "clear" | "getOrAdd">> {
11
+ private readonly usableStorageAdapter;
12
+ private readonly namespace;
13
+ constructor(usableStorageAdapter: UsableStorageAdapter<TType>, namespace: string);
14
+ private withNamespace;
15
+ private withNamespaceArray;
16
+ private withNamespaceObject;
17
+ private withoutNamespace;
18
+ private withoutNamespaceObject;
19
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
20
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
21
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
22
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
23
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
24
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
25
+ getAndRemove<TValue extends TType>(key: string): Promise<TValue | null>;
26
+ getOrAdd<TValue extends TType, TExtended extends TType>(key: string, valueToAdd: AsyncLazyable<TExtended>): Promise<TValue | TExtended>;
27
+ increment(key: string, value: number): Promise<boolean>;
28
+ decrement(key: string, value: number): Promise<boolean>;
29
+ clear(): Promise<void>;
30
+ }
@@ -0,0 +1 @@
1
+ export * from "../../storage/redis-storage-adapter/redis-storage-adapter";
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type ISerializer } from "../../contracts/serializer/_module";
5
+ import { type IStorageAdapter } from "../../contracts/storage/_module";
6
+ import type Redis from "ioredis";
7
+ import { type Result } from "ioredis";
8
+ import type { GetOrAddResult } from "../../_shared/types";
9
+ declare module "ioredis" {
10
+ interface RedisCommander<Context> {
11
+ daiso_storage_increment(key: string, number: string): Result<number, Context>;
12
+ daiso_storage_put(key: string, value: string): Result<string, Context>;
13
+ daiso_storage_getOrAdd(key: string, valueToAdd: string): Result<string, Context>;
14
+ }
15
+ }
16
+ /**
17
+ * @group Adapters
18
+ */
19
+ export type RedisStorageAdapterSettings = {
20
+ serializer?: ISerializer<string>;
21
+ };
22
+ /**
23
+ * @group Adapters
24
+ */
25
+ export declare class RedisStorageAdapter<TType> implements IStorageAdapter<TType> {
26
+ private readonly client;
27
+ private serializer;
28
+ constructor(client: Redis, { serializer, }?: RedisStorageAdapterSettings);
29
+ private initIncrementCommand;
30
+ private initPutCommand;
31
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
32
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
33
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
34
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
35
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
36
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
37
+ getAndRemove<TValue extends TType>(key: string): Promise<TValue | null>;
38
+ getOrAdd<TValue extends TType, TExtended extends TType>(key: string, valueToAdd: TExtended): Promise<GetOrAddResult<TValue | TExtended>>;
39
+ increment(key: string, value: number): Promise<boolean>;
40
+ clear(prefix: string): Promise<void>;
41
+ }
@@ -0,0 +1,2 @@
1
+ export * from "../../storage/sqlite/sqlite-storage-adapter/_module";
2
+ export * from "../../storage/sqlite/libsql-storage-adapter/_module";
@@ -0,0 +1 @@
1
+ export * from "../../../storage/sqlite/_shared/base-sqlite-storage-adapter";
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type IStorageAdapter } from "../../../contracts/storage/storage-adapter.contract";
5
+ import { type Generated, type Kysely } from "kysely";
6
+ import { type ISerializer } from "../../../contracts/serializer/_module";
7
+ import type { GetOrAddResult } from "../../../_shared/types";
8
+ import { type IInitizable } from "../../../_shared/types";
9
+ /**
10
+ * @internal
11
+ */
12
+ type BaseSqliteStorageTable = {
13
+ key: string;
14
+ value: string;
15
+ hasBeenUpdated: Generated<1 | 0>;
16
+ };
17
+ /**
18
+ * @internal
19
+ */
20
+ type BaseSqliteTables = {
21
+ storage: BaseSqliteStorageTable;
22
+ };
23
+ /**
24
+ * @internal
25
+ */
26
+ export declare class BaseSqliteStorageAdapter<TType> implements IStorageAdapter<TType>, IInitizable {
27
+ private readonly db;
28
+ private readonly serializer;
29
+ constructor(db: Kysely<BaseSqliteTables>, serializer: ISerializer<string>);
30
+ init(): Promise<void>;
31
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
32
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
33
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
34
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
35
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
36
+ getAndRemove<TValue extends TType>(key: string): Promise<TValue | null>;
37
+ getOrAdd<TValue extends TType, TExtended extends TType>(key: string, valueToAdd: TExtended): Promise<GetOrAddResult<TValue | TExtended>>;
38
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
39
+ increment(key: string, value: number): Promise<boolean>;
40
+ clear(prefix: string): Promise<void>;
41
+ }
42
+ export {};
@@ -0,0 +1 @@
1
+ export * from "../../../storage/sqlite/libsql-storage-adapter/libsql-storage-adapter";
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type ISerializer } from "../../../_module";
5
+ import { type IStorageAdapter } from "../../../contracts/storage/_module";
6
+ import { type IInitizable } from "../../../_shared/types";
7
+ import type { Client } from "@libsql/client";
8
+ /**
9
+ * @group Adapters
10
+ */
11
+ export type LibsqlStorageAdapterSettings = {
12
+ tableName?: string;
13
+ serializer?: ISerializer<string>;
14
+ };
15
+ /**
16
+ * @group Adapters
17
+ */
18
+ export declare class LibsqlStorageAdapter<TType> implements IStorageAdapter<TType>, IInitizable {
19
+ private readonly storageAdapter;
20
+ constructor(client: Client, { tableName, serializer, }?: LibsqlStorageAdapterSettings);
21
+ init(): Promise<void>;
22
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
23
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
24
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
25
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
26
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
27
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
28
+ increment(key: string, value: number): Promise<boolean>;
29
+ clear(prefix: string): Promise<void>;
30
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../storage/sqlite/sqlite-storage-adapter/sqlite-storage-adapter";
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type ISerializer } from "../../../_module";
5
+ import { type IStorageAdapter } from "../../../contracts/storage/_module";
6
+ import { type Database } from "better-sqlite3";
7
+ import { type IInitizable } from "../../../_shared/types";
8
+ /**
9
+ * @group Adapters
10
+ */
11
+ export type SqliteStorageAdapterSettings = {
12
+ tableName?: string;
13
+ serializer?: ISerializer<string>;
14
+ };
15
+ /**
16
+ * @group Adapters
17
+ */
18
+ export declare class SqliteStorageAdapter<TType> implements IStorageAdapter<TType>, IInitizable {
19
+ private readonly storageAdapter;
20
+ constructor(database: Database, { tableName, serializer, }?: SqliteStorageAdapterSettings);
21
+ init(): Promise<void>;
22
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
23
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
24
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
25
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
26
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
27
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
28
+ increment(key: string, value: number): Promise<boolean>;
29
+ clear(prefix: string): Promise<void>;
30
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import { type IStorageAdapter } from "../contracts/storage/_module";
5
+ import { type StorageValue, type IStorage } from "../contracts/storage/_module";
6
+ import { type AsyncLazyable, type GetOrAddValue } from "../_shared/types";
7
+ export type StorageSettings = {
8
+ namespace?: string;
9
+ };
10
+ export declare class Storage<TType> implements IStorage<TType> {
11
+ private readonly storageAdapter;
12
+ constructor(storageAdapter: IStorageAdapter<TType>, { namespace }?: StorageSettings);
13
+ [Symbol.asyncDispose](): Promise<void>;
14
+ exists(key: string): Promise<boolean>;
15
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
16
+ missing(key: string): Promise<boolean>;
17
+ missingMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
18
+ get<TValue extends TType>(key: string): Promise<TValue | null>;
19
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
20
+ getOr<TValue extends TType, TExtended extends TType>(key: string, defaultValue: AsyncLazyable<TExtended>): Promise<TValue | TExtended>;
21
+ getOrMany<TValues extends TType, TExtended extends TType, TKeys extends string>(keysWithDefaults: Record<TKeys, AsyncLazyable<TExtended>>): Promise<Record<TKeys, TValues | TExtended>>;
22
+ getOrFail<TValue extends TType>(key: string): Promise<TValue>;
23
+ add<TValue extends TType>(key: string, value: StorageValue<TValue>): Promise<boolean>;
24
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, StorageValue<TValues>>): Promise<Record<TKeys, boolean>>;
25
+ update<TValue extends TType>(key: string, value: TValue): Promise<boolean>;
26
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
27
+ put<TValue extends TType>(key: string, value: StorageValue<TValue>): Promise<boolean>;
28
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, StorageValue<TValues>>): Promise<Record<TKeys, boolean>>;
29
+ remove(key: string): Promise<boolean>;
30
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
31
+ getAndRemove<TValue extends TType>(key: string): Promise<TValue | null>;
32
+ getOrAdd<TValue extends TType, TExtended extends TType>(key: string, valueToAdd: AsyncLazyable<StorageValue<GetOrAddValue<TExtended>>>): Promise<TValue | TExtended>;
33
+ increment(key: string, value?: number): Promise<boolean>;
34
+ decrement(key: string, value?: number): Promise<boolean>;
35
+ clear(): Promise<void>;
36
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import type { AsyncLazyable, GetOrAddResult } from "../_shared/types";
5
+ import { type IStorageAdapter } from "../contracts/storage/_module";
6
+ /**
7
+ * @internal
8
+ */
9
+ export declare class UsableStorageAdapter<TType> implements Required<Omit<IStorageAdapter<TType>, "getOrAdd">> {
10
+ private readonly storageAdapter;
11
+ constructor(storageAdapter: IStorageAdapter<TType>);
12
+ existsMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
13
+ getMany<TValues extends TType, TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, TValues | null>>;
14
+ addMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
15
+ updateMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
16
+ putMany<TValues extends TType, TKeys extends string>(values: Record<TKeys, TValues>): Promise<Record<TKeys, boolean>>;
17
+ removeMany<TKeys extends string>(keys: TKeys[]): Promise<Record<TKeys, boolean>>;
18
+ increment(key: string, value: number): Promise<boolean>;
19
+ getAndRemove<TValue extends TType>(key: string): Promise<TValue | null>;
20
+ getOrAdd<TValue extends TType, TExtended extends TType>(key: string, valueToAdd: AsyncLazyable<TExtended>): Promise<GetOrAddResult<TValue | TExtended>>;
21
+ clear(prefix: string): Promise<void>;
22
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@daiso-tech/core",
3
3
  "private": false,
4
- "version": "0.2.0",
4
+ "version": "0.3.0",
5
5
  "author": "Yousif Abdulkarim",
6
6
  "license": "Apache-2.0",
7
7
  "main": "./dist/cjs/_module.js",
@@ -13,12 +13,13 @@
13
13
  "url": "https://github.com/yousif-khalil-abdulkarim/daiso-core.git"
14
14
  },
15
15
  "keywords": [
16
- "Collections",
17
- "Arrays",
18
- "Iterables",
16
+ "Collection",
17
+ "Array",
19
18
  "Iterable",
20
- "Async iterables",
21
- "AsyncIterable"
19
+ "AsyncIterable",
20
+ "Cache",
21
+ "Mongodb",
22
+ "Redis"
22
23
  ],
23
24
  "files": [
24
25
  "./dist"
@@ -38,9 +39,14 @@
38
39
  },
39
40
  "devDependencies": {
40
41
  "@changesets/cli": "^2.27.7",
42
+ "@libsql/client": "^0.14.0",
43
+ "@testcontainers/mongodb": "^10.13.2",
44
+ "@testcontainers/redis": "^10.13.2",
45
+ "@types/better-sqlite3": "^7.6.11",
41
46
  "@typescript-eslint/eslint-plugin": "^8.1.0",
42
47
  "@typescript-eslint/parser": "^8.1.0",
43
48
  "@vitest/eslint-plugin": "^1.0.3",
49
+ "better-sqlite3": "^11.5.0",
44
50
  "eslint": "^8.57.0",
45
51
  "eslint-config-prettier": "^9.1.0",
46
52
  "eslint-plugin-no-relative-import-paths": "^1.5.5",
@@ -49,6 +55,8 @@
49
55
  "eslint-plugin-tsdoc": "^0.3.0",
50
56
  "eslint-plugin-typescript-enum": "^2.1.0",
51
57
  "eslint-plugin-vitest": "^0.5.4",
58
+ "ioredis": "^5.4.1",
59
+ "mongodb": "^6.10.0",
52
60
  "rimraf": "^6.0.1",
53
61
  "tsc-alias": "^1.8.10",
54
62
  "typedoc": "^0.26.5",
@@ -57,5 +65,32 @@
57
65
  "typescript": "^5.5.4",
58
66
  "vite-tsconfig-paths": "^4.3.2",
59
67
  "vitest": "^2.0.5"
68
+ },
69
+ "peerDependencies": {
70
+ "@libsql/client": "^0.4.1",
71
+ "better-sqlite3": "^11.5.0",
72
+ "ioredis": "^5.4.1",
73
+ "mongodb": "^6.10.0"
74
+ },
75
+ "peerDependenciesMeta": {
76
+ "mongodb": {
77
+ "optional": true
78
+ },
79
+ "ioredis": {
80
+ "optional": true
81
+ },
82
+ "better-sqlite3": {
83
+ "optional": true
84
+ },
85
+ "@libsql/client": {
86
+ "optional": true
87
+ }
88
+ },
89
+ "dependencies": {
90
+ "@libsql/kysely-libsql": "^0.4.1",
91
+ "escape-string-regexp": "^5.0.0",
92
+ "kysely": "^0.27.4",
93
+ "superjson": "^2.2.1",
94
+ "uuid": "^11.0.2"
60
95
  }
61
96
  }