@effect-app/infra 4.0.0-beta.25 → 4.0.0-beta.250

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 (472) hide show
  1. package/CHANGELOG.md +1892 -0
  2. package/_check.sh +1 -1
  3. package/dist/CUPS.d.ts +30 -11
  4. package/dist/CUPS.d.ts.map +1 -1
  5. package/dist/CUPS.js +35 -14
  6. package/dist/ContextProvider.d.ts +34 -0
  7. package/dist/ContextProvider.d.ts.map +1 -0
  8. package/dist/ContextProvider.js +40 -0
  9. package/dist/Emailer/Sendgrid.d.ts +111 -147
  10. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  11. package/dist/Emailer/Sendgrid.js +24 -19
  12. package/dist/Emailer/fake.d.ts +2 -2
  13. package/dist/Emailer/fake.d.ts.map +1 -1
  14. package/dist/Emailer/fake.js +4 -4
  15. package/dist/MainFiberSet.d.ts +12 -9
  16. package/dist/MainFiberSet.d.ts.map +1 -1
  17. package/dist/MainFiberSet.js +10 -6
  18. package/dist/QueueMaker/SQLQueue.d.ts +8 -9
  19. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  20. package/dist/QueueMaker/SQLQueue.js +138 -120
  21. package/dist/QueueMaker/errors.d.ts +5 -3
  22. package/dist/QueueMaker/errors.d.ts.map +1 -1
  23. package/dist/QueueMaker/errors.js +4 -2
  24. package/dist/QueueMaker/memQueue.d.ts +10 -6
  25. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  26. package/dist/QueueMaker/memQueue.js +84 -68
  27. package/dist/QueueMaker/sbqueue.d.ts +9 -5
  28. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  29. package/dist/QueueMaker/sbqueue.js +60 -58
  30. package/dist/RequestFiberSet.d.ts +10 -7
  31. package/dist/RequestFiberSet.d.ts.map +1 -1
  32. package/dist/RequestFiberSet.js +13 -8
  33. package/dist/SQL/Model.d.ts +468 -0
  34. package/dist/SQL/Model.d.ts.map +1 -0
  35. package/dist/SQL/Model.js +469 -0
  36. package/dist/SQL.d.ts +2 -0
  37. package/dist/SQL.d.ts.map +1 -0
  38. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  39. package/dist/ServiceBus.d.ts +61 -0
  40. package/dist/ServiceBus.d.ts.map +1 -0
  41. package/dist/ServiceBus.js +108 -0
  42. package/dist/Store/Cosmos/query.d.ts +15 -4
  43. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  44. package/dist/Store/Cosmos/query.js +179 -41
  45. package/dist/Store/Cosmos.d.ts +3 -3
  46. package/dist/Store/Cosmos.d.ts.map +1 -1
  47. package/dist/Store/Cosmos.js +345 -246
  48. package/dist/Store/Disk.d.ts +5 -5
  49. package/dist/Store/Disk.d.ts.map +1 -1
  50. package/dist/Store/Disk.js +77 -37
  51. package/dist/Store/Memory.d.ts +9 -6
  52. package/dist/Store/Memory.d.ts.map +1 -1
  53. package/dist/Store/Memory.js +328 -63
  54. package/dist/Store/SQL/Pg.d.ts +4 -0
  55. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  56. package/dist/Store/SQL/Pg.js +233 -0
  57. package/dist/Store/SQL/query.d.ts +49 -0
  58. package/dist/Store/SQL/query.d.ts.map +1 -0
  59. package/dist/Store/SQL/query.js +527 -0
  60. package/dist/Store/SQL.d.ts +21 -0
  61. package/dist/Store/SQL.d.ts.map +1 -0
  62. package/dist/Store/SQL.js +450 -0
  63. package/dist/Store/codeFilter.d.ts +5 -5
  64. package/dist/Store/codeFilter.d.ts.map +1 -1
  65. package/dist/Store/codeFilter.js +6 -3
  66. package/dist/Store/index.d.ts +7 -5
  67. package/dist/Store/index.d.ts.map +1 -1
  68. package/dist/Store/index.js +18 -5
  69. package/dist/Store/utils.d.ts +4 -3
  70. package/dist/Store/utils.d.ts.map +1 -1
  71. package/dist/Store/utils.js +5 -5
  72. package/dist/arbs.d.ts +2 -2
  73. package/dist/arbs.d.ts.map +1 -1
  74. package/dist/arbs.js +5 -3
  75. package/dist/codec.d.ts +5 -0
  76. package/dist/codec.d.ts.map +1 -0
  77. package/dist/codec.js +5 -0
  78. package/dist/cosmos-client.d.ts +16 -0
  79. package/dist/cosmos-client.d.ts.map +1 -0
  80. package/dist/cosmos-client.js +11 -0
  81. package/dist/errorReporter.d.ts +7 -5
  82. package/dist/errorReporter.d.ts.map +1 -1
  83. package/dist/errorReporter.js +23 -27
  84. package/dist/errors.d.ts +1 -1
  85. package/dist/fileUtil.d.ts +2 -2
  86. package/dist/fileUtil.d.ts.map +1 -1
  87. package/dist/fileUtil.js +2 -2
  88. package/dist/index.d.ts +3 -2
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -2
  91. package/dist/internal/RequestContextMiddleware.d.ts +5 -0
  92. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  93. package/dist/internal/RequestContextMiddleware.js +46 -0
  94. package/dist/internal/auth.d.ts +53 -0
  95. package/dist/internal/auth.d.ts.map +1 -0
  96. package/dist/internal/auth.js +180 -0
  97. package/dist/internal/events.d.ts +11 -0
  98. package/dist/internal/events.d.ts.map +1 -0
  99. package/dist/internal/events.js +49 -0
  100. package/dist/internal/health.d.ts +3 -0
  101. package/dist/internal/health.d.ts.map +1 -0
  102. package/dist/internal/health.js +5 -0
  103. package/dist/layerUtils.d.ts +32 -0
  104. package/dist/layerUtils.d.ts.map +1 -0
  105. package/dist/layerUtils.js +17 -0
  106. package/dist/logger/jsonLogger.d.ts +2 -2
  107. package/dist/logger/jsonLogger.d.ts.map +1 -1
  108. package/dist/logger/jsonLogger.js +5 -3
  109. package/dist/logger/logFmtLogger.d.ts +2 -2
  110. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  111. package/dist/logger/logFmtLogger.js +3 -3
  112. package/dist/logger/shared.d.ts +3 -3
  113. package/dist/logger/shared.d.ts.map +1 -1
  114. package/dist/logger/shared.js +4 -4
  115. package/dist/logger.d.ts +1 -1
  116. package/dist/logger.d.ts.map +1 -1
  117. package/dist/memQueue.d.ts +15 -0
  118. package/dist/memQueue.d.ts.map +1 -0
  119. package/dist/memQueue.js +21 -0
  120. package/dist/middlewares.d.ts +10 -0
  121. package/dist/middlewares.d.ts.map +1 -0
  122. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  123. package/dist/mongo-client.d.ts +11 -0
  124. package/dist/mongo-client.d.ts.map +1 -0
  125. package/dist/mongo-client.js +15 -0
  126. package/dist/otel.d.ts +75 -0
  127. package/dist/otel.d.ts.map +1 -0
  128. package/dist/otel.js +65 -0
  129. package/dist/rateLimit.d.ts +12 -4
  130. package/dist/rateLimit.d.ts.map +1 -1
  131. package/dist/rateLimit.js +7 -12
  132. package/dist/redis-client.d.ts +42 -0
  133. package/dist/redis-client.d.ts.map +1 -0
  134. package/dist/redis-client.js +98 -0
  135. package/dist/reportError.d.ts +4 -0
  136. package/dist/reportError.d.ts.map +1 -0
  137. package/dist/reportError.js +28 -0
  138. package/dist/routing/middleware/RouterMiddleware.d.ts +16 -0
  139. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  140. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  141. package/dist/routing/middleware/middleware.d.ts +48 -0
  142. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  143. package/dist/routing/middleware/middleware.js +128 -0
  144. package/dist/routing/middleware.d.ts +3 -0
  145. package/dist/routing/middleware.d.ts.map +1 -0
  146. package/dist/{api/routing → routing}/middleware.js +1 -2
  147. package/dist/routing/schema/jwt.d.ts +4 -0
  148. package/dist/routing/schema/jwt.d.ts.map +1 -0
  149. package/dist/routing/schema/jwt.js +13 -0
  150. package/dist/routing/tsort.d.ts +8 -0
  151. package/dist/routing/tsort.d.ts.map +1 -0
  152. package/dist/routing/tsort.js +51 -0
  153. package/dist/routing/utils.d.ts +19 -0
  154. package/dist/routing/utils.d.ts.map +1 -0
  155. package/dist/routing/utils.js +45 -0
  156. package/dist/routing.d.ts +184 -0
  157. package/dist/routing.d.ts.map +1 -0
  158. package/dist/routing.js +236 -0
  159. package/dist/setupRequest.d.ts +19 -0
  160. package/dist/setupRequest.d.ts.map +1 -0
  161. package/dist/setupRequest.js +70 -0
  162. package/dist/test.d.ts +3 -3
  163. package/dist/test.d.ts.map +1 -1
  164. package/dist/test.js +2 -2
  165. package/dist/util.d.ts +3 -0
  166. package/dist/util.d.ts.map +1 -0
  167. package/dist/util.js +14 -0
  168. package/dist/vitest.d.ts +1 -1
  169. package/examples/query.ts +47 -39
  170. package/package.json +123 -234
  171. package/src/CUPS.ts +52 -13
  172. package/src/{api/ContextProvider.ts → ContextProvider.ts} +19 -16
  173. package/src/Emailer/Sendgrid.ts +82 -59
  174. package/src/Emailer/fake.ts +3 -3
  175. package/src/MainFiberSet.ts +12 -10
  176. package/src/QueueMaker/SQLQueue.ts +153 -156
  177. package/src/QueueMaker/errors.ts +3 -1
  178. package/src/QueueMaker/memQueue.ts +113 -107
  179. package/src/QueueMaker/sbqueue.ts +78 -90
  180. package/src/RequestFiberSet.ts +13 -8
  181. package/src/{adapters/SQL → SQL}/Model.ts +42 -41
  182. package/src/ServiceBus.ts +219 -0
  183. package/src/Store/Cosmos/query.ts +216 -52
  184. package/src/Store/Cosmos.ts +494 -353
  185. package/src/Store/Disk.ts +108 -68
  186. package/src/Store/Memory.ts +367 -93
  187. package/src/Store/SQL/Pg.ts +364 -0
  188. package/src/Store/SQL/query.ts +603 -0
  189. package/src/Store/SQL.ts +736 -0
  190. package/src/Store/codeFilter.ts +8 -5
  191. package/src/Store/index.ts +21 -6
  192. package/src/Store/utils.ts +26 -24
  193. package/src/arbs.ts +5 -3
  194. package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +5 -3
  195. package/src/errorReporter.ts +66 -76
  196. package/src/fileUtil.ts +1 -1
  197. package/src/index.ts +2 -1
  198. package/src/internal/RequestContextMiddleware.ts +60 -0
  199. package/src/internal/auth.ts +272 -0
  200. package/src/{api/internal → internal}/events.ts +22 -13
  201. package/src/{api/layerUtils.ts → layerUtils.ts} +14 -10
  202. package/src/logger/jsonLogger.ts +4 -2
  203. package/src/logger/logFmtLogger.ts +2 -2
  204. package/src/logger/shared.ts +4 -3
  205. package/src/{adapters/memQueue.ts → memQueue.ts} +5 -4
  206. package/src/{adapters/mongo-client.ts → mongo-client.ts} +4 -2
  207. package/src/otel.ts +152 -0
  208. package/src/rateLimit.ts +34 -23
  209. package/src/{adapters/redis-client.ts → redis-client.ts} +7 -3
  210. package/src/{api/reportError.ts → reportError.ts} +3 -2
  211. package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +5 -4
  212. package/src/{api/routing → routing}/middleware/middleware.ts +62 -17
  213. package/src/routing/middleware.ts +4 -0
  214. package/src/{api/routing → routing}/schema/jwt.ts +2 -1
  215. package/src/{api/routing → routing}/utils.ts +2 -1
  216. package/src/routing.ts +768 -0
  217. package/src/setupRequest.ts +135 -0
  218. package/src/test.ts +2 -2
  219. package/test/auth.test.ts +101 -0
  220. package/test/contextProvider.test.ts +15 -12
  221. package/test/controller.test.ts +28 -32
  222. package/test/cosmos-query.test.ts +159 -0
  223. package/test/dist/auth.test.d.ts.map +1 -0
  224. package/test/dist/contextProvider.test.d.ts.map +1 -1
  225. package/test/dist/controller.test.d.ts.map +1 -1
  226. package/test/dist/cosmos-query.test.d.ts.map +1 -0
  227. package/test/dist/date-query.test.d.ts.map +1 -0
  228. package/test/dist/fixtures.d.ts +30 -12
  229. package/test/dist/fixtures.d.ts.map +1 -1
  230. package/test/dist/fixtures.js +17 -10
  231. package/test/dist/query.test.d.ts.map +1 -1
  232. package/test/dist/rawQuery.test.d.ts.map +1 -1
  233. package/test/dist/repository-ext.test.d.ts.map +1 -0
  234. package/test/dist/requires.test.d.ts.map +1 -1
  235. package/test/dist/router-generator.test.d.ts.map +1 -0
  236. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  237. package/test/dist/rpc-context-map-streaming.test.d.ts.map +1 -0
  238. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  239. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  240. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  241. package/test/dist/sql-store.test.d.ts.map +1 -0
  242. package/test/fixtures.ts +16 -9
  243. package/test/layerUtils.test.ts +2 -2
  244. package/test/query.test.ts +903 -40
  245. package/test/rawQuery.test.ts +340 -22
  246. package/test/repository-ext.test.ts +62 -0
  247. package/test/requires.test.ts +10 -5
  248. package/test/router-generator.test.ts +187 -0
  249. package/test/routing-interruptibility.test.ts +66 -0
  250. package/test/rpc-context-map-streaming.test.ts +262 -0
  251. package/test/rpc-e2e-invalidation.test.ts +256 -0
  252. package/test/rpc-multi-middleware.test.ts +85 -10
  253. package/test/rpc-stream-fullstack.test.ts +304 -0
  254. package/test/sql-store.test.ts +1711 -0
  255. package/test/validateSample.test.ts +19 -14
  256. package/tsconfig.examples.json +1 -1
  257. package/tsconfig.json +2 -1
  258. package/tsconfig.json.bak +2 -2
  259. package/tsconfig.src.json +35 -35
  260. package/tsconfig.test.json +2 -2
  261. package/dist/Emailer/service.d.ts +0 -55
  262. package/dist/Emailer/service.d.ts.map +0 -1
  263. package/dist/Emailer/service.js +0 -6
  264. package/dist/Emailer.d.ts +0 -2
  265. package/dist/Emailer.d.ts.map +0 -1
  266. package/dist/Emailer.js +0 -2
  267. package/dist/Model/Repository/ext.d.ts +0 -41
  268. package/dist/Model/Repository/ext.d.ts.map +0 -1
  269. package/dist/Model/Repository/ext.js +0 -65
  270. package/dist/Model/Repository/internal/internal.d.ts +0 -59
  271. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  272. package/dist/Model/Repository/internal/internal.js +0 -316
  273. package/dist/Model/Repository/legacy.d.ts +0 -19
  274. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  275. package/dist/Model/Repository/legacy.js +0 -2
  276. package/dist/Model/Repository/makeRepo.d.ts +0 -49
  277. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  278. package/dist/Model/Repository/makeRepo.js +0 -24
  279. package/dist/Model/Repository/service.d.ts +0 -89
  280. package/dist/Model/Repository/service.d.ts.map +0 -1
  281. package/dist/Model/Repository/service.js +0 -2
  282. package/dist/Model/Repository/validation.d.ts +0 -42
  283. package/dist/Model/Repository/validation.d.ts.map +0 -1
  284. package/dist/Model/Repository/validation.js +0 -32
  285. package/dist/Model/Repository.d.ts +0 -6
  286. package/dist/Model/Repository.d.ts.map +0 -1
  287. package/dist/Model/Repository.js +0 -6
  288. package/dist/Model/dsl.d.ts +0 -32
  289. package/dist/Model/dsl.d.ts.map +0 -1
  290. package/dist/Model/dsl.js +0 -44
  291. package/dist/Model/filter/filterApi.d.ts +0 -30
  292. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  293. package/dist/Model/filter/filterApi.js +0 -2
  294. package/dist/Model/filter/types/errors.d.ts +0 -29
  295. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  296. package/dist/Model/filter/types/errors.js +0 -2
  297. package/dist/Model/filter/types/fields.d.ts +0 -15
  298. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  299. package/dist/Model/filter/types/fields.js +0 -2
  300. package/dist/Model/filter/types/path/common.d.ts +0 -316
  301. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  302. package/dist/Model/filter/types/path/common.js +0 -2
  303. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  304. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  305. package/dist/Model/filter/types/path/eager.js +0 -31
  306. package/dist/Model/filter/types/path/index.d.ts +0 -4
  307. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  308. package/dist/Model/filter/types/path/index.js +0 -3
  309. package/dist/Model/filter/types/utils.d.ts +0 -79
  310. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  311. package/dist/Model/filter/types/utils.js +0 -2
  312. package/dist/Model/filter/types/validator.d.ts +0 -30
  313. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  314. package/dist/Model/filter/types/validator.js +0 -2
  315. package/dist/Model/filter/types.d.ts +0 -5
  316. package/dist/Model/filter/types.d.ts.map +0 -1
  317. package/dist/Model/filter/types.js +0 -7
  318. package/dist/Model/query/dsl.d.ts +0 -248
  319. package/dist/Model/query/dsl.d.ts.map +0 -1
  320. package/dist/Model/query/dsl.js +0 -104
  321. package/dist/Model/query/new-kid-interpreter.d.ts +0 -28
  322. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  323. package/dist/Model/query/new-kid-interpreter.js +0 -165
  324. package/dist/Model/query.d.ts +0 -15
  325. package/dist/Model/query.d.ts.map +0 -1
  326. package/dist/Model/query.js +0 -3
  327. package/dist/Model.d.ts +0 -4
  328. package/dist/Model.d.ts.map +0 -1
  329. package/dist/Model.js +0 -4
  330. package/dist/Operations.d.ts +0 -55
  331. package/dist/Operations.d.ts.map +0 -1
  332. package/dist/Operations.js +0 -102
  333. package/dist/OperationsRepo.d.ts +0 -41
  334. package/dist/OperationsRepo.d.ts.map +0 -1
  335. package/dist/OperationsRepo.js +0 -14
  336. package/dist/QueueMaker/service.d.ts +0 -11
  337. package/dist/QueueMaker/service.d.ts.map +0 -1
  338. package/dist/QueueMaker/service.js +0 -4
  339. package/dist/RequestContext.d.ts +0 -63
  340. package/dist/RequestContext.d.ts.map +0 -1
  341. package/dist/RequestContext.js +0 -49
  342. package/dist/Store/ContextMapContainer.d.ts +0 -14
  343. package/dist/Store/ContextMapContainer.d.ts.map +0 -1
  344. package/dist/Store/ContextMapContainer.js +0 -16
  345. package/dist/Store/service.d.ts +0 -108
  346. package/dist/Store/service.d.ts.map +0 -1
  347. package/dist/Store/service.js +0 -71
  348. package/dist/Store.d.ts +0 -2
  349. package/dist/Store.d.ts.map +0 -1
  350. package/dist/Store.js +0 -2
  351. package/dist/adapters/SQL/Model.d.ts +0 -479
  352. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  353. package/dist/adapters/SQL/Model.js +0 -478
  354. package/dist/adapters/SQL.d.ts +0 -2
  355. package/dist/adapters/SQL.d.ts.map +0 -1
  356. package/dist/adapters/ServiceBus.d.ts +0 -58
  357. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  358. package/dist/adapters/ServiceBus.js +0 -99
  359. package/dist/adapters/cosmos-client.d.ts +0 -14
  360. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  361. package/dist/adapters/cosmos-client.js +0 -9
  362. package/dist/adapters/index.d.ts +0 -2
  363. package/dist/adapters/index.d.ts.map +0 -1
  364. package/dist/adapters/index.js +0 -2
  365. package/dist/adapters/logger.d.ts +0 -9
  366. package/dist/adapters/logger.d.ts.map +0 -1
  367. package/dist/adapters/logger.js +0 -3
  368. package/dist/adapters/memQueue.d.ts +0 -13
  369. package/dist/adapters/memQueue.d.ts.map +0 -1
  370. package/dist/adapters/memQueue.js +0 -20
  371. package/dist/adapters/mongo-client.d.ts +0 -10
  372. package/dist/adapters/mongo-client.d.ts.map +0 -1
  373. package/dist/adapters/mongo-client.js +0 -13
  374. package/dist/adapters/redis-client.d.ts +0 -39
  375. package/dist/adapters/redis-client.d.ts.map +0 -1
  376. package/dist/adapters/redis-client.js +0 -94
  377. package/dist/api/ContextProvider.d.ts +0 -31
  378. package/dist/api/ContextProvider.d.ts.map +0 -1
  379. package/dist/api/ContextProvider.js +0 -38
  380. package/dist/api/codec.d.ts +0 -5
  381. package/dist/api/codec.d.ts.map +0 -1
  382. package/dist/api/codec.js +0 -5
  383. package/dist/api/internal/RequestContextMiddleware.d.ts +0 -5
  384. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  385. package/dist/api/internal/RequestContextMiddleware.js +0 -35
  386. package/dist/api/internal/auth.d.ts +0 -15
  387. package/dist/api/internal/auth.d.ts.map +0 -1
  388. package/dist/api/internal/auth.js +0 -47
  389. package/dist/api/internal/events.d.ts +0 -9
  390. package/dist/api/internal/events.d.ts.map +0 -1
  391. package/dist/api/internal/events.js +0 -42
  392. package/dist/api/internal/health.d.ts +0 -3
  393. package/dist/api/internal/health.d.ts.map +0 -1
  394. package/dist/api/internal/health.js +0 -5
  395. package/dist/api/layerUtils.d.ts +0 -24
  396. package/dist/api/layerUtils.d.ts.map +0 -1
  397. package/dist/api/layerUtils.js +0 -16
  398. package/dist/api/middlewares.d.ts +0 -10
  399. package/dist/api/middlewares.d.ts.map +0 -1
  400. package/dist/api/reportError.d.ts +0 -4
  401. package/dist/api/reportError.d.ts.map +0 -1
  402. package/dist/api/reportError.js +0 -27
  403. package/dist/api/routing/middleware/RouterMiddleware.d.ts +0 -15
  404. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  405. package/dist/api/routing/middleware/middleware.d.ts +0 -9
  406. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  407. package/dist/api/routing/middleware/middleware.js +0 -92
  408. package/dist/api/routing/middleware.d.ts +0 -4
  409. package/dist/api/routing/middleware.d.ts.map +0 -1
  410. package/dist/api/routing/schema/jwt.d.ts +0 -4
  411. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  412. package/dist/api/routing/schema/jwt.js +0 -12
  413. package/dist/api/routing/tsort.d.ts +0 -8
  414. package/dist/api/routing/tsort.d.ts.map +0 -1
  415. package/dist/api/routing/tsort.js +0 -51
  416. package/dist/api/routing/utils.d.ts +0 -19
  417. package/dist/api/routing/utils.d.ts.map +0 -1
  418. package/dist/api/routing/utils.js +0 -44
  419. package/dist/api/routing.d.ts +0 -138
  420. package/dist/api/routing.d.ts.map +0 -1
  421. package/dist/api/routing.js +0 -166
  422. package/dist/api/setupRequest.d.ts +0 -12
  423. package/dist/api/setupRequest.d.ts.map +0 -1
  424. package/dist/api/setupRequest.js +0 -44
  425. package/dist/api/util.d.ts +0 -3
  426. package/dist/api/util.d.ts.map +0 -1
  427. package/dist/api/util.js +0 -14
  428. package/eslint.config.mjs +0 -24
  429. package/src/Emailer/service.ts +0 -52
  430. package/src/Emailer.ts +0 -1
  431. package/src/Model/Repository/ext.ts +0 -283
  432. package/src/Model/Repository/internal/internal.ts +0 -577
  433. package/src/Model/Repository/legacy.ts +0 -27
  434. package/src/Model/Repository/makeRepo.ts +0 -139
  435. package/src/Model/Repository/service.ts +0 -627
  436. package/src/Model/Repository/validation.ts +0 -31
  437. package/src/Model/Repository.ts +0 -5
  438. package/src/Model/dsl.ts +0 -128
  439. package/src/Model/filter/filterApi.ts +0 -60
  440. package/src/Model/filter/types/errors.ts +0 -47
  441. package/src/Model/filter/types/fields.ts +0 -50
  442. package/src/Model/filter/types/path/common.ts +0 -404
  443. package/src/Model/filter/types/path/eager.ts +0 -298
  444. package/src/Model/filter/types/path/index.ts +0 -4
  445. package/src/Model/filter/types/utils.ts +0 -128
  446. package/src/Model/filter/types/validator.ts +0 -46
  447. package/src/Model/filter/types.ts +0 -6
  448. package/src/Model/query/dsl.ts +0 -2110
  449. package/src/Model/query/new-kid-interpreter.ts +0 -210
  450. package/src/Model/query.ts +0 -13
  451. package/src/Model.ts +0 -3
  452. package/src/Operations.ts +0 -235
  453. package/src/OperationsRepo.ts +0 -16
  454. package/src/QueueMaker/service.ts +0 -17
  455. package/src/RequestContext.ts +0 -63
  456. package/src/Store/ContextMapContainer.ts +0 -20
  457. package/src/Store/service.ts +0 -184
  458. package/src/Store.ts +0 -1
  459. package/src/adapters/ServiceBus.ts +0 -209
  460. package/src/adapters/index.ts +0 -0
  461. package/src/adapters/logger.ts +0 -3
  462. package/src/api/internal/RequestContextMiddleware.ts +0 -42
  463. package/src/api/internal/auth.ts +0 -68
  464. package/src/api/routing/middleware.ts +0 -6
  465. package/src/api/routing.ts +0 -598
  466. package/src/api/setupRequest.ts +0 -84
  467. /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
  468. /package/src/{api/codec.ts → codec.ts} +0 -0
  469. /package/src/{api/internal → internal}/health.ts +0 -0
  470. /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
  471. /package/src/{api/routing → routing}/tsort.ts +0 -0
  472. /package/src/{api/util.ts → util.ts} +0 -0
@@ -1,9 +1,13 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Effect, Layer, type NonEmptyReadonlyArray, pipe, type Scope, ServiceMap } from "effect-app"
2
+ import type { NonEmptyReadonlyArray } from "effect-app/Array"
3
+ import * as Context from "effect-app/Context"
4
+ import * as Effect from "effect-app/Effect"
5
+ import * as Layer from "effect-app/Layer"
6
+ import { pipe } from "effect/Function"
7
+ import type * as Scope from "effect/Scope"
3
8
 
4
9
  import { type HttpRouter } from "effect-app/http"
5
10
  import { type EffectGenUtils } from "effect-app/utils/gen"
6
- import { type Yieldable } from "effect/Effect"
7
11
  import { type ContextTagWithDefault, type GetContext, type LayerUtils, mergeContexts } from "./layerUtils.js"
8
12
 
9
13
  export interface ContextProviderId {
@@ -23,7 +27,7 @@ type TDepsArr<TDeps extends ReadonlyArray<any>> = {
23
27
  // E = never => the context provided cannot trigger errors
24
28
  // TODO: remove HttpLayerRouter.Provided - it's not even relevant outside of Http context, while ContextProviders are for anywhere. Only support Scope.Scope?
25
29
  // _R extends HttpLayerRouter.Provided => the context provided can only have what HttpLayerRouter.Provided provides as requirements
26
- ContextTagWithDefault.Base<Effect.Effect<ServiceMap.ServiceMap<infer _1>, never, infer _R>> // & { _tag: infer _2 }>
30
+ ContextTagWithDefault.Base<Effect.Effect<Context.Context<infer _1>, never, infer _R>> // & { _tag: infer _2 }>
27
31
  ? [_R] extends [HttpRouter.Provided] ? TDeps[K]
28
32
  : `HttpLayerRouter.Provided is the only requirement ${TDeps[K]["Service"][
29
33
  "_tag"
@@ -38,7 +42,7 @@ type TDepsArr<TDeps extends ReadonlyArray<any>> = {
38
42
  > // & { _tag: infer _3 }
39
43
  ) // [_YW] extends [never] if no yield* is used and just some context is returned
40
44
  ? [_YW] extends [never] ? TDeps[K]
41
- : [_YW] extends [Yieldable<any, infer _2, never, infer _R>] ? [_R] extends [HttpRouter.Provided] ? TDeps[K]
45
+ : [_YW] extends [Effect.Effect<any, never, infer _R>] ? [_R] extends [HttpRouter.Provided] ? TDeps[K]
42
46
  : `HttpLayerRouter.Provided is the only requirement ${TDeps[K]["Service"][
43
47
  "_tag"
44
48
  ]}'s returned effect can have`
@@ -58,9 +62,9 @@ export const mergeContextProviders = <
58
62
  Effect.Effect<
59
63
  // we need to merge all contexts into one
60
64
  // v4: Service.Shape extracts the service value type (v3's Tag.Identifier)
61
- ServiceMap.ServiceMap<GetContext<EffectGenUtils.Success<ServiceMap.Service.Shape<TDeps[number]>>>>,
65
+ Context.Context<GetContext<EffectGenUtils.Success<Context.Service.Shape<TDeps[number]>>>>,
62
66
  never,
63
- EffectGenUtils.ServiceMap<ServiceMap.Service.Shape<TDeps[number]>>
67
+ EffectGenUtils.Context<Context.Service.Shape<TDeps[number]>>
64
68
  >,
65
69
  LayerUtils.GetLayersError<{ [K in keyof TDeps]: TDeps[K]["Default"] }>,
66
70
  LayerUtils.GetLayersSuccess<{ [K in keyof TDeps]: TDeps[K]["Default"] }>
@@ -78,14 +82,14 @@ export const mergeContextProviders = <
78
82
  handle: handle[Symbol.toStringTag] === "GeneratorFunction" ? Effect.fnUntraced(handle)() : handle
79
83
  }
80
84
  ))
81
- // services are effects which return some ServiceMap.ServiceMap<...>
85
+ // services are effects which return some Context.Context<...>
82
86
  const context = yield* mergeContexts(services as any)
83
87
  return context
84
88
  })
85
89
  }) as any
86
90
  })
87
91
 
88
- // Effect Rpc Middleware: for single tag providing, we could use Provides, for providing ServiceMap or Layer (bad boy) we could use Wrap..
92
+ // Effect Rpc Middleware: for single tag providing, we could use Provides, for providing Context or Layer (bad boy) we could use Wrap..
89
93
  export const ContextProvider = <
90
94
  ContextProviderA,
91
95
  MakeContextProviderE,
@@ -97,9 +101,8 @@ export const ContextProvider = <
97
101
  effect: Effect.Effect<
98
102
  | Effect.Effect<ContextProviderA, never, ContextProviderR>
99
103
  | (() => Generator<
100
- Yieldable<any, any, never, ContextProviderR>,
101
- ContextProviderA,
102
- any
104
+ Effect.Effect<any, never, ContextProviderR>,
105
+ ContextProviderA
103
106
  >),
104
107
  MakeContextProviderE,
105
108
  MakeContextProviderR | Scope.Scope
@@ -107,7 +110,7 @@ export const ContextProvider = <
107
110
  dependencies?: Dependencies
108
111
  }
109
112
  ) => {
110
- const ctx = ServiceMap.Service<
113
+ const ctx = Context.Service<
111
114
  ContextProviderId,
112
115
  Effect.Effect<ContextProviderA, never, ContextProviderR>
113
116
  >(
@@ -146,17 +149,17 @@ export const MergedContextProvider = <
146
149
  Effect.Effect<
147
150
  // we need to merge all contexts into one
148
151
  // v4: Service.Shape extracts the service value type (v3's Tag.Identifier)
149
- ServiceMap.ServiceMap<GetContext<EffectGenUtils.Success<ServiceMap.Service.Shape<TDeps[number]>>>>,
152
+ Context.Context<GetContext<EffectGenUtils.Success<Context.Service.Shape<TDeps[number]>>>>,
150
153
  never,
151
- EffectGenUtils.ServiceMap<ServiceMap.Service.Shape<TDeps[number]>>
154
+ EffectGenUtils.Context<Context.Service.Shape<TDeps[number]>>
152
155
  >,
153
156
  LayerUtils.GetLayersError<{ [K in keyof TDeps]: TDeps[K]["Default"] }>,
154
157
  // v4: Identifier here is correct — it's the nominal service identity for layer provide/exclude
155
158
  | Exclude<
156
- ServiceMap.Service.Identifier<TDeps[number]>,
159
+ Context.Service.Identifier<TDeps[number]>,
157
160
  LayerUtils.GetLayersSuccess<{ [K in keyof TDeps]: TDeps[K]["Default"] }>
158
161
  >
159
162
  | LayerUtils.GetLayersContext<{ [K in keyof TDeps]: TDeps[K]["Default"] }>
160
163
  >
161
164
 
162
- export const EmptyContextProvider = ContextProvider({ effect: Effect.succeed(Effect.succeed(ServiceMap.empty())) })
165
+ export const EmptyContextProvider = ContextProvider({ effect: Effect.succeed(Effect.succeed(Context.empty())) })
@@ -1,63 +1,85 @@
1
- import type { EmailData } from "@sendgrid/helpers/classes/email-address.js"
2
1
  import type { MailContent } from "@sendgrid/helpers/classes/mail.js"
3
2
  import sgMail from "@sendgrid/mail"
4
- import { Array, Effect, Equivalence, Redacted } from "effect-app"
3
+ import * as Array from "effect-app/Array"
4
+ import * as Effect from "effect-app/Effect"
5
+ import { type EmailData, Emailer, type EmailMsg, type EmailMsgOptionalFrom, SendMailError } from "effect-app/Emailer"
5
6
  import { dropUndefinedT } from "effect-app/utils"
7
+ import * as Equivalence from "effect/Equivalence"
8
+ import * as Redacted from "effect/Redacted"
6
9
  import { inspect } from "util"
7
10
  import { InfraLogger } from "../logger.js"
8
- import { Emailer, type EmailMsg, type EmailMsgOptionalFrom, type SendgridConfig, SendMailError } from "./service.js"
9
11
 
10
- const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPrefix }: SendgridConfig) =>
12
+ export interface SendgridConfig {
13
+ defaultReplyTo?: EmailData
14
+ subjectPrefix: string
15
+ realMail: boolean
16
+ defaultFrom: EmailData
17
+ apiKey: Redacted.Redacted
18
+ /**
19
+ * Email address used for fake/test recipients. Use `{i}` as a placeholder for
20
+ * an auto-incrementing index to ensure uniqueness.
21
+ *
22
+ * @example "test+{i}@example.com"
23
+ */
24
+ fakeMailAddress: string
25
+ }
26
+
27
+ const makeSendgrid = (
28
+ { apiKey, defaultFrom, defaultReplyTo, fakeMailAddress, realMail, subjectPrefix }: SendgridConfig
29
+ ) =>
11
30
  Effect.sync(() => {
12
31
  sgMail.setApiKey(Redacted.value(apiKey))
13
32
 
14
33
  return Emailer.of({
15
- sendMail: Effect.fn("Sendgrid.sendMail")(function*(msg_: EmailMsgOptionalFrom) {
16
- const msg: EmailMsg = dropUndefinedT({
17
- ...msg_,
18
- from: msg_.from ?? defaultFrom,
19
- replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
20
- })
21
- const render = renderMessage(!realMail)
34
+ sendMail: Effect.fn("Emailer.sendMail", { attributes: { "messaging.system": "sendgrid" } })(
35
+ function*(msg_: EmailMsgOptionalFrom) {
36
+ const replyTo = msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
37
+ const msg = dropUndefinedT({
38
+ ...msg_,
39
+ from: msg_.from ?? defaultFrom,
40
+ replyTo
41
+ }) satisfies EmailMsg
42
+ const render = renderMessage(!realMail, fakeMailAddress)
22
43
 
23
- const renderedMsg_ = render(msg)
24
- const renderedMsg = {
25
- ...renderedMsg_ as Omit<typeof renderedMsg_, "content">,
26
- subject: `${subjectPrefix}${renderedMsg_.subject}`,
27
- ..."content" in renderedMsg_
28
- ? { content: [...renderedMsg_.content] as [MailContent, ...MailContent[]] }
29
- : {}
30
- }
31
- yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)))
44
+ const renderedMsg_ = render(msg)
45
+ const renderedMsg = {
46
+ ...renderedMsg_ as Omit<typeof renderedMsg_, "content">,
47
+ subject: `${subjectPrefix}${renderedMsg_.subject}`,
48
+ ..."content" in renderedMsg_
49
+ ? { content: [...renderedMsg_.content] as [MailContent, ...MailContent[]] }
50
+ : {}
51
+ }
52
+ yield* InfraLogger.logDebug("Sending email").pipe(Effect.annotateLogs("msg", inspect(renderedMsg, false, 5)))
32
53
 
33
- const ret = yield* Effect
34
- .callback<
35
- [sgMail.ClientResponse, Record<string, unknown>],
36
- Error | sgMail.ResponseError
37
- >(
38
- (resume) =>
39
- void sgMail.send(
40
- renderedMsg as any, // sue me
41
- msg.isMultiple ?? true,
42
- (err, result) =>
43
- err
44
- ? resume(Effect.fail(err))
45
- : resume(Effect.sync(() => result))
46
- )
47
- )
48
- .pipe(Effect.mapError((raw) => new SendMailError({ raw })))
54
+ const ret = yield* Effect
55
+ .callback<
56
+ [sgMail.ClientResponse, Record<string, unknown>],
57
+ Error | sgMail.ResponseError
58
+ >(
59
+ (resume) =>
60
+ void sgMail.send(
61
+ renderedMsg as any, // sue me
62
+ msg.isMultiple ?? true,
63
+ (err, result) =>
64
+ err
65
+ ? resume(Effect.fail(err))
66
+ : resume(Effect.sync(() => result))
67
+ )
68
+ )
69
+ .pipe(Effect.mapError((raw) => new SendMailError({ raw })))
49
70
 
50
- // const event = {
51
- // name: "EmailSent",
52
- // properties: {
53
- // templateId: msg.templateId
54
- // }
55
- // }
56
- // yield* InfraLogger.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty)
57
- // const { trackEvent } = yield* AiContextService
58
- // trackEvent(event)
59
- return ret
60
- })
71
+ // const event = {
72
+ // name: "EmailSent",
73
+ // properties: {
74
+ // templateId: msg.templateId
75
+ // }
76
+ // }
77
+ // yield* InfraLogger.logDebug("Tracking email event").annotateLogs("event", event.$$.pretty)
78
+ // const { trackEvent } = yield* AiContextService
79
+ // trackEvent(event)
80
+ return ret
81
+ }
82
+ )
61
83
  })
62
84
  })
63
85
 
@@ -68,23 +90,24 @@ export function Sendgrid(config: SendgridConfig) {
68
90
  /**
69
91
  * @hidden
70
92
  */
71
- export function renderMessage(forceFake: boolean) {
93
+ export function renderMessage(forceFake: boolean, fakeMailAddress: string) {
72
94
  let i = 0
73
95
  const makeId = () => i++
96
+ const makeFakeEmail = () => fakeMailAddress.replace("{i}", String(makeId()))
74
97
  return forceFake
75
98
  ? (msg: EmailMsg) =>
76
99
  dropUndefinedT({
77
100
  ...msg,
78
- to: msg.to && renderFake(msg.to, makeId),
79
- cc: msg.cc && renderFake(msg.cc, makeId),
80
- bcc: msg.bcc && renderFake(msg.bcc, makeId)
101
+ to: msg.to && renderFake(msg.to, makeFakeEmail),
102
+ cc: msg.cc && renderFake(msg.cc, makeFakeEmail),
103
+ bcc: msg.bcc && renderFake(msg.bcc, makeFakeEmail)
81
104
  })
82
105
  : (msg: EmailMsg) =>
83
106
  dropUndefinedT({
84
107
  ...msg,
85
- to: msg.to && renderFakeIfTest(msg.to, makeId),
86
- cc: msg.cc && renderFakeIfTest(msg.cc, makeId),
87
- bcc: msg.bcc && renderFakeIfTest(msg.bcc, makeId)
108
+ to: msg.to && renderFakeIfTest(msg.to, makeFakeEmail),
109
+ cc: msg.cc && renderFakeIfTest(msg.cc, makeFakeEmail),
110
+ bcc: msg.bcc && renderFakeIfTest(msg.bcc, makeFakeEmail)
88
111
  })
89
112
  }
90
113
 
@@ -100,10 +123,10 @@ export function isTestAddress(to: EmailData) {
100
123
  )
101
124
  }
102
125
 
103
- function renderFake(addr: EmailData | readonly EmailData[], makeId: () => number) {
126
+ function renderFake(addr: EmailData | readonly EmailData[], makeEmail: () => string) {
104
127
  return {
105
128
  name: renderMailData(addr),
106
- email: `test+${makeId()}@nomizz.com`
129
+ email: makeEmail()
107
130
  }
108
131
  }
109
132
  const eq = Equivalence.mapInput(
@@ -117,14 +140,14 @@ function isEmailDataArray(md: EmailData | readonly EmailData[]): md is readonly
117
140
 
118
141
  // TODO: should just not add any already added email address
119
142
  // https://stackoverflow.com/a/53603076/11595834
120
- function renderFakeIfTest(addr: EmailData | readonly EmailData[], makeId: () => number) {
143
+ function renderFakeIfTest(addr: EmailData | readonly EmailData[], makeEmail: () => string) {
121
144
  if (isEmailDataArray(addr)) {
122
145
  return Array.dedupeWith(
123
- addr.map((x) => (isTestAddress(x) ? renderFake(x, makeId) : x)),
146
+ addr.map((x) => (isTestAddress(x) ? renderFake(x, makeEmail) : x)),
124
147
  eq
125
148
  )
126
149
  }
127
- return isTestAddress(addr) ? renderFake(addr, makeId) : addr
150
+ return isTestAddress(addr) ? renderFake(addr, makeEmail) : addr
128
151
  }
129
152
 
130
153
  function renderMailData(md: EmailData | readonly EmailData[]): string {
@@ -1,13 +1,13 @@
1
- import { Effect } from "effect-app"
1
+ import * as Effect from "effect-app/Effect"
2
+ import { Emailer } from "effect-app/Emailer"
2
3
  import { pretty } from "effect-app/utils"
3
4
  import { InfraLogger } from "../logger.js"
4
- import { Emailer } from "./service.js"
5
5
 
6
6
  const makeFake = InfraLogger
7
7
  .logInfo("FAKE Emailer Service enabled")
8
8
  .pipe(Effect.map(() =>
9
9
  Emailer.of({
10
- sendMail: Effect.fn("Fake.sendMail")((msg) =>
10
+ sendMail: Effect.fn("Emailer.sendMail", { attributes: { "messaging.system": "fake" } })((msg) =>
11
11
  InfraLogger
12
12
  .logDebug(`Fake send mail`)
13
13
  .pipe(Effect.annotateLogs("msg", pretty(msg)))
@@ -1,14 +1,17 @@
1
- import { Effect, Fiber, FiberSet, Layer, ServiceMap } from "effect-app"
2
- import type {} from "effect/Scope"
1
+ import * as Context from "effect-app/Context"
2
+ import * as Effect from "effect-app/Effect"
3
+ import * as Layer from "effect-app/Layer"
4
+ import * as Fiber from "effect/Fiber"
5
+ import * as FiberSet from "effect/FiberSet"
6
+
3
7
  import { InfraLogger } from "./logger.js"
4
8
  import { reportNonInterruptedFailureCause } from "./QueueMaker/errors.js"
5
9
  import { setRootParentSpan } from "./RequestFiberSet.js"
6
10
 
7
11
  const make = Effect.gen(function*() {
8
12
  const set = yield* FiberSet.make<unknown, never>()
9
- const add = (...fibers: Fiber.Fiber<never, never>[]) =>
10
- Effect.sync(() => fibers.forEach((_) => FiberSet.addUnsafe(set, _)))
11
- const addAll = (fibers: readonly Fiber.Fiber<never, never>[]) =>
13
+ const add = (...fibers: Fiber.Fiber<never>[]) => Effect.sync(() => fibers.forEach((_) => FiberSet.addUnsafe(set, _)))
14
+ const addAll = (fibers: readonly Fiber.Fiber<never>[]) =>
12
15
  Effect.sync(() => fibers.forEach((_) => FiberSet.addUnsafe(set, _)))
13
16
  const join = FiberSet.size(set).pipe(
14
17
  Effect.andThen((count) => InfraLogger.logDebug(`Joining ${count} current fibers on the MainFiberSet`)),
@@ -62,15 +65,14 @@ const make = Effect.gen(function*() {
62
65
  * you should register these long running fibers in a FiberSet, and join them at the end of your main program.
63
66
  * This way any errors will blow up the main program instead of fibers dying unknowingly.
64
67
  */
65
- export class MainFiberSet extends ServiceMap.Service<MainFiberSet>()("MainFiberSet", { make }) {
68
+ export class MainFiberSet extends Context.Service<MainFiberSet>()("MainFiberSet", { make }) {
66
69
  static readonly Live = Layer.effect(this, this.make)
67
- static readonly JoinLive = this.asEffect().pipe(
70
+ static readonly JoinLive = this.pipe(
68
71
  Effect.andThen((_) => _.join),
69
72
  Layer.effectDiscard,
70
73
  Layer.provide(this.Live)
71
74
  )
72
- static readonly run = <A, R>(self: Effect.Effect<A, never, R>) =>
73
- this.asEffect().pipe(Effect.andThen((_) => _.run(self)))
75
+ static readonly run = <A, R>(self: Effect.Effect<A, never, R>) => this.pipe(Effect.andThen((_) => _.run(self)))
74
76
  static readonly forkDaemonReport = <A, E, R>(self: Effect.Effect<A, E, R>) =>
75
- this.asEffect().pipe(Effect.andThen((_) => _.forkDaemonReport(self)))
77
+ this.pipe(Effect.andThen((_) => _.forkDaemonReport(self)))
76
78
  }