@effect-app/infra 4.0.0-beta.19 → 4.0.0-beta.190

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 (300) hide show
  1. package/CHANGELOG.md +1277 -0
  2. package/_check.sh +1 -1
  3. package/dist/CUPS.d.ts +15 -7
  4. package/dist/CUPS.d.ts.map +1 -1
  5. package/dist/CUPS.js +10 -12
  6. package/dist/Emailer/Sendgrid.d.ts +14 -14
  7. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  8. package/dist/Emailer/Sendgrid.js +16 -15
  9. package/dist/Emailer/fake.d.ts +1 -1
  10. package/dist/Emailer/service.d.ts +9 -3
  11. package/dist/Emailer/service.d.ts.map +1 -1
  12. package/dist/Emailer/service.js +3 -3
  13. package/dist/Emailer.d.ts +1 -1
  14. package/dist/MainFiberSet.d.ts +5 -5
  15. package/dist/MainFiberSet.d.ts.map +1 -1
  16. package/dist/MainFiberSet.js +3 -3
  17. package/dist/Model/Repository/Registry.d.ts +20 -0
  18. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  19. package/dist/Model/Repository/Registry.js +17 -0
  20. package/dist/Model/Repository/ext.d.ts +33 -15
  21. package/dist/Model/Repository/ext.d.ts.map +1 -1
  22. package/dist/Model/Repository/ext.js +54 -2
  23. package/dist/Model/Repository/internal/internal.d.ts +6 -6
  24. package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
  25. package/dist/Model/Repository/internal/internal.js +43 -32
  26. package/dist/Model/Repository/legacy.d.ts +1 -1
  27. package/dist/Model/Repository/makeRepo.d.ts +7 -6
  28. package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
  29. package/dist/Model/Repository/makeRepo.js +5 -1
  30. package/dist/Model/Repository/service.d.ts +28 -23
  31. package/dist/Model/Repository/service.d.ts.map +1 -1
  32. package/dist/Model/Repository/validation.d.ts +142 -17
  33. package/dist/Model/Repository/validation.d.ts.map +1 -1
  34. package/dist/Model/Repository/validation.js +5 -5
  35. package/dist/Model/Repository.d.ts +2 -1
  36. package/dist/Model/Repository.d.ts.map +1 -1
  37. package/dist/Model/Repository.js +2 -1
  38. package/dist/Model/dsl.d.ts +4 -4
  39. package/dist/Model/dsl.d.ts.map +1 -1
  40. package/dist/Model/filter/filterApi.d.ts +5 -5
  41. package/dist/Model/filter/filterApi.d.ts.map +1 -1
  42. package/dist/Model/filter/types/errors.d.ts +1 -1
  43. package/dist/Model/filter/types/fields.d.ts +1 -1
  44. package/dist/Model/filter/types/path/common.d.ts +1 -1
  45. package/dist/Model/filter/types/path/eager.d.ts +1 -1
  46. package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
  47. package/dist/Model/filter/types/path/index.d.ts +1 -1
  48. package/dist/Model/filter/types/utils.d.ts +1 -1
  49. package/dist/Model/filter/types/validator.d.ts +1 -1
  50. package/dist/Model/filter/types.d.ts +1 -1
  51. package/dist/Model/query/dsl.d.ts +1 -1
  52. package/dist/Model/query/dsl.d.ts.map +1 -1
  53. package/dist/Model/query/new-kid-interpreter.d.ts +6 -6
  54. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
  55. package/dist/Model/query/new-kid-interpreter.js +3 -3
  56. package/dist/Model/query.d.ts +1 -1
  57. package/dist/Model.d.ts +2 -1
  58. package/dist/Model.d.ts.map +1 -1
  59. package/dist/Model.js +2 -1
  60. package/dist/Operations.d.ts +6 -6
  61. package/dist/Operations.d.ts.map +1 -1
  62. package/dist/Operations.js +56 -59
  63. package/dist/OperationsRepo.d.ts +11 -29
  64. package/dist/OperationsRepo.d.ts.map +1 -1
  65. package/dist/OperationsRepo.js +3 -3
  66. package/dist/QueueMaker/SQLQueue.d.ts +5 -7
  67. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  68. package/dist/QueueMaker/SQLQueue.js +105 -114
  69. package/dist/QueueMaker/errors.d.ts +2 -2
  70. package/dist/QueueMaker/errors.d.ts.map +1 -1
  71. package/dist/QueueMaker/memQueue.d.ts +7 -4
  72. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  73. package/dist/QueueMaker/memQueue.js +51 -62
  74. package/dist/QueueMaker/sbqueue.d.ts +6 -3
  75. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  76. package/dist/QueueMaker/sbqueue.js +37 -53
  77. package/dist/QueueMaker/service.d.ts +1 -1
  78. package/dist/RequestContext.d.ts +114 -26
  79. package/dist/RequestContext.d.ts.map +1 -1
  80. package/dist/RequestContext.js +7 -7
  81. package/dist/RequestFiberSet.d.ts +7 -7
  82. package/dist/RequestFiberSet.d.ts.map +1 -1
  83. package/dist/RequestFiberSet.js +5 -5
  84. package/dist/Store/ContextMapContainer.d.ts +19 -3
  85. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  86. package/dist/Store/ContextMapContainer.js +13 -3
  87. package/dist/Store/Cosmos/query.d.ts +1 -1
  88. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  89. package/dist/Store/Cosmos/query.js +8 -10
  90. package/dist/Store/Cosmos.d.ts +1 -1
  91. package/dist/Store/Cosmos.d.ts.map +1 -1
  92. package/dist/Store/Cosmos.js +308 -242
  93. package/dist/Store/Disk.d.ts +2 -2
  94. package/dist/Store/Disk.d.ts.map +1 -1
  95. package/dist/Store/Disk.js +25 -22
  96. package/dist/Store/Memory.d.ts +4 -4
  97. package/dist/Store/Memory.d.ts.map +1 -1
  98. package/dist/Store/Memory.js +27 -22
  99. package/dist/Store/SQL/Pg.d.ts +4 -0
  100. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  101. package/dist/Store/SQL/Pg.js +189 -0
  102. package/dist/Store/SQL/query.d.ts +38 -0
  103. package/dist/Store/SQL/query.d.ts.map +1 -0
  104. package/dist/Store/SQL/query.js +367 -0
  105. package/dist/Store/SQL.d.ts +20 -0
  106. package/dist/Store/SQL.d.ts.map +1 -0
  107. package/dist/Store/SQL.js +381 -0
  108. package/dist/Store/codeFilter.d.ts +1 -1
  109. package/dist/Store/codeFilter.d.ts.map +1 -1
  110. package/dist/Store/codeFilter.js +2 -1
  111. package/dist/Store/index.d.ts +5 -2
  112. package/dist/Store/index.d.ts.map +1 -1
  113. package/dist/Store/index.js +15 -3
  114. package/dist/Store/service.d.ts +17 -6
  115. package/dist/Store/service.d.ts.map +1 -1
  116. package/dist/Store/service.js +24 -6
  117. package/dist/Store/utils.d.ts +1 -1
  118. package/dist/Store/utils.d.ts.map +1 -1
  119. package/dist/Store/utils.js +3 -4
  120. package/dist/Store.d.ts +1 -1
  121. package/dist/adapters/SQL/Model.d.ts +28 -42
  122. package/dist/adapters/SQL/Model.d.ts.map +1 -1
  123. package/dist/adapters/SQL/Model.js +2 -2
  124. package/dist/adapters/SQL.d.ts +1 -1
  125. package/dist/adapters/ServiceBus.d.ts +9 -9
  126. package/dist/adapters/ServiceBus.d.ts.map +1 -1
  127. package/dist/adapters/ServiceBus.js +13 -15
  128. package/dist/adapters/cosmos-client.d.ts +3 -3
  129. package/dist/adapters/cosmos-client.d.ts.map +1 -1
  130. package/dist/adapters/cosmos-client.js +3 -3
  131. package/dist/adapters/index.d.ts +8 -2
  132. package/dist/adapters/index.d.ts.map +1 -1
  133. package/dist/adapters/index.js +8 -2
  134. package/dist/adapters/logger.d.ts +1 -1
  135. package/dist/adapters/logger.d.ts.map +1 -1
  136. package/dist/adapters/memQueue.d.ts +3 -3
  137. package/dist/adapters/memQueue.d.ts.map +1 -1
  138. package/dist/adapters/memQueue.js +3 -3
  139. package/dist/adapters/mongo-client.d.ts +3 -3
  140. package/dist/adapters/mongo-client.d.ts.map +1 -1
  141. package/dist/adapters/mongo-client.js +3 -3
  142. package/dist/adapters/redis-client.d.ts +3 -3
  143. package/dist/adapters/redis-client.d.ts.map +1 -1
  144. package/dist/adapters/redis-client.js +3 -3
  145. package/dist/api/ContextProvider.d.ts +7 -7
  146. package/dist/api/ContextProvider.d.ts.map +1 -1
  147. package/dist/api/ContextProvider.js +6 -6
  148. package/dist/api/codec.d.ts +1 -1
  149. package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
  150. package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
  151. package/dist/api/internal/RequestContextMiddleware.js +2 -2
  152. package/dist/api/internal/auth.d.ts +44 -6
  153. package/dist/api/internal/auth.d.ts.map +1 -1
  154. package/dist/api/internal/auth.js +160 -29
  155. package/dist/api/internal/events.d.ts +3 -3
  156. package/dist/api/internal/events.d.ts.map +1 -1
  157. package/dist/api/internal/events.js +9 -7
  158. package/dist/api/internal/health.d.ts +1 -1
  159. package/dist/api/layerUtils.d.ts +6 -6
  160. package/dist/api/layerUtils.d.ts.map +1 -1
  161. package/dist/api/layerUtils.js +5 -5
  162. package/dist/api/middlewares.d.ts +1 -1
  163. package/dist/api/reportError.d.ts +1 -1
  164. package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
  165. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  166. package/dist/api/routing/middleware/middleware.d.ts +50 -4
  167. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  168. package/dist/api/routing/middleware/middleware.js +75 -17
  169. package/dist/api/routing/middleware.d.ts +1 -2
  170. package/dist/api/routing/middleware.d.ts.map +1 -1
  171. package/dist/api/routing/middleware.js +1 -2
  172. package/dist/api/routing/schema/jwt.d.ts +1 -1
  173. package/dist/api/routing/schema/jwt.d.ts.map +1 -1
  174. package/dist/api/routing/tsort.d.ts +1 -1
  175. package/dist/api/routing/tsort.d.ts.map +1 -1
  176. package/dist/api/routing/utils.d.ts +3 -3
  177. package/dist/api/routing/utils.d.ts.map +1 -1
  178. package/dist/api/routing.d.ts +26 -18
  179. package/dist/api/routing.d.ts.map +1 -1
  180. package/dist/api/routing.js +70 -11
  181. package/dist/api/setupRequest.d.ts +8 -5
  182. package/dist/api/setupRequest.d.ts.map +1 -1
  183. package/dist/api/setupRequest.js +12 -7
  184. package/dist/api/util.d.ts +1 -1
  185. package/dist/arbs.d.ts +1 -1
  186. package/dist/arbs.d.ts.map +1 -1
  187. package/dist/arbs.js +5 -3
  188. package/dist/errorReporter.d.ts +4 -4
  189. package/dist/errorReporter.d.ts.map +1 -1
  190. package/dist/errorReporter.js +20 -25
  191. package/dist/errors.d.ts +1 -1
  192. package/dist/fileUtil.d.ts +1 -1
  193. package/dist/fileUtil.d.ts.map +1 -1
  194. package/dist/index.d.ts +1 -1
  195. package/dist/logger/jsonLogger.d.ts +1 -1
  196. package/dist/logger/logFmtLogger.d.ts +1 -1
  197. package/dist/logger/shared.d.ts +1 -1
  198. package/dist/logger/shared.js +2 -2
  199. package/dist/logger.d.ts +1 -1
  200. package/dist/logger.d.ts.map +1 -1
  201. package/dist/rateLimit.d.ts +9 -3
  202. package/dist/rateLimit.d.ts.map +1 -1
  203. package/dist/rateLimit.js +5 -11
  204. package/dist/test.d.ts +1 -1
  205. package/dist/test.d.ts.map +1 -1
  206. package/dist/vitest.d.ts +1 -1
  207. package/eslint.config.mjs +3 -3
  208. package/examples/query.ts +39 -35
  209. package/package.json +42 -36
  210. package/src/CUPS.ts +9 -11
  211. package/src/Emailer/Sendgrid.ts +17 -14
  212. package/src/Emailer/service.ts +8 -2
  213. package/src/MainFiberSet.ts +3 -3
  214. package/src/Model/Repository/Registry.ts +33 -0
  215. package/src/Model/Repository/ext.ts +93 -6
  216. package/src/Model/Repository/internal/internal.ts +97 -88
  217. package/src/Model/Repository/makeRepo.ts +12 -10
  218. package/src/Model/Repository/service.ts +31 -22
  219. package/src/Model/Repository/validation.ts +4 -4
  220. package/src/Model/Repository.ts +1 -0
  221. package/src/Model/dsl.ts +3 -3
  222. package/src/Model/query/new-kid-interpreter.ts +2 -2
  223. package/src/Model.ts +1 -0
  224. package/src/QueueMaker/SQLQueue.ts +121 -151
  225. package/src/QueueMaker/memQueue.ts +82 -103
  226. package/src/QueueMaker/sbqueue.ts +56 -86
  227. package/src/RequestContext.ts +8 -8
  228. package/src/RequestFiberSet.ts +4 -4
  229. package/src/Store/ContextMapContainer.ts +41 -2
  230. package/src/Store/Cosmos/query.ts +9 -11
  231. package/src/Store/Cosmos.ts +437 -343
  232. package/src/Store/Disk.ts +52 -49
  233. package/src/Store/Memory.ts +54 -48
  234. package/src/Store/SQL/Pg.ts +318 -0
  235. package/src/Store/SQL/query.ts +409 -0
  236. package/src/Store/SQL.ts +668 -0
  237. package/src/Store/codeFilter.ts +1 -0
  238. package/src/Store/index.ts +17 -2
  239. package/src/Store/service.ts +31 -7
  240. package/src/Store/utils.ts +23 -22
  241. package/src/adapters/SQL/Model.ts +10 -4
  242. package/src/adapters/ServiceBus.ts +111 -115
  243. package/src/adapters/cosmos-client.ts +2 -2
  244. package/src/adapters/index.ts +7 -0
  245. package/src/adapters/memQueue.ts +2 -2
  246. package/src/adapters/mongo-client.ts +2 -2
  247. package/src/adapters/redis-client.ts +2 -2
  248. package/src/api/ContextProvider.ts +11 -11
  249. package/src/api/internal/RequestContextMiddleware.ts +1 -1
  250. package/src/api/internal/auth.ts +246 -44
  251. package/src/api/internal/events.ts +12 -8
  252. package/src/api/layerUtils.ts +8 -8
  253. package/src/api/routing/middleware/RouterMiddleware.ts +4 -4
  254. package/src/api/routing/middleware/middleware.ts +109 -15
  255. package/src/api/routing/middleware.ts +0 -2
  256. package/src/api/routing.ts +154 -13
  257. package/src/api/setupRequest.ts +28 -8
  258. package/src/arbs.ts +4 -2
  259. package/src/errorReporter.ts +62 -74
  260. package/src/logger/shared.ts +1 -1
  261. package/src/rateLimit.ts +30 -22
  262. package/test/auth.test.ts +101 -0
  263. package/test/contextProvider.test.ts +11 -11
  264. package/test/controller.test.ts +18 -14
  265. package/test/dist/auth.test.d.ts.map +1 -0
  266. package/test/dist/contextProvider.test.d.ts.map +1 -1
  267. package/test/dist/controller.test.d.ts.map +1 -1
  268. package/test/dist/date-query.test.d.ts.map +1 -0
  269. package/test/dist/fixtures.d.ts +26 -12
  270. package/test/dist/fixtures.d.ts.map +1 -1
  271. package/test/dist/fixtures.js +12 -10
  272. package/test/dist/query.test.d.ts.map +1 -1
  273. package/test/dist/rawQuery.test.d.ts.map +1 -1
  274. package/test/dist/repository-ext.test.d.ts.map +1 -0
  275. package/test/dist/requires.test.d.ts.map +1 -1
  276. package/test/dist/router-generator.test.d.ts.map +1 -0
  277. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  278. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  279. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  280. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  281. package/test/dist/sql-store.test.d.ts.map +1 -0
  282. package/test/fixtures.ts +11 -9
  283. package/test/query.test.ts +216 -34
  284. package/test/rawQuery.test.ts +23 -19
  285. package/test/repository-ext.test.ts +60 -0
  286. package/test/requires.test.ts +6 -6
  287. package/test/router-generator.test.ts +180 -0
  288. package/test/routing-interruptibility.test.ts +63 -0
  289. package/test/rpc-e2e-invalidation.test.ts +507 -0
  290. package/test/rpc-multi-middleware.test.ts +78 -9
  291. package/test/rpc-stream-fullstack.test.ts +181 -0
  292. package/test/sql-store.test.ts +1064 -0
  293. package/test/validateSample.test.ts +15 -12
  294. package/tsconfig.examples.json +1 -1
  295. package/tsconfig.json +0 -1
  296. package/tsconfig.json.bak +2 -2
  297. package/tsconfig.src.json +35 -35
  298. package/tsconfig.test.json +2 -2
  299. package/src/Operations.ts +0 -235
  300. package/src/OperationsRepo.ts +0 -16
@@ -1,6 +1,6 @@
1
1
  import { reportError } from "@effect-app/infra/errorReporter";
2
2
  import { subHours } from "date-fns";
3
- import { Cause, copy, Duration, Effect, Exit, Layer, Option, S, Schedule, ServiceMap } from "effect-app";
3
+ import { Cause, Context, copy, Duration, Effect, Exit, Layer, Option, S, Schedule } from "effect-app";
4
4
  import { annotateLogscoped } from "effect-app/Effect";
5
5
  import { dual, pipe } from "effect-app/Function";
6
6
  import { Operation, OperationFailure, OperationId, OperationSuccess } from "effect-app/Operations";
@@ -17,57 +17,62 @@ const make = Effect.gen(function* () {
17
17
  const repo = yield* OperationsRepo;
18
18
  const reqFiberSet = yield* RequestFiberSet;
19
19
  const makeOp = Effect.sync(() => OperationId.make());
20
+ const addOp = Effect.fnUntraced(function* (id, title) {
21
+ return yield* repo.save(Operation.make({ id, title })).pipe(Effect.orDie);
22
+ });
23
+ const finishOp = Effect.fnUntraced(function* (id, exit) {
24
+ const op = yield* repo.get(id).pipe(Effect.orDie);
25
+ const result = Exit.isSuccess(exit)
26
+ ? OperationSuccess.make({})
27
+ : OperationFailure.make({
28
+ message: Cause.hasInterruptsOnly(exit.cause)
29
+ ? NonEmptyString2k("Interrupted")
30
+ : Cause.hasDies(exit.cause)
31
+ ? NonEmptyString2k("Unknown error")
32
+ : Cause
33
+ .findErrorOption(exit.cause)
34
+ .pipe(Option.flatMap((_) => typeof _ === "object" && _ !== null && "message" in _ && S.is(NonEmptyString2k)(_.message)
35
+ ? Option.some(_.message)
36
+ : Option.none()), Option.getOrNull)
37
+ });
38
+ return yield* repo.save(copy(op, { updatedAt: new Date(), result })).pipe(Effect.orDie);
39
+ });
20
40
  const register = (title) => Effect.tap(makeOp, (id) => Effect.andThen(annotateLogscoped("operationId", id), Effect.acquireRelease(addOp(id, title), (_, exit) => finishOp(id, exit))));
21
- const cleanup = Effect.sync(() => subHours(new Date(), 1)).pipe(Effect.andThen((before) => repo.query(where("updatedAt", "lt", before.toISOString()))), Effect.andThen((ops) => pipe(ops, batch(100, Effect.succeed, (items) => repo.removeAndPublish(items)))), setupRequestContextFromCurrent("Operations.cleanup"));
22
- function addOp(id, title) {
23
- return repo.save(new Operation({ id, title })).pipe(Effect.orDie);
24
- }
25
- function findOp(id) {
26
- return repo.find(id);
27
- }
28
- function finishOp(id, exit) {
29
- return Effect
30
- .flatMap(repo.get(id).pipe(Effect.orDie), (_) => repo
31
- .save(copy(_, {
32
- updatedAt: new Date(),
33
- result: Exit.isSuccess(exit)
34
- ? new OperationSuccess()
35
- : new OperationFailure({
36
- message: Cause.hasInterruptsOnly(exit.cause)
37
- ? NonEmptyString2k("Interrupted")
38
- : Cause.hasDies(exit.cause)
39
- ? NonEmptyString2k("Unknown error")
40
- : Cause
41
- .findErrorOption(exit.cause)
42
- .pipe(Option.flatMap((_) => typeof _ === "object" && _ !== null && "message" in _ && S.is(NonEmptyString2k)(_.message)
43
- ? Option.some(_.message)
44
- : Option.none()), Option.getOrNull)
45
- })
46
- }))
47
- .pipe(Effect.orDie));
48
- }
49
- function update(id, progress) {
50
- return Effect.flatMap(repo.get(id).pipe(Effect.orDie), (_) => repo.save(copy(_, { updatedAt: new Date(), progress })).pipe(Effect.orDie));
51
- }
41
+ const cleanup = Effect
42
+ .gen(function* () {
43
+ const before = subHours(new Date(), 1);
44
+ const ops = yield* repo.query(where("updatedAt", "lt", before.toISOString()));
45
+ return yield* pipe(ops, batch(100, Effect.succeed, (items) => repo.removeAndPublish(items)));
46
+ })
47
+ .pipe(setupRequestContextFromCurrent("Operations.cleanup"));
48
+ const findOp = (id) => repo.find(id);
49
+ const update = Effect.fnUntraced(function* (id, progress) {
50
+ const op = yield* repo.get(id).pipe(Effect.orDie);
51
+ return yield* repo.save(copy(op, { updatedAt: new Date(), progress })).pipe(Effect.orDie);
52
+ });
52
53
  function fork(self, fnc, title) {
53
- return Effect
54
- .flatMap(Scope.make(), (scope) => register(title)
55
- .pipe(Scope.provide(scope), Effect.flatMap((id) => reqFiberSet
56
- .forkDaemonReportUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title, {}, { captureStackTrace: false })), scope))
57
- .pipe(Effect.map((fiber) => ({ fiber, id })))), Effect.tap(({ id }) => Effect.interruptible(fnc(id)).pipe(Effect.forkScoped, Scope.provide(scope)))));
54
+ return Effect.gen(function* () {
55
+ const scope = yield* Scope.make();
56
+ const id = yield* Scope.provide(register(title), scope);
57
+ const fiber = yield* reqFiberSet.forkDaemonReportUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title, {}, { captureStackTrace: false })), scope));
58
+ yield* Scope.provide(Effect.forkScoped(Effect.interruptible(fnc(id))), scope);
59
+ return { fiber, id };
60
+ });
58
61
  }
59
- const fork2 = dual(2, (self, title) => Effect.flatMap(Scope.make(), (scope) => register(title)
60
- .pipe(Scope.provide(scope), Effect
61
- .flatMap((id) => reqFiberSet
62
- .forkDaemonReportUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title, {}, { captureStackTrace: false })), scope))
63
- .pipe(Effect.map((fiber) => ({ fiber, id })))))));
64
- const forkOperation = dual(2, (self, title) => Effect.flatMap(Scope.make(), (scope) => register(title)
65
- .pipe(Scope.provide(scope), Effect
66
- .flatMap((id) => reqFiberSet
67
- .forkDaemonReportUnexpected(Scope.use(self.pipe(Effect.withSpan(title, {}, { captureStackTrace: false })), scope))
68
- .pipe(Effect.map((fiber) => ({ fiber, id })))))));
62
+ const fork2 = dual(2, Effect.fnUntraced(function* (self, title) {
63
+ const scope = yield* Scope.make();
64
+ const id = yield* Scope.provide(register(title), scope);
65
+ const fiber = yield* reqFiberSet.forkDaemonReportUnexpected(Scope.use(self(id).pipe(Effect.withSpan(title, {}, { captureStackTrace: false })), scope));
66
+ return { fiber, id };
67
+ }));
68
+ const forkOperation = dual(2, Effect.fnUntraced(function* (self, title) {
69
+ const scope = yield* Scope.make();
70
+ const id = yield* Scope.provide(register(title), scope);
71
+ const fiber = yield* reqFiberSet.forkDaemonReportUnexpected(Scope.use(self.pipe(Effect.withSpan(title, {}, { captureStackTrace: false })), scope));
72
+ return { fiber, id };
73
+ }));
69
74
  function forkOperationFunction(fnc, title) {
70
- return (inp) => fnc(inp).pipe((_) => forkOperation(_, title));
75
+ return (inp) => forkOperation(fnc(inp), title);
71
76
  }
72
77
  return {
73
78
  cleanup,
@@ -81,17 +86,9 @@ const make = Effect.gen(function* () {
81
86
  update
82
87
  };
83
88
  });
84
- export class Operations extends ServiceMap.Opaque()("effect-app/Operations", { make }) {
89
+ export class Operations extends Context.Opaque()("effect-app/Operations", { make }) {
85
90
  static CleanupLive = this
86
- .use((_) => _.cleanup.pipe(Effect.exit, Effect
87
- .flatMap((_) => {
88
- if (Exit.isSuccess(_)) {
89
- return Effect.void;
90
- }
91
- else {
92
- return reportAppError(_.cause);
93
- }
94
- }), Effect.schedule(Schedule.fixed(Duration.minutes(20))), Effect.map((_) => _), MainFiberSet.run))
91
+ .use((_) => _.cleanup.pipe(Effect.exit, Effect.flatMap((exit) => Exit.isSuccess(exit) ? Effect.void : reportAppError(exit.cause)), Effect.schedule(Schedule.fixed(Duration.minutes(20))), Effect.map((_) => _), MainFiberSet.run))
95
92
  .pipe(Layer.effectDiscard, Layer.provide(MainFiberSet.Live));
96
93
  static Live = this.CleanupLive.pipe(Layer.provideMerge(this.toLayer(this.make)), Layer.provide(RequestFiberSet.Live));
97
94
  static forkOperation = (title) => (self) => this.use((_) => _.forkOperation(self, title));
@@ -99,4 +96,4 @@ export class Operations extends ServiceMap.Opaque()("effect-app/Operations", { m
99
96
  static fork = (self, fnc, title) => this.use((_) => _.fork(self, fnc, title));
100
97
  static fork2 = (title) => (self) => this.use((_) => _.fork2(self, title));
101
98
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9PcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDcEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBMEIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRCxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXRELE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0s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
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9PcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBYyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDakgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBMEIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRCxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXRELE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0s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
@@ -1,41 +1,23 @@
1
- import { Effect, ServiceMap } from "effect-app";
1
+ import { Context, Effect } from "effect-app";
2
2
  import { Operation } from "effect-app/Operations";
3
- declare const OperationsRepo_base: ServiceMap.ServiceClass<OperationsRepo, "OperationRepo", import("./Model/Repository.js").ExtendedRepository<Operation, {
3
+ declare const OperationsRepo_base: Context.ServiceClass<OperationsRepo, "OperationRepo", import("./Model/Repository.js").ExtendedRepository<Operation, {
4
+ readonly createdAt: string;
4
5
  readonly id: string;
6
+ readonly progress?: import("effect-app/Operations").OperationProgress.Encoded | undefined;
7
+ readonly result?: import("effect-app/Operations").OperationSuccess.Encoded | import("effect-app/Operations").OperationFailure.Encoded | undefined;
5
8
  readonly title: string;
6
- readonly createdAt: string;
7
9
  readonly updatedAt: string | null;
8
- readonly result?: ({
9
- readonly _tag: "OperationSuccess";
10
- readonly message: string | null;
11
- } & import("effect-app/Operations").OperationSuccess.Encoded) | ({
12
- readonly _tag: "OperationFailure";
13
- readonly message: string | null;
14
- } & import("effect-app/Operations").OperationFailure.Encoded) | undefined;
15
- readonly progress?: {
16
- readonly total: number;
17
- readonly completed: number;
18
- } | undefined;
19
- }, never, "Operation", "id", never, never>> & {
10
+ }, never, "Operation", "id", never, never, never>> & {
20
11
  readonly make: Effect.Effect<import("./Model/Repository.js").ExtendedRepository<Operation, {
12
+ readonly createdAt: string;
21
13
  readonly id: string;
14
+ readonly progress?: import("effect-app/Operations").OperationProgress.Encoded | undefined;
15
+ readonly result?: import("effect-app/Operations").OperationSuccess.Encoded | import("effect-app/Operations").OperationFailure.Encoded | undefined;
22
16
  readonly title: string;
23
- readonly createdAt: string;
24
17
  readonly updatedAt: string | null;
25
- readonly result?: ({
26
- readonly _tag: "OperationSuccess";
27
- readonly message: string | null;
28
- } & import("effect-app/Operations").OperationSuccess.Encoded) | ({
29
- readonly _tag: "OperationFailure";
30
- readonly message: string | null;
31
- } & import("effect-app/Operations").OperationFailure.Encoded) | undefined;
32
- readonly progress?: {
33
- readonly total: number;
34
- readonly completed: number;
35
- } | undefined;
36
- }, never, "Operation", "id", never, never>, never, import("./Store.js").StoreMaker>;
18
+ }, never, "Operation", "id", never, never, never>, never, import("./Model.js").RepositoryRegistry | import("./Store.js").StoreMaker>;
37
19
  };
38
20
  export declare class OperationsRepo extends OperationsRepo_base {
39
21
  }
40
22
  export {};
41
- //# sourceMappingURL=OperationsRepo.d.ts.map
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uc1JlcG8uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9PcGVyYXRpb25zUmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdqRCxxQkFBYSxjQUFlLFNBQVEsbUJBV25DO0NBQUcifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"OperationsRepo.d.ts","sourceRoot":"","sources":["../src/OperationsRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGjD,qBAAa,cAAe,SAAQ,mBAWnC;CAAG"}
1
+ {"version":3,"file":"OperationsRepo.d.ts","sourceRoot":"","sources":["../src/OperationsRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;;;;;;;;;;;;;;;;;;AAGjD,qBAAa,cAAe,SAAQ,mBAWnC;CAAG"}
@@ -1,7 +1,7 @@
1
- import { Effect, ServiceMap } from "effect-app";
1
+ import { Context, Effect } from "effect-app";
2
2
  import { Operation } from "effect-app/Operations";
3
3
  import { makeRepo } from "./Model.js";
4
- export class OperationsRepo extends ServiceMap.Service()("OperationRepo", {
4
+ export class OperationsRepo extends Context.Service()("OperationRepo", {
5
5
  make: Effect.gen(function* () {
6
6
  return yield* makeRepo("Operation", Operation, {
7
7
  config: {
@@ -11,4 +11,4 @@ export class OperationsRepo extends ServiceMap.Service()("OperationRepo", {
11
11
  })
12
12
  }) {
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uc1JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3BlcmF0aW9uc1JlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVLENBQUMsT0FBTyxFQUFrQixDQUN0RSxlQUFlLEVBQ2Y7SUFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRTtZQUM3QyxNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7YUFDM0I7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDLENBQUM7Q0FDSCxDQUNGO0NBQUcifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uc1JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3BlcmF0aW9uc1JlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsTUFBTSxPQUFPLGNBQWUsU0FBUSxPQUFPLENBQUMsT0FBTyxFQUFrQixDQUNuRSxlQUFlLEVBQ2Y7SUFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRTtZQUM3QyxNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7YUFDM0I7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDLENBQUM7Q0FDSCxDQUNGO0NBQUcifQ==
@@ -1,16 +1,14 @@
1
1
  import { type QueueBase } from "@effect-app/infra/QueueMaker/service";
2
2
  import { Effect, S } from "effect-app";
3
- import type { NonEmptyString255 } from "effect-app/Schema";
3
+ import { type NonEmptyString255 } from "effect-app/Schema";
4
4
  import { SqlClient } from "effect/unstable/sql";
5
- export declare const QueueId: S.brand<import("effect/Schema").Number & {
6
- withDefault: S.withConstructorDefault<import("effect/Schema").Number & S.WithoutConstructorDefault>;
7
- }, "QueueId">;
5
+ export declare const QueueId: S.brand<import("effect/Schema").Finite, "QueueId">;
8
6
  export type QueueId = typeof QueueId.Type;
9
- export declare function makeSQLQueue<Evt extends {
7
+ export declare const makeSQLQueue: <Evt extends {
10
8
  id: S.StringId;
11
9
  _tag: string;
12
10
  }, DrainEvt extends {
13
11
  id: S.StringId;
14
12
  _tag: string;
15
- }, EvtE, DrainEvtE>(queueName: NonEmptyString255, queueDrainName: NonEmptyString255, schema: S.Codec<Evt, EvtE>, drainSchema: S.Codec<DrainEvt, DrainEvtE>): Effect.Effect<QueueBase<Evt, DrainEvt>, never, SqlClient.SqlClient>;
16
- //# sourceMappingURL=SQLQueue.d.ts.map
13
+ }, EvtE, DrainEvtE>(queueName: NonEmptyString255, queueDrainName: NonEmptyString255, schema: S.Codec<Evt, EvtE, never, never>, drainSchema: S.Codec<DrainEvt, DrainEvtE, never, never>) => Effect.Effect<QueueBase<Evt, DrainEvt>, never, SqlClient.SqlClient>;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMUXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9RdWV1ZU1ha2VyL1NRTFF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBYSxNQUFNLHNDQUFzQyxDQUFBO0FBRWhGLE9BQU8sRUFBRSxNQUFNLEVBQTZDLENBQUMsRUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN6RixPQUFPLEVBQUUsS0FBSyxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRTFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUkvQyxlQUFPLE1BQU0sT0FBTyxvREFBb0MsQ0FBQTtBQUN4RCxNQUFNLE1BQU0sT0FBTyxHQUFHLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQTtBQUd6QyxlQUFPLE1BQU0sWUFBWSxHQUN2QixHQUFHLFNBQVM7SUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUFDLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxFQUM1QyxRQUFRLFNBQVM7SUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUFDLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxFQUNqRCxJQUFJLEVBQ0osU0FBUyw0T0EySVQsQ0FBQSJ9
@@ -1 +1 @@
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
+ {"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,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAI/C,eAAO,MAAM,OAAO,oDAAoC,CAAA;AACxD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAGzC,eAAO,MAAM,YAAY,GACvB,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,4OA2IT,CAAA"}
@@ -7,124 +7,115 @@ import { pretty } from "effect-app/utils";
7
7
  import { SqlClient } from "effect/unstable/sql";
8
8
  import { SQLModel } from "../adapters/SQL.js";
9
9
  import { InfraLogger } from "../logger.js";
10
- export const QueueId = S.Number.pipe(S.brand("QueueId"));
10
+ export const QueueId = S.Finite.pipe(S.brand("QueueId"));
11
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 *
12
+ export const makeSQLQueue = Effect.fnUntraced(function* (queueName, queueDrainName, schema, drainSchema) {
13
+ const base = {
14
+ id: SQLModel.Generated(QueueId),
15
+ meta: SQLModel.JsonFromString(QueueMeta),
16
+ name: S.NonEmptyString255,
17
+ createdAt: SQLModel.DateTimeInsert,
18
+ updatedAt: SQLModel.DateTimeUpdate,
19
+ // TODO: at+owner
20
+ processingAt: SQLModel.FieldOption(S.Date),
21
+ finishedAt: SQLModel.FieldOption(S.Date),
22
+ etag: S.String // TODO: use a SQLModel thing that auto updates it?
23
+ // TODO: record locking.. / optimistic locking
24
+ // rowVersion: SQLModel.DateTimeFromNumberWithNow
25
+ };
26
+ class Queue extends SQLModel.Class("Queue")({
27
+ body: SQLModel.JsonFromString(schema),
28
+ ...base
29
+ }) {
30
+ }
31
+ class Drain extends SQLModel.Class("Drain")({
32
+ body: SQLModel.JsonFromString(drainSchema),
33
+ ...base
34
+ }) {
35
+ }
36
+ const sql = yield* SqlClient.SqlClient;
37
+ const queueRepo = yield* SQLModel.makeRepository(Queue, {
38
+ tableName: "queue",
39
+ spanPrefix: "QueueRepo",
40
+ idColumn: "id",
41
+ versionColumn: "etag"
42
+ });
43
+ const drainRepo = yield* SQLModel.makeRepository(Drain, {
44
+ tableName: "queue",
45
+ spanPrefix: "DrainRepo",
46
+ idColumn: "id",
47
+ versionColumn: "etag"
48
+ });
49
+ const decodeDrain = S.decodeEffectConcurrently(Drain);
50
+ const drain = Effect.gen(function* () {
51
+ const limit = subMinutes(new Date(), 15);
52
+ return yield* sql `SELECT *
55
53
  FROM queue
56
54
  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);
55
+ LIMIT 1`;
56
+ });
57
+ const q = {
58
+ offer: Effect.fnUntraced(function* (body, meta) {
59
+ yield* queueRepo.insertVoid(Queue.insert.make({
60
+ body,
61
+ meta,
62
+ name: queueName,
63
+ processingAt: Option.none(),
64
+ finishedAt: Option.none(),
65
+ etag: crypto.randomUUID()
66
+ }));
67
+ }),
68
+ take: Effect.gen(function* () {
69
+ while (true) {
70
+ const [first] = yield* drain.pipe(Effect.withTracerEnabled(false)); // disable sql tracer otherwise we spam it..
71
+ if (first) {
72
+ const dec = yield* decodeDrain(first);
73
+ const { createdAt, updatedAt, ...rest } = dec;
74
+ return yield* drainRepo.update(Drain.update.make({ ...rest, processingAt: Option.some(new Date()) }) // auto in lib , etag: crypto.randomUUID()
75
+ );
81
76
  }
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}`, {
77
+ if (first)
78
+ return first;
79
+ yield* Effect.sleep(250);
80
+ }
81
+ }),
82
+ finish: Effect.fn(function* ({ createdAt, updatedAt, ...q }) {
83
+ return yield* drainRepo.updateVoid(Drain.update.make({ ...q, finishedAt: Option.some(new Date()) })); // auto in lib , etag: crypto.randomUUID()
84
+ })
85
+ };
86
+ const queue = {
87
+ publish: Effect.fn("queue.publish: " + queueName, { kind: "producer" })(function* (...messages) {
88
+ yield* Effect.annotateCurrentSpan({ "message_tags": messages.map((_) => _._tag) });
89
+ const requestContext = yield* getRequestContext;
90
+ yield* Effect.forEach(messages, (m) => q.offer(m, requestContext), { discard: true });
91
+ }),
92
+ drain: (handleEvent, sessionId) => {
93
+ const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
94
+ const processMessage = Effect.fnUntraced(function* ({ body, meta }) {
95
+ let effect = InfraLogger
96
+ .logDebug(`[${queueDrainName}] Processing incoming message`)
97
+ .pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.andThen(handleEvent(body)), silenceAndReportError, (_) => setupRequestContextWithCustomSpan(_, meta, `queue.drain: ${queueDrainName}.${body._tag}`, {
98
+ captureStackTrace: false,
99
+ kind: "consumer",
119
100
  attributes: {
120
- "queue.type": "sql",
121
101
  "queue.name": queueDrainName,
122
- "queue.sessionId": sessionId
102
+ "queue.sessionId": sessionId,
103
+ "queue.input": body
123
104
  }
124
- }), Effect.forever);
125
- }
126
- };
127
- return queue;
128
- });
129
- }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUXVldWVNYWtlci9TUUxRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN6RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUNqRixPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQThCLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXpGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFMUMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUd4RCxvRkFBb0Y7QUFDcEYsTUFBTSxVQUFVLFlBQVksQ0FNMUIsU0FBNEIsRUFDNUIsY0FBaUMsRUFDakMsTUFBMEIsRUFDMUIsV0FBeUM7SUFFekMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7WUFDeEMs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
105
+ }));
106
+ if (meta.span) {
107
+ effect = Effect.withParentSpan(effect, Tracer.externalSpan(meta.span));
108
+ }
109
+ return yield* effect;
110
+ });
111
+ return Effect.fn(`queue.drain: ${queueDrainName}`, {
112
+ attributes: { "queue.type": "sql", "queue.name": queueDrainName, "queue.sessionId": sessionId }
113
+ })(function* () {
114
+ const x = yield* q.take;
115
+ yield* processMessage(x).pipe(Effect.uninterruptible, Effect.forkChild, Effect.flatMap(Fiber.join), Effect.tap(q.finish(x)));
116
+ }, (effect) => effect.pipe(silenceAndReportError, Effect.forever))();
117
+ }
118
+ };
119
+ return queue;
120
+ });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FMUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUXVldWVNYWtlci9TUUxRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN6RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUNqRixPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQThCLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXpGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFMUMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtBQUd4RCxvRkFBb0Y7QUFDcEYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBTXJELFNBQTRCLEVBQzVCLGNBQWlDLEVBQ2pDLE1BQTBCLEVBQzFCLFdBQXlDO0lBRXpDLE1BQU0sSUFBSSxHQUFHO1FBQ1gsRUFBRSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQy9CLElBQUksRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUN4QyxJ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
@@ -1,5 +1,5 @@
1
1
  import { Cause, Effect, Exit } from "effect-app";
2
- export declare const reportQueueError: <E>(cause: Cause.Cause<E>, extras?: Record<string, unknown>) => Effect.Effect<import("effect-app/client/errors").CauseException<unknown> | undefined, never, never>;
2
+ export declare const reportQueueError: <E>(cause: Cause.Cause<E>, extras?: Record<string, unknown>) => Effect.Effect<import("effect-app/client").CauseException<unknown> | undefined, never, never>;
3
3
  export declare function reportNonInterruptedFailure(context?: Record<string, unknown>): <A, E, R>(inp: Effect.Effect<A, E, R>) => Effect.Effect<Exit.Exit<A, E>, never, R>;
4
4
  export declare function reportNonInterruptedFailureCause(context?: Record<string, unknown>): <E>(cause: Cause.Cause<E>) => Effect.Effect<void>;
5
- //# sourceMappingURL=errors.d.ts.map
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUXVldWVNYWtlci9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBSWhELGVBQU8sTUFBTSxnQkFBZ0IsR0FBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxpR0FDekQsQ0FBQTtBQUVsQyx3QkFBZ0IsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFFbkUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQVV4RjtBQUVELHdCQUFnQixnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUN4RSxDQUFDLFNBQVMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQU12RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,wGACzD,CAAA;AAElC,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAEnE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAUxF;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACxE,CAAC,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAMvD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iGACzD,CAAA;AAElC,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAEnE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAUxF;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACxE,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAMvD"}
@@ -1,11 +1,14 @@
1
+ import { Tracer } from "effect";
1
2
  import { Effect, S } from "effect-app";
2
3
  import { MemQueue } from "../adapters/memQueue.js";
3
- import { type QueueBase } from "./service.js";
4
- export declare function makeMemQueue<Evt extends {
4
+ export declare const makeMemQueue: <Evt extends {
5
5
  id: S.StringId;
6
6
  _tag: string;
7
7
  }, DrainEvt extends {
8
8
  id: S.StringId;
9
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
10
+ }, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Codec<Evt, EvtE, never, never>, drainSchema: S.Codec<DrainEvt, DrainEvtE, never, never>) => Effect.Effect<{
11
+ publish: (args_0: Evt, ...args: Evt[]) => Effect.Effect<void, never, never>;
12
+ drain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect.Effect<void, DrainE, DrainR>, sessionId?: string) => Effect.Effect<never, never, Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>>;
13
+ }, never, MemQueue>;
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9RdWV1ZU1ha2VyL21lbVF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUyxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBMkMsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQU1sRCxlQUFPLE1BQU0sWUFBWSxHQUN2QixHQUFHLFNBQVM7SUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUFDLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxFQUM1QyxRQUFRLFNBQVM7SUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUFDLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxFQUNqRCxJQUFJLEVBQ0osU0FBUzs7WUFvQ0MsTUFBTSxFQUFFLE1BQU0sZUFDUCxDQUFDLEVBQUUsRUFBRSxRQUFRLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxjQUN0RCxNQUFNO21CQXdEdEIsQ0FBQSJ9
@@ -1 +1 @@
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
+ {"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../src/QueueMaker/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,MAAM,EAA2C,CAAC,EAAE,MAAM,YAAY,CAAA;AAG/E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAMlD,eAAO,MAAM,YAAY,GACvB,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;;YAoCC,MAAM,EAAE,MAAM,eACP,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,cACtD,MAAM;mBAwDtB,CAAA"}