@effect-app/infra 2.7.1 → 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 +13 -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 +54 -54
  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/{services/Operations.d.ts → Operations.d.ts} +3 -3
  142. package/dist/Operations.d.ts.map +1 -0
  143. package/dist/Operations.js +102 -0
  144. package/dist/{services/OperationsRepo.d.ts → OperationsRepo.d.ts} +1 -1
  145. package/dist/OperationsRepo.d.ts.map +1 -0
  146. package/dist/OperationsRepo.js +14 -0
  147. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -0
  148. package/dist/QueueMaker/SQLQueue.js +136 -0
  149. package/dist/QueueMaker/errors.d.ts.map +1 -0
  150. package/dist/QueueMaker/errors.js +20 -0
  151. package/dist/QueueMaker/memQueue.d.ts.map +1 -0
  152. package/dist/QueueMaker/memQueue.js +78 -0
  153. package/dist/QueueMaker/sbqueue.d.ts.map +1 -0
  154. package/dist/QueueMaker/sbqueue.js +102 -0
  155. package/dist/{services/QueueMaker → QueueMaker}/service.d.ts +1 -1
  156. package/dist/QueueMaker/service.d.ts.map +1 -0
  157. package/dist/QueueMaker/service.js +4 -0
  158. package/dist/RequestFiberSet.d.ts.map +1 -0
  159. package/dist/RequestFiberSet.js +79 -0
  160. package/dist/Store/ContextMapContainer.d.ts.map +1 -0
  161. package/dist/{services/Store → Store}/ContextMapContainer.js +1 -1
  162. package/dist/{services/Store → Store}/Cosmos/query.d.ts +1 -1
  163. package/dist/Store/Cosmos/query.d.ts.map +1 -0
  164. package/dist/Store/Cosmos/query.js +164 -0
  165. package/dist/Store/Cosmos.d.ts.map +1 -0
  166. package/dist/Store/Cosmos.js +258 -0
  167. package/dist/Store/Disk.d.ts.map +1 -0
  168. package/dist/Store/Disk.js +109 -0
  169. package/dist/Store/Memory.d.ts.map +1 -0
  170. package/dist/Store/Memory.js +170 -0
  171. package/dist/{services/Store → Store}/codeFilter.d.ts +1 -1
  172. package/dist/Store/codeFilter.d.ts.map +1 -0
  173. package/dist/Store/codeFilter.js +117 -0
  174. package/dist/Store/index.d.ts.map +1 -0
  175. package/dist/Store/index.js +28 -0
  176. package/dist/{services/Store → Store}/service.d.ts +5 -5
  177. package/dist/Store/service.d.ts.map +1 -0
  178. package/dist/{services/Store → Store}/service.js +1 -1
  179. package/dist/{services/Store → Store}/utils.d.ts +1 -1
  180. package/dist/Store/utils.d.ts.map +1 -0
  181. package/dist/Store/utils.js +44 -0
  182. package/dist/Store.d.ts.map +1 -0
  183. package/dist/{services/Store.js → Store.js} +1 -1
  184. package/dist/{services/adapters → adapters}/SQL/Model.d.ts +23 -23
  185. package/dist/adapters/SQL/Model.d.ts.map +1 -0
  186. package/dist/adapters/SQL/Model.js +508 -0
  187. package/dist/adapters/SQL.d.ts.map +1 -0
  188. package/dist/{services/adapters → adapters}/SQL.js +1 -1
  189. package/dist/adapters/ServiceBus.d.ts.map +1 -0
  190. package/dist/adapters/ServiceBus.js +73 -0
  191. package/dist/adapters/cosmos-client.d.ts.map +1 -0
  192. package/dist/adapters/cosmos-client.js +8 -0
  193. package/dist/{services/adapters → adapters}/index.d.ts.map +1 -1
  194. package/dist/{services/adapters → adapters}/index.js +1 -1
  195. package/dist/adapters/logger.d.ts.map +1 -0
  196. package/dist/{services/adapters → adapters}/logger.js +1 -1
  197. package/dist/adapters/memQueue.d.ts.map +1 -0
  198. package/dist/adapters/memQueue.js +24 -0
  199. package/dist/adapters/mongo-client.d.ts.map +1 -0
  200. package/dist/adapters/mongo-client.js +12 -0
  201. package/dist/adapters/redis-client.d.ts.map +1 -0
  202. package/dist/adapters/redis-client.js +93 -0
  203. package/dist/api/setupRequest.js +3 -3
  204. package/dist/arbs.d.ts.map +1 -0
  205. package/dist/arbs.js +21 -0
  206. package/dist/logger/shared.js +2 -2
  207. package/dist/test.d.ts +1 -1
  208. package/dist/test.d.ts.map +1 -1
  209. package/dist/test.js +3 -3
  210. package/examples/query.ts +3 -3
  211. package/package.json +352 -362
  212. package/src/{services/CUPS.ts → CUPS.ts} +1 -1
  213. package/src/{services/Emailer → Emailer}/Sendgrid.ts +1 -1
  214. package/src/{services/Emailer → Emailer}/fake.ts +1 -1
  215. package/src/{services/MainFiberSet.ts → MainFiberSet.ts} +1 -1
  216. package/src/{services → Model}/Repository/ext.ts +23 -11
  217. package/src/{services → Model}/Repository/legacy.ts +76 -49
  218. package/src/{services/RepositoryBase.ts → Model/Repository/makeRepo.ts} +40 -38
  219. package/src/{services → Model}/Repository/service.ts +9 -8
  220. package/src/{services → Model}/Repository.ts +1 -1
  221. package/src/{services → Model}/query/dsl.ts +24 -6
  222. package/src/{services → Model}/query/new-kid-interpreter.ts +3 -3
  223. package/src/Model.ts +3 -1
  224. package/src/{services/Operations.ts → Operations.ts} +3 -3
  225. package/src/{services/OperationsRepo.ts → OperationsRepo.ts} +1 -1
  226. package/src/{services/QueueMaker → QueueMaker}/SQLQueue.ts +4 -4
  227. package/src/{services/QueueMaker → QueueMaker}/memQueue.ts +2 -2
  228. package/src/{services/QueueMaker → QueueMaker}/sbqueue.ts +2 -2
  229. package/src/{services/QueueMaker → QueueMaker}/service.ts +1 -1
  230. package/src/{services/RequestFiberSet.ts → RequestFiberSet.ts} +2 -2
  231. package/src/{services/Store → Store}/Cosmos/query.ts +2 -2
  232. package/src/{services/Store → Store}/Cosmos.ts +2 -2
  233. package/src/{services/Store → Store}/Disk.ts +1 -1
  234. package/src/{services/Store → Store}/Memory.ts +1 -1
  235. package/src/{services/Store → Store}/codeFilter.ts +1 -1
  236. package/src/{services/Store → Store}/service.ts +4 -4
  237. package/src/{services/Store → Store}/utils.ts +1 -1
  238. package/src/api/setupRequest.ts +2 -2
  239. package/src/logger/shared.ts +1 -1
  240. package/src/test.ts +2 -2
  241. package/test/dist/query.test.d.ts.map +1 -1
  242. package/test/query.test.ts +32 -5
  243. package/_cjs/_ext/Array.cjs +0 -22
  244. package/_cjs/_ext/Array.cjs.map +0 -1
  245. package/_cjs/filter/types/errors.cjs.map +0 -1
  246. package/_cjs/filter/types/fields.cjs.map +0 -1
  247. package/_cjs/filter/types/path/common.cjs.map +0 -1
  248. package/_cjs/filter/types/path/eager.cjs.map +0 -1
  249. package/_cjs/filter/types/path/index.cjs.map +0 -1
  250. package/_cjs/filter/types/utils.cjs.map +0 -1
  251. package/_cjs/filter/types/validator.cjs.map +0 -1
  252. package/_cjs/filter/types.cjs.map +0 -1
  253. package/_cjs/services/CUPS.cjs.map +0 -1
  254. package/_cjs/services/Emailer/Sendgrid.cjs.map +0 -1
  255. package/_cjs/services/Emailer/fake.cjs.map +0 -1
  256. package/_cjs/services/Emailer/service.cjs.map +0 -1
  257. package/_cjs/services/Emailer.cjs.map +0 -1
  258. package/_cjs/services/MainFiberSet.cjs.map +0 -1
  259. package/_cjs/services/Operations.cjs.map +0 -1
  260. package/_cjs/services/OperationsRepo.cjs.map +0 -1
  261. package/_cjs/services/QueueMaker/SQLQueue.cjs.map +0 -1
  262. package/_cjs/services/QueueMaker/errors.cjs.map +0 -1
  263. package/_cjs/services/QueueMaker/memQueue.cjs.map +0 -1
  264. package/_cjs/services/QueueMaker/sbqueue.cjs.map +0 -1
  265. package/_cjs/services/QueueMaker/service.cjs.map +0 -1
  266. package/_cjs/services/Repository/dsl.cjs.map +0 -1
  267. package/_cjs/services/Repository/ext.cjs.map +0 -1
  268. package/_cjs/services/Repository/legacy.cjs.map +0 -1
  269. package/_cjs/services/Repository/service.cjs.map +0 -1
  270. package/_cjs/services/Repository.cjs.map +0 -1
  271. package/_cjs/services/RepositoryBase.cjs.map +0 -1
  272. package/_cjs/services/RequestFiberSet.cjs.map +0 -1
  273. package/_cjs/services/Store/ContextMapContainer.cjs.map +0 -1
  274. package/_cjs/services/Store/Cosmos/query.cjs.map +0 -1
  275. package/_cjs/services/Store/Cosmos.cjs.map +0 -1
  276. package/_cjs/services/Store/Disk.cjs.map +0 -1
  277. package/_cjs/services/Store/Memory.cjs.map +0 -1
  278. package/_cjs/services/Store/codeFilter.cjs.map +0 -1
  279. package/_cjs/services/Store/filterApi/query.cjs +0 -6
  280. package/_cjs/services/Store/filterApi/query.cjs.map +0 -1
  281. package/_cjs/services/Store/index.cjs.map +0 -1
  282. package/_cjs/services/Store/service.cjs.map +0 -1
  283. package/_cjs/services/Store/utils.cjs.map +0 -1
  284. package/_cjs/services/Store.cjs.map +0 -1
  285. package/_cjs/services/adapters/SQL/Model.cjs.map +0 -1
  286. package/_cjs/services/adapters/SQL.cjs.map +0 -1
  287. package/_cjs/services/adapters/ServiceBus.cjs.map +0 -1
  288. package/_cjs/services/adapters/cosmos-client.cjs.map +0 -1
  289. package/_cjs/services/adapters/index.cjs.map +0 -1
  290. package/_cjs/services/adapters/logger.cjs.map +0 -1
  291. package/_cjs/services/adapters/memQueue.cjs.map +0 -1
  292. package/_cjs/services/adapters/mongo-client.cjs.map +0 -1
  293. package/_cjs/services/adapters/redis-client.cjs.map +0 -1
  294. package/_cjs/services/query/dsl.cjs.map +0 -1
  295. package/_cjs/services/query/new-kid-interpreter.cjs.map +0 -1
  296. package/_cjs/services/query.cjs.map +0 -1
  297. package/_cjs/test/arbs.cjs.map +0 -1
  298. package/dist/_ext/Array.d.ts +0 -13
  299. package/dist/_ext/Array.d.ts.map +0 -1
  300. package/dist/_ext/Array.js +0 -15
  301. package/dist/filter/types/errors.d.ts.map +0 -1
  302. package/dist/filter/types/fields.d.ts.map +0 -1
  303. package/dist/filter/types/path/common.d.ts.map +0 -1
  304. package/dist/filter/types/path/eager.d.ts.map +0 -1
  305. package/dist/filter/types/path/index.d.ts.map +0 -1
  306. package/dist/filter/types/utils.d.ts.map +0 -1
  307. package/dist/filter/types/validator.d.ts.map +0 -1
  308. package/dist/filter/types.d.ts.map +0 -1
  309. package/dist/services/CUPS.d.ts.map +0 -1
  310. package/dist/services/CUPS.js +0 -116
  311. package/dist/services/Emailer/Sendgrid.d.ts.map +0 -1
  312. package/dist/services/Emailer/Sendgrid.js +0 -99
  313. package/dist/services/Emailer/fake.d.ts.map +0 -1
  314. package/dist/services/Emailer/fake.js +0 -18
  315. package/dist/services/Emailer/service.d.ts.map +0 -1
  316. package/dist/services/Emailer.d.ts.map +0 -1
  317. package/dist/services/MainFiberSet.d.ts.map +0 -1
  318. package/dist/services/MainFiberSet.js +0 -54
  319. package/dist/services/Operations.d.ts.map +0 -1
  320. package/dist/services/Operations.js +0 -102
  321. package/dist/services/OperationsRepo.d.ts.map +0 -1
  322. package/dist/services/OperationsRepo.js +0 -14
  323. package/dist/services/QueueMaker/SQLQueue.d.ts.map +0 -1
  324. package/dist/services/QueueMaker/SQLQueue.js +0 -136
  325. package/dist/services/QueueMaker/errors.d.ts.map +0 -1
  326. package/dist/services/QueueMaker/errors.js +0 -20
  327. package/dist/services/QueueMaker/memQueue.d.ts.map +0 -1
  328. package/dist/services/QueueMaker/memQueue.js +0 -78
  329. package/dist/services/QueueMaker/sbqueue.d.ts.map +0 -1
  330. package/dist/services/QueueMaker/sbqueue.js +0 -102
  331. package/dist/services/QueueMaker/service.d.ts.map +0 -1
  332. package/dist/services/QueueMaker/service.js +0 -4
  333. package/dist/services/Repository/dsl.d.ts.map +0 -1
  334. package/dist/services/Repository/dsl.js +0 -46
  335. package/dist/services/Repository/ext.d.ts.map +0 -1
  336. package/dist/services/Repository/ext.js +0 -61
  337. package/dist/services/Repository/legacy.d.ts.map +0 -1
  338. package/dist/services/Repository/legacy.js +0 -124
  339. package/dist/services/Repository/service.d.ts.map +0 -1
  340. package/dist/services/Repository.d.ts.map +0 -1
  341. package/dist/services/Repository.js +0 -5
  342. package/dist/services/RepositoryBase.d.ts.map +0 -1
  343. package/dist/services/RepositoryBase.js +0 -256
  344. package/dist/services/RequestFiberSet.d.ts.map +0 -1
  345. package/dist/services/RequestFiberSet.js +0 -79
  346. package/dist/services/Store/ContextMapContainer.d.ts.map +0 -1
  347. package/dist/services/Store/Cosmos/query.d.ts.map +0 -1
  348. package/dist/services/Store/Cosmos/query.js +0 -164
  349. package/dist/services/Store/Cosmos.d.ts.map +0 -1
  350. package/dist/services/Store/Cosmos.js +0 -258
  351. package/dist/services/Store/Disk.d.ts.map +0 -1
  352. package/dist/services/Store/Disk.js +0 -109
  353. package/dist/services/Store/Memory.d.ts.map +0 -1
  354. package/dist/services/Store/Memory.js +0 -170
  355. package/dist/services/Store/codeFilter.d.ts.map +0 -1
  356. package/dist/services/Store/codeFilter.js +0 -117
  357. package/dist/services/Store/filterApi/query.d.ts.map +0 -1
  358. package/dist/services/Store/filterApi/query.js +0 -2
  359. package/dist/services/Store/index.d.ts.map +0 -1
  360. package/dist/services/Store/index.js +0 -28
  361. package/dist/services/Store/service.d.ts.map +0 -1
  362. package/dist/services/Store/utils.d.ts.map +0 -1
  363. package/dist/services/Store/utils.js +0 -44
  364. package/dist/services/Store.d.ts.map +0 -1
  365. package/dist/services/adapters/SQL/Model.d.ts.map +0 -1
  366. package/dist/services/adapters/SQL/Model.js +0 -508
  367. package/dist/services/adapters/SQL.d.ts.map +0 -1
  368. package/dist/services/adapters/ServiceBus.d.ts.map +0 -1
  369. package/dist/services/adapters/ServiceBus.js +0 -73
  370. package/dist/services/adapters/cosmos-client.d.ts.map +0 -1
  371. package/dist/services/adapters/cosmos-client.js +0 -8
  372. package/dist/services/adapters/logger.d.ts.map +0 -1
  373. package/dist/services/adapters/memQueue.d.ts.map +0 -1
  374. package/dist/services/adapters/memQueue.js +0 -24
  375. package/dist/services/adapters/mongo-client.d.ts.map +0 -1
  376. package/dist/services/adapters/mongo-client.js +0 -12
  377. package/dist/services/adapters/redis-client.d.ts.map +0 -1
  378. package/dist/services/adapters/redis-client.js +0 -93
  379. package/dist/services/query/dsl.d.ts.map +0 -1
  380. package/dist/services/query/dsl.js +0 -95
  381. package/dist/services/query/new-kid-interpreter.d.ts.map +0 -1
  382. package/dist/services/query/new-kid-interpreter.js +0 -133
  383. package/dist/services/query.d.ts.map +0 -1
  384. package/dist/test/arbs.d.ts.map +0 -1
  385. package/dist/test/arbs.js +0 -21
  386. package/src/_ext/Array.ts +0 -22
  387. /package/_cjs/{services/Emailer → Emailer}/service.cjs +0 -0
  388. /package/_cjs/{services/Emailer.cjs → Emailer.cjs} +0 -0
  389. /package/_cjs/{services → Model}/Repository/service.cjs +0 -0
  390. /package/_cjs/{services/Repository → Model}/dsl.cjs +0 -0
  391. /package/_cjs/{filter → Model/filter}/types/errors.cjs +0 -0
  392. /package/_cjs/{filter → Model/filter}/types/fields.cjs +0 -0
  393. /package/_cjs/{filter → Model/filter}/types/path/common.cjs +0 -0
  394. /package/_cjs/{filter → Model/filter}/types/path/eager.cjs +0 -0
  395. /package/_cjs/{filter → Model/filter}/types/path/index.cjs +0 -0
  396. /package/_cjs/{filter → Model/filter}/types/utils.cjs +0 -0
  397. /package/_cjs/{filter → Model/filter}/types/validator.cjs +0 -0
  398. /package/_cjs/{filter → Model/filter}/types.cjs +0 -0
  399. /package/_cjs/{services → Model}/query/dsl.cjs +0 -0
  400. /package/_cjs/{services → Model}/query/new-kid-interpreter.cjs +0 -0
  401. /package/_cjs/{services → Model}/query.cjs +0 -0
  402. /package/_cjs/{services/QueueMaker → QueueMaker}/errors.cjs +0 -0
  403. /package/_cjs/{services/Store → Store}/ContextMapContainer.cjs +0 -0
  404. /package/_cjs/{services/Store → Store}/codeFilter.cjs +0 -0
  405. /package/_cjs/{services/Store → Store}/index.cjs +0 -0
  406. /package/_cjs/{services/Store → Store}/service.cjs +0 -0
  407. /package/_cjs/{services/Store.cjs → Store.cjs} +0 -0
  408. /package/_cjs/{services/adapters → adapters}/SQL/Model.cjs +0 -0
  409. /package/_cjs/{services/adapters → adapters}/SQL.cjs +0 -0
  410. /package/_cjs/{services/adapters → adapters}/ServiceBus.cjs +0 -0
  411. /package/_cjs/{services/adapters → adapters}/cosmos-client.cjs +0 -0
  412. /package/_cjs/{services/adapters → adapters}/index.cjs +0 -0
  413. /package/_cjs/{services/adapters → adapters}/logger.cjs +0 -0
  414. /package/_cjs/{services/adapters → adapters}/memQueue.cjs +0 -0
  415. /package/_cjs/{services/adapters → adapters}/mongo-client.cjs +0 -0
  416. /package/_cjs/{services/adapters → adapters}/redis-client.cjs +0 -0
  417. /package/_cjs/{test/arbs.cjs → arbs.cjs} +0 -0
  418. /package/dist/{services/CUPS.d.ts → CUPS.d.ts} +0 -0
  419. /package/dist/{services/Emailer → Emailer}/Sendgrid.d.ts +0 -0
  420. /package/dist/{services/Emailer → Emailer}/fake.d.ts +0 -0
  421. /package/dist/{services/Emailer.d.ts → Emailer.d.ts} +0 -0
  422. /package/dist/{services/MainFiberSet.d.ts → MainFiberSet.d.ts} +0 -0
  423. /package/dist/{services/Repository → Model}/dsl.d.ts +0 -0
  424. /package/dist/{filter → Model/filter}/types/errors.d.ts +0 -0
  425. /package/dist/{filter → Model/filter}/types/fields.d.ts +0 -0
  426. /package/dist/{filter → Model/filter}/types/path/common.d.ts +0 -0
  427. /package/dist/{filter → Model/filter}/types/path/eager.d.ts +0 -0
  428. /package/dist/{filter → Model/filter}/types/path/index.d.ts +0 -0
  429. /package/dist/{filter → Model/filter}/types/utils.d.ts +0 -0
  430. /package/dist/{filter → Model/filter}/types/validator.d.ts +0 -0
  431. /package/dist/{filter → Model/filter}/types.d.ts +0 -0
  432. /package/dist/{services → Model}/query.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
@@ -1,508 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
- /* eslint-disable @typescript-eslint/no-empty-object-type */
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
6
- /* eslint-disable @typescript-eslint/no-unsafe-return */
7
- /**
8
- * @since 1.0.0
9
- */
10
- import * as RRX from "@effect/experimental/RequestResolver";
11
- import * as VariantSchema from "@effect/experimental/VariantSchema";
12
- import { SqlClient } from "@effect/sql/SqlClient";
13
- import * as SqlResolver from "@effect/sql/SqlResolver";
14
- import * as SqlSchema from "@effect/sql/SqlSchema";
15
- import { randomUUID } from "crypto"; // TODO
16
- import * as DateTime from "effect/DateTime";
17
- import * as Effect from "effect/Effect";
18
- import * as Option from "effect/Option";
19
- import * as ParseResult from "effect/ParseResult";
20
- import * as Schema from "effect/Schema";
21
- const { Class, Field, FieldExcept, FieldOnly, Struct, Union, extract, fieldEvolve, fieldFromKey } = VariantSchema.make({
22
- variants: ["select", "insert", "update", "json", "jsonCreate", "jsonUpdate"],
23
- defaultVariant: "select"
24
- });
25
- export {
26
- /**
27
- * A base class used for creating domain model schemas.
28
- *
29
- * It supports common variants for database and JSON apis.
30
- *
31
- * @since 1.0.0
32
- * @category constructors
33
- * @example
34
- * import { Schema } from "effect/Schema"
35
- * import { Model } from "@effect/sql"
36
- *
37
- * export const GroupId = Schema.Number.pipe(Schema.brand("GroupId"))
38
- *
39
- * export class Group extends Model.Class<Group>("Group")({
40
- * id: Model.Generated(GroupId),
41
- * name: Schema.NonEmptyTrimmedString,
42
- * createdAt: Model.DateTimeInsertFromDate,
43
- * updatedAt: Model.DateTimeUpdateFromDate
44
- * }) {}
45
- *
46
- * // schema used for selects
47
- * Group
48
- *
49
- * // schema used for inserts
50
- * Group.insert
51
- *
52
- * // schema used for updates
53
- * Group.update
54
- *
55
- * // schema used for json api
56
- * Group.json
57
- * Group.jsonCreate
58
- * Group.jsonUpdate
59
- *
60
- * // you can also turn them into classes
61
- * class GroupJson extends Schema.Class<GroupJson>("GroupJson")(Group.json) {
62
- * get upperName() {
63
- * return this.name.toUpperCase()
64
- * }
65
- * }
66
- */
67
- Class,
68
- /**
69
- * @since 1.0.0
70
- * @category extraction
71
- */
72
- extract,
73
- /**
74
- * @since 1.0.0
75
- * @category fields
76
- */
77
- Field,
78
- /**
79
- * @since 1.0.0
80
- * @category fields
81
- */
82
- fieldEvolve,
83
- /**
84
- * @since 1.0.0
85
- * @category fields
86
- */
87
- FieldExcept,
88
- /**
89
- * @since 1.0.0
90
- * @category fields
91
- */
92
- fieldFromKey,
93
- /**
94
- * @since 1.0.0
95
- * @category fields
96
- */
97
- FieldOnly,
98
- /**
99
- * @since 1.0.0
100
- * @category constructors
101
- */
102
- Struct,
103
- /**
104
- * @since 1.0.0
105
- * @category constructors
106
- */
107
- Union };
108
- /**
109
- * @since 1.0.0
110
- * @category fields
111
- */
112
- export const fields = VariantSchema.fields;
113
- /**
114
- * @since 1.0.0
115
- * @category overrideable
116
- */
117
- export const Override = VariantSchema.Override;
118
- /**
119
- * A field that represents a column that is generated by the database.
120
- *
121
- * It is available for selection and update, but not for insertion.
122
- *
123
- * @since 1.0.0
124
- * @category generated
125
- */
126
- export const Generated = (schema) => Field({
127
- select: schema,
128
- update: schema,
129
- json: schema
130
- });
131
- /**
132
- * A field that represents a column that is generated by the application.
133
- *
134
- * It is required by the database, but not by the JSON variants.
135
- *
136
- * @since 1.0.0
137
- * @category generated
138
- */
139
- export const GeneratedByApp = (schema) => Field({
140
- select: schema,
141
- insert: schema,
142
- update: schema,
143
- json: schema
144
- });
145
- /**
146
- * A field that represents a sensitive value that should not be exposed in the
147
- * JSON variants.
148
- *
149
- * @since 1.0.0
150
- * @category sensitive
151
- */
152
- export const Sensitive = (schema) => Field({
153
- select: schema,
154
- insert: schema,
155
- update: schema
156
- });
157
- /**
158
- * Convert a field to one that is optional for all variants.
159
- *
160
- * For the database variants, it will accept `null`able values.
161
- * For the JSON variants, it will also accept missing keys.
162
- *
163
- * @since 1.0.0
164
- * @category optional
165
- */
166
- export const FieldOption = fieldEvolve({
167
- select: Schema.OptionFromNullOr,
168
- insert: Schema.OptionFromNullOr,
169
- update: Schema.OptionFromNullOr,
170
- json: Schema.optionalWith({ as: "Option" }),
171
- jsonCreate: Schema.optionalWith({ as: "Option", nullable: true }),
172
- jsonUpdate: Schema.optionalWith({ as: "Option", nullable: true })
173
- });
174
- /**
175
- * @since 1.0.0
176
- * @category date & time
177
- */
178
- export const DateTimeFromDate = Schema.transform(Schema.ValidDateFromSelf, Schema.DateTimeUtcFromSelf, {
179
- decode: DateTime.unsafeFromDate,
180
- encode: DateTime.toDateUtc
181
- });
182
- /**
183
- * A schema for a `DateTime.Utc` that is serialized as a date string in the
184
- * format `YYYY-MM-DD`.
185
- *
186
- * @since 1.0.0
187
- * @category date & time
188
- */
189
- export const Date = Schema.transformOrFail(Schema.String, Schema.DateTimeUtcFromSelf, {
190
- decode: (s, _, ast) => DateTime.make(s).pipe(Option.map(DateTime.removeTime), Option.match({
191
- onNone: () => ParseResult.fail(new ParseResult.Type(ast, s)),
192
- onSome: (dt) => ParseResult.succeed(dt)
193
- })),
194
- encode: (dt) => ParseResult.succeed(DateTime.formatIsoDate(dt))
195
- });
196
- /**
197
- * @since 1.0.0
198
- * @category date & time
199
- */
200
- export const DateWithNow = VariantSchema.Overrideable(Date, Schema.DateTimeUtcFromSelf, {
201
- generate: Option.match({
202
- onNone: () => Effect.map(DateTime.now, DateTime.removeTime),
203
- onSome: (dt) => Effect.succeed(DateTime.removeTime(dt))
204
- })
205
- });
206
- /**
207
- * @since 1.0.0
208
- * @category date & time
209
- */
210
- export const DateTimeWithNow = VariantSchema.Overrideable(Schema.String, Schema.DateTimeUtcFromSelf, {
211
- generate: Option.match({
212
- onNone: () => Effect.map(DateTime.now, DateTime.formatIso),
213
- onSome: (dt) => Effect.succeed(DateTime.formatIso(dt))
214
- })
215
- });
216
- /**
217
- * @since 1.0.0
218
- * @category date & time
219
- */
220
- export const DateTimeFromDateWithNow = VariantSchema.Overrideable(Schema.DateFromSelf, Schema.DateTimeUtcFromSelf, {
221
- generate: Option.match({
222
- onNone: () => Effect.map(DateTime.now, DateTime.toDateUtc),
223
- onSome: (dt) => Effect.succeed(DateTime.toDateUtc(dt))
224
- })
225
- });
226
- /**
227
- * @since 1.0.0
228
- * @category date & time
229
- */
230
- export const DateTimeFromNumberWithNow = VariantSchema.Overrideable(Schema.Number, Schema.DateTimeUtcFromSelf, {
231
- generate: Option.match({
232
- onNone: () => Effect.map(DateTime.now, DateTime.toEpochMillis),
233
- onSome: (dt) => Effect.succeed(DateTime.toEpochMillis(dt))
234
- })
235
- });
236
- /**
237
- * A field that represents a date-time value that is inserted as the current
238
- * `DateTime.Utc`. It is serialized as a string for the database.
239
- *
240
- * It is omitted from updates and is available for selection.
241
- *
242
- * @since 1.0.0
243
- * @category date & time
244
- */
245
- export const DateTimeInsert = Field({
246
- select: Schema.DateTimeUtc,
247
- insert: DateTimeWithNow,
248
- json: Schema.DateTimeUtc
249
- });
250
- /**
251
- * A field that represents a date-time value that is inserted as the current
252
- * `DateTime.Utc`. It is serialized as a `Date` for the database.
253
- *
254
- * It is omitted from updates and is available for selection.
255
- *
256
- * @since 1.0.0
257
- * @category date & time
258
- */
259
- export const DateTimeInsertFromDate = Field({
260
- select: DateTimeFromDate,
261
- insert: DateTimeFromDateWithNow,
262
- json: Schema.DateTimeUtc
263
- });
264
- /**
265
- * A field that represents a date-time value that is inserted as the current
266
- * `DateTime.Utc`. It is serialized as a `number`.
267
- *
268
- * It is omitted from updates and is available for selection.
269
- *
270
- * @since 1.0.0
271
- * @category date & time
272
- */
273
- export const DateTimeInsertFromNumber = Field({
274
- select: Schema.DateTimeUtcFromNumber,
275
- insert: DateTimeFromNumberWithNow,
276
- json: Schema.DateTimeUtcFromNumber
277
- });
278
- /**
279
- * A field that represents a date-time value that is updated as the current
280
- * `DateTime.Utc`. It is serialized as a string for the database.
281
- *
282
- * It is set to the current `DateTime.Utc` on updates and inserts and is
283
- * available for selection.
284
- *
285
- * @since 1.0.0
286
- * @category date & time
287
- */
288
- export const DateTimeUpdate = Field({
289
- select: Schema.DateTimeUtc,
290
- insert: DateTimeWithNow,
291
- update: DateTimeWithNow,
292
- json: Schema.DateTimeUtc
293
- });
294
- /**
295
- * A field that represents a date-time value that is updated as the current
296
- * `DateTime.Utc`. It is serialized as a `Date` for the database.
297
- *
298
- * It is set to the current `DateTime.Utc` on updates and inserts and is
299
- * available for selection.
300
- *
301
- * @since 1.0.0
302
- * @category date & time
303
- */
304
- export const DateTimeUpdateFromDate = Field({
305
- select: DateTimeFromDate,
306
- insert: DateTimeFromDateWithNow,
307
- update: DateTimeFromDateWithNow,
308
- json: Schema.DateTimeUtc
309
- });
310
- /**
311
- * A field that represents a date-time value that is updated as the current
312
- * `DateTime.Utc`. It is serialized as a `number`.
313
- *
314
- * It is set to the current `DateTime.Utc` on updates and inserts and is
315
- * available for selection.
316
- *
317
- * @since 1.0.0
318
- * @category date & time
319
- */
320
- export const DateTimeUpdateFromNumber = Field({
321
- select: Schema.DateTimeUtcFromNumber,
322
- insert: DateTimeFromNumberWithNow,
323
- update: DateTimeFromNumberWithNow,
324
- json: Schema.DateTimeUtcFromNumber
325
- });
326
- /**
327
- * A field that represents a JSON value stored as text in the database.
328
- *
329
- * The "json" variants will use the object schema directly.
330
- *
331
- * @since 1.0.0
332
- * @category json
333
- */
334
- export const JsonFromString = (schema) => {
335
- const parsed = Schema.parseJson(schema);
336
- return Field({
337
- select: parsed,
338
- insert: parsed,
339
- update: parsed,
340
- json: schema,
341
- jsonCreate: schema,
342
- jsonUpdate: schema
343
- });
344
- };
345
- /**
346
- * Create a simple CRUD repository from a model.
347
- *
348
- * @since 1.0.0
349
- * @category repository
350
- */
351
- export const makeRepository = (Model, options) => Effect.gen(function* () {
352
- const sql = yield* SqlClient;
353
- const idSchema = Model.fields[options.idColumn];
354
- const idColumn = options.idColumn;
355
- const versionColumn = options.versionColumn;
356
- // TODO: insert version automatically...
357
- // I guess we should hide the versionColumn and insert it in the schema instead
358
- const insertSchema = SqlSchema.single({
359
- Request: Model.insert,
360
- Result: Model,
361
- execute: (request) => sql.onDialectOrElse({
362
- mysql: () => sql `insert into ${sql(options.tableName)} ${sql.insert(request)};
363
- select * from ${sql(options.tableName)} where ${sql(idColumn)} = LAST_INSERT_ID();`
364
- .unprepared
365
- .pipe(Effect.map(([, results]) => results)),
366
- orElse: () => sql `insert into ${sql(options.tableName)} ${sql.insert(request).returning("*")}`
367
- })
368
- });
369
- const insert = (insert) => insertSchema(insert).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.insert`, {
370
- captureStackTrace: false,
371
- attributes: { insert }
372
- }));
373
- const insertVoidSchema = SqlSchema.void({
374
- Request: Model.insert,
375
- execute: (request) => sql `insert into ${sql(options.tableName)} ${sql.insert(request)}`
376
- });
377
- const insertVoid = (insert) => insertVoidSchema(insert).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.insertVoid`, {
378
- captureStackTrace: false,
379
- attributes: { insert }
380
- }));
381
- const updateSchema = SqlSchema.single({
382
- Request: Model.update,
383
- Result: Model,
384
- execute: versionColumn
385
- ? (request) => sql.onDialectOrElse({
386
- mysql: () => sql `update ${sql(options.tableName)} set ${sql.update({ ...request, [versionColumn]: randomUUID() }, [idColumn])} where ${sql(idColumn)} = ${request[idColumn]} and ${sql(versionColumn)} = ${request[versionColumn]};
387
- select * from ${sql(options.tableName)} where ${sql(idColumn)} = ${request[idColumn]};`
388
- .unprepared
389
- .pipe(Effect.map(([, results]) => results)),
390
- orElse: () => sql `update ${sql(options.tableName)} set ${sql.update({ ...request, [versionColumn]: randomUUID() }, [idColumn])} where ${sql(idColumn)} = ${request[idColumn]} and ${sql(versionColumn)} = ${request[versionColumn]} returning *`
391
- })
392
- : (request) => sql.onDialectOrElse({
393
- mysql: () => sql `update ${sql(options.tableName)} set ${sql.update(request, [idColumn])} where ${sql(idColumn)} = ${request[idColumn]};
394
- select * from ${sql(options.tableName)} where ${sql(idColumn)} = ${request[idColumn]};`
395
- .unprepared
396
- .pipe(Effect.map(([, results]) => results)),
397
- orElse: () => sql `update ${sql(options.tableName)} set ${sql.update(request, [idColumn])} where ${sql(idColumn)} = ${request[idColumn]} returning *`
398
- })
399
- });
400
- const update = (update) => updateSchema(update).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.update`, {
401
- captureStackTrace: false,
402
- attributes: { update }
403
- }));
404
- const updateVoidSchema = SqlSchema.void({
405
- Request: Model.update,
406
- execute: versionColumn
407
- ? (request) => sql `update ${sql(options.tableName)} set ${sql.update({ ...request, [versionColumn]: randomUUID() }, [idColumn])} where ${sql(idColumn)} = ${request[idColumn]} and ${sql(versionColumn)} = ${request[versionColumn]}`
408
- : (request) => sql `update ${sql(options.tableName)} set ${sql.update(request, [idColumn])} where ${sql(idColumn)} = ${request[idColumn]}`
409
- });
410
- const updateVoid = (update) => updateVoidSchema(update).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.updateVoid`, {
411
- captureStackTrace: false,
412
- attributes: { update }
413
- }));
414
- const findByIdSchema = SqlSchema.findOne({
415
- Request: idSchema,
416
- Result: Model,
417
- execute: (id) => sql `select * from ${sql(options.tableName)} where ${sql(idColumn)} = ${id}`
418
- });
419
- const findById = (id) => findByIdSchema(id).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.findById`, {
420
- captureStackTrace: false,
421
- attributes: { id }
422
- }));
423
- const deleteSchema = SqlSchema.void({
424
- Request: idSchema,
425
- execute: (id) => sql `delete from ${sql(options.tableName)} where ${sql(idColumn)} = ${id}`
426
- });
427
- const delete_ = (id) => deleteSchema(id).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.delete`, {
428
- captureStackTrace: false,
429
- attributes: { id }
430
- }));
431
- return { insert, insertVoid, update, updateVoid, findById, delete: delete_ };
432
- });
433
- /**
434
- * Create some simple data loaders from a model.
435
- *
436
- * @since 1.0.0
437
- * @category repository
438
- */
439
- export const makeDataLoaders = (Model, options) => Effect.gen(function* () {
440
- const sql = yield* SqlClient;
441
- const idSchema = Model.fields[options.idColumn];
442
- const idColumn = options.idColumn;
443
- const insertResolver = yield* SqlResolver.ordered(`${options.spanPrefix}/insert`, {
444
- Request: Model.insert,
445
- Result: Model,
446
- execute: (request) => sql.onDialectOrElse({
447
- mysql: () => Effect.forEach(request, (request) => sql `insert into ${sql(options.tableName)} ${sql.insert(request)};
448
- select * from ${sql(options.tableName)} where ${sql(idColumn)} = LAST_INSERT_ID();`
449
- .unprepared
450
- .pipe(Effect.map(([, results]) => results)), { concurrency: 10 }),
451
- orElse: () => sql `insert into ${sql(options.tableName)} ${sql.insert(request).returning("*")}`
452
- })
453
- });
454
- const insertLoader = yield* RRX.dataLoader(insertResolver, {
455
- window: options.window,
456
- maxBatchSize: options.maxBatchSize
457
- });
458
- const insertExecute = insertResolver.makeExecute(insertLoader);
459
- const insert = (insert) => insertExecute(insert).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.insert`, {
460
- captureStackTrace: false,
461
- attributes: { insert }
462
- }));
463
- const insertVoidResolver = yield* SqlResolver.void(`${options.spanPrefix}/insertVoid`, {
464
- Request: Model.insert,
465
- execute: (request) => sql `insert into ${sql(options.tableName)} ${sql.insert(request)}`
466
- });
467
- const insertVoidLoader = yield* RRX.dataLoader(insertVoidResolver, {
468
- window: options.window,
469
- maxBatchSize: options.maxBatchSize
470
- });
471
- const insertVoidExecute = insertVoidResolver.makeExecute(insertVoidLoader);
472
- const insertVoid = (insert) => insertVoidExecute(insert).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.insertVoid`, {
473
- captureStackTrace: false,
474
- attributes: { insert }
475
- }));
476
- const findByIdResolver = yield* SqlResolver.findById(`${options.spanPrefix}/findById`, {
477
- Id: idSchema,
478
- Result: Model,
479
- ResultId(request) {
480
- return request[idColumn];
481
- },
482
- execute: (ids) => sql `select * from ${sql(options.tableName)} where ${sql.in(idColumn, ids)}`
483
- });
484
- const findByIdLoader = yield* RRX.dataLoader(findByIdResolver, {
485
- window: options.window,
486
- maxBatchSize: options.maxBatchSize
487
- });
488
- const findByIdExecute = findByIdResolver.makeExecute(findByIdLoader);
489
- const findById = (id) => findByIdExecute(id).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.findById`, {
490
- captureStackTrace: false,
491
- attributes: { id }
492
- }));
493
- const deleteResolver = yield* SqlResolver.void(`${options.spanPrefix}/delete`, {
494
- Request: idSchema,
495
- execute: (ids) => sql `delete from ${sql(options.tableName)} where ${sql.in(idColumn, ids)}`
496
- });
497
- const deleteLoader = yield* RRX.dataLoader(deleteResolver, {
498
- window: options.window,
499
- maxBatchSize: options.maxBatchSize
500
- });
501
- const deleteExecute = deleteResolver.makeExecute(deleteLoader);
502
- const delete_ = (id) => deleteExecute(id).pipe(Effect.orDie, Effect.withSpan(`${options.spanPrefix}.delete`, {
503
- captureStackTrace: false,
504
- attributes: { id }
505
- }));
506
- return { insert, insertVoid, findById, delete: delete_ };
507
- });
508
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvYWRhcHRlcnMvU1FML01vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtEQUErRDtBQUMvRCw0REFBNEQ7QUFDNUQsNERBQTREO0FBQzVELHVEQUF1RDtBQUN2RCwwREFBMEQ7QUFDMUQsd0RBQXdEO0FBQ3hEOztHQUVHO0FBQ0gsT0FBTyxLQUFLLEdBQUcsTUFBTSxzQ0FBc0MsQ0FBQTtBQUMzRCxPQUFPLEtBQUssYUFBYSxNQUFNLG9DQUFvQyxDQUFBO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFBO0FBQ3RELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQSxDQUFDLE9BQU87QUFFM0MsT0FBTyxLQUFLLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQTtBQUUzQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssV0FBVyxNQUFNLG9CQUFvQixDQUFBO0FBQ2pELE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBR3ZDLE1BQU0sRUFDSixLQUFLLEVBQ0wsS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEVBQ1AsV0FBVyxFQUNYLFlBQVksRUFDYixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7SUFDckIsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUM7SUFDNUUsY0FBYyxFQUFFLFFBQVE7Q0FDekIsQ0FBQyxDQUFBO0FB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"SQL.d.ts","sourceRoot":"","sources":["../../../src/services/adapters/SQL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceBus.d.ts","sourceRoot":"","sources":["../../../src/services/adapters/ServiceBus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAS,OAAO,EAAE,MAAM,EAAkB,KAAK,EAAE,MAAM,YAAY,CAAA;AAW1E,eAAO,MAAM,oBAAoB,QAAS,MAAM,gDAA0C,CAAA;AAY1F,eAAO,MAAM,MAAM,iDAA2D,CAAA;AAE9E,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,0DAG3C;;UAkBO,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;UADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;UADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;iBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;;;;;;;;;cADnG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;qBAClE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC;;;AAJ3G,qBAAa,yBAA0B,SAAQ,8BAK3C;IACF,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAe,MAAM,qEAMlC;CACR;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,sBAAsB,EAC1E,OAAO,CAAC,EAAE,oBAAoB,gDAM/B;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,qFA6C3F;AAED,MAAM,WAAW,eAAe,CAAC,IAAI,EAAE,IAAI;IACzC;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7E;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAChE"}
@@ -1,73 +0,0 @@
1
- import { ServiceBusClient } from "@azure/service-bus";
2
- import { Cause, Context, Effect, Exit, FiberSet, Layer } from "effect-app";
3
- import { InfraLogger } from "./logger.js";
4
- function makeClient(url) {
5
- return Effect.acquireRelease(Effect.sync(() => new ServiceBusClient(url)), (client) => Effect.promise(() => client.close()));
6
- }
7
- const Client = Context.GenericTag("@services/Client");
8
- export const LiveServiceBusClient = (url) => Layer.scoped(Client)(makeClient(url));
9
- function makeSender(queueName) {
10
- return Effect.gen(function* () {
11
- const serviceBusClient = yield* Client;
12
- return yield* Effect.acquireRelease(Effect.sync(() => serviceBusClient.createSender(queueName)), (subscription) => Effect.promise(() => subscription.close()));
13
- });
14
- }
15
- export const Sender = Context.GenericTag("@services/Sender");
16
- export function LiveSender(queueName) {
17
- return Layer
18
- .scoped(Sender, makeSender(queueName));
19
- }
20
- function makeReceiver(queueName, waitTillEmpty, sessionId) {
21
- return Effect.gen(function* () {
22
- const serviceBusClient = yield* Client;
23
- return yield* Effect.acquireRelease(sessionId
24
- ? Effect.promise(() => serviceBusClient.acceptSession(queueName, sessionId))
25
- : Effect.sync(() => serviceBusClient.createReceiver(queueName)), (r) => waitTillEmpty.pipe(Effect.andThen(Effect.promise(() => r.close()))));
26
- });
27
- }
28
- export class ServiceBusReceiverFactory extends Context.TagId("ServiceBusReceiverFactory")() {
29
- static Live = (queueName) => this.toLayer(Client.pipe(Effect.andThen((cl) => ({
30
- make: (waitTillEmpty) => makeReceiver(queueName, waitTillEmpty).pipe(Effect.provideService(Client, cl)),
31
- makeSession: (sessionId, waitTillEmpty) => makeReceiver(queueName, waitTillEmpty, sessionId).pipe(Effect.provideService(Client, cl))
32
- }))));
33
- }
34
- export function sendMessages(messages, options) {
35
- return Effect.gen(function* () {
36
- const s = yield* Sender;
37
- return yield* Effect.promise(() => s.sendMessages(messages, options));
38
- });
39
- }
40
- export function subscribe(hndlr, sessionId) {
41
- return Effect.gen(function* () {
42
- const rf = yield* ServiceBusReceiverFactory;
43
- const fs = yield* FiberSet.make();
44
- const fr = yield* FiberSet.runtime(fs)();
45
- const wait = Effect.gen(function* () {
46
- if ((yield* FiberSet.size(fs)) > 0) {
47
- yield* InfraLogger.logDebug("Waiting ServiceBusFiberSet to be empty: " + (yield* FiberSet.size(fs)));
48
- }
49
- while ((yield* FiberSet.size(fs)) > 0)
50
- yield* Effect.sleep("250 millis");
51
- });
52
- const r = yield* sessionId
53
- ? rf.makeSession(sessionId, wait)
54
- : rf.make(wait);
55
- const runEffect = (effect) => new Promise((resolve, reject) => fr(effect)
56
- .addObserver((exit) => {
57
- if (Exit.isSuccess(exit)) {
58
- resolve(exit.value);
59
- }
60
- else {
61
- reject(Cause.pretty(exit.cause, { renderErrorCause: true }));
62
- }
63
- }));
64
- yield* Effect.acquireRelease(Effect.sync(() => r.subscribe({
65
- processError: (err) => runEffect(hndlr
66
- .processError(err)
67
- .pipe(Effect.catchAllCause((cause) => Effect.logError("ServiceBus Error", cause)))),
68
- processMessage: (msg) => runEffect(hndlr.processMessage(msg))
69
- // DO NOT CATCH ERRORS here as they should return to the queue!
70
- })), (subscription) => Effect.promise(() => subscription.close()));
71
- });
72
- }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZUJ1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9hZGFwdGVycy9TZXJ2aWNlQnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpDLFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDNUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQ2pELENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBbUIsa0JBQWtCLENBQUMsQ0FBQTtBQUN2RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtBQUUxRixTQUFTLFVBQVUsQ0FBQyxTQUFpQjtJQUNuQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3pCLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBRXRDLE9BQU8sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDakMsTUFBTSxDQUFD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
@@ -1 +0,0 @@
1
- {"version":3,"file":"cosmos-client.d.ts","sourceRoot":"","sources":["../../../src/services/adapters/cosmos-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAInD,eAAO,MAAM,gBAAgB,QAAS,MAAM,UAAU,MAAM;;gBACM,CAAA;AAElE,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;CAAG;AAE5F,eAAO,MAAM,YAAY,yCAA6D,CAAA;AAEtF,eAAO,MAAM,EAAE,sEAAwC,CAAA;AAEvD,eAAO,MAAM,iBAAiB,cAAe,MAAM,UAAU,MAAM,4CACF,CAAA"}
@@ -1,8 +0,0 @@
1
- import { CosmosClient as ComosClient_ } from "@azure/cosmos";
2
- import { Context, Effect, Layer } from "effect-app";
3
- const withClient = (url) => Effect.sync(() => new ComosClient_(url));
4
- export const makeCosmosClient = (url, dbName) => Effect.map(withClient(url), (x) => ({ db: x.database(dbName) }));
5
- export const CosmosClient = Context.GenericTag("@services/CosmosClient");
6
- export const db = Effect.map(CosmosClient, (_) => _.db);
7
- export const CosmosClientLayer = (cosmosUrl, dbName) => Layer.effect(CosmosClient, makeCosmosClient(cosmosUrl, dbName));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9hZGFwdGVycy9jb3Ntb3MtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLElBQUksWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVuRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBVyxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQzlELE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFJbEUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQWUsd0JBQXdCLENBQUMsQ0FBQTtBQUV0RixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUV2RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FDckUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUEifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/adapters/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;iBAC0H,GAAG;eAAkF,GAAG;eAAkF,GAAG;cAAiF,GAAG;eAAkF,GAAG;CADza,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../src/services/adapters/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;;0BAQ5B,MAAM;;0BAAN,MAAM;;0BAAN,MAAM;;;;;;;;;;;;;;;;8BAAN,MAAM;;;AAWlC;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAA0D;IACtF,MAAM,CAAC,QAAQ,CAAC,IAAI,uDAAiB;CACtC"}