@effect-app/infra 4.0.0-beta.248 → 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 (377) hide show
  1. package/CHANGELOG.md +14 -1
  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/{adapters/memQueue.d.ts → memQueue.d.ts} +1 -1
  100. package/dist/memQueue.d.ts.map +1 -0
  101. package/dist/memQueue.js +21 -0
  102. package/dist/{api/middlewares.d.ts → middlewares.d.ts} +1 -1
  103. package/dist/middlewares.d.ts.map +1 -0
  104. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  105. package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +1 -1
  106. package/dist/mongo-client.d.ts.map +1 -0
  107. package/dist/mongo-client.js +15 -0
  108. package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +1 -1
  109. package/dist/redis-client.d.ts.map +1 -0
  110. package/dist/redis-client.js +98 -0
  111. package/dist/reportError.d.ts +4 -0
  112. package/dist/reportError.d.ts.map +1 -0
  113. package/dist/reportError.js +28 -0
  114. package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +1 -1
  115. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  116. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  117. package/dist/{api/routing → routing}/middleware/middleware.d.ts +2 -2
  118. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  119. package/dist/routing/middleware/middleware.js +128 -0
  120. package/dist/{api/routing → routing}/middleware.d.ts +1 -1
  121. package/dist/routing/middleware.d.ts.map +1 -0
  122. package/dist/{api/routing → routing}/middleware.js +1 -1
  123. package/dist/{api/routing → routing}/schema/jwt.d.ts +1 -1
  124. package/dist/routing/schema/jwt.d.ts.map +1 -0
  125. package/dist/routing/schema/jwt.js +13 -0
  126. package/dist/routing/tsort.d.ts +8 -0
  127. package/dist/routing/tsort.d.ts.map +1 -0
  128. package/dist/routing/tsort.js +51 -0
  129. package/dist/{api/routing → routing}/utils.d.ts +1 -1
  130. package/dist/routing/utils.d.ts.map +1 -0
  131. package/dist/routing/utils.js +45 -0
  132. package/dist/routing.d.ts +184 -0
  133. package/dist/routing.d.ts.map +1 -0
  134. package/dist/{api/routing.js → routing.js} +1 -1
  135. package/dist/{api/setupRequest.d.ts → setupRequest.d.ts} +2 -2
  136. package/dist/setupRequest.d.ts.map +1 -0
  137. package/dist/setupRequest.js +70 -0
  138. package/dist/{api/util.d.ts → util.d.ts} +1 -1
  139. package/dist/util.d.ts.map +1 -0
  140. package/dist/util.js +14 -0
  141. package/examples/query.ts +2 -2
  142. package/package.json +84 -200
  143. package/src/Emailer/Sendgrid.ts +20 -5
  144. package/src/Emailer/fake.ts +1 -1
  145. package/src/QueueMaker/SQLQueue.ts +3 -3
  146. package/src/QueueMaker/memQueue.ts +3 -3
  147. package/src/QueueMaker/sbqueue.ts +3 -3
  148. package/src/RequestFiberSet.ts +1 -1
  149. package/src/{adapters/SQL → SQL}/Model.ts +1 -1
  150. package/src/{adapters/ServiceBus.ts → ServiceBus.ts} +1 -1
  151. package/src/Store/ContextMapContainer.ts +1 -1
  152. package/src/Store/Cosmos/query.ts +3 -3
  153. package/src/Store/Cosmos.ts +4 -4
  154. package/src/Store/Disk.ts +2 -2
  155. package/src/Store/Memory.ts +4 -4
  156. package/src/Store/SQL/Pg.ts +3 -3
  157. package/src/Store/SQL/query.ts +2 -2
  158. package/src/Store/SQL.ts +3 -3
  159. package/src/Store/codeFilter.ts +3 -3
  160. package/src/Store/index.ts +2 -4
  161. package/src/Store/utils.ts +1 -1
  162. package/src/errorReporter.ts +1 -1
  163. package/src/index.ts +2 -1
  164. package/src/{api/internal → internal}/RequestContextMiddleware.ts +3 -3
  165. package/src/{api/internal → internal}/events.ts +2 -2
  166. package/src/{api/layerUtils.ts → layerUtils.ts} +1 -1
  167. package/src/logger/jsonLogger.ts +1 -1
  168. package/src/logger/logFmtLogger.ts +1 -1
  169. package/src/logger/shared.ts +1 -1
  170. package/src/{adapters/redis-client.ts → redis-client.ts} +1 -1
  171. package/src/{api/reportError.ts → reportError.ts} +1 -1
  172. package/src/{api/routing → routing}/middleware/middleware.ts +4 -4
  173. package/src/{api/setupRequest.ts → setupRequest.ts} +3 -3
  174. package/test/auth.test.ts +1 -1
  175. package/test/contextProvider.test.ts +1 -1
  176. package/test/controller.test.ts +3 -3
  177. package/test/cosmos-query.test.ts +1 -1
  178. package/test/dist/controller.test.d.ts.map +1 -1
  179. package/test/dist/query.test.d.ts.map +1 -1
  180. package/test/dist/rawQuery.test.d.ts.map +1 -1
  181. package/test/layerUtils.test.ts +1 -1
  182. package/test/query.test.ts +4 -4
  183. package/test/rawQuery.test.ts +4 -4
  184. package/test/repository-ext.test.ts +3 -3
  185. package/test/router-generator.test.ts +3 -3
  186. package/test/routing-interruptibility.test.ts +2 -2
  187. package/test/rpc-context-map-streaming.test.ts +3 -3
  188. package/test/rpc-e2e-invalidation.test.ts +2 -2
  189. package/test/rpc-multi-middleware.test.ts +1 -1
  190. package/test/rpc-stream-fullstack.test.ts +2 -2
  191. package/test/validateSample.test.ts +3 -3
  192. package/dist/Emailer/service.d.ts +0 -64
  193. package/dist/Emailer/service.d.ts.map +0 -1
  194. package/dist/Emailer/service.js +0 -7
  195. package/dist/Emailer.d.ts +0 -2
  196. package/dist/Emailer.d.ts.map +0 -1
  197. package/dist/Emailer.js +0 -2
  198. package/dist/Model/Repository/Registry.d.ts +0 -21
  199. package/dist/Model/Repository/Registry.d.ts.map +0 -1
  200. package/dist/Model/Repository/Registry.js +0 -18
  201. package/dist/Model/Repository/ext.d.ts +0 -60
  202. package/dist/Model/Repository/ext.d.ts.map +0 -1
  203. package/dist/Model/Repository/ext.js +0 -122
  204. package/dist/Model/Repository/internal/internal.d.ts +0 -62
  205. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  206. package/dist/Model/Repository/internal/internal.js +0 -398
  207. package/dist/Model/Repository/legacy.d.ts +0 -21
  208. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  209. package/dist/Model/Repository/legacy.js +0 -2
  210. package/dist/Model/Repository/makeRepo.d.ts +0 -53
  211. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  212. package/dist/Model/Repository/makeRepo.js +0 -27
  213. package/dist/Model/Repository/service.d.ts +0 -97
  214. package/dist/Model/Repository/service.d.ts.map +0 -1
  215. package/dist/Model/Repository/service.js +0 -2
  216. package/dist/Model/Repository/validation.d.ts +0 -71
  217. package/dist/Model/Repository/validation.d.ts.map +0 -1
  218. package/dist/Model/Repository/validation.js +0 -32
  219. package/dist/Model/Repository.d.ts +0 -7
  220. package/dist/Model/Repository.d.ts.map +0 -1
  221. package/dist/Model/Repository.js +0 -7
  222. package/dist/Model/dsl.d.ts +0 -33
  223. package/dist/Model/dsl.d.ts.map +0 -1
  224. package/dist/Model/dsl.js +0 -43
  225. package/dist/Model/filter/filterApi.d.ts +0 -30
  226. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  227. package/dist/Model/filter/filterApi.js +0 -2
  228. package/dist/Model/filter/types/errors.d.ts +0 -29
  229. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  230. package/dist/Model/filter/types/errors.js +0 -2
  231. package/dist/Model/filter/types/fields.d.ts +0 -15
  232. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  233. package/dist/Model/filter/types/fields.js +0 -2
  234. package/dist/Model/filter/types/path/common.d.ts +0 -316
  235. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  236. package/dist/Model/filter/types/path/common.js +0 -2
  237. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  238. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  239. package/dist/Model/filter/types/path/eager.js +0 -31
  240. package/dist/Model/filter/types/path/index.d.ts +0 -4
  241. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  242. package/dist/Model/filter/types/path/index.js +0 -3
  243. package/dist/Model/filter/types/utils.d.ts +0 -79
  244. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  245. package/dist/Model/filter/types/utils.js +0 -2
  246. package/dist/Model/filter/types/validator.d.ts +0 -30
  247. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  248. package/dist/Model/filter/types/validator.js +0 -2
  249. package/dist/Model/filter/types.d.ts +0 -5
  250. package/dist/Model/filter/types.d.ts.map +0 -1
  251. package/dist/Model/filter/types.js +0 -7
  252. package/dist/Model/query/dsl.d.ts +0 -446
  253. package/dist/Model/query/dsl.d.ts.map +0 -1
  254. package/dist/Model/query/dsl.js +0 -339
  255. package/dist/Model/query/new-kid-interpreter.d.ts +0 -136
  256. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  257. package/dist/Model/query/new-kid-interpreter.js +0 -336
  258. package/dist/Model/query.d.ts +0 -15
  259. package/dist/Model/query.d.ts.map +0 -1
  260. package/dist/Model/query.js +0 -3
  261. package/dist/Model.d.ts +0 -5
  262. package/dist/Model.d.ts.map +0 -1
  263. package/dist/Model.js +0 -5
  264. package/dist/QueueMaker/service.d.ts +0 -13
  265. package/dist/QueueMaker/service.d.ts.map +0 -1
  266. package/dist/QueueMaker/service.js +0 -4
  267. package/dist/RequestContext.d.ts +0 -103
  268. package/dist/RequestContext.d.ts.map +0 -1
  269. package/dist/RequestContext.js +0 -49
  270. package/dist/Store/service.d.ts +0 -138
  271. package/dist/Store/service.d.ts.map +0 -1
  272. package/dist/Store/service.js +0 -95
  273. package/dist/Store.d.ts +0 -2
  274. package/dist/Store.d.ts.map +0 -1
  275. package/dist/Store.js +0 -2
  276. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  277. package/dist/adapters/SQL/Model.js +0 -469
  278. package/dist/adapters/SQL.d.ts.map +0 -1
  279. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  280. package/dist/adapters/ServiceBus.js +0 -108
  281. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  282. package/dist/adapters/cosmos-client.js +0 -11
  283. package/dist/adapters/index.d.ts +0 -8
  284. package/dist/adapters/index.d.ts.map +0 -1
  285. package/dist/adapters/index.js +0 -8
  286. package/dist/adapters/logger.d.ts +0 -9
  287. package/dist/adapters/logger.d.ts.map +0 -1
  288. package/dist/adapters/logger.js +0 -3
  289. package/dist/adapters/memQueue.d.ts.map +0 -1
  290. package/dist/adapters/memQueue.js +0 -21
  291. package/dist/adapters/mongo-client.d.ts.map +0 -1
  292. package/dist/adapters/mongo-client.js +0 -15
  293. package/dist/adapters/redis-client.d.ts.map +0 -1
  294. package/dist/adapters/redis-client.js +0 -98
  295. package/dist/api/ContextProvider.d.ts +0 -34
  296. package/dist/api/ContextProvider.d.ts.map +0 -1
  297. package/dist/api/ContextProvider.js +0 -40
  298. package/dist/api/codec.d.ts.map +0 -1
  299. package/dist/api/codec.js +0 -5
  300. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  301. package/dist/api/internal/RequestContextMiddleware.js +0 -46
  302. package/dist/api/internal/auth.d.ts.map +0 -1
  303. package/dist/api/internal/auth.js +0 -180
  304. package/dist/api/internal/events.d.ts.map +0 -1
  305. package/dist/api/internal/events.js +0 -49
  306. package/dist/api/internal/health.d.ts.map +0 -1
  307. package/dist/api/internal/health.js +0 -5
  308. package/dist/api/layerUtils.d.ts +0 -32
  309. package/dist/api/layerUtils.d.ts.map +0 -1
  310. package/dist/api/layerUtils.js +0 -17
  311. package/dist/api/middlewares.d.ts.map +0 -1
  312. package/dist/api/reportError.d.ts +0 -4
  313. package/dist/api/reportError.d.ts.map +0 -1
  314. package/dist/api/reportError.js +0 -28
  315. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  316. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  317. package/dist/api/routing/middleware/middleware.js +0 -128
  318. package/dist/api/routing/middleware.d.ts.map +0 -1
  319. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  320. package/dist/api/routing/schema/jwt.js +0 -13
  321. package/dist/api/routing/tsort.d.ts +0 -8
  322. package/dist/api/routing/tsort.d.ts.map +0 -1
  323. package/dist/api/routing/tsort.js +0 -51
  324. package/dist/api/routing/utils.d.ts.map +0 -1
  325. package/dist/api/routing/utils.js +0 -45
  326. package/dist/api/routing.d.ts +0 -184
  327. package/dist/api/routing.d.ts.map +0 -1
  328. package/dist/api/setupRequest.d.ts.map +0 -1
  329. package/dist/api/setupRequest.js +0 -70
  330. package/dist/api/util.d.ts.map +0 -1
  331. package/dist/api/util.js +0 -14
  332. package/src/Emailer/service.ts +0 -62
  333. package/src/Emailer.ts +0 -1
  334. package/src/Model/Repository/Registry.ts +0 -34
  335. package/src/Model/Repository/ext.ts +0 -375
  336. package/src/Model/Repository/internal/internal.ts +0 -692
  337. package/src/Model/Repository/legacy.ts +0 -29
  338. package/src/Model/Repository/makeRepo.ts +0 -144
  339. package/src/Model/Repository/service.ts +0 -639
  340. package/src/Model/Repository/validation.ts +0 -31
  341. package/src/Model/Repository.ts +0 -6
  342. package/src/Model/dsl.ts +0 -129
  343. package/src/Model/filter/filterApi.ts +0 -60
  344. package/src/Model/filter/types/errors.ts +0 -47
  345. package/src/Model/filter/types/fields.ts +0 -50
  346. package/src/Model/filter/types/path/common.ts +0 -404
  347. package/src/Model/filter/types/path/eager.ts +0 -297
  348. package/src/Model/filter/types/path/index.ts +0 -4
  349. package/src/Model/filter/types/utils.ts +0 -128
  350. package/src/Model/filter/types/validator.ts +0 -46
  351. package/src/Model/filter/types.ts +0 -6
  352. package/src/Model/query/dsl.ts +0 -2546
  353. package/src/Model/query/new-kid-interpreter.ts +0 -484
  354. package/src/Model/query.ts +0 -13
  355. package/src/Model.ts +0 -4
  356. package/src/QueueMaker/service.ts +0 -19
  357. package/src/RequestContext.ts +0 -62
  358. package/src/Store/service.ts +0 -233
  359. package/src/Store.ts +0 -1
  360. package/src/adapters/index.ts +0 -7
  361. package/src/adapters/logger.ts +0 -3
  362. /package/src/{api/ContextProvider.ts → ContextProvider.ts} +0 -0
  363. /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
  364. /package/src/{api/codec.ts → codec.ts} +0 -0
  365. /package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +0 -0
  366. /package/src/{api/internal → internal}/auth.ts +0 -0
  367. /package/src/{api/internal → internal}/health.ts +0 -0
  368. /package/src/{adapters/memQueue.ts → memQueue.ts} +0 -0
  369. /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
  370. /package/src/{adapters/mongo-client.ts → mongo-client.ts} +0 -0
  371. /package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +0 -0
  372. /package/src/{api/routing → routing}/middleware.ts +0 -0
  373. /package/src/{api/routing → routing}/schema/jwt.ts +0 -0
  374. /package/src/{api/routing → routing}/tsort.ts +0 -0
  375. /package/src/{api/routing → routing}/utils.ts +0 -0
  376. /package/src/{api/routing.ts → routing.ts} +0 -0
  377. /package/src/{api/util.ts → util.ts} +0 -0
@@ -1,184 +0,0 @@
1
- import * as Effect from "effect-app/Effect";
2
- import { type HttpHeaders } from "effect-app/http";
3
- import * as Layer from "effect-app/Layer";
4
- import { type GetEffectContext, type RpcContextMap } from "effect-app/rpc/RpcContextMap";
5
- import * as S from "effect-app/Schema";
6
- import { type TypeTestId } from "effect-app/TypeTest";
7
- import type * as Scope from "effect/Scope";
8
- import * as Stream from "effect/Stream";
9
- import { Rpc, type RpcSerialization } from "effect/unstable/rpc";
10
- export * from "./routing/middleware.js";
11
- export declare const applyRequestTypeInterruptibility: <A, E, R>(requestType: "command" | "query", effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R> | Rpc.Wrapper<Effect.Effect<A, E, R>>;
12
- export type AnyRequestModule = S.Top & {
13
- _tag: string;
14
- type: "command" | "query";
15
- stream: boolean;
16
- config: any;
17
- success: S.Top;
18
- error: S.Top;
19
- };
20
- export interface AddAction<Actions extends AnyRequestModule, Accum extends Record<string, any> = {}> {
21
- accum: Accum;
22
- add<A extends Handler<Actions, any, any>>(a: A): A extends Handler<infer M extends AnyRequestModule, any, any> ? Exclude<Actions, M> extends never ? Accum & {
23
- [K in M["_tag"]]: A;
24
- } : AddAction<Exclude<Actions, M>, Accum & {
25
- [K in M["_tag"]]: A;
26
- }> & Accum & {
27
- [K in M["_tag"]]: A;
28
- } : never;
29
- }
30
- declare namespace RequestTypes {
31
- const DECODED: "d";
32
- type DECODED = typeof DECODED;
33
- const RAW: "raw";
34
- type RAW = typeof RAW;
35
- }
36
- type RequestType = (typeof RequestTypes)[keyof typeof RequestTypes];
37
- type GetSuccess<T> = T extends {
38
- success: S.Top;
39
- } ? T["success"] : typeof S.Void;
40
- type GetFailure<T extends {
41
- error?: S.Top;
42
- }> = T["error"] extends never ? typeof S.Never : T["error"];
43
- type GetSuccessShape<Action extends {
44
- success?: S.Top;
45
- }, RT extends RequestType> = {
46
- d: GetSuccess<Action>["Type"];
47
- raw: GetSuccess<Action>["Encoded"];
48
- }[RT];
49
- interface HandlerBase<Action extends AnyRequestModule, RT extends RequestType, A, E, R> {
50
- new (): {};
51
- _tag: RT;
52
- stack: string;
53
- handler: (req: Action["Type"], headers: HttpHeaders.Headers) => Effect.Effect<A, E, R> | Stream.Stream<A, E, R>;
54
- }
55
- export interface Handler<Action extends AnyRequestModule, RT extends RequestType, R> extends HandlerBase<Action, RT, GetSuccessShape<Action, RT>, GetFailure<Action>["Type"] | S.SchemaError, R> {
56
- }
57
- type AnyHandler<Action extends AnyRequestModule> = Handler<Action, RequestType, any>;
58
- type FilterRequestModules<T> = {
59
- [K in keyof T as T[K] extends AnyRequestModule ? K : never]: T[K];
60
- };
61
- type EffectMatch<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: Resource[Key]["Type"]) => Effect.Effect<A, E, R2>) => Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
62
- type StreamMatch<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: Resource[Key]["Type"]) => Stream.Stream<A, E, R2>) => Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
63
- type Match<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = Resource[Key] extends {
64
- stream: true;
65
- } ? StreamMatch<Resource, RequestContextMap, RT, Key> : EffectMatch<Resource, RequestContextMap, RT, Key>;
66
- export type RouteMatcher<RequestContextMap extends Record<string, any>, Resource extends Record<string, any>> = {
67
- [Key in keyof FilterRequestModules<Resource>]: Match<Resource, RequestContextMap, RequestTypes.DECODED, Key> & {
68
- success: Resource[Key]["success"];
69
- successRaw: S.Codec<Resource[Key]["success"]["Encoded"]>;
70
- error: Resource[Key]["error"];
71
- /**
72
- * Requires the Encoded shape (e.g directly undecoded from DB, so that we don't do multiple Decode/Encode)
73
- */
74
- raw: Match<Resource, RequestContextMap, RequestTypes.RAW, Key>;
75
- };
76
- };
77
- export declare const skipOnProd: Effect.Effect<boolean, never, never>;
78
- type ProvidesOf<MW> = MW extends {
79
- readonly provides: infer P;
80
- } ? P : never;
81
- type RequestContextMapOf<MW> = MW extends {
82
- requestContextMap: infer RCM extends Record<string, RpcContextMap.Any>;
83
- } ? RCM : Record<string, never>;
84
- type LayerNormalize<L> = L extends Layer.Layer<any, infer E, infer R> ? Layer.Layer<never, E, R> : Layer.Layer<never, never, never>;
85
- type LayerSuccess<L> = L extends Layer.Layer<infer A, any, any> ? A : never;
86
- /**
87
- * Middleware tags are typically passed to `makeRpcClient` as the class value, so
88
- * the captured `MW` is a constructor type. Layers carry the *instance* type as
89
- * their success channel. Bridge the two so the constraint compares like-with-like.
90
- *
91
- * Effect middleware classes declare `new(_: never): Shape` which the standard
92
- * `T extends abstract new (...args: any) => infer I` form sometimes fails to
93
- * narrow. Use the `prototype` member instead — it is always the instance type.
94
- */
95
- type MWService<MW> = MW extends {
96
- readonly prototype: infer P;
97
- } ? P : MW;
98
- /**
99
- * Type-level guard: emits a structural mismatch on `Resource` when the middleware
100
- * service identifier extracted from the resource's request classes is not provided
101
- * by the layer passed to `makeRouter`. When `MW` is `never` (no middleware on the
102
- * resource) or already a subtype of the layer's success, this resolves to `unknown`
103
- * and intersects harmlessly with `Resource`.
104
- */
105
- type EnsureMiddlewareProvided<Live, MW> = [MW] extends [never] ? unknown : [MWService<MW>] extends [LayerSuccess<Live>] ? unknown : {
106
- readonly __middlewareNotProvidedByRouterLayer: {
107
- readonly expected: MWService<MW>;
108
- readonly providedByLayer: LayerSuccess<Live>;
109
- };
110
- };
111
- type SafeGetEffectContext<RCM, Config> = RCM extends Record<string, RpcContextMap.Any> ? GetEffectContext<RCM, Config> : never;
112
- export declare const makeRouter: <Live extends Layer.Layer<any, any, any> = Layer.Layer<any, never, never>>(middlewareLive?: Live) => {
113
- matchAll: <T extends {
114
- [key: string]: Layer.Layer<never, any, any>;
115
- }>(handlers: T) => Layer.Layer<never, Layer.Error<(typeof handlers)[keyof typeof handlers]>, Layer.Services<(typeof handlers)[keyof typeof handlers]>>;
116
- Router: <const Resource extends Record<string, any>, MW = Exclude<{ [K in keyof Resource]: Resource[K] extends {
117
- readonly middleware?: infer MW_1;
118
- } ? NonNullable<MW_1> : never; }[keyof Resource], never>>(rsc: Resource & EnsureMiddlewareProvided<Live, MW>, options?: {
119
- check?: Effect.Effect<boolean>;
120
- }) => {
121
- <const Make extends {
122
- dependencies?: ReadonlyArray<Layer.Any>;
123
- effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (Resource[K] extends infer T ? T extends Resource[K] ? T extends {
124
- stream: true;
125
- } ? (req: T["Type"]) => Stream.Stream<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>> : ((req: T["Type"]) => Effect.Effect<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>) | ((req: T["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>, GetSuccess<T>["Type"], never>) : never : never) | (Resource[K] extends infer T_1 ? T_1 extends Resource[K] ? T_1 extends {
126
- stream: true;
127
- } ? {
128
- raw: (req: T_1["Type"]) => Stream.Stream<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
129
- } : {
130
- raw: (req: T_1["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>, GetSuccess<T_1>["Encoded"], never>;
131
- } | {
132
- raw: (req: T_1["Type"]) => Effect.Effect<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
133
- } : never : never); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
134
- raw: any;
135
- } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
136
- raw: any;
137
- } ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never, SafeGetEffectContext<RequestContextMapOf<MW>, Resource[K]["config"]> | ProvidesOf<MW>>, Scope.Scope>>; }) => Generator<Effect.Effect<any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
138
- /** @deprecated */
139
- readonly ಠ_ಠ: never;
140
- }>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<LayerNormalize<Live>>, MakeDepsIn<Make> | Layer.Services<LayerNormalize<Live>> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
141
- [TypeTestId]: Make;
142
- };
143
- <const Make extends {
144
- dependencies?: ReadonlyArray<Layer.Any>;
145
- effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (Resource[K] extends infer T ? T extends Resource[K] ? T extends {
146
- stream: true;
147
- } ? (req: T["Type"]) => Stream.Stream<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>> : ((req: T["Type"]) => Effect.Effect<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>) | ((req: T["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>, GetSuccess<T>["Type"], never>) : never : never) | (Resource[K] extends infer T_1 ? T_1 extends Resource[K] ? T_1 extends {
148
- stream: true;
149
- } ? {
150
- raw: (req: T_1["Type"]) => Stream.Stream<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
151
- } : {
152
- raw: (req: T_1["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>, GetSuccess<T_1>["Encoded"], never>;
153
- } | {
154
- raw: (req: T_1["Type"]) => Effect.Effect<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
155
- } : never : never); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
156
- raw: any;
157
- } ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
158
- raw: any;
159
- } ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never, SafeGetEffectContext<RequestContextMapOf<MW>, Resource[K]["config"]> | ProvidesOf<MW>>, Scope.Scope>>; }) => Generator<Effect.Effect<any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
160
- }>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<LayerNormalize<Live>>, MakeDepsIn<Make> | Layer.Services<LayerNormalize<Live>> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
161
- readonly [TypeTestId]: Make;
162
- };
163
- };
164
- };
165
- export type MakeDeps<Make> = Make extends {
166
- readonly dependencies: ReadonlyArray<Layer.Any>;
167
- } ? Make["dependencies"][number] : never;
168
- export type MakeErrors<Make> = Make extends {
169
- readonly effect: (_: any) => Generator<Effect.Effect<any, never, any>, any>;
170
- } ? never : Make extends {
171
- readonly effect: (_: any) => Generator<Effect.Effect<any, infer E, any>, any>;
172
- } ? E : never;
173
- export type MakeContext<Make> = Make extends {
174
- readonly effect: (_: any) => Generator<Effect.Effect<any, any, never>, any>;
175
- } ? never : Make extends {
176
- readonly effect: (_: any) => Generator<Effect.Effect<any, any, infer R>, any>;
177
- } ? R : never;
178
- export type MakeHandlers<Make, _Handlers extends Record<string, any>> = Make extends {
179
- readonly effect: (_: any) => Generator<any, infer S>;
180
- } ? S : never;
181
- export type MakeDepsE<Make> = Layer.Error<MakeDeps<Make>>;
182
- export type MakeDepsIn<Make> = Layer.Services<MakeDeps<Make>>;
183
- export type MakeDepsOut<Make> = Layer.Success<MakeDeps<Make>>;
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDbEQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBdUIsS0FBSyxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUM3RyxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXJELE9BQU8sS0FBSyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBWSxLQUFLLGdCQUFnQixFQUFhLE1BQU0scUJBQXFCLENBQUE7QUFJckYsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxlQUFPLE1BQU0sZ0NBQWdDLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQ3pDLFNBQVMsR0FBRyxPQUFPLFVBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsaUVBQ3FDLENBQUE7QUFJckUsTUFBTSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUc7SUFDckMsSUFBSSxFQUFFLE1BQU0sQ0FBQTtJQUNaLElBQUksRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFBO0lBQ3pCLE1BQU0sRUFBRSxPQUFPLENBQUE7SUFDZixNQUFNLEVBQUUsR0FBRyxDQUFBO0lBQ1gsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUE7SUFDZCxLQUFLLEVBQUUs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
@@ -1 +0,0 @@
1
- {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAa,cAAc,EAAkB,MAAM,sBAAsB,CAAA;AAYhF,eAAO,MAAM,iBAAiB,6CAe3B,CAAA;AAEH,eAAO,MAAM,KAAK;;;gBAGhB,CAAA;AAmBF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CACnC;AAMD,eAAO,MAAM,qBAAqB,GAC/B,IAAI,EAAE,EAAE,EAAE,GAAG,SAAS,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,oFASxF,CAAA;AAEN,eAAO,MAAM,8BAA8B,4BACZ,MAAM,CAAC,WAAW,GAAG,mBAAmB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uEAM3G,CAAA;AAMP,eAAO,MAAM,uCAAuC,4BACrB,MAAM,CAAC,WAAW,GAAG,mBAAmB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sGAK7G,CAAA;AAGL,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACzC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,mBAAmB,sEAa9B;AAED,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACvD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,mBAAmB,sEAanD"}
@@ -1,70 +0,0 @@
1
- import * as Effect from "effect-app/Effect";
2
- import * as Layer from "effect-app/Layer";
3
- import * as Option from "effect-app/Option";
4
- import { NonEmptyString255 } from "effect-app/Schema";
5
- import * as Tracer from "effect/Tracer";
6
- import { SqlClient } from "effect/unstable/sql";
7
- import { LocaleRef, RequestContext, spanAttributes } from "../RequestContext.js";
8
- import { ContextMapContainer } from "../Store/ContextMapContainer.js";
9
- import { storeId } from "../Store/Memory.js";
10
- const withSqlTransaction = (self) => Effect.serviceOption(SqlClient.SqlClient).pipe(Effect.flatMap(Option.match({
11
- onNone: () => self,
12
- onSome: (sql) => sql.withTransaction(self).pipe(Effect.orDie)
13
- })));
14
- export const getRequestContext = Effect
15
- .all({
16
- span: Effect.currentSpan.pipe(Effect.orDie),
17
- locale: LocaleRef,
18
- namespace: storeId
19
- })
20
- .pipe(Effect.map(({ locale, namespace, span }) => RequestContext.make({
21
- span: Tracer.externalSpan(span),
22
- locale,
23
- namespace,
24
- name: NonEmptyString255(span.name)
25
- })));
26
- export const getRC = Effect.all({
27
- locale: LocaleRef,
28
- namespace: storeId
29
- });
30
- const withRequestSpan = (name = "request", options) => (f) => Effect.andThen(getRC, (ctx) => f.pipe(Effect.withSpan(name, {
31
- ...options,
32
- attributes: { ...spanAttributes({ ...ctx, name: NonEmptyString255(name) }), ...options?.attributes }
33
- }, {
34
- captureStackTrace: options?.captureStackTrace ?? false
35
- }),
36
- // TODO: false
37
- // request context info is picked up directly in the logger for annotations.
38
- Effect.withLogSpan(name)));
39
- // Build `layer` against the ambient (request) scope rather than a sub-scope of the
40
- // returned Effect. Required when the returned value is a streaming HttpServerResponse:
41
- // the response body keeps producing chunks (and using layer-provided state) after the
42
- // Effect returns, so a sub-scope would close too early and run finalizers mid-stream.
43
- export const provideOnRequestScope = (layer) => (self) => Effect.gen(function* () {
44
- const requestScope = yield* Effect.scope;
45
- // Fresh MemoMap per request: `Layer.buildWithScope` would otherwise reuse
46
- // the ambient MemoMap living on the HTTP server fiber, sharing the built
47
- // value (e.g. ContextMap) across every request handled by that server.
48
- const memoMap = yield* Layer.makeMemoMap;
49
- const ctx = yield* Layer.buildWithMemoMap(layer, memoMap, requestScope);
50
- return yield* Effect.provide(self, ctx);
51
- });
52
- export const setupRequestContextFromCurrent = (name = "request", options) => (self) => self
53
- .pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(name, options), Effect.provide(ContextMapContainer.layer, { local: true }));
54
- // Streaming variant: binds ContextMapContainer to the ambient (request) scope so its
55
- // finalizer (clear()) runs only after the response body is fully drained, not when the
56
- // outer Effect returns its HttpServerResponse value. Use for handlers that return a
57
- // streaming HttpServerResponse (e.g. SSE) — see RequestContextMiddleware for context.
58
- export const setupStreamingRequestContextFromCurrent = (name = "request", options) => (self) => self.pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(name, options), provideOnRequestScope(ContextMapContainer.layer));
59
- // TODO: consider integrating Effect.withParentSpan
60
- export function setupRequestContext(self, requestContext, options) {
61
- const layer = Layer.mergeAll(ContextMapContainer.layer, Layer.succeed(LocaleRef, requestContext.locale), Layer.succeed(storeId, requestContext.namespace));
62
- return self
63
- .pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(requestContext.name), Effect.provide(layer, { local: true }));
64
- }
65
- export function setupRequestContextWithCustomSpan(self, requestContext, name, options) {
66
- const layer = Layer.mergeAll(ContextMapContainer.layer, Layer.succeed(LocaleRef, requestContext.locale), Layer.succeed(storeId, requestContext.namespace));
67
- return self
68
- .pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(name, options), Effect.provide(layer, { local: true }));
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9zZXR1cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDckQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUU1QyxNQUFNLGtCQUFrQixHQUFHLENBQVUsSUFBNEIsRUFBMEIsRUFBRSxDQUMzRixNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQzVDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMxQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtJQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Q0FDOUQsQ0FBQyxDQUFDLENBQ0osQ0FBQTtBQUVILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU07S0FDcEMsR0FBRyxDQUFDO0lBQ0gsSUFBSSxFQUFFLE1BQU0sQ0FB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/api/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,0CAStE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,UAEvC"}
package/dist/api/util.js DELETED
@@ -1,14 +0,0 @@
1
- export function snipValue(value) {
2
- if (!value) {
3
- return value;
4
- }
5
- return Array.isArray(value)
6
- ? value.map(snipString)
7
- : typeof value === "string" && value.length > 50
8
- ? snipString(value)
9
- : value;
10
- }
11
- export function snipString(value) {
12
- return value.length > 255 ? value.slice(0, 255) + "...snip" : value;
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQTZDO0lBQ3JFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFO1lBQ2hELENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ3JFLENBQUMifQ==
@@ -1,62 +0,0 @@
1
- import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js"
2
- import type { ResponseError } from "@sendgrid/mail"
3
- import type { NonEmptyReadonlyArray } from "effect-app/Array"
4
- import * as Context from "effect-app/Context"
5
- import type * as Effect from "effect-app/Effect"
6
- import type { Email } from "effect-app/Schema"
7
- import * as Data from "effect/Data"
8
- import type * as Redacted from "effect/Redacted"
9
-
10
- export class SendMailError extends Data.TaggedError("SendMailError")<{
11
- readonly raw: Error | ResponseError
12
- }> {}
13
-
14
- export class Emailer extends Context.Opaque<Emailer, {
15
- sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>
16
- }>()("effect-app/Emailer") {}
17
-
18
- export type EmailData = Email | {
19
- name?: string
20
- email: Email
21
- }
22
-
23
- export interface SendgridConfig {
24
- defaultReplyTo?: EmailData
25
- subjectPrefix: string
26
- realMail: boolean
27
- defaultFrom: EmailData
28
- apiKey: Redacted.Redacted
29
- /**
30
- * Email address used for fake/test recipients. Use `{i}` as a placeholder for an auto-incrementing index to ensure uniqueness.
31
- *
32
- * @example "test+{i}@example.com"
33
- */
34
- fakeMailAddress: string
35
- }
36
- export type EmailTemplateMsg = MailData & { templateId: string }
37
-
38
- export type EmailRecipients = EmailData | NonEmptyReadonlyArray<EmailData>
39
-
40
- export type EmailMsgBase =
41
- & Omit<MailData, "from" | "to" | "bcc" | "cc" | "content">
42
- & {
43
- to: EmailData | NonEmptyReadonlyArray<EmailData>
44
- cc?: EmailData | NonEmptyReadonlyArray<EmailData>
45
- bcc?: EmailData | NonEmptyReadonlyArray<EmailData>
46
- from: EmailData
47
- /**
48
- * should multiple `to` addresess be considered multiple emails?
49
- * defaults to `true`, not to leak email addresses
50
- */
51
- isMultiple?: boolean
52
- }
53
-
54
- export type EmailContent = { text: string } | { html: string } | { templateId: string } | {
55
- content: NonEmptyReadonlyArray<MailContent>
56
- }
57
-
58
- export type EmailMsg =
59
- & EmailMsgBase
60
- & EmailContent
61
-
62
- export type EmailMsgOptionalFrom = Omit<EmailMsgBase, "from"> & Partial<Pick<EmailMsg, "from">> & EmailContent
package/src/Emailer.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./Emailer/service.js"
@@ -1,34 +0,0 @@
1
- import * as Context from "effect-app/Context"
2
- import * as Effect from "effect-app/Effect"
3
-
4
- export interface RegisteredRepository {
5
- readonly seedNamespace: (namespace: string) => Effect.Effect<void>
6
- }
7
-
8
- const make = Effect.sync(() => {
9
- const repos = new Map<string, RegisteredRepository>()
10
- return {
11
- register(modelName: string, repo: RegisteredRepository) {
12
- repos.set(modelName, repo)
13
- },
14
- seedNamespace: (namespace: string) =>
15
- Effect.suspend(() =>
16
- Effect.forEach(
17
- repos.values(),
18
- (r) => r.seedNamespace(namespace),
19
- { concurrency: "unbounded", discard: true }
20
- )
21
- ),
22
- get entries(): ReadonlyMap<string, RegisteredRepository> {
23
- return repos
24
- }
25
- }
26
- })
27
-
28
- export class RepositoryRegistry extends Context.Opaque<RepositoryRegistry, {
29
- readonly register: (modelName: string, repo: RegisteredRepository) => void
30
- readonly seedNamespace: (namespace: string) => Effect.Effect<void>
31
- readonly entries: ReadonlyMap<string, RegisteredRepository>
32
- }>()("effect-app/RepositoryRegistry", { make }) {}
33
-
34
- export const RepositoryRegistryLive = RepositoryRegistry.toLayer(RepositoryRegistry.make)