@effect-app/infra 4.0.0-beta.31 → 4.0.0-beta.310

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 (473) hide show
  1. package/CHANGELOG.md +2361 -0
  2. package/_check.sh +1 -1
  3. package/dist/CUPS.d.ts +29 -10
  4. package/dist/CUPS.d.ts.map +1 -1
  5. package/dist/CUPS.js +35 -14
  6. package/dist/ClusterCosmos.d.ts +64 -0
  7. package/dist/ClusterCosmos.d.ts.map +1 -0
  8. package/dist/ClusterCosmos.js +547 -0
  9. package/dist/ClusterServiceBus.d.ts +67 -0
  10. package/dist/ClusterServiceBus.d.ts.map +1 -0
  11. package/dist/ClusterServiceBus.js +82 -0
  12. package/dist/ContextProvider.d.ts +34 -0
  13. package/dist/ContextProvider.d.ts.map +1 -0
  14. package/dist/ContextProvider.js +40 -0
  15. package/dist/Emailer/Sendgrid.d.ts +110 -146
  16. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  17. package/dist/Emailer/Sendgrid.js +24 -19
  18. package/dist/Emailer/fake.d.ts +1 -1
  19. package/dist/Emailer/fake.d.ts.map +1 -1
  20. package/dist/Emailer/fake.js +4 -4
  21. package/dist/MainFiberSet.d.ts +12 -8
  22. package/dist/MainFiberSet.d.ts.map +1 -1
  23. package/dist/MainFiberSet.js +23 -7
  24. package/dist/QueueMaker/errors.d.ts +4 -2
  25. package/dist/QueueMaker/errors.d.ts.map +1 -1
  26. package/dist/QueueMaker/errors.js +4 -2
  27. package/dist/{adapters/SQL → SQL}/Model.d.ts +31 -42
  28. package/dist/SQL/Model.d.ts.map +1 -0
  29. package/dist/SQL/Model.js +469 -0
  30. package/dist/SQL.d.ts.map +1 -0
  31. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  32. package/dist/Store/Cosmos/query.d.ts +14 -3
  33. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  34. package/dist/Store/Cosmos/query.js +179 -41
  35. package/dist/Store/Cosmos.d.ts +2 -2
  36. package/dist/Store/Cosmos.d.ts.map +1 -1
  37. package/dist/Store/Cosmos.js +385 -254
  38. package/dist/Store/Disk.d.ts +4 -4
  39. package/dist/Store/Disk.d.ts.map +1 -1
  40. package/dist/Store/Disk.js +79 -39
  41. package/dist/Store/Memory.d.ts +5 -9
  42. package/dist/Store/Memory.d.ts.map +1 -1
  43. package/dist/Store/Memory.js +324 -67
  44. package/dist/Store/SQL/Pg.d.ts +4 -0
  45. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  46. package/dist/Store/SQL/Pg.js +253 -0
  47. package/dist/Store/SQL/query.d.ts +49 -0
  48. package/dist/Store/SQL/query.d.ts.map +1 -0
  49. package/dist/Store/SQL/query.js +527 -0
  50. package/dist/Store/SQL.d.ts +21 -0
  51. package/dist/Store/SQL.d.ts.map +1 -0
  52. package/dist/Store/SQL.js +472 -0
  53. package/dist/Store/codeFilter.d.ts +4 -4
  54. package/dist/Store/codeFilter.d.ts.map +1 -1
  55. package/dist/Store/codeFilter.js +6 -4
  56. package/dist/Store/index.d.ts +6 -4
  57. package/dist/Store/index.d.ts.map +1 -1
  58. package/dist/Store/index.js +18 -5
  59. package/dist/Store/utils.d.ts +5 -2
  60. package/dist/Store/utils.d.ts.map +1 -1
  61. package/dist/Store/utils.js +9 -5
  62. package/dist/WorkflowEngineCosmos.d.ts +29 -0
  63. package/dist/WorkflowEngineCosmos.d.ts.map +1 -0
  64. package/dist/WorkflowEngineCosmos.js +542 -0
  65. package/dist/WorkflowEngineSqlite.d.ts +24 -0
  66. package/dist/WorkflowEngineSqlite.d.ts.map +1 -0
  67. package/dist/WorkflowEngineSqlite.js +550 -0
  68. package/dist/arbs.d.ts +1 -1
  69. package/dist/arbs.d.ts.map +1 -1
  70. package/dist/arbs.js +5 -3
  71. package/dist/codec.d.ts.map +1 -0
  72. package/dist/codec.js +5 -0
  73. package/dist/{adapters/cosmos-client.d.ts → cosmos-client.d.ts} +4 -2
  74. package/dist/cosmos-client.d.ts.map +1 -0
  75. package/dist/cosmos-client.js +11 -0
  76. package/dist/errorReporter.d.ts +6 -4
  77. package/dist/errorReporter.d.ts.map +1 -1
  78. package/dist/errorReporter.js +23 -27
  79. package/dist/fileUtil.d.ts +1 -1
  80. package/dist/fileUtil.d.ts.map +1 -1
  81. package/dist/fileUtil.js +2 -2
  82. package/dist/index.d.ts +2 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +3 -2
  85. package/dist/internal/RequestContextMiddleware.d.ts +5 -0
  86. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  87. package/dist/internal/RequestContextMiddleware.js +45 -0
  88. package/dist/internal/auth.d.ts +53 -0
  89. package/dist/internal/auth.d.ts.map +1 -0
  90. package/dist/internal/auth.js +180 -0
  91. package/dist/internal/events.d.ts +11 -0
  92. package/dist/internal/events.d.ts.map +1 -0
  93. package/dist/internal/events.js +49 -0
  94. package/dist/internal/health.d.ts.map +1 -0
  95. package/dist/internal/health.js +5 -0
  96. package/dist/{api/layerUtils.d.ts → layerUtils.d.ts} +14 -6
  97. package/dist/layerUtils.d.ts.map +1 -0
  98. package/dist/layerUtils.js +17 -0
  99. package/dist/logger/jsonLogger.d.ts +1 -1
  100. package/dist/logger/jsonLogger.d.ts.map +1 -1
  101. package/dist/logger/jsonLogger.js +5 -3
  102. package/dist/logger/logFmtLogger.d.ts +1 -1
  103. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  104. package/dist/logger/logFmtLogger.js +3 -3
  105. package/dist/logger/shared.d.ts +2 -2
  106. package/dist/logger/shared.d.ts.map +1 -1
  107. package/dist/logger/shared.js +5 -5
  108. package/dist/logger.d.ts.map +1 -1
  109. package/dist/middlewares.d.ts.map +1 -0
  110. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  111. package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +3 -2
  112. package/dist/mongo-client.d.ts.map +1 -0
  113. package/dist/mongo-client.js +15 -0
  114. package/dist/otel.d.ts +75 -0
  115. package/dist/otel.d.ts.map +1 -0
  116. package/dist/otel.js +84 -0
  117. package/dist/rateLimit.d.ts +11 -3
  118. package/dist/rateLimit.d.ts.map +1 -1
  119. package/dist/rateLimit.js +7 -12
  120. package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +5 -2
  121. package/dist/redis-client.d.ts.map +1 -0
  122. package/dist/redis-client.js +98 -0
  123. package/dist/{api/reportError.d.ts → reportError.d.ts} +1 -1
  124. package/dist/reportError.d.ts.map +1 -0
  125. package/dist/reportError.js +28 -0
  126. package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +4 -3
  127. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  128. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  129. package/dist/routing/middleware/middleware.d.ts +48 -0
  130. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  131. package/dist/routing/middleware/middleware.js +152 -0
  132. package/dist/{api/routing → routing}/middleware.d.ts +0 -1
  133. package/dist/routing/middleware.d.ts.map +1 -0
  134. package/dist/{api/routing → routing}/middleware.js +1 -2
  135. package/dist/routing/schema/jwt.d.ts.map +1 -0
  136. package/dist/routing/schema/jwt.js +13 -0
  137. package/dist/routing/tsort.d.ts.map +1 -0
  138. package/dist/routing/tsort.js +51 -0
  139. package/dist/{api/routing → routing}/utils.d.ts +3 -3
  140. package/dist/routing/utils.d.ts.map +1 -0
  141. package/dist/routing/utils.js +45 -0
  142. package/dist/routing.d.ts +182 -0
  143. package/dist/routing.d.ts.map +1 -0
  144. package/dist/routing.js +256 -0
  145. package/dist/test.d.ts +2 -2
  146. package/dist/test.d.ts.map +1 -1
  147. package/dist/test.js +2 -2
  148. package/dist/util.d.ts.map +1 -0
  149. package/dist/util.js +14 -0
  150. package/docs/cluster-storage.md +26 -0
  151. package/docs/workflow-engine.md +262 -0
  152. package/examples/query.ts +47 -39
  153. package/package.json +38 -352
  154. package/src/CUPS.ts +53 -14
  155. package/src/ClusterCosmos.ts +1118 -0
  156. package/src/ClusterServiceBus.ts +242 -0
  157. package/src/{api/ContextProvider.ts → ContextProvider.ts} +20 -17
  158. package/src/Emailer/Sendgrid.ts +83 -60
  159. package/src/Emailer/fake.ts +4 -4
  160. package/src/MainFiberSet.ts +32 -13
  161. package/src/QueueMaker/errors.ts +3 -1
  162. package/src/{adapters/SQL → SQL}/Model.ts +42 -41
  163. package/src/SQL.ts +1 -0
  164. package/src/Store/Cosmos/query.ts +218 -54
  165. package/src/Store/Cosmos.ts +529 -365
  166. package/src/Store/Disk.ts +112 -70
  167. package/src/Store/Memory.ts +365 -99
  168. package/src/Store/SQL/Pg.ts +389 -0
  169. package/src/Store/SQL/query.ts +603 -0
  170. package/src/Store/SQL.ts +766 -0
  171. package/src/Store/codeFilter.ts +8 -6
  172. package/src/Store/index.ts +25 -10
  173. package/src/Store/utils.ts +32 -25
  174. package/src/WorkflowEngineCosmos.ts +749 -0
  175. package/src/WorkflowEngineSqlite.ts +813 -0
  176. package/src/arbs.ts +5 -3
  177. package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +5 -3
  178. package/src/errorReporter.ts +68 -78
  179. package/src/fileUtil.ts +1 -1
  180. package/src/index.ts +2 -1
  181. package/src/{api/internal → internal}/RequestContextMiddleware.ts +23 -6
  182. package/src/internal/auth.ts +272 -0
  183. package/src/{api/internal → internal}/events.ts +22 -13
  184. package/src/{api/layerUtils.ts → layerUtils.ts} +14 -10
  185. package/src/logger/jsonLogger.ts +5 -3
  186. package/src/logger/logFmtLogger.ts +3 -3
  187. package/src/logger/shared.ts +5 -4
  188. package/src/middlewares.ts +10 -0
  189. package/src/{adapters/mongo-client.ts → mongo-client.ts} +4 -2
  190. package/src/otel.ts +177 -0
  191. package/src/rateLimit.ts +34 -23
  192. package/src/{adapters/redis-client.ts → redis-client.ts} +7 -3
  193. package/src/{api/reportError.ts → reportError.ts} +3 -2
  194. package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +5 -4
  195. package/src/routing/middleware/middleware.ts +196 -0
  196. package/src/routing/middleware.ts +4 -0
  197. package/src/{api/routing → routing}/schema/jwt.ts +2 -1
  198. package/src/{api/routing → routing}/utils.ts +2 -1
  199. package/src/routing.ts +823 -0
  200. package/src/test.ts +4 -4
  201. package/src/vitest.ts +1 -1
  202. package/test/auth.test.ts +101 -0
  203. package/test/cluster-cosmos.test.ts +612 -0
  204. package/test/cluster-servicebus.test.ts +180 -0
  205. package/test/cluster-sqlite.test.ts +205 -0
  206. package/test/contextProvider.test.ts +15 -12
  207. package/test/controller.test.ts +28 -32
  208. package/test/cosmos-query.test.ts +228 -0
  209. package/test/dist/auth.test.d.ts.map +1 -0
  210. package/test/dist/cluster-cosmos.test.d.ts.map +1 -0
  211. package/test/dist/cluster-servicebus.test.d.ts.map +1 -0
  212. package/test/dist/cluster-sqlite.test.d.ts.map +1 -0
  213. package/test/dist/contextProvider.test.d.ts.map +1 -1
  214. package/test/dist/controller.test.d.ts.map +1 -1
  215. package/test/dist/cosmos-query.test.d.ts.map +1 -0
  216. package/test/dist/fixtures.d.ts +29 -11
  217. package/test/dist/fixtures.d.ts.map +1 -1
  218. package/test/dist/fixtures.js +17 -10
  219. package/test/dist/query.test.d.ts.map +1 -1
  220. package/test/dist/rawQuery.test.d.ts.map +1 -1
  221. package/test/dist/repository-ext.test.d.ts.map +1 -0
  222. package/test/dist/requires.test.d.ts.map +1 -1
  223. package/test/dist/router-generator.test.d.ts.map +1 -0
  224. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  225. package/test/dist/rpc-context-map-streaming.test.d.ts.map +1 -0
  226. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  227. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  228. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  229. package/test/dist/sql-store.test.d.ts.map +1 -0
  230. package/test/dist/workflow-engine-cosmos.test.d.ts.map +1 -0
  231. package/test/dist/workflow-engine-sqlite.test.d.ts.map +1 -0
  232. package/test/fixtures.ts +16 -9
  233. package/test/layerUtils.test.ts +2 -2
  234. package/test/query.test.ts +1130 -41
  235. package/test/rawQuery.test.ts +340 -22
  236. package/test/repository-ext.test.ts +426 -0
  237. package/test/requires.test.ts +10 -5
  238. package/test/router-generator.test.ts +187 -0
  239. package/test/routing-interruptibility.test.ts +66 -0
  240. package/test/rpc-context-map-streaming.test.ts +262 -0
  241. package/test/rpc-e2e-invalidation.test.ts +418 -0
  242. package/test/rpc-multi-middleware.test.ts +85 -10
  243. package/test/rpc-stream-fullstack.test.ts +304 -0
  244. package/test/sql-store.test.ts +1711 -0
  245. package/test/validateSample.test.ts +26 -14
  246. package/test/workflow-engine-cosmos.test.ts +345 -0
  247. package/test/workflow-engine-sqlite.test.ts +297 -0
  248. package/tsconfig.examples.json +1 -1
  249. package/tsconfig.json +9 -2
  250. package/tsconfig.src.json +35 -35
  251. package/tsconfig.test.json +2 -2
  252. package/dist/Emailer/service.d.ts +0 -55
  253. package/dist/Emailer/service.d.ts.map +0 -1
  254. package/dist/Emailer/service.js +0 -6
  255. package/dist/Emailer.d.ts +0 -2
  256. package/dist/Emailer.d.ts.map +0 -1
  257. package/dist/Emailer.js +0 -2
  258. package/dist/Model/Repository/ext.d.ts +0 -41
  259. package/dist/Model/Repository/ext.d.ts.map +0 -1
  260. package/dist/Model/Repository/ext.js +0 -65
  261. package/dist/Model/Repository/internal/internal.d.ts +0 -59
  262. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  263. package/dist/Model/Repository/internal/internal.js +0 -316
  264. package/dist/Model/Repository/legacy.d.ts +0 -19
  265. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  266. package/dist/Model/Repository/legacy.js +0 -2
  267. package/dist/Model/Repository/makeRepo.d.ts +0 -49
  268. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  269. package/dist/Model/Repository/makeRepo.js +0 -24
  270. package/dist/Model/Repository/service.d.ts +0 -89
  271. package/dist/Model/Repository/service.d.ts.map +0 -1
  272. package/dist/Model/Repository/service.js +0 -2
  273. package/dist/Model/Repository/validation.d.ts +0 -42
  274. package/dist/Model/Repository/validation.d.ts.map +0 -1
  275. package/dist/Model/Repository/validation.js +0 -32
  276. package/dist/Model/Repository.d.ts +0 -6
  277. package/dist/Model/Repository.d.ts.map +0 -1
  278. package/dist/Model/Repository.js +0 -6
  279. package/dist/Model/dsl.d.ts +0 -32
  280. package/dist/Model/dsl.d.ts.map +0 -1
  281. package/dist/Model/dsl.js +0 -44
  282. package/dist/Model/filter/filterApi.d.ts +0 -30
  283. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  284. package/dist/Model/filter/filterApi.js +0 -2
  285. package/dist/Model/filter/types/errors.d.ts +0 -29
  286. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  287. package/dist/Model/filter/types/errors.js +0 -2
  288. package/dist/Model/filter/types/fields.d.ts +0 -15
  289. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  290. package/dist/Model/filter/types/fields.js +0 -2
  291. package/dist/Model/filter/types/path/common.d.ts +0 -316
  292. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  293. package/dist/Model/filter/types/path/common.js +0 -2
  294. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  295. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  296. package/dist/Model/filter/types/path/eager.js +0 -31
  297. package/dist/Model/filter/types/path/index.d.ts +0 -4
  298. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  299. package/dist/Model/filter/types/path/index.js +0 -3
  300. package/dist/Model/filter/types/utils.d.ts +0 -79
  301. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  302. package/dist/Model/filter/types/utils.js +0 -2
  303. package/dist/Model/filter/types/validator.d.ts +0 -30
  304. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  305. package/dist/Model/filter/types/validator.js +0 -2
  306. package/dist/Model/filter/types.d.ts +0 -5
  307. package/dist/Model/filter/types.d.ts.map +0 -1
  308. package/dist/Model/filter/types.js +0 -7
  309. package/dist/Model/query/dsl.d.ts +0 -248
  310. package/dist/Model/query/dsl.d.ts.map +0 -1
  311. package/dist/Model/query/dsl.js +0 -104
  312. package/dist/Model/query/new-kid-interpreter.d.ts +0 -28
  313. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  314. package/dist/Model/query/new-kid-interpreter.js +0 -165
  315. package/dist/Model/query.d.ts +0 -15
  316. package/dist/Model/query.d.ts.map +0 -1
  317. package/dist/Model/query.js +0 -3
  318. package/dist/Model.d.ts +0 -4
  319. package/dist/Model.d.ts.map +0 -1
  320. package/dist/Model.js +0 -4
  321. package/dist/Operations.d.ts +0 -55
  322. package/dist/Operations.d.ts.map +0 -1
  323. package/dist/Operations.js +0 -102
  324. package/dist/OperationsRepo.d.ts +0 -41
  325. package/dist/OperationsRepo.d.ts.map +0 -1
  326. package/dist/OperationsRepo.js +0 -14
  327. package/dist/QueueMaker/SQLQueue.d.ts +0 -16
  328. package/dist/QueueMaker/SQLQueue.d.ts.map +0 -1
  329. package/dist/QueueMaker/SQLQueue.js +0 -130
  330. package/dist/QueueMaker/memQueue.d.ts +0 -11
  331. package/dist/QueueMaker/memQueue.d.ts.map +0 -1
  332. package/dist/QueueMaker/memQueue.js +0 -76
  333. package/dist/QueueMaker/sbqueue.d.ts +0 -12
  334. package/dist/QueueMaker/sbqueue.d.ts.map +0 -1
  335. package/dist/QueueMaker/sbqueue.js +0 -91
  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/RequestFiberSet.d.ts +0 -36
  343. package/dist/RequestFiberSet.d.ts.map +0 -1
  344. package/dist/RequestFiberSet.js +0 -78
  345. package/dist/Store/ContextMapContainer.d.ts +0 -14
  346. package/dist/Store/ContextMapContainer.d.ts.map +0 -1
  347. package/dist/Store/ContextMapContainer.js +0 -16
  348. package/dist/Store/service.d.ts +0 -108
  349. package/dist/Store/service.d.ts.map +0 -1
  350. package/dist/Store/service.js +0 -71
  351. package/dist/Store.d.ts +0 -2
  352. package/dist/Store.d.ts.map +0 -1
  353. package/dist/Store.js +0 -2
  354. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  355. package/dist/adapters/SQL/Model.js +0 -478
  356. package/dist/adapters/SQL.d.ts.map +0 -1
  357. package/dist/adapters/ServiceBus.d.ts +0 -58
  358. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  359. package/dist/adapters/ServiceBus.js +0 -99
  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.map +0 -1
  372. package/dist/adapters/mongo-client.js +0 -13
  373. package/dist/adapters/redis-client.d.ts.map +0 -1
  374. package/dist/adapters/redis-client.js +0 -94
  375. package/dist/api/ContextProvider.d.ts +0 -31
  376. package/dist/api/ContextProvider.d.ts.map +0 -1
  377. package/dist/api/ContextProvider.js +0 -38
  378. package/dist/api/codec.d.ts.map +0 -1
  379. package/dist/api/codec.js +0 -5
  380. package/dist/api/internal/RequestContextMiddleware.d.ts +0 -5
  381. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  382. package/dist/api/internal/RequestContextMiddleware.js +0 -35
  383. package/dist/api/internal/auth.d.ts +0 -15
  384. package/dist/api/internal/auth.d.ts.map +0 -1
  385. package/dist/api/internal/auth.js +0 -47
  386. package/dist/api/internal/events.d.ts +0 -9
  387. package/dist/api/internal/events.d.ts.map +0 -1
  388. package/dist/api/internal/events.js +0 -42
  389. package/dist/api/internal/health.d.ts.map +0 -1
  390. package/dist/api/internal/health.js +0 -5
  391. package/dist/api/layerUtils.d.ts.map +0 -1
  392. package/dist/api/layerUtils.js +0 -16
  393. package/dist/api/middlewares.d.ts.map +0 -1
  394. package/dist/api/reportError.d.ts.map +0 -1
  395. package/dist/api/reportError.js +0 -27
  396. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  397. package/dist/api/routing/middleware/middleware.d.ts +0 -9
  398. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  399. package/dist/api/routing/middleware/middleware.js +0 -92
  400. package/dist/api/routing/middleware.d.ts.map +0 -1
  401. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  402. package/dist/api/routing/schema/jwt.js +0 -12
  403. package/dist/api/routing/tsort.d.ts.map +0 -1
  404. package/dist/api/routing/tsort.js +0 -51
  405. package/dist/api/routing/utils.d.ts.map +0 -1
  406. package/dist/api/routing/utils.js +0 -44
  407. package/dist/api/routing.d.ts +0 -138
  408. package/dist/api/routing.d.ts.map +0 -1
  409. package/dist/api/routing.js +0 -166
  410. package/dist/api/setupRequest.d.ts +0 -12
  411. package/dist/api/setupRequest.d.ts.map +0 -1
  412. package/dist/api/setupRequest.js +0 -44
  413. package/dist/api/util.d.ts.map +0 -1
  414. package/dist/api/util.js +0 -14
  415. package/eslint.config.mjs +0 -24
  416. package/src/Emailer/service.ts +0 -52
  417. package/src/Emailer.ts +0 -1
  418. package/src/Model/Repository/ext.ts +0 -283
  419. package/src/Model/Repository/internal/internal.ts +0 -577
  420. package/src/Model/Repository/legacy.ts +0 -27
  421. package/src/Model/Repository/makeRepo.ts +0 -139
  422. package/src/Model/Repository/service.ts +0 -627
  423. package/src/Model/Repository/validation.ts +0 -31
  424. package/src/Model/Repository.ts +0 -5
  425. package/src/Model/dsl.ts +0 -128
  426. package/src/Model/filter/filterApi.ts +0 -60
  427. package/src/Model/filter/types/errors.ts +0 -47
  428. package/src/Model/filter/types/fields.ts +0 -50
  429. package/src/Model/filter/types/path/common.ts +0 -404
  430. package/src/Model/filter/types/path/eager.ts +0 -298
  431. package/src/Model/filter/types/path/index.ts +0 -4
  432. package/src/Model/filter/types/utils.ts +0 -128
  433. package/src/Model/filter/types/validator.ts +0 -46
  434. package/src/Model/filter/types.ts +0 -6
  435. package/src/Model/query/dsl.ts +0 -2110
  436. package/src/Model/query/new-kid-interpreter.ts +0 -210
  437. package/src/Model/query.ts +0 -13
  438. package/src/Model.ts +0 -3
  439. package/src/Operations.ts +0 -235
  440. package/src/OperationsRepo.ts +0 -16
  441. package/src/QueueMaker/SQLQueue.ts +0 -189
  442. package/src/QueueMaker/memQueue.ts +0 -130
  443. package/src/QueueMaker/sbqueue.ts +0 -137
  444. package/src/QueueMaker/service.ts +0 -17
  445. package/src/RequestContext.ts +0 -63
  446. package/src/RequestFiberSet.ts +0 -105
  447. package/src/Store/ContextMapContainer.ts +0 -20
  448. package/src/Store/index.test.ts.bak +0 -112
  449. package/src/Store/service.ts +0 -184
  450. package/src/Store.ts +0 -1
  451. package/src/adapters/SQL.ts +0 -1
  452. package/src/adapters/ServiceBus.ts +0 -209
  453. package/src/adapters/index.ts +0 -0
  454. package/src/adapters/logger.ts +0 -3
  455. package/src/adapters/memQueue.ts +0 -21
  456. package/src/api/internal/auth.ts +0 -68
  457. package/src/api/middlewares.ts +0 -10
  458. package/src/api/routing/middleware/middleware.ts +0 -128
  459. package/src/api/routing/middleware.ts +0 -6
  460. package/src/api/routing.ts +0 -598
  461. package/src/api/setupRequest.ts +0 -84
  462. package/tsconfig.json.bak +0 -12
  463. /package/dist/{adapters/SQL.d.ts → SQL.d.ts} +0 -0
  464. /package/dist/{api/codec.d.ts → codec.d.ts} +0 -0
  465. /package/dist/{api/internal → internal}/health.d.ts +0 -0
  466. /package/dist/{api/middlewares.d.ts → middlewares.d.ts} +0 -0
  467. /package/dist/{api/routing → routing}/schema/jwt.d.ts +0 -0
  468. /package/dist/{api/routing → routing}/tsort.d.ts +0 -0
  469. /package/dist/{api/util.d.ts → util.d.ts} +0 -0
  470. /package/src/{api/codec.ts → codec.ts} +0 -0
  471. /package/src/{api/internal → internal}/health.ts +0 -0
  472. /package/src/{api/routing → routing}/tsort.ts +0 -0
  473. /package/src/{api/util.ts → util.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"SQLQueue.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/SQLQueue.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sCAAsC,CAAA;AAEhF,OAAO,EAAE,MAAM,EAA6C,CAAC,EAAU,MAAM,YAAY,CAAA;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAI/C,eAAO,MAAM,OAAO;;aAAoC,CAAA;AACxD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAGzC,wBAAgB,YAAY,CAC1B,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS,EAET,SAAS,EAAE,iBAAiB,EAC5B,cAAc,EAAE,iBAAiB,EACjC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAC1B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,uEAoK1C"}
@@ -1,130 +0,0 @@
1
- import { getRequestContext, setupRequestContextWithCustomSpan } from "@effect-app/infra/api/setupRequest";
2
- import { reportNonInterruptedFailure } from "@effect-app/infra/QueueMaker/errors";
3
- import { QueueMeta } from "@effect-app/infra/QueueMaker/service";
4
- import { subMinutes } from "date-fns";
5
- import { Effect, Fiber, Option, S, Tracer } from "effect-app";
6
- import { pretty } from "effect-app/utils";
7
- import { SqlClient } from "effect/unstable/sql";
8
- import { SQLModel } from "../adapters/SQL.js";
9
- import { InfraLogger } from "../logger.js";
10
- export const QueueId = S.Number.pipe(S.brand("QueueId"));
11
- // TODO: let the model track and Auto Generate versionColumn on every update instead
12
- export function makeSQLQueue(queueName, queueDrainName, schema, drainSchema) {
13
- return Effect.gen(function* () {
14
- const base = {
15
- id: SQLModel.Generated(QueueId),
16
- meta: SQLModel.JsonFromString(QueueMeta),
17
- name: S.NonEmptyString255,
18
- createdAt: SQLModel.DateTimeInsert,
19
- updatedAt: SQLModel.DateTimeUpdate,
20
- // TODO: at+owner
21
- processingAt: SQLModel.FieldOption(S.Date),
22
- finishedAt: SQLModel.FieldOption(S.Date),
23
- etag: S.String // TODO: use a SQLModel thing that auto updates it?
24
- // TODO: record locking.. / optimistic locking
25
- // rowVersion: SQLModel.DateTimeFromNumberWithNow
26
- };
27
- class Queue extends SQLModel.Class("Queue")({
28
- body: SQLModel.JsonFromString(schema),
29
- ...base
30
- }) {
31
- }
32
- class Drain extends SQLModel.Class("Drain")({
33
- body: SQLModel.JsonFromString(drainSchema),
34
- ...base
35
- }) {
36
- }
37
- const sql = yield* SqlClient.SqlClient;
38
- const queueRepo = yield* SQLModel.makeRepository(Queue, {
39
- tableName: "queue",
40
- spanPrefix: "QueueRepo",
41
- idColumn: "id",
42
- versionColumn: "etag"
43
- });
44
- const drainRepo = yield* SQLModel.makeRepository(Drain, {
45
- tableName: "queue",
46
- spanPrefix: "DrainRepo",
47
- idColumn: "id",
48
- versionColumn: "etag"
49
- });
50
- const decodeDrain = S.decodeEffect(Drain);
51
- const drain = Effect
52
- .sync(() => subMinutes(new Date(), 15))
53
- .pipe(Effect
54
- .andThen((limit) => sql `SELECT *
55
- FROM queue
56
- WHERE name = ${queueDrainName} AND finishedAt IS NULL AND (processingAt IS NULL OR processingAt < ${limit.getTime()})
57
- LIMIT 1`));
58
- const q = {
59
- offer: Effect.fnUntraced(function* (body, meta) {
60
- yield* queueRepo.insertVoid({
61
- body,
62
- meta,
63
- name: queueName,
64
- processingAt: Option.none(),
65
- finishedAt: Option.none(),
66
- etag: crypto.randomUUID()
67
- });
68
- }),
69
- take: Effect.gen(function* () {
70
- while (true) {
71
- const [first] = yield* drain.pipe(Effect.withTracerEnabled(false)); // disable sql tracer otherwise we spam it..
72
- if (first) {
73
- const dec = yield* decodeDrain(first);
74
- const { createdAt, updatedAt, ...rest } = dec;
75
- return yield* drainRepo.update({ ...rest, processingAt: Option.some(new Date()) } // auto in lib , etag: crypto.randomUUID()
76
- );
77
- }
78
- if (first)
79
- return first;
80
- yield* Effect.sleep(250);
81
- }
82
- }),
83
- finish: ({ createdAt, updatedAt, ...q }) => drainRepo.updateVoid({ ...q, finishedAt: Option.some(new Date()) }) // auto in lib , etag: crypto.randomUUID()
84
- };
85
- const queue = {
86
- publish: (...messages) => getRequestContext
87
- .pipe(Effect.flatMap((requestContext) => Effect
88
- .forEach(messages, (m) => q.offer(m, requestContext), {
89
- discard: true
90
- })), Effect.withSpan("queue.publish: " + queueName, {
91
- kind: "producer",
92
- attributes: { "message_tags": messages.map((_) => _._tag) }
93
- }, { captureStackTrace: false })),
94
- drain: (handleEvent, sessionId) => {
95
- const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
96
- const processMessage = (msg) => Effect
97
- .succeed(msg)
98
- .pipe(Effect
99
- .flatMap(({ body, meta }) => {
100
- let effect = InfraLogger
101
- .logDebug(`[${queueDrainName}] Processing incoming message`)
102
- .pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.andThen(handleEvent(body)), silenceAndReportError, (_) => setupRequestContextWithCustomSpan(_, meta, `queue.drain: ${queueDrainName}.${body._tag}`, {
103
- captureStackTrace: false,
104
- kind: "consumer",
105
- attributes: {
106
- "queue.name": queueDrainName,
107
- "queue.sessionId": sessionId,
108
- "queue.input": body
109
- }
110
- }));
111
- if (meta.span) {
112
- effect = Effect.withParentSpan(effect, Tracer.externalSpan(meta.span));
113
- }
114
- return effect;
115
- }));
116
- return q
117
- .take
118
- .pipe(Effect.flatMap((x) => processMessage(x).pipe(Effect.uninterruptible, Effect.forkChild, Effect.flatMap(Fiber.join), Effect.tap(q.finish(x)))), silenceAndReportError, Effect.withSpan(`queue.drain: ${queueDrainName}`, {
119
- attributes: {
120
- "queue.type": "sql",
121
- "queue.name": queueDrainName,
122
- "queue.sessionId": sessionId
123
- }
124
- }), Effect.forever);
125
- }
126
- };
127
- return queue;
128
- });
129
- }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUXVldWVNYWtlci9TUUxRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN6RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUNqRixPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQThCLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXpGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFMUMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUd4RCxvRkFBb0Y7QUFDcEYsTUFBTSxVQUFVLFlBQVksQ0FNMUIsU0FBNEIsRUFDNUIsY0FBaUMsRUFDakMsTUFBMEIsRUFDMUIsV0FBeUM7SUFFekMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDeEMs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
@@ -1,11 +0,0 @@
1
- import { Effect, S } from "effect-app";
2
- import { MemQueue } from "../adapters/memQueue.js";
3
- import { type QueueBase } from "./service.js";
4
- export declare function makeMemQueue<Evt extends {
5
- id: S.StringId;
6
- _tag: string;
7
- }, DrainEvt extends {
8
- id: S.StringId;
9
- _tag: string;
10
- }, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Codec<Evt, EvtE>, drainSchema: S.Codec<DrainEvt, DrainEvtE>): Effect.Effect<QueueBase<Evt, DrainEvt>, never, MemQueue>;
11
- //# sourceMappingURL=memQueue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/memQueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA2C,CAAC,EAAE,MAAM,YAAY,CAAA;AAG/E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAIlD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,cAAc,CAAA;AAExD,wBAAgB,YAAY,CAC1B,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS,EAET,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAC1B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,4DA8G1C"}
@@ -1,76 +0,0 @@
1
- import { Cause, Tracer } from "effect";
2
- import { Effect, Fiber, flow, S } from "effect-app";
3
- import { pretty } from "effect-app/utils";
4
- import * as Q from "effect/Queue";
5
- import { MemQueue } from "../adapters/memQueue.js";
6
- import { getRequestContext, setupRequestContextWithCustomSpan } from "../api/setupRequest.js";
7
- import { InfraLogger } from "../logger.js";
8
- import { reportNonInterruptedFailure, reportNonInterruptedFailureCause } from "./errors.js";
9
- import { QueueMeta } from "./service.js";
10
- export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
11
- return Effect.gen(function* () {
12
- const mem = yield* MemQueue;
13
- const q = yield* mem.getOrCreateQueue(queueName);
14
- const qDrain = yield* mem.getOrCreateQueue(queueDrainName);
15
- const wireSchema = S.Struct({ body: schema, meta: QueueMeta });
16
- const wireSchemaJson = S.fromJsonString(wireSchema);
17
- const encodePublish = S.encodeEffect(wireSchemaJson);
18
- const drainW = S.Struct({ body: drainSchema, meta: QueueMeta });
19
- const drainWJson = S.fromJsonString(drainW);
20
- const parseDrain = flow(S.decodeUnknownEffect(drainWJson), Effect.orDie);
21
- const queue = {
22
- publish: (...messages) => getRequestContext
23
- .pipe(Effect.flatMap((requestContext) => Effect
24
- .forEach(messages, (m) =>
25
- // we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
26
- encodePublish({ body: m, meta: requestContext }).pipe(Effect.orDie,
27
- // .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
28
- Effect.flatMap((_) => Q.offer(q, _))), { discard: true })), Effect.withSpan("queue.publish: " + queueName, {
29
- kind: "producer",
30
- attributes: { "message_tags": messages.map((_) => _._tag) }
31
- }, { captureStackTrace: false })),
32
- drain: (handleEvent, sessionId) => {
33
- const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
34
- const reportError = reportNonInterruptedFailureCause({ name: "MemQueue.drain." + queueDrainName });
35
- const processMessage = (msg) =>
36
- // we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
37
- parseDrain(msg).pipe(Effect.orDie, Effect
38
- .flatMap(({ body, meta }) => {
39
- let effect = InfraLogger
40
- .logDebug(`[${queueDrainName}] Processing incoming message`)
41
- .pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.andThen(handleEvent(body)), silenceAndReportError, (_) => setupRequestContextWithCustomSpan(_, meta, `queue.drain: ${queueDrainName}.${body._tag}`, {
42
- captureStackTrace: false,
43
- kind: "consumer",
44
- attributes: {
45
- "queue.name": queueDrainName,
46
- "queue.sessionId": sessionId,
47
- "queue.input": body
48
- }
49
- }));
50
- if (meta.span) {
51
- effect = Effect.withParentSpan(effect, Tracer.externalSpan(meta.span));
52
- }
53
- return effect;
54
- }));
55
- return Q
56
- .take(qDrain)
57
- .pipe(Effect
58
- .flatMap((x) => processMessage(x).pipe(Effect.uninterruptible, Effect.forkChild, Effect.flatMap(Fiber.join),
59
- // normally a failed item would be returned to the queue and retried up to X times.
60
- Effect.flatMap((_) => _._tag === "Failure" && !Cause.hasInterruptsOnly(_.cause)
61
- ? Q.offer(qDrain, x).pipe(
62
- // TODO: retry count tracking and max retries.
63
- Effect.delay("5 seconds"), Effect.tapCause(reportError), Effect.forkDetach)
64
- : Effect.void))), silenceAndReportError, Effect.withSpan(`queue.drain: ${queueDrainName}`, {
65
- attributes: {
66
- "queue.type": "mem",
67
- "queue.name": queueDrainName,
68
- "queue.sessionId": sessionId
69
- }
70
- }), Effect.forever);
71
- }
72
- };
73
- return queue;
74
- });
75
- }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUXVldWVNYWtlci9tZW1RdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQThCLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxLQUFLLENBQUMsTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzNGLE9BQU8sRUFBa0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXhELE1BQU0sVUFBVSxZQUFZLENBTTFCLFNBQWlCLEVBQ2pCLGNBQXNCLEVBQ3RCLE1BQTBCLEVBQzFCLFdBQXlDO0lBRXpDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFBO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNoRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUE7UUFFMUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FB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
@@ -1,12 +0,0 @@
1
- import { Effect, S } from "effect-app";
2
- import type { StringId } from "effect-app/Schema";
3
- import { Receiver, Sender } from "../adapters/ServiceBus.js";
4
- import { type QueueBase } from "./service.js";
5
- export declare function makeServiceBusQueue<Evt extends {
6
- id: StringId;
7
- _tag: string;
8
- }, DrainEvt extends {
9
- id: StringId;
10
- _tag: string;
11
- }, EvtE, DrainEvtE>(schema: S.Codec<Evt, EvtE>, drainSchema: S.Codec<DrainEvt, DrainEvtE>): Effect.Effect<QueueBase<Evt, DrainEvt>, never, Sender | Receiver>;
12
- //# sourceMappingURL=sbqueue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/sbqueue.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAAoC,CAAC,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAI5D,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,cAAc,CAAA;AAExD,wBAAgB,mBAAmB,CACjC,GAAG,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/C,IAAI,EACJ,SAAS,EAET,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAC1B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,qEAuH1C"}
@@ -1,91 +0,0 @@
1
- import { Tracer } from "effect";
2
- import { Cause, Effect, flow, S } from "effect-app";
3
- import { pretty } from "effect-app/utils";
4
- import { Receiver, Sender } from "../adapters/ServiceBus.js";
5
- import { getRequestContext, setupRequestContextWithCustomSpan } from "../api/setupRequest.js";
6
- import { InfraLogger } from "../logger.js";
7
- import { reportNonInterruptedFailure, reportNonInterruptedFailureCause, reportQueueError } from "./errors.js";
8
- import { QueueMeta } from "./service.js";
9
- export function makeServiceBusQueue(schema, drainSchema) {
10
- const wireSchema = S.Struct({
11
- body: schema,
12
- meta: QueueMeta
13
- });
14
- const wireSchemaJson = S.fromJsonString(wireSchema);
15
- const encodePublish = S.encodeEffect(wireSchemaJson);
16
- const drainW = S.Struct({ body: drainSchema, meta: QueueMeta });
17
- const drainWJson = S.fromJsonString(drainW);
18
- const parseDrain = flow(S.decodeUnknownEffect(drainWJson), Effect.orDie);
19
- return Effect.gen(function* () {
20
- const sender = yield* Sender;
21
- const receiver = yield* Receiver;
22
- const silenceAndReportError = reportNonInterruptedFailure({ name: receiver.name });
23
- const reportError = reportNonInterruptedFailureCause({ name: receiver.name });
24
- // TODO: or do async?
25
- // This will make sure that the host receives the error (MainFiberSet.join), who will then interrupt everything and commence a shutdown and restart of app
26
- // const deferred = yield* Deferred.make<never, ServiceBusError | Error>()
27
- const queue = {
28
- drain: (handleEvent, sessionId) => {
29
- function processMessage(messageBody) {
30
- return parseDrain(messageBody).pipe(Effect.orDie, Effect
31
- .flatMap(({ body, meta }) => {
32
- let effect = InfraLogger
33
- .logDebug(`[${receiver.name}] Processing incoming message`)
34
- .pipe(Effect.annotateLogs({
35
- body: pretty(body),
36
- meta: pretty(meta)
37
- }), Effect.andThen(handleEvent(body)), Effect.orDie)
38
- // we silenceAndReportError here, so that the error is reported, and moves into the Exit.
39
- .pipe(silenceAndReportError, (_) => setupRequestContextWithCustomSpan(_, meta, `queue.drain: ${receiver.name}${sessionId ? `#${sessionId}` : ""}.${body._tag}`, {
40
- captureStackTrace: false,
41
- kind: "consumer",
42
- attributes: {
43
- "queue.name": receiver.name,
44
- "queue.sessionId": sessionId,
45
- "queue.input": body
46
- }
47
- }));
48
- if (meta.span) {
49
- effect = Effect.withParentSpan(effect, Tracer.externalSpan(meta.span));
50
- }
51
- return effect;
52
- }), Effect
53
- // we reportError here, so that we report the error only, and keep flowing
54
- .tapCause(reportError),
55
- // we still need to flatten the Exit.
56
- Effect.flatMap((_) => _));
57
- }
58
- return receiver
59
- .subscribe({
60
- processMessage: (x) => processMessage(x.body).pipe(Effect.uninterruptible),
61
- processError: (err) => reportQueueError(Cause.fail(err.error))
62
- // Deferred.completeWith(
63
- // deferred,
64
- // reportFatalQueueError(Cause.fail(err.error))
65
- // .pipe(Effect.andThen(Effect.fail(err.error)))
66
- // )
67
- }, sessionId)
68
- // .pipe(Effect.andThen(Deferred.await(deferred).pipe(Effect.orDie))),
69
- .pipe(Effect.andThen(Effect.never));
70
- },
71
- publish: (...messages) => getRequestContext
72
- .pipe(Effect.flatMap((requestContext) => Effect
73
- .forEach(messages, (m) => encodePublish({
74
- body: m,
75
- meta: requestContext
76
- })
77
- .pipe(Effect.orDie, Effect.map((body) => ({
78
- body,
79
- messageId: m.id, /* correllationid: requestId */
80
- contentType: "application/json",
81
- sessionId: "sessionId" in m ? m.sessionId : undefined // TODO: optional
82
- }))))
83
- .pipe(Effect.flatMap((msgs) => sender.sendMessages(msgs)))), Effect.withSpan("queue.publish: " + sender.name, {
84
- kind: "producer",
85
- attributes: { "message_tags": messages.map((_) => _._tag) }
86
- }, { captureStackTrace: false }))
87
- };
88
- return queue;
89
- });
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9RdWV1ZU1ha2VyL3NicXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQThCLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUM3RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUM3RyxPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RCxNQUFNLFVBQVUsbUJBQW1CLENBTWpDLE1BQTBCLEVBQzFCLFdBQXlDO0lBRXpDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUE7SUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ25ELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDcEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFDL0QsTUFBTSxVQUFV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
@@ -1,11 +0,0 @@
1
- import type { Effect, NonEmptyReadonlyArray, Scope } from "effect-app";
2
- import { RequestContext } from "../RequestContext.js";
3
- export interface QueueBase<Evt, DrainEvt> {
4
- drain: <DrainE, DrainR>(makeHandleEvent: (ks: DrainEvt) => Effect.Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, Scope.Scope | DrainR>;
5
- publish: (...messages: NonEmptyReadonlyArray<Evt>) => Effect.Effect<void>;
6
- }
7
- export interface QueueMakerOps {
8
- }
9
- export declare const QueueMaker: QueueMakerOps;
10
- export declare const QueueMeta: typeof RequestContext;
11
- //# sourceMappingURL=service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,QAAQ;IACtC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EACpB,eAAe,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EACtE,SAAS,CAAC,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;IACtD,OAAO,EAAE,CACP,GAAG,QAAQ,EAAE,qBAAqB,CAAC,GAAG,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,MAAM,WAAW,aAAa;CAAG;AACjC,eAAO,MAAM,UAAU,EAAE,aAAkB,CAAA;AAE3C,eAAO,MAAM,SAAS,uBAAiB,CAAA"}
@@ -1,4 +0,0 @@
1
- import { RequestContext } from "../RequestContext.js";
2
- export const QueueMaker = {};
3
- export const QueueMeta = RequestContext;
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9RdWV1ZU1ha2VyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBYXJELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBa0IsRUFBRSxDQUFBO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUEifQ==
@@ -1,63 +0,0 @@
1
- import { S, ServiceMap } from "effect-app";
2
- export declare const Locale: S.Literals<["en", "de"]> & {
3
- changeDefault: <A extends "en" | "de">(a: A) => S.Literals<["en", "de"]> & {
4
- Default: A;
5
- withDefault: S.withConstructorDefault<S.Literals<["en", "de"]> & S.WithoutConstructorDefault>;
6
- };
7
- Default: "en";
8
- withDefault: S.withConstructorDefault<S.Literals<["en", "de"]> & S.WithoutConstructorDefault>;
9
- };
10
- export type Locale = typeof Locale.Type;
11
- declare const LocaleRef_base: ServiceMap.Reference<"en" | "de">;
12
- export declare class LocaleRef extends LocaleRef_base {
13
- }
14
- declare const RequestContext_base: S.EnhancedClass<RequestContext, S.Struct<{
15
- span: S.Struct<{
16
- readonly traceId: S.String;
17
- readonly spanId: S.String;
18
- readonly sampled: import("effect/Schema").Boolean & {
19
- withDefault: S.withConstructorDefault<import("effect/Schema").Boolean & S.WithoutConstructorDefault>;
20
- };
21
- }>;
22
- name: S.WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">;
23
- locale: S.Literals<["en", "de"]> & {
24
- changeDefault: <A extends "en" | "de">(a: A) => S.Literals<["en", "de"]> & {
25
- Default: A;
26
- withDefault: S.withConstructorDefault<S.Literals<["en", "de"]> & S.WithoutConstructorDefault>;
27
- };
28
- Default: "en";
29
- withDefault: S.withConstructorDefault<S.Literals<["en", "de"]> & S.WithoutConstructorDefault>;
30
- };
31
- sourceId: S.optional<S.WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">>;
32
- namespace: S.WithDefaults<S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">> & S.brand<S.String, "NonEmptyString" | "NonEmptyString64k" | "NonEmptyString2k" | "NonEmptyString255">;
33
- /** @deprecated */
34
- userProfile: S.optional<S.Struct<{
35
- readonly sub: S.WithDefaults<S.Codec<string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand, string, never, never> & {
36
- make: () => string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand;
37
- withDefault: S.withConstructorDefault<S.Codec<string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand, string, never, never> & S.WithoutConstructorDefault>;
38
- } & S.WithDefaults<S.Codec<string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand, string, never, never>>> & S.Codec<string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand, string, never, never> & {
39
- make: () => string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand;
40
- withDefault: S.withConstructorDefault<S.Codec<string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand, string, never, never> & S.WithoutConstructorDefault>;
41
- } & S.WithDefaults<S.Codec<string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand, string, never, never>>;
42
- }>>;
43
- }>, {}>;
44
- export declare class RequestContext extends RequestContext_base {
45
- static toMonitoring(this: void, self: RequestContext): {
46
- operationName: string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">;
47
- locale: "en" | "de";
48
- };
49
- }
50
- export declare const spanAttributes: (ctx: Pick<RequestContext, "locale" | "namespace"> & Partial<RequestContext>) => {
51
- "request.user.sub"?: string & S.StringIdBrand & import("effect-app/ids").UserProfileIdBrand;
52
- "request.user.roles"?: unknown;
53
- "request.source.id"?: string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">;
54
- "request.name": (string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">) | undefined;
55
- "request.locale": "en" | "de";
56
- "request.namespace": string & S.B.Brand<"NonEmptyString"> & S.B.Brand<"NonEmptyString64k"> & S.B.Brand<"NonEmptyString2k"> & S.B.Brand<"NonEmptyString255">;
57
- };
58
- export declare namespace RequestContext {
59
- interface Encoded extends S.Struct.Encoded<typeof RequestContext["fields"]> {
60
- }
61
- }
62
- export {};
63
- //# sourceMappingURL=RequestContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../src/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAI1C,eAAO,MAAM,MAAM;;;;;;;CAAwB,CAAA;AAC3C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;;AAEvC,qBAAa,SAAU,SAAQ,cAAoE;CAAG;;;;;;;;;;;;;;;;;;;;IAepG,kBAAkB;;;;;;;;;;;AAbpB,qBAAa,cAAe,SAAQ,mBAelC;IAGA,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc;;;;CAMrD;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;CAgBxG,CAAA;AAKF,yBAAiB,cAAc,CAAC;IAC9B,UAAiB,OAAQ,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;KAAG;CACtF"}
@@ -1,49 +0,0 @@
1
- import { S, ServiceMap } from "effect-app";
2
- import { UserProfileId } from "effect-app/ids";
3
- import { NonEmptyString255 } from "effect-app/Schema";
4
- export const Locale = S.Literal("en", "de");
5
- export class LocaleRef extends ServiceMap.Reference("Locale", { defaultValue: () => "en" }) {
6
- }
7
- export class RequestContext extends S.ExtendedClass("RequestContext")({
8
- span: S.Struct({
9
- traceId: S.String,
10
- spanId: S.String,
11
- sampled: S.Boolean
12
- }),
13
- name: NonEmptyString255,
14
- locale: Locale,
15
- sourceId: S.optional(NonEmptyString255), // TODO?
16
- namespace: NonEmptyString255,
17
- /** @deprecated */
18
- userProfile: S.optional(S.Struct({ sub: UserProfileId })) //
19
- }) {
20
- // static Tag = ServiceMap.Tag<RequestContext>()
21
- static toMonitoring(self) {
22
- return {
23
- operationName: self.name,
24
- locale: self.locale
25
- };
26
- }
27
- }
28
- export const spanAttributes = (ctx) => ({
29
- "request.name": ctx.name,
30
- "request.locale": ctx.locale,
31
- "request.namespace": ctx.namespace,
32
- ...ctx.sourceId ? { "request.source.id": ctx.sourceId } : {},
33
- ...(ctx.userProfile?.sub
34
- ? {
35
- "request.user.sub": ctx
36
- .userProfile
37
- .sub,
38
- "request.user.roles": "roles" in ctx
39
- .userProfile
40
- ? ctx.userProfile.roles
41
- : undefined
42
- }
43
- : {})
44
- });
45
- /* eslint-enable */
46
- //
47
- // codegen:end
48
- //
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxdWVzdENvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVxdWVzdENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXJELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUczQyxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLEdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0NBQUc7QUFFdEcsTUFBTSxPQUFPLGNBQWUsU0FBUSxDQUFDLENBQUMsYUFBYSxDQUdqRCxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ2pCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87S0FDbkIsQ0FBQztJQUNGLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsTUFBTSxFQUFFLE1BQU07SUFDZCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVE7SUFDakQsU0FBUyxFQUFFLGlCQUFpQjtJQUM1QixrQkFBa0I7SUFDbEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtDQUM3RCxDQUFDO0lBQ0EsZ0RBQWdEO0lBRWhELE1BQU0sQ0FBQyxZQUFZLENBQWEsSUFBb0I7UUFDbEQsT0FBTztZQUNMLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQTJFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUcsY0FBYyxFQUFFLEdBQUcsQ0FBQyxJQUFJO0lBQ3hCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxNQUFNO0lBQzVCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxTQUFTO0lBQ2xDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDNUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRztRQUN0QixDQUFDLENBQUM7WUFDQSxrQkFBa0IsRUFBRSxHQUFHO2lCQUNwQixXQUFXO2lCQUNYLEdBQUc7WUFDTixvQkFBb0IsRUFBRSxPQUFPLElBQUksR0FBRztpQkFDL0IsV0FBVztnQkFDZCxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLO2dCQUN2QixDQUFDLENBQUMsU0FBUztTQUNkO1FBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUNSLENBQUMsQ0FBQTtBQVFGLG1CQUFtQjtBQUNuQixFQUFFO0FBQ0YsY0FBYztBQUNkLEVBQUUifQ==
@@ -1,36 +0,0 @@
1
- import { Effect, Fiber, Layer, ServiceMap } from "effect-app";
2
- export declare const setRootParentSpan: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
3
- declare const RequestFiberSet_base: ServiceMap.ServiceClass<RequestFiberSet, "RequestFiberSet", {
4
- interrupt: Effect.Effect<void, never, never>;
5
- join: Effect.Effect<void, any, never>;
6
- run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
7
- add: (...fibers: Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
8
- addAll: (fibers: readonly Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
9
- register: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
10
- forkDaemonReport: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
11
- forkDaemonReportUnexpected: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
12
- }> & {
13
- readonly make: Effect.Effect<{
14
- interrupt: Effect.Effect<void, never, never>;
15
- join: Effect.Effect<void, any, never>;
16
- run: <R, XE extends any, XA extends any>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
17
- add: (...fibers: Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
18
- addAll: (fibers: readonly Fiber.Fiber<any, any>[]) => Effect.Effect<void, never, never>;
19
- register: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
20
- forkDaemonReport: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
21
- forkDaemonReportUnexpected: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, R>;
22
- }, never, import("effect/Scope").Scope>;
23
- };
24
- /**
25
- * Whenever you fork a fiber for a Request, and you want to prevent dependent services to close prematurely on interruption,
26
- * like the ServiceBus Sender, you should register these fibers in this FiberSet.
27
- */
28
- export declare class RequestFiberSet extends RequestFiberSet_base {
29
- static readonly Live: Layer.Layer<RequestFiberSet, never, never>;
30
- static readonly register: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, RequestFiberSet | R>;
31
- static readonly run: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, RequestFiberSet | R>;
32
- static readonly forkDaemonReport: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, RequestFiberSet | R>;
33
- static readonly forkDaemonReportUnexpected: <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<A, E>, never, RequestFiberSet | R>;
34
- }
35
- export {};
36
- //# sourceMappingURL=RequestFiberSet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RequestFiberSet.d.ts","sourceRoot":"","sources":["../src/RequestFiberSet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAU,UAAU,EAAe,MAAM,YAAY,CAAA;AAe5F,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2BAC4B,CAAA;;;;;qBAIzE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;qBAEvB,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;eAOtC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;uBAuB7B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iCAgB3B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;;yBAhDjD,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;yBAEvB,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;mBAOtC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;2BAuB7B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qCAgB3B,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;AAqB3E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAAkE;IACrG,MAAM,CAAC,QAAQ,CAAC,IAAI,6CAAgC;IACpD,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,8CACF;IAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kEACF;IAC1D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kEACF;IACvE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,kEACF;CAClF"}