@effect-app/infra 0.7.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 (438) hide show
  1. package/.eslintrc.cjs +11 -0
  2. package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-314902b6271c341511f7398a50469024 +0 -0
  3. package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-3f072cc7afa09b6adaead0527ab9df83 +0 -0
  4. package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-74c3c295c110fc861b6a4c673afc3e24 +0 -0
  5. package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-bf6dae8cb9ea9740ceb39aefaf12716c +0 -0
  6. package/.jest-cache/haste-map-369fa5ca2164cc35b19159bd76147276-e7a7ff05756c055cb63be97ba8537525-cf9d1486029526079a5f68f2041dea02 +0 -0
  7. package/.jest-cache/haste-map-4ca41cc04e60c616a19cbb483cbf487b-e2f1f4b6d87214e3c49442fed31f310c-b4710ed9fb3d0757c4bf23045c585670 +0 -0
  8. package/.jest-cache/haste-map-4ca41cc04e60c616a19cbb483cbf487b-e2f1f4b6d87214e3c49442fed31f310c-ee17e5395bb1b7b36a4e2e22a6ae1449 +0 -0
  9. package/.jest-cache/haste-map-7dc16d7fae8c072843ed1c69eae73100-a8a4225b317477b49bca31f54559afb3-c16136699bb7f463be85273162b447c3 +0 -0
  10. package/.jest-cache/haste-map-9aa1e395a82e108eb49698982c574272-e2f1f4b6d87214e3c49442fed31f310c-f7435f46fc41ac5a13d06a49cae9a650 +0 -0
  11. package/.jest-cache/haste-map-9d206b45d610536c9ec65eec263c6964-a8a4225b317477b49bca31f54559afb3-3510506a330b44f1ae629033aac8fbb3 +0 -0
  12. package/.jest-cache/haste-map-a00ab30d0d656f9d3990958a54b9ccfd-87603b0fc921b26b622a5859b4c92bed-17b550b450b18840c25861aa6e835f0c +0 -0
  13. package/.jest-cache/haste-map-a00ab30d0d656f9d3990958a54b9ccfd-87603b0fc921b26b622a5859b4c92bed-4dc31290b1efc98335eb4c89167d75c3 +0 -0
  14. package/.jest-cache/haste-map-ab843cb0ffbadfd0deea4adb182c7ecd-87603b0fc921b26b622a5859b4c92bed-997106edf4bbc31567a378146180e45e +0 -0
  15. package/.jest-cache/haste-map-ab843cb0ffbadfd0deea4adb182c7ecd-87603b0fc921b26b622a5859b4c92bed-f0cd25414f9ed16c446940ca3aa23c1b +0 -0
  16. package/.jest-cache/haste-map-cf17f2edf0e949eebfdfca561816457c-e7a7ff05756c055cb63be97ba8537525-2cac07d09e6384e2d37c49714edad0ba +0 -0
  17. package/.jest-cache/haste-map-cf17f2edf0e949eebfdfca561816457c-e7a7ff05756c055cb63be97ba8537525-d7967c2976c5feac7161c964f0aa442f +0 -0
  18. package/.jest-cache/haste-map-fb1a173276d25bbff02f815600059283-938122bdc1c8836874b6585d7acb2e99-f705929cca05ce95ceaa6d520b560ce8 +0 -0
  19. package/.prettierignore +6 -0
  20. package/_cjs/_global.cjs +6 -0
  21. package/_cjs/_global.cjs.map +1 -0
  22. package/_cjs/_global.ext.cjs +6 -0
  23. package/_cjs/_global.ext.cjs.map +1 -0
  24. package/_cjs/_global.schema.cjs +5 -0
  25. package/_cjs/_global.schema.cjs.map +1 -0
  26. package/_cjs/errors.cjs +82 -0
  27. package/_cjs/errors.cjs.map +1 -0
  28. package/_cjs/ext.cjs +4 -0
  29. package/_cjs/ext.cjs.map +1 -0
  30. package/_cjs/index.cjs +6 -0
  31. package/_cjs/index.cjs.map +1 -0
  32. package/_cjs/lib/RequestContext.cjs +70 -0
  33. package/_cjs/lib/RequestContext.cjs.map +1 -0
  34. package/_cjs/lib/api/authorization.jwt.cjs +44 -0
  35. package/_cjs/lib/api/authorization.jwt.cjs.map +1 -0
  36. package/_cjs/lib/api/defaultErrorHandler.cjs +45 -0
  37. package/_cjs/lib/api/defaultErrorHandler.cjs.map +1 -0
  38. package/_cjs/lib/api/reportError.cjs +64 -0
  39. package/_cjs/lib/api/reportError.cjs.map +1 -0
  40. package/_cjs/lib/api/routing.cjs +262 -0
  41. package/_cjs/lib/api/routing.cjs.map +1 -0
  42. package/_cjs/lib/api/setupRequest.cjs +35 -0
  43. package/_cjs/lib/api/setupRequest.cjs.map +1 -0
  44. package/_cjs/lib/api/util.cjs +17 -0
  45. package/_cjs/lib/api/util.cjs.map +1 -0
  46. package/_cjs/lib/api/writeDocs.cjs +31 -0
  47. package/_cjs/lib/api/writeDocs.cjs.map +1 -0
  48. package/_cjs/lib/errorReporter.cjs +72 -0
  49. package/_cjs/lib/errorReporter.cjs.map +1 -0
  50. package/_cjs/lib/ext/Array.cjs +30 -0
  51. package/_cjs/lib/ext/Array.cjs.map +1 -0
  52. package/_cjs/lib/fileUtil.cjs +36 -0
  53. package/_cjs/lib/fileUtil.cjs.map +1 -0
  54. package/_cjs/lib/filter/types/errors.cjs +6 -0
  55. package/_cjs/lib/filter/types/errors.cjs.map +1 -0
  56. package/_cjs/lib/filter/types/fields.cjs +6 -0
  57. package/_cjs/lib/filter/types/fields.cjs.map +1 -0
  58. package/_cjs/lib/filter/types/index.cjs +61 -0
  59. package/_cjs/lib/filter/types/index.cjs.map +1 -0
  60. package/_cjs/lib/filter/types/path/common.cjs +6 -0
  61. package/_cjs/lib/filter/types/path/common.cjs.map +1 -0
  62. package/_cjs/lib/filter/types/path/eager.cjs +6 -0
  63. package/_cjs/lib/filter/types/path/eager.cjs.map +1 -0
  64. package/_cjs/lib/filter/types/path/index.cjs +8 -0
  65. package/_cjs/lib/filter/types/path/index.cjs.map +1 -0
  66. package/_cjs/lib/filter/types/utils.cjs +6 -0
  67. package/_cjs/lib/filter/types/utils.cjs.map +1 -0
  68. package/_cjs/lib/filter/types/validator.cjs +6 -0
  69. package/_cjs/lib/filter/types/validator.cjs.map +1 -0
  70. package/_cjs/lib/filter.cjs +238 -0
  71. package/_cjs/lib/filter.cjs.map +1 -0
  72. package/_cjs/lib/instrument.cjs +20 -0
  73. package/_cjs/lib/instrument.cjs.map +1 -0
  74. package/_cjs/lib/rateLimit.cjs +88 -0
  75. package/_cjs/lib/rateLimit.cjs.map +1 -0
  76. package/_cjs/services/CUPS/service.cjs +15 -0
  77. package/_cjs/services/CUPS/service.cjs.map +1 -0
  78. package/_cjs/services/CUPS.cjs +113 -0
  79. package/_cjs/services/CUPS.cjs.map +1 -0
  80. package/_cjs/services/Cache.cjs +39 -0
  81. package/_cjs/services/Cache.cjs.map +1 -0
  82. package/_cjs/services/Emailer/Sendgrid.cjs +112 -0
  83. package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -0
  84. package/_cjs/services/Emailer/fake.cjs +24 -0
  85. package/_cjs/services/Emailer/fake.cjs.map +1 -0
  86. package/_cjs/services/Emailer/service.cjs +12 -0
  87. package/_cjs/services/Emailer/service.cjs.map +1 -0
  88. package/_cjs/services/Emailer.cjs +17 -0
  89. package/_cjs/services/Emailer.cjs.map +1 -0
  90. package/_cjs/services/Repository.cjs +247 -0
  91. package/_cjs/services/Repository.cjs.map +1 -0
  92. package/_cjs/services/ServiceBus.cjs +69 -0
  93. package/_cjs/services/ServiceBus.cjs.map +1 -0
  94. package/_cjs/services/Store/Cosmos.cjs +324 -0
  95. package/_cjs/services/Store/Cosmos.cjs.map +1 -0
  96. package/_cjs/services/Store/Cosmos.test.cjs +59 -0
  97. package/_cjs/services/Store/Cosmos.test.cjs.map +1 -0
  98. package/_cjs/services/Store/Disk.cjs +62 -0
  99. package/_cjs/services/Store/Disk.cjs.map +1 -0
  100. package/_cjs/services/Store/Memory.cjs +70 -0
  101. package/_cjs/services/Store/Memory.cjs.map +1 -0
  102. package/_cjs/services/Store/Redis.cjs +72 -0
  103. package/_cjs/services/Store/Redis.cjs.map +1 -0
  104. package/_cjs/services/Store/codeFilter.test.cjs +61 -0
  105. package/_cjs/services/Store/codeFilter.test.cjs.map +1 -0
  106. package/_cjs/services/Store/index.cjs +72 -0
  107. package/_cjs/services/Store/index.cjs.map +1 -0
  108. package/_cjs/services/Store/service.cjs +72 -0
  109. package/_cjs/services/Store/service.cjs.map +1 -0
  110. package/_cjs/services/Store/utils.cjs +78 -0
  111. package/_cjs/services/Store/utils.cjs.map +1 -0
  112. package/_cjs/services/Store.cjs +17 -0
  113. package/_cjs/services/Store.cjs.map +1 -0
  114. package/_cjs/services/memQueue.cjs +32 -0
  115. package/_cjs/services/memQueue.cjs.map +1 -0
  116. package/_cjs/test.arbs.cjs +32 -0
  117. package/_cjs/test.arbs.cjs.map +1 -0
  118. package/_cjs/vendor/Cache/Cache/_internal/AtomicBoolean.cjs +14 -0
  119. package/_cjs/vendor/Cache/Cache/_internal/AtomicBoolean.cjs.map +1 -0
  120. package/_cjs/vendor/Cache/Cache/_internal/AtomicNumber.cjs +29 -0
  121. package/_cjs/vendor/Cache/Cache/_internal/AtomicNumber.cjs.map +1 -0
  122. package/_cjs/vendor/Cache/Cache/_internal/AtomicReference.cjs +32 -0
  123. package/_cjs/vendor/Cache/Cache/_internal/AtomicReference.cjs.map +1 -0
  124. package/_cjs/vendor/Cache/Cache/_internal/CacheInternal.cjs +266 -0
  125. package/_cjs/vendor/Cache/Cache/_internal/CacheInternal.cjs.map +1 -0
  126. package/_cjs/vendor/Cache/Cache/_internal/CacheState.cjs +31 -0
  127. package/_cjs/vendor/Cache/Cache/_internal/CacheState.cjs.map +1 -0
  128. package/_cjs/vendor/Cache/Cache/_internal/KeySet.cjs +67 -0
  129. package/_cjs/vendor/Cache/Cache/_internal/KeySet.cjs.map +1 -0
  130. package/_cjs/vendor/Cache/Cache/_internal/MapKey.cjs +44 -0
  131. package/_cjs/vendor/Cache/Cache/_internal/MapKey.cjs.map +1 -0
  132. package/_cjs/vendor/Cache/Cache/_internal/MapValue.cjs +33 -0
  133. package/_cjs/vendor/Cache/Cache/_internal/MapValue.cjs.map +1 -0
  134. package/_cjs/vendor/Cache/Cache/definition.cjs +13 -0
  135. package/_cjs/vendor/Cache/Cache/definition.cjs.map +1 -0
  136. package/_cjs/vendor/Cache/Cache/operations/make.cjs +20 -0
  137. package/_cjs/vendor/Cache/Cache/operations/make.cjs.map +1 -0
  138. package/_cjs/vendor/Cache/Cache/operations/makeWith.cjs +23 -0
  139. package/_cjs/vendor/Cache/Cache/operations/makeWith.cjs.map +1 -0
  140. package/_cjs/vendor/Cache/Cache/operations.cjs +28 -0
  141. package/_cjs/vendor/Cache/Cache/operations.cjs.map +1 -0
  142. package/_cjs/vendor/Cache/Cache.cjs +28 -0
  143. package/_cjs/vendor/Cache/Cache.cjs.map +1 -0
  144. package/_cjs/vendor/Cache/CacheStats/definition.cjs +13 -0
  145. package/_cjs/vendor/Cache/CacheStats/definition.cjs.map +1 -0
  146. package/_cjs/vendor/Cache/CacheStats.cjs +17 -0
  147. package/_cjs/vendor/Cache/CacheStats.cjs.map +1 -0
  148. package/_cjs/vendor/Cache/EntryStats/definition.cjs +11 -0
  149. package/_cjs/vendor/Cache/EntryStats/definition.cjs.map +1 -0
  150. package/_cjs/vendor/Cache/EntryStats.cjs +17 -0
  151. package/_cjs/vendor/Cache/EntryStats.cjs.map +1 -0
  152. package/_cjs/vendor/Cache/Lookup/definition.cjs +6 -0
  153. package/_cjs/vendor/Cache/Lookup/definition.cjs.map +1 -0
  154. package/_cjs/vendor/Cache/Lookup.cjs +17 -0
  155. package/_cjs/vendor/Cache/Lookup.cjs.map +1 -0
  156. package/_cjs/vendor/Cache/index.cjs +17 -0
  157. package/_cjs/vendor/Cache/index.cjs.map +1 -0
  158. package/_src/_global.ext.ts +34 -0
  159. package/_src/_global.schema.ts +10 -0
  160. package/_src/_global.ts +14 -0
  161. package/_src/errors.ts +50 -0
  162. package/_src/ext.ts +1 -0
  163. package/_src/index.ts +0 -0
  164. package/_src/lib/RequestContext.ts +132 -0
  165. package/_src/lib/api/authorization.jwt.ts +52 -0
  166. package/_src/lib/api/defaultErrorHandler.ts +92 -0
  167. package/_src/lib/api/reportError.ts +50 -0
  168. package/_src/lib/api/routing.ts +623 -0
  169. package/_src/lib/api/setupRequest.ts +22 -0
  170. package/_src/lib/api/util.ts +14 -0
  171. package/_src/lib/api/writeDocs.ts +26 -0
  172. package/_src/lib/errorReporter.ts +63 -0
  173. package/_src/lib/ext/Array.ts +32 -0
  174. package/_src/lib/fileUtil.ts +56 -0
  175. package/_src/lib/filter/types/errors.ts +47 -0
  176. package/_src/lib/filter/types/fields.ts +50 -0
  177. package/_src/lib/filter/types/index.ts +5 -0
  178. package/_src/lib/filter/types/path/common.ts +404 -0
  179. package/_src/lib/filter/types/path/eager.ts +146 -0
  180. package/_src/lib/filter/types/path/index.ts +14 -0
  181. package/_src/lib/filter/types/utils.ts +106 -0
  182. package/_src/lib/filter/types/validator.ts +46 -0
  183. package/_src/lib/filter.ts +323 -0
  184. package/_src/lib/instrument.ts +9 -0
  185. package/_src/lib/rateLimit.ts +126 -0
  186. package/_src/services/CUPS/service.ts +16 -0
  187. package/_src/services/CUPS.ts +105 -0
  188. package/_src/services/Cache.ts +45 -0
  189. package/_src/services/Emailer/Sendgrid.ts +123 -0
  190. package/_src/services/Emailer/fake.ts +14 -0
  191. package/_src/services/Emailer/service.ts +33 -0
  192. package/_src/services/Emailer.ts +1 -0
  193. package/_src/services/Repository.ts +513 -0
  194. package/_src/services/ServiceBus.ts +111 -0
  195. package/_src/services/Store/Cosmos.test.ts +91 -0
  196. package/_src/services/Store/Cosmos.ts +545 -0
  197. package/_src/services/Store/Disk.ts +81 -0
  198. package/_src/services/Store/Memory.ts +77 -0
  199. package/_src/services/Store/Redis.ts +92 -0
  200. package/_src/services/Store/codeFilter.test.ts +74 -0
  201. package/_src/services/Store/index.test.ts.bak +112 -0
  202. package/_src/services/Store/index.ts +62 -0
  203. package/_src/services/Store/service.ts +174 -0
  204. package/_src/services/Store/utils.ts +126 -0
  205. package/_src/services/Store.ts +1 -0
  206. package/_src/services/memQueue.ts +30 -0
  207. package/_src/test.arbs.ts +27 -0
  208. package/_src/vendor/Cache/Cache/_internal/AtomicBoolean.ts +7 -0
  209. package/_src/vendor/Cache/Cache/_internal/AtomicNumber.ts +28 -0
  210. package/_src/vendor/Cache/Cache/_internal/AtomicReference.ts +30 -0
  211. package/_src/vendor/Cache/Cache/_internal/CacheInternal.ts +293 -0
  212. package/_src/vendor/Cache/Cache/_internal/CacheState.ts +56 -0
  213. package/_src/vendor/Cache/Cache/_internal/KeySet.ts +58 -0
  214. package/_src/vendor/Cache/Cache/_internal/MapKey.ts +43 -0
  215. package/_src/vendor/Cache/Cache/_internal/MapValue.ts +39 -0
  216. package/_src/vendor/Cache/Cache/definition.ts +112 -0
  217. package/_src/vendor/Cache/Cache/operations/make.ts +17 -0
  218. package/_src/vendor/Cache/Cache/operations/makeWith.ts +32 -0
  219. package/_src/vendor/Cache/Cache/operations.ts +4 -0
  220. package/_src/vendor/Cache/Cache.ts +4 -0
  221. package/_src/vendor/Cache/CacheStats/definition.ts +23 -0
  222. package/_src/vendor/Cache/CacheStats.ts +3 -0
  223. package/_src/vendor/Cache/EntryStats/definition.ts +19 -0
  224. package/_src/vendor/Cache/EntryStats.ts +3 -0
  225. package/_src/vendor/Cache/Lookup/definition.ts +15 -0
  226. package/_src/vendor/Cache/Lookup.ts +3 -0
  227. package/_src/vendor/Cache/global.ts.bak +23 -0
  228. package/_src/vendor/Cache/index.ts +4 -0
  229. package/dist/_global.d.ts +10 -0
  230. package/dist/_global.d.ts.map +1 -0
  231. package/dist/_global.ext.d.ts +34 -0
  232. package/dist/_global.ext.d.ts.map +1 -0
  233. package/dist/_global.ext.js +2 -0
  234. package/dist/_global.js +12 -0
  235. package/dist/_global.schema.d.ts +6 -0
  236. package/dist/_global.schema.d.ts.map +1 -0
  237. package/dist/_global.schema.js +9 -0
  238. package/dist/errors.d.ts +41 -0
  239. package/dist/errors.d.ts.map +1 -0
  240. package/dist/errors.js +51 -0
  241. package/dist/ext.d.ts +2 -0
  242. package/dist/ext.d.ts.map +1 -0
  243. package/dist/ext.js +2 -0
  244. package/dist/index.d.ts +2 -0
  245. package/dist/index.d.ts.map +1 -0
  246. package/dist/index.js +2 -0
  247. package/dist/lib/RequestContext.d.ts +122 -0
  248. package/dist/lib/RequestContext.d.ts.map +1 -0
  249. package/dist/lib/RequestContext.js +52 -0
  250. package/dist/lib/api/authorization.jwt.d.ts +7 -0
  251. package/dist/lib/api/authorization.jwt.d.ts.map +1 -0
  252. package/dist/lib/api/authorization.jwt.js +32 -0
  253. package/dist/lib/api/defaultErrorHandler.d.ts +8 -0
  254. package/dist/lib/api/defaultErrorHandler.d.ts.map +1 -0
  255. package/dist/lib/api/defaultErrorHandler.js +37 -0
  256. package/dist/lib/api/reportError.d.ts +32 -0
  257. package/dist/lib/api/reportError.d.ts.map +1 -0
  258. package/dist/lib/api/reportError.js +44 -0
  259. package/dist/lib/api/routing.d.ts +100 -0
  260. package/dist/lib/api/routing.d.ts.map +1 -0
  261. package/dist/lib/api/routing.js +248 -0
  262. package/dist/lib/api/setupRequest.d.ts +13 -0
  263. package/dist/lib/api/setupRequest.d.ts.map +1 -0
  264. package/dist/lib/api/setupRequest.js +25 -0
  265. package/dist/lib/api/util.d.ts +3 -0
  266. package/dist/lib/api/util.d.ts.map +1 -0
  267. package/dist/lib/api/util.js +14 -0
  268. package/dist/lib/api/writeDocs.d.ts +3 -0
  269. package/dist/lib/api/writeDocs.d.ts.map +1 -0
  270. package/dist/lib/api/writeDocs.js +23 -0
  271. package/dist/lib/errorReporter.d.ts +8 -0
  272. package/dist/lib/errorReporter.d.ts.map +1 -0
  273. package/dist/lib/errorReporter.js +45 -0
  274. package/dist/lib/ext/Array.d.ts +19 -0
  275. package/dist/lib/ext/Array.d.ts.map +1 -0
  276. package/dist/lib/ext/Array.js +21 -0
  277. package/dist/lib/fileUtil.d.ts +22 -0
  278. package/dist/lib/fileUtil.d.ts.map +1 -0
  279. package/dist/lib/fileUtil.js +23 -0
  280. package/dist/lib/filter/types/errors.d.ts +30 -0
  281. package/dist/lib/filter/types/errors.d.ts.map +1 -0
  282. package/dist/lib/filter/types/errors.js +2 -0
  283. package/dist/lib/filter/types/fields.d.ts +29 -0
  284. package/dist/lib/filter/types/fields.d.ts.map +1 -0
  285. package/dist/lib/filter/types/fields.js +2 -0
  286. package/dist/lib/filter/types/index.d.ts +6 -0
  287. package/dist/lib/filter/types/index.d.ts.map +1 -0
  288. package/dist/lib/filter/types/index.js +6 -0
  289. package/dist/lib/filter/types/path/common.d.ts +316 -0
  290. package/dist/lib/filter/types/path/common.d.ts.map +1 -0
  291. package/dist/lib/filter/types/path/common.js +2 -0
  292. package/dist/lib/filter/types/path/eager.d.ts +95 -0
  293. package/dist/lib/filter/types/path/eager.d.ts.map +1 -0
  294. package/dist/lib/filter/types/path/eager.js +2 -0
  295. package/dist/lib/filter/types/path/index.d.ts +4 -0
  296. package/dist/lib/filter/types/path/index.d.ts.map +1 -0
  297. package/dist/lib/filter/types/path/index.js +4 -0
  298. package/dist/lib/filter/types/utils.d.ts +68 -0
  299. package/dist/lib/filter/types/utils.d.ts.map +1 -0
  300. package/dist/lib/filter/types/utils.js +2 -0
  301. package/dist/lib/filter/types/validator.d.ts +30 -0
  302. package/dist/lib/filter/types/validator.d.ts.map +1 -0
  303. package/dist/lib/filter/types/validator.js +2 -0
  304. package/dist/lib/filter.d.ts +133 -0
  305. package/dist/lib/filter.d.ts.map +1 -0
  306. package/dist/lib/filter.js +171 -0
  307. package/dist/lib/instrument.d.ts +7 -0
  308. package/dist/lib/instrument.d.ts.map +1 -0
  309. package/dist/lib/instrument.js +12 -0
  310. package/dist/lib/rateLimit.d.ts +43 -0
  311. package/dist/lib/rateLimit.d.ts.map +1 -0
  312. package/dist/lib/rateLimit.js +76 -0
  313. package/dist/services/CUPS/service.d.ts +19 -0
  314. package/dist/services/CUPS/service.d.ts.map +1 -0
  315. package/dist/services/CUPS/service.js +5 -0
  316. package/dist/services/CUPS.d.ts +10 -0
  317. package/dist/services/CUPS.d.ts.map +1 -0
  318. package/dist/services/CUPS.js +89 -0
  319. package/dist/services/Cache.d.ts +28 -0
  320. package/dist/services/Cache.d.ts.map +1 -0
  321. package/dist/services/Cache.js +28 -0
  322. package/dist/services/Emailer/Sendgrid.d.ts +180 -0
  323. package/dist/services/Emailer/Sendgrid.d.ts.map +1 -0
  324. package/dist/services/Emailer/Sendgrid.js +102 -0
  325. package/dist/services/Emailer/fake.d.ts +7 -0
  326. package/dist/services/Emailer/fake.d.ts.map +1 -0
  327. package/dist/services/Emailer/fake.js +15 -0
  328. package/dist/services/Emailer/service.d.ts +41 -0
  329. package/dist/services/Emailer/service.d.ts.map +1 -0
  330. package/dist/services/Emailer/service.js +3 -0
  331. package/dist/services/Emailer.d.ts +2 -0
  332. package/dist/services/Emailer.d.ts.map +1 -0
  333. package/dist/services/Emailer.js +2 -0
  334. package/dist/services/Repository.d.ts +300 -0
  335. package/dist/services/Repository.d.ts.map +1 -0
  336. package/dist/services/Repository.js +193 -0
  337. package/dist/services/ServiceBus.d.ts +26 -0
  338. package/dist/services/ServiceBus.d.ts.map +1 -0
  339. package/dist/services/ServiceBus.js +53 -0
  340. package/dist/services/Store/Cosmos.d.ts +56 -0
  341. package/dist/services/Store/Cosmos.d.ts.map +1 -0
  342. package/dist/services/Store/Cosmos.js +321 -0
  343. package/dist/services/Store/Cosmos.test.d.ts.map +1 -0
  344. package/dist/services/Store/Disk.d.ts +14 -0
  345. package/dist/services/Store/Disk.d.ts.map +1 -0
  346. package/dist/services/Store/Disk.js +52 -0
  347. package/dist/services/Store/Memory.d.ts +17 -0
  348. package/dist/services/Store/Memory.d.ts.map +1 -0
  349. package/dist/services/Store/Memory.js +60 -0
  350. package/dist/services/Store/Redis.d.ts +12 -0
  351. package/dist/services/Store/Redis.d.ts.map +1 -0
  352. package/dist/services/Store/Redis.js +59 -0
  353. package/dist/services/Store/codeFilter.test.d.ts.map +1 -0
  354. package/dist/services/Store/index.d.ts +10 -0
  355. package/dist/services/Store/index.d.ts.map +1 -0
  356. package/dist/services/Store/index.js +52 -0
  357. package/dist/services/Store/service.d.ts +113 -0
  358. package/dist/services/Store/service.d.ts.map +1 -0
  359. package/dist/services/Store/service.js +63 -0
  360. package/dist/services/Store/utils.d.ts +14 -0
  361. package/dist/services/Store/utils.d.ts.map +1 -0
  362. package/dist/services/Store/utils.js +103 -0
  363. package/dist/services/Store.d.ts +2 -0
  364. package/dist/services/Store.d.ts.map +1 -0
  365. package/dist/services/Store.js +2 -0
  366. package/dist/services/memQueue.d.ts +18 -0
  367. package/dist/services/memQueue.d.ts.map +1 -0
  368. package/dist/services/memQueue.js +24 -0
  369. package/dist/test.arbs.d.ts +13 -0
  370. package/dist/test.arbs.d.ts.map +1 -0
  371. package/dist/test.arbs.js +22 -0
  372. package/dist/vendor/Cache/Cache/_internal/AtomicBoolean.d.ts +5 -0
  373. package/dist/vendor/Cache/Cache/_internal/AtomicBoolean.d.ts.map +1 -0
  374. package/dist/vendor/Cache/Cache/_internal/AtomicBoolean.js +7 -0
  375. package/dist/vendor/Cache/Cache/_internal/AtomicNumber.d.ts +8 -0
  376. package/dist/vendor/Cache/Cache/_internal/AtomicNumber.d.ts.map +1 -0
  377. package/dist/vendor/Cache/Cache/_internal/AtomicNumber.js +22 -0
  378. package/dist/vendor/Cache/Cache/_internal/AtomicReference.d.ts +10 -0
  379. package/dist/vendor/Cache/Cache/_internal/AtomicReference.d.ts.map +1 -0
  380. package/dist/vendor/Cache/Cache/_internal/AtomicReference.js +25 -0
  381. package/dist/vendor/Cache/Cache/_internal/CacheInternal.d.ts +51 -0
  382. package/dist/vendor/Cache/Cache/_internal/CacheInternal.d.ts.map +1 -0
  383. package/dist/vendor/Cache/Cache/_internal/CacheInternal.js +253 -0
  384. package/dist/vendor/Cache/Cache/_internal/CacheState.d.ts +33 -0
  385. package/dist/vendor/Cache/Cache/_internal/CacheState.d.ts.map +1 -0
  386. package/dist/vendor/Cache/Cache/_internal/CacheState.js +21 -0
  387. package/dist/vendor/Cache/Cache/_internal/KeySet.d.ts +20 -0
  388. package/dist/vendor/Cache/Cache/_internal/KeySet.d.ts.map +1 -0
  389. package/dist/vendor/Cache/Cache/_internal/KeySet.js +61 -0
  390. package/dist/vendor/Cache/Cache/_internal/MapKey.d.ts +24 -0
  391. package/dist/vendor/Cache/Cache/_internal/MapKey.d.ts.map +1 -0
  392. package/dist/vendor/Cache/Cache/_internal/MapKey.js +37 -0
  393. package/dist/vendor/Cache/Cache/_internal/MapValue.d.ts +32 -0
  394. package/dist/vendor/Cache/Cache/_internal/MapValue.d.ts.map +1 -0
  395. package/dist/vendor/Cache/Cache/_internal/MapValue.js +24 -0
  396. package/dist/vendor/Cache/Cache/definition.d.ts +100 -0
  397. package/dist/vendor/Cache/Cache/definition.d.ts.map +1 -0
  398. package/dist/vendor/Cache/Cache/definition.js +5 -0
  399. package/dist/vendor/Cache/Cache/operations/make.d.ts +12 -0
  400. package/dist/vendor/Cache/Cache/operations/make.d.ts.map +1 -0
  401. package/dist/vendor/Cache/Cache/operations/make.js +12 -0
  402. package/dist/vendor/Cache/Cache/operations/makeWith.d.ts +14 -0
  403. package/dist/vendor/Cache/Cache/operations/makeWith.d.ts.map +1 -0
  404. package/dist/vendor/Cache/Cache/operations/makeWith.js +15 -0
  405. package/dist/vendor/Cache/Cache/operations.d.ts +3 -0
  406. package/dist/vendor/Cache/Cache/operations.d.ts.map +1 -0
  407. package/dist/vendor/Cache/Cache/operations.js +4 -0
  408. package/dist/vendor/Cache/Cache.d.ts +3 -0
  409. package/dist/vendor/Cache/Cache.d.ts.map +1 -0
  410. package/dist/vendor/Cache/Cache.js +4 -0
  411. package/dist/vendor/Cache/CacheStats/definition.d.ts +19 -0
  412. package/dist/vendor/Cache/CacheStats/definition.d.ts.map +1 -0
  413. package/dist/vendor/Cache/CacheStats/definition.js +6 -0
  414. package/dist/vendor/Cache/CacheStats.d.ts +2 -0
  415. package/dist/vendor/Cache/CacheStats.d.ts.map +1 -0
  416. package/dist/vendor/Cache/CacheStats.js +3 -0
  417. package/dist/vendor/Cache/EntryStats/definition.d.ts +17 -0
  418. package/dist/vendor/Cache/EntryStats/definition.d.ts.map +1 -0
  419. package/dist/vendor/Cache/EntryStats/definition.js +4 -0
  420. package/dist/vendor/Cache/EntryStats.d.ts +2 -0
  421. package/dist/vendor/Cache/EntryStats.d.ts.map +1 -0
  422. package/dist/vendor/Cache/EntryStats.js +3 -0
  423. package/dist/vendor/Cache/Lookup/definition.d.ts +17 -0
  424. package/dist/vendor/Cache/Lookup/definition.d.ts.map +1 -0
  425. package/dist/vendor/Cache/Lookup/definition.js +2 -0
  426. package/dist/vendor/Cache/Lookup.d.ts +2 -0
  427. package/dist/vendor/Cache/Lookup.d.ts.map +1 -0
  428. package/dist/vendor/Cache/Lookup.js +3 -0
  429. package/dist/vendor/Cache/index.d.ts +5 -0
  430. package/dist/vendor/Cache/index.d.ts.map +1 -0
  431. package/dist/vendor/Cache/index.js +5 -0
  432. package/package.json +756 -0
  433. package/tsconfig.json +107 -0
  434. package/tsconfig.json.bak +47 -0
  435. package/tsplus.config.json +6 -0
  436. package/types/modules.d.ts +1 -0
  437. package/vitest.config.ts +5 -0
  438. package/wallaby.cjs +1 -0
@@ -0,0 +1,53 @@
1
+ import * as tracer_1 from "@effect/io/Debug";
2
+ const fileName_1 = "packages/infra/_src/services/ServiceBus.ts";
3
+ import * as tsplus_module_1 from "@effect/io/Effect";
4
+ import * as tsplus_module_2 from "@fp-ts/data/Context";
5
+ import * as tsplus_module_3 from "@effect/io/Layer";
6
+ import { ServiceBusClient } from "@azure/service-bus";
7
+ function makeClient(url) {
8
+ return tracer_1.withCallTrace(fileName_1 + ":13:50")(tsplus_module_1.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":13:10")(tsplus_module_1.sync(() => new ServiceBusClient(url))), client => tracer_1.withCallTrace(fileName_1 + ":14:22")(tsplus_module_1.promise(() => client.close()))));
9
+ }
10
+ const Client = tsplus_module_2.Tag();
11
+ export const LiveServiceBusClient = (url) => tsplus_module_3.scoped(Client)(makeClient(url));
12
+ function makeSender(queueName) {
13
+ return tracer_1.withCallTrace(fileName_1 + ":22:17")(tsplus_module_1.gen(function* ($) {
14
+ const serviceBusClient = yield* $(tsplus_module_1.service(Client));
15
+ return yield* $(tracer_1.withCallTrace(fileName_1 + ":26:62")(tsplus_module_1.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":26:7")(tsplus_module_1.sync(() => serviceBusClient.createSender(queueName))), subscription => tracer_1.withCallTrace(fileName_1 + ":27:32")(tsplus_module_1.promise(() => subscription.close())))));
16
+ }));
17
+ }
18
+ export const Sender = tsplus_module_2.Tag();
19
+ export function LiveSender(queueName) {
20
+ return tsplus_module_3.scoped(Sender)(makeSender(queueName));
21
+ }
22
+ function makeReceiver(queueName) {
23
+ return tracer_1.withCallTrace(fileName_1 + ":39:17")(tsplus_module_1.gen(function* ($) {
24
+ const serviceBusClient = yield* $(tsplus_module_1.service(Client));
25
+ return yield* $(tracer_1.withCallTrace(fileName_1 + ":43:64")(tsplus_module_1.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":43:7")(tsplus_module_1.sync(() => serviceBusClient.createReceiver(queueName))), r => tracer_1.withCallTrace(fileName_1 + ":44:21")(tsplus_module_1.promise(() => r.close())))));
26
+ }));
27
+ }
28
+ export const Receiver = tsplus_module_2.Tag();
29
+ export function LiveReceiver(queueName) {
30
+ return tsplus_module_3.scoped(Receiver)(makeReceiver(queueName));
31
+ }
32
+ export function sendMessages(messages, options) {
33
+ return tracer_1.withCallTrace(fileName_1 + ":59:17")(tsplus_module_1.gen(function* ($) {
34
+ const s = yield* $(tsplus_module_1.service(Sender));
35
+ return yield* $(tracer_1.withCallTrace(fileName_1 + ":61:28")(tsplus_module_1.promise(() => s.sendMessages(messages, options))));
36
+ }));
37
+ }
38
+ export function subscribe(hndlr) {
39
+ return tracer_1.withCallTrace(fileName_1 + ":66:17")(tsplus_module_1.gen(function* ($) {
40
+ const r = yield* $(tsplus_module_1.service(Receiver));
41
+ const env = yield* $(tracer_1.withCallTrace(fileName_1 + ":69:33")(tsplus_module_1.environment()));
42
+ yield* $(tracer_1.withCallTrace(fileName_1 + ":85:9")(tsplus_module_1.acquireRelease(tracer_1.withCallTrace(fileName_1 + ":72:7")(tsplus_module_1.sync(() => r.subscribe({
43
+ processError: err => tsplus_module_1.unsafeRunPromise(tracer_1.withCallTrace(fileName_1 + ":76:16")(tsplus_module_1.provideEnvironment(env))(hndlr.processError(err))).catch(console.error),
44
+ processMessage: msg => tsplus_module_1.unsafeRunPromise(tracer_1.withCallTrace(fileName_1 + ":81:16")(tsplus_module_1.provideEnvironment(env))(hndlr.processMessage(msg)))
45
+ // DO NOT CATCH ERRORS here as they should return to the queue!
46
+ }))), subscription => tracer_1.withCallTrace(fileName_1 + ":86:32")(tsplus_module_1.promise(() => subscription.close())))));
47
+ }));
48
+ }
49
+ const SubscribeTag = tsplus_module_2.Tag();
50
+ export function Subscription(hndlr) {
51
+ return tsplus_module_3.scoped(SubscribeTag)(subscribe(hndlr));
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvc2VydmljZXMvU2VydmljZUJ1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXJELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IscURBQU8sNkVBQUEscUJBQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUM1QyxNQUFNLENBQUMsRUFBRSwrQ0FBQyx3QkFBZSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQSxDQUMvQyxFQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFBLEdBQUcsRUFBb0IsQ0FBQTtBQUN0QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsdUJBQThCLE1BQU0sRUFBcEMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFzQixDQUFBO0FBRTFGLFNBQVMsVUFBVSxDQUFDLFNBQWlCO0lBQ25DLHFEQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLHlCQUFDLE1BQU0sRUFBUSxDQUFBO1FBRWhELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQywrQ0FDYiw0RUFBQSxxQkFBTyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsR0FDcEQsWUFBWSxDQUFDLEVBQUUsK0NBQUMsd0JBQWUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsQ0FDM0QsRUFDRixDQUFBO0lBQ0gsQ0FBQyxDQUFDLEVBQUE7QUFDSixDQUFDO0FBQ0QsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFH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
@@ -0,0 +1,56 @@
1
+ import { Effect } from "@effect/io/Effect";
2
+ import { ROMap } from "@effect-app/prelude";
3
+ import { NonEmptyReadonlyArray } from "@fp-ts/data/ReadonlyArray";
4
+ import { Config } from "@effect/io/Config";
5
+ import * as CosmosClient from "@effect-app/infra-adapters/cosmos-client";
6
+ import type { FilterJoinSelect, JoinFindFilter, LegacyFilter, PersistenceModelType, StorageConfig, Store, StoreConfig, StoreWhereFilter, SupportedValues } from "./service.js";
7
+ import { StoreMaker } from "./service.js";
8
+ export declare function makeCosmosStore({ prefix }: StorageConfig): import("@effect/io/Effect").Effect<CosmosClient.CosmosClient, never, {
9
+ make: <Id extends string, PM extends PersistenceModelType<Id>, Id2 extends Id>(name: string, existing?: import("@effect/io/Effect").Effect<never, never, import("@effect-app/core/Prelude").Map<Id2, PM>> | undefined, config?: StoreConfig<PM> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<PM, Id>>;
10
+ }>;
11
+ /**
12
+ * @deprecated: should build Select into Where query
13
+ */
14
+ export declare function buildFilterJoinSelectCosmosQuery(filter: FilterJoinSelect, k: string, name: string, skip?: number, limit?: number): {
15
+ query: string;
16
+ parameters: {
17
+ name: string;
18
+ value: any;
19
+ }[];
20
+ };
21
+ /**
22
+ * @deprecated: is now part of Where query as k.-1.valueKey
23
+ */
24
+ export declare function buildFindJoinCosmosQuery(filter: JoinFindFilter, k: string, name: string, skip?: number, limit?: number): {
25
+ query: string;
26
+ parameters: {
27
+ name: string;
28
+ value: any;
29
+ }[];
30
+ };
31
+ /**
32
+ * @deprecated: should build into Where query
33
+ */
34
+ export declare function buildLegacyCosmosQuery<PM>(filter: LegacyFilter<PM>, name: string, importedMarkerId: string, skip?: number, limit?: number): {
35
+ query: string;
36
+ parameters: {
37
+ name: string;
38
+ value: string;
39
+ }[];
40
+ };
41
+ export declare function buildWhereCosmosQuery(filter: StoreWhereFilter, name: string, importedMarkerId: string, skip?: number, limit?: number): {
42
+ query: string;
43
+ parameters: {
44
+ name: string;
45
+ value: SupportedValues | readonly SupportedValues[];
46
+ }[];
47
+ };
48
+ export declare function buildCosmosQuery<PM>(filter: LegacyFilter<PM> | StoreWhereFilter, name: string, importedMarkerId: string, skip?: number, limit?: number): {
49
+ query: string;
50
+ parameters: {
51
+ name: string;
52
+ value: SupportedValues | readonly SupportedValues[];
53
+ }[];
54
+ };
55
+ export declare function CosmosStoreLive(config: Config<StorageConfig>): import("@effect/io/Layer").Layer<CosmosClient.CosmosClient, import("@effect/io/Config/Error").ConfigError, StoreMaker>;
56
+ //# sourceMappingURL=Cosmos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Cosmos.ts"],"names":[],"mappings":";;;;AAEA,OAAO,KAAK,YAAY,MAAM,0CAA0C,CAAA;AAMxE,OAAO,KAAK,EAEV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa;yFAK3C,MAAM;GAiVnB;AAuBD;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAaf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAYf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EACvC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAyBf;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAgDf;AAID,wBAAgB,gBAAgB,CAAC,EAAE,EACjC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAC3C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM;;;;;;EAOf;AAKD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,0HAE5D"}
@@ -0,0 +1,321 @@
1
+ import * as tracer_1 from "@effect/io/Debug";
2
+ const fileName_1 = "packages/infra/_src/services/Store/Cosmos.ts";
3
+ import * as tsplus_module_1 from "@effect/io/Effect";
4
+ import * as tsplus_module_2 from "@fp-ts/data/Option";
5
+ import * as tsplus_module_3 from "@effect-app/core/Array";
6
+ import * as tsplus_module_4 from "@effect-app/core/fluent/_ext/awesome/_files/Iterable";
7
+ import * as tsplus_module_5 from "@effect-app/infra/lib/instrument";
8
+ import * as tsplus_module_6 from "@effect-app/prelude/utils";
9
+ import * as tsplus_module_7 from "@fp-ts/data/Chunk";
10
+ import * as tsplus_module_8 from "@effect-app/core/Effect";
11
+ import * as tsplus_module_9 from "@effect-app/prelude/_ext/Prelude.ext";
12
+ import * as tsplus_module_10 from "@effect-app/core/Prelude";
13
+ import * as tsplus_module_11 from "@effect-app/core/_ext/ord.ext";
14
+ import * as tsplus_module_12 from "@effect-app/core/fluent/_ext/awesome/fluent/core";
15
+ /* eslint-disable @typescript-eslint/no-explicit-any */
16
+ import * as CosmosClient from "@effect-app/infra-adapters/cosmos-client";
17
+ import { OptimisticConcurrencyException } from "../../errors.js";
18
+ import { omit } from "@effect-app/prelude/utils";
19
+ import { StoreMaker } from "./service.js";
20
+ // TODO: Retry operation when running into RU limit.
21
+ export function makeCosmosStore({ prefix }) {
22
+ return tracer_1.withCallTrace(fileName_1 + ":25:17")(tsplus_module_1.gen(function* ($) {
23
+ const { db } = yield* $(tsplus_module_1.service(CosmosClient.CosmosClient));
24
+ return {
25
+ make: (name, existing, config) => tracer_1.withCallTrace(fileName_1 + ":33:16")(tsplus_module_1.gen(function* ($) {
26
+ const containerId = `${prefix}${name}`;
27
+ yield* $(tracer_1.withCallTrace(fileName_1 + ":36:20")(tsplus_module_1.promise(() => db.containers.createIfNotExists({
28
+ id: containerId,
29
+ uniqueKeyPolicy: config?.uniqueKeys
30
+ ? { uniqueKeys: config.uniqueKeys }
31
+ : undefined
32
+ }))));
33
+ const container = db.container(containerId);
34
+ const bulk = container.items.bulk.bind(container.items);
35
+ const execBatch = container.items.batch.bind(container.items);
36
+ const importedMarkerId = containerId;
37
+ const bulkSet = (items) => tracer_1.withCallTrace(fileName_1 + ":124:16")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr(tracer_1.withCallTrace(fileName_1 + ":51:20")(tsplus_module_1.gen(function* ($) {
38
+ // TODO: disable batching if need atomicity
39
+ // we delay and batch to keep low amount of RUs
40
+ const b = [...items].map(x => [
41
+ x,
42
+ tsplus_module_2.match(() => ({
43
+ operationType: "Create",
44
+ resourceBody: {
45
+ ...omit(x, "_etag"),
46
+ _partitionKey: config?.partitionValue(x)
47
+ },
48
+ partitionKey: config?.partitionValue(x)
49
+ }), eTag => ({
50
+ operationType: "Replace",
51
+ id: x.id,
52
+ resourceBody: {
53
+ ...omit(x, "_etag"),
54
+ _partitionKey: config?.partitionValue(x)
55
+ },
56
+ ifMatch: eTag,
57
+ partitionKey: config?.partitionValue(x)
58
+ }))(tsplus_module_2.fromNullable(x._etag))
59
+ ]);
60
+ const batches = tsplus_module_3.chunk_(b, config?.maxBulkSize ?? 10).toReadonlyArray();
61
+ const batchResult = yield* $(tsplus_module_4.ext_forEach(batches.map((x, i) => [i, x]), ([i, batch]) => tracer_1.withCallTrace(fileName_1 + ":88:26")(tsplus_module_1.flatMap(responses => tracer_1.withCallTrace(fileName_1 + ":89:34")(tsplus_module_1.gen(function* ($) {
62
+ const r = responses.find(x => x.statusCode === 412);
63
+ if (r) {
64
+ return yield* $(tracer_1.withCallTrace(fileName_1 + ":93:40")(tsplus_module_1.fail(new OptimisticConcurrencyException(name, JSON.stringify(r.resourceBody?.["id"])))));
65
+ }
66
+ const r2 = responses.find(x => x.statusCode > 299 || x.statusCode < 200);
67
+ if (r2) {
68
+ return yield* $(tracer_1.withCallTrace(fileName_1 + ":106:40")(tsplus_module_1.die(new CosmosDbOperationError("not able to update record: " + r2.statusCode))));
69
+ }
70
+ return batch.map(([e], i) => ({
71
+ ...e,
72
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
73
+ _etag: responses[i].eTag
74
+ }));
75
+ }))))(tracer_1.withCallTrace(fileName_1 + ":87:26")(tsplus_module_1.delay(tsplus_module_3.millis_(i === 0 ? 0 : 1100)))(tracer_1.withCallTrace(fileName_1 + ":86:30")(tsplus_module_1.promise(() => bulk(batch.map(([, op]) => op))))))));
76
+ return batchResult.toReadonlyArray().flat();
77
+ })), "cosmos.bulkSet"));
78
+ const batchSet = (items) => {
79
+ return tracer_1.withCallTrace(fileName_1 + ":186:16")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr((() => {
80
+ const batch = [...items].map(x => [
81
+ x,
82
+ tsplus_module_2.match(() => ({
83
+ operationType: "Create",
84
+ resourceBody: {
85
+ ...omit(x, "_etag"),
86
+ _partitionKey: config?.partitionValue(x)
87
+ }
88
+ }), eTag => ({
89
+ operationType: "Replace",
90
+ id: x.id,
91
+ resourceBody: {
92
+ ...omit(x, "_etag"),
93
+ _partitionKey: config?.partitionValue(x)
94
+ },
95
+ ifMatch: eTag
96
+ }))(tsplus_module_2.fromNullable(x._etag))
97
+ ]);
98
+ const ex = batch.map(([, c]) => c);
99
+ return tracer_1.withCallTrace(fileName_1 + ":157:20")(tsplus_module_1.flatMap(x => tracer_1.withCallTrace(fileName_1 + ":158:28")(tsplus_module_1.gen(function* ($) {
100
+ const result = x.result ?? [];
101
+ const firstFailed = result.find((x) => x.statusCode > 299 || x.statusCode < 200);
102
+ if (firstFailed) {
103
+ const code = firstFailed.statusCode ?? 0;
104
+ if (code === 412) {
105
+ return yield* $(tracer_1.withCallTrace(fileName_1 + ":167:36")(tsplus_module_1.fail(new OptimisticConcurrencyException(name, "batch"))));
106
+ }
107
+ return yield* $(tracer_1.withCallTrace(fileName_1 + ":172:34")(tsplus_module_1.die(new CosmosDbOperationError("not able to update record: " + code))));
108
+ }
109
+ return batch.map(([e], i) => ({
110
+ ...e,
111
+ _etag: result[i]?.eTag
112
+ }));
113
+ }))))(tracer_1.withCallTrace(fileName_1 + ":156:24")(tsplus_module_1.promise(() => execBatch(ex, ex[0]?.resourceBody._partitionKey))));
114
+ })(), "cosmos.batchSet"));
115
+ };
116
+ const s = {
117
+ all: tracer_1.withCallTrace(fileName_1 + ":203:16")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr(tracer_1.withCallTrace(fileName_1 + ":195:16")(tsplus_module_1.flatMap(q => tracer_1.withCallTrace(fileName_1 + ":196:24")(tsplus_module_1.promise(() => container.items
118
+ .query(q)
119
+ .fetchAll()
120
+ .then(({ resources }) => tsplus_module_3.ext_itToChunk(resources))))))(tracer_1.withCallTrace(fileName_1 + ":194:16")(tsplus_module_1.tap(q => logQuery(q)))(tracer_1.withCallTrace(fileName_1 + ":190:18")(tsplus_module_1.sync(() => ({
121
+ query: `SELECT * FROM ${name} f WHERE f.id != @id`,
122
+ parameters: [{ name: "@id", value: importedMarkerId }]
123
+ }))))), "cosmos.all")),
124
+ filterJoinSelect: (filter, cursor) => tracer_1.withCallTrace(fileName_1 + ":232:18")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr(tracer_1.withCallTrace(fileName_1 + ":221:18")(tsplus_module_1.map(a => {
125
+ const v = a
126
+ .flatMap(_ => _)
127
+ .map(x => tsplus_module_6.spread(x, ({ r, ...rest }) => ({ ...rest, ...r })));
128
+ return tsplus_module_7.fromIterable(v);
129
+ }))(tsplus_module_4.ext_forEach(filter.keys, k => tracer_1.withCallTrace(fileName_1 + ":212:22")(tsplus_module_1.flatMap(q => tracer_1.withCallTrace(fileName_1 + ":213:30")(tsplus_module_1.promise(() => container.items
130
+ .query(q)
131
+ .fetchAll()
132
+ .then(({ resources }) => tsplus_module_3.ext_itToChunk(resources))))))(tracer_1.withCallTrace(fileName_1 + ":211:22")(tsplus_module_1.tap(q => logQuery(q)))(tracer_1.withCallTrace(fileName_1 + ":210:19")(tsplus_module_1.sync(() => buildFilterJoinSelectCosmosQuery(filter, k, name, cursor?.skip, cursor?.limit))))))), "cosmos.filterJoinSelect")),
133
+ /**
134
+ * May return duplicate results for "join_find", when matching more than once.
135
+ */
136
+ filter: (filter, cursor) => {
137
+ const skip = cursor?.skip;
138
+ const limit = cursor?.limit;
139
+ return tracer_1.withCallTrace(fileName_1 + ":268:18")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr((filter.type === "join_find"
140
+ ? // This is a problem if one of the multiple joined arrays can be empty!
141
+ // https://stackoverflow.com/questions/60320780/azure-cosmosdb-sql-join-not-returning-results-when-the-child-contains-empty-arra
142
+ // so we use multiple queries instead.
143
+ tracer_1.withCallTrace(fileName_1 + ":256:22")(tsplus_module_1.map(_ => _.flatMap(_ => _)))(// This is a problem if one of the multiple joined arrays can be empty!
144
+ tsplus_module_4.ext_forEach(// This is a problem if one of the multiple joined arrays can be empty!
145
+ filter.keys, k => tracer_1.withCallTrace(fileName_1 + ":247:26")(tsplus_module_1.flatMap(q => tracer_1.withCallTrace(fileName_1 + ":248:34")(tsplus_module_1.promise(() => container.items
146
+ .query(q)
147
+ .fetchAll()
148
+ .then(({ resources }) => tsplus_module_3.ext_itToChunk(resources))))))(tracer_1.withCallTrace(fileName_1 + ":246:26")(tsplus_module_1.tap(q => logQuery(q)))(tracer_1.withCallTrace(fileName_1 + ":245:23")(tsplus_module_1.sync(() => buildFindJoinCosmosQuery(filter, k, name, skip, limit)))))))
149
+ : tracer_1.withCallTrace(fileName_1 + ":259:20")(tsplus_module_1.flatMap(q => tracer_1.withCallTrace(fileName_1 + ":260:28")(tsplus_module_1.promise(() => container.items.query(q)
150
+ .fetchAll()
151
+ .then(({ resources }) => tsplus_module_3.ext_itToChunk(resources.map(_ => _.f)))))))(tracer_1.withCallTrace(fileName_1 + ":258:20")(tsplus_module_1.tap(q => logQuery(q)))(tracer_1.withCallTrace(fileName_1 + ":257:19")(tsplus_module_1.sync(() => buildCosmosQuery(filter, name, importedMarkerId, skip, limit)))))), "cosmos.filter"));
152
+ },
153
+ find: id => tracer_1.withCallTrace(fileName_1 + ":277:18")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr(tracer_1.withCallTrace(fileName_1 + ":271:22")(tsplus_module_1.promise(() => container
154
+ .item(id, config?.partitionValue({ id }))
155
+ .read()
156
+ .then(({ resource }) => tsplus_module_2.fromNullable(resource)))), "cosmos.find")),
157
+ set: e => tracer_1.withCallTrace(fileName_1 + ":318:18")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr(tracer_1.withCallTrace(fileName_1 + ":301:18")(tsplus_module_1.flatMap(x => {
158
+ if (x.statusCode === 412) {
159
+ return tracer_1.withCallTrace(fileName_1 + ":303:35")(tsplus_module_1.fail(new OptimisticConcurrencyException(name, e.id)));
160
+ }
161
+ if (x.statusCode > 299 || x.statusCode < 200) {
162
+ return tracer_1.withCallTrace(fileName_1 + ":306:35")(tsplus_module_1.die(new CosmosDbOperationError("not able to update record: " + x.statusCode)));
163
+ }
164
+ return tracer_1.withCallTrace(fileName_1 + ":312:26")(tsplus_module_1.sync(() => ({
165
+ ...e,
166
+ _etag: x.etag
167
+ })));
168
+ }))(tsplus_module_2.match(() => tracer_1.withCallTrace(fileName_1 + ":282:28")(tsplus_module_1.promise(() => container.items.create({
169
+ ...e,
170
+ _partitionKey: config?.partitionValue(e)
171
+ }))), eTag => tracer_1.withCallTrace(fileName_1 + ":289:28")(tsplus_module_1.promise(() => container.item(e.id, config?.partitionValue(e)).replace({ ...e, _partitionKey: config?.partitionValue(e) }, {
172
+ accessCondition: {
173
+ type: "IfMatch",
174
+ condition: eTag
175
+ }
176
+ }))))(tsplus_module_2.fromNullable(e._etag))), "cosmos.set")),
177
+ batchSet,
178
+ bulkSet,
179
+ remove: (e) => tracer_1.withCallTrace(fileName_1 + ":324:18")(tsplus_module_1.logAnnotate("cosmos.db", containerId))(tsplus_module_5.instr(tracer_1.withCallTrace(fileName_1 + ":322:22")(tsplus_module_1.promise(() => container.item(e.id, config?.partitionValue(e)).delete())), "cosmos.remove"))
180
+ };
181
+ // handle mock data
182
+ const marker = yield* $(tracer_1.withCallTrace(fileName_1 + ":329:20")(tsplus_module_1.promise(() => container
183
+ .item(importedMarkerId, importedMarkerId)
184
+ .read()
185
+ .then(({ resource }) => tsplus_module_2.fromNullable(resource)))));
186
+ if (!tsplus_module_2.isSome(marker)) {
187
+ console.log("Creating mock data for " + name);
188
+ if (existing) {
189
+ const m = yield* $(existing);
190
+ yield* $(tracer_1.withCallTrace(fileName_1 + ":343:20")(tsplus_module_8.flatMapOpt(tracer_1.withCallTrace(fileName_1 + ":342:17")(tsplus_module_1.sync(() => tsplus_module_3.toNonEmptyArray([...m.values()]))), a => tracer_1.withCallTrace(fileName_1 + ":348:24")(tsplus_module_1.delay(tsplus_module_3.millis_(1100)))(tsplus_module_1.orDie(s
191
+ .bulkSet(a))))));
192
+ }
193
+ // Mark as imported
194
+ yield* $(tracer_1.withCallTrace(fileName_1 + ":354:22")(tsplus_module_1.promise(() => container.items.create({
195
+ _partitionKey: importedMarkerId,
196
+ id: importedMarkerId
197
+ }))));
198
+ }
199
+ return s;
200
+ }))
201
+ };
202
+ }));
203
+ }
204
+ function logQuery(q) {
205
+ return tsplus_module_9.logAnnotates({
206
+ query: q.query,
207
+ parameters: JSON.stringify(q.parameters.reduce((acc, v) => {
208
+ acc[v.name] = v.value;
209
+ return acc;
210
+ }, {}), undefined, 2)
211
+ })(tracer_1.withCallTrace(fileName_1 + ":375:17")(tsplus_module_1.logDebug("cosmos query")));
212
+ }
213
+ /**
214
+ * @deprecated: should build Select into Where query
215
+ */
216
+ export function buildFilterJoinSelectCosmosQuery(filter, k, name, skip, limit) {
217
+ const lm = skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : "";
218
+ return {
219
+ query: `
220
+ SELECT r, f.id as _rootId
221
+ FROM ${name} f
222
+ JOIN r IN f.${k}
223
+ WHERE LOWER(r.${filter.valueKey}) = LOWER(@value)
224
+ ${lm}
225
+ `,
226
+ parameters: [{ name: "@value", value: filter.value }]
227
+ };
228
+ }
229
+ /**
230
+ * @deprecated: is now part of Where query as k.-1.valueKey
231
+ */
232
+ export function buildFindJoinCosmosQuery(filter, k, name, skip, limit) {
233
+ const lm = skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : "";
234
+ return {
235
+ query: `
236
+ SELECT DISTINCT VALUE f
237
+ FROM ${name} f
238
+ JOIN r IN f.${k}
239
+ WHERE LOWER(r.${filter.valueKey}) = LOWER(@value)
240
+ ${lm}`,
241
+ parameters: [{ name: "@value", value: filter.value }]
242
+ };
243
+ }
244
+ /**
245
+ * @deprecated: should build into Where query
246
+ */
247
+ export function buildLegacyCosmosQuery(filter, name, importedMarkerId, skip, limit) {
248
+ const lm = skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : "";
249
+ return {
250
+ query: `
251
+ SELECT f
252
+ FROM ${name} AS f
253
+ WHERE f.id != @id AND f.${String(filter.by)} LIKE @filter
254
+ ${lm}`,
255
+ parameters: [
256
+ { name: "@id", value: importedMarkerId },
257
+ {
258
+ name: "@filter",
259
+ value: filter.type === "endsWith"
260
+ ? `%${filter.value}`
261
+ : filter.type === "contains"
262
+ ? `%${filter.value}%`
263
+ : `${filter.value}%`
264
+ }
265
+ ]
266
+ };
267
+ }
268
+ export function buildWhereCosmosQuery(filter, name, importedMarkerId, skip, limit) {
269
+ const lm = skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : "";
270
+ return {
271
+ query: `
272
+ SELECT f
273
+ FROM ${name} AS f
274
+ ${tsplus_module_11.uniqArray(tsplus_module_10.Equal.string)(filter.where.filter(_ => _.key.includes(".-1."))
275
+ .map(_ => _.key.split(".-1.")[0])
276
+ .map(_ => `JOIN ${_} IN f.${_}`))
277
+ .join("\n")}
278
+ WHERE f.id != @id AND ${filter.where
279
+ .map(_ => _.key.includes(".-1.") ?
280
+ { ..._, f: _.key.split(".-1.")[0], key: _.key.split(".-1.")[1] } :
281
+ { ..._, f: "f" })
282
+ .map((x, i) => x.t === "in"
283
+ ? `ARRAY_CONTAINS(@v${i}, ${x.f}.${x.key})`
284
+ : x.t === "not-in"
285
+ ? `ARRAY_CONTAINS(@v${i}, ${x.f}.${x.key}, false)`
286
+ : x.t === "not-eq"
287
+ ? x.value === null
288
+ ? `IS_NULL(${x.f}.${x.key}) = false`
289
+ : `${lowerIfNeeded(`${x.f}.${x.key}`, x.value)} <> ${lowerIfNeeded(`@v${i}`, x.value)}`
290
+ : x.value === null
291
+ ? `IS_NULL(${x.f}.${x.key}) = true`
292
+ : `${lowerIfNeeded(`${x.f}.${x.key}`, x.value)} = ${lowerIfNeeded(`@v${i}`, x.value)}`)
293
+ .join(filter.mode === "or" ? " OR " : " AND ")}
294
+ ${lm}`,
295
+ parameters: [
296
+ { name: "@id", value: importedMarkerId },
297
+ ...tsplus_module_12.ext_toMutable(filter.where
298
+ .map((x, i) => ({
299
+ name: `@v${i}`,
300
+ value: x.value
301
+ })))
302
+ ]
303
+ };
304
+ }
305
+ const lowerIfNeeded = (key, value) => typeof value === "string" ? `LOWER(${key})` : `${key}`;
306
+ export function buildCosmosQuery(filter, name, importedMarkerId, skip, limit) {
307
+ return filter.type === "startsWith" ||
308
+ filter.type === "endsWith" ||
309
+ filter.type === "contains"
310
+ ? buildLegacyCosmosQuery(filter, name, importedMarkerId, skip, limit)
311
+ : buildWhereCosmosQuery(filter, name, importedMarkerId, skip, limit);
312
+ }
313
+ class CosmosDbOperationError {
314
+ constructor(message) {
315
+ this.message = message;
316
+ }
317
+ }
318
+ export function CosmosStoreLive(config) {
319
+ return tsplus_module_1.toLayer(StoreMaker)(tracer_1.withCallTrace(fileName_1 + ":544:24")(tsplus_module_1.flatMap(makeCosmosStore))(tsplus_module_1.config(config)));
320
+ }
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9TdG9yZS9Db3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQ0FBMEMsQ0FBQTtBQUV4RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUVoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFjaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBaUI7SUFDdkQscURBQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyx5QkFBQyxZQUFZLENBQUMsWUFBWSxFQUFRLENBQUE7UUFDekQsT0FBTztZQUNMLElBQUksRUFBRSxDQUNKLElBQVksRUFDWixRQUErQyxFQUMvQyxNQUF3QixFQUN4QixFQUFFLCtDQUNGLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sV0FBVyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFBO2dCQUN0QyxLQUFLLENBQUMsQ0FBQyxDQUFDLCtDQUNOLHdCQUFlLEdBQUcsRUFBRSxDQUNsQixFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO29CQUM5QixFQUFFLEVBQUUsV0FBVztvQkFDZixlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVU7d0JBQ2pDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFO3dCQUNuQyxDQUFDLENBQUMsU0FBUztpQkFDZCxDQUFDLENBQ0gsRUFDRixDQUFBO2dCQUNELE1BQU0sU0FB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cosmos.test.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Cosmos.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAA;AAK/E,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAA;AACnC,MAAM,MAAM,oBAAoB,GAAG,OAAO,EAAE,CAAA;AAE5C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,gBAAgB,oBAEzF;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,CACT,CAAC,EAAE,oBAAoB,KACpB,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,EAChC,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,oBASpB;AAED,KAAK,aAAa,GAAG;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,KAAK,SAAS,GAAG;IACf,CAAC,EAAE,MAAM,CAAA;IACT,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;CAC5B,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Effect } from "@effect/io/Effect";
2
+ import { ROMap } from "@effect-app/prelude";
3
+ import { Config } from "@effect/io/Config";
4
+ import type { PersistenceModelType, StorageConfig, Store, StoreConfig } from "./service.js";
5
+ import { StoreMaker } from "./service.js";
6
+ /**
7
+ * The Disk-backed store, flushes writes in background, but keeps the data in memory
8
+ * and should therefore be as fast as the Memory Store.
9
+ */
10
+ export declare function makeDiskStore({ prefix }: StorageConfig): import("@effect/io/Effect").Effect<never, never, {
11
+ make: <Id extends string, Id2 extends Id, E extends PersistenceModelType<Id>>(name: string, existing?: import("@effect/io/Effect").Effect<never, never, import("@effect-app/core/Prelude").Map<Id2, E>> | undefined, _config?: StoreConfig<E> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<E, Id>>;
12
+ }>;
13
+ export declare function DiskStoreLive(config: Config<StorageConfig>): import("@effect/io/Layer").Layer<never, import("@effect/io/Config/Error").ConfigError, StoreMaker>;
14
+ //# sourceMappingURL=Disk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Disk.ts"],"names":[],"mappings":";;;AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa;wFAQzC,MAAM;GAqDnB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,sGAI1D"}
@@ -0,0 +1,52 @@
1
+ import * as tracer_1 from "@effect/io/Debug";
2
+ const fileName_1 = "packages/infra/_src/services/Store/Disk.ts";
3
+ import * as tsplus_module_1 from "@effect/io/Effect";
4
+ import * as tsplus_module_2 from "@effect-app/prelude";
5
+ import * as tsplus_module_3 from "@effect-app/core/Function";
6
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7
+ import * as fu from "@effect-app/infra-adapters/simpledb/fileutil";
8
+ import fs from "fs";
9
+ import { makeMemoryStore } from "./Memory.js";
10
+ import { StoreMaker } from "./service.js";
11
+ /**
12
+ * The Disk-backed store, flushes writes in background, but keeps the data in memory
13
+ * and should therefore be as fast as the Memory Store.
14
+ */
15
+ export function makeDiskStore({ prefix }) {
16
+ return tracer_1.withCallTrace(fileName_1 + ":15:10")(tsplus_module_1.sync(() => {
17
+ const dir = "./.data";
18
+ if (!fs.existsSync(dir)) {
19
+ fs.mkdirSync(dir);
20
+ }
21
+ return {
22
+ make: (name, existing, _config) => tracer_1.withCallTrace(fileName_1 + ":26:16")(tsplus_module_1.gen(function* ($) {
23
+ const file = dir + "/" + prefix + name + ".json";
24
+ const fsStore = {
25
+ get: tsplus_module_1.orDie(tracer_1.withCallTrace(fileName_1 + ":31:16")(tsplus_module_1.map(x => JSON.parse(x)))(fu
26
+ .readTextFile(file))),
27
+ setRaw: (v) => JSON.stringify([...v], undefined, 2)["|>"](json => fu.writeTextFile(file, json))
28
+ };
29
+ const { make } = makeMemoryStore();
30
+ const store = yield* $(make(name, !fs.existsSync(file)
31
+ ? existing ?? tracer_1.withCallTrace(fileName_1 + ":42:31")(tsplus_module_1.sync(() => tsplus_module_2.ROMap.empty))
32
+ : tracer_1.withCallTrace(fileName_1 + ":43:31")(tsplus_module_1.map(x => tsplus_module_2.ROMap.make(x.map(x => [x.id, x]))))(fsStore.get)));
33
+ yield* $(tracer_1.withCallTrace(fileName_1 + ":47:30")(tsplus_module_1.flatMap(fsStore.setRaw))(store.all));
34
+ const sem = tsplus_module_1.unsafeMakeSemaphore(1);
35
+ const withPermit = sem.withPermits(1);
36
+ const flushToDisk = withPermit(tracer_1.withCallTrace(fileName_1 + ":51:41")(tsplus_module_1.flatMap(fsStore.setRaw))(store.all));
37
+ const s = {
38
+ ...store,
39
+ batchSet: tsplus_module_3.flow(store.batchSet, t => tracer_1.withCallTrace(fileName_1 + ":55:17")(tsplus_module_1.tap(() => tsplus_module_1.forkDaemon(tracer_1.withCallTrace(fileName_1 + ":55:39")(tsplus_module_1.tapErrorCause(err => tracer_1.withCallTrace(fileName_1 + ":55:60")(tsplus_module_1.sync(() => console.error(err)))))(flushToDisk))))(t)),
40
+ bulkSet: tsplus_module_3.flow(store.bulkSet, t => tracer_1.withCallTrace(fileName_1 + ":57:17")(tsplus_module_1.tap(() => tsplus_module_1.forkDaemon(tracer_1.withCallTrace(fileName_1 + ":58:29")(tsplus_module_1.tapErrorCause(err => tracer_1.withCallTrace(fileName_1 + ":59:19")(tsplus_module_1.sync(() => console.error(err)))))(flushToDisk))))(t)),
41
+ set: tsplus_module_3.flow(store.set, t => tracer_1.withCallTrace(fileName_1 + ":63:17")(tsplus_module_1.tap(() => tsplus_module_1.forkDaemon(tracer_1.withCallTrace(fileName_1 + ":63:39")(tsplus_module_1.tapErrorCause(err => tracer_1.withCallTrace(fileName_1 + ":63:60")(tsplus_module_1.sync(() => console.error(err)))))(flushToDisk))))(t)),
42
+ remove: tsplus_module_3.flow(store.remove, t => tracer_1.withCallTrace(fileName_1 + ":65:17")(tsplus_module_1.tap(() => tsplus_module_1.forkDaemon(tracer_1.withCallTrace(fileName_1 + ":66:29")(tsplus_module_1.tapErrorCause(err => tracer_1.withCallTrace(fileName_1 + ":67:19")(tsplus_module_1.sync(() => console.error(err)))))(flushToDisk))))(t))
43
+ };
44
+ return s;
45
+ }))
46
+ };
47
+ }));
48
+ }
49
+ export function DiskStoreLive(config) {
50
+ return tsplus_module_1.toLayer(StoreMaker)(tracer_1.withCallTrace(fileName_1 + ":79:6")(tsplus_module_1.flatMap(makeDiskStore))(tsplus_module_1.config(config)));
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvU3RvcmUvRGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLDhDQUE4QyxDQUFBO0FBRWxFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUVuQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBaUI7SUFDckQscURBQU8scUJBQU8sR0FBRyxFQUFFO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQTtRQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ2xCO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSxDQUNKLElBQVksRUFDWixRQUE4QyxFQUM5QyxPQUF3QixFQUN4QixFQUFFLCtDQUNGLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUE7Z0JBQ2hELE1BQU0sT0FBTyxHQUFHO29CQUNkLEdBQUcsd0JBQUUsa0VBRUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUSxHQUYzQixFQUFFO3lCQUNKLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FDWSxDQUN6QjtvQkFDUixNQUFNLEVBQUUsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFF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
@@ -0,0 +1,17 @@
1
+ import { Chunk } from "@fp-ts/data/Chunk";
2
+ import { Effect } from "@effect/io/Effect";
3
+ import { ROMap } from "@effect-app/prelude";
4
+ import { NonEmptyReadonlyArray } from "@fp-ts/data/ReadonlyArray";
5
+ import type { Filter, PersistenceModelType, Store, StoreConfig } from "./service.js";
6
+ import { StoreMaker } from "./service.js";
7
+ export declare function memFilter<T extends {
8
+ id: string;
9
+ }>(filter: Filter<T>, cursor?: {
10
+ skip?: number;
11
+ limit?: number;
12
+ }): (c: Chunk<T>) => Chunk<T>;
13
+ export declare const makeMemoryStore: () => {
14
+ make: <Id extends string, Id2 extends Id, PM extends PersistenceModelType<Id>>(name: string, existing?: import("@effect/io/Effect").Effect<never, never, import("@effect-app/core/Prelude").Map<Id2, PM>> | undefined, _config?: StoreConfig<PM> | undefined) => import("@effect/io/Effect").Effect<never, never, Store<PM, Id>>;
15
+ };
16
+ export declare const MemoryStoreLive: import("@effect/io/Layer").Layer<never, never, StoreMaker>;
17
+ //# sourceMappingURL=Memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../_src/services/Store/Memory.ts"],"names":[],"mappings":";;;;AAEA,OAAO,KAAK,EAAE,MAAM,EAAoB,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,OACnG,MAAM,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAehC;AAED,eAAO,MAAM,eAAe;yFAElB,MAAM;CAgDd,CAAA;AAEF,eAAO,MAAM,eAAe,4DAA0C,CAAA"}