@effect-app/infra 4.0.0-beta.21 → 4.0.0-beta.210

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 (309) hide show
  1. package/CHANGELOG.md +1548 -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 +59 -41
  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 +16 -16
  53. package/dist/Model/query/dsl.d.ts.map +1 -1
  54. package/dist/Model/query/new-kid-interpreter.d.ts +6 -6
  55. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
  56. package/dist/Model/query/new-kid-interpreter.js +3 -3
  57. package/dist/Model/query.d.ts +1 -1
  58. package/dist/Model.d.ts +2 -1
  59. package/dist/Model.d.ts.map +1 -1
  60. package/dist/Model.js +2 -1
  61. package/dist/QueueMaker/SQLQueue.d.ts +5 -7
  62. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  63. package/dist/QueueMaker/SQLQueue.js +130 -116
  64. package/dist/QueueMaker/errors.d.ts +2 -2
  65. package/dist/QueueMaker/errors.d.ts.map +1 -1
  66. package/dist/QueueMaker/memQueue.d.ts +7 -4
  67. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  68. package/dist/QueueMaker/memQueue.js +75 -63
  69. package/dist/QueueMaker/sbqueue.d.ts +6 -3
  70. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  71. package/dist/QueueMaker/sbqueue.js +52 -53
  72. package/dist/QueueMaker/service.d.ts +1 -1
  73. package/dist/RequestContext.d.ts +74 -35
  74. package/dist/RequestContext.d.ts.map +1 -1
  75. package/dist/RequestContext.js +13 -14
  76. package/dist/RequestFiberSet.d.ts +7 -7
  77. package/dist/RequestFiberSet.d.ts.map +1 -1
  78. package/dist/RequestFiberSet.js +3 -3
  79. package/dist/Store/ContextMapContainer.d.ts +19 -3
  80. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  81. package/dist/Store/ContextMapContainer.js +13 -3
  82. package/dist/Store/Cosmos/query.d.ts +1 -1
  83. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  84. package/dist/Store/Cosmos/query.js +10 -12
  85. package/dist/Store/Cosmos.d.ts +1 -1
  86. package/dist/Store/Cosmos.d.ts.map +1 -1
  87. package/dist/Store/Cosmos.js +335 -243
  88. package/dist/Store/Disk.d.ts +2 -2
  89. package/dist/Store/Disk.d.ts.map +1 -1
  90. package/dist/Store/Disk.js +72 -35
  91. package/dist/Store/Memory.d.ts +6 -4
  92. package/dist/Store/Memory.d.ts.map +1 -1
  93. package/dist/Store/Memory.js +90 -57
  94. package/dist/Store/SQL/Pg.d.ts +4 -0
  95. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  96. package/dist/Store/SQL/Pg.js +231 -0
  97. package/dist/Store/SQL/query.d.ts +38 -0
  98. package/dist/Store/SQL/query.d.ts.map +1 -0
  99. package/dist/Store/SQL/query.js +367 -0
  100. package/dist/Store/SQL.d.ts +20 -0
  101. package/dist/Store/SQL.d.ts.map +1 -0
  102. package/dist/Store/SQL.js +464 -0
  103. package/dist/Store/codeFilter.d.ts +1 -1
  104. package/dist/Store/codeFilter.d.ts.map +1 -1
  105. package/dist/Store/codeFilter.js +4 -2
  106. package/dist/Store/index.d.ts +5 -2
  107. package/dist/Store/index.d.ts.map +1 -1
  108. package/dist/Store/index.js +15 -3
  109. package/dist/Store/service.d.ts +18 -7
  110. package/dist/Store/service.d.ts.map +1 -1
  111. package/dist/Store/service.js +24 -6
  112. package/dist/Store/utils.d.ts +1 -1
  113. package/dist/Store/utils.d.ts.map +1 -1
  114. package/dist/Store/utils.js +3 -4
  115. package/dist/Store.d.ts +1 -1
  116. package/dist/adapters/SQL/Model.d.ts +31 -42
  117. package/dist/adapters/SQL/Model.d.ts.map +1 -1
  118. package/dist/adapters/SQL/Model.js +29 -38
  119. package/dist/adapters/SQL.d.ts +1 -1
  120. package/dist/adapters/ServiceBus.d.ts +11 -11
  121. package/dist/adapters/ServiceBus.d.ts.map +1 -1
  122. package/dist/adapters/ServiceBus.js +13 -15
  123. package/dist/adapters/cosmos-client.d.ts +3 -3
  124. package/dist/adapters/cosmos-client.d.ts.map +1 -1
  125. package/dist/adapters/cosmos-client.js +3 -3
  126. package/dist/adapters/index.d.ts +8 -2
  127. package/dist/adapters/index.d.ts.map +1 -1
  128. package/dist/adapters/index.js +8 -2
  129. package/dist/adapters/logger.d.ts +2 -2
  130. package/dist/adapters/logger.d.ts.map +1 -1
  131. package/dist/adapters/memQueue.d.ts +3 -3
  132. package/dist/adapters/memQueue.d.ts.map +1 -1
  133. package/dist/adapters/memQueue.js +3 -3
  134. package/dist/adapters/mongo-client.d.ts +3 -3
  135. package/dist/adapters/mongo-client.d.ts.map +1 -1
  136. package/dist/adapters/mongo-client.js +3 -3
  137. package/dist/adapters/redis-client.d.ts +3 -3
  138. package/dist/adapters/redis-client.d.ts.map +1 -1
  139. package/dist/adapters/redis-client.js +3 -3
  140. package/dist/api/ContextProvider.d.ts +8 -8
  141. package/dist/api/ContextProvider.d.ts.map +1 -1
  142. package/dist/api/ContextProvider.js +6 -6
  143. package/dist/api/codec.d.ts +1 -1
  144. package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
  145. package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
  146. package/dist/api/internal/RequestContextMiddleware.js +2 -2
  147. package/dist/api/internal/auth.d.ts +44 -6
  148. package/dist/api/internal/auth.d.ts.map +1 -1
  149. package/dist/api/internal/auth.js +160 -29
  150. package/dist/api/internal/events.d.ts +3 -3
  151. package/dist/api/internal/events.d.ts.map +1 -1
  152. package/dist/api/internal/events.js +10 -8
  153. package/dist/api/internal/health.d.ts +1 -1
  154. package/dist/api/layerUtils.d.ts +6 -6
  155. package/dist/api/layerUtils.d.ts.map +1 -1
  156. package/dist/api/layerUtils.js +5 -5
  157. package/dist/api/middlewares.d.ts +1 -1
  158. package/dist/api/reportError.d.ts +1 -1
  159. package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
  160. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  161. package/dist/api/routing/middleware/middleware.d.ts +39 -3
  162. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  163. package/dist/api/routing/middleware/middleware.js +48 -16
  164. package/dist/api/routing/middleware.d.ts +1 -2
  165. package/dist/api/routing/middleware.d.ts.map +1 -1
  166. package/dist/api/routing/middleware.js +1 -2
  167. package/dist/api/routing/schema/jwt.d.ts +1 -1
  168. package/dist/api/routing/schema/jwt.d.ts.map +1 -1
  169. package/dist/api/routing/tsort.d.ts +1 -1
  170. package/dist/api/routing/tsort.d.ts.map +1 -1
  171. package/dist/api/routing/utils.d.ts +3 -3
  172. package/dist/api/routing/utils.d.ts.map +1 -1
  173. package/dist/api/routing.d.ts +80 -37
  174. package/dist/api/routing.d.ts.map +1 -1
  175. package/dist/api/routing.js +112 -40
  176. package/dist/api/setupRequest.d.ts +8 -5
  177. package/dist/api/setupRequest.d.ts.map +1 -1
  178. package/dist/api/setupRequest.js +12 -7
  179. package/dist/api/util.d.ts +1 -1
  180. package/dist/arbs.d.ts +1 -1
  181. package/dist/arbs.d.ts.map +1 -1
  182. package/dist/arbs.js +5 -3
  183. package/dist/errorReporter.d.ts +4 -4
  184. package/dist/errorReporter.d.ts.map +1 -1
  185. package/dist/errorReporter.js +20 -25
  186. package/dist/errors.d.ts +1 -1
  187. package/dist/fileUtil.d.ts +1 -1
  188. package/dist/fileUtil.d.ts.map +1 -1
  189. package/dist/index.d.ts +1 -1
  190. package/dist/logger/jsonLogger.d.ts +1 -1
  191. package/dist/logger/logFmtLogger.d.ts +1 -1
  192. package/dist/logger/shared.d.ts +1 -1
  193. package/dist/logger/shared.js +2 -2
  194. package/dist/logger.d.ts +1 -1
  195. package/dist/logger.d.ts.map +1 -1
  196. package/dist/otel.d.ts +66 -0
  197. package/dist/otel.d.ts.map +1 -0
  198. package/dist/otel.js +56 -0
  199. package/dist/rateLimit.d.ts +9 -3
  200. package/dist/rateLimit.d.ts.map +1 -1
  201. package/dist/rateLimit.js +5 -11
  202. package/dist/test.d.ts +2 -2
  203. package/dist/test.d.ts.map +1 -1
  204. package/dist/test.js +1 -1
  205. package/dist/vitest.d.ts +1 -1
  206. package/examples/query.ts +39 -35
  207. package/package.json +45 -37
  208. package/src/CUPS.ts +9 -11
  209. package/src/Emailer/Sendgrid.ts +17 -14
  210. package/src/Emailer/service.ts +9 -3
  211. package/src/MainFiberSet.ts +5 -6
  212. package/src/Model/Repository/Registry.ts +33 -0
  213. package/src/Model/Repository/ext.ts +96 -10
  214. package/src/Model/Repository/internal/internal.ts +159 -139
  215. package/src/Model/Repository/makeRepo.ts +12 -10
  216. package/src/Model/Repository/service.ts +31 -22
  217. package/src/Model/Repository/validation.ts +4 -4
  218. package/src/Model/Repository.ts +1 -0
  219. package/src/Model/dsl.ts +3 -3
  220. package/src/Model/filter/types/path/eager.ts +1 -2
  221. package/src/Model/query/dsl.ts +18 -18
  222. package/src/Model/query/new-kid-interpreter.ts +2 -2
  223. package/src/Model.ts +1 -0
  224. package/src/QueueMaker/SQLQueue.ts +144 -152
  225. package/src/QueueMaker/memQueue.ts +104 -103
  226. package/src/QueueMaker/sbqueue.ts +70 -86
  227. package/src/RequestContext.ts +14 -16
  228. package/src/RequestFiberSet.ts +2 -2
  229. package/src/Store/ContextMapContainer.ts +41 -2
  230. package/src/Store/Cosmos/query.ts +16 -20
  231. package/src/Store/Cosmos.ts +473 -348
  232. package/src/Store/Disk.ts +102 -65
  233. package/src/Store/Memory.ts +118 -83
  234. package/src/Store/SQL/Pg.ts +352 -0
  235. package/src/Store/SQL/query.ts +409 -0
  236. package/src/Store/SQL.ts +734 -0
  237. package/src/Store/codeFilter.ts +3 -1
  238. package/src/Store/index.ts +17 -2
  239. package/src/Store/service.ts +32 -8
  240. package/src/Store/utils.ts +23 -22
  241. package/src/adapters/SQL/Model.ts +41 -40
  242. package/src/adapters/ServiceBus.ts +112 -116
  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 +12 -13
  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 +13 -9
  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 +55 -14
  255. package/src/api/routing/middleware.ts +0 -2
  256. package/src/api/routing.ts +298 -128
  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/otel.ts +141 -0
  262. package/src/rateLimit.ts +30 -22
  263. package/src/test.ts +1 -1
  264. package/test/auth.test.ts +101 -0
  265. package/test/contextProvider.test.ts +11 -11
  266. package/test/controller.test.ts +21 -30
  267. package/test/dist/auth.test.d.ts.map +1 -0
  268. package/test/dist/contextProvider.test.d.ts.map +1 -1
  269. package/test/dist/controller.test.d.ts.map +1 -1
  270. package/test/dist/date-query.test.d.ts.map +1 -0
  271. package/test/dist/fixtures.d.ts +26 -12
  272. package/test/dist/fixtures.d.ts.map +1 -1
  273. package/test/dist/fixtures.js +12 -10
  274. package/test/dist/query.test.d.ts.map +1 -1
  275. package/test/dist/rawQuery.test.d.ts.map +1 -1
  276. package/test/dist/repository-ext.test.d.ts.map +1 -0
  277. package/test/dist/requires.test.d.ts.map +1 -1
  278. package/test/dist/router-generator.test.d.ts.map +1 -0
  279. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  280. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  281. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  282. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  283. package/test/dist/sql-store.test.d.ts.map +1 -0
  284. package/test/fixtures.ts +11 -9
  285. package/test/query.test.ts +216 -34
  286. package/test/rawQuery.test.ts +23 -19
  287. package/test/repository-ext.test.ts +60 -0
  288. package/test/requires.test.ts +6 -6
  289. package/test/router-generator.test.ts +183 -0
  290. package/test/routing-interruptibility.test.ts +63 -0
  291. package/test/rpc-e2e-invalidation.test.ts +251 -0
  292. package/test/rpc-multi-middleware.test.ts +78 -9
  293. package/test/rpc-stream-fullstack.test.ts +300 -0
  294. package/test/sql-store.test.ts +1064 -0
  295. package/test/validateSample.test.ts +15 -12
  296. package/tsconfig.examples.json +1 -1
  297. package/tsconfig.json +0 -1
  298. package/tsconfig.json.bak +2 -2
  299. package/tsconfig.src.json +35 -35
  300. package/tsconfig.test.json +2 -2
  301. package/dist/Operations.d.ts +0 -55
  302. package/dist/Operations.d.ts.map +0 -1
  303. package/dist/Operations.js +0 -102
  304. package/dist/OperationsRepo.d.ts +0 -41
  305. package/dist/OperationsRepo.d.ts.map +0 -1
  306. package/dist/OperationsRepo.js +0 -14
  307. package/eslint.config.mjs +0 -24
  308. package/src/Operations.ts +0 -235
  309. package/src/OperationsRepo.ts +0 -16
package/CHANGELOG.md CHANGED
@@ -1,5 +1,1553 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 4.0.0-beta.210
4
+
5
+ ### Minor Changes
6
+
7
+ - 3a588e4: Standardize span attributes on OpenTelemetry semantic conventions.
8
+
9
+ All Store adapters (Cosmos, PostgreSQL, SQLite, Memory, Disk) and Queue adapters
10
+ (Service Bus, SQL, Memory) now emit OTel-compliant span names and attributes via
11
+ the new `@effect-app/infra/otel` helper module.
12
+
13
+ Span name convention: `<operation> <collection|destination>` (low cardinality).
14
+
15
+ Attribute key migration:
16
+
17
+ | Old | New |
18
+ | --------------------------------------------------- | --------------------------------------------------------------------------------- |
19
+ | `repository.table_name` / `repository.container_id` | `db.collection.name` |
20
+ | `repository.namespace` | `db.namespace` |
21
+ | `repository.model_name` / `itemType` | `app.entity` |
22
+ | `id` / `itemId` (entity span attr) | `app.entity.id` |
23
+ | `itemIds` | `app.entity.ids` |
24
+ | `db.cosmos.request_charge` | `azure.cosmosdb.operation.request_charge` |
25
+ | `db.cosmos.resource_count` | `db.response.returned_rows` |
26
+ | `db.cosmos.response_bytes` | `db.response.body.size` |
27
+ | `disk.file` / `disk.file_size` | `disk.file.path` / `disk.file.size` |
28
+ | `queue.name` | `messaging.destination.name` |
29
+ | `queue.sessionId` | `messaging.message.conversation_id` |
30
+ | `queue.type` | `messaging.system` |
31
+ | `queue.input` (full body) | `messaging.message.body` (+ `messaging.message.id`, `messaging.message.type`) |
32
+ | `message_tags` | `messaging.message.types` + `messaging.batch.message_count` |
33
+ | `request.name` | `code.function.name` (from `spanAttributes`) / `rpc.method` (middleware) |
34
+ | `request.locale` | `app.locale` |
35
+ | `request.namespace` | `app.tenant.id` |
36
+ | `request.source.id` | `client.id` |
37
+ | `request.user.sub` / `.roles` | `user.id` / `user.roles` |
38
+ | `requestInput` | `rpc.request.payload` |
39
+ | `connectionId` | `network.connection.id` |
40
+ | Span `Request.<module>.<method>` | Span `<module>/<method>` + `rpc.system`/`rpc.service`/`rpc.method` (kind: server) |
41
+ | `<spanPrefix>.<op>` (SQL/Model) | OTel db span via `withDbSpan`, with `dbSystem?` option |
42
+
43
+ New attributes added:
44
+
45
+ - `db.system.name` — e.g. `postgresql`, `sqlite`, `cosmosdb`, `memory`, `disk`
46
+ - `db.operation.name` — e.g. `find`, `all`, `filter`, `set`
47
+ - `db.query.text` — sanitized / parameterized SQL or Cosmos query (no bound values)
48
+ - `messaging.operation.name` — `publish`, `process`, `receive`
49
+
50
+ Breaking: dashboards/alerts keying on the previous attribute names must be
51
+ updated. Queue consumer spans no longer log raw message bodies — use
52
+ `messaging.message.id` and `messaging.message.type` instead.
53
+
54
+ ### Patch Changes
55
+
56
+ - effect-app@4.0.0-beta.210
57
+
58
+ ## 4.0.0-beta.209
59
+
60
+ ### Patch Changes
61
+
62
+ - c991be1: update packages
63
+ - Updated dependencies [c991be1]
64
+ - Updated dependencies [3bae238]
65
+ - effect-app@4.0.0-beta.209
66
+
67
+ ## 4.0.0-beta.208
68
+
69
+ ### Patch Changes
70
+
71
+ - effect-app@4.0.0-beta.208
72
+
73
+ ## 4.0.0-beta.207
74
+
75
+ ### Patch Changes
76
+
77
+ - b0db40f: Router handlers are now discriminated by `Resource[K]["stream"]`:
78
+
79
+ - Stream resources (`stream: true`) accept only `(req) => Stream<...>` handlers.
80
+ - Non-stream resources accept only `(req) => Effect<...>` (or generator yielding `Yieldable`).
81
+
82
+ Mixing — e.g. returning `Effect.fail(...)` or `Effect<Stream<...>>` from a stream handler — no longer type-checks.
83
+
84
+ The runtime `Stream.unwrap` branch that lifted `Effect`/`Effect<Stream>` returns into a `Stream` is removed; handlers for stream resources must return a `Stream` directly. Migrate `Effect.gen(...).pipe(Stream.unwrap)` patterns by returning the `Stream` directly, and convert `Effect.fail(err)` in stream handlers to `Stream.fail(err)`.
85
+
86
+ - Updated dependencies [8fffc3c]
87
+ - effect-app@4.0.0-beta.207
88
+
89
+ ## 4.0.0-beta.206
90
+
91
+ ### Patch Changes
92
+
93
+ - 54bfc59: Require middleware to flow through `makeRpcClient` and the live layer through `makeRouter`.
94
+
95
+ ### `makeRpcClient(middleware, generalErrors?)`
96
+
97
+ Signature drops the `rcs` (request-context map wrapper) parameter. `rcs` was only load-bearing on the type side for `RequestConfig` inference; that information is now derived from `middleware.requestContextMap`. `middleware` is required — the previous "rcs + optional middleware" overload is gone.
98
+
99
+ **Migration**:
100
+
101
+ ```diff
102
+ -makeRpcClient(RequestContextMap, undefined, AppMiddleware)
103
+ +makeRpcClient(AppMiddleware)
104
+ ```
105
+
106
+ For tests/clients without a real middleware, build a minimal stub (`{ requestContextMap, requestContext }`) or pass any value satisfying `ClientMiddleware<RCM>`.
107
+
108
+ ### `makeRouter(middlewareLive)`
109
+
110
+ `makeRouter()` no longer infers the live middleware layer from `meta.middleware.Default`. The Live layer is now passed explicitly to `makeRouter`, and the request classes only carry the middleware tag (schema-only). This decouples the router from any assumption that the middleware tag exposes a `Default` static.
111
+
112
+ **Migration**:
113
+
114
+ ```diff
115
+ -export const { Router, matchAll } = makeRouter()
116
+ +export const { Router, matchAll } = makeRouter(AppMiddleware.Default)
117
+ ```
118
+
119
+ - Updated dependencies [54bfc59]
120
+ - effect-app@4.0.0-beta.206
121
+
122
+ ## 4.0.0-beta.205
123
+
124
+ ### Patch Changes
125
+
126
+ - Updated dependencies [f313973]
127
+ - effect-app@4.0.0-beta.205
128
+
129
+ ## 4.0.0-beta.204
130
+
131
+ ### Patch Changes
132
+
133
+ - Updated dependencies [0a0030f]
134
+ - effect-app@4.0.0-beta.204
135
+
136
+ ## 4.0.0-beta.203
137
+
138
+ ### Patch Changes
139
+
140
+ - Updated dependencies [992d9fa]
141
+ - effect-app@4.0.0-beta.203
142
+
143
+ ## 4.0.0-beta.202
144
+
145
+ ### Patch Changes
146
+
147
+ - Updated dependencies [1186b09]
148
+ - effect-app@4.0.0-beta.202
149
+
150
+ ## 4.0.0-beta.201
151
+
152
+ ### Patch Changes
153
+
154
+ - d67d17a: Source middleware errors exclusively from the rpc middleware tag, and move command/stream invalidation wrap/unwrap entirely into the routing layer (server) and `apiClientFactory` (client). `InvalidationMiddleware` and `InvalidationMiddlewareLive` are removed.
155
+
156
+ ### Resource error schemas
157
+
158
+ Three sites that used to fold `RequestContextMap[*].error` into a request's own error schema now stop doing so:
159
+
160
+ - `makeRpcClient` / `makeRequestClass` — `failureSchema` is just `config.error` (still merged with the optional `generalErrors` parameter, which is the only remaining error mix on both type and runtime levels).
161
+ - `MiddlewareMaker.rpc()` — `error: options.error` only; the previous union with `rcm.config[*].error` is gone.
162
+ - Routing and `apiClientFactory.makeRpcGroupFromRequestsAndModuleName` — `Invalidation.makeCommandRpc` is called with `error: resource.error` (no widening with the composite middleware error union).
163
+
164
+ Middleware errors reach the client through the rpc's `middlewares[*].error` failure-union channel of `Rpc.exitSchema`, exposed by attaching the middleware tag to the rpc on both sides:
165
+
166
+ - **Server**: `makeRouter(middleware)` attaches the live composite tag (existing behavior).
167
+ - **Client**: new `middleware` option on `ClientForOptions` / `ApiClientFactory.makeFor(layer, { middleware })` attaches the same tag schema-only (no Live invoked). Threaded through `makeRpcGroupFromRequestsAndModuleName` to `RpcGroup.middleware(tag)`. Without it, stream rpcs (whose top-level `errorSchema` is forced to `Never` by effect-rpc) hit `SchemaError: Expected never | { _tag: "error", ... }` decoding middleware-thrown errors that bypass the in-stream `Stream.catch` wrap.
168
+
169
+ **Migration**: handlers that yield errors previously sourced from rcm (e.g. `yield* new UnauthorizedError()`) now require those errors to be declared explicitly on the resource — `Req.Query<T>()("...", fields, { success, error: UnauthorizedError })`. The handler error type no longer auto-includes the rcm union.
170
+
171
+ ### Invalidation wrap/unwrap
172
+
173
+ - `routing.ts` (server) provides a per-request `InvalidationSet` for commands, wraps the success value as `CommandResponseWithMetaData`, and converts handler-thrown failures into `CommandFailureWithMetaData` so accumulated invalidation keys reach the client on either path. Stream wrap (per-chunk envelope + final `done` chunk) was already in routing and is unchanged.
174
+ - `apiClientFactory.ts` (client) `unwrapCommand` strips both envelopes and forwards keys to `InvalidationKeysFromServer`.
175
+ - `InvalidationMiddleware` (the tag) and `InvalidationMiddlewareLive` (the layer) are **removed**. The middleware was the previous home of the wrap; with the wrap moved to routing/apiClientFactory, the middleware became a thin pass-through and is no longer needed. `DefaultGenericMiddlewares` and `DefaultGenericMiddlewaresLive` shrink accordingly — no migration needed for callers that used the defaults; callers that referenced `InvalidationMiddleware` / `InvalidationMiddlewareLive` directly should drop those imports.
176
+
177
+ Middleware-thrown errors are never wrapped: by definition the handler never ran, so there is nothing to invalidate. They flow raw on the Cause and the client decodes them via the middleware-tag failure-union channel described above.
178
+
179
+ - Updated dependencies [d67d17a]
180
+ - effect-app@4.0.0-beta.201
181
+
182
+ ## 4.0.0-beta.200
183
+
184
+ ### Patch Changes
185
+
186
+ - 0cff7c1: workaround middleware error issue
187
+ - Updated dependencies [8f1cf6a]
188
+ - Updated dependencies [0cff7c1]
189
+ - effect-app@4.0.0-beta.200
190
+
191
+ ## 4.0.0-beta.199
192
+
193
+ ### Patch Changes
194
+
195
+ - de9fb83: Annotate Cosmos read spans with response size, resource count, and request charge.
196
+
197
+ `Cosmos.queryRaw`, `Cosmos.all`, `Cosmos.filter`, and `Cosmos.find` now set `db.cosmos.request_charge`, `db.cosmos.response_bytes`, and (where applicable) `db.cosmos.resource_count` on the active span. Bytes are sourced from `diagnostics.clientSideRequestStatistics.totalResponsePayloadLengthInBytes` — no payload stringification.
198
+
199
+ - effect-app@4.0.0-beta.199
200
+
201
+ ## 4.0.0-beta.198
202
+
203
+ ### Patch Changes
204
+
205
+ - 32dbc54: fix stream type when no success specified
206
+ - Updated dependencies [32dbc54]
207
+ - effect-app@4.0.0-beta.198
208
+
209
+ ## 4.0.0-beta.197
210
+
211
+ ### Minor Changes
212
+
213
+ - 3dc0d2a: Add streaming as a `stream: true` config option on `Query` / `Command` instead of a separate request type.
214
+
215
+ `TaggedRequestFor` now exposes only `Query` and `Command` factories — the standalone `Stream` factory is removed. To produce a Stream of `success` values, pass `stream: true` in the request config. The request `type` field stays `"command" | "query"`; a new `stream: boolean` field carries the streaming flag (stripped from the stored handler config).
216
+
217
+ ```ts
218
+ // Query that streams results
219
+ Req.Query<T>()("Tag", {}, { stream: true, success: ... })
220
+
221
+ // Command that streams results
222
+ Req.Command<T>()("Tag", {}, { stream: true, success: ... })
223
+ ```
224
+
225
+ Vue client mapping (per-handler properties mirror the non-stream API — `.query`, `.fn`, `.mutate`):
226
+
227
+ - `query` + `stream: true` → exposes `.query` (read-only streaming, tracked Vue Query). Helper map key: `${name}Query`.
228
+ - `command` + `stream: true` → exposes `.fn` and `.mutate` (mutating streaming).
229
+ - Plain `query` / `command` unchanged.
230
+
231
+ Server routing dispatches via the new `stream` flag (`makeStreamRpc` for streaming commands/queries, `makeCommandRpc` / `Rpc.make` otherwise).
232
+
233
+ Also lifts the `Struct` / `TaggedStruct` and `Opaque` definitions in `effect-app/Schema` to use `S.Bottom` / `S.Opaque` directly, exposing `fields`, `mapFields`, and a `MakeIn` that allows `void` when all fields are optional. `TaggedRequestFor` request classes now use `Opaque(TaggedStruct(...))` instead of `TaggedClass`, and decoding/encoding services are derived from `success` / `error` rather than stored on the request.
234
+
235
+ **Migration**: replace `Req.Stream` with `Req.Query` or `Req.Command` and add `stream: true` to the config — `Query` for read-only streams, `Command` for mutating streams.
236
+
237
+ ### Patch Changes
238
+
239
+ - Updated dependencies [3dc0d2a]
240
+ - effect-app@4.0.0-beta.197
241
+
242
+ ## 4.0.0-beta.196
243
+
244
+ ### Patch Changes
245
+
246
+ - effect-app@4.0.0-beta.196
247
+
248
+ ## 4.0.0-beta.195
249
+
250
+ ### Patch Changes
251
+
252
+ - 774a9b3: `MiddlewareMaker.makeMiddlewareBasic` now derives each middleware's effective error from both the static `error` field on the tag AND the `rcm` config entry referenced by `dynamic.key`, rather than relying on the static field alone.
253
+
254
+ Middlewares declared with `dynamic: RequestContextMap.get("foo")` (instead of an explicit static `error: ...`) end up with `tag.error = Schema.Never` at runtime — `RpcMiddleware.Tag` defaults the static error to `Never` when not provided. The composite `MiddlewareMaker.Tag(...).middleware(...)` walked `make[*].error` to build its own error union, collapsing to `Union<Never, ...> ≡ Never`.
255
+
256
+ `Rpc.exitSchema` walks `rpc.middlewares[*].error` when building the wire-level failure union for every rpc kind. Empty-union meant middleware-thrown errors (`NotLoggedInError`, `UnauthorizedError`, etc.) never reached the wire schema. Query/command happened to work because their wire `errorSchema = resource.error` already covered the merge from `makeRpcClient`. Stream rpcs have `errorSchema` force-set to `Schema.Never` by effect-rpc, so the resource-level merge never reached the wire — middleware errors decoded as "Expected never, got X".
257
+
258
+ Per middleware, the new logic pushes both the static `_.error` (if non-`Never`) and `rcm[_.dynamic.key].error` (if non-`Never`) into the composite's failure union.
259
+
260
+ - Updated dependencies [774a9b3]
261
+ - effect-app@4.0.0-beta.195
262
+
263
+ ## 4.0.0-beta.194
264
+
265
+ ### Patch Changes
266
+
267
+ - effect-app@4.0.0-beta.194
268
+
269
+ ## 4.0.0-beta.193
270
+
271
+ ### Patch Changes
272
+
273
+ - 9569911: Stream resources accept `Effect.fail(...)` (and `Effect<Stream>`) from controller handlers — previously only `Stream.fail(...)` / a returned `Stream` worked. The router now lifts an Effect result to a Stream via `Stream.unwrap`, so failures from an `Effect` propagate as a failing Stream on the client, matching `Stream.fail(...)` behavior. Also removes the need for manual `.pipe(Stream.unwrap)` on generator handlers that return a `Stream`.
274
+ - effect-app@4.0.0-beta.193
275
+
276
+ ## 4.0.0-beta.192
277
+
278
+ ### Patch Changes
279
+
280
+ - dba5779: namespaces
281
+ - effect-app@4.0.0-beta.192
282
+
283
+ ## 4.0.0-beta.191
284
+
285
+ ### Patch Changes
286
+
287
+ - 50ce7e6: Replace typescript-eslint with oxlint-tsgolint for type-aware lint. Drop ESLint entirely from non-vue packages (cli, effect-app, infra) — they now use only `oxlint --type-aware`. Vue packages keep ESLint to run `@effect-app/no-await-effect` (no tsgolint equivalent) via `@typescript-eslint/parser` + `vue-eslint-parser`.
288
+ - Updated dependencies [50ce7e6]
289
+ - effect-app@4.0.0-beta.191
290
+
291
+ ## 4.0.0-beta.190
292
+
293
+ ### Patch Changes
294
+
295
+ - Updated dependencies [985176b]
296
+ - effect-app@4.0.0-beta.190
297
+
298
+ ## 4.0.0-beta.189
299
+
300
+ ### Patch Changes
301
+
302
+ - ea32222: Update to effect 4.0.0-beta.60 and use native `Rpc.custom` constructors (`makeCommandRpc`, `makeStreamRpc`) for metadata-wrapped RPC schemas instead of manually wrapping/unwrapping schemas inline.
303
+ - Updated dependencies [ea32222]
304
+ - effect-app@4.0.0-beta.189
305
+
306
+ ## 4.0.0-beta.188
307
+
308
+ ### Patch Changes
309
+
310
+ - b2e438f: Remove Operations service and repo
311
+ - Updated dependencies [b2e438f]
312
+ - effect-app@4.0.0-beta.188
313
+
314
+ ## 4.0.0-beta.187
315
+
316
+ ### Patch Changes
317
+
318
+ - Updated dependencies [0d4e0b8]
319
+ - effect-app@4.0.0-beta.187
320
+
321
+ ## 4.0.0-beta.186
322
+
323
+ ### Patch Changes
324
+
325
+ - effect-app@4.0.0-beta.186
326
+
327
+ ## 4.0.0-beta.185
328
+
329
+ ### Patch Changes
330
+
331
+ - effect-app@4.0.0-beta.185
332
+
333
+ ## 4.0.0-beta.184
334
+
335
+ ### Patch Changes
336
+
337
+ - effect-app@4.0.0-beta.184
338
+
339
+ ## 4.0.0-beta.183
340
+
341
+ ### Patch Changes
342
+
343
+ - effect-app@4.0.0-beta.183
344
+
345
+ ## 4.0.0-beta.182
346
+
347
+ ### Patch Changes
348
+
349
+ - effect-app@4.0.0-beta.182
350
+
351
+ ## 4.0.0-beta.181
352
+
353
+ ### Patch Changes
354
+
355
+ - Updated dependencies [583393f]
356
+ - effect-app@4.0.0-beta.181
357
+
358
+ ## 4.0.0-beta.180
359
+
360
+ ### Minor Changes
361
+
362
+ - 7fa3045: V1/V2/V3: stream and command requests carry invalidation metadata
363
+
364
+ **V1** – stream final response includes metadata
365
+
366
+ - `Invalidation.StreamResponseChunk` wraps each stream item as `{ _tag: "value", value }` and appends `{ _tag: "done", metadata }` at the end carrying all accumulated invalidation keys.
367
+
368
+ **V2** – invalidation keys included in failures
369
+
370
+ - `Invalidation.CommandFailureWithMetaData` and `Invalidation.StreamFailureChunk` carry keys accumulated up to the point of failure, so clients can invalidate queries even when a command or stream errors.
371
+ - `InvalidationMiddlewareLive` wraps command failures; `routing.ts` wraps stream failures.
372
+ - `apiClientFactory.ts` unwraps both on the client side, forwarding keys before re-failing with the original error.
373
+
374
+ **V3** – mid-stream metadata chunks
375
+
376
+ - `Invalidation.StreamResponseChunk` now also includes `{ _tag: "metadata", metadata }` for mid-stream invalidation.
377
+ - After each emitted value, the server drains accumulated keys and emits a "metadata" chunk if any keys were collected since the last drain (bucket reset via `InvalidationSet.drain`).
378
+ - `apiClientFactory.ts` processes "metadata" chunks the same as "done" chunks, forwarding keys to `InvalidationKeysFromServer` immediately.
379
+ - `makeInvalidationKeysService` accepts an optional `onAdded` callback that fires after each key addition, enabling `mutate.ts` to trigger query invalidation mid-stream without waiting for the stream to complete.
380
+
381
+ ### Patch Changes
382
+
383
+ - Updated dependencies [7fa3045]
384
+ - effect-app@4.0.0-beta.180
385
+
386
+ ## 4.0.0-beta.179
387
+
388
+ ### Patch Changes
389
+
390
+ - Updated dependencies [828d264]
391
+ - effect-app@4.0.0-beta.179
392
+
393
+ ## 4.0.0-beta.178
394
+
395
+ ### Patch Changes
396
+
397
+ - effect-app@4.0.0-beta.178
398
+
399
+ ## 4.0.0-beta.177
400
+
401
+ ### Minor Changes
402
+
403
+ - 89d8b3a: Add Effect RPC `Stream` support to the wrapper.
404
+
405
+ - New `Stream` request constructor on `TaggedRequestFor` parallel to `Query`/`Command`. Emits resources with `type: "stream"`.
406
+ - Server router (`@effect-app/infra` `routing.ts`) accepts stream resources whose handlers return a `Stream.Stream<A, E, R>` (or a function from input to one). Forwards `stream: true` to `Rpc.make` so `RpcSchema.Stream` wrapping is applied. Streams bypass `applyRequestTypeInterruptibility` and the `Effect.withSpan` wrapping (the RPC server adds its own span).
407
+ - Client (`apiClientFactory.ts`) detects stream resources, forwards `stream: true` when constructing `RpcGroup`, and exposes the per-request `handler` as a `Stream.Stream` (via `Stream.unwrap` over the `ManagedRuntime` context) instead of an `Effect`. `Invalidation.CommandResponseWithMetaData` continues to apply only to commands.
408
+ - New `RequestStreamHandler` / `RequestStreamHandlerWithInput` shapes in `clientFor.ts`; `RequestHandlers` dispatches on `type: "stream"`.
409
+
410
+ ### Patch Changes
411
+
412
+ - Updated dependencies [89d8b3a]
413
+ - effect-app@4.0.0-beta.177
414
+
415
+ ## 4.0.0-beta.176
416
+
417
+ ### Patch Changes
418
+
419
+ - pass options
420
+ - Updated dependencies
421
+ - effect-app@4.0.0-beta.176
422
+
423
+ ## 4.0.0-beta.175
424
+
425
+ ### Patch Changes
426
+
427
+ - effect-app@4.0.0-beta.175
428
+
429
+ ## 4.0.0-beta.174
430
+
431
+ ### Minor Changes
432
+
433
+ - 821468d: Add server-driven cache invalidation via RPC response headers.
434
+
435
+ - `effect-app/rpc`: new `Invalidation` module with `InvalidationKey` / `InvalidationKeys` schemas, `Invalidates` annotation (for declaring static invalidation on Rpc definitions), `InvalidationSet` reference (request-scoped accumulator), and `makeInvalidationSet` helper.
436
+ - `effect-app/middleware`: new `InvalidationMiddleware` RPC middleware tag; included in `DefaultGenericMiddlewares`.
437
+ - `effect-app/client`: new `InvalidationKeys` module with `InvalidationKeysFromServer` reference and `makeInvalidationKeysService` helper; `apiClientFactory` now taps HTTP responses to read the `x-invalidate` header and forward keys to `InvalidationKeysFromServer`.
438
+ - `@effect-app/infra`: new `InvalidationMiddlewareLive` RPC middleware implementation that owns the full lifecycle — creates a request-scoped `InvalidationSet` (backed by a `Ref`), pre-populates it from the `Invalidates` annotation, provides it to the handler, and after the handler completes registers an HTTP pre-response handler (via `appendPreResponseHandlerUnsafe`) to write the accumulated keys as an `x-invalidate` response header. No separate HTTP middleware is needed.
439
+ - `@effect-app/vue`: `invalidateQueries` / `useMutation` now reads server-provided invalidation keys from `InvalidationKeysFromServer` after each mutation and applies them alongside the client-side invalidation.
440
+
441
+ ### Patch Changes
442
+
443
+ - Updated dependencies [821468d]
444
+ - effect-app@4.0.0-beta.174
445
+
446
+ ## 4.0.0-beta.173
447
+
448
+ ### Patch Changes
449
+
450
+ - effect-app@4.0.0-beta.173
451
+
452
+ ## 4.0.0-beta.172
453
+
454
+ ### Patch Changes
455
+
456
+ - improve sentry
457
+ - effect-app@4.0.0-beta.172
458
+
459
+ ## 4.0.0-beta.171
460
+
461
+ ### Patch Changes
462
+
463
+ - Updated dependencies [d71d976]
464
+ - effect-app@4.0.0-beta.171
465
+
466
+ ## 4.0.0-beta.170
467
+
468
+ ### Patch Changes
469
+
470
+ - Updated dependencies [8f09f77]
471
+ - effect-app@4.0.0-beta.170
472
+
473
+ ## 4.0.0-beta.169
474
+
475
+ ### Patch Changes
476
+
477
+ - Updated dependencies [8ae8b53]
478
+ - effect-app@4.0.0-beta.169
479
+
480
+ ## 4.0.0-beta.168
481
+
482
+ ### Patch Changes
483
+
484
+ - Updated dependencies [178480a]
485
+ - effect-app@4.0.0-beta.168
486
+
487
+ ## 4.0.0-beta.167
488
+
489
+ ### Patch Changes
490
+
491
+ - Updated dependencies [140e192]
492
+ - effect-app@4.0.0-beta.167
493
+
494
+ ## 4.0.0-beta.166
495
+
496
+ ### Patch Changes
497
+
498
+ - Updated dependencies [dbcc53b]
499
+ - effect-app@4.0.0-beta.166
500
+
501
+ ## 4.0.0-beta.165
502
+
503
+ ### Patch Changes
504
+
505
+ - Updated dependencies [f88ea34]
506
+ - effect-app@4.0.0-beta.165
507
+
508
+ ## 4.0.0-beta.164
509
+
510
+ ### Patch Changes
511
+
512
+ - Updated dependencies [8cb3de4]
513
+ - effect-app@4.0.0-beta.164
514
+
515
+ ## 4.0.0-beta.163
516
+
517
+ ### Patch Changes
518
+
519
+ - Updated dependencies [b952f19]
520
+ - effect-app@4.0.0-beta.163
521
+
522
+ ## 4.0.0-beta.162
523
+
524
+ ### Patch Changes
525
+
526
+ - Updated dependencies [b52b424]
527
+ - effect-app@4.0.0-beta.162
528
+
529
+ ## 4.0.0-beta.161
530
+
531
+ ### Patch Changes
532
+
533
+ - effect-app@4.0.0-beta.161
534
+
535
+ ## 4.0.0-beta.160
536
+
537
+ ### Patch Changes
538
+
539
+ - 505bfa9: Add concurrent decode helper APIs and migrate decode callsites to use them.
540
+
541
+ - Add `withDefaultParseOptions` and keep `DefaultParseOptions` centralized.
542
+ - Export `decodeEffectConcurrently` and `decodeUnknownEffectConcurrently` from Schema and SchemaParser modules.
543
+ - Update repository, queue, client, form, and CLI decode paths to use concurrent decode helpers.
544
+ - Keep schema constructors free of hardcoded parse concurrency overrides.
545
+
546
+ - Updated dependencies [505bfa9]
547
+ - effect-app@4.0.0-beta.160
548
+
549
+ ## 4.0.0-beta.159
550
+
551
+ ### Patch Changes
552
+
553
+ - c1e73de:
554
+ - Updated dependencies [c1e73de]
555
+ - effect-app@4.0.0-beta.159
556
+
557
+ ## 4.0.0-beta.158
558
+
559
+ ### Patch Changes
560
+
561
+ - Updated dependencies [3c1f52d]
562
+ - Updated dependencies [6ae3050]
563
+ - effect-app@4.0.0-beta.158
564
+
565
+ ## 4.0.0-beta.157
566
+
567
+ ### Patch Changes
568
+
569
+ - 6fff09c: unify encoded function for when you use encodedKeys
570
+ - Updated dependencies [6fff09c]
571
+ - effect-app@4.0.0-beta.157
572
+
573
+ ## 4.0.0-beta.156
574
+
575
+ ### Patch Changes
576
+
577
+ - effect-app@4.0.0-beta.156
578
+
579
+ ## 4.0.0-beta.155
580
+
581
+ ### Patch Changes
582
+
583
+ - Updated dependencies [c215db8]
584
+ - effect-app@4.0.0-beta.155
585
+
586
+ ## 4.0.0-beta.154
587
+
588
+ ### Patch Changes
589
+
590
+ - effect-app@4.0.0-beta.154
591
+
592
+ ## 4.0.0-beta.153
593
+
594
+ ### Patch Changes
595
+
596
+ - effect-app@4.0.0-beta.153
597
+
598
+ ## 4.0.0-beta.152
599
+
600
+ ### Patch Changes
601
+
602
+ - effect-app@4.0.0-beta.152
603
+
604
+ ## 4.0.0-beta.151
605
+
606
+ ### Patch Changes
607
+
608
+ - 925214b: update packages
609
+ - effect-app@4.0.0-beta.151
610
+
611
+ ## 4.0.0-beta.150
612
+
613
+ ### Patch Changes
614
+
615
+ - Updated dependencies [85a8275]
616
+ - effect-app@4.0.0-beta.150
617
+
618
+ ## 4.0.0-beta.149
619
+
620
+ ### Patch Changes
621
+
622
+ - Updated dependencies [f317c5e]
623
+ - effect-app@4.0.0-beta.149
624
+
625
+ ## 4.0.0-beta.148
626
+
627
+ ### Patch Changes
628
+
629
+ - Updated dependencies [199e9a5]
630
+ - effect-app@4.0.0-beta.148
631
+
632
+ ## 4.0.0-beta.147
633
+
634
+ ### Patch Changes
635
+
636
+ - Updated dependencies [47e3742]
637
+ - effect-app@4.0.0-beta.147
638
+
639
+ ## 4.0.0-beta.146
640
+
641
+ ### Patch Changes
642
+
643
+ - Updated dependencies [a4dff57]
644
+ - effect-app@4.0.0-beta.146
645
+
646
+ ## 4.0.0-beta.145
647
+
648
+ ### Patch Changes
649
+
650
+ - Updated dependencies [12abb55]
651
+ - effect-app@4.0.0-beta.145
652
+
653
+ ## 4.0.0-beta.144
654
+
655
+ ### Patch Changes
656
+
657
+ - d31253f: Refactor eligible schema classes and tagged classes to Opaque schemas, and migrate constructor call sites to use `.make` for those models.
658
+ - Updated dependencies [11422f8]
659
+ - Updated dependencies [d31253f]
660
+ - effect-app@4.0.0-beta.144
661
+
662
+ ## 4.0.0-beta.143
663
+
664
+ ### Patch Changes
665
+
666
+ - Updated dependencies [79eb019]
667
+ - effect-app@4.0.0-beta.143
668
+
669
+ ## 4.0.0-beta.142
670
+
671
+ ### Patch Changes
672
+
673
+ - Updated dependencies [3436d44]
674
+ - Updated dependencies [025de47]
675
+ - effect-app@4.0.0-beta.142
676
+
677
+ ## 4.0.0-beta.141
678
+
679
+ ### Patch Changes
680
+
681
+ - Updated dependencies [7c25dbb]
682
+ - effect-app@4.0.0-beta.141
683
+
684
+ ## 4.0.0-beta.140
685
+
686
+ ### Patch Changes
687
+
688
+ - 1576688: Add configurable `fakeMailAddress` to `SendgridConfig`. Supports `{i}` placeholder for unique addresses, e.g. `"test+{i}@example.com"`.
689
+ - effect-app@4.0.0-beta.140
690
+
691
+ ## 4.0.0-beta.139
692
+
693
+ ### Patch Changes
694
+
695
+ - effect-app@4.0.0-beta.139
696
+
697
+ ## 4.0.0-beta.138
698
+
699
+ ### Patch Changes
700
+
701
+ - effect-app@4.0.0-beta.138
702
+
703
+ ## 4.0.0-beta.137
704
+
705
+ ### Patch Changes
706
+
707
+ - effect-app@4.0.0-beta.137
708
+
709
+ ## 4.0.0-beta.136
710
+
711
+ ### Patch Changes
712
+
713
+ - effect-app@4.0.0-beta.136
714
+
715
+ ## 4.0.0-beta.135
716
+
717
+ ### Patch Changes
718
+
719
+ - Updated dependencies [c7bbc41]
720
+ - effect-app@4.0.0-beta.135
721
+
722
+ ## 4.0.0-beta.134
723
+
724
+ ### Patch Changes
725
+
726
+ - eed57c6: Fix `R` inference in `OneDSL`, `OneDSLExt.modify` and `OneDSLExt.update`. The callback's effect type was annotated as `Effect<…, E, FixEnv<R, Evt, S1, S2>>`, which deadlocked inference of `R` (TS6 fell back to `never`, tsgo to `unknown`, leaking `unknown` into yielded effects in generator handlers). Now matches the existing `AllDSLExt` pattern: bare `R` in the callback, `FixEnv<R, …>` only in the return type.
727
+ - Updated dependencies [9d3495e]
728
+ - Updated dependencies [f353d48]
729
+ - effect-app@4.0.0-beta.134
730
+
731
+ ## 4.0.0-beta.133
732
+
733
+ ### Patch Changes
734
+
735
+ - 2f862a4: Apply `toCodecJson` in `SQLModel.JsonFromString` so SQL JSON string fields use the proper JSON-safe codec at the encode/decode boundary (aligns with queue, event, and gist call sites).
736
+ - c3299f7: update packages
737
+ - Updated dependencies [c3299f7]
738
+ - effect-app@4.0.0-beta.133
739
+
740
+ ## 4.0.0-beta.132
741
+
742
+ ### Patch Changes
743
+
744
+ - effect-app@4.0.0-beta.132
745
+
746
+ ## 4.0.0-beta.131
747
+
748
+ ### Patch Changes
749
+
750
+ - 4a7d95a: Use request-type RPC annotations to drive interruptibility and retry behavior, apply command uninterruptibility through the router wrapper path, and add an in-memory E2E test covering command vs query interruption behavior.
751
+ - effect-app@4.0.0-beta.131
752
+
753
+ ## 4.0.0-beta.130
754
+
755
+ ### Patch Changes
756
+
757
+ - Updated dependencies [ea1bd46]
758
+ - effect-app@4.0.0-beta.130
759
+
760
+ ## 4.0.0-beta.129
761
+
762
+ ### Patch Changes
763
+
764
+ - effect-app@4.0.0-beta.129
765
+
766
+ ## 4.0.0-beta.128
767
+
768
+ ### Patch Changes
769
+
770
+ - Updated dependencies [57db551]
771
+ - effect-app@4.0.0-beta.128
772
+
773
+ ## 4.0.0-beta.127
774
+
775
+ ### Patch Changes
776
+
777
+ - 71a0719: Merge `batchPar` into `batch`, expose `concurrency` via an optional `BatchOptions` argument, and make `batch` dual (data-first + data-last).
778
+ - 4bc3d05: Repository `save`, `remove`, and `removeById` now accept plain `ReadonlyArray` instead of `NonEmptyReadonlyArray`. Callers no longer need to narrow or guard for non-emptiness before invoking — empty inputs short-circuit to a no-op, making it ergonomic to pass through query results directly.
779
+ - effect-app@4.0.0-beta.127
780
+
781
+ ## 4.0.0-beta.126
782
+
783
+ ### Patch Changes
784
+
785
+ - Updated dependencies [458bb1b]
786
+ - effect-app@4.0.0-beta.126
787
+
788
+ ## 4.0.0-beta.125
789
+
790
+ ### Patch Changes
791
+
792
+ - 7191fc1: `removeById` now takes `id | NonEmptyReadonlyArray<id>` instead of a variadic rest, and the extended repo's `removeById` accepts a `batch` option to chunk large deletes — consistent with `save` and `remove`.
793
+ - effect-app@4.0.0-beta.125
794
+
795
+ ## 4.0.0-beta.124
796
+
797
+ ### Patch Changes
798
+
799
+ - c9e0c44: cleanup auth
800
+ - 256ae85: cleanup
801
+ - Updated dependencies [256ae85]
802
+ - effect-app@4.0.0-beta.124
803
+
804
+ ## 4.0.0-beta.123
805
+
806
+ ### Patch Changes
807
+
808
+ - Updated dependencies [14aba14]
809
+ - effect-app@4.0.0-beta.123
810
+
811
+ ## 4.0.0-beta.122
812
+
813
+ ### Patch Changes
814
+
815
+ - 27bf9b6: Fix `Repository.query` environment typing to exclude schema context provided through `makeRepo` options.
816
+ - e02a258: Add optional batching overloads for repository `save` and `remove` helpers.
817
+ - f052d38: Replace `(...) => Effect.gen` with `Effect.fnUntraced` and convert select multi-step `pipe` chains to `Effect.gen` across infra.
818
+ - Updated dependencies [f052d38]
819
+ - effect-app@4.0.0-beta.122
820
+
821
+ ## 4.0.0-beta.121
822
+
823
+ ### Patch Changes
824
+
825
+ - 1015582: Fix `Q.project` field selection with `Schema.encodeKeys` by deriving selected fields from the encoded schema shape.
826
+ - Updated dependencies [5ac46cb]
827
+ - effect-app@4.0.0-beta.121
828
+
829
+ ## 4.0.0-beta.120
830
+
831
+ ### Patch Changes
832
+
833
+ - Updated dependencies [f21190c]
834
+ - effect-app@4.0.0-beta.120
835
+
836
+ ## 4.0.0-beta.119
837
+
838
+ ### Patch Changes
839
+
840
+ - db7ba34: Filter SSE events stream by storeId namespace
841
+ - effect-app@4.0.0-beta.119
842
+
843
+ ## 4.0.0-beta.118
844
+
845
+ ### Patch Changes
846
+
847
+ - Update effect packages to 4.0.0-beta.52
848
+ - Updated dependencies [bd26832]
849
+ - Updated dependencies [08d2e70]
850
+ - Updated dependencies
851
+ - effect-app@4.0.0-beta.118
852
+
853
+ ## 4.0.0-beta.117
854
+
855
+ ### Patch Changes
856
+
857
+ - 1d85785: Wrap store seed effects with `Effect.uninterruptible` to prevent interruption during seeding
858
+ - effect-app@4.0.0-beta.117
859
+
860
+ ## 4.0.0-beta.116
861
+
862
+ ### Patch Changes
863
+
864
+ - 7d5cefc: SQL and Pg stores now scope seed migration records by namespace and table name in shared databases to avoid cross-namespace seed collisions.
865
+ - effect-app@4.0.0-beta.116
866
+
867
+ ## 4.0.0-beta.115
868
+
869
+ ### Patch Changes
870
+
871
+ - fe2caba: SQL and Pg stores: use separate `_migrations` table for seed tracking instead of inserting a marker row into the data table, preventing it from appearing in `all`/`filter` queries.
872
+ - effect-app@4.0.0-beta.115
873
+
874
+ ## 4.0.0-beta.114
875
+
876
+ ### Patch Changes
877
+
878
+ - 1ab3cf7: SQLite per-namespace adapter: use separate `_migrations` table for seed tracking instead of inserting a marker row into the data table, preventing it from appearing in `all`/`filter` queries.
879
+ - effect-app@4.0.0-beta.114
880
+
881
+ ## 4.0.0-beta.113
882
+
883
+ ### Minor Changes
884
+
885
+ - ddc5492: Add RepositoryRegistry service that tracks all repositories by modelName, with `seedNamespace` to seed all registered repos in parallel and `entries` to inspect the registry.
886
+
887
+ Make non-primary namespace seeding explicit: Store and Repository now expose `seedNamespace` instead of auto-seeding on access. Primary namespace is still seeded eagerly on initialization.
888
+
889
+ SQL stores: table creation (`CREATE TABLE IF NOT EXISTS`) is now part of `seedNamespace` instead of running eagerly at store construction, ensuring tables for non-primary namespaces are only created when explicitly seeded.
890
+
891
+ ### Patch Changes
892
+
893
+ - effect-app@4.0.0-beta.113
894
+
895
+ ## 4.0.0-beta.112
896
+
897
+ ### Patch Changes
898
+
899
+ - 8a4a6d2: fup
900
+ - effect-app@4.0.0-beta.112
901
+
902
+ ## 4.0.0-beta.111
903
+
904
+ ### Patch Changes
905
+
906
+ - ca94edf: fix typo
907
+ - Updated dependencies [ca94edf]
908
+ - effect-app@4.0.0-beta.111
909
+
910
+ ## 4.0.0-beta.110
911
+
912
+ ### Minor Changes
913
+
914
+ - c313c07: Add per-namespace in-memory SQLite adapter via LayerMap. When `makeSqlClientLayer` option is provided to `SQLiteStoreLayer`, each namespace gets its own SQLite database instance managed by a `LayerMap`. Introduces `WithNsTransaction` service for namespace-aware SQL transactions, used by `makeSqlTransactionMiddleware`.
915
+
916
+ ### Patch Changes
917
+
918
+ - effect-app@4.0.0-beta.110
919
+
920
+ ## 4.0.0-beta.109
921
+
922
+ ### Patch Changes
923
+
924
+ - 82f66f1: use uninterruptiple
925
+ - effect-app@4.0.0-beta.109
926
+
927
+ ## 4.0.0-beta.108
928
+
929
+ ### Patch Changes
930
+
931
+ - Updated dependencies [3e46e7b]
932
+ - effect-app@4.0.0-beta.108
933
+
934
+ ## 4.0.0-beta.107
935
+
936
+ ### Patch Changes
937
+
938
+ - 902ca1b: fix
939
+ - effect-app@4.0.0-beta.107
940
+
941
+ ## 4.0.0-beta.106
942
+
943
+ ### Patch Changes
944
+
945
+ - f22a026: Use `Effect.cached` in `getOrCreateStoreEffect` for proper memoization of the resolver effect.
946
+ - effect-app@4.0.0-beta.106
947
+
948
+ ## 4.0.0-beta.105
949
+
950
+ ### Minor Changes
951
+
952
+ - 3d732b1: Rewrite `withRequestResolverCache` to use official `RequestResolver.withCache`, creating a cached resolver per ContextMap via `getOrCreateStoreEffect` with semaphore-guarded initialization.
953
+
954
+ ### Patch Changes
955
+
956
+ - 47e53f5: Fix `withRequestResolverCache` causing "RequestResolver did not complete request" errors by using the `preCheck` hook instead of handling cache in `runAll`. Cache hits for in-flight or completed requests are now handled before entries enter the batch, preventing uncompleted entries.
957
+ - 5773159: Add `itemType` annotation to all repository spans
958
+ - effect-app@4.0.0-beta.105
959
+
960
+ ## 4.0.0-beta.104
961
+
962
+ ### Patch Changes
963
+
964
+ - Updated dependencies [e944bca]
965
+ - effect-app@4.0.0-beta.104
966
+
967
+ ## 4.0.0-beta.103
968
+
969
+ ### Patch Changes
970
+
971
+ - Updated dependencies [7119320]
972
+ - effect-app@4.0.0-beta.103
973
+
974
+ ## 4.0.0-beta.102
975
+
976
+ ### Patch Changes
977
+
978
+ - 62627e9: Fix boolean handling in SQL SELECT and WHERE
979
+ - effect-app@4.0.0-beta.102
980
+
981
+ ## 4.0.0-beta.101
982
+
983
+ ### Patch Changes
984
+
985
+ - effect-app@4.0.0-beta.101
986
+
987
+ ## 4.0.0-beta.100
988
+
989
+ ### Patch Changes
990
+
991
+ - 43611c7: enable cosmosdb large partition key hashes
992
+ - effect-app@4.0.0-beta.100
993
+
994
+ ## 4.0.0-beta.99
995
+
996
+ ### Patch Changes
997
+
998
+ - 6a0e008: remove artificial Cosmos bulkSet delays
999
+ - effect-app@4.0.0-beta.99
1000
+
1001
+ ## 4.0.0-beta.98
1002
+
1003
+ ### Patch Changes
1004
+
1005
+ - 5aed2e3: Add span to Cosmos `batchRemove` and include `namespace` attribute on all Cosmos store spans.
1006
+ - effect-app@4.0.0-beta.98
1007
+
1008
+ ## 4.0.0-beta.97
1009
+
1010
+ ### Patch Changes
1011
+
1012
+ - 3eb66e9: Fix CosmosDB store `filter` to trigger namespace seeding on first access. Previously, if `filter` was the first operation called on a namespace, seed data was never created.
1013
+ - effect-app@4.0.0-beta.97
1014
+
1015
+ ## 4.0.0-beta.96
1016
+
1017
+ ### Patch Changes
1018
+
1019
+ - Updated dependencies [5615e47]
1020
+ - effect-app@4.0.0-beta.96
1021
+
1022
+ ## 4.0.0-beta.95
1023
+
1024
+ ### Patch Changes
1025
+
1026
+ - 88838fb: Remove pick/omit customizations from Class/TaggedClass/Struct/TaggedStruct. Use `Struct.pick(X.fields, [...])` from `effect-app` instead.
1027
+ - Updated dependencies [88838fb]
1028
+ - effect-app@4.0.0-beta.95
1029
+
1030
+ ## 4.0.0-beta.94
1031
+
1032
+ ### Patch Changes
1033
+
1034
+ - effect-app@4.0.0-beta.94
1035
+
1036
+ ## 4.0.0-beta.93
1037
+
1038
+ ### Patch Changes
1039
+
1040
+ - 2d85646: fix SQL includes-any/all double-quoting values for SQLite (JSON.stringify only needed for Postgres jsonb)
1041
+ - effect-app@4.0.0-beta.93
1042
+
1043
+ ## 4.0.0-beta.92
1044
+
1045
+ ### Patch Changes
1046
+
1047
+ - b4ffee0: fix SQL whereEvery double-negation bug causing wrong query when operators like notIn are used (especially with empty arrays)
1048
+ - effect-app@4.0.0-beta.92
1049
+
1050
+ ## 4.0.0-beta.91
1051
+
1052
+ ### Patch Changes
1053
+
1054
+ - Updated dependencies [738b482]
1055
+ - effect-app@4.0.0-beta.91
1056
+
1057
+ ## 4.0.0-beta.90
1058
+
1059
+ ### Patch Changes
1060
+
1061
+ - d786b91: Fix SQL `whereSome`/`whereEvery` array relation queries using `EXISTS` with `json_each` (SQLite) / `jsonb_array_elements` (Pg).
1062
+ - effect-app@4.0.0-beta.90
1063
+
1064
+ ## 4.0.0-beta.89
1065
+
1066
+ ### Patch Changes
1067
+
1068
+ - 9a9e46c: Fix SQL select queries to read `_etag` from column instead of JSON data, preventing INSERT on update.
1069
+ - effect-app@4.0.0-beta.89
1070
+
1071
+ ## 4.0.0-beta.88
1072
+
1073
+ ### Patch Changes
1074
+
1075
+ - dfd5562: Fix SQL `IN`/`NOT IN` with null values to use `IS NULL`/`IS NOT NULL` instead of `IN (NULL, ...)`.
1076
+ - effect-app@4.0.0-beta.88
1077
+
1078
+ ## 4.0.0-beta.87
1079
+
1080
+ ### Patch Changes
1081
+
1082
+ - 5a709d1: Fix SQLite select query type coercion using `json_quote` and apply defaultValues in SQL WHERE clauses via `COALESCE`.
1083
+ - effect-app@4.0.0-beta.87
1084
+
1085
+ ## 4.0.0-beta.86
1086
+
1087
+ ### Patch Changes
1088
+
1089
+ - 70f1f27: Fix store seeding: break circular dependency where bulkSet re-entered seedNamespace, and add explicit seed markers to SQL/Pg stores using a dedicated `__seed__` namespace.
1090
+ - effect-app@4.0.0-beta.86
1091
+
1092
+ ## 4.0.0-beta.85
1093
+
1094
+ ### Patch Changes
1095
+
1096
+ - db285e9: Add per-namespace seeding to SQL (SQLite/PostgreSQL) and CosmosDB store adapters. Previously only the `primary` namespace was seeded at initialization; now each namespace is lazily seeded on first access using `Effect.cached` to guarantee at-most-once execution. Primary namespace continues to seed eagerly on initialization. CosmosDB uses namespace-specific marker documents for backward compatibility.
1097
+ - effect-app@4.0.0-beta.85
1098
+
1099
+ ## 4.0.0-beta.84
1100
+
1101
+ ### Patch Changes
1102
+
1103
+ - c80e781: Fix SQLite store namespace parameter ordering in filter queries. The `_namespace` placeholder was prepended to the WHERE clause but its value was appended to the end of the positional params array, causing it to bind to the wrong placeholder. PostgreSQL was unaffected (uses indexed `$N` placeholders).
1104
+ - effect-app@4.0.0-beta.84
1105
+
1106
+ ## 4.0.0-beta.83
1107
+
1108
+ ### Patch Changes
1109
+
1110
+ - d1fc90a: Strip `_etag` and `id` from the `data` JSON column in SQL store adapters (SQLite + PostgreSQL). These fields are already stored as dedicated columns and were redundantly duplicated inside the JSON blob. On read, `parseRow` now re-injects `id` from the row column. Backward compatible: existing rows with `_etag`/`id` in `data` continue to work as the column values take precedence.
1111
+ - effect-app@4.0.0-beta.83
1112
+
1113
+ ## 4.0.0-beta.82
1114
+
1115
+ ### Minor Changes
1116
+
1117
+ - 48f1457: Add storage namespace support to CosmosDB adapter via partition key prefixing. When `allowNamespace` is configured, the namespace from `storeId` is prepended to partition key values (e.g., `test-ns::primary`), isolating data per namespace within the same container.
1118
+ - 48f1457: Add storage namespace support to SQL adapters (SQLite and Postgres) via a `_namespace` column. When `allowNamespace` is configured, a `_namespace` column with composite primary key `(id, _namespace)` isolates data per namespace within the same table. New tables get the schema automatically; existing tables require manual migration.
1119
+ - 48f1457: Add SQL Store adapter for Effect SQL (SQLite + PostgreSQL). Table-per-repo with id/etag/data JSON columns, query DSL translation to SQL WHERE clauses, optimistic concurrency via etag.
1120
+ - 48f1457: Make `withSqlTransaction` in `setupRequest` configurable via `withTransaction` option (defaults to `false`). Add `requiresTransactionConfig` and `makeSqlTransactionMiddleware` for per-RPC transaction control as a dynamic middleware that requires `SqlClient` directly. Transactions are disabled by default; opt in with `withTransaction: true` or `requiresTransaction: true`.
1121
+
1122
+ ### Patch Changes
1123
+
1124
+ - effect-app@4.0.0-beta.82
1125
+
1126
+ ## 4.0.0-beta.81
1127
+
1128
+ ### Minor Changes
1129
+
1130
+ - fd67f0b: Add `withRequestResolverCache` to scope RequestResolver cache to the ContextMap (request-scoped). Add `getOrCreateStore` to ContextMap for generic scoped storage.
1131
+
1132
+ ### Patch Changes
1133
+
1134
+ - effect-app@4.0.0-beta.81
1135
+
1136
+ ## 4.0.0-beta.80
1137
+
1138
+ ### Patch Changes
1139
+
1140
+ - eaf0115: enforce local
1141
+ - effect-app@4.0.0-beta.80
1142
+
1143
+ ## 4.0.0-beta.79
1144
+
1145
+ ### Patch Changes
1146
+
1147
+ - d16845e: Remove `TaggedRequest` from `makeRpcClient`, now only `TaggedRequestFor` is returned. Remove all legacy `meta.moduleName` support — `id` and `moduleName` are now required on `Req` type. Remove `makeRpcGroup` (use `makeRpcGroupFromRequestsAndModuleName` instead).
1148
+ - Updated dependencies [d16845e]
1149
+ - effect-app@4.0.0-beta.79
1150
+
1151
+ ## 4.0.0-beta.78
1152
+
1153
+ ### Minor Changes
1154
+
1155
+ - 818e047: Router `matchFor` no longer requires `meta` property on resource when requests carry `moduleName` from `TaggedRequestFor`
1156
+
1157
+ ### Patch Changes
1158
+
1159
+ - effect-app@4.0.0-beta.78
1160
+
1161
+ ## 4.0.0-beta.77
1162
+
1163
+ ### Patch Changes
1164
+
1165
+ - Updated dependencies [3613e87]
1166
+ - effect-app@4.0.0-beta.77
1167
+
1168
+ ## 4.0.0-beta.76
1169
+
1170
+ ### Patch Changes
1171
+
1172
+ - fac725d: update effect to latest beta
1173
+ - Updated dependencies [a5248a9]
1174
+ - Updated dependencies [fac725d]
1175
+ - effect-app@4.0.0-beta.76
1176
+
1177
+ ## 4.0.0-beta.75
1178
+
1179
+ ### Patch Changes
1180
+
1181
+ - Updated dependencies [24f0a5a]
1182
+ - effect-app@4.0.0-beta.75
1183
+
1184
+ ## 4.0.0-beta.74
1185
+
1186
+ ### Patch Changes
1187
+
1188
+ - Updated dependencies [54ec1ef]
1189
+ - effect-app@4.0.0-beta.74
1190
+
1191
+ ## 4.0.0-beta.73
1192
+
1193
+ ### Patch Changes
1194
+
1195
+ - b53c59e: fix signature
1196
+ - effect-app@4.0.0-beta.73
1197
+
1198
+ ## 4.0.0-beta.72
1199
+
1200
+ ### Patch Changes
1201
+
1202
+ - Updated dependencies [0541f0d]
1203
+ - effect-app@4.0.0-beta.72
1204
+
1205
+ ## 4.0.0-beta.71
1206
+
1207
+ ### Patch Changes
1208
+
1209
+ - beae3a0: Remove `withDefaultConstructor` wrapper, use `S.withConstructorDefault` directly with `Effect.succeed`/`Effect.sync`.
1210
+ - Updated dependencies [beae3a0]
1211
+ - effect-app@4.0.0-beta.71
1212
+
1213
+ ## 4.0.0-beta.70
1214
+
1215
+ ### Patch Changes
1216
+
1217
+ - fdb9cb3: cleanup
1218
+ - effect-app@4.0.0-beta.70
1219
+
1220
+ ## 4.0.0-beta.69
1221
+
1222
+ ### Patch Changes
1223
+
1224
+ - dc465e3: update to latest effect beta
1225
+ - Updated dependencies [dc465e3]
1226
+ - effect-app@4.0.0-beta.69
1227
+
1228
+ ## 4.0.0-beta.68
1229
+
1230
+ ### Patch Changes
1231
+
1232
+ - Updated dependencies [e6f2341]
1233
+ - effect-app@4.0.0-beta.68
1234
+
1235
+ ## 4.0.0-beta.67
1236
+
1237
+ ### Patch Changes
1238
+
1239
+ - effect-app@4.0.0-beta.67
1240
+
1241
+ ## 4.0.0-beta.66
1242
+
1243
+ ### Patch Changes
1244
+
1245
+ - Updated dependencies [edc52e4]
1246
+ - effect-app@4.0.0-beta.66
1247
+
1248
+ ## 4.0.0-beta.65
1249
+
1250
+ ### Patch Changes
1251
+
1252
+ - Updated dependencies [31739d7]
1253
+ - Updated dependencies [1f103b2]
1254
+ - effect-app@4.0.0-beta.65
1255
+
1256
+ ## 4.0.0-beta.64
1257
+
1258
+ ### Patch Changes
1259
+
1260
+ - Updated dependencies [c1a6fdc]
1261
+ - effect-app@4.0.0-beta.64
1262
+
1263
+ ## 4.0.0-beta.63
1264
+
1265
+ ### Patch Changes
1266
+
1267
+ - 1f9d7da: fix missing toCodecJson usages
1268
+ - effect-app@4.0.0-beta.63
1269
+
1270
+ ## 4.0.0-beta.62
1271
+
1272
+ ### Patch Changes
1273
+
1274
+ - Updated dependencies [0b21a02]
1275
+ - effect-app@4.0.0-beta.62
1276
+
1277
+ ## 4.0.0-beta.61
1278
+
1279
+ ### Patch Changes
1280
+
1281
+ - effect-app@4.0.0-beta.61
1282
+
1283
+ ## 4.0.0-beta.60
1284
+
1285
+ ### Patch Changes
1286
+
1287
+ - 29c39d2: Fix repository `find` with transformed id fields in tagged union schemas
1288
+ - effect-app@4.0.0-beta.60
1289
+
1290
+ ## 4.0.0-beta.59
1291
+
1292
+ ### Patch Changes
1293
+
1294
+ - cec026d: update packages
1295
+ - Updated dependencies [cec026d]
1296
+ - effect-app@4.0.0-beta.59
1297
+
1298
+ ## 4.0.0-beta.58
1299
+
1300
+ ### Patch Changes
1301
+
1302
+ - effect-app@4.0.0-beta.58
1303
+
1304
+ ## 4.0.0-beta.57
1305
+
1306
+ ### Patch Changes
1307
+
1308
+ - fbf47b8: Fix repository `find` with transformed id fields (e.g. composite ids using `decodeTo`)
1309
+ - effect-app@4.0.0-beta.57
1310
+
1311
+ ## 4.0.0-beta.56
1312
+
1313
+ ### Patch Changes
1314
+
1315
+ - effect-app@4.0.0-beta.56
1316
+
1317
+ ## 4.0.0-beta.55
1318
+
1319
+ ### Patch Changes
1320
+
1321
+ - effect-app@4.0.0-beta.55
1322
+
1323
+ ## 4.0.0-beta.54
1324
+
1325
+ ### Patch Changes
1326
+
1327
+ - d867272: the return of `Context`
1328
+ - Updated dependencies [d867272]
1329
+ - effect-app@4.0.0-beta.54
1330
+
1331
+ ## 4.0.0-beta.53
1332
+
1333
+ ### Patch Changes
1334
+
1335
+ - Updated dependencies [ee9694e]
1336
+ - effect-app@4.0.0-beta.53
1337
+
1338
+ ## 4.0.0-beta.52
1339
+
1340
+ ### Patch Changes
1341
+
1342
+ - Updated dependencies [6252808]
1343
+ - effect-app@4.0.0-beta.52
1344
+
1345
+ ## 4.0.0-beta.51
1346
+
1347
+ ### Patch Changes
1348
+
1349
+ - effect-app@4.0.0-beta.51
1350
+
1351
+ ## 4.0.0-beta.50
1352
+
1353
+ ### Patch Changes
1354
+
1355
+ - effect-app@4.0.0-beta.50
1356
+
1357
+ ## 4.0.0-beta.49
1358
+
1359
+ ### Patch Changes
1360
+
1361
+ - Updated dependencies [e585c9c]
1362
+ - effect-app@4.0.0-beta.49
1363
+
1364
+ ## 4.0.0-beta.48
1365
+
1366
+ ### Patch Changes
1367
+
1368
+ - Updated dependencies [0c88f78]
1369
+ - effect-app@4.0.0-beta.48
1370
+
1371
+ ## 4.0.0-beta.47
1372
+
1373
+ ### Patch Changes
1374
+
1375
+ - Updated dependencies [3365758]
1376
+ - effect-app@4.0.0-beta.47
1377
+
1378
+ ## 4.0.0-beta.46
1379
+
1380
+ ### Patch Changes
1381
+
1382
+ - effect-app@4.0.0-beta.46
1383
+
1384
+ ## 4.0.0-beta.45
1385
+
1386
+ ### Patch Changes
1387
+
1388
+ - 10b55ff: update packages
1389
+ - Updated dependencies [10b55ff]
1390
+ - effect-app@4.0.0-beta.45
1391
+
1392
+ ## 4.0.0-beta.44
1393
+
1394
+ ### Patch Changes
1395
+
1396
+ - a37aa38: Update to effect beta 43
1397
+ - Updated dependencies [a37aa38]
1398
+ - effect-app@4.0.0-beta.44
1399
+
1400
+ ## 4.0.0-beta.43
1401
+
1402
+ ### Patch Changes
1403
+
1404
+ - dab6992: no need for .lock.lock
1405
+ - effect-app@4.0.0-beta.43
1406
+
1407
+ ## 4.0.0-beta.42
1408
+
1409
+ ### Patch Changes
1410
+
1411
+ - effect-app@4.0.0-beta.42
1412
+
1413
+ ## 4.0.0-beta.41
1414
+
1415
+ ### Patch Changes
1416
+
1417
+ - effect-app@4.0.0-beta.41
1418
+
1419
+ ## 4.0.0-beta.40
1420
+
1421
+ ### Patch Changes
1422
+
1423
+ - effect-app@4.0.0-beta.40
1424
+
1425
+ ## 4.0.0-beta.39
1426
+
1427
+ ### Patch Changes
1428
+
1429
+ - Updated dependencies [10e90d5]
1430
+ - effect-app@4.0.0-beta.39
1431
+
1432
+ ## 4.0.0-beta.38
1433
+
1434
+ ### Patch Changes
1435
+
1436
+ - Updated dependencies [0b3e00e]
1437
+ - effect-app@4.0.0-beta.38
1438
+
1439
+ ## 4.0.0-beta.37
1440
+
1441
+ ### Patch Changes
1442
+
1443
+ - Updated dependencies [947fe20]
1444
+ - effect-app@4.0.0-beta.37
1445
+
1446
+ ## 4.0.0-beta.36
1447
+
1448
+ ### Patch Changes
1449
+
1450
+ - effect-app@4.0.0-beta.36
1451
+
1452
+ ## 4.0.0-beta.35
1453
+
1454
+ ### Patch Changes
1455
+
1456
+ - effect-app@4.0.0-beta.35
1457
+
1458
+ ## 4.0.0-beta.34
1459
+
1460
+ ### Patch Changes
1461
+
1462
+ - 8c645d5: update to latest effect
1463
+ - Updated dependencies [8c645d5]
1464
+ - effect-app@4.0.0-beta.34
1465
+
1466
+ ## 4.0.0-beta.33
1467
+
1468
+ ### Patch Changes
1469
+
1470
+ - 4b95009: use Finite instead of Number
1471
+ - Updated dependencies [4b95009]
1472
+ - effect-app@4.0.0-beta.33
1473
+
1474
+ ## 4.0.0-beta.32
1475
+
1476
+ ### Patch Changes
1477
+
1478
+ - Updated dependencies [01d862a]
1479
+ - effect-app@4.0.0-beta.32
1480
+
1481
+ ## 4.0.0-beta.31
1482
+
1483
+ ### Patch Changes
1484
+
1485
+ - Updated dependencies [6b6d601]
1486
+ - effect-app@4.0.0-beta.31
1487
+
1488
+ ## 4.0.0-beta.30
1489
+
1490
+ ### Patch Changes
1491
+
1492
+ - Updated dependencies [5ec1f45]
1493
+ - effect-app@4.0.0-beta.30
1494
+
1495
+ ## 4.0.0-beta.29
1496
+
1497
+ ### Patch Changes
1498
+
1499
+ - Updated dependencies [a899d46]
1500
+ - effect-app@4.0.0-beta.29
1501
+
1502
+ ## 4.0.0-beta.28
1503
+
1504
+ ### Patch Changes
1505
+
1506
+ - Updated dependencies [0099208]
1507
+ - effect-app@4.0.0-beta.28
1508
+
1509
+ ## 4.0.0-beta.27
1510
+
1511
+ ### Patch Changes
1512
+
1513
+ - 601a1ff: update effect to 4.0.0-beta.37 and drop the Schema Class disableValidation workaround now that the patched effect schema covers it
1514
+ - Updated dependencies [601a1ff]
1515
+ - effect-app@4.0.0-beta.27
1516
+
1517
+ ## 4.0.0-beta.26
1518
+
1519
+ ### Patch Changes
1520
+
1521
+ - Updated dependencies [4da28e2]
1522
+ - effect-app@4.0.0-beta.26
1523
+
1524
+ ## 4.0.0-beta.25
1525
+
1526
+ ### Patch Changes
1527
+
1528
+ - Updated dependencies [6282d4b]
1529
+ - effect-app@4.0.0-beta.25
1530
+
1531
+ ## 4.0.0-beta.24
1532
+
1533
+ ### Patch Changes
1534
+
1535
+ - Updated dependencies [32f71bf]
1536
+ - effect-app@4.0.0-beta.24
1537
+
1538
+ ## 4.0.0-beta.23
1539
+
1540
+ ### Patch Changes
1541
+
1542
+ - Updated dependencies [ea08a79]
1543
+ - effect-app@4.0.0-beta.23
1544
+
1545
+ ## 4.0.0-beta.22
1546
+
1547
+ ### Patch Changes
1548
+
1549
+ - effect-app@4.0.0-beta.22
1550
+
3
1551
  ## 4.0.0-beta.21
4
1552
 
5
1553
  ### Patch Changes