@effect-app/infra 4.0.0-beta.22 → 4.0.0-beta.220

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 (310) hide show
  1. package/CHANGELOG.md +1640 -0
  2. package/_check.sh +1 -1
  3. package/dist/CUPS.d.ts +7 -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 +10 -4
  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 +9 -9
  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 +103 -51
  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 +46 -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/eager.js +1 -1
  48. package/dist/Model/filter/types/path/index.d.ts +1 -1
  49. package/dist/Model/filter/types/utils.d.ts +1 -1
  50. package/dist/Model/filter/types/validator.d.ts +1 -1
  51. package/dist/Model/filter/types.d.ts +1 -1
  52. package/dist/Model/query/dsl.d.ts +139 -16
  53. package/dist/Model/query/dsl.d.ts.map +1 -1
  54. package/dist/Model/query/dsl.js +187 -1
  55. package/dist/Model/query/new-kid-interpreter.d.ts +76 -7
  56. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
  57. package/dist/Model/query/new-kid-interpreter.js +122 -6
  58. package/dist/Model/query.d.ts +1 -1
  59. package/dist/Model.d.ts +2 -1
  60. package/dist/Model.d.ts.map +1 -1
  61. package/dist/Model.js +2 -1
  62. package/dist/QueueMaker/SQLQueue.d.ts +5 -7
  63. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  64. package/dist/QueueMaker/SQLQueue.js +130 -116
  65. package/dist/QueueMaker/errors.d.ts +2 -2
  66. package/dist/QueueMaker/errors.d.ts.map +1 -1
  67. package/dist/QueueMaker/memQueue.d.ts +7 -4
  68. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  69. package/dist/QueueMaker/memQueue.js +75 -63
  70. package/dist/QueueMaker/sbqueue.d.ts +6 -3
  71. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  72. package/dist/QueueMaker/sbqueue.js +52 -53
  73. package/dist/QueueMaker/service.d.ts +1 -1
  74. package/dist/RequestContext.d.ts +74 -35
  75. package/dist/RequestContext.d.ts.map +1 -1
  76. package/dist/RequestContext.js +13 -14
  77. package/dist/RequestFiberSet.d.ts +7 -7
  78. package/dist/RequestFiberSet.d.ts.map +1 -1
  79. package/dist/RequestFiberSet.js +3 -3
  80. package/dist/Store/ContextMapContainer.d.ts +19 -3
  81. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  82. package/dist/Store/ContextMapContainer.js +13 -3
  83. package/dist/Store/Cosmos/query.d.ts +5 -1
  84. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  85. package/dist/Store/Cosmos/query.js +113 -34
  86. package/dist/Store/Cosmos.d.ts +1 -1
  87. package/dist/Store/Cosmos.d.ts.map +1 -1
  88. package/dist/Store/Cosmos.js +335 -243
  89. package/dist/Store/Disk.d.ts +2 -2
  90. package/dist/Store/Disk.d.ts.map +1 -1
  91. package/dist/Store/Disk.js +72 -35
  92. package/dist/Store/Memory.d.ts +6 -4
  93. package/dist/Store/Memory.d.ts.map +1 -1
  94. package/dist/Store/Memory.js +242 -58
  95. package/dist/Store/SQL/Pg.d.ts +4 -0
  96. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  97. package/dist/Store/SQL/Pg.js +231 -0
  98. package/dist/Store/SQL/query.d.ts +42 -0
  99. package/dist/Store/SQL/query.d.ts.map +1 -0
  100. package/dist/Store/SQL/query.js +479 -0
  101. package/dist/Store/SQL.d.ts +20 -0
  102. package/dist/Store/SQL.d.ts.map +1 -0
  103. package/dist/Store/SQL.js +446 -0
  104. package/dist/Store/codeFilter.d.ts +1 -1
  105. package/dist/Store/codeFilter.d.ts.map +1 -1
  106. package/dist/Store/codeFilter.js +4 -2
  107. package/dist/Store/index.d.ts +5 -2
  108. package/dist/Store/index.d.ts.map +1 -1
  109. package/dist/Store/index.js +15 -3
  110. package/dist/Store/service.d.ts +22 -8
  111. package/dist/Store/service.d.ts.map +1 -1
  112. package/dist/Store/service.js +24 -6
  113. package/dist/Store/utils.d.ts +1 -1
  114. package/dist/Store/utils.d.ts.map +1 -1
  115. package/dist/Store/utils.js +3 -4
  116. package/dist/Store.d.ts +1 -1
  117. package/dist/adapters/SQL/Model.d.ts +31 -42
  118. package/dist/adapters/SQL/Model.d.ts.map +1 -1
  119. package/dist/adapters/SQL/Model.js +29 -38
  120. package/dist/adapters/SQL.d.ts +1 -1
  121. package/dist/adapters/ServiceBus.d.ts +11 -11
  122. package/dist/adapters/ServiceBus.d.ts.map +1 -1
  123. package/dist/adapters/ServiceBus.js +25 -21
  124. package/dist/adapters/cosmos-client.d.ts +3 -3
  125. package/dist/adapters/cosmos-client.d.ts.map +1 -1
  126. package/dist/adapters/cosmos-client.js +3 -3
  127. package/dist/adapters/index.d.ts +8 -2
  128. package/dist/adapters/index.d.ts.map +1 -1
  129. package/dist/adapters/index.js +8 -2
  130. package/dist/adapters/logger.d.ts +1 -1
  131. package/dist/adapters/logger.d.ts.map +1 -1
  132. package/dist/adapters/memQueue.d.ts +3 -3
  133. package/dist/adapters/memQueue.d.ts.map +1 -1
  134. package/dist/adapters/memQueue.js +3 -3
  135. package/dist/adapters/mongo-client.d.ts +3 -3
  136. package/dist/adapters/mongo-client.d.ts.map +1 -1
  137. package/dist/adapters/mongo-client.js +3 -3
  138. package/dist/adapters/redis-client.d.ts +3 -3
  139. package/dist/adapters/redis-client.d.ts.map +1 -1
  140. package/dist/adapters/redis-client.js +3 -3
  141. package/dist/api/ContextProvider.d.ts +8 -8
  142. package/dist/api/ContextProvider.d.ts.map +1 -1
  143. package/dist/api/ContextProvider.js +6 -6
  144. package/dist/api/codec.d.ts +1 -1
  145. package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
  146. package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
  147. package/dist/api/internal/RequestContextMiddleware.js +9 -6
  148. package/dist/api/internal/auth.d.ts +44 -6
  149. package/dist/api/internal/auth.d.ts.map +1 -1
  150. package/dist/api/internal/auth.js +160 -29
  151. package/dist/api/internal/events.d.ts +3 -3
  152. package/dist/api/internal/events.d.ts.map +1 -1
  153. package/dist/api/internal/events.js +10 -8
  154. package/dist/api/internal/health.d.ts +1 -1
  155. package/dist/api/layerUtils.d.ts +6 -6
  156. package/dist/api/layerUtils.d.ts.map +1 -1
  157. package/dist/api/layerUtils.js +5 -5
  158. package/dist/api/middlewares.d.ts +1 -1
  159. package/dist/api/reportError.d.ts +1 -1
  160. package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
  161. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  162. package/dist/api/routing/middleware/middleware.d.ts +39 -3
  163. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  164. package/dist/api/routing/middleware/middleware.js +48 -16
  165. package/dist/api/routing/middleware.d.ts +1 -2
  166. package/dist/api/routing/middleware.d.ts.map +1 -1
  167. package/dist/api/routing/middleware.js +1 -2
  168. package/dist/api/routing/schema/jwt.d.ts +1 -1
  169. package/dist/api/routing/schema/jwt.d.ts.map +1 -1
  170. package/dist/api/routing/tsort.d.ts +1 -1
  171. package/dist/api/routing/tsort.d.ts.map +1 -1
  172. package/dist/api/routing/utils.d.ts +3 -3
  173. package/dist/api/routing/utils.d.ts.map +1 -1
  174. package/dist/api/routing.d.ts +80 -37
  175. package/dist/api/routing.d.ts.map +1 -1
  176. package/dist/api/routing.js +109 -41
  177. package/dist/api/setupRequest.d.ts +8 -5
  178. package/dist/api/setupRequest.d.ts.map +1 -1
  179. package/dist/api/setupRequest.js +12 -7
  180. package/dist/api/util.d.ts +1 -1
  181. package/dist/arbs.d.ts +1 -1
  182. package/dist/arbs.d.ts.map +1 -1
  183. package/dist/arbs.js +5 -3
  184. package/dist/errorReporter.d.ts +4 -4
  185. package/dist/errorReporter.d.ts.map +1 -1
  186. package/dist/errorReporter.js +20 -25
  187. package/dist/errors.d.ts +1 -1
  188. package/dist/fileUtil.d.ts +1 -1
  189. package/dist/fileUtil.d.ts.map +1 -1
  190. package/dist/index.d.ts +1 -1
  191. package/dist/logger/jsonLogger.d.ts +1 -1
  192. package/dist/logger/logFmtLogger.d.ts +1 -1
  193. package/dist/logger/shared.d.ts +1 -1
  194. package/dist/logger/shared.js +2 -2
  195. package/dist/logger.d.ts +1 -1
  196. package/dist/logger.d.ts.map +1 -1
  197. package/dist/otel.d.ts +75 -0
  198. package/dist/otel.d.ts.map +1 -0
  199. package/dist/otel.js +65 -0
  200. package/dist/rateLimit.d.ts +9 -3
  201. package/dist/rateLimit.d.ts.map +1 -1
  202. package/dist/rateLimit.js +5 -11
  203. package/dist/test.d.ts +2 -2
  204. package/dist/test.d.ts.map +1 -1
  205. package/dist/test.js +1 -1
  206. package/dist/vitest.d.ts +1 -1
  207. package/examples/query.ts +42 -38
  208. package/package.json +46 -37
  209. package/src/CUPS.ts +9 -11
  210. package/src/Emailer/Sendgrid.ts +17 -14
  211. package/src/Emailer/service.ts +9 -3
  212. package/src/MainFiberSet.ts +5 -6
  213. package/src/Model/Repository/Registry.ts +33 -0
  214. package/src/Model/Repository/ext.ts +96 -10
  215. package/src/Model/Repository/internal/internal.ts +218 -149
  216. package/src/Model/Repository/makeRepo.ts +12 -10
  217. package/src/Model/Repository/service.ts +31 -22
  218. package/src/Model/Repository/validation.ts +4 -4
  219. package/src/Model/Repository.ts +1 -0
  220. package/src/Model/dsl.ts +3 -3
  221. package/src/Model/filter/types/path/eager.ts +1 -2
  222. package/src/Model/query/dsl.ts +348 -18
  223. package/src/Model/query/new-kid-interpreter.ts +206 -6
  224. package/src/Model.ts +1 -0
  225. package/src/QueueMaker/SQLQueue.ts +144 -152
  226. package/src/QueueMaker/memQueue.ts +104 -103
  227. package/src/QueueMaker/sbqueue.ts +70 -86
  228. package/src/RequestContext.ts +14 -16
  229. package/src/RequestFiberSet.ts +2 -2
  230. package/src/Store/ContextMapContainer.ts +41 -2
  231. package/src/Store/Cosmos/query.ts +140 -43
  232. package/src/Store/Cosmos.ts +482 -349
  233. package/src/Store/Disk.ts +102 -65
  234. package/src/Store/Memory.ts +275 -87
  235. package/src/Store/SQL/Pg.ts +361 -0
  236. package/src/Store/SQL/query.ts +539 -0
  237. package/src/Store/SQL.ts +731 -0
  238. package/src/Store/codeFilter.ts +3 -1
  239. package/src/Store/index.ts +17 -2
  240. package/src/Store/service.ts +41 -10
  241. package/src/Store/utils.ts +23 -22
  242. package/src/adapters/SQL/Model.ts +41 -40
  243. package/src/adapters/ServiceBus.ts +125 -121
  244. package/src/adapters/cosmos-client.ts +2 -2
  245. package/src/adapters/index.ts +7 -0
  246. package/src/adapters/memQueue.ts +2 -2
  247. package/src/adapters/mongo-client.ts +2 -2
  248. package/src/adapters/redis-client.ts +2 -2
  249. package/src/api/ContextProvider.ts +12 -13
  250. package/src/api/internal/RequestContextMiddleware.ts +15 -5
  251. package/src/api/internal/auth.ts +246 -44
  252. package/src/api/internal/events.ts +13 -9
  253. package/src/api/layerUtils.ts +8 -8
  254. package/src/api/routing/middleware/RouterMiddleware.ts +4 -4
  255. package/src/api/routing/middleware/middleware.ts +55 -14
  256. package/src/api/routing/middleware.ts +0 -2
  257. package/src/api/routing.ts +296 -131
  258. package/src/api/setupRequest.ts +28 -8
  259. package/src/arbs.ts +4 -2
  260. package/src/errorReporter.ts +62 -74
  261. package/src/logger/shared.ts +1 -1
  262. package/src/otel.ts +152 -0
  263. package/src/rateLimit.ts +30 -22
  264. package/src/test.ts +1 -1
  265. package/test/auth.test.ts +101 -0
  266. package/test/contextProvider.test.ts +11 -11
  267. package/test/controller.test.ts +21 -30
  268. package/test/dist/auth.test.d.ts.map +1 -0
  269. package/test/dist/contextProvider.test.d.ts.map +1 -1
  270. package/test/dist/controller.test.d.ts.map +1 -1
  271. package/test/dist/date-query.test.d.ts.map +1 -0
  272. package/test/dist/fixtures.d.ts +26 -12
  273. package/test/dist/fixtures.d.ts.map +1 -1
  274. package/test/dist/fixtures.js +12 -10
  275. package/test/dist/query.test.d.ts.map +1 -1
  276. package/test/dist/rawQuery.test.d.ts.map +1 -1
  277. package/test/dist/repository-ext.test.d.ts.map +1 -0
  278. package/test/dist/requires.test.d.ts.map +1 -1
  279. package/test/dist/router-generator.test.d.ts.map +1 -0
  280. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  281. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  282. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  283. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  284. package/test/dist/sql-store.test.d.ts.map +1 -0
  285. package/test/fixtures.ts +11 -9
  286. package/test/query.test.ts +813 -38
  287. package/test/rawQuery.test.ts +301 -20
  288. package/test/repository-ext.test.ts +60 -0
  289. package/test/requires.test.ts +6 -6
  290. package/test/router-generator.test.ts +183 -0
  291. package/test/routing-interruptibility.test.ts +63 -0
  292. package/test/rpc-e2e-invalidation.test.ts +251 -0
  293. package/test/rpc-multi-middleware.test.ts +78 -9
  294. package/test/rpc-stream-fullstack.test.ts +300 -0
  295. package/test/sql-store.test.ts +1592 -0
  296. package/test/validateSample.test.ts +15 -12
  297. package/tsconfig.examples.json +1 -1
  298. package/tsconfig.json +0 -1
  299. package/tsconfig.json.bak +2 -2
  300. package/tsconfig.src.json +35 -35
  301. package/tsconfig.test.json +2 -2
  302. package/dist/Operations.d.ts +0 -55
  303. package/dist/Operations.d.ts.map +0 -1
  304. package/dist/Operations.js +0 -102
  305. package/dist/OperationsRepo.d.ts +0 -41
  306. package/dist/OperationsRepo.d.ts.map +0 -1
  307. package/dist/OperationsRepo.js +0 -14
  308. package/eslint.config.mjs +0 -24
  309. package/src/Operations.ts +0 -235
  310. package/src/OperationsRepo.ts +0 -16
@@ -1,9 +1,12 @@
1
- import { Effect, S } from "effect-app"
1
+ import { Effect, Layer, S } from "effect-app"
2
2
  import { describe, expect, it } from "vitest"
3
3
  import { setupRequestContextFromCurrent } from "../src/api/setupRequest.js"
4
4
  import { makeRepo, ValidationError, ValidationResult } from "../src/Model/Repository.js"
5
+ import { RepositoryRegistryLive } from "../src/Model/Repository/Registry.js"
5
6
  import { MemoryStoreLive } from "../src/Store/Memory.js"
6
7
 
8
+ const TestStoreLive = Layer.merge(MemoryStoreLive, RepositoryRegistryLive)
9
+
7
10
  // simple schema for valid items
8
11
  class SimpleItem extends S.Class<SimpleItem>("SimpleItem")({
9
12
  id: S.String,
@@ -25,14 +28,14 @@ describe("validateSample", () => {
25
28
 
26
29
  const result = yield* repo.validateSample({ percentage: 1.0 }) // 100%
27
30
 
28
- expect(result).toBeInstanceOf(ValidationResult)
31
+ expect(S.is(ValidationResult)(result)).toBe(true)
29
32
  expect(result.total).toBe(3)
30
33
  expect(result.sampled).toBe(3)
31
34
  expect(result.valid).toBe(3)
32
35
  expect(result.errors).toHaveLength(0)
33
36
  })
34
37
  .pipe(
35
- Effect.provide(MemoryStoreLive),
38
+ Effect.provide(TestStoreLive),
36
39
  setupRequestContextFromCurrent(),
37
40
  Effect.runPromise
38
41
  ))
@@ -59,7 +62,7 @@ describe("validateSample", () => {
59
62
 
60
63
  const result = yield* repo.validateSample({ percentage: 1.0 }) // 100%
61
64
 
62
- expect(result).toBeInstanceOf(ValidationResult)
65
+ expect(S.is(ValidationResult)(result)).toBe(true)
63
66
  expect(result.total).toBe(3)
64
67
  expect(result.sampled).toBe(3)
65
68
  expect(result.valid).toBe(1)
@@ -67,7 +70,7 @@ describe("validateSample", () => {
67
70
 
68
71
  // verify error structure
69
72
  for (const error of result.errors) {
70
- expect(error).toBeInstanceOf(ValidationError)
73
+ expect(S.is(ValidationError)(error)).toBe(true)
71
74
  expect(error.id).toBeDefined()
72
75
  expect(error.rawData).toBeDefined()
73
76
  expect(error.jitMResult).toBeDefined()
@@ -80,7 +83,7 @@ describe("validateSample", () => {
80
83
  expect(failingIds).toContain("3")
81
84
  })
82
85
  .pipe(
83
- Effect.provide(MemoryStoreLive),
86
+ Effect.provide(TestStoreLive),
84
87
  setupRequestContextFromCurrent(),
85
88
  Effect.runPromise
86
89
  ))
@@ -98,7 +101,7 @@ describe("validateSample", () => {
98
101
  expect(result.errors).toHaveLength(0)
99
102
  })
100
103
  .pipe(
101
- Effect.provide(MemoryStoreLive),
104
+ Effect.provide(TestStoreLive),
102
105
  setupRequestContextFromCurrent(),
103
106
  Effect.runPromise
104
107
  ))
@@ -127,7 +130,7 @@ describe("validateSample", () => {
127
130
  expect(result.errors).toHaveLength(0)
128
131
  })
129
132
  .pipe(
130
- Effect.provide(MemoryStoreLive),
133
+ Effect.provide(TestStoreLive),
131
134
  setupRequestContextFromCurrent(),
132
135
  Effect.runPromise
133
136
  ))
@@ -138,7 +141,7 @@ describe("validateSample", () => {
138
141
  // schema that expects a 'status' field
139
142
  class ItemWithStatus extends S.Class<ItemWithStatus>("ItemWithStatus")({
140
143
  id: S.String,
141
- status: S.Literal("active", "inactive")
144
+ status: S.Literals(["active", "inactive"])
142
145
  }) {}
143
146
 
144
147
  // jitM that adds default status for items
@@ -161,7 +164,7 @@ describe("validateSample", () => {
161
164
  expect(result.errors).toHaveLength(0)
162
165
  })
163
166
  .pipe(
164
- Effect.provide(MemoryStoreLive),
167
+ Effect.provide(TestStoreLive),
165
168
  setupRequestContextFromCurrent(),
166
169
  Effect.runPromise
167
170
  ))
@@ -208,7 +211,7 @@ describe("validateSample", () => {
208
211
  expect((error.error as any)._tag).toBe("SchemaError")
209
212
  })
210
213
  .pipe(
211
- Effect.provide(MemoryStoreLive),
214
+ Effect.provide(TestStoreLive),
212
215
  setupRequestContextFromCurrent(),
213
216
  Effect.runPromise
214
217
  ))
@@ -230,7 +233,7 @@ describe("validateSample", () => {
230
233
  expect(result.errors).toHaveLength(0)
231
234
  })
232
235
  .pipe(
233
- Effect.provide(MemoryStoreLive),
236
+ Effect.provide(TestStoreLive),
234
237
  setupRequestContextFromCurrent(),
235
238
  Effect.runPromise
236
239
  ))
@@ -12,4 +12,4 @@
12
12
  "tsBuildInfoFile": ".tsbuildinfo/examples.tsbuildinfo",
13
13
  "rootDir": "examples"
14
14
  }
15
- }
15
+ }
package/tsconfig.json CHANGED
@@ -32,7 +32,6 @@
32
32
  "outDir": "build/dist",
33
33
  "resolveJsonModule": true,
34
34
  "moduleResolution": "Node16",
35
- "downlevelIteration": true,
36
35
  "noErrorTruncation": true,
37
36
  "forceConsistentCasingInFileNames": true,
38
37
  "types": [
package/tsconfig.json.bak CHANGED
@@ -8,5 +8,5 @@
8
8
  {
9
9
  "path": "./tsconfig.test.json"
10
10
  }
11
- ],
12
- }
11
+ ]
12
+ }
package/tsconfig.src.json CHANGED
@@ -1,38 +1,38 @@
1
1
  {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "lib": [
5
- "esnext"
6
- ],
7
- "tsBuildInfoFile": "./dist/.tsbuildinfo",
8
- "esModuleInterop": true,
9
- "rootDir": "./src",
10
- // keep in here, cause madge can't detect it from extended tsconfig
11
- "moduleResolution": "Node16",
12
- "types": [
13
- "./types/modules"
14
- ],
15
- "outDir": "./dist"
16
- },
17
- "include": [
18
- "./src/**/*.ts"
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "lib": [
5
+ "esnext"
19
6
  ],
20
- "exclude": [
21
- "./dist",
22
- "*.test.ts",
23
- "node_modules",
24
- "build",
25
- "lib",
26
- "dist",
27
- "**/*.d.ts.map",
28
- ".git",
29
- ".data",
30
- "**/.*",
31
- "**/*.tmp"
7
+ "tsBuildInfoFile": "./dist/.tsbuildinfo",
8
+ "esModuleInterop": true,
9
+ "rootDir": "./src",
10
+ // keep in here, cause madge can't detect it from extended tsconfig
11
+ "moduleResolution": "Node16",
12
+ "types": [
13
+ "./types/modules"
32
14
  ],
33
- "references": [
34
- {
35
- "path": "../effect-app"
36
- },
37
- ]
38
- }
15
+ "outDir": "./dist"
16
+ },
17
+ "include": [
18
+ "./src/**/*.ts"
19
+ ],
20
+ "exclude": [
21
+ "./dist",
22
+ "*.test.ts",
23
+ "node_modules",
24
+ "build",
25
+ "lib",
26
+ "dist",
27
+ "**/*.d.ts.map",
28
+ ".git",
29
+ ".data",
30
+ "**/.*",
31
+ "**/*.tmp"
32
+ ],
33
+ "references": [
34
+ {
35
+ "path": "../effect-app"
36
+ }
37
+ ]
38
+ }
@@ -28,6 +28,6 @@
28
28
  "references": [
29
29
  {
30
30
  "path": "./tsconfig.src.json"
31
- },
31
+ }
32
32
  ]
33
- }
33
+ }
@@ -1,55 +0,0 @@
1
- import { Effect, type Fiber, Layer, Option, S, ServiceMap } from "effect-app";
2
- import { Operation, OperationId, type OperationProgress } from "effect-app/Operations";
3
- import { NonEmptyString2k } from "effect-app/Schema";
4
- import * as Scope from "effect/Scope";
5
- import { OperationsRepo } from "./OperationsRepo.js";
6
- import { RequestFiberSet } from "./RequestFiberSet.js";
7
- declare const Operations_base: ServiceMap.OpaqueClass<Operations, "effect-app/Operations", {
8
- cleanup: Effect.Effect<void[], never, never>;
9
- register: (title: NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope>;
10
- fork: <R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect.Effect<A, E, R>, fnc: (id: OperationId) => Effect.Effect<A2, E2, R2>, title: NonEmptyString2k) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>>;
11
- fork2: {
12
- (title: NonEmptyString2k): <R, E, A>(self: (opId: OperationId) => Effect.Effect<A, E, R>) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
13
- <R, E, A>(self: (opId: OperationId) => Effect.Effect<A, E, R>, title: NonEmptyString2k): Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
14
- };
15
- forkOperation: {
16
- (title: NonEmptyString2k): <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
17
- <R, E, A>(self: Effect.Effect<A, E, R>, title: NonEmptyString2k): Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
18
- };
19
- forkOperationFunction: <R, E, A, Inp>(fnc: (inp: Inp) => Effect.Effect<A, E, R>, title: NonEmptyString2k) => (inp: Inp) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
20
- all: Effect.Effect<Operation[], never, never>;
21
- find: (id: OperationId) => Effect.Effect<Option.Option<Operation>, never, never>;
22
- update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
23
- }> & {
24
- readonly make: Effect.Effect<{
25
- cleanup: Effect.Effect<void[], never, never>;
26
- register: (title: NonEmptyString2k) => Effect.Effect<S.StringId, never, Scope.Scope>;
27
- fork: <R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect.Effect<A, E, R>, fnc: (id: OperationId) => Effect.Effect<A2, E2, R2>, title: NonEmptyString2k) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>>;
28
- fork2: {
29
- (title: NonEmptyString2k): <R, E, A>(self: (opId: OperationId) => Effect.Effect<A, E, R>) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
30
- <R, E, A>(self: (opId: OperationId) => Effect.Effect<A, E, R>, title: NonEmptyString2k): Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
31
- };
32
- forkOperation: {
33
- (title: NonEmptyString2k): <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
34
- <R, E, A>(self: Effect.Effect<A, E, R>, title: NonEmptyString2k): Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
35
- };
36
- forkOperationFunction: <R, E, A, Inp>(fnc: (inp: Inp) => Effect.Effect<A, E, R>, title: NonEmptyString2k) => (inp: Inp) => Effect.Effect<RunningOperation<A, E>, never, Exclude<R, Scope.Scope>>;
37
- all: Effect.Effect<Operation[], never, never>;
38
- find: (id: OperationId) => Effect.Effect<Option.Option<Operation>, never, never>;
39
- update: (id: OperationId, progress: OperationProgress) => Effect.Effect<void, never, never>;
40
- }, never, RequestFiberSet | OperationsRepo>;
41
- };
42
- export declare class Operations extends Operations_base {
43
- private static readonly CleanupLive;
44
- static readonly Live: Layer.Layer<Operations, never, OperationsRepo>;
45
- static readonly forkOperation: (title: NonEmptyString2k) => <R, E, A>(self: Effect.Effect<A, E, R>) => Effect.Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
46
- static readonly forkOperationFunction: <R, E, A, Inp>(fnc: (inp: Inp) => Effect.Effect<A, E, R>, title: NonEmptyString2k) => (inp: Inp) => Effect.Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
47
- static readonly fork: <R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect.Effect<A, E, R>, fnc: (id: OperationId) => Effect.Effect<A2, E2, R2>, title: NonEmptyString2k) => Effect.Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>>;
48
- static readonly fork2: (title: NonEmptyString2k) => <R, E, A>(self: (opId: OperationId) => Effect.Effect<A, E, R>) => Effect.Effect<RunningOperation<A, E>, never, Operations | Exclude<R, Scope.Scope>>;
49
- }
50
- export interface RunningOperation<A, E> {
51
- id: OperationId;
52
- fiber: Fiber.Fiber<A, E>;
53
- }
54
- export {};
55
- //# sourceMappingURL=Operations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Operations.d.ts","sourceRoot":"","sources":["../src/Operations.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- import { reportError } from "@effect-app/infra/errorReporter";
2
- import { subHours } from "date-fns";
3
- import { Cause, copy, Duration, Effect, Exit, Layer, Option, S, Schedule, ServiceMap } from "effect-app";
4
- import { annotateLogscoped } from "effect-app/Effect";
5
- import { dual, pipe } from "effect-app/Function";
6
- import { Operation, OperationFailure, OperationId, OperationSuccess } from "effect-app/Operations";
7
- import { NonEmptyString2k } from "effect-app/Schema";
8
- import * as Scope from "effect/Scope";
9
- import { setupRequestContextFromCurrent } from "./api/setupRequest.js";
10
- import { MainFiberSet } from "./MainFiberSet.js";
11
- import { where } from "./Model/query.js";
12
- import { OperationsRepo } from "./OperationsRepo.js";
13
- import { batch } from "./rateLimit.js";
14
- import { RequestFiberSet } from "./RequestFiberSet.js";
15
- const reportAppError = reportError("Operations.Cleanup");
16
- const make = Effect.gen(function* () {
17
- const repo = yield* OperationsRepo;
18
- const reqFiberSet = yield* RequestFiberSet;
19
- const makeOp = Effect.sync(() => OperationId.make());
20
- 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
- }
52
- 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)))));
58
- }
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 })))))));
69
- function forkOperationFunction(fnc, title) {
70
- return (inp) => fnc(inp).pipe((_) => forkOperation(_, title));
71
- }
72
- return {
73
- cleanup,
74
- register,
75
- fork,
76
- fork2,
77
- forkOperation,
78
- forkOperationFunction,
79
- all: repo.all,
80
- find: findOp,
81
- update
82
- };
83
- });
84
- export class Operations extends ServiceMap.Opaque()("effect-app/Operations", { make }) {
85
- 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))
95
- .pipe(Layer.effectDiscard, Layer.provide(MainFiberSet.Live));
96
- static Live = this.CleanupLive.pipe(Layer.provideMerge(this.toLayer(this.make)), Layer.provide(RequestFiberSet.Live));
97
- static forkOperation = (title) => (self) => this.use((_) => _.forkOperation(self, title));
98
- static forkOperationFunction = (fnc, title) => (inp) => this.use((_) => _.forkOperationFunction(fnc, title)(inp));
99
- static fork = (self, fnc, title) => this.use((_) => _.fork(self, fnc, title));
100
- static fork2 = (title) => (self) => this.use((_) => _.fork2(self, title));
101
- }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9PcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFjLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDcEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBMEIsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUMxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNwRCxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXRELE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0FBRXhELE1BQU0s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
@@ -1,41 +0,0 @@
1
- import { Effect, ServiceMap } from "effect-app";
2
- import { Operation } from "effect-app/Operations";
3
- declare const OperationsRepo_base: ServiceMap.ServiceClass<OperationsRepo, "OperationRepo", import("./Model/Repository.js").ExtendedRepository<Operation, {
4
- readonly id: string;
5
- readonly title: string;
6
- readonly createdAt: string;
7
- 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>> & {
20
- readonly make: Effect.Effect<import("./Model/Repository.js").ExtendedRepository<Operation, {
21
- readonly id: string;
22
- readonly title: string;
23
- readonly createdAt: string;
24
- 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>;
37
- };
38
- export declare class OperationsRepo extends OperationsRepo_base {
39
- }
40
- export {};
41
- //# sourceMappingURL=OperationsRepo.d.ts.map
@@ -1 +0,0 @@
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,14 +0,0 @@
1
- import { Effect, ServiceMap } from "effect-app";
2
- import { Operation } from "effect-app/Operations";
3
- import { makeRepo } from "./Model.js";
4
- export class OperationsRepo extends ServiceMap.Service()("OperationRepo", {
5
- make: Effect.gen(function* () {
6
- return yield* makeRepo("Operation", Operation, {
7
- config: {
8
- allowNamespace: () => true
9
- }
10
- });
11
- })
12
- }) {
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uc1JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvT3BlcmF0aW9uc1JlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVLENBQUMsT0FBTyxFQUFrQixDQUN0RSxlQUFlLEVBQ2Y7SUFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRTtZQUM3QyxNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7YUFDM0I7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDLENBQUM7Q0FDSCxDQUNGO0NBQUcifQ==
package/eslint.config.mjs DELETED
@@ -1,24 +0,0 @@
1
- import path from "node:path"
2
- import { fileURLToPath } from "node:url"
3
- import { augmentedConfig } from "@effect-app/eslint-shared-config/eslint.base.config"
4
-
5
- const __filename = fileURLToPath(import.meta.url)
6
- const __dirname = path.dirname(__filename)
7
-
8
- export default [
9
- ...augmentedConfig(__dirname, false),
10
- {
11
- ignores: [
12
- "**/*.js",
13
- "**/*.jsx",
14
- "**/*.d.ts",
15
- "node_modules/"
16
- ]
17
- },
18
- {
19
- rules: {
20
- "@typescript-eslint/no-empty-interface": "off",
21
- "@typescript-eslint/no-explicit-any": "warn",
22
- }
23
- }
24
- ]