@effect-app/infra 2.7.0 → 2.8.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 (480) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/_cjs/{services/CUPS.cjs → CUPS.cjs} +1 -1
  3. package/_cjs/CUPS.cjs.map +1 -0
  4. package/_cjs/{services/Emailer → Emailer}/Sendgrid.cjs +1 -1
  5. package/_cjs/Emailer/Sendgrid.cjs.map +1 -0
  6. package/_cjs/{services/Emailer → Emailer}/fake.cjs +1 -1
  7. package/_cjs/Emailer/fake.cjs.map +1 -0
  8. package/_cjs/Emailer/service.cjs.map +1 -0
  9. package/_cjs/Emailer.cjs.map +1 -0
  10. package/_cjs/{services/MainFiberSet.cjs → MainFiberSet.cjs} +1 -1
  11. package/_cjs/MainFiberSet.cjs.map +1 -0
  12. package/_cjs/{services → Model}/Repository/ext.cjs +1 -1
  13. package/_cjs/Model/Repository/ext.cjs.map +1 -0
  14. package/_cjs/{services → Model}/Repository/legacy.cjs +2 -3
  15. package/_cjs/Model/Repository/legacy.cjs.map +1 -0
  16. package/_cjs/{services/RepositoryBase.cjs → Model/Repository/makeRepo.cjs} +10 -12
  17. package/_cjs/Model/Repository/makeRepo.cjs.map +1 -0
  18. package/_cjs/Model/Repository/service.cjs.map +1 -0
  19. package/_cjs/{services → Model}/Repository.cjs +12 -10
  20. package/_cjs/Model/Repository.cjs.map +1 -0
  21. package/_cjs/Model/dsl.cjs.map +1 -0
  22. package/_cjs/Model/filter/filterApi.cjs +6 -0
  23. package/_cjs/Model/filter/filterApi.cjs.map +1 -0
  24. package/_cjs/Model/filter/types/errors.cjs.map +1 -0
  25. package/_cjs/Model/filter/types/fields.cjs.map +1 -0
  26. package/_cjs/Model/filter/types/path/common.cjs.map +1 -0
  27. package/_cjs/Model/filter/types/path/eager.cjs.map +1 -0
  28. package/_cjs/Model/filter/types/path/index.cjs.map +1 -0
  29. package/_cjs/Model/filter/types/utils.cjs.map +1 -0
  30. package/_cjs/Model/filter/types/validator.cjs.map +1 -0
  31. package/_cjs/Model/filter/types.cjs.map +1 -0
  32. package/_cjs/Model/query/dsl.cjs.map +1 -0
  33. package/_cjs/Model/query/new-kid-interpreter.cjs.map +1 -0
  34. package/_cjs/Model/query.cjs.map +1 -0
  35. package/_cjs/Model.cjs +23 -2
  36. package/_cjs/Model.cjs.map +1 -1
  37. package/_cjs/{services/Operations.cjs → Operations.cjs} +3 -3
  38. package/_cjs/Operations.cjs.map +1 -0
  39. package/_cjs/{services/OperationsRepo.cjs → OperationsRepo.cjs} +2 -2
  40. package/_cjs/OperationsRepo.cjs.map +1 -0
  41. package/_cjs/{services/QueueMaker → QueueMaker}/SQLQueue.cjs +3 -3
  42. package/_cjs/QueueMaker/SQLQueue.cjs.map +1 -0
  43. package/_cjs/QueueMaker/errors.cjs.map +1 -0
  44. package/_cjs/{services/QueueMaker → QueueMaker}/memQueue.cjs +2 -2
  45. package/_cjs/QueueMaker/memQueue.cjs.map +1 -0
  46. package/_cjs/{services/QueueMaker → QueueMaker}/sbqueue.cjs +2 -2
  47. package/_cjs/QueueMaker/sbqueue.cjs.map +1 -0
  48. package/_cjs/{services/QueueMaker → QueueMaker}/service.cjs +1 -1
  49. package/_cjs/QueueMaker/service.cjs.map +1 -0
  50. package/_cjs/{services/RequestFiberSet.cjs → RequestFiberSet.cjs} +2 -2
  51. package/_cjs/RequestFiberSet.cjs.map +1 -0
  52. package/_cjs/Store/ContextMapContainer.cjs.map +1 -0
  53. package/_cjs/{services/Store → Store}/Cosmos/query.cjs +1 -1
  54. package/_cjs/Store/Cosmos/query.cjs.map +1 -0
  55. package/_cjs/{services/Store → Store}/Cosmos.cjs +2 -2
  56. package/_cjs/Store/Cosmos.cjs.map +1 -0
  57. package/_cjs/{services/Store → Store}/Disk.cjs +1 -1
  58. package/_cjs/Store/Disk.cjs.map +1 -0
  59. package/_cjs/{services/Store → Store}/Memory.cjs +1 -1
  60. package/_cjs/Store/Memory.cjs.map +1 -0
  61. package/_cjs/Store/codeFilter.cjs.map +1 -0
  62. package/_cjs/Store/index.cjs.map +1 -0
  63. package/_cjs/Store/service.cjs.map +1 -0
  64. package/_cjs/{services/Store → Store}/utils.cjs +1 -1
  65. package/_cjs/Store/utils.cjs.map +1 -0
  66. package/_cjs/Store.cjs.map +1 -0
  67. package/_cjs/adapters/SQL/Model.cjs.map +1 -0
  68. package/_cjs/adapters/SQL.cjs.map +1 -0
  69. package/_cjs/adapters/ServiceBus.cjs.map +1 -0
  70. package/_cjs/adapters/cosmos-client.cjs.map +1 -0
  71. package/_cjs/adapters/index.cjs.map +1 -0
  72. package/_cjs/adapters/logger.cjs.map +1 -0
  73. package/_cjs/adapters/memQueue.cjs.map +1 -0
  74. package/_cjs/adapters/mongo-client.cjs.map +1 -0
  75. package/_cjs/adapters/redis-client.cjs.map +1 -0
  76. package/_cjs/api/setupRequest.cjs +2 -2
  77. package/_cjs/arbs.cjs.map +1 -0
  78. package/_cjs/logger/shared.cjs +1 -1
  79. package/_cjs/logger/shared.cjs.map +1 -1
  80. package/_cjs/test.cjs +1 -1
  81. package/dist/CUPS.d.ts.map +1 -0
  82. package/dist/CUPS.js +116 -0
  83. package/dist/Emailer/Sendgrid.d.ts.map +1 -0
  84. package/dist/Emailer/Sendgrid.js +99 -0
  85. package/dist/Emailer/fake.d.ts.map +1 -0
  86. package/dist/Emailer/fake.js +18 -0
  87. package/dist/{services/Emailer → Emailer}/service.d.ts +1 -1
  88. package/dist/Emailer/service.d.ts.map +1 -0
  89. package/dist/{services/Emailer → Emailer}/service.js +1 -1
  90. package/dist/Emailer.d.ts.map +1 -0
  91. package/dist/{services/Emailer.js → Emailer.js} +1 -1
  92. package/dist/MainFiberSet.d.ts.map +1 -0
  93. package/dist/MainFiberSet.js +54 -0
  94. package/dist/{services → Model}/Repository/ext.d.ts +12 -12
  95. package/dist/Model/Repository/ext.d.ts.map +1 -0
  96. package/dist/Model/Repository/ext.js +61 -0
  97. package/dist/{services → Model}/Repository/legacy.d.ts +53 -53
  98. package/dist/Model/Repository/legacy.d.ts.map +1 -0
  99. package/dist/Model/Repository/legacy.js +123 -0
  100. package/dist/{services/RepositoryBase.d.ts → Model/Repository/makeRepo.d.ts} +22 -22
  101. package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
  102. package/dist/Model/Repository/makeRepo.js +254 -0
  103. package/dist/{services → Model}/Repository/service.d.ts +8 -8
  104. package/dist/Model/Repository/service.d.ts.map +1 -0
  105. package/dist/{services → Model}/Repository/service.js +1 -1
  106. package/dist/{services → Model}/Repository.d.ts +1 -1
  107. package/dist/Model/Repository.d.ts.map +1 -0
  108. package/dist/Model/Repository.js +5 -0
  109. package/dist/Model/dsl.d.ts.map +1 -0
  110. package/dist/Model/dsl.js +46 -0
  111. package/dist/{services/Store/filterApi/query.d.ts → Model/filter/filterApi.d.ts} +1 -1
  112. package/dist/Model/filter/filterApi.d.ts.map +1 -0
  113. package/dist/Model/filter/filterApi.js +2 -0
  114. package/dist/Model/filter/types/errors.d.ts.map +1 -0
  115. package/dist/{filter → Model/filter}/types/errors.js +1 -1
  116. package/dist/Model/filter/types/fields.d.ts.map +1 -0
  117. package/dist/{filter → Model/filter}/types/fields.js +1 -1
  118. package/dist/Model/filter/types/path/common.d.ts.map +1 -0
  119. package/dist/{filter → Model/filter}/types/path/common.js +1 -1
  120. package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
  121. package/dist/{filter → Model/filter}/types/path/eager.js +1 -1
  122. package/dist/Model/filter/types/path/index.d.ts.map +1 -0
  123. package/dist/{filter → Model/filter}/types/path/index.js +1 -1
  124. package/dist/Model/filter/types/utils.d.ts.map +1 -0
  125. package/dist/{filter → Model/filter}/types/utils.js +1 -1
  126. package/dist/Model/filter/types/validator.d.ts.map +1 -0
  127. package/dist/{filter → Model/filter}/types/validator.js +1 -1
  128. package/dist/Model/filter/types.d.ts.map +1 -0
  129. package/dist/{filter → Model/filter}/types.js +1 -1
  130. package/dist/{services → Model}/query/dsl.d.ts +6 -6
  131. package/dist/Model/query/dsl.d.ts.map +1 -0
  132. package/dist/Model/query/dsl.js +95 -0
  133. package/dist/{services → Model}/query/new-kid-interpreter.d.ts +4 -4
  134. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
  135. package/dist/Model/query/new-kid-interpreter.js +133 -0
  136. package/dist/Model/query.d.ts.map +1 -0
  137. package/dist/{services → Model}/query.js +1 -1
  138. package/dist/Model.d.ts +3 -1
  139. package/dist/Model.d.ts.map +1 -1
  140. package/dist/Model.js +4 -2
  141. package/dist/Operations.d.ts.map +1 -0
  142. package/dist/Operations.js +102 -0
  143. package/dist/{services/OperationsRepo.d.ts → OperationsRepo.d.ts} +1 -1
  144. package/dist/OperationsRepo.d.ts.map +1 -0
  145. package/dist/OperationsRepo.js +14 -0
  146. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -0
  147. package/dist/QueueMaker/SQLQueue.js +136 -0
  148. package/dist/QueueMaker/errors.d.ts.map +1 -0
  149. package/dist/QueueMaker/errors.js +20 -0
  150. package/dist/QueueMaker/memQueue.d.ts.map +1 -0
  151. package/dist/QueueMaker/memQueue.js +78 -0
  152. package/dist/QueueMaker/sbqueue.d.ts.map +1 -0
  153. package/dist/QueueMaker/sbqueue.js +102 -0
  154. package/dist/{services/QueueMaker → QueueMaker}/service.d.ts +1 -1
  155. package/dist/QueueMaker/service.d.ts.map +1 -0
  156. package/dist/QueueMaker/service.js +4 -0
  157. package/dist/RequestFiberSet.d.ts.map +1 -0
  158. package/dist/RequestFiberSet.js +79 -0
  159. package/dist/Store/ContextMapContainer.d.ts.map +1 -0
  160. package/dist/{services/Store → Store}/ContextMapContainer.js +1 -1
  161. package/dist/{services/Store → Store}/Cosmos/query.d.ts +1 -1
  162. package/dist/Store/Cosmos/query.d.ts.map +1 -0
  163. package/dist/Store/Cosmos/query.js +164 -0
  164. package/dist/Store/Cosmos.d.ts.map +1 -0
  165. package/dist/Store/Cosmos.js +258 -0
  166. package/dist/Store/Disk.d.ts.map +1 -0
  167. package/dist/Store/Disk.js +109 -0
  168. package/dist/Store/Memory.d.ts.map +1 -0
  169. package/dist/Store/Memory.js +170 -0
  170. package/dist/{services/Store → Store}/codeFilter.d.ts +1 -1
  171. package/dist/Store/codeFilter.d.ts.map +1 -0
  172. package/dist/Store/codeFilter.js +117 -0
  173. package/dist/Store/index.d.ts.map +1 -0
  174. package/dist/Store/index.js +28 -0
  175. package/dist/{services/Store → Store}/service.d.ts +5 -5
  176. package/dist/Store/service.d.ts.map +1 -0
  177. package/dist/{services/Store → Store}/service.js +1 -1
  178. package/dist/{services/Store → Store}/utils.d.ts +1 -1
  179. package/dist/Store/utils.d.ts.map +1 -0
  180. package/dist/Store/utils.js +44 -0
  181. package/dist/Store.d.ts.map +1 -0
  182. package/dist/{services/Store.js → Store.js} +1 -1
  183. package/dist/{services/adapters → adapters}/SQL/Model.d.ts +23 -23
  184. package/dist/adapters/SQL/Model.d.ts.map +1 -0
  185. package/dist/adapters/SQL/Model.js +508 -0
  186. package/dist/adapters/SQL.d.ts.map +1 -0
  187. package/dist/{services/adapters → adapters}/SQL.js +1 -1
  188. package/dist/adapters/ServiceBus.d.ts.map +1 -0
  189. package/dist/adapters/ServiceBus.js +73 -0
  190. package/dist/adapters/cosmos-client.d.ts.map +1 -0
  191. package/dist/adapters/cosmos-client.js +8 -0
  192. package/dist/{services/adapters → adapters}/index.d.ts.map +1 -1
  193. package/dist/{services/adapters → adapters}/index.js +1 -1
  194. package/dist/adapters/logger.d.ts.map +1 -0
  195. package/dist/{services/adapters → adapters}/logger.js +1 -1
  196. package/dist/adapters/memQueue.d.ts.map +1 -0
  197. package/dist/adapters/memQueue.js +24 -0
  198. package/dist/adapters/mongo-client.d.ts.map +1 -0
  199. package/dist/adapters/mongo-client.js +12 -0
  200. package/dist/adapters/redis-client.d.ts.map +1 -0
  201. package/dist/adapters/redis-client.js +93 -0
  202. package/dist/api/setupRequest.js +3 -3
  203. package/dist/arbs.d.ts.map +1 -0
  204. package/dist/arbs.js +21 -0
  205. package/dist/logger/shared.js +2 -2
  206. package/dist/test.d.ts +1 -1
  207. package/dist/test.d.ts.map +1 -1
  208. package/dist/test.js +3 -3
  209. package/examples/query.ts +3 -3
  210. package/package.json +352 -362
  211. package/src/{services/CUPS.ts → CUPS.ts} +1 -1
  212. package/src/{services/Emailer → Emailer}/Sendgrid.ts +1 -1
  213. package/src/{services/Emailer → Emailer}/fake.ts +1 -1
  214. package/src/{services/MainFiberSet.ts → MainFiberSet.ts} +1 -1
  215. package/src/{services → Model}/Repository/ext.ts +23 -11
  216. package/src/{services → Model}/Repository/legacy.ts +78 -51
  217. package/src/{services/RepositoryBase.ts → Model/Repository/makeRepo.ts} +40 -38
  218. package/src/{services → Model}/Repository/service.ts +9 -8
  219. package/src/{services → Model}/Repository.ts +1 -1
  220. package/src/{services → Model}/query/dsl.ts +24 -6
  221. package/src/{services → Model}/query/new-kid-interpreter.ts +3 -3
  222. package/src/Model.ts +3 -1
  223. package/src/{services/Operations.ts → Operations.ts} +3 -3
  224. package/src/{services/OperationsRepo.ts → OperationsRepo.ts} +1 -1
  225. package/src/{services/QueueMaker → QueueMaker}/SQLQueue.ts +4 -4
  226. package/src/{services/QueueMaker → QueueMaker}/memQueue.ts +2 -2
  227. package/src/{services/QueueMaker → QueueMaker}/sbqueue.ts +2 -2
  228. package/src/{services/QueueMaker → QueueMaker}/service.ts +1 -1
  229. package/src/{services/RequestFiberSet.ts → RequestFiberSet.ts} +2 -2
  230. package/src/{services/Store → Store}/Cosmos/query.ts +2 -2
  231. package/src/{services/Store → Store}/Cosmos.ts +2 -2
  232. package/src/{services/Store → Store}/Disk.ts +1 -1
  233. package/src/{services/Store → Store}/Memory.ts +1 -1
  234. package/src/{services/Store → Store}/codeFilter.ts +1 -1
  235. package/src/{services/Store → Store}/service.ts +4 -4
  236. package/src/{services/Store → Store}/utils.ts +1 -1
  237. package/src/api/setupRequest.ts +2 -2
  238. package/src/logger/shared.ts +1 -1
  239. package/src/test.ts +2 -2
  240. package/test/dist/query.test.d.ts.map +1 -1
  241. package/test/query.test.ts +32 -5
  242. package/_cjs/_ext/Array.cjs +0 -22
  243. package/_cjs/_ext/Array.cjs.map +0 -1
  244. package/_cjs/filter/types/errors.cjs.map +0 -1
  245. package/_cjs/filter/types/fields.cjs.map +0 -1
  246. package/_cjs/filter/types/path/common.cjs.map +0 -1
  247. package/_cjs/filter/types/path/eager.cjs.map +0 -1
  248. package/_cjs/filter/types/path/index.cjs.map +0 -1
  249. package/_cjs/filter/types/utils.cjs.map +0 -1
  250. package/_cjs/filter/types/validator.cjs.map +0 -1
  251. package/_cjs/filter/types.cjs.map +0 -1
  252. package/_cjs/services/CUPS.cjs.map +0 -1
  253. package/_cjs/services/Emailer/Sendgrid.cjs.map +0 -1
  254. package/_cjs/services/Emailer/fake.cjs.map +0 -1
  255. package/_cjs/services/Emailer/service.cjs.map +0 -1
  256. package/_cjs/services/Emailer.cjs.map +0 -1
  257. package/_cjs/services/MainFiberSet.cjs.map +0 -1
  258. package/_cjs/services/Operations.cjs.map +0 -1
  259. package/_cjs/services/OperationsRepo.cjs.map +0 -1
  260. package/_cjs/services/QueueMaker/SQLQueue.cjs.map +0 -1
  261. package/_cjs/services/QueueMaker/errors.cjs.map +0 -1
  262. package/_cjs/services/QueueMaker/memQueue.cjs.map +0 -1
  263. package/_cjs/services/QueueMaker/sbqueue.cjs.map +0 -1
  264. package/_cjs/services/QueueMaker/service.cjs.map +0 -1
  265. package/_cjs/services/Repository/dsl.cjs.map +0 -1
  266. package/_cjs/services/Repository/ext.cjs.map +0 -1
  267. package/_cjs/services/Repository/legacy.cjs.map +0 -1
  268. package/_cjs/services/Repository/service.cjs.map +0 -1
  269. package/_cjs/services/Repository.cjs.map +0 -1
  270. package/_cjs/services/RepositoryBase.cjs.map +0 -1
  271. package/_cjs/services/RequestFiberSet.cjs.map +0 -1
  272. package/_cjs/services/Store/ContextMapContainer.cjs.map +0 -1
  273. package/_cjs/services/Store/Cosmos/query.cjs.map +0 -1
  274. package/_cjs/services/Store/Cosmos.cjs.map +0 -1
  275. package/_cjs/services/Store/Disk.cjs.map +0 -1
  276. package/_cjs/services/Store/Memory.cjs.map +0 -1
  277. package/_cjs/services/Store/codeFilter.cjs.map +0 -1
  278. package/_cjs/services/Store/filterApi/query.cjs +0 -6
  279. package/_cjs/services/Store/filterApi/query.cjs.map +0 -1
  280. package/_cjs/services/Store/index.cjs.map +0 -1
  281. package/_cjs/services/Store/service.cjs.map +0 -1
  282. package/_cjs/services/Store/utils.cjs.map +0 -1
  283. package/_cjs/services/Store.cjs.map +0 -1
  284. package/_cjs/services/adapters/SQL/Model.cjs.map +0 -1
  285. package/_cjs/services/adapters/SQL.cjs.map +0 -1
  286. package/_cjs/services/adapters/ServiceBus.cjs.map +0 -1
  287. package/_cjs/services/adapters/cosmos-client.cjs.map +0 -1
  288. package/_cjs/services/adapters/index.cjs.map +0 -1
  289. package/_cjs/services/adapters/logger.cjs.map +0 -1
  290. package/_cjs/services/adapters/memQueue.cjs.map +0 -1
  291. package/_cjs/services/adapters/mongo-client.cjs.map +0 -1
  292. package/_cjs/services/adapters/redis-client.cjs.map +0 -1
  293. package/_cjs/services/query/dsl.cjs.map +0 -1
  294. package/_cjs/services/query/new-kid-interpreter.cjs.map +0 -1
  295. package/_cjs/services/query.cjs.map +0 -1
  296. package/_cjs/test/arbs.cjs.map +0 -1
  297. package/dist/_ext/Array.d.ts +0 -13
  298. package/dist/_ext/Array.d.ts.map +0 -1
  299. package/dist/_ext/Array.js +0 -15
  300. package/dist/filter/types/errors.d.ts.map +0 -1
  301. package/dist/filter/types/fields.d.ts.map +0 -1
  302. package/dist/filter/types/path/common.d.ts.map +0 -1
  303. package/dist/filter/types/path/eager.d.ts.map +0 -1
  304. package/dist/filter/types/path/index.d.ts.map +0 -1
  305. package/dist/filter/types/utils.d.ts.map +0 -1
  306. package/dist/filter/types/validator.d.ts.map +0 -1
  307. package/dist/filter/types.d.ts.map +0 -1
  308. package/dist/services/CUPS.d.ts.map +0 -1
  309. package/dist/services/CUPS.js +0 -116
  310. package/dist/services/Emailer/Sendgrid.d.ts.map +0 -1
  311. package/dist/services/Emailer/Sendgrid.js +0 -99
  312. package/dist/services/Emailer/fake.d.ts.map +0 -1
  313. package/dist/services/Emailer/fake.js +0 -18
  314. package/dist/services/Emailer/service.d.ts.map +0 -1
  315. package/dist/services/Emailer.d.ts.map +0 -1
  316. package/dist/services/MainFiberSet.d.ts.map +0 -1
  317. package/dist/services/MainFiberSet.js +0 -54
  318. package/dist/services/Operations.d.ts.map +0 -1
  319. package/dist/services/Operations.js +0 -102
  320. package/dist/services/OperationsRepo.d.ts.map +0 -1
  321. package/dist/services/OperationsRepo.js +0 -14
  322. package/dist/services/QueueMaker/SQLQueue.d.ts.map +0 -1
  323. package/dist/services/QueueMaker/SQLQueue.js +0 -136
  324. package/dist/services/QueueMaker/errors.d.ts.map +0 -1
  325. package/dist/services/QueueMaker/errors.js +0 -20
  326. package/dist/services/QueueMaker/memQueue.d.ts.map +0 -1
  327. package/dist/services/QueueMaker/memQueue.js +0 -78
  328. package/dist/services/QueueMaker/sbqueue.d.ts.map +0 -1
  329. package/dist/services/QueueMaker/sbqueue.js +0 -102
  330. package/dist/services/QueueMaker/service.d.ts.map +0 -1
  331. package/dist/services/QueueMaker/service.js +0 -4
  332. package/dist/services/Repository/dsl.d.ts.map +0 -1
  333. package/dist/services/Repository/dsl.js +0 -46
  334. package/dist/services/Repository/ext.d.ts.map +0 -1
  335. package/dist/services/Repository/ext.js +0 -61
  336. package/dist/services/Repository/legacy.d.ts.map +0 -1
  337. package/dist/services/Repository/legacy.js +0 -124
  338. package/dist/services/Repository/service.d.ts.map +0 -1
  339. package/dist/services/Repository.d.ts.map +0 -1
  340. package/dist/services/Repository.js +0 -5
  341. package/dist/services/RepositoryBase.d.ts.map +0 -1
  342. package/dist/services/RepositoryBase.js +0 -256
  343. package/dist/services/RequestFiberSet.d.ts.map +0 -1
  344. package/dist/services/RequestFiberSet.js +0 -79
  345. package/dist/services/Store/ContextMapContainer.d.ts.map +0 -1
  346. package/dist/services/Store/Cosmos/query.d.ts.map +0 -1
  347. package/dist/services/Store/Cosmos/query.js +0 -164
  348. package/dist/services/Store/Cosmos.d.ts.map +0 -1
  349. package/dist/services/Store/Cosmos.js +0 -258
  350. package/dist/services/Store/Disk.d.ts.map +0 -1
  351. package/dist/services/Store/Disk.js +0 -109
  352. package/dist/services/Store/Memory.d.ts.map +0 -1
  353. package/dist/services/Store/Memory.js +0 -170
  354. package/dist/services/Store/codeFilter.d.ts.map +0 -1
  355. package/dist/services/Store/codeFilter.js +0 -117
  356. package/dist/services/Store/filterApi/query.d.ts.map +0 -1
  357. package/dist/services/Store/filterApi/query.js +0 -2
  358. package/dist/services/Store/index.d.ts.map +0 -1
  359. package/dist/services/Store/index.js +0 -28
  360. package/dist/services/Store/service.d.ts.map +0 -1
  361. package/dist/services/Store/utils.d.ts.map +0 -1
  362. package/dist/services/Store/utils.js +0 -44
  363. package/dist/services/Store.d.ts.map +0 -1
  364. package/dist/services/adapters/SQL/Model.d.ts.map +0 -1
  365. package/dist/services/adapters/SQL/Model.js +0 -508
  366. package/dist/services/adapters/SQL.d.ts.map +0 -1
  367. package/dist/services/adapters/ServiceBus.d.ts.map +0 -1
  368. package/dist/services/adapters/ServiceBus.js +0 -73
  369. package/dist/services/adapters/cosmos-client.d.ts.map +0 -1
  370. package/dist/services/adapters/cosmos-client.js +0 -8
  371. package/dist/services/adapters/logger.d.ts.map +0 -1
  372. package/dist/services/adapters/memQueue.d.ts.map +0 -1
  373. package/dist/services/adapters/memQueue.js +0 -24
  374. package/dist/services/adapters/mongo-client.d.ts.map +0 -1
  375. package/dist/services/adapters/mongo-client.js +0 -12
  376. package/dist/services/adapters/redis-client.d.ts.map +0 -1
  377. package/dist/services/adapters/redis-client.js +0 -93
  378. package/dist/services/query/dsl.d.ts.map +0 -1
  379. package/dist/services/query/dsl.js +0 -95
  380. package/dist/services/query/new-kid-interpreter.d.ts.map +0 -1
  381. package/dist/services/query/new-kid-interpreter.js +0 -133
  382. package/dist/services/query.d.ts.map +0 -1
  383. package/dist/test/arbs.d.ts.map +0 -1
  384. package/dist/test/arbs.js +0 -21
  385. package/src/_ext/Array.ts +0 -22
  386. /package/_cjs/{services/Emailer → Emailer}/service.cjs +0 -0
  387. /package/_cjs/{services/Emailer.cjs → Emailer.cjs} +0 -0
  388. /package/_cjs/{services → Model}/Repository/service.cjs +0 -0
  389. /package/_cjs/{services/Repository → Model}/dsl.cjs +0 -0
  390. /package/_cjs/{filter → Model/filter}/types/errors.cjs +0 -0
  391. /package/_cjs/{filter → Model/filter}/types/fields.cjs +0 -0
  392. /package/_cjs/{filter → Model/filter}/types/path/common.cjs +0 -0
  393. /package/_cjs/{filter → Model/filter}/types/path/eager.cjs +0 -0
  394. /package/_cjs/{filter → Model/filter}/types/path/index.cjs +0 -0
  395. /package/_cjs/{filter → Model/filter}/types/utils.cjs +0 -0
  396. /package/_cjs/{filter → Model/filter}/types/validator.cjs +0 -0
  397. /package/_cjs/{filter → Model/filter}/types.cjs +0 -0
  398. /package/_cjs/{services → Model}/query/dsl.cjs +0 -0
  399. /package/_cjs/{services → Model}/query/new-kid-interpreter.cjs +0 -0
  400. /package/_cjs/{services → Model}/query.cjs +0 -0
  401. /package/_cjs/{services/QueueMaker → QueueMaker}/errors.cjs +0 -0
  402. /package/_cjs/{services/Store → Store}/ContextMapContainer.cjs +0 -0
  403. /package/_cjs/{services/Store → Store}/codeFilter.cjs +0 -0
  404. /package/_cjs/{services/Store → Store}/index.cjs +0 -0
  405. /package/_cjs/{services/Store → Store}/service.cjs +0 -0
  406. /package/_cjs/{services/Store.cjs → Store.cjs} +0 -0
  407. /package/_cjs/{services/adapters → adapters}/SQL/Model.cjs +0 -0
  408. /package/_cjs/{services/adapters → adapters}/SQL.cjs +0 -0
  409. /package/_cjs/{services/adapters → adapters}/ServiceBus.cjs +0 -0
  410. /package/_cjs/{services/adapters → adapters}/cosmos-client.cjs +0 -0
  411. /package/_cjs/{services/adapters → adapters}/index.cjs +0 -0
  412. /package/_cjs/{services/adapters → adapters}/logger.cjs +0 -0
  413. /package/_cjs/{services/adapters → adapters}/memQueue.cjs +0 -0
  414. /package/_cjs/{services/adapters → adapters}/mongo-client.cjs +0 -0
  415. /package/_cjs/{services/adapters → adapters}/redis-client.cjs +0 -0
  416. /package/_cjs/{test/arbs.cjs → arbs.cjs} +0 -0
  417. /package/dist/{services/CUPS.d.ts → CUPS.d.ts} +0 -0
  418. /package/dist/{services/Emailer → Emailer}/Sendgrid.d.ts +0 -0
  419. /package/dist/{services/Emailer → Emailer}/fake.d.ts +0 -0
  420. /package/dist/{services/Emailer.d.ts → Emailer.d.ts} +0 -0
  421. /package/dist/{services/MainFiberSet.d.ts → MainFiberSet.d.ts} +0 -0
  422. /package/dist/{services/Repository → Model}/dsl.d.ts +0 -0
  423. /package/dist/{filter → Model/filter}/types/errors.d.ts +0 -0
  424. /package/dist/{filter → Model/filter}/types/fields.d.ts +0 -0
  425. /package/dist/{filter → Model/filter}/types/path/common.d.ts +0 -0
  426. /package/dist/{filter → Model/filter}/types/path/eager.d.ts +0 -0
  427. /package/dist/{filter → Model/filter}/types/path/index.d.ts +0 -0
  428. /package/dist/{filter → Model/filter}/types/utils.d.ts +0 -0
  429. /package/dist/{filter → Model/filter}/types/validator.d.ts +0 -0
  430. /package/dist/{filter → Model/filter}/types.d.ts +0 -0
  431. /package/dist/{services → Model}/query.d.ts +0 -0
  432. /package/dist/{services/Operations.d.ts → Operations.d.ts} +0 -0
  433. /package/dist/{services/QueueMaker → QueueMaker}/SQLQueue.d.ts +0 -0
  434. /package/dist/{services/QueueMaker → QueueMaker}/errors.d.ts +0 -0
  435. /package/dist/{services/QueueMaker → QueueMaker}/memQueue.d.ts +0 -0
  436. /package/dist/{services/QueueMaker → QueueMaker}/sbqueue.d.ts +0 -0
  437. /package/dist/{services/RequestFiberSet.d.ts → RequestFiberSet.d.ts} +0 -0
  438. /package/dist/{services/Store → Store}/ContextMapContainer.d.ts +0 -0
  439. /package/dist/{services/Store → Store}/Cosmos.d.ts +0 -0
  440. /package/dist/{services/Store → Store}/Disk.d.ts +0 -0
  441. /package/dist/{services/Store → Store}/Memory.d.ts +0 -0
  442. /package/dist/{services/Store → Store}/index.d.ts +0 -0
  443. /package/dist/{services/Store.d.ts → Store.d.ts} +0 -0
  444. /package/dist/{services/adapters → adapters}/SQL.d.ts +0 -0
  445. /package/dist/{services/adapters → adapters}/ServiceBus.d.ts +0 -0
  446. /package/dist/{services/adapters → adapters}/cosmos-client.d.ts +0 -0
  447. /package/dist/{services/adapters → adapters}/index.d.ts +0 -0
  448. /package/dist/{services/adapters → adapters}/logger.d.ts +0 -0
  449. /package/dist/{services/adapters → adapters}/memQueue.d.ts +0 -0
  450. /package/dist/{services/adapters → adapters}/mongo-client.d.ts +0 -0
  451. /package/dist/{services/adapters → adapters}/redis-client.d.ts +0 -0
  452. /package/dist/{test/arbs.d.ts → arbs.d.ts} +0 -0
  453. /package/src/{services/Emailer → Emailer}/service.ts +0 -0
  454. /package/src/{services/Emailer.ts → Emailer.ts} +0 -0
  455. /package/src/{services/Repository → Model}/dsl.ts +0 -0
  456. /package/src/{services/Store/filterApi/query.ts → Model/filter/filterApi.ts} +0 -0
  457. /package/src/{filter → Model/filter}/types/errors.ts +0 -0
  458. /package/src/{filter → Model/filter}/types/fields.ts +0 -0
  459. /package/src/{filter → Model/filter}/types/path/common.ts +0 -0
  460. /package/src/{filter → Model/filter}/types/path/eager.ts +0 -0
  461. /package/src/{filter → Model/filter}/types/path/index.ts +0 -0
  462. /package/src/{filter → Model/filter}/types/utils.ts +0 -0
  463. /package/src/{filter → Model/filter}/types/validator.ts +0 -0
  464. /package/src/{filter → Model/filter}/types.ts +0 -0
  465. /package/src/{services → Model}/query.ts +0 -0
  466. /package/src/{services/QueueMaker → QueueMaker}/errors.ts +0 -0
  467. /package/src/{services/Store → Store}/ContextMapContainer.ts +0 -0
  468. /package/src/{services/Store → Store}/index.test.ts.bak +0 -0
  469. /package/src/{services/Store → Store}/index.ts +0 -0
  470. /package/src/{services/Store.ts → Store.ts} +0 -0
  471. /package/src/{services/adapters → adapters}/SQL/Model.ts +0 -0
  472. /package/src/{services/adapters → adapters}/SQL.ts +0 -0
  473. /package/src/{services/adapters → adapters}/ServiceBus.ts +0 -0
  474. /package/src/{services/adapters → adapters}/cosmos-client.ts +0 -0
  475. /package/src/{services/adapters → adapters}/index.ts +0 -0
  476. /package/src/{services/adapters → adapters}/logger.ts +0 -0
  477. /package/src/{services/adapters → adapters}/memQueue.ts +0 -0
  478. /package/src/{services/adapters → adapters}/mongo-client.ts +0 -0
  479. /package/src/{services/adapters → adapters}/redis-client.ts +0 -0
  480. /package/src/{test/arbs.ts → arbs.ts} +0 -0
@@ -0,0 +1,164 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
2
+ import { Array, Effect, Equivalence, pipe } from "effect-app";
3
+ import { assertUnreachable } from "effect-app/utils";
4
+ import { InfraLogger } from "../../logger.js";
5
+ export function logQuery(q) {
6
+ return InfraLogger
7
+ .logDebug("cosmos query")
8
+ .pipe(Effect.annotateLogs({
9
+ query: q.query,
10
+ parameters: JSON.stringify(q.parameters.reduce((acc, v) => {
11
+ acc[v.name] = v.value;
12
+ return acc;
13
+ }, {}), undefined, 2)
14
+ }));
15
+ }
16
+ const arrayContains = (v) => v.map((_) => JSON.stringify(_)).join(", ");
17
+ const vAsArr = (v) => v;
18
+ export function buildWhereCosmosQuery3(filter, name, importedMarkerId, defaultValues, select, order, skip, limit) {
19
+ const statement = (x, i) => {
20
+ let k = x.path.includes(".-1.")
21
+ ? `${x.path.split(".-1.")[0]}.${x.path.split(".-1.")[1]}`
22
+ : `f.${x.path}`;
23
+ k = x.path in defaultValues ? `(${k} ?? ${JSON.stringify(defaultValues[x.path])})` : k;
24
+ const v = "@v" + i;
25
+ switch (x.op) {
26
+ case "in":
27
+ return `ARRAY_CONTAINS(${v}, ${k})`;
28
+ case "notIn":
29
+ return `(NOT ARRAY_CONTAINS(${v}, ${k}))`;
30
+ case "includes":
31
+ return `ARRAY_CONTAINS(${k}, ${arrayContains(vAsArr(v))})`;
32
+ case "notIncludes":
33
+ return `(NOT ARRAY_CONTAINS(${k}, ${arrayContains(vAsArr(v))}))`;
34
+ case "includes-any":
35
+ return `ARRAY_CONTAINS_ANY(${k}, ${arrayContains(vAsArr(v))})`;
36
+ case "notIncludes-any":
37
+ return `(NOT ARRAY_CONTAINS_ANY(${k}, ${arrayContains(vAsArr(v))}))`;
38
+ case "includes-all":
39
+ return `ARRAY_CONTAINS_ALL(${k}, ${arrayContains(vAsArr(v))})`;
40
+ case "notIncludes-all":
41
+ return `(NOT ARRAY_CONTAINS_ALL(${k}, ${arrayContains(vAsArr(v))}))`;
42
+ case "contains":
43
+ return `CONTAINS(${k}, ${v}, true)`;
44
+ case "startsWith":
45
+ return `STARTSWITH(${k}, ${v}, true)`;
46
+ case "endsWith":
47
+ return `ENDSWITH(${k}, ${v}, true)`;
48
+ case "notContains":
49
+ return `NOT(CONTAINS(${k}, ${v}, true))`;
50
+ case "notStartsWith":
51
+ return `NOT(STARTSWITH(${k}, ${v}, true))`;
52
+ case "notEndsWith":
53
+ return `NOT(ENDSWITH(${k}, ${v}, true))`;
54
+ }
55
+ switch (x.op) {
56
+ case "lt":
57
+ return `${k} < ${v}`;
58
+ case "lte":
59
+ return `${k} <= ${v}`;
60
+ case "gt":
61
+ return `${k} > ${v}`;
62
+ case "gte":
63
+ return `${k} >= ${v}`;
64
+ case "neq":
65
+ return x.value === null
66
+ ? `IS_NULL(${k}) = false`
67
+ : `${k} <> ${v}`;
68
+ case undefined:
69
+ case "eq":
70
+ return x.value === null
71
+ ? `IS_NULL(${k}) = true`
72
+ : `${k} = ${v}`;
73
+ default: {
74
+ return assertUnreachable(x.op);
75
+ }
76
+ }
77
+ };
78
+ let i = 0;
79
+ const print = (state) => {
80
+ let s = "";
81
+ let l = 0;
82
+ const printN = (n) => {
83
+ return n === 0 ? "" : Array.range(1, n).map(() => " ").join("");
84
+ };
85
+ for (const e of state) {
86
+ switch (e.t) {
87
+ case "where":
88
+ s += statement(e, i++);
89
+ break;
90
+ case "or":
91
+ s += ` OR ${statement(e, i++)}`;
92
+ break;
93
+ case "and":
94
+ s += ` AND ${statement(e, i++)}`;
95
+ break;
96
+ case "or-scope": {
97
+ ++l;
98
+ s += ` OR (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
99
+ --l;
100
+ break;
101
+ }
102
+ case "and-scope": {
103
+ ++l;
104
+ s += ` AND (\n${printN(l + 1)}${print(e.result)}\n${printN(l)})`;
105
+ --l;
106
+ break;
107
+ }
108
+ case "where-scope": {
109
+ // ;++l
110
+ s += `(\n${printN(l + 1)}${print(e.result)}\n)`;
111
+ // ;--l
112
+ break;
113
+ }
114
+ }
115
+ }
116
+ return s;
117
+ };
118
+ // const fff = (filter: readonly FilterR[], mode: "AND" | "OR") =>
119
+ // "(" + filter
120
+ // .map((_) =>
121
+ // _.path.includes(".-1.")
122
+ // ? { ..._, f: _.path.split(".-1.")[0], key: _.path.split(".-1.")[1]! }
123
+ // : { ..._, f: "f" }
124
+ // )
125
+ // .map(
126
+ // (x, i) => {
127
+ // const k = `${x.f}.${x.path}`
128
+ // const v = `@v${i}`
129
+ // return statement(x, k, v)
130
+ // }
131
+ // )
132
+ // .join(mode === "OR" ? " OR " : " AND ") + ")"
133
+ const getValues = (filter) => filter
134
+ .flatMap((_) => _.t === "and-scope" || _.t === "or-scope" || _.t === "where-scope"
135
+ ? getValues(_.result)
136
+ : [_]);
137
+ const values = getValues(filter);
138
+ return {
139
+ query: `
140
+ SELECT ${select
141
+ ? `${select.map((_) => `f.${_}`).join(", ")}`
142
+ : "f"}
143
+ FROM ${name} f
144
+
145
+ ${pipe(values
146
+ .filter((_) => _.path.includes(".-1."))
147
+ .map((_) => _.path.split(".-1.")[0])
148
+ .map((_) => `JOIN ${_} IN f.${_}`), Array.dedupeWith(Equivalence.string))
149
+ .join("\n")}
150
+
151
+ WHERE f.id != @id ${filter.length ? `AND (${print(filter)})` : ""}
152
+ ${order ? `ORDER BY ${order.map((_) => `f.${_.key} ${_.direction}`).join(", ")}` : ""}
153
+ ${skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""}`,
154
+ parameters: [
155
+ { name: "@id", value: importedMarkerId },
156
+ ...values
157
+ .map((x, i) => ({
158
+ name: `@v${i}`,
159
+ value: x.value
160
+ }))
161
+ ]
162
+ };
163
+ }
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvQ29zbW9zL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUk3QyxNQUFNLFVBQVUsUUFBUSxDQUFDLENBTXhCO0lBQ0MsT0FBTyxXQUFXO1NBQ2YsUUFBUSxDQUFDLGNBQWMsQ0FBQztTQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDeEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFBO1lBQ3JCLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQyxFQUFFLEVBQWtFLENBQUMsRUFDdEUsU0FBUyxFQUNULENBQUMsQ0FDRjtLQUNGLENBQUMsQ0FBQyxDQUFBO0FBQ1AsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzlFLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFxQixDQUFB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,EAAgC,MAAM,YAAY,CAAA;AAQhG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EAAoC,aAAa,EAAsB,MAAM,cAAc,CAAA;AA8WvG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,yCAIlD"}
@@ -0,0 +1,258 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { Array, Chunk, Duration, Effect, Layer, Option, pipe, Secret, Struct } from "effect-app";
3
+ import { toNonEmptyArray } from "effect-app/Array";
4
+ import { dropUndefinedT } from "effect-app/utils";
5
+ import { CosmosClient, CosmosClientLayer } from "../adapters/cosmos-client.js";
6
+ import { OptimisticConcurrencyException } from "../errors.js";
7
+ import { InfraLogger } from "../logger.js";
8
+ import { buildWhereCosmosQuery3, logQuery } from "./Cosmos/query.js";
9
+ import { StoreMaker } from "./service.js";
10
+ class CosmosDbOperationError {
11
+ message;
12
+ constructor(message) {
13
+ this.message = message;
14
+ }
15
+ } // TODO: Retry operation when running into RU limit.
16
+ function makeCosmosStore({ prefix }) {
17
+ return Effect.gen(function* () {
18
+ const { db } = yield* CosmosClient;
19
+ return {
20
+ make: (name, seed, config) => Effect.gen(function* () {
21
+ const containerId = `${prefix}${name}`;
22
+ yield* Effect.promise(() => db.containers.createIfNotExists(dropUndefinedT({
23
+ id: containerId,
24
+ uniqueKeyPolicy: config?.uniqueKeys
25
+ ? { uniqueKeys: config.uniqueKeys }
26
+ : undefined
27
+ })));
28
+ const defaultValues = config?.defaultValues ?? {};
29
+ const container = db.container(containerId);
30
+ const bulk = container.items.bulk.bind(container.items);
31
+ const execBatch = container.items.batch.bind(container.items);
32
+ const importedMarkerId = containerId;
33
+ const bulkSet = (items) => Effect
34
+ .gen(function* () {
35
+ // TODO: disable batching if need atomicity
36
+ // we delay and batch to keep low amount of RUs
37
+ const b = [...items].map((x) => [
38
+ x,
39
+ Option.match(Option.fromNullable(x._etag), {
40
+ onNone: () => dropUndefinedT({
41
+ operationType: "Create",
42
+ resourceBody: {
43
+ ...Struct.omit(x, "_etag"),
44
+ _partitionKey: config?.partitionValue(x)
45
+ },
46
+ partitionKey: config?.partitionValue(x)
47
+ }),
48
+ onSome: (eTag) => dropUndefinedT({
49
+ operationType: "Replace",
50
+ id: x.id,
51
+ resourceBody: {
52
+ ...Struct.omit(x, "_etag"),
53
+ _partitionKey: config?.partitionValue(x)
54
+ },
55
+ ifMatch: eTag,
56
+ partitionKey: config?.partitionValue(x)
57
+ })
58
+ })
59
+ ]);
60
+ const batches = Chunk.toReadonlyArray(Array.chunk_(b, config?.maxBulkSize ?? 10));
61
+ const batchResult = yield* Effect.forEach(batches
62
+ .map((x, i) => [i, x]), ([i, batch]) => Effect
63
+ .promise(() => bulk(batch.map(([, op]) => op)))
64
+ .pipe(Effect
65
+ .delay(Duration.millis(i === 0 ? 0 : 1100)), Effect
66
+ .flatMap((responses) => Effect.gen(function* () {
67
+ const r = responses.find((x) => x.statusCode === 412 || x.statusCode === 404);
68
+ if (r) {
69
+ return yield* Effect.fail(new OptimisticConcurrencyException({ type: name, id: JSON.stringify(r.resourceBody?.["id"]) }));
70
+ }
71
+ const r2 = responses.find((x) => x.statusCode > 299 || x.statusCode < 200);
72
+ if (r2) {
73
+ return yield* Effect.die(new CosmosDbOperationError("not able to update record: " + r2.statusCode));
74
+ }
75
+ return batch.map(([e], i) => ({
76
+ ...e,
77
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
78
+ _etag: responses[i].eTag
79
+ }));
80
+ }))));
81
+ return batchResult.flat();
82
+ })
83
+ .pipe(Effect.withSpan("Cosmos.bulkSet [effect-app/infra/Store]", {
84
+ captureStackTrace: false,
85
+ attributes: { "repository.container_id": containerId, "repository.model_name": name }
86
+ }));
87
+ const batchSet = (items) => {
88
+ return Effect
89
+ .suspend(() => {
90
+ const batch = [...items].map((x) => [
91
+ x,
92
+ Option.match(Option.fromNullable(x._etag), {
93
+ onNone: () => ({
94
+ operationType: "Create",
95
+ resourceBody: {
96
+ ...Struct.omit(x, "_etag"),
97
+ _partitionKey: config?.partitionValue(x)
98
+ }
99
+ }),
100
+ onSome: (eTag) => ({
101
+ operationType: "Replace",
102
+ id: x.id,
103
+ resourceBody: {
104
+ ...Struct.omit(x, "_etag"),
105
+ _partitionKey: config?.partitionValue(x)
106
+ },
107
+ ifMatch: eTag
108
+ })
109
+ })
110
+ ]);
111
+ const ex = batch.map(([, c]) => c);
112
+ return Effect
113
+ .promise(() => execBatch(ex, ex[0]?.resourceBody._partitionKey))
114
+ .pipe(Effect.flatMap((x) => Effect.gen(function* () {
115
+ const result = x.result ?? [];
116
+ const firstFailed = result.find((x) => x.statusCode > 299 || x.statusCode < 200);
117
+ if (firstFailed) {
118
+ const code = firstFailed.statusCode ?? 0;
119
+ if (code === 412 || code === 404) {
120
+ return yield* new OptimisticConcurrencyException({ type: name, id: "batch" });
121
+ }
122
+ return yield* Effect.die(new CosmosDbOperationError("not able to update record: " + code));
123
+ }
124
+ return batch.map(([e], i) => ({
125
+ ...e,
126
+ _etag: result[i]?.eTag
127
+ }));
128
+ })));
129
+ })
130
+ .pipe(Effect
131
+ .withSpan("Cosmos.batchSet [effect-app/infra/Store]", {
132
+ captureStackTrace: false,
133
+ attributes: { "repository.container_id": containerId, "repository.model_name": name }
134
+ }));
135
+ };
136
+ const s = {
137
+ all: Effect
138
+ .sync(() => ({
139
+ query: `SELECT * FROM ${name} f WHERE f.id != @id`,
140
+ parameters: [{ name: "@id", value: importedMarkerId }]
141
+ }))
142
+ .pipe(Effect.tap((q) => logQuery(q)), Effect.flatMap((q) => Effect.promise(() => container
143
+ .items
144
+ .query(q)
145
+ .fetchAll()
146
+ .then(({ resources }) => resources.map((_) => ({ ...defaultValues, ..._ }))))), Effect
147
+ .withSpan("Cosmos.all [effect-app/infra/Store]", {
148
+ captureStackTrace: false,
149
+ attributes: { "repository.container_id": containerId, "repository.model_name": name }
150
+ })),
151
+ /**
152
+ * May return duplicate results for "join_find", when matching more than once.
153
+ */
154
+ filter: (f) => {
155
+ const skip = f?.skip;
156
+ const limit = f?.limit;
157
+ const filter = f.filter;
158
+ return Effect
159
+ .sync(() => buildWhereCosmosQuery3(filter ?? [], name, importedMarkerId, defaultValues, f.select, f.order, skip, limit))
160
+ .pipe(Effect.tap((q) => logQuery(q)), Effect
161
+ .flatMap((q) => Effect.promise(() => f.select
162
+ ? container
163
+ .items
164
+ .query(q)
165
+ .fetchAll()
166
+ .then(({ resources }) => resources.map((_) => ({ ...pipe(defaultValues, Struct.pick(...f.select)), ..._ })))
167
+ : container
168
+ .items
169
+ .query(q)
170
+ .fetchAll()
171
+ .then(({ resources }) => resources.map((_) => ({ ...defaultValues, ..._.f }))))))
172
+ .pipe(Effect.withSpan("Cosmos.filter [effect-app/infra/Store]", {
173
+ captureStackTrace: false,
174
+ attributes: { "repository.container_id": containerId, "repository.model_name": name }
175
+ }));
176
+ },
177
+ find: (id) => Effect
178
+ .promise(() => container
179
+ .item(id, config?.partitionValue({ id }))
180
+ .read()
181
+ .then(({ resource }) => Option.fromNullable(resource).pipe(Option.map((_) => ({ ...defaultValues, ..._ })))))
182
+ .pipe(Effect
183
+ .withSpan("Cosmos.find [effect-app/infra/Store]", {
184
+ captureStackTrace: false,
185
+ attributes: { "repository.container_id": containerId, "repository.model_name": name }
186
+ })),
187
+ set: (e) => Option
188
+ .match(Option
189
+ .fromNullable(e._etag), {
190
+ onNone: () => Effect.promise(() => container.items.create({
191
+ ...e,
192
+ _partitionKey: config?.partitionValue(e)
193
+ })),
194
+ onSome: (eTag) => Effect.promise(() => container.item(e.id, config?.partitionValue(e)).replace({ ...e, _partitionKey: config?.partitionValue(e) }, {
195
+ accessCondition: {
196
+ type: "IfMatch",
197
+ condition: eTag
198
+ }
199
+ }))
200
+ })
201
+ .pipe(Effect
202
+ .flatMap((x) => {
203
+ if (x.statusCode === 412 || x.statusCode === 404) {
204
+ return new OptimisticConcurrencyException({ type: name, id: e.id });
205
+ }
206
+ if (x.statusCode > 299 || x.statusCode < 200) {
207
+ return Effect.die(new CosmosDbOperationError("not able to update record: " + x.statusCode));
208
+ }
209
+ return Effect.sync(() => ({
210
+ ...e,
211
+ _etag: x.etag
212
+ }));
213
+ }), Effect
214
+ .withSpan("Cosmos.set [effect-app/infra/Store]", {
215
+ captureStackTrace: false,
216
+ attributes: { "repository.container_id": containerId, "repository.model_name": name }
217
+ })),
218
+ batchSet,
219
+ bulkSet,
220
+ remove: (e) => Effect
221
+ .promise(() => container.item(e.id, config?.partitionValue(e)).delete())
222
+ .pipe(Effect
223
+ .withSpan("Cosmos.remove [effect-app/infra/Store]", {
224
+ captureStackTrace: false,
225
+ attributes: { "repository.container_id": containerId, "repository.model_name": name }
226
+ }))
227
+ };
228
+ // handle mock data
229
+ const marker = yield* Effect.promise(() => container
230
+ .item(importedMarkerId, importedMarkerId)
231
+ .read()
232
+ .then(({ resource }) => Option.fromNullable(resource)));
233
+ if (!Option.isSome(marker)) {
234
+ yield* InfraLogger.logInfo("Creating mock data for " + name);
235
+ if (seed) {
236
+ const m = yield* seed;
237
+ yield* Effect.flatMapOption(Effect.succeed(toNonEmptyArray([...m])), (a) => s.bulkSet(a).pipe(Effect.orDie, Effect
238
+ // we delay extra here, so that initial creation between Companies/POs also have an interval between them.
239
+ .delay(Duration.millis(1100))));
240
+ }
241
+ // Mark as imported
242
+ yield* Effect.promise(() => container.items.create({
243
+ _partitionKey: importedMarkerId,
244
+ id: importedMarkerId,
245
+ ttl: -1
246
+ }));
247
+ }
248
+ return s;
249
+ })
250
+ };
251
+ });
252
+ }
253
+ export function CosmosStoreLayer(cfg) {
254
+ return StoreMaker
255
+ .toLayer(makeCosmosStore(cfg))
256
+ .pipe(Layer.provide(CosmosClientLayer(Secret.value(cfg.url), cfg.dbName)));
257
+ }
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Nvc21vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWhHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzlFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR3pDLE1BQU0sc0JBQXNCO0lBQ0w7SUFBckIsWUFBcUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0NBQ3pDLENBQUMsb0RBQW9EO0FBRXRELFNBQVMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFpQjtJQUNoRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUE7UUFDbEMsT0FBTztZQUNMLElBQUksRUFBRSxDQUNKLElBQVksRUFDWixJQUFzQyxFQUN0QyxNQUE2QixFQUM3QixFQUFFLENBQ0YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../src/Store/Disk.ts"],"names":[],"mappings":"AAKA,OAAO,EAAW,MAAM,EAAkB,MAAM,YAAY,CAAA;AAE5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAyGzC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;WAMvD,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS;QAAE,EAAE,EAAE,EAAE,CAAA;KAAE,EAAE,CAAC,EAAE,CAAC,QAClD,MAAM,SACL,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WAC7B,WAAW,CAAC,OAAO,CAAC;iBA4CpC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,0DAEhE"}
@@ -0,0 +1,109 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import * as fu from "../fileUtil.js";
3
+ import fs from "fs";
4
+ import { Console, Effect, FiberRef, flow } from "effect-app";
5
+ import { makeMemoryStoreInt, storeId } from "./Memory.js";
6
+ import { StoreMaker } from "./service.js";
7
+ function makeDiskStoreInt(prefix, namespace, dir, name, seed, defaultValues) {
8
+ return Effect.gen(function* () {
9
+ if (namespace !== "primary") {
10
+ dir = dir + "/" + namespace;
11
+ if (!fs.existsSync(dir)) {
12
+ fs.mkdirSync(dir);
13
+ }
14
+ }
15
+ const file = dir + "/" + prefix + name + ".json";
16
+ const fsStore = {
17
+ get: fu
18
+ .readTextFile(file)
19
+ .pipe(Effect.withSpan("Disk.read.readFile [effect-app/infra/Store]", { captureStackTrace: false }), Effect.flatMap((x) => Effect.sync(() => JSON.parse(x)).pipe(Effect.withSpan("Disk.read.parse [effect-app/infra/Store]", { captureStackTrace: false }))), Effect.orDie, Effect.withSpan("Disk.read [effect-app/infra/Store]", {
20
+ captureStackTrace: false,
21
+ attributes: { "disk.file": file }
22
+ })),
23
+ setRaw: (v) => Effect
24
+ .sync(() => JSON.stringify([...v], undefined, 2))
25
+ .pipe(Effect.withSpan("Disk.stringify [effect-app/infra/Store]", {
26
+ captureStackTrace: false,
27
+ attributes: { "disk.file": file }
28
+ }), Effect
29
+ .flatMap((json) => fu
30
+ .writeTextFile(file, json)
31
+ .pipe(Effect
32
+ .withSpan("Disk.write.writeFile [effect-app/infra/Store]", {
33
+ captureStackTrace: false,
34
+ attributes: { "disk.file_size": json.length }
35
+ }))), Effect
36
+ .withSpan("Disk.write [effect-app/infra/Store]", {
37
+ captureStackTrace: false,
38
+ attributes: { "disk.file": file }
39
+ }))
40
+ };
41
+ const store = yield* makeMemoryStoreInt(name, namespace, !fs.existsSync(file)
42
+ ? seed
43
+ : fsStore.get, defaultValues);
44
+ yield* store.all.pipe(Effect.flatMap(fsStore.setRaw));
45
+ const sem = Effect.unsafeMakeSemaphore(1);
46
+ const withPermit = sem.withPermits(1);
47
+ const flushToDisk = Effect.flatMap(store.all, fsStore.setRaw).pipe(withPermit);
48
+ const flushToDiskInBackground = flushToDisk
49
+ .pipe(Effect.tapErrorCause(Console.error), Effect.uninterruptible, Effect.forkDaemon);
50
+ return {
51
+ ...store,
52
+ batchSet: flow(store.batchSet, Effect.tap(flushToDiskInBackground)),
53
+ bulkSet: flow(store.bulkSet, Effect.tap(flushToDiskInBackground)),
54
+ set: flow(store.set, Effect.tap(flushToDiskInBackground)),
55
+ remove: flow(store.remove, Effect.tap(flushToDiskInBackground))
56
+ };
57
+ });
58
+ }
59
+ /**
60
+ * The Disk-backed store, flushes writes in background, but keeps the data in memory
61
+ * and should therefore be as fast as the Memory Store.
62
+ */
63
+ export function makeDiskStore({ prefix }, dir) {
64
+ return Effect.sync(() => {
65
+ if (!fs.existsSync(dir)) {
66
+ fs.mkdirSync(dir);
67
+ }
68
+ return {
69
+ make: (name, seed, config) => Effect.gen(function* () {
70
+ const storesSem = Effect.unsafeMakeSemaphore(1);
71
+ const primary = yield* makeDiskStoreInt(prefix, "primary", dir, name, seed, config?.defaultValues);
72
+ const stores = new Map([["primary", primary]]);
73
+ const ctx = yield* Effect.context();
74
+ const getStore = !config?.allowNamespace
75
+ ? Effect.succeed(primary)
76
+ : FiberRef.get(storeId).pipe(Effect.flatMap((namespace) => {
77
+ const store = stores.get(namespace);
78
+ if (store) {
79
+ return Effect.succeed(store);
80
+ }
81
+ if (!config.allowNamespace(namespace)) {
82
+ throw new Error(`Namespace ${namespace} not allowed!`);
83
+ }
84
+ return storesSem.withPermits(1)(Effect.suspend(() => {
85
+ const existing = stores.get(namespace);
86
+ if (existing)
87
+ return Effect.sync(() => existing);
88
+ return makeDiskStoreInt(prefix, namespace, dir, name, seed, config?.defaultValues)
89
+ .pipe(Effect.orDie, Effect.provide(ctx), Effect.tap((store) => Effect.sync(() => stores.set(namespace, store))));
90
+ }));
91
+ }));
92
+ const s = {
93
+ all: Effect.flatMap(getStore, (_) => _.all),
94
+ find: (...args) => Effect.flatMap(getStore, (_) => _.find(...args)),
95
+ filter: (...args) => Effect.flatMap(getStore, (_) => _.filter(...args)),
96
+ set: (...args) => Effect.flatMap(getStore, (_) => _.set(...args)),
97
+ batchSet: (...args) => Effect.flatMap(getStore, (_) => _.batchSet(...args)),
98
+ bulkSet: (...args) => Effect.flatMap(getStore, (_) => _.bulkSet(...args)),
99
+ remove: (...args) => Effect.flatMap(getStore, (_) => _.remove(...args))
100
+ };
101
+ return s;
102
+ })
103
+ };
104
+ });
105
+ }
106
+ export function DiskStoreLayer(config, dir) {
107
+ return StoreMaker.toLayer(makeDiskStore(config, dir));
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdG9yZS9EaXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXBDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUVuQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV6QyxTQUFTLGdCQUFnQixDQUN2QixNQUFjLEVBQ2QsU0FBaUIsRUFDakIsR0FBVyxFQUNYLElBQVksRUFDWixJQUFzQyxFQUN0QyxhQUFnQztJQUdoQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3pCLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQTtZQUMzQixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QixFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxNQUFNLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQTtRQUNoRCxNQUFNLE9BQU8sR0FBRztZQUNkLEdBQUcsRUFBRSxFQUFFO2lCQUNKLFlBQVksQ0FBQyxJQUFJLENBQUM7aUJBQ2xCLElBQUksQ0FDSCxNQUFNLENBQUMsUUFBUSxDQUFDLDZDQUE2QyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../src/Store/Memory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,MAAM,EAAE,QAAQ,EAA0C,MAAM,YAAY,CAAA;AAE5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIrD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,wBAAgB,SAAS,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,OAEpF,CAAC,EAAE,KAAG,wCAAG,CA0CtB;AAGD,eAAO,MAAM,OAAO,sCAAoD,CAAA;AAmBxE,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS;IAAE,EAAE,EAAE,EAAE,CAAA;CAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACpG,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACtC,cAAc,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,0EAgIlC;AAED,eAAO,MAAM,eAAe;WACnB,EAAE,SAAS,MAAM,EAAE,OAAO,SAAS;QAAE,EAAE,EAAE,EAAE,CAAA;KAAE,EAAE,CAAC,UAAU,CAAC,qBACrD,MAAM,SACV,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,WAC7B,WAAW,CAAC,OAAO,CAAC;CAuC/B,CAAA;AAEF,eAAO,MAAM,eAAe,wDAA2D,CAAA"}