@effect-app/infra 4.0.0-beta.247 → 4.0.0-beta.249

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 (378) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/ContextProvider.d.ts +34 -0
  3. package/dist/ContextProvider.d.ts.map +1 -0
  4. package/dist/ContextProvider.js +40 -0
  5. package/dist/Emailer/Sendgrid.d.ts +109 -145
  6. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  7. package/dist/Emailer/Sendgrid.js +4 -3
  8. package/dist/Emailer/fake.d.ts +2 -2
  9. package/dist/Emailer/fake.d.ts.map +1 -1
  10. package/dist/Emailer/fake.js +2 -2
  11. package/dist/QueueMaker/SQLQueue.d.ts +2 -2
  12. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  13. package/dist/QueueMaker/SQLQueue.js +4 -4
  14. package/dist/QueueMaker/memQueue.d.ts +2 -2
  15. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  16. package/dist/QueueMaker/memQueue.js +4 -4
  17. package/dist/QueueMaker/sbqueue.d.ts +2 -2
  18. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  19. package/dist/QueueMaker/sbqueue.js +4 -4
  20. package/dist/RequestFiberSet.js +2 -2
  21. package/dist/{adapters/SQL → SQL}/Model.d.ts +2 -2
  22. package/dist/SQL/Model.d.ts.map +1 -0
  23. package/dist/SQL/Model.js +469 -0
  24. package/dist/{adapters/SQL.d.ts → SQL.d.ts} +1 -1
  25. package/dist/SQL.d.ts.map +1 -0
  26. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  27. package/dist/{adapters/ServiceBus.d.ts → ServiceBus.d.ts} +1 -1
  28. package/dist/ServiceBus.d.ts.map +1 -0
  29. package/dist/ServiceBus.js +108 -0
  30. package/dist/Store/ContextMapContainer.d.ts +2 -2
  31. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  32. package/dist/Store/ContextMapContainer.js +2 -2
  33. package/dist/Store/Cosmos/query.d.ts +4 -4
  34. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  35. package/dist/Store/Cosmos/query.js +1 -1
  36. package/dist/Store/Cosmos.d.ts +2 -2
  37. package/dist/Store/Cosmos.d.ts.map +1 -1
  38. package/dist/Store/Cosmos.js +3 -3
  39. package/dist/Store/Disk.d.ts +3 -3
  40. package/dist/Store/Disk.d.ts.map +1 -1
  41. package/dist/Store/Disk.js +2 -2
  42. package/dist/Store/Memory.d.ts +3 -3
  43. package/dist/Store/Memory.d.ts.map +1 -1
  44. package/dist/Store/Memory.js +2 -2
  45. package/dist/Store/SQL/Pg.d.ts +2 -2
  46. package/dist/Store/SQL/Pg.d.ts.map +1 -1
  47. package/dist/Store/SQL/Pg.js +2 -2
  48. package/dist/Store/SQL/query.d.ts +3 -3
  49. package/dist/Store/SQL/query.d.ts.map +1 -1
  50. package/dist/Store/SQL/query.js +1 -1
  51. package/dist/Store/SQL.d.ts +3 -3
  52. package/dist/Store/SQL.d.ts.map +1 -1
  53. package/dist/Store/SQL.js +2 -2
  54. package/dist/Store/codeFilter.d.ts +4 -4
  55. package/dist/Store/codeFilter.d.ts.map +1 -1
  56. package/dist/Store/codeFilter.js +1 -1
  57. package/dist/Store/index.d.ts +3 -4
  58. package/dist/Store/index.d.ts.map +1 -1
  59. package/dist/Store/index.js +2 -3
  60. package/dist/Store/utils.d.ts +2 -2
  61. package/dist/Store/utils.d.ts.map +1 -1
  62. package/dist/Store/utils.js +1 -1
  63. package/dist/{api/codec.d.ts → codec.d.ts} +1 -1
  64. package/dist/codec.d.ts.map +1 -0
  65. package/dist/codec.js +5 -0
  66. package/dist/{adapters/cosmos-client.d.ts → cosmos-client.d.ts} +1 -1
  67. package/dist/cosmos-client.d.ts.map +1 -0
  68. package/dist/cosmos-client.js +11 -0
  69. package/dist/errorReporter.d.ts +1 -1
  70. package/dist/errorReporter.d.ts.map +1 -1
  71. package/dist/errorReporter.js +2 -2
  72. package/dist/index.d.ts +3 -2
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +3 -2
  75. package/dist/{api/internal → internal}/RequestContextMiddleware.d.ts +2 -2
  76. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  77. package/dist/internal/RequestContextMiddleware.js +46 -0
  78. package/dist/{api/internal → internal}/auth.d.ts +1 -1
  79. package/dist/internal/auth.d.ts.map +1 -0
  80. package/dist/internal/auth.js +180 -0
  81. package/dist/{api/internal → internal}/events.d.ts +1 -1
  82. package/dist/internal/events.d.ts.map +1 -0
  83. package/dist/internal/events.js +49 -0
  84. package/dist/{api/internal → internal}/health.d.ts +1 -1
  85. package/dist/internal/health.d.ts.map +1 -0
  86. package/dist/internal/health.js +5 -0
  87. package/dist/layerUtils.d.ts +32 -0
  88. package/dist/layerUtils.d.ts.map +1 -0
  89. package/dist/layerUtils.js +17 -0
  90. package/dist/logger/jsonLogger.d.ts +1 -1
  91. package/dist/logger/jsonLogger.d.ts.map +1 -1
  92. package/dist/logger/jsonLogger.js +2 -2
  93. package/dist/logger/logFmtLogger.d.ts +1 -1
  94. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  95. package/dist/logger/logFmtLogger.js +2 -2
  96. package/dist/logger/shared.d.ts +2 -2
  97. package/dist/logger/shared.d.ts.map +1 -1
  98. package/dist/logger/shared.js +2 -2
  99. package/dist/logger.d.ts +1 -1
  100. package/dist/{adapters/memQueue.d.ts → memQueue.d.ts} +1 -1
  101. package/dist/memQueue.d.ts.map +1 -0
  102. package/dist/memQueue.js +21 -0
  103. package/dist/{api/middlewares.d.ts → middlewares.d.ts} +1 -1
  104. package/dist/middlewares.d.ts.map +1 -0
  105. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  106. package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +1 -1
  107. package/dist/mongo-client.d.ts.map +1 -0
  108. package/dist/mongo-client.js +15 -0
  109. package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +1 -1
  110. package/dist/redis-client.d.ts.map +1 -0
  111. package/dist/redis-client.js +98 -0
  112. package/dist/reportError.d.ts +4 -0
  113. package/dist/reportError.d.ts.map +1 -0
  114. package/dist/reportError.js +28 -0
  115. package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +1 -1
  116. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  117. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  118. package/dist/{api/routing → routing}/middleware/middleware.d.ts +2 -2
  119. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  120. package/dist/routing/middleware/middleware.js +128 -0
  121. package/dist/{api/routing → routing}/middleware.d.ts +1 -1
  122. package/dist/routing/middleware.d.ts.map +1 -0
  123. package/dist/{api/routing → routing}/middleware.js +1 -1
  124. package/dist/{api/routing → routing}/schema/jwt.d.ts +1 -1
  125. package/dist/routing/schema/jwt.d.ts.map +1 -0
  126. package/dist/routing/schema/jwt.js +13 -0
  127. package/dist/routing/tsort.d.ts +8 -0
  128. package/dist/routing/tsort.d.ts.map +1 -0
  129. package/dist/routing/tsort.js +51 -0
  130. package/dist/{api/routing → routing}/utils.d.ts +1 -1
  131. package/dist/routing/utils.d.ts.map +1 -0
  132. package/dist/routing/utils.js +45 -0
  133. package/dist/routing.d.ts +184 -0
  134. package/dist/routing.d.ts.map +1 -0
  135. package/dist/{api/routing.js → routing.js} +1 -1
  136. package/dist/{api/setupRequest.d.ts → setupRequest.d.ts} +2 -2
  137. package/dist/setupRequest.d.ts.map +1 -0
  138. package/dist/setupRequest.js +70 -0
  139. package/dist/{api/util.d.ts → util.d.ts} +1 -1
  140. package/dist/util.d.ts.map +1 -0
  141. package/dist/util.js +14 -0
  142. package/examples/query.ts +2 -2
  143. package/package.json +84 -200
  144. package/src/Emailer/Sendgrid.ts +20 -5
  145. package/src/Emailer/fake.ts +1 -1
  146. package/src/QueueMaker/SQLQueue.ts +3 -3
  147. package/src/QueueMaker/memQueue.ts +3 -3
  148. package/src/QueueMaker/sbqueue.ts +3 -3
  149. package/src/RequestFiberSet.ts +1 -1
  150. package/src/{adapters/SQL → SQL}/Model.ts +1 -1
  151. package/src/{adapters/ServiceBus.ts → ServiceBus.ts} +1 -1
  152. package/src/Store/ContextMapContainer.ts +1 -1
  153. package/src/Store/Cosmos/query.ts +3 -3
  154. package/src/Store/Cosmos.ts +4 -4
  155. package/src/Store/Disk.ts +2 -2
  156. package/src/Store/Memory.ts +4 -4
  157. package/src/Store/SQL/Pg.ts +3 -3
  158. package/src/Store/SQL/query.ts +2 -2
  159. package/src/Store/SQL.ts +3 -3
  160. package/src/Store/codeFilter.ts +3 -3
  161. package/src/Store/index.ts +2 -4
  162. package/src/Store/utils.ts +1 -1
  163. package/src/errorReporter.ts +1 -1
  164. package/src/index.ts +2 -1
  165. package/src/{api/internal → internal}/RequestContextMiddleware.ts +3 -3
  166. package/src/{api/internal → internal}/events.ts +2 -2
  167. package/src/{api/layerUtils.ts → layerUtils.ts} +1 -1
  168. package/src/logger/jsonLogger.ts +1 -1
  169. package/src/logger/logFmtLogger.ts +1 -1
  170. package/src/logger/shared.ts +1 -1
  171. package/src/{adapters/redis-client.ts → redis-client.ts} +1 -1
  172. package/src/{api/reportError.ts → reportError.ts} +1 -1
  173. package/src/{api/routing → routing}/middleware/middleware.ts +4 -4
  174. package/src/{api/routing.ts → routing.ts} +13 -13
  175. package/src/{api/setupRequest.ts → setupRequest.ts} +3 -3
  176. package/test/auth.test.ts +1 -1
  177. package/test/contextProvider.test.ts +1 -1
  178. package/test/controller.test.ts +3 -3
  179. package/test/cosmos-query.test.ts +1 -1
  180. package/test/dist/controller.test.d.ts.map +1 -1
  181. package/test/dist/query.test.d.ts.map +1 -1
  182. package/test/dist/rawQuery.test.d.ts.map +1 -1
  183. package/test/layerUtils.test.ts +1 -1
  184. package/test/query.test.ts +4 -4
  185. package/test/rawQuery.test.ts +4 -4
  186. package/test/repository-ext.test.ts +3 -3
  187. package/test/router-generator.test.ts +3 -3
  188. package/test/routing-interruptibility.test.ts +2 -2
  189. package/test/rpc-context-map-streaming.test.ts +3 -3
  190. package/test/rpc-e2e-invalidation.test.ts +2 -2
  191. package/test/rpc-multi-middleware.test.ts +1 -1
  192. package/test/rpc-stream-fullstack.test.ts +2 -2
  193. package/test/validateSample.test.ts +3 -3
  194. package/dist/Emailer/service.d.ts +0 -64
  195. package/dist/Emailer/service.d.ts.map +0 -1
  196. package/dist/Emailer/service.js +0 -7
  197. package/dist/Emailer.d.ts +0 -2
  198. package/dist/Emailer.d.ts.map +0 -1
  199. package/dist/Emailer.js +0 -2
  200. package/dist/Model/Repository/Registry.d.ts +0 -21
  201. package/dist/Model/Repository/Registry.d.ts.map +0 -1
  202. package/dist/Model/Repository/Registry.js +0 -18
  203. package/dist/Model/Repository/ext.d.ts +0 -60
  204. package/dist/Model/Repository/ext.d.ts.map +0 -1
  205. package/dist/Model/Repository/ext.js +0 -122
  206. package/dist/Model/Repository/internal/internal.d.ts +0 -62
  207. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  208. package/dist/Model/Repository/internal/internal.js +0 -398
  209. package/dist/Model/Repository/legacy.d.ts +0 -21
  210. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  211. package/dist/Model/Repository/legacy.js +0 -2
  212. package/dist/Model/Repository/makeRepo.d.ts +0 -53
  213. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  214. package/dist/Model/Repository/makeRepo.js +0 -27
  215. package/dist/Model/Repository/service.d.ts +0 -97
  216. package/dist/Model/Repository/service.d.ts.map +0 -1
  217. package/dist/Model/Repository/service.js +0 -2
  218. package/dist/Model/Repository/validation.d.ts +0 -71
  219. package/dist/Model/Repository/validation.d.ts.map +0 -1
  220. package/dist/Model/Repository/validation.js +0 -32
  221. package/dist/Model/Repository.d.ts +0 -7
  222. package/dist/Model/Repository.d.ts.map +0 -1
  223. package/dist/Model/Repository.js +0 -7
  224. package/dist/Model/dsl.d.ts +0 -33
  225. package/dist/Model/dsl.d.ts.map +0 -1
  226. package/dist/Model/dsl.js +0 -43
  227. package/dist/Model/filter/filterApi.d.ts +0 -30
  228. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  229. package/dist/Model/filter/filterApi.js +0 -2
  230. package/dist/Model/filter/types/errors.d.ts +0 -29
  231. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  232. package/dist/Model/filter/types/errors.js +0 -2
  233. package/dist/Model/filter/types/fields.d.ts +0 -15
  234. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  235. package/dist/Model/filter/types/fields.js +0 -2
  236. package/dist/Model/filter/types/path/common.d.ts +0 -316
  237. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  238. package/dist/Model/filter/types/path/common.js +0 -2
  239. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  240. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  241. package/dist/Model/filter/types/path/eager.js +0 -31
  242. package/dist/Model/filter/types/path/index.d.ts +0 -4
  243. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  244. package/dist/Model/filter/types/path/index.js +0 -3
  245. package/dist/Model/filter/types/utils.d.ts +0 -79
  246. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  247. package/dist/Model/filter/types/utils.js +0 -2
  248. package/dist/Model/filter/types/validator.d.ts +0 -30
  249. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  250. package/dist/Model/filter/types/validator.js +0 -2
  251. package/dist/Model/filter/types.d.ts +0 -5
  252. package/dist/Model/filter/types.d.ts.map +0 -1
  253. package/dist/Model/filter/types.js +0 -7
  254. package/dist/Model/query/dsl.d.ts +0 -446
  255. package/dist/Model/query/dsl.d.ts.map +0 -1
  256. package/dist/Model/query/dsl.js +0 -339
  257. package/dist/Model/query/new-kid-interpreter.d.ts +0 -136
  258. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  259. package/dist/Model/query/new-kid-interpreter.js +0 -336
  260. package/dist/Model/query.d.ts +0 -15
  261. package/dist/Model/query.d.ts.map +0 -1
  262. package/dist/Model/query.js +0 -3
  263. package/dist/Model.d.ts +0 -5
  264. package/dist/Model.d.ts.map +0 -1
  265. package/dist/Model.js +0 -5
  266. package/dist/QueueMaker/service.d.ts +0 -13
  267. package/dist/QueueMaker/service.d.ts.map +0 -1
  268. package/dist/QueueMaker/service.js +0 -4
  269. package/dist/RequestContext.d.ts +0 -103
  270. package/dist/RequestContext.d.ts.map +0 -1
  271. package/dist/RequestContext.js +0 -49
  272. package/dist/Store/service.d.ts +0 -138
  273. package/dist/Store/service.d.ts.map +0 -1
  274. package/dist/Store/service.js +0 -95
  275. package/dist/Store.d.ts +0 -2
  276. package/dist/Store.d.ts.map +0 -1
  277. package/dist/Store.js +0 -2
  278. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  279. package/dist/adapters/SQL/Model.js +0 -469
  280. package/dist/adapters/SQL.d.ts.map +0 -1
  281. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  282. package/dist/adapters/ServiceBus.js +0 -108
  283. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  284. package/dist/adapters/cosmos-client.js +0 -11
  285. package/dist/adapters/index.d.ts +0 -8
  286. package/dist/adapters/index.d.ts.map +0 -1
  287. package/dist/adapters/index.js +0 -8
  288. package/dist/adapters/logger.d.ts +0 -9
  289. package/dist/adapters/logger.d.ts.map +0 -1
  290. package/dist/adapters/logger.js +0 -3
  291. package/dist/adapters/memQueue.d.ts.map +0 -1
  292. package/dist/adapters/memQueue.js +0 -21
  293. package/dist/adapters/mongo-client.d.ts.map +0 -1
  294. package/dist/adapters/mongo-client.js +0 -15
  295. package/dist/adapters/redis-client.d.ts.map +0 -1
  296. package/dist/adapters/redis-client.js +0 -98
  297. package/dist/api/ContextProvider.d.ts +0 -34
  298. package/dist/api/ContextProvider.d.ts.map +0 -1
  299. package/dist/api/ContextProvider.js +0 -40
  300. package/dist/api/codec.d.ts.map +0 -1
  301. package/dist/api/codec.js +0 -5
  302. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  303. package/dist/api/internal/RequestContextMiddleware.js +0 -46
  304. package/dist/api/internal/auth.d.ts.map +0 -1
  305. package/dist/api/internal/auth.js +0 -180
  306. package/dist/api/internal/events.d.ts.map +0 -1
  307. package/dist/api/internal/events.js +0 -49
  308. package/dist/api/internal/health.d.ts.map +0 -1
  309. package/dist/api/internal/health.js +0 -5
  310. package/dist/api/layerUtils.d.ts +0 -32
  311. package/dist/api/layerUtils.d.ts.map +0 -1
  312. package/dist/api/layerUtils.js +0 -17
  313. package/dist/api/middlewares.d.ts.map +0 -1
  314. package/dist/api/reportError.d.ts +0 -4
  315. package/dist/api/reportError.d.ts.map +0 -1
  316. package/dist/api/reportError.js +0 -28
  317. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  318. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  319. package/dist/api/routing/middleware/middleware.js +0 -128
  320. package/dist/api/routing/middleware.d.ts.map +0 -1
  321. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  322. package/dist/api/routing/schema/jwt.js +0 -13
  323. package/dist/api/routing/tsort.d.ts +0 -8
  324. package/dist/api/routing/tsort.d.ts.map +0 -1
  325. package/dist/api/routing/tsort.js +0 -51
  326. package/dist/api/routing/utils.d.ts.map +0 -1
  327. package/dist/api/routing/utils.js +0 -45
  328. package/dist/api/routing.d.ts +0 -184
  329. package/dist/api/routing.d.ts.map +0 -1
  330. package/dist/api/setupRequest.d.ts.map +0 -1
  331. package/dist/api/setupRequest.js +0 -70
  332. package/dist/api/util.d.ts.map +0 -1
  333. package/dist/api/util.js +0 -14
  334. package/src/Emailer/service.ts +0 -62
  335. package/src/Emailer.ts +0 -1
  336. package/src/Model/Repository/Registry.ts +0 -34
  337. package/src/Model/Repository/ext.ts +0 -375
  338. package/src/Model/Repository/internal/internal.ts +0 -692
  339. package/src/Model/Repository/legacy.ts +0 -29
  340. package/src/Model/Repository/makeRepo.ts +0 -144
  341. package/src/Model/Repository/service.ts +0 -639
  342. package/src/Model/Repository/validation.ts +0 -31
  343. package/src/Model/Repository.ts +0 -6
  344. package/src/Model/dsl.ts +0 -129
  345. package/src/Model/filter/filterApi.ts +0 -60
  346. package/src/Model/filter/types/errors.ts +0 -47
  347. package/src/Model/filter/types/fields.ts +0 -50
  348. package/src/Model/filter/types/path/common.ts +0 -404
  349. package/src/Model/filter/types/path/eager.ts +0 -297
  350. package/src/Model/filter/types/path/index.ts +0 -4
  351. package/src/Model/filter/types/utils.ts +0 -128
  352. package/src/Model/filter/types/validator.ts +0 -46
  353. package/src/Model/filter/types.ts +0 -6
  354. package/src/Model/query/dsl.ts +0 -2546
  355. package/src/Model/query/new-kid-interpreter.ts +0 -484
  356. package/src/Model/query.ts +0 -13
  357. package/src/Model.ts +0 -4
  358. package/src/QueueMaker/service.ts +0 -19
  359. package/src/RequestContext.ts +0 -62
  360. package/src/Store/service.ts +0 -233
  361. package/src/Store.ts +0 -1
  362. package/src/adapters/index.ts +0 -7
  363. package/src/adapters/logger.ts +0 -3
  364. /package/src/{api/ContextProvider.ts → ContextProvider.ts} +0 -0
  365. /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
  366. /package/src/{api/codec.ts → codec.ts} +0 -0
  367. /package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +0 -0
  368. /package/src/{api/internal → internal}/auth.ts +0 -0
  369. /package/src/{api/internal → internal}/health.ts +0 -0
  370. /package/src/{adapters/memQueue.ts → memQueue.ts} +0 -0
  371. /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
  372. /package/src/{adapters/mongo-client.ts → mongo-client.ts} +0 -0
  373. /package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +0 -0
  374. /package/src/{api/routing → routing}/middleware.ts +0 -0
  375. /package/src/{api/routing → routing}/schema/jwt.ts +0 -0
  376. /package/src/{api/routing → routing}/tsort.ts +0 -0
  377. /package/src/{api/routing → routing}/utils.ts +0 -0
  378. /package/src/{api/util.ts → util.ts} +0 -0
@@ -1,29 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
- import type { OptimisticConcurrencyException } from "effect-app/client/errors"
4
- import type * as Effect from "effect-app/Effect"
5
- import type * as Option from "effect-app/Option"
6
- import type * as S from "effect-app/Schema"
7
-
8
- export interface Mapped1<A, IdKey extends keyof A, R> {
9
- all: Effect.Effect<A[], S.SchemaError, R>
10
- save: (...xes: readonly A[]) => Effect.Effect<void, OptimisticConcurrencyException | S.SchemaError, R>
11
- find: (id: A[IdKey]) => Effect.Effect<Option.Option<A>, S.SchemaError, R>
12
- }
13
-
14
- // TODO: auto use project, and select fields from the From side of schema only
15
- export interface Mapped2<A, R> {
16
- all: Effect.Effect<A[], S.SchemaError, R>
17
- }
18
-
19
- export interface Mapped<Encoded> {
20
- <A, R, IdKey extends keyof A>(schema: S.Codec<A, Encoded, R>): Mapped1<A, IdKey, R>
21
- // TODO: constrain on Encoded2 having to contain only fields that fit Encoded
22
- <A, Encoded2, R>(schema: S.Codec<A, Encoded2, R>): Mapped2<A, R>
23
- }
24
-
25
- export interface MM<Repo, Encoded> {
26
- <A, R, IdKey extends keyof A>(schema: S.Codec<A, Encoded, R>): Effect.Effect<Mapped1<A, IdKey, R>, never, Repo>
27
- // TODO: constrain on Encoded2 having to contain only fields that fit Encoded
28
- <A, Encoded2, R>(schema: S.Codec<A, Encoded2, R>): Effect.Effect<Mapped2<A, R>, never, Repo>
29
- }
@@ -1,144 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-object-type */
2
- /* eslint-disable @typescript-eslint/no-unsafe-return */
3
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
4
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
5
- /* eslint-disable @typescript-eslint/no-explicit-any */
6
-
7
- // import type { ParserEnv } from "effect-app/Schema/custom/Parser"
8
-
9
- import type { NonEmptyReadonlyArray } from "effect-app/Array"
10
- import type * as Context from "effect-app/Context"
11
- import * as Effect from "effect-app/Effect"
12
- import type * as S from "effect-app/Schema"
13
- import type { StoreConfig, StoreMaker } from "../../Store.js"
14
- import type { FieldValues } from "../filter/types.js"
15
- import { type ExtendedRepository, extendRepo } from "./ext.js"
16
- import { makeRepoInternal } from "./internal/internal.js"
17
- import { RepositoryRegistry } from "./Registry.js"
18
- import type { Repository } from "./service.js"
19
-
20
- export interface RepositoryOptions<
21
- IdKey extends keyof T & keyof Encoded,
22
- Encoded extends FieldValues,
23
- T,
24
- ItemType extends string,
25
- Evt = never,
26
- RPublish = never,
27
- E = never,
28
- RInitial = never,
29
- RCtx = never,
30
- RSchema = never
31
- > {
32
- /**
33
- * Specify the idKey of the Type side, if it's different from the default "id".
34
- * Does not change the Encoded side, which is always "id" to support database drivers.
35
- * At this time as queries are operating on the Encoded side, the queries must still specify "id" regardless.
36
- */
37
- idKey: IdKey
38
- /**
39
- * just in time Migration: for complex migrations that aren't just default simple values
40
- * use the config.defaultValues instead for simple default values
41
- */
42
- jitM?: (pm: Encoded) => Encoded
43
- config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
44
- partitionValue?: (e?: Encoded) => string
45
- }
46
- /**
47
- * Optional handler to be able to publish events after successfull save.
48
- */
49
- publishEvents?: (evt: NonEmptyReadonlyArray<Evt>) => Effect.Effect<void, never, RPublish>
50
- /**
51
- * Optional creator for initial data in the table when it's created for the first itme.
52
- */
53
- makeInitial?: Effect.Effect<readonly T[], E, RInitial> | undefined
54
- /**
55
- * Optional context to be provided to Schema decode/encode.
56
- * Useful for effectful transformations like XWithItems, where items is a transformation retrieving elements from another database table or other source.
57
- */
58
- schemaContext?: Context.Context<RCtx>
59
-
60
- overrides?: (
61
- repo: Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish, RCtx>
62
- ) => Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish, RCtx>
63
- }
64
-
65
- /**
66
- * Create a repository instance.
67
- * @param itemType an identifier used for the table name and e.g NotFoundError
68
- * @param schema the Schema used for this Repository
69
- * @param options @see RepositoryOptions
70
- * @returns a Repository
71
- */
72
- export const makeRepo: {
73
- <
74
- ItemType extends string,
75
- RSchema,
76
- Encoded extends FieldValues,
77
- T,
78
- IdKey extends keyof T & keyof Encoded,
79
- E = never,
80
- Evt = never,
81
- RInitial = never,
82
- RPublish = never,
83
- RCtx = never
84
- >(
85
- itemType: ItemType,
86
- schema: S.Codec<T, Encoded, RSchema>,
87
- options: RepositoryOptions<IdKey, Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>
88
- ): Effect.Effect<
89
- ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish, RCtx>,
90
- E,
91
- RInitial | StoreMaker | RepositoryRegistry
92
- >
93
- <
94
- ItemType extends string,
95
- RSchema,
96
- Encoded extends FieldValues,
97
- T extends { id: unknown },
98
- E = never,
99
- Evt = never,
100
- RInitial = never,
101
- RPublish = never,
102
- RCtx = never
103
- >(
104
- itemType: ItemType,
105
- schema: S.Codec<T, Encoded, RSchema>,
106
- options: Omit<RepositoryOptions<"id", Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>, "idKey">
107
- ): Effect.Effect<
108
- ExtendedRepository<T, Encoded, Evt, ItemType, "id", Exclude<RSchema, RCtx>, RPublish, RCtx>,
109
- E,
110
- RInitial | StoreMaker | RepositoryRegistry
111
- >
112
- } = <
113
- ItemType extends string,
114
- RSchema,
115
- Encoded extends FieldValues,
116
- T,
117
- IdKey extends keyof T & keyof Encoded,
118
- E = never,
119
- RInitial = never,
120
- RPublish = never,
121
- Evt = never,
122
- RCtx = never
123
- >(
124
- itemType: ItemType,
125
- schema: S.Codec<T, Encoded, RSchema>,
126
- options: Omit<RepositoryOptions<IdKey, Encoded, T, ItemType, Evt, RPublish, E, RInitial, RCtx, RSchema>, "idKey"> & {
127
- idKey?: IdKey
128
- }
129
- ) =>
130
- Effect.gen(function*() {
131
- const mkRepo = makeRepoInternal<Evt>()(
132
- itemType,
133
- schema,
134
- options?.jitM ? (pm) => options.jitM!(pm) : (pm) => pm,
135
- (e, _etag) => ({ ...e, _etag }),
136
- options.idKey ?? "id" as any
137
- )
138
- let r = yield* mkRepo.make<RInitial, E, RPublish, RCtx>(options as any)
139
- if (options.overrides) r = options.overrides(r)
140
- const repo = extendRepo(r)
141
- const registry = yield* RepositoryRegistry
142
- registry.register(itemType, repo)
143
- return repo
144
- })