@daiso-tech/core 0.48.5 → 0.49.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 (541) hide show
  1. package/dist/backoff-policies/_shared.d.ts +0 -3
  2. package/dist/backoff-policies/_shared.js.map +1 -1
  3. package/dist/backoff-policies/constant-backoff/constant-backoff.d.ts +0 -1
  4. package/dist/backoff-policies/constant-backoff/constant-backoff.js.map +1 -1
  5. package/dist/backoff-policies/exponential-backoff/exponential-backoff.d.ts +0 -1
  6. package/dist/backoff-policies/exponential-backoff/exponential-backoff.js.map +1 -1
  7. package/dist/backoff-policies/linear-backoff/linear-backoff.d.ts +0 -1
  8. package/dist/backoff-policies/linear-backoff/linear-backoff.js.map +1 -1
  9. package/dist/backoff-policies/polynomial-backoff/polynomial-backoff.d.ts +0 -1
  10. package/dist/backoff-policies/polynomial-backoff/polynomial-backoff.js.map +1 -1
  11. package/dist/cache/contracts/cache-adapter.contract.d.ts +6 -6
  12. package/dist/cache/contracts/cache.contract.d.ts +16 -9
  13. package/dist/cache/contracts/cache.errors.d.ts +1 -4
  14. package/dist/cache/contracts/cache.errors.js +1 -3
  15. package/dist/cache/contracts/cache.errors.js.map +1 -1
  16. package/dist/cache/contracts/cache.events.d.ts +11 -3
  17. package/dist/cache/contracts/cache.events.js +1 -1
  18. package/dist/cache/contracts/cache.events.js.map +1 -1
  19. package/dist/cache/contracts/database-cache-adapter.contract.d.ts +0 -1
  20. package/dist/cache/contracts/types.d.ts +0 -2
  21. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +1 -2
  22. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  23. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
  24. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +17 -15
  25. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  26. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +0 -2
  27. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  28. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  29. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +1 -1
  30. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +0 -1
  31. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  32. package/dist/cache/implementations/derivables/cache/cache.d.ts +2 -5
  33. package/dist/cache/implementations/derivables/cache/cache.js +10 -2
  34. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  35. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js +1 -1
  36. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js.map +1 -1
  37. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +0 -2
  38. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  39. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.d.ts +0 -1
  40. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js +6 -2
  41. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js.map +1 -1
  42. package/dist/cache/implementations/test-utilities/cache.test-suite.d.ts +0 -1
  43. package/dist/cache/implementations/test-utilities/cache.test-suite.js +1772 -1735
  44. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  45. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +1 -1
  46. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -1
  47. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.d.ts +0 -5
  48. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.js +0 -1
  49. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.js.map +1 -1
  50. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.d.ts +0 -2
  51. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.js +0 -1
  52. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.js.map +1 -1
  53. package/dist/circuit-breaker/contracts/circuit-breaker.contract.d.ts +3 -4
  54. package/dist/circuit-breaker/contracts/circuit-breaker.contract.js +2 -3
  55. package/dist/circuit-breaker/contracts/circuit-breaker.contract.js.map +1 -1
  56. package/dist/circuit-breaker/contracts/circuit-breaker.errors.d.ts +0 -3
  57. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js +1 -3
  58. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js.map +1 -1
  59. package/dist/circuit-breaker/contracts/circuit-breaker.events.d.ts +0 -2
  60. package/dist/circuit-breaker/contracts/circuit-breaker.events.js +0 -1
  61. package/dist/circuit-breaker/contracts/circuit-breaker.events.js.map +1 -1
  62. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.d.ts +2 -2
  63. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js +2 -2
  64. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js.map +1 -1
  65. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.d.ts +2 -3
  66. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.js +8 -10
  67. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.js.map +1 -1
  68. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.d.ts +2 -2
  69. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js +2 -2
  70. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js.map +1 -1
  71. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.d.ts +2 -0
  72. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.js +2 -0
  73. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.js.map +1 -1
  74. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.d.ts +2 -0
  75. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.js +2 -0
  76. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.js.map +1 -1
  77. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +2 -4
  78. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -1
  79. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.d.ts +1 -1
  80. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js +2 -2
  81. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js.map +1 -1
  82. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.d.ts +0 -2
  83. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js.map +1 -1
  84. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.d.ts +0 -2
  85. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js.map +1 -1
  86. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.d.ts +0 -1
  87. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.js +1 -1
  88. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.js.map +1 -1
  89. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.d.ts +0 -1
  90. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js +1 -1
  91. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js.map +1 -1
  92. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.d.ts +0 -1
  93. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js +1 -1
  94. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js.map +1 -1
  95. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.d.ts +0 -1
  96. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js +1 -1
  97. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js.map +1 -1
  98. package/dist/codec/contracts/_module-exports.d.ts +3 -0
  99. package/dist/codec/contracts/_module-exports.js +2 -0
  100. package/dist/codec/contracts/_module-exports.js.map +1 -0
  101. package/dist/codec/contracts/_module.d.ts +4 -0
  102. package/dist/codec/contracts/_module.js +2 -0
  103. package/dist/codec/contracts/_module.js.map +1 -0
  104. package/dist/codec/contracts/codec.contract.d.ts +12 -0
  105. package/dist/codec/contracts/codec.contract.js +6 -0
  106. package/dist/codec/contracts/codec.contract.js.map +1 -0
  107. package/dist/codec/contracts/codec.errors.d.ts +51 -0
  108. package/dist/codec/contracts/codec.errors.js +64 -0
  109. package/dist/codec/contracts/codec.errors.js.map +1 -0
  110. package/dist/codec/contracts/decoder.contract.d.ts +12 -0
  111. package/dist/codec/contracts/decoder.contract.js +6 -0
  112. package/dist/codec/contracts/decoder.contract.js.map +1 -0
  113. package/dist/codec/contracts/encoder.contract.d.ts +12 -0
  114. package/dist/codec/contracts/encoder.contract.js +6 -0
  115. package/dist/codec/contracts/encoder.contract.js.map +1 -0
  116. package/dist/codec/implementations/base-64-codec/_module-exports.d.ts +1 -0
  117. package/dist/codec/implementations/base-64-codec/_module-exports.js +2 -0
  118. package/dist/codec/implementations/base-64-codec/_module-exports.js.map +1 -0
  119. package/dist/codec/implementations/base-64-codec/_module.d.ts +1 -0
  120. package/dist/codec/implementations/base-64-codec/_module.js +2 -0
  121. package/dist/codec/implementations/base-64-codec/_module.js.map +1 -0
  122. package/dist/codec/implementations/base-64-codec/base-64-codec.d.ts +12 -0
  123. package/dist/codec/implementations/base-64-codec/base-64-codec.js +27 -0
  124. package/dist/codec/implementations/base-64-codec/base-64-codec.js.map +1 -0
  125. package/dist/collection/contracts/_shared/compartor.type.d.ts +0 -1
  126. package/dist/collection/contracts/_shared/cross-join-result.type.d.ts +0 -1
  127. package/dist/collection/contracts/_shared/ensure-map.type.d.ts +0 -1
  128. package/dist/collection/contracts/_shared/ensure-record.type.d.ts +0 -1
  129. package/dist/collection/contracts/_shared/foreach.type.d.ts +0 -2
  130. package/dist/collection/contracts/_shared/map.type.d.ts +0 -2
  131. package/dist/collection/contracts/_shared/modifier.type.d.ts +0 -2
  132. package/dist/collection/contracts/_shared/predicate.type.d.ts +0 -7
  133. package/dist/collection/contracts/_shared/reduce.type.d.ts +0 -2
  134. package/dist/collection/contracts/_shared/tap.type.d.ts +0 -2
  135. package/dist/collection/contracts/_shared/transform.type.d.ts +0 -2
  136. package/dist/collection/contracts/async-collection.contract.d.ts +0 -1
  137. package/dist/collection/contracts/collection.contract.d.ts +0 -2
  138. package/dist/collection/contracts/collection.errors.d.ts +0 -1
  139. package/dist/collection/contracts/collection.errors.js +0 -1
  140. package/dist/collection/contracts/collection.errors.js.map +1 -1
  141. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +0 -4
  142. package/dist/event-bus/contracts/event-bus.contract.d.ts +0 -4
  143. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +1 -1
  144. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +7 -9
  145. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  146. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +1 -1
  147. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +1 -1
  148. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +0 -1
  149. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  150. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +2 -5
  151. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  152. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +0 -2
  153. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  154. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.d.ts +0 -1
  155. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js +1 -1
  156. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js.map +1 -1
  157. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.d.ts +0 -1
  158. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +1 -1
  159. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  160. package/dist/file-size/contracts/_module-exports.d.ts +1 -0
  161. package/dist/file-size/contracts/_module-exports.js +2 -0
  162. package/dist/file-size/contracts/_module-exports.js.map +1 -0
  163. package/dist/file-size/contracts/_module.d.ts +1 -0
  164. package/dist/file-size/contracts/_module.js +2 -0
  165. package/dist/file-size/contracts/_module.js.map +1 -0
  166. package/dist/file-size/contracts/file-size.contract.d.ts +17 -0
  167. package/dist/file-size/contracts/file-size.contract.js +9 -0
  168. package/dist/file-size/contracts/file-size.contract.js.map +1 -0
  169. package/dist/file-size/implementations/_module-exports.d.ts +1 -0
  170. package/dist/file-size/implementations/_module-exports.js +2 -0
  171. package/dist/file-size/implementations/_module-exports.js.map +1 -0
  172. package/dist/file-size/implementations/_module.d.ts +1 -0
  173. package/dist/file-size/implementations/_module.js +2 -0
  174. package/dist/file-size/implementations/_module.js.map +1 -0
  175. package/dist/file-size/implementations/file-size.d.ts +50 -0
  176. package/dist/file-size/implementations/file-size.js +89 -0
  177. package/dist/file-size/implementations/file-size.js.map +1 -0
  178. package/dist/file-storage/contracts/_module-exports.d.ts +7 -0
  179. package/dist/file-storage/contracts/_module-exports.js +4 -0
  180. package/dist/file-storage/contracts/_module-exports.js.map +1 -0
  181. package/dist/file-storage/contracts/_module.d.ts +7 -0
  182. package/dist/file-storage/contracts/_module.js +4 -0
  183. package/dist/file-storage/contracts/_module.js.map +1 -0
  184. package/dist/file-storage/contracts/file-storage-adapter.contract.d.ts +180 -0
  185. package/dist/file-storage/contracts/file-storage-adapter.contract.js +13 -0
  186. package/dist/file-storage/contracts/file-storage-adapter.contract.js.map +1 -0
  187. package/dist/file-storage/contracts/file-storage-factory.contract.d.ts +19 -0
  188. package/dist/file-storage/contracts/file-storage-factory.contract.js +10 -0
  189. package/dist/file-storage/contracts/file-storage-factory.contract.js.map +1 -0
  190. package/dist/file-storage/contracts/file-storage.contract.d.ts +37 -0
  191. package/dist/file-storage/contracts/file-storage.contract.js +8 -0
  192. package/dist/file-storage/contracts/file-storage.contract.js.map +1 -0
  193. package/dist/file-storage/contracts/file.contract.d.ts +224 -0
  194. package/dist/file-storage/contracts/file.contract.js +10 -0
  195. package/dist/file-storage/contracts/file.contract.js.map +1 -0
  196. package/dist/file-storage/contracts/file.errors.d.ts +68 -0
  197. package/dist/file-storage/contracts/file.errors.js +86 -0
  198. package/dist/file-storage/contracts/file.errors.js.map +1 -0
  199. package/dist/file-storage/contracts/file.events.d.ts +135 -0
  200. package/dist/file-storage/contracts/file.events.js +23 -0
  201. package/dist/file-storage/contracts/file.events.js.map +1 -0
  202. package/dist/file-storage/contracts/types.d.ts +9 -0
  203. package/dist/file-storage/contracts/types.js +5 -0
  204. package/dist/file-storage/contracts/types.js.map +1 -0
  205. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module-exports.d.ts +1 -0
  206. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module-exports.js +2 -0
  207. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module-exports.js.map +1 -0
  208. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module.d.ts +1 -0
  209. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module.js +2 -0
  210. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/_module.js.map +1 -0
  211. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/fs-file-storage-adapter.d.ts +82 -0
  212. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/fs-file-storage-adapter.js +302 -0
  213. package/dist/file-storage/implementations/adapters/fs-file-storage-adapter/fs-file-storage-adapter.js.map +1 -0
  214. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module-exports.d.ts +1 -0
  215. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module-exports.js +2 -0
  216. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module-exports.js.map +1 -0
  217. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module.d.ts +1 -0
  218. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module.js +2 -0
  219. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/_module.js.map +1 -0
  220. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/memory-file-storage-adapter.d.ts +58 -0
  221. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/memory-file-storage-adapter.js +254 -0
  222. package/dist/file-storage/implementations/adapters/memory-file-storage-adapter/memory-file-storage-adapter.js.map +1 -0
  223. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module-exports.d.ts +1 -0
  224. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module-exports.js +2 -0
  225. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module-exports.js.map +1 -0
  226. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module.d.ts +1 -0
  227. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module.js +2 -0
  228. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/_module.js.map +1 -0
  229. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/no-op-file-storage-adapter.d.ts +31 -0
  230. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/no-op-file-storage-adapter.js +70 -0
  231. package/dist/file-storage/implementations/adapters/no-op-file-storage-adapter/no-op-file-storage-adapter.js.map +1 -0
  232. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module-exports.d.ts +1 -0
  233. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module-exports.js +2 -0
  234. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module-exports.js.map +1 -0
  235. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module.d.ts +1 -0
  236. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module.js +2 -0
  237. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/_module.js.map +1 -0
  238. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/s3-file-storage-adapter.d.ts +137 -0
  239. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/s3-file-storage-adapter.js +512 -0
  240. package/dist/file-storage/implementations/adapters/s3-file-storage-adapter/s3-file-storage-adapter.js.map +1 -0
  241. package/dist/file-storage/implementations/derivables/_module-exports.d.ts +2 -0
  242. package/dist/file-storage/implementations/derivables/_module-exports.js +3 -0
  243. package/dist/file-storage/implementations/derivables/_module-exports.js.map +1 -0
  244. package/dist/file-storage/implementations/derivables/_module.d.ts +2 -0
  245. package/dist/file-storage/implementations/derivables/_module.js +3 -0
  246. package/dist/file-storage/implementations/derivables/_module.js.map +1 -0
  247. package/dist/file-storage/implementations/derivables/file-storage/_module.d.ts +1 -0
  248. package/dist/file-storage/implementations/derivables/file-storage/_module.js +2 -0
  249. package/dist/file-storage/implementations/derivables/file-storage/_module.js.map +1 -0
  250. package/dist/file-storage/implementations/derivables/file-storage/file-serde-transformer.d.ts +48 -0
  251. package/dist/file-storage/implementations/derivables/file-storage/file-serde-transformer.js +87 -0
  252. package/dist/file-storage/implementations/derivables/file-storage/file-serde-transformer.js.map +1 -0
  253. package/dist/file-storage/implementations/derivables/file-storage/file-storage.d.ts +163 -0
  254. package/dist/file-storage/implementations/derivables/file-storage/file-storage.js +185 -0
  255. package/dist/file-storage/implementations/derivables/file-storage/file-storage.js.map +1 -0
  256. package/dist/file-storage/implementations/derivables/file-storage/file.d.ts +114 -0
  257. package/dist/file-storage/implementations/derivables/file-storage/file.js +722 -0
  258. package/dist/file-storage/implementations/derivables/file-storage/file.js.map +1 -0
  259. package/dist/file-storage/implementations/derivables/file-storage/is-signed-file-storage-adapter.d.ts +8 -0
  260. package/dist/file-storage/implementations/derivables/file-storage/is-signed-file-storage-adapter.js +62 -0
  261. package/dist/file-storage/implementations/derivables/file-storage/is-signed-file-storage-adapter.js.map +1 -0
  262. package/dist/file-storage/implementations/derivables/file-storage/merged-file-url-adapter.d.ts +15 -0
  263. package/dist/file-storage/implementations/derivables/file-storage/merged-file-url-adapter.js +34 -0
  264. package/dist/file-storage/implementations/derivables/file-storage/merged-file-url-adapter.js.map +1 -0
  265. package/dist/file-storage/implementations/derivables/file-storage/no-op-file-url-adapter.d.ts +12 -0
  266. package/dist/file-storage/implementations/derivables/file-storage/no-op-file-url-adapter.js +19 -0
  267. package/dist/file-storage/implementations/derivables/file-storage/no-op-file-url-adapter.js.map +1 -0
  268. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-content.d.ts +8 -0
  269. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-content.js +18 -0
  270. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-content.js.map +1 -0
  271. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-storage-adapter.d.ts +8 -0
  272. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-storage-adapter.js +16 -0
  273. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-storage-adapter.js.map +1 -0
  274. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-stream.d.ts +12 -0
  275. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-stream.js +20 -0
  276. package/dist/file-storage/implementations/derivables/file-storage/resolve-file-stream.js.map +1 -0
  277. package/dist/file-storage/implementations/derivables/file-storage/signed-file-storage-adapter.d.ts +31 -0
  278. package/dist/file-storage/implementations/derivables/file-storage/signed-file-storage-adapter.js +74 -0
  279. package/dist/file-storage/implementations/derivables/file-storage/signed-file-storage-adapter.js.map +1 -0
  280. package/dist/file-storage/implementations/derivables/file-storage-factory/_module.d.ts +1 -0
  281. package/dist/file-storage/implementations/derivables/file-storage-factory/_module.js +2 -0
  282. package/dist/file-storage/implementations/derivables/file-storage-factory/_module.js.map +1 -0
  283. package/dist/file-storage/implementations/derivables/file-storage-factory/file-storage-factory.d.ts +59 -0
  284. package/dist/file-storage/implementations/derivables/file-storage-factory/file-storage-factory.js +113 -0
  285. package/dist/file-storage/implementations/derivables/file-storage-factory/file-storage-factory.js.map +1 -0
  286. package/dist/file-storage/implementations/test-utilities/_module-exports.d.ts +2 -0
  287. package/dist/file-storage/implementations/test-utilities/_module-exports.js +3 -0
  288. package/dist/file-storage/implementations/test-utilities/_module-exports.js.map +1 -0
  289. package/dist/file-storage/implementations/test-utilities/_module.d.ts +2 -0
  290. package/dist/file-storage/implementations/test-utilities/_module.js +3 -0
  291. package/dist/file-storage/implementations/test-utilities/_module.js.map +1 -0
  292. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.d.ts +28 -0
  293. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.js +1637 -0
  294. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.js.map +1 -0
  295. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.d.ts +36 -0
  296. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.js +3109 -0
  297. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.js.map +1 -0
  298. package/dist/hooks/async-hooks.d.ts +0 -8
  299. package/dist/hooks/async-hooks.js.map +1 -1
  300. package/dist/hooks/hooks.d.ts +0 -6
  301. package/dist/hooks/hooks.js.map +1 -1
  302. package/dist/hooks/types.d.ts +0 -1
  303. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +0 -3
  304. package/dist/lock/contracts/lock-provider.contract.d.ts +0 -2
  305. package/dist/lock/contracts/lock-state.contract.d.ts +0 -6
  306. package/dist/lock/contracts/lock-state.contract.js +0 -1
  307. package/dist/lock/contracts/lock-state.contract.js.map +1 -1
  308. package/dist/lock/contracts/lock.contract.d.ts +3 -6
  309. package/dist/lock/contracts/lock.contract.js +2 -1
  310. package/dist/lock/contracts/lock.contract.js.map +1 -1
  311. package/dist/lock/contracts/lock.errors.d.ts +0 -3
  312. package/dist/lock/contracts/lock.errors.js +0 -2
  313. package/dist/lock/contracts/lock.errors.js.map +1 -1
  314. package/dist/lock/contracts/lock.events.d.ts +0 -3
  315. package/dist/lock/contracts/lock.events.js +0 -1
  316. package/dist/lock/contracts/lock.events.js.map +1 -1
  317. package/dist/lock/contracts/types.d.ts +0 -1
  318. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +0 -3
  319. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  320. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +1 -2
  321. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +19 -24
  322. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  323. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +0 -2
  324. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  325. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +1 -1
  326. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +1 -1
  327. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +0 -1
  328. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  329. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +2 -4
  330. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  331. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +4 -4
  332. package/dist/lock/implementations/derivables/lock-provider/lock.js +1 -1
  333. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  334. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +0 -2
  335. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  336. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.d.ts +0 -1
  337. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js +1 -1
  338. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js.map +1 -1
  339. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.d.ts +0 -1
  340. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +1 -1
  341. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  342. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +0 -1
  343. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +1 -1
  344. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  345. package/dist/namespace/contracts/namespace.contract.d.ts +19 -2
  346. package/dist/namespace/contracts/namespace.contract.js +1 -1
  347. package/dist/namespace/contracts/namespace.contract.js.map +1 -1
  348. package/dist/namespace/implementations/namespace.js +3 -0
  349. package/dist/namespace/implementations/namespace.js.map +1 -1
  350. package/dist/namespace/implementations/no-op-namespace.d.ts +1 -1
  351. package/dist/namespace/implementations/no-op-namespace.js +4 -1
  352. package/dist/namespace/implementations/no-op-namespace.js.map +1 -1
  353. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.d.ts +0 -1
  354. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.d.ts +0 -1
  355. package/dist/rate-limiter/contracts/rate-limiter-state.contract.d.ts +0 -6
  356. package/dist/rate-limiter/contracts/rate-limiter-state.contract.js +0 -1
  357. package/dist/rate-limiter/contracts/rate-limiter-state.contract.js.map +1 -1
  358. package/dist/rate-limiter/contracts/rate-limiter-storage-adapter.contract.d.ts +0 -1
  359. package/dist/rate-limiter/contracts/rate-limiter.contract.d.ts +3 -4
  360. package/dist/rate-limiter/contracts/rate-limiter.contract.js +2 -1
  361. package/dist/rate-limiter/contracts/rate-limiter.contract.js.map +1 -1
  362. package/dist/rate-limiter/contracts/rate-limiter.errors.d.ts +7 -3
  363. package/dist/rate-limiter/contracts/rate-limiter.errors.js +9 -2
  364. package/dist/rate-limiter/contracts/rate-limiter.errors.js.map +1 -1
  365. package/dist/rate-limiter/contracts/rate-limiter.events.d.ts +0 -2
  366. package/dist/rate-limiter/contracts/rate-limiter.events.js +0 -1
  367. package/dist/rate-limiter/contracts/rate-limiter.events.js.map +1 -1
  368. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.d.ts +2 -1
  369. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.js +13 -12
  370. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.js.map +1 -1
  371. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.d.ts +1 -1
  372. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js +1 -1
  373. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js.map +1 -1
  374. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.d.ts +2 -0
  375. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.js +2 -0
  376. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.js.map +1 -1
  377. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.d.ts +2 -0
  378. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.js +2 -0
  379. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.js.map +1 -1
  380. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +2 -4
  381. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -1
  382. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.d.ts +1 -1
  383. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js +6 -6
  384. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map +1 -1
  385. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.d.ts +0 -2
  386. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js.map +1 -1
  387. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.d.ts +0 -2
  388. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js.map +1 -1
  389. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.d.ts +0 -1
  390. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js +1 -1
  391. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js.map +1 -1
  392. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.d.ts +0 -1
  393. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.js +1 -1
  394. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.js.map +1 -1
  395. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.d.ts +0 -1
  396. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js +1 -1
  397. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js.map +1 -1
  398. package/dist/resilience/middlewares/fallback/fallback.types.d.ts +0 -4
  399. package/dist/resilience/middlewares/observe/observe.types.d.ts +0 -9
  400. package/dist/resilience/middlewares/retry/retry.types.d.ts +0 -6
  401. package/dist/resilience/middlewares/timeout/timeout.type.d.ts +0 -4
  402. package/dist/resilience/resilience.errors.d.ts +0 -5
  403. package/dist/resilience/resilience.errors.js +0 -4
  404. package/dist/resilience/resilience.errors.js.map +1 -1
  405. package/dist/semaphore/contracts/semaphore-adapter.contract.d.ts +0 -2
  406. package/dist/semaphore/contracts/semaphore-provider.contract.d.ts +0 -2
  407. package/dist/semaphore/contracts/semaphore-state.contract.d.ts +0 -7
  408. package/dist/semaphore/contracts/semaphore-state.contract.js +0 -1
  409. package/dist/semaphore/contracts/semaphore-state.contract.js.map +1 -1
  410. package/dist/semaphore/contracts/semaphore.contract.d.ts +3 -6
  411. package/dist/semaphore/contracts/semaphore.contract.js +2 -1
  412. package/dist/semaphore/contracts/semaphore.contract.js.map +1 -1
  413. package/dist/semaphore/contracts/semaphore.errors.d.ts +0 -3
  414. package/dist/semaphore/contracts/semaphore.errors.js +0 -2
  415. package/dist/semaphore/contracts/semaphore.errors.js.map +1 -1
  416. package/dist/semaphore/contracts/semaphore.events.d.ts +0 -3
  417. package/dist/semaphore/contracts/semaphore.events.js +0 -1
  418. package/dist/semaphore/contracts/semaphore.events.js.map +1 -1
  419. package/dist/semaphore/contracts/types.d.ts +0 -1
  420. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.d.ts +0 -4
  421. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js.map +1 -1
  422. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.d.ts +1 -2
  423. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js +18 -23
  424. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js.map +1 -1
  425. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.d.ts +0 -3
  426. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.js.map +1 -1
  427. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.d.ts +1 -1
  428. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.js +1 -1
  429. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +2 -4
  430. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
  431. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +1 -1
  432. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.d.ts +3 -3
  433. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js +2 -2
  434. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +1 -1
  435. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.d.ts +0 -2
  436. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +1 -1
  437. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.d.ts +0 -1
  438. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js +1 -1
  439. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js.map +1 -1
  440. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.d.ts +0 -1
  441. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js +1 -1
  442. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js.map +1 -1
  443. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.d.ts +0 -1
  444. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js +1 -1
  445. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js.map +1 -1
  446. package/dist/serde/contracts/flexible-serde-adapter.contract.d.ts +0 -1
  447. package/dist/serde/contracts/flexible-serde.contract.d.ts +0 -2
  448. package/dist/serde/contracts/serde.errors.d.ts +1 -4
  449. package/dist/serde/contracts/serde.errors.js +0 -2
  450. package/dist/serde/contracts/serde.errors.js.map +1 -1
  451. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.d.ts +1 -1
  452. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js +1 -1
  453. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.d.ts +0 -1
  454. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +0 -1
  455. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
  456. package/dist/serde/implementations/derivables/serde-transformers.d.ts +1 -0
  457. package/dist/serde/implementations/derivables/serde-transformers.js +1 -0
  458. package/dist/serde/implementations/derivables/serde-transformers.js.map +1 -1
  459. package/dist/serde/implementations/derivables/serde.d.ts +0 -2
  460. package/dist/serde/implementations/derivables/serde.js.map +1 -1
  461. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.d.ts +0 -1
  462. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.js.map +1 -1
  463. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.d.ts +0 -1
  464. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js +1 -0
  465. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js.map +1 -1
  466. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.d.ts +0 -3
  467. package/dist/shared-lock/contracts/shared-lock-adapter.contract.d.ts +0 -1
  468. package/dist/shared-lock/contracts/shared-lock-provider.contract.d.ts +0 -2
  469. package/dist/shared-lock/contracts/shared-lock-state.contract.d.ts +0 -15
  470. package/dist/shared-lock/contracts/shared-lock-state.contract.js +0 -3
  471. package/dist/shared-lock/contracts/shared-lock-state.contract.js.map +1 -1
  472. package/dist/shared-lock/contracts/shared-lock.contract.d.ts +3 -8
  473. package/dist/shared-lock/contracts/shared-lock.contract.js +2 -1
  474. package/dist/shared-lock/contracts/shared-lock.contract.js.map +1 -1
  475. package/dist/shared-lock/contracts/shared-lock.errors.d.ts +0 -9
  476. package/dist/shared-lock/contracts/shared-lock.errors.js +0 -6
  477. package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -1
  478. package/dist/shared-lock/contracts/shared-lock.events.d.ts +0 -7
  479. package/dist/shared-lock/contracts/shared-lock.events.js +0 -3
  480. package/dist/shared-lock/contracts/shared-lock.events.js.map +1 -1
  481. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.d.ts +0 -5
  482. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js.map +1 -1
  483. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.d.ts +1 -4
  484. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js +42 -52
  485. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js.map +1 -1
  486. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.d.ts +0 -5
  487. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js.map +1 -1
  488. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.d.ts +1 -1
  489. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.js +1 -1
  490. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +2 -4
  491. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
  492. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +1 -1
  493. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.d.ts +5 -5
  494. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js +12 -12
  495. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +1 -1
  496. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.d.ts +0 -2
  497. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +1 -1
  498. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.d.ts +0 -1
  499. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js +1 -1
  500. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js.map +1 -1
  501. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.d.ts +0 -1
  502. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js +1 -1
  503. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js.map +1 -1
  504. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.d.ts +0 -1
  505. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js +1 -1
  506. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js.map +1 -1
  507. package/dist/task/implementations/task.js +0 -1
  508. package/dist/task/implementations/task.js.map +1 -1
  509. package/dist/time-span/contracts/time-span.contract.d.ts +0 -1
  510. package/dist/time-span/contracts/time-span.contract.js +0 -1
  511. package/dist/time-span/contracts/time-span.contract.js.map +1 -1
  512. package/dist/time-span/implementations/time-span.d.ts +1 -3
  513. package/dist/time-span/implementations/time-span.js +1 -1
  514. package/dist/time-span/implementations/time-span.js.map +1 -1
  515. package/dist/utilities/contracts/comparable.contract.d.ts +0 -6
  516. package/dist/utilities/contracts/deinitizable.contract.d.ts +0 -1
  517. package/dist/utilities/contracts/initizable.contract.d.ts +0 -1
  518. package/dist/utilities/contracts/prunable.contract.d.ts +0 -1
  519. package/dist/utilities/contracts/sqlite-database.contract.d.ts +0 -2
  520. package/dist/utilities/errors.d.ts +0 -1
  521. package/dist/utilities/errors.js +0 -1
  522. package/dist/utilities/errors.js.map +1 -1
  523. package/dist/utilities/functions/error-policy.d.ts +0 -2
  524. package/dist/utilities/functions/error-policy.js.map +1 -1
  525. package/dist/utilities/functions/invokable.d.ts +0 -4
  526. package/dist/utilities/functions/invokable.js.map +1 -1
  527. package/dist/utilities/functions/is-positive-nbr.d.ts +0 -1
  528. package/dist/utilities/functions/is-positive-nbr.js +0 -1
  529. package/dist/utilities/functions/is-positive-nbr.js.map +1 -1
  530. package/dist/utilities/functions/iterable-to-async-iterable.js +1 -2
  531. package/dist/utilities/functions/iterable-to-async-iterable.js.map +1 -1
  532. package/dist/utilities/functions/lazy.d.ts +0 -5
  533. package/dist/utilities/functions/lazy.js.map +1 -1
  534. package/dist/utilities/functions/object.js +2 -6
  535. package/dist/utilities/functions/object.js.map +1 -1
  536. package/dist/utilities/functions/resolve-one-or-more.d.ts +0 -1
  537. package/dist/utilities/functions/resolve-one-or-more.js.map +1 -1
  538. package/dist/utilities/types/async-iterable-value.type.d.ts +0 -2
  539. package/dist/utilities/types/none-func.type.d.ts +0 -1
  540. package/dist/utilities/types/promiseable.type.d.ts +0 -1
  541. package/package.json +15 -1
@@ -0,0 +1,1637 @@
1
+ /**
2
+ * @module FileStorage
3
+ */
4
+ import {} from "vitest";
5
+ import { FILE_WRITE_ENUM, } from "../../../file-storage/contracts/_module.js";
6
+ import {} from "../../../utilities/_module.js";
7
+ async function resolveStream(stream) {
8
+ if (!stream) {
9
+ return null;
10
+ }
11
+ const chunks = [];
12
+ let totalLength = 0;
13
+ // 1. Collect all chunks and track the total byte length
14
+ for await (const chunk of stream) {
15
+ chunks.push(chunk);
16
+ totalLength += chunk.byteLength;
17
+ }
18
+ // Handle empty streams
19
+ if (chunks.length === 0) {
20
+ return new Uint8Array(0);
21
+ }
22
+ // 2. Optimization: If there's only one chunk, just return it
23
+ if (chunks.length === 1) {
24
+ const chunk = chunks[0];
25
+ if (chunk === undefined) {
26
+ return null;
27
+ }
28
+ return chunk;
29
+ }
30
+ // 3. Allocate the final memory once
31
+ const result = new Uint8Array(totalLength);
32
+ let offset = 0;
33
+ // 4. Copy each chunk into the final array
34
+ for (const chunk of chunks) {
35
+ result.set(chunk, offset);
36
+ offset += chunk.byteLength;
37
+ }
38
+ return result;
39
+ }
40
+ function isUint8ByteArrayEqualityTester(a, b) {
41
+ if (!(a instanceof Uint8Array)) {
42
+ return;
43
+ }
44
+ if (!(b instanceof Uint8Array)) {
45
+ return;
46
+ }
47
+ return Buffer.from(a).equals(b);
48
+ }
49
+ /**
50
+ * The `fileStorageAdapterTestSuite` function simplifies the process of testing your custom implementation of {@link IFileStorageAdapter | `IFileStorageAdapter`} with `vitest`.
51
+ *
52
+ * IMPORT_PATH: `"@daiso-tech/core/file-storage/test-utilities"`
53
+ * @group TestUtilities
54
+ */
55
+ export function fileStorageAdapterTestSuite(settings) {
56
+ const { expect, test, createAdapter, describe, beforeEach, enableGetMetaData = true, } = settings;
57
+ let adapter;
58
+ beforeEach(async () => {
59
+ adapter = await createAdapter();
60
+ });
61
+ describe("IFileStorageAdapter tests:", () => {
62
+ expect.addEqualityTesters([isUint8ByteArrayEqualityTester]);
63
+ describe("method: exists", () => {
64
+ test("Should return false when key does not exists", async () => {
65
+ const noneExistingKey = "a";
66
+ const result = await adapter.exists(noneExistingKey);
67
+ expect(result).toBe(false);
68
+ });
69
+ test("Should return true when key exists", async () => {
70
+ const key = "a";
71
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
72
+ const contentType = "application/octet-stream";
73
+ await adapter.add(key, {
74
+ data,
75
+ cacheControl: null,
76
+ contentDisposition: null,
77
+ contentEncoding: null,
78
+ contentLanguage: null,
79
+ contentType,
80
+ fileSizeInBytes: data.length,
81
+ });
82
+ const result = await adapter.exists(key);
83
+ expect(result).toBe(true);
84
+ });
85
+ });
86
+ describe("method: getStream", () => {
87
+ test("Should return null when key does not exists", async () => {
88
+ const noneExistingKey = "a";
89
+ const result = await adapter.getStream(noneExistingKey);
90
+ expect(result).toBeNull();
91
+ });
92
+ test("Should return AsyncIterable<Uint8Array> when key exists", async () => {
93
+ const key = "a";
94
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
95
+ const contentType = "application/octet-stream";
96
+ await adapter.add(key, {
97
+ data,
98
+ cacheControl: null,
99
+ contentDisposition: null,
100
+ contentEncoding: null,
101
+ contentLanguage: null,
102
+ contentType,
103
+ fileSizeInBytes: data.length,
104
+ });
105
+ const result = await resolveStream(await adapter.getStream(key));
106
+ expect(result).toEqual(data);
107
+ });
108
+ });
109
+ describe("method: getBytes", () => {
110
+ test("Should return null when key does not exists", async () => {
111
+ const noneExistingKey = "a";
112
+ const result = await adapter.getBytes(noneExistingKey);
113
+ expect(result).toBeNull();
114
+ });
115
+ test("Should return Uint8Array when key exists", async () => {
116
+ const key = "a";
117
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
118
+ const contentType = "application/octet-stream";
119
+ await adapter.add(key, {
120
+ data,
121
+ cacheControl: null,
122
+ contentDisposition: null,
123
+ contentEncoding: null,
124
+ contentLanguage: null,
125
+ contentType,
126
+ fileSizeInBytes: data.length,
127
+ });
128
+ const result = await adapter.getBytes(key);
129
+ expect(result).toEqual(data);
130
+ });
131
+ });
132
+ describe.skipIf(!enableGetMetaData)("method: getMetaData", () => {
133
+ test("Should return null when key does not exists", async () => {
134
+ const noneExistingKey = "a";
135
+ const result = await adapter.getMetaData(noneExistingKey);
136
+ expect(result).toBeNull();
137
+ });
138
+ test("Should return initial metadata with a null updatedAt after add method", async () => {
139
+ const key = "a.txt";
140
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
141
+ const contentType = "text/plain";
142
+ await adapter.add(key, {
143
+ data,
144
+ cacheControl: null,
145
+ contentDisposition: null,
146
+ contentEncoding: null,
147
+ contentLanguage: null,
148
+ contentType,
149
+ fileSizeInBytes: data.length,
150
+ });
151
+ const result = await adapter.getMetaData(key);
152
+ expect(result).toEqual({
153
+ etag: expect.any(String),
154
+ contentType,
155
+ fileSizeInBytes: data.byteLength,
156
+ updatedAt: expect.any(Date),
157
+ });
158
+ });
159
+ test("Should return initial metadata with a null updatedAt after put method", async () => {
160
+ const key = "a.txt";
161
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
162
+ const contentType = "text/plain";
163
+ await adapter.put(key, {
164
+ data,
165
+ cacheControl: null,
166
+ contentDisposition: null,
167
+ contentEncoding: null,
168
+ contentLanguage: null,
169
+ contentType,
170
+ fileSizeInBytes: data.length,
171
+ });
172
+ const result = await adapter.getMetaData(key);
173
+ expect(result).toEqual({
174
+ etag: expect.any(String),
175
+ contentType,
176
+ fileSizeInBytes: data.byteLength,
177
+ updatedAt: expect.any(Date),
178
+ });
179
+ });
180
+ test("Should return metadata with a valid updatedAt after add method followed by update method", async () => {
181
+ const key = "a.txt";
182
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
183
+ const contentType = "text/plain";
184
+ await adapter.add(key, {
185
+ data,
186
+ cacheControl: null,
187
+ contentDisposition: null,
188
+ contentEncoding: null,
189
+ contentLanguage: null,
190
+ contentType,
191
+ fileSizeInBytes: data.length,
192
+ });
193
+ const newContentType = "application/octet-stream";
194
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
195
+ await adapter.update(key, {
196
+ data: newData,
197
+ cacheControl: null,
198
+ contentDisposition: null,
199
+ contentEncoding: null,
200
+ contentLanguage: null,
201
+ contentType: newContentType,
202
+ fileSizeInBytes: newData.length,
203
+ });
204
+ const result = await adapter.getMetaData(key);
205
+ expect(result).toEqual({
206
+ etag: expect.any(String),
207
+ contentType: newContentType,
208
+ fileSizeInBytes: data.byteLength,
209
+ updatedAt: expect.any(Date),
210
+ });
211
+ });
212
+ test("Should return metadata with a valid updatedAt after put method followed by update method", async () => {
213
+ const key = "a.txt";
214
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
215
+ const contentType = "text/plain";
216
+ await adapter.put(key, {
217
+ data,
218
+ cacheControl: null,
219
+ contentDisposition: null,
220
+ contentEncoding: null,
221
+ contentLanguage: null,
222
+ contentType,
223
+ fileSizeInBytes: data.length,
224
+ });
225
+ const newContentType = "application/octet-stream";
226
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
227
+ await adapter.update(key, {
228
+ data: newData,
229
+ cacheControl: null,
230
+ contentDisposition: null,
231
+ contentEncoding: null,
232
+ contentLanguage: null,
233
+ contentType: newContentType,
234
+ fileSizeInBytes: newData.length,
235
+ });
236
+ const result = await adapter.getMetaData(key);
237
+ expect(result).toEqual({
238
+ etag: expect.any(String),
239
+ contentType: newContentType,
240
+ fileSizeInBytes: data.byteLength,
241
+ updatedAt: expect.any(Date),
242
+ });
243
+ });
244
+ test("Should return metadata with a valid updatedAt after put overwrites an existing file", async () => {
245
+ const key = "a.txt";
246
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
247
+ const contentType = "text/plain";
248
+ await adapter.put(key, {
249
+ data,
250
+ cacheControl: null,
251
+ contentDisposition: null,
252
+ contentEncoding: null,
253
+ contentLanguage: null,
254
+ contentType,
255
+ fileSizeInBytes: data.length,
256
+ });
257
+ const newContentType = "application/octet-stream";
258
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
259
+ await adapter.put(key, {
260
+ data: newData,
261
+ cacheControl: null,
262
+ contentDisposition: null,
263
+ contentEncoding: null,
264
+ contentLanguage: null,
265
+ contentType: newContentType,
266
+ fileSizeInBytes: newData.length,
267
+ });
268
+ const result = await adapter.getMetaData(key);
269
+ expect(result).toEqual({
270
+ etag: expect.any(String),
271
+ contentType: newContentType,
272
+ fileSizeInBytes: data.byteLength,
273
+ updatedAt: expect.any(Date),
274
+ });
275
+ });
276
+ test("Should return initial metadata with a null updatedAt after addStream method", async () => {
277
+ const key = "a.txt";
278
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
279
+ const contentType = "text/plain";
280
+ await adapter.addStream(key, {
281
+ data: {
282
+ async *[Symbol.asyncIterator]() {
283
+ yield Promise.resolve(data);
284
+ },
285
+ },
286
+ cacheControl: null,
287
+ contentDisposition: null,
288
+ contentEncoding: null,
289
+ contentLanguage: null,
290
+ contentType,
291
+ fileSizeInBytes: data.length,
292
+ });
293
+ const result = await adapter.getMetaData(key);
294
+ expect(result).toEqual({
295
+ etag: expect.any(String),
296
+ contentType,
297
+ fileSizeInBytes: data.byteLength,
298
+ updatedAt: expect.any(Date),
299
+ });
300
+ });
301
+ test("Should return initial metadata with a null updatedAt after putStream method", async () => {
302
+ const key = "a.txt";
303
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
304
+ const contentType = "text/plain";
305
+ await adapter.putStream(key, {
306
+ data: {
307
+ async *[Symbol.asyncIterator]() {
308
+ yield Promise.resolve(data);
309
+ },
310
+ },
311
+ cacheControl: null,
312
+ contentDisposition: null,
313
+ contentEncoding: null,
314
+ contentLanguage: null,
315
+ contentType,
316
+ fileSizeInBytes: data.length,
317
+ });
318
+ const result = await adapter.getMetaData(key);
319
+ expect(result).toEqual({
320
+ etag: expect.any(String),
321
+ contentType,
322
+ fileSizeInBytes: data.byteLength,
323
+ updatedAt: expect.any(Date),
324
+ });
325
+ });
326
+ test("Should return metadata with a valid updatedAt after addStream method followed by updateStream method", async () => {
327
+ const key = "a.txt";
328
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
329
+ const contentType = "text/plain";
330
+ await adapter.addStream(key, {
331
+ data: {
332
+ async *[Symbol.asyncIterator]() {
333
+ yield Promise.resolve(data);
334
+ },
335
+ },
336
+ cacheControl: null,
337
+ contentDisposition: null,
338
+ contentEncoding: null,
339
+ contentLanguage: null,
340
+ contentType,
341
+ fileSizeInBytes: data.length,
342
+ });
343
+ const newContentType = "application/octet-stream";
344
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
345
+ await adapter.updateStream(key, {
346
+ data: {
347
+ async *[Symbol.asyncIterator]() {
348
+ yield Promise.resolve(newData);
349
+ },
350
+ },
351
+ cacheControl: null,
352
+ contentDisposition: null,
353
+ contentEncoding: null,
354
+ contentLanguage: null,
355
+ contentType: newContentType,
356
+ fileSizeInBytes: newData.length,
357
+ });
358
+ const result = await adapter.getMetaData(key);
359
+ expect(result).toEqual({
360
+ etag: expect.any(String),
361
+ contentType: newContentType,
362
+ fileSizeInBytes: data.byteLength,
363
+ updatedAt: expect.any(Date),
364
+ });
365
+ });
366
+ test("Should return metadata with a valid updatedAt after putStream method followed by updateStream method", async () => {
367
+ const key = "a.txt";
368
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
369
+ const contentType = "text/plain";
370
+ await adapter.putStream(key, {
371
+ data: {
372
+ async *[Symbol.asyncIterator]() {
373
+ yield Promise.resolve(data);
374
+ },
375
+ },
376
+ cacheControl: null,
377
+ contentDisposition: null,
378
+ contentEncoding: null,
379
+ contentLanguage: null,
380
+ contentType,
381
+ fileSizeInBytes: data.length,
382
+ });
383
+ const newContentType = "application/octet-stream";
384
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
385
+ await adapter.updateStream(key, {
386
+ data: {
387
+ async *[Symbol.asyncIterator]() {
388
+ yield Promise.resolve(newData);
389
+ },
390
+ },
391
+ cacheControl: null,
392
+ contentDisposition: null,
393
+ contentEncoding: null,
394
+ contentLanguage: null,
395
+ contentType: newContentType,
396
+ fileSizeInBytes: newData.length,
397
+ });
398
+ const result = await adapter.getMetaData(key);
399
+ expect(result).toEqual({
400
+ etag: expect.any(String),
401
+ contentType: newContentType,
402
+ fileSizeInBytes: data.byteLength,
403
+ updatedAt: expect.any(Date),
404
+ });
405
+ });
406
+ test("Should return metadata with a valid updatedAt after putStream overwrites an existing file", async () => {
407
+ const key = "a.txt";
408
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
409
+ const contentType = "text/plain";
410
+ await adapter.putStream(key, {
411
+ data: {
412
+ async *[Symbol.asyncIterator]() {
413
+ yield Promise.resolve(data);
414
+ },
415
+ },
416
+ cacheControl: null,
417
+ contentDisposition: null,
418
+ contentEncoding: null,
419
+ contentLanguage: null,
420
+ contentType,
421
+ fileSizeInBytes: data.length,
422
+ });
423
+ const newContentType = "application/octet-stream";
424
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
425
+ await adapter.putStream(key, {
426
+ data: {
427
+ async *[Symbol.asyncIterator]() {
428
+ yield Promise.resolve(newData);
429
+ },
430
+ },
431
+ cacheControl: null,
432
+ contentDisposition: null,
433
+ contentEncoding: null,
434
+ contentLanguage: null,
435
+ contentType: newContentType,
436
+ fileSizeInBytes: newData.length,
437
+ });
438
+ const result = await adapter.getMetaData(key);
439
+ expect(result).toEqual({
440
+ etag: expect.any(String),
441
+ contentType: newContentType,
442
+ fileSizeInBytes: data.byteLength,
443
+ updatedAt: expect.any(Date),
444
+ });
445
+ });
446
+ });
447
+ describe("method: add", () => {
448
+ test("Should return true when key does not exists", async () => {
449
+ const key = "a";
450
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
451
+ const contentType = "application/octet-stream";
452
+ const result = await adapter.add(key, {
453
+ data,
454
+ cacheControl: null,
455
+ contentDisposition: null,
456
+ contentEncoding: null,
457
+ contentLanguage: null,
458
+ contentType,
459
+ fileSizeInBytes: data.length,
460
+ });
461
+ expect(result).toBe(true);
462
+ });
463
+ test("Should return false when key exists", async () => {
464
+ const key = "a";
465
+ const contentType = "application/octet-stream";
466
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
467
+ await adapter.add(key, {
468
+ data,
469
+ cacheControl: null,
470
+ contentDisposition: null,
471
+ contentEncoding: null,
472
+ contentLanguage: null,
473
+ contentType,
474
+ fileSizeInBytes: data.length,
475
+ });
476
+ const newData = new Uint8Array(Buffer.from("NEW_CONTENT", "utf8"));
477
+ const result = await adapter.add(key, {
478
+ data: newData,
479
+ cacheControl: null,
480
+ contentDisposition: null,
481
+ contentEncoding: null,
482
+ contentLanguage: null,
483
+ contentType,
484
+ fileSizeInBytes: data.length,
485
+ });
486
+ expect(result).toBe(false);
487
+ });
488
+ test("Should persist data when key does not exists", async () => {
489
+ const key = "a";
490
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
491
+ const contentType = "application/octet-stream";
492
+ await adapter.add(key, {
493
+ data,
494
+ cacheControl: null,
495
+ contentDisposition: null,
496
+ contentEncoding: null,
497
+ contentLanguage: null,
498
+ contentType,
499
+ fileSizeInBytes: data.length,
500
+ });
501
+ const result = await adapter.getBytes(key);
502
+ expect(result).toEqual(data);
503
+ });
504
+ test("Should not persist data when key exists", async () => {
505
+ const key = "a";
506
+ const contentType = "application/octet-stream";
507
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
508
+ await adapter.add(key, {
509
+ data,
510
+ cacheControl: null,
511
+ contentDisposition: null,
512
+ contentEncoding: null,
513
+ contentLanguage: null,
514
+ contentType,
515
+ fileSizeInBytes: data.length,
516
+ });
517
+ const newData = new Uint8Array(Buffer.from("NEW_CONTENT", "utf8"));
518
+ await adapter.add(key, {
519
+ data: newData,
520
+ cacheControl: null,
521
+ contentDisposition: null,
522
+ contentEncoding: null,
523
+ contentLanguage: null,
524
+ contentType,
525
+ fileSizeInBytes: data.length,
526
+ });
527
+ const result = await adapter.getBytes(key);
528
+ expect(result).toEqual(data);
529
+ });
530
+ });
531
+ describe("method: addStream", () => {
532
+ test("Should return true when key does not exists", async () => {
533
+ const key = "a";
534
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
535
+ const contentType = "application/octet-stream";
536
+ const result = await adapter.addStream(key, {
537
+ data: {
538
+ async *[Symbol.asyncIterator]() {
539
+ yield Promise.resolve(data);
540
+ },
541
+ },
542
+ cacheControl: null,
543
+ contentDisposition: null,
544
+ contentEncoding: null,
545
+ contentLanguage: null,
546
+ contentType,
547
+ fileSizeInBytes: data.length,
548
+ });
549
+ expect(result).toBe(true);
550
+ });
551
+ test("Should return false when key exists", async () => {
552
+ const key = "a";
553
+ const contentType = "application/octet-stream";
554
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
555
+ await adapter.addStream(key, {
556
+ data: {
557
+ async *[Symbol.asyncIterator]() {
558
+ yield Promise.resolve(data);
559
+ },
560
+ },
561
+ cacheControl: null,
562
+ contentDisposition: null,
563
+ contentEncoding: null,
564
+ contentLanguage: null,
565
+ contentType,
566
+ fileSizeInBytes: data.length,
567
+ });
568
+ const newData = new Uint8Array(Buffer.from("NEW_CONTENT", "utf8"));
569
+ const result = await adapter.addStream(key, {
570
+ data: {
571
+ async *[Symbol.asyncIterator]() {
572
+ yield Promise.resolve(newData);
573
+ },
574
+ },
575
+ cacheControl: null,
576
+ contentDisposition: null,
577
+ contentEncoding: null,
578
+ contentLanguage: null,
579
+ contentType,
580
+ fileSizeInBytes: data.length,
581
+ });
582
+ expect(result).toBe(false);
583
+ });
584
+ test("Should persist data when key does not exists", async () => {
585
+ const key = "a";
586
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
587
+ const contentType = "application/octet-stream";
588
+ await adapter.addStream(key, {
589
+ data: {
590
+ async *[Symbol.asyncIterator]() {
591
+ yield Promise.resolve(data);
592
+ },
593
+ },
594
+ cacheControl: null,
595
+ contentDisposition: null,
596
+ contentEncoding: null,
597
+ contentLanguage: null,
598
+ contentType,
599
+ fileSizeInBytes: data.length,
600
+ });
601
+ const result = await adapter.getBytes(key);
602
+ expect(result).toEqual(data);
603
+ });
604
+ test("Should not persist data when key exists", async () => {
605
+ const key = "a";
606
+ const contentType = "application/octet-stream";
607
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
608
+ await adapter.addStream(key, {
609
+ data: {
610
+ async *[Symbol.asyncIterator]() {
611
+ yield Promise.resolve(data);
612
+ },
613
+ },
614
+ cacheControl: null,
615
+ contentDisposition: null,
616
+ contentEncoding: null,
617
+ contentLanguage: null,
618
+ contentType,
619
+ fileSizeInBytes: data.length,
620
+ });
621
+ const newData = new Uint8Array(Buffer.from("NEW_CONTENT", "utf8"));
622
+ await adapter.addStream(key, {
623
+ data: {
624
+ async *[Symbol.asyncIterator]() {
625
+ yield Promise.resolve(newData);
626
+ },
627
+ },
628
+ cacheControl: null,
629
+ contentDisposition: null,
630
+ contentEncoding: null,
631
+ contentLanguage: null,
632
+ contentType,
633
+ fileSizeInBytes: data.length,
634
+ });
635
+ const result = await adapter.getBytes(key);
636
+ expect(result).toEqual(data);
637
+ });
638
+ });
639
+ describe("method: update", () => {
640
+ test("Should return false when key doesnt exist", async () => {
641
+ const key = "a";
642
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
643
+ const contentType = "application/octet-stream";
644
+ const result = await adapter.update(key, {
645
+ data,
646
+ cacheControl: null,
647
+ contentDisposition: null,
648
+ contentEncoding: null,
649
+ contentLanguage: null,
650
+ contentType,
651
+ fileSizeInBytes: data.length,
652
+ });
653
+ expect(result).toBe(false);
654
+ });
655
+ test("Should not persist data when key doesnt exist", async () => {
656
+ const key = "a";
657
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
658
+ const contentType = "application/octet-stream";
659
+ await adapter.update(key, {
660
+ data,
661
+ cacheControl: null,
662
+ contentDisposition: null,
663
+ contentEncoding: null,
664
+ contentLanguage: null,
665
+ contentType,
666
+ fileSizeInBytes: data.length,
667
+ });
668
+ const result = await adapter.getBytes(key);
669
+ expect(result).toBeNull();
670
+ });
671
+ test("Should return true when key exist", async () => {
672
+ const key = "a";
673
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
674
+ const contentType = "application/octet-stream";
675
+ await adapter.add(key, {
676
+ data,
677
+ cacheControl: null,
678
+ contentDisposition: null,
679
+ contentEncoding: null,
680
+ contentLanguage: null,
681
+ contentType,
682
+ fileSizeInBytes: data.length,
683
+ });
684
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
685
+ const result = await adapter.update(key, {
686
+ data: newData,
687
+ cacheControl: null,
688
+ contentDisposition: null,
689
+ contentEncoding: null,
690
+ contentLanguage: null,
691
+ contentType,
692
+ fileSizeInBytes: data.length,
693
+ });
694
+ expect(result).toBe(true);
695
+ });
696
+ test("Should persist data when key exist", async () => {
697
+ const key = "a";
698
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
699
+ const contentType = "application/octet-stream";
700
+ await adapter.add(key, {
701
+ data,
702
+ cacheControl: null,
703
+ contentDisposition: null,
704
+ contentEncoding: null,
705
+ contentLanguage: null,
706
+ contentType,
707
+ fileSizeInBytes: data.length,
708
+ });
709
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
710
+ await adapter.update(key, {
711
+ data: newData,
712
+ cacheControl: null,
713
+ contentDisposition: null,
714
+ contentEncoding: null,
715
+ contentLanguage: null,
716
+ contentType,
717
+ fileSizeInBytes: data.length,
718
+ });
719
+ const result = await adapter.getBytes(key);
720
+ expect(result).toEqual(newData);
721
+ });
722
+ });
723
+ describe("method: updateStream", () => {
724
+ test("Should return false when key doesnt exist", async () => {
725
+ const key = "a";
726
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
727
+ const contentType = "application/octet-stream";
728
+ const result = await adapter.updateStream(key, {
729
+ data: {
730
+ async *[Symbol.asyncIterator]() {
731
+ yield Promise.resolve(data);
732
+ },
733
+ },
734
+ cacheControl: null,
735
+ contentDisposition: null,
736
+ contentEncoding: null,
737
+ contentLanguage: null,
738
+ contentType,
739
+ fileSizeInBytes: data.length,
740
+ });
741
+ expect(result).toBe(false);
742
+ });
743
+ test("Should not persist data when key doesnt exist", async () => {
744
+ const key = "a";
745
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
746
+ const contentType = "application/octet-stream";
747
+ await adapter.updateStream(key, {
748
+ data: {
749
+ async *[Symbol.asyncIterator]() {
750
+ yield Promise.resolve(data);
751
+ },
752
+ },
753
+ cacheControl: null,
754
+ contentDisposition: null,
755
+ contentEncoding: null,
756
+ contentLanguage: null,
757
+ contentType,
758
+ fileSizeInBytes: data.length,
759
+ });
760
+ const result = await adapter.getBytes(key);
761
+ expect(result).toBeNull();
762
+ });
763
+ test("Should return true when key exist", async () => {
764
+ const key = "a";
765
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
766
+ const contentType = "application/octet-stream";
767
+ await adapter.add(key, {
768
+ data,
769
+ cacheControl: null,
770
+ contentDisposition: null,
771
+ contentEncoding: null,
772
+ contentLanguage: null,
773
+ contentType,
774
+ fileSizeInBytes: data.length,
775
+ });
776
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
777
+ const result = await adapter.updateStream(key, {
778
+ data: {
779
+ async *[Symbol.asyncIterator]() {
780
+ yield Promise.resolve(newData);
781
+ },
782
+ },
783
+ cacheControl: null,
784
+ contentDisposition: null,
785
+ contentEncoding: null,
786
+ contentLanguage: null,
787
+ contentType,
788
+ fileSizeInBytes: data.length,
789
+ });
790
+ expect(result).toBe(true);
791
+ });
792
+ test("Should persist data when key exist", async () => {
793
+ const key = "a";
794
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
795
+ const contentType = "application/octet-stream";
796
+ await adapter.add(key, {
797
+ data,
798
+ cacheControl: null,
799
+ contentDisposition: null,
800
+ contentEncoding: null,
801
+ contentLanguage: null,
802
+ contentType,
803
+ fileSizeInBytes: data.length,
804
+ });
805
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
806
+ await adapter.updateStream(key, {
807
+ data: {
808
+ async *[Symbol.asyncIterator]() {
809
+ yield Promise.resolve(newData);
810
+ },
811
+ },
812
+ cacheControl: null,
813
+ contentDisposition: null,
814
+ contentEncoding: null,
815
+ contentLanguage: null,
816
+ contentType,
817
+ fileSizeInBytes: data.length,
818
+ });
819
+ const result = await adapter.getBytes(key);
820
+ expect(result).toEqual(newData);
821
+ });
822
+ });
823
+ describe("method: put", () => {
824
+ test("Should return false when key doesnt exist", async () => {
825
+ const key = "a";
826
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
827
+ const contentType = "application/octet-stream";
828
+ const result = await adapter.put(key, {
829
+ data,
830
+ cacheControl: null,
831
+ contentDisposition: null,
832
+ contentEncoding: null,
833
+ contentLanguage: null,
834
+ contentType,
835
+ fileSizeInBytes: data.length,
836
+ });
837
+ expect(result).toBe(false);
838
+ });
839
+ test("Should persist data when key doesnt exist", async () => {
840
+ const key = "a";
841
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
842
+ const contentType = "application/octet-stream";
843
+ await adapter.put(key, {
844
+ data: data,
845
+ cacheControl: null,
846
+ contentDisposition: null,
847
+ contentEncoding: null,
848
+ contentLanguage: null,
849
+ contentType,
850
+ fileSizeInBytes: data.length,
851
+ });
852
+ const result = await adapter.getBytes(key);
853
+ expect(result).toEqual(data);
854
+ });
855
+ test("Should return true when key exist", async () => {
856
+ const key = "a";
857
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
858
+ const contentType = "application/octet-stream";
859
+ await adapter.add(key, {
860
+ data,
861
+ cacheControl: null,
862
+ contentDisposition: null,
863
+ contentEncoding: null,
864
+ contentLanguage: null,
865
+ contentType,
866
+ fileSizeInBytes: data.length,
867
+ });
868
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
869
+ const result = await adapter.put(key, {
870
+ data: newData,
871
+ cacheControl: null,
872
+ contentDisposition: null,
873
+ contentEncoding: null,
874
+ contentLanguage: null,
875
+ contentType,
876
+ fileSizeInBytes: data.length,
877
+ });
878
+ expect(result).toBe(true);
879
+ });
880
+ test("Should persist data when key exist", async () => {
881
+ const key = "a";
882
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
883
+ const contentType = "application/octet-stream";
884
+ await adapter.add(key, {
885
+ data,
886
+ cacheControl: null,
887
+ contentDisposition: null,
888
+ contentEncoding: null,
889
+ contentLanguage: null,
890
+ contentType,
891
+ fileSizeInBytes: data.length,
892
+ });
893
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
894
+ await adapter.put(key, {
895
+ data: newData,
896
+ cacheControl: null,
897
+ contentDisposition: null,
898
+ contentEncoding: null,
899
+ contentLanguage: null,
900
+ contentType,
901
+ fileSizeInBytes: data.length,
902
+ });
903
+ const result = await adapter.getBytes(key);
904
+ expect(result).toEqual(newData);
905
+ });
906
+ });
907
+ describe("method: putStream", () => {
908
+ test("Should return false when key doesnt exist", async () => {
909
+ const key = "a";
910
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
911
+ const contentType = "application/octet-stream";
912
+ const result = await adapter.putStream(key, {
913
+ data: {
914
+ async *[Symbol.asyncIterator]() {
915
+ yield Promise.resolve(data);
916
+ },
917
+ },
918
+ cacheControl: null,
919
+ contentDisposition: null,
920
+ contentEncoding: null,
921
+ contentLanguage: null,
922
+ contentType,
923
+ fileSizeInBytes: data.length,
924
+ });
925
+ expect(result).toBe(false);
926
+ });
927
+ test("Should persist data when key doesnt exist", async () => {
928
+ const key = "a";
929
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
930
+ const contentType = "application/octet-stream";
931
+ await adapter.putStream(key, {
932
+ data: {
933
+ async *[Symbol.asyncIterator]() {
934
+ yield Promise.resolve(data);
935
+ },
936
+ },
937
+ cacheControl: null,
938
+ contentDisposition: null,
939
+ contentEncoding: null,
940
+ contentLanguage: null,
941
+ contentType,
942
+ fileSizeInBytes: data.length,
943
+ });
944
+ const result = await adapter.getBytes(key);
945
+ expect(result).toEqual(data);
946
+ });
947
+ test("Should return true when key exist", async () => {
948
+ const key = "a";
949
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
950
+ const contentType = "application/octet-stream";
951
+ await adapter.add(key, {
952
+ data,
953
+ cacheControl: null,
954
+ contentDisposition: null,
955
+ contentEncoding: null,
956
+ contentLanguage: null,
957
+ contentType,
958
+ fileSizeInBytes: data.length,
959
+ });
960
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
961
+ const result = await adapter.putStream(key, {
962
+ data: {
963
+ async *[Symbol.asyncIterator]() {
964
+ yield Promise.resolve(newData);
965
+ },
966
+ },
967
+ cacheControl: null,
968
+ contentDisposition: null,
969
+ contentEncoding: null,
970
+ contentLanguage: null,
971
+ contentType,
972
+ fileSizeInBytes: data.length,
973
+ });
974
+ expect(result).toBe(true);
975
+ });
976
+ test("Should persist data when key exist", async () => {
977
+ const key = "a";
978
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
979
+ const contentType = "application/octet-stream";
980
+ await adapter.add(key, {
981
+ data,
982
+ cacheControl: null,
983
+ contentDisposition: null,
984
+ contentEncoding: null,
985
+ contentLanguage: null,
986
+ contentType,
987
+ fileSizeInBytes: data.length,
988
+ });
989
+ const newData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
990
+ await adapter.putStream(key, {
991
+ data: {
992
+ async *[Symbol.asyncIterator]() {
993
+ yield Promise.resolve(newData);
994
+ },
995
+ },
996
+ cacheControl: null,
997
+ contentDisposition: null,
998
+ contentEncoding: null,
999
+ contentLanguage: null,
1000
+ contentType,
1001
+ fileSizeInBytes: data.length,
1002
+ });
1003
+ const result = await adapter.getBytes(key);
1004
+ expect(result).toEqual(newData);
1005
+ });
1006
+ });
1007
+ describe("method: copy", () => {
1008
+ test("Should return FILE_WRITE_ENUM.NOT_FOUND when source does not exists and destination does not exists", async () => {
1009
+ const noneExistingSource = "a";
1010
+ const noneExistingDestination = "c";
1011
+ const result = await adapter.copy(noneExistingSource, noneExistingDestination);
1012
+ expect(result).toBe(FILE_WRITE_ENUM.NOT_FOUND);
1013
+ });
1014
+ test("Should return FILE_WRITE_ENUM.NOT_FOUND when source does not exists and destination exists", async () => {
1015
+ const noneExistingSource = "a";
1016
+ const destination = "c";
1017
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1018
+ const contentType = "application/octet-stream";
1019
+ await adapter.add(destination, {
1020
+ data,
1021
+ cacheControl: null,
1022
+ contentDisposition: null,
1023
+ contentEncoding: null,
1024
+ contentLanguage: null,
1025
+ contentType,
1026
+ fileSizeInBytes: data.length,
1027
+ });
1028
+ const result = await adapter.copy(noneExistingSource, destination);
1029
+ expect(result).toBe(FILE_WRITE_ENUM.NOT_FOUND);
1030
+ });
1031
+ test("Should return FILE_WRITE_ENUM.KEY_EXISTS when source exists and destination exists", async () => {
1032
+ const source = "a";
1033
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1034
+ const contentType = "application/octet-stream";
1035
+ await adapter.add(source, {
1036
+ data: sourceData,
1037
+ cacheControl: null,
1038
+ contentDisposition: null,
1039
+ contentEncoding: null,
1040
+ contentLanguage: null,
1041
+ contentType,
1042
+ fileSizeInBytes: sourceData.length,
1043
+ });
1044
+ const destination = "c";
1045
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1046
+ await adapter.add(destination, {
1047
+ data: destinationData,
1048
+ cacheControl: null,
1049
+ contentDisposition: null,
1050
+ contentEncoding: null,
1051
+ contentLanguage: null,
1052
+ contentType,
1053
+ fileSizeInBytes: destinationData.length,
1054
+ });
1055
+ const result = await adapter.copy(source, destination);
1056
+ expect(result).toBe(FILE_WRITE_ENUM.KEY_EXISTS);
1057
+ });
1058
+ test("Should not persist when source exists and destination exists", async () => {
1059
+ const source = "a";
1060
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1061
+ const contentType = "application/octet-stream";
1062
+ await adapter.add(source, {
1063
+ data: sourceData,
1064
+ cacheControl: null,
1065
+ contentDisposition: null,
1066
+ contentEncoding: null,
1067
+ contentLanguage: null,
1068
+ contentType,
1069
+ fileSizeInBytes: sourceData.length,
1070
+ });
1071
+ const destination = "c";
1072
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1073
+ await adapter.add(destination, {
1074
+ data: destinationData,
1075
+ cacheControl: null,
1076
+ contentDisposition: null,
1077
+ contentEncoding: null,
1078
+ contentLanguage: null,
1079
+ contentType,
1080
+ fileSizeInBytes: destinationData.length,
1081
+ });
1082
+ await adapter.copy(source, destination);
1083
+ const result = await adapter.getBytes(destination);
1084
+ expect(result).toEqual(destinationData);
1085
+ });
1086
+ test("Should return FILE_WRITE_ENUM.SUCCESS when source exists and destination does not exists", async () => {
1087
+ const source = "a";
1088
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1089
+ const contentType = "application/octet-stream";
1090
+ await adapter.add(source, {
1091
+ data: sourceData,
1092
+ cacheControl: null,
1093
+ contentDisposition: null,
1094
+ contentEncoding: null,
1095
+ contentLanguage: null,
1096
+ contentType,
1097
+ fileSizeInBytes: sourceData.length,
1098
+ });
1099
+ const destination = "c";
1100
+ const result = await adapter.copy(source, destination);
1101
+ expect(result).toBe(FILE_WRITE_ENUM.SUCCESS);
1102
+ });
1103
+ test("Should persist data when source exists and destination does not exists", async () => {
1104
+ const source = "a";
1105
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1106
+ const contentType = "application/octet-stream";
1107
+ await adapter.add(source, {
1108
+ data: sourceData,
1109
+ cacheControl: null,
1110
+ contentDisposition: null,
1111
+ contentEncoding: null,
1112
+ contentLanguage: null,
1113
+ contentType,
1114
+ fileSizeInBytes: sourceData.length,
1115
+ });
1116
+ const destination = "c";
1117
+ await adapter.copy(source, destination);
1118
+ const result = await adapter.getBytes(destination);
1119
+ expect(result).toEqual(sourceData);
1120
+ });
1121
+ });
1122
+ describe("method: copyAndReplace", () => {
1123
+ test("Should return false when source does not exists and destination does not exists", async () => {
1124
+ const noneExistingSource = "a";
1125
+ const noneExistingDestination = "c";
1126
+ const result = await adapter.copyAndReplace(noneExistingSource, noneExistingDestination);
1127
+ expect(result).toBe(false);
1128
+ });
1129
+ test("Should return false when source does not exists and destination exists", async () => {
1130
+ const noneExistingSource = "a";
1131
+ const destination = "c";
1132
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1133
+ const contentType = "application/octet-stream";
1134
+ await adapter.add(destination, {
1135
+ data,
1136
+ cacheControl: null,
1137
+ contentDisposition: null,
1138
+ contentEncoding: null,
1139
+ contentLanguage: null,
1140
+ contentType,
1141
+ fileSizeInBytes: data.length,
1142
+ });
1143
+ const result = await adapter.copyAndReplace(noneExistingSource, destination);
1144
+ expect(result).toBe(false);
1145
+ });
1146
+ test("Should return true when source exists and destination exists", async () => {
1147
+ const source = "a";
1148
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1149
+ const contentType = "application/octet-stream";
1150
+ await adapter.add(source, {
1151
+ data: sourceData,
1152
+ cacheControl: null,
1153
+ contentDisposition: null,
1154
+ contentEncoding: null,
1155
+ contentLanguage: null,
1156
+ contentType,
1157
+ fileSizeInBytes: sourceData.length,
1158
+ });
1159
+ const destination = "c";
1160
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1161
+ await adapter.add(destination, {
1162
+ data: destinationData,
1163
+ cacheControl: null,
1164
+ contentDisposition: null,
1165
+ contentEncoding: null,
1166
+ contentLanguage: null,
1167
+ contentType,
1168
+ fileSizeInBytes: destinationData.length,
1169
+ });
1170
+ const result = await adapter.copyAndReplace(source, destination);
1171
+ expect(result).toBe(true);
1172
+ });
1173
+ test("Should persist when source exists and destination exists", async () => {
1174
+ const source = "a";
1175
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1176
+ const contentType = "application/octet-stream";
1177
+ await adapter.add(source, {
1178
+ data: sourceData,
1179
+ cacheControl: null,
1180
+ contentDisposition: null,
1181
+ contentEncoding: null,
1182
+ contentLanguage: null,
1183
+ contentType,
1184
+ fileSizeInBytes: sourceData.length,
1185
+ });
1186
+ const destination = "c";
1187
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1188
+ await adapter.add(destination, {
1189
+ data: destinationData,
1190
+ cacheControl: null,
1191
+ contentDisposition: null,
1192
+ contentEncoding: null,
1193
+ contentLanguage: null,
1194
+ contentType,
1195
+ fileSizeInBytes: destinationData.length,
1196
+ });
1197
+ await adapter.copyAndReplace(source, destination);
1198
+ const result = await adapter.getBytes(destination);
1199
+ expect(result).toEqual(sourceData);
1200
+ });
1201
+ test("Should return true when source exists and destination does not exists", async () => {
1202
+ const source = "a";
1203
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1204
+ const contentType = "application/octet-stream";
1205
+ await adapter.add(source, {
1206
+ data: sourceData,
1207
+ cacheControl: null,
1208
+ contentDisposition: null,
1209
+ contentEncoding: null,
1210
+ contentLanguage: null,
1211
+ contentType,
1212
+ fileSizeInBytes: sourceData.length,
1213
+ });
1214
+ const destination = "c";
1215
+ const result = await adapter.copyAndReplace(source, destination);
1216
+ expect(result).toBe(true);
1217
+ });
1218
+ test("Should persist data when source exists and destination does not exists", async () => {
1219
+ const source = "a";
1220
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1221
+ const contentType = "application/octet-stream";
1222
+ await adapter.add(source, {
1223
+ data: sourceData,
1224
+ cacheControl: null,
1225
+ contentDisposition: null,
1226
+ contentEncoding: null,
1227
+ contentLanguage: null,
1228
+ contentType,
1229
+ fileSizeInBytes: sourceData.length,
1230
+ });
1231
+ const destination = "c";
1232
+ await adapter.copyAndReplace(source, destination);
1233
+ const result = await adapter.getBytes(destination);
1234
+ expect(result).toEqual(sourceData);
1235
+ });
1236
+ });
1237
+ describe("method: move", () => {
1238
+ test("Should return FILE_WRITE_ENUM.NOT_FOUND when source does not exists and destination does not exists", async () => {
1239
+ const noneExistingSource = "a";
1240
+ const noneExistingDestination = "c";
1241
+ const result = await adapter.move(noneExistingSource, noneExistingDestination);
1242
+ expect(result).toBe(FILE_WRITE_ENUM.NOT_FOUND);
1243
+ });
1244
+ test("Should return FILE_WRITE_ENUM.NOT_FOUND when source does not exists and destination exists", async () => {
1245
+ const noneExistingSource = "a";
1246
+ const destination = "c";
1247
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1248
+ const contentType = "application/octet-stream";
1249
+ await adapter.add(destination, {
1250
+ data,
1251
+ cacheControl: null,
1252
+ contentDisposition: null,
1253
+ contentEncoding: null,
1254
+ contentLanguage: null,
1255
+ contentType,
1256
+ fileSizeInBytes: data.length,
1257
+ });
1258
+ const result = await adapter.move(noneExistingSource, destination);
1259
+ expect(result).toBe(FILE_WRITE_ENUM.NOT_FOUND);
1260
+ });
1261
+ test("Should return FILE_WRITE_ENUM.KEY_EXISTS when source exists and destination exists", async () => {
1262
+ const source = "a";
1263
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1264
+ const contentType = "application/octet-stream";
1265
+ await adapter.add(source, {
1266
+ data: sourceData,
1267
+ cacheControl: null,
1268
+ contentDisposition: null,
1269
+ contentEncoding: null,
1270
+ contentLanguage: null,
1271
+ contentType,
1272
+ fileSizeInBytes: sourceData.length,
1273
+ });
1274
+ const destination = "c";
1275
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1276
+ await adapter.add(destination, {
1277
+ data: destinationData,
1278
+ cacheControl: null,
1279
+ contentDisposition: null,
1280
+ contentEncoding: null,
1281
+ contentLanguage: null,
1282
+ contentType,
1283
+ fileSizeInBytes: destinationData.length,
1284
+ });
1285
+ const result = await adapter.move(source, destination);
1286
+ expect(result).toBe(FILE_WRITE_ENUM.KEY_EXISTS);
1287
+ });
1288
+ test("Should not persist when source exists and destination exists", async () => {
1289
+ const source = "a";
1290
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1291
+ const contentType = "application/octet-stream";
1292
+ await adapter.add(source, {
1293
+ data: sourceData,
1294
+ cacheControl: null,
1295
+ contentDisposition: null,
1296
+ contentEncoding: null,
1297
+ contentLanguage: null,
1298
+ contentType,
1299
+ fileSizeInBytes: sourceData.length,
1300
+ });
1301
+ const destination = "c";
1302
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1303
+ await adapter.add(destination, {
1304
+ data: destinationData,
1305
+ cacheControl: null,
1306
+ contentDisposition: null,
1307
+ contentEncoding: null,
1308
+ contentLanguage: null,
1309
+ contentType,
1310
+ fileSizeInBytes: destinationData.length,
1311
+ });
1312
+ await adapter.move(source, destination);
1313
+ const result = await adapter.getBytes(destination);
1314
+ expect(result).toEqual(destinationData);
1315
+ });
1316
+ test("Should return FILE_WRITE_ENUM.SUCCESS when source exists and destination does not exists", async () => {
1317
+ const source = "a";
1318
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1319
+ const contentType = "application/octet-stream";
1320
+ await adapter.add(source, {
1321
+ data: sourceData,
1322
+ cacheControl: null,
1323
+ contentDisposition: null,
1324
+ contentEncoding: null,
1325
+ contentLanguage: null,
1326
+ contentType,
1327
+ fileSizeInBytes: sourceData.length,
1328
+ });
1329
+ const destination = "c";
1330
+ const result = await adapter.move(source, destination);
1331
+ expect(result).toBe(FILE_WRITE_ENUM.SUCCESS);
1332
+ });
1333
+ test("Should persist data when source exists and destination does not exists", async () => {
1334
+ const source = "a";
1335
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1336
+ const contentType = "application/octet-stream";
1337
+ await adapter.add(source, {
1338
+ data: sourceData,
1339
+ cacheControl: null,
1340
+ contentDisposition: null,
1341
+ contentEncoding: null,
1342
+ contentLanguage: null,
1343
+ contentType,
1344
+ fileSizeInBytes: sourceData.length,
1345
+ });
1346
+ const destination = "c";
1347
+ await adapter.move(source, destination);
1348
+ const result = await adapter.getBytes(destination);
1349
+ expect(result).toEqual(sourceData);
1350
+ });
1351
+ test("Should remove source when source exists and destination does not exists", async () => {
1352
+ const source = "a";
1353
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1354
+ const contentType = "application/octet-stream";
1355
+ await adapter.add(source, {
1356
+ data: sourceData,
1357
+ cacheControl: null,
1358
+ contentDisposition: null,
1359
+ contentEncoding: null,
1360
+ contentLanguage: null,
1361
+ contentType,
1362
+ fileSizeInBytes: sourceData.length,
1363
+ });
1364
+ const destination = "c";
1365
+ await adapter.move(source, destination);
1366
+ const result = await adapter.getBytes(source);
1367
+ expect(result).toBeNull();
1368
+ });
1369
+ });
1370
+ describe("method: moveAndReplace", () => {
1371
+ test("Should return false when source does not exists and destination does not exists", async () => {
1372
+ const noneExistingSource = "a";
1373
+ const noneExistingDestination = "c";
1374
+ const result = await adapter.moveAndReplace(noneExistingSource, noneExistingDestination);
1375
+ expect(result).toBe(false);
1376
+ });
1377
+ test("Should return false when source does not exists and destination exists", async () => {
1378
+ const noneExistingSource = "a";
1379
+ const destination = "c";
1380
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1381
+ const contentType = "application/octet-stream";
1382
+ await adapter.add(destination, {
1383
+ data,
1384
+ cacheControl: null,
1385
+ contentDisposition: null,
1386
+ contentEncoding: null,
1387
+ contentLanguage: null,
1388
+ contentType,
1389
+ fileSizeInBytes: data.length,
1390
+ });
1391
+ const result = await adapter.moveAndReplace(noneExistingSource, destination);
1392
+ expect(result).toBe(false);
1393
+ });
1394
+ test("Should return true when source exists and destination exists", async () => {
1395
+ const source = "a";
1396
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1397
+ const contentType = "application/octet-stream";
1398
+ await adapter.add(source, {
1399
+ data: sourceData,
1400
+ cacheControl: null,
1401
+ contentDisposition: null,
1402
+ contentEncoding: null,
1403
+ contentLanguage: null,
1404
+ contentType,
1405
+ fileSizeInBytes: sourceData.length,
1406
+ });
1407
+ const destination = "c";
1408
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1409
+ await adapter.add(destination, {
1410
+ data: destinationData,
1411
+ cacheControl: null,
1412
+ contentDisposition: null,
1413
+ contentEncoding: null,
1414
+ contentLanguage: null,
1415
+ contentType,
1416
+ fileSizeInBytes: destinationData.length,
1417
+ });
1418
+ const result = await adapter.moveAndReplace(source, destination);
1419
+ expect(result).toBe(true);
1420
+ });
1421
+ test("Should persist when source exists and destination exists", async () => {
1422
+ const source = "a";
1423
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1424
+ const contentType = "application/octet-stream";
1425
+ await adapter.add(source, {
1426
+ data: sourceData,
1427
+ cacheControl: null,
1428
+ contentDisposition: null,
1429
+ contentEncoding: null,
1430
+ contentLanguage: null,
1431
+ contentType,
1432
+ fileSizeInBytes: sourceData.length,
1433
+ });
1434
+ const destination = "c";
1435
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1436
+ await adapter.add(destination, {
1437
+ data: destinationData,
1438
+ cacheControl: null,
1439
+ contentDisposition: null,
1440
+ contentEncoding: null,
1441
+ contentLanguage: null,
1442
+ contentType,
1443
+ fileSizeInBytes: destinationData.length,
1444
+ });
1445
+ await adapter.moveAndReplace(source, destination);
1446
+ const result = await adapter.getBytes(destination);
1447
+ expect(result).toEqual(sourceData);
1448
+ });
1449
+ test("Should remove source when source exists and destination exists", async () => {
1450
+ const source = "a";
1451
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1452
+ const contentType = "application/octet-stream";
1453
+ await adapter.add(source, {
1454
+ data: sourceData,
1455
+ cacheControl: null,
1456
+ contentDisposition: null,
1457
+ contentEncoding: null,
1458
+ contentLanguage: null,
1459
+ contentType,
1460
+ fileSizeInBytes: sourceData.length,
1461
+ });
1462
+ const destination = "c";
1463
+ const destinationData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1464
+ await adapter.add(destination, {
1465
+ data: destinationData,
1466
+ cacheControl: null,
1467
+ contentDisposition: null,
1468
+ contentEncoding: null,
1469
+ contentLanguage: null,
1470
+ contentType,
1471
+ fileSizeInBytes: destinationData.length,
1472
+ });
1473
+ await adapter.moveAndReplace(source, destination);
1474
+ const result = await adapter.getBytes(source);
1475
+ expect(result).toBeNull();
1476
+ });
1477
+ test("Should return true when source exists and destination does not exists", async () => {
1478
+ const source = "a";
1479
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1480
+ const contentType = "application/octet-stream";
1481
+ await adapter.add(source, {
1482
+ data: sourceData,
1483
+ cacheControl: null,
1484
+ contentDisposition: null,
1485
+ contentEncoding: null,
1486
+ contentLanguage: null,
1487
+ contentType,
1488
+ fileSizeInBytes: sourceData.length,
1489
+ });
1490
+ const destination = "c";
1491
+ const result = await adapter.moveAndReplace(source, destination);
1492
+ expect(result).toBe(true);
1493
+ });
1494
+ test("Should persist data when source exists and destination does not exists", async () => {
1495
+ const source = "a";
1496
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1497
+ const contentType = "application/octet-stream";
1498
+ await adapter.add(source, {
1499
+ data: sourceData,
1500
+ cacheControl: null,
1501
+ contentDisposition: null,
1502
+ contentEncoding: null,
1503
+ contentLanguage: null,
1504
+ contentType,
1505
+ fileSizeInBytes: sourceData.length,
1506
+ });
1507
+ const destination = "c";
1508
+ await adapter.moveAndReplace(source, destination);
1509
+ const result = await adapter.getBytes(destination);
1510
+ expect(result).toEqual(sourceData);
1511
+ });
1512
+ test("Should remove source when source exists and destination does not exists", async () => {
1513
+ const source = "a";
1514
+ const sourceData = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1515
+ const contentType = "application/octet-stream";
1516
+ await adapter.add(source, {
1517
+ data: sourceData,
1518
+ cacheControl: null,
1519
+ contentDisposition: null,
1520
+ contentEncoding: null,
1521
+ contentLanguage: null,
1522
+ contentType,
1523
+ fileSizeInBytes: sourceData.length,
1524
+ });
1525
+ const destination = "c";
1526
+ await adapter.moveAndReplace(source, destination);
1527
+ const result = await adapter.getBytes(source);
1528
+ expect(result).toBeNull();
1529
+ });
1530
+ });
1531
+ describe("method: removeMany", () => {
1532
+ test("Should return false when all keys does not exists", async () => {
1533
+ const result = await adapter.removeMany(["a", "b", "c"]);
1534
+ expect(result).toBe(false);
1535
+ });
1536
+ test("Should return true when one key exists", async () => {
1537
+ const key = "a";
1538
+ const data = new Uint8Array(Buffer.from("CONTENT", "utf8"));
1539
+ const contentType = "application/octet-stream";
1540
+ await adapter.add(key, {
1541
+ data,
1542
+ cacheControl: null,
1543
+ contentDisposition: null,
1544
+ contentEncoding: null,
1545
+ contentLanguage: null,
1546
+ contentType,
1547
+ fileSizeInBytes: data.length,
1548
+ });
1549
+ const result = await adapter.removeMany([key, "b", "c"]);
1550
+ expect(result).toBe(true);
1551
+ });
1552
+ test("Should persist removal of the keys that exists", async () => {
1553
+ const data1 = new Uint8Array(Buffer.from("CONTENT_A", "utf8"));
1554
+ const contentType = "application/octet-stream";
1555
+ await adapter.add("a", {
1556
+ data: data1,
1557
+ cacheControl: null,
1558
+ contentDisposition: null,
1559
+ contentEncoding: null,
1560
+ contentLanguage: null,
1561
+ contentType,
1562
+ fileSizeInBytes: data1.length,
1563
+ });
1564
+ const data2 = new Uint8Array(Buffer.from("CONTENT_B", "utf8"));
1565
+ await adapter.add("b", {
1566
+ data: data2,
1567
+ cacheControl: null,
1568
+ contentDisposition: null,
1569
+ contentEncoding: null,
1570
+ contentLanguage: null,
1571
+ contentType,
1572
+ fileSizeInBytes: data2.length,
1573
+ });
1574
+ const data3 = new Uint8Array(Buffer.from("CONTENT_C", "utf8"));
1575
+ await adapter.add("c", {
1576
+ data: data3,
1577
+ cacheControl: null,
1578
+ contentDisposition: null,
1579
+ contentEncoding: null,
1580
+ contentLanguage: null,
1581
+ contentType,
1582
+ fileSizeInBytes: data3.length,
1583
+ });
1584
+ await adapter.removeMany(["a", "b"]);
1585
+ const result = [
1586
+ await adapter.getBytes("a"),
1587
+ await adapter.getBytes("b"),
1588
+ await adapter.getBytes("c"),
1589
+ ];
1590
+ expect(result).toEqual([null, null, data3]);
1591
+ });
1592
+ });
1593
+ describe("method: removeByPrefix", () => {
1594
+ test(`Should remove all keys that start with prefix "file-storage"`, async () => {
1595
+ const dataA = new Uint8Array(Buffer.from("CONTENT_A", "utf8"));
1596
+ const contentType = "application/octet-stream";
1597
+ await adapter.add("cache/a", {
1598
+ data: dataA,
1599
+ cacheControl: null,
1600
+ contentDisposition: null,
1601
+ contentEncoding: null,
1602
+ contentLanguage: null,
1603
+ contentType,
1604
+ fileSizeInBytes: dataA.length,
1605
+ });
1606
+ const dataB = new Uint8Array(Buffer.from("CONTENT_B", "utf8"));
1607
+ await adapter.add("cache/b", {
1608
+ data: dataB,
1609
+ cacheControl: null,
1610
+ contentDisposition: null,
1611
+ contentEncoding: null,
1612
+ contentLanguage: null,
1613
+ contentType,
1614
+ fileSizeInBytes: dataB.length,
1615
+ });
1616
+ const dataC = new Uint8Array(Buffer.from("CONTENT_C", "utf8"));
1617
+ await adapter.add("c", {
1618
+ data: dataC,
1619
+ cacheControl: null,
1620
+ contentDisposition: null,
1621
+ contentEncoding: null,
1622
+ contentLanguage: null,
1623
+ contentType,
1624
+ fileSizeInBytes: dataC.length,
1625
+ });
1626
+ await adapter.removeByPrefix("cache");
1627
+ const result = [
1628
+ await adapter.getBytes("cache/a"),
1629
+ await adapter.getBytes("cache/b"),
1630
+ await adapter.getBytes("c"),
1631
+ ];
1632
+ expect(result).toEqual([null, null, dataC]);
1633
+ });
1634
+ });
1635
+ });
1636
+ }
1637
+ //# sourceMappingURL=file-storage-adapter.test-suite.js.map