@effect-app/infra 4.0.0-beta.18 → 4.0.0-beta.180

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 (299) hide show
  1. package/CHANGELOG.md +1217 -0
  2. package/dist/CUPS.d.ts +15 -7
  3. package/dist/CUPS.d.ts.map +1 -1
  4. package/dist/CUPS.js +10 -12
  5. package/dist/Emailer/Sendgrid.d.ts +14 -14
  6. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  7. package/dist/Emailer/Sendgrid.js +16 -15
  8. package/dist/Emailer/fake.d.ts +1 -1
  9. package/dist/Emailer/service.d.ts +9 -3
  10. package/dist/Emailer/service.d.ts.map +1 -1
  11. package/dist/Emailer/service.js +3 -3
  12. package/dist/Emailer.d.ts +1 -1
  13. package/dist/MainFiberSet.d.ts +5 -5
  14. package/dist/MainFiberSet.d.ts.map +1 -1
  15. package/dist/MainFiberSet.js +3 -3
  16. package/dist/Model/Repository/Registry.d.ts +20 -0
  17. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  18. package/dist/Model/Repository/Registry.js +17 -0
  19. package/dist/Model/Repository/ext.d.ts +33 -15
  20. package/dist/Model/Repository/ext.d.ts.map +1 -1
  21. package/dist/Model/Repository/ext.js +54 -2
  22. package/dist/Model/Repository/internal/internal.d.ts +6 -6
  23. package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
  24. package/dist/Model/Repository/internal/internal.js +43 -32
  25. package/dist/Model/Repository/legacy.d.ts +1 -1
  26. package/dist/Model/Repository/makeRepo.d.ts +7 -6
  27. package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
  28. package/dist/Model/Repository/makeRepo.js +5 -1
  29. package/dist/Model/Repository/service.d.ts +28 -23
  30. package/dist/Model/Repository/service.d.ts.map +1 -1
  31. package/dist/Model/Repository/validation.d.ts +142 -17
  32. package/dist/Model/Repository/validation.d.ts.map +1 -1
  33. package/dist/Model/Repository/validation.js +5 -5
  34. package/dist/Model/Repository.d.ts +2 -1
  35. package/dist/Model/Repository.d.ts.map +1 -1
  36. package/dist/Model/Repository.js +2 -1
  37. package/dist/Model/dsl.d.ts +4 -4
  38. package/dist/Model/dsl.d.ts.map +1 -1
  39. package/dist/Model/filter/filterApi.d.ts +5 -5
  40. package/dist/Model/filter/filterApi.d.ts.map +1 -1
  41. package/dist/Model/filter/types/errors.d.ts +1 -1
  42. package/dist/Model/filter/types/fields.d.ts +1 -1
  43. package/dist/Model/filter/types/path/common.d.ts +1 -1
  44. package/dist/Model/filter/types/path/eager.d.ts +1 -1
  45. package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
  46. package/dist/Model/filter/types/path/index.d.ts +1 -1
  47. package/dist/Model/filter/types/utils.d.ts +1 -1
  48. package/dist/Model/filter/types/validator.d.ts +1 -1
  49. package/dist/Model/filter/types.d.ts +1 -1
  50. package/dist/Model/query/dsl.d.ts +1 -1
  51. package/dist/Model/query/dsl.d.ts.map +1 -1
  52. package/dist/Model/query/new-kid-interpreter.d.ts +6 -6
  53. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
  54. package/dist/Model/query/new-kid-interpreter.js +3 -3
  55. package/dist/Model/query.d.ts +1 -1
  56. package/dist/Model.d.ts +2 -1
  57. package/dist/Model.d.ts.map +1 -1
  58. package/dist/Model.js +2 -1
  59. package/dist/Operations.d.ts +6 -6
  60. package/dist/Operations.d.ts.map +1 -1
  61. package/dist/Operations.js +56 -59
  62. package/dist/OperationsRepo.d.ts +11 -29
  63. package/dist/OperationsRepo.d.ts.map +1 -1
  64. package/dist/OperationsRepo.js +3 -3
  65. package/dist/QueueMaker/SQLQueue.d.ts +5 -7
  66. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  67. package/dist/QueueMaker/SQLQueue.js +105 -114
  68. package/dist/QueueMaker/errors.d.ts +2 -2
  69. package/dist/QueueMaker/errors.d.ts.map +1 -1
  70. package/dist/QueueMaker/memQueue.d.ts +7 -4
  71. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  72. package/dist/QueueMaker/memQueue.js +51 -62
  73. package/dist/QueueMaker/sbqueue.d.ts +6 -3
  74. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  75. package/dist/QueueMaker/sbqueue.js +37 -53
  76. package/dist/QueueMaker/service.d.ts +1 -1
  77. package/dist/RequestContext.d.ts +114 -26
  78. package/dist/RequestContext.d.ts.map +1 -1
  79. package/dist/RequestContext.js +7 -7
  80. package/dist/RequestFiberSet.d.ts +7 -7
  81. package/dist/RequestFiberSet.d.ts.map +1 -1
  82. package/dist/RequestFiberSet.js +5 -5
  83. package/dist/Store/ContextMapContainer.d.ts +19 -3
  84. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  85. package/dist/Store/ContextMapContainer.js +13 -3
  86. package/dist/Store/Cosmos/query.d.ts +1 -1
  87. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  88. package/dist/Store/Cosmos/query.js +8 -10
  89. package/dist/Store/Cosmos.d.ts +1 -1
  90. package/dist/Store/Cosmos.d.ts.map +1 -1
  91. package/dist/Store/Cosmos.js +308 -242
  92. package/dist/Store/Disk.d.ts +2 -2
  93. package/dist/Store/Disk.d.ts.map +1 -1
  94. package/dist/Store/Disk.js +25 -22
  95. package/dist/Store/Memory.d.ts +4 -4
  96. package/dist/Store/Memory.d.ts.map +1 -1
  97. package/dist/Store/Memory.js +27 -22
  98. package/dist/Store/SQL/Pg.d.ts +4 -0
  99. package/dist/Store/SQL/Pg.d.ts.map +1 -0
  100. package/dist/Store/SQL/Pg.js +189 -0
  101. package/dist/Store/SQL/query.d.ts +38 -0
  102. package/dist/Store/SQL/query.d.ts.map +1 -0
  103. package/dist/Store/SQL/query.js +367 -0
  104. package/dist/Store/SQL.d.ts +20 -0
  105. package/dist/Store/SQL.d.ts.map +1 -0
  106. package/dist/Store/SQL.js +381 -0
  107. package/dist/Store/codeFilter.d.ts +1 -1
  108. package/dist/Store/codeFilter.d.ts.map +1 -1
  109. package/dist/Store/codeFilter.js +2 -1
  110. package/dist/Store/index.d.ts +5 -2
  111. package/dist/Store/index.d.ts.map +1 -1
  112. package/dist/Store/index.js +15 -3
  113. package/dist/Store/service.d.ts +17 -6
  114. package/dist/Store/service.d.ts.map +1 -1
  115. package/dist/Store/service.js +24 -6
  116. package/dist/Store/utils.d.ts +1 -1
  117. package/dist/Store/utils.d.ts.map +1 -1
  118. package/dist/Store/utils.js +3 -4
  119. package/dist/Store.d.ts +1 -1
  120. package/dist/adapters/SQL/Model.d.ts +28 -42
  121. package/dist/adapters/SQL/Model.d.ts.map +1 -1
  122. package/dist/adapters/SQL/Model.js +2 -2
  123. package/dist/adapters/SQL.d.ts +1 -1
  124. package/dist/adapters/ServiceBus.d.ts +9 -9
  125. package/dist/adapters/ServiceBus.d.ts.map +1 -1
  126. package/dist/adapters/ServiceBus.js +13 -15
  127. package/dist/adapters/cosmos-client.d.ts +3 -3
  128. package/dist/adapters/cosmos-client.d.ts.map +1 -1
  129. package/dist/adapters/cosmos-client.js +3 -3
  130. package/dist/adapters/index.d.ts +8 -2
  131. package/dist/adapters/index.d.ts.map +1 -1
  132. package/dist/adapters/index.js +8 -2
  133. package/dist/adapters/logger.d.ts +1 -1
  134. package/dist/adapters/logger.d.ts.map +1 -1
  135. package/dist/adapters/memQueue.d.ts +3 -3
  136. package/dist/adapters/memQueue.d.ts.map +1 -1
  137. package/dist/adapters/memQueue.js +3 -3
  138. package/dist/adapters/mongo-client.d.ts +3 -3
  139. package/dist/adapters/mongo-client.d.ts.map +1 -1
  140. package/dist/adapters/mongo-client.js +3 -3
  141. package/dist/adapters/redis-client.d.ts +3 -3
  142. package/dist/adapters/redis-client.d.ts.map +1 -1
  143. package/dist/adapters/redis-client.js +3 -3
  144. package/dist/api/ContextProvider.d.ts +7 -7
  145. package/dist/api/ContextProvider.d.ts.map +1 -1
  146. package/dist/api/ContextProvider.js +6 -6
  147. package/dist/api/codec.d.ts +1 -1
  148. package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
  149. package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
  150. package/dist/api/internal/RequestContextMiddleware.js +2 -2
  151. package/dist/api/internal/auth.d.ts +44 -6
  152. package/dist/api/internal/auth.d.ts.map +1 -1
  153. package/dist/api/internal/auth.js +160 -29
  154. package/dist/api/internal/events.d.ts +3 -3
  155. package/dist/api/internal/events.d.ts.map +1 -1
  156. package/dist/api/internal/events.js +9 -7
  157. package/dist/api/internal/health.d.ts +1 -1
  158. package/dist/api/layerUtils.d.ts +6 -6
  159. package/dist/api/layerUtils.d.ts.map +1 -1
  160. package/dist/api/layerUtils.js +5 -5
  161. package/dist/api/middlewares.d.ts +1 -1
  162. package/dist/api/reportError.d.ts +1 -1
  163. package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
  164. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
  165. package/dist/api/routing/middleware/middleware.d.ts +50 -4
  166. package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
  167. package/dist/api/routing/middleware/middleware.js +75 -17
  168. package/dist/api/routing/middleware.d.ts +1 -2
  169. package/dist/api/routing/middleware.d.ts.map +1 -1
  170. package/dist/api/routing/middleware.js +1 -2
  171. package/dist/api/routing/schema/jwt.d.ts +1 -1
  172. package/dist/api/routing/schema/jwt.d.ts.map +1 -1
  173. package/dist/api/routing/tsort.d.ts +1 -1
  174. package/dist/api/routing/tsort.d.ts.map +1 -1
  175. package/dist/api/routing/utils.d.ts +3 -3
  176. package/dist/api/routing/utils.d.ts.map +1 -1
  177. package/dist/api/routing.d.ts +26 -18
  178. package/dist/api/routing.d.ts.map +1 -1
  179. package/dist/api/routing.js +65 -10
  180. package/dist/api/setupRequest.d.ts +8 -5
  181. package/dist/api/setupRequest.d.ts.map +1 -1
  182. package/dist/api/setupRequest.js +12 -7
  183. package/dist/api/util.d.ts +1 -1
  184. package/dist/arbs.d.ts +1 -1
  185. package/dist/arbs.d.ts.map +1 -1
  186. package/dist/arbs.js +5 -3
  187. package/dist/errorReporter.d.ts +4 -4
  188. package/dist/errorReporter.d.ts.map +1 -1
  189. package/dist/errorReporter.js +20 -25
  190. package/dist/errors.d.ts +1 -1
  191. package/dist/fileUtil.d.ts +1 -1
  192. package/dist/fileUtil.d.ts.map +1 -1
  193. package/dist/index.d.ts +1 -1
  194. package/dist/logger/jsonLogger.d.ts +1 -1
  195. package/dist/logger/logFmtLogger.d.ts +1 -1
  196. package/dist/logger/shared.d.ts +1 -1
  197. package/dist/logger/shared.js +2 -2
  198. package/dist/logger.d.ts +1 -1
  199. package/dist/logger.d.ts.map +1 -1
  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 +1 -1
  204. package/dist/test.d.ts.map +1 -1
  205. package/dist/vitest.d.ts +1 -1
  206. package/eslint.config.mjs +3 -3
  207. package/examples/query.ts +39 -35
  208. package/package.json +42 -28
  209. package/src/CUPS.ts +9 -11
  210. package/src/Emailer/Sendgrid.ts +17 -14
  211. package/src/Emailer/service.ts +8 -2
  212. package/src/MainFiberSet.ts +3 -3
  213. package/src/Model/Repository/Registry.ts +33 -0
  214. package/src/Model/Repository/ext.ts +93 -6
  215. package/src/Model/Repository/internal/internal.ts +97 -88
  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/query/new-kid-interpreter.ts +2 -2
  222. package/src/Model.ts +1 -0
  223. package/src/Operations.ts +78 -113
  224. package/src/OperationsRepo.ts +2 -2
  225. package/src/QueueMaker/SQLQueue.ts +121 -151
  226. package/src/QueueMaker/memQueue.ts +82 -103
  227. package/src/QueueMaker/sbqueue.ts +56 -86
  228. package/src/RequestContext.ts +8 -8
  229. package/src/RequestFiberSet.ts +4 -4
  230. package/src/Store/ContextMapContainer.ts +41 -2
  231. package/src/Store/Cosmos/query.ts +9 -11
  232. package/src/Store/Cosmos.ts +437 -343
  233. package/src/Store/Disk.ts +52 -49
  234. package/src/Store/Memory.ts +54 -48
  235. package/src/Store/SQL/Pg.ts +318 -0
  236. package/src/Store/SQL/query.ts +409 -0
  237. package/src/Store/SQL.ts +668 -0
  238. package/src/Store/codeFilter.ts +1 -0
  239. package/src/Store/index.ts +17 -2
  240. package/src/Store/service.ts +31 -7
  241. package/src/Store/utils.ts +23 -22
  242. package/src/adapters/SQL/Model.ts +10 -4
  243. package/src/adapters/ServiceBus.ts +111 -115
  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 +11 -11
  250. package/src/api/internal/RequestContextMiddleware.ts +1 -1
  251. package/src/api/internal/auth.ts +246 -44
  252. package/src/api/internal/events.ts +12 -8
  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 +109 -15
  256. package/src/api/routing/middleware.ts +0 -2
  257. package/src/api/routing.ts +149 -12
  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/rateLimit.ts +30 -22
  263. package/test/auth.test.ts +101 -0
  264. package/test/contextProvider.test.ts +11 -11
  265. package/test/controller.test.ts +18 -14
  266. package/test/dist/auth.test.d.ts.map +1 -0
  267. package/test/dist/contextProvider.test.d.ts.map +1 -1
  268. package/test/dist/controller.test.d.ts.map +1 -1
  269. package/test/dist/date-query.test.d.ts.map +1 -0
  270. package/test/dist/fixtures.d.ts +26 -12
  271. package/test/dist/fixtures.d.ts.map +1 -1
  272. package/test/dist/fixtures.js +12 -10
  273. package/test/dist/query.test.d.ts.map +1 -1
  274. package/test/dist/rawQuery.test.d.ts.map +1 -1
  275. package/test/dist/repository-ext.test.d.ts.map +1 -0
  276. package/test/dist/requires.test.d.ts.map +1 -1
  277. package/test/dist/router-generator.test.d.ts.map +1 -0
  278. package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
  279. package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
  280. package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
  281. package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
  282. package/test/dist/sql-store.test.d.ts.map +1 -0
  283. package/test/fixtures.ts +11 -9
  284. package/test/query.test.ts +216 -34
  285. package/test/rawQuery.test.ts +23 -19
  286. package/test/repository-ext.test.ts +60 -0
  287. package/test/requires.test.ts +6 -6
  288. package/test/router-generator.test.ts +180 -0
  289. package/test/routing-interruptibility.test.ts +63 -0
  290. package/test/rpc-e2e-invalidation.test.ts +507 -0
  291. package/test/rpc-multi-middleware.test.ts +78 -9
  292. package/test/rpc-stream-fullstack.test.ts +181 -0
  293. package/test/sql-store.test.ts +1064 -0
  294. package/test/validateSample.test.ts +15 -12
  295. package/tsconfig.examples.json +1 -1
  296. package/tsconfig.json +0 -1
  297. package/tsconfig.json.bak +2 -2
  298. package/tsconfig.src.json +35 -35
  299. package/tsconfig.test.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,1222 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 4.0.0-beta.180
4
+
5
+ ### Minor Changes
6
+
7
+ - 7fa3045: V1/V2/V3: stream and command requests carry invalidation metadata
8
+
9
+ **V1** – stream final response includes metadata
10
+
11
+ - `Invalidation.StreamResponseChunk` wraps each stream item as `{ _tag: "value", value }` and appends `{ _tag: "done", metadata }` at the end carrying all accumulated invalidation keys.
12
+
13
+ **V2** – invalidation keys included in failures
14
+
15
+ - `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.
16
+ - `InvalidationMiddlewareLive` wraps command failures; `routing.ts` wraps stream failures.
17
+ - `apiClientFactory.ts` unwraps both on the client side, forwarding keys before re-failing with the original error.
18
+
19
+ **V3** – mid-stream metadata chunks
20
+
21
+ - `Invalidation.StreamResponseChunk` now also includes `{ _tag: "metadata", metadata }` for mid-stream invalidation.
22
+ - 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`).
23
+ - `apiClientFactory.ts` processes "metadata" chunks the same as "done" chunks, forwarding keys to `InvalidationKeysFromServer` immediately.
24
+ - `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.
25
+
26
+ ### Patch Changes
27
+
28
+ - Updated dependencies [7fa3045]
29
+ - effect-app@4.0.0-beta.180
30
+
31
+ ## 4.0.0-beta.179
32
+
33
+ ### Patch Changes
34
+
35
+ - Updated dependencies [828d264]
36
+ - effect-app@4.0.0-beta.179
37
+
38
+ ## 4.0.0-beta.178
39
+
40
+ ### Patch Changes
41
+
42
+ - effect-app@4.0.0-beta.178
43
+
44
+ ## 4.0.0-beta.177
45
+
46
+ ### Minor Changes
47
+
48
+ - 89d8b3a: Add Effect RPC `Stream` support to the wrapper.
49
+
50
+ - New `Stream` request constructor on `TaggedRequestFor` parallel to `Query`/`Command`. Emits resources with `type: "stream"`.
51
+ - 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).
52
+ - 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.
53
+ - New `RequestStreamHandler` / `RequestStreamHandlerWithInput` shapes in `clientFor.ts`; `RequestHandlers` dispatches on `type: "stream"`.
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies [89d8b3a]
58
+ - effect-app@4.0.0-beta.177
59
+
60
+ ## 4.0.0-beta.176
61
+
62
+ ### Patch Changes
63
+
64
+ - pass options
65
+ - Updated dependencies
66
+ - effect-app@4.0.0-beta.176
67
+
68
+ ## 4.0.0-beta.175
69
+
70
+ ### Patch Changes
71
+
72
+ - effect-app@4.0.0-beta.175
73
+
74
+ ## 4.0.0-beta.174
75
+
76
+ ### Minor Changes
77
+
78
+ - 821468d: Add server-driven cache invalidation via RPC response headers.
79
+
80
+ - `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.
81
+ - `effect-app/middleware`: new `InvalidationMiddleware` RPC middleware tag; included in `DefaultGenericMiddlewares`.
82
+ - `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`.
83
+ - `@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.
84
+ - `@effect-app/vue`: `invalidateQueries` / `useMutation` now reads server-provided invalidation keys from `InvalidationKeysFromServer` after each mutation and applies them alongside the client-side invalidation.
85
+
86
+ ### Patch Changes
87
+
88
+ - Updated dependencies [821468d]
89
+ - effect-app@4.0.0-beta.174
90
+
91
+ ## 4.0.0-beta.173
92
+
93
+ ### Patch Changes
94
+
95
+ - effect-app@4.0.0-beta.173
96
+
97
+ ## 4.0.0-beta.172
98
+
99
+ ### Patch Changes
100
+
101
+ - improve sentry
102
+ - effect-app@4.0.0-beta.172
103
+
104
+ ## 4.0.0-beta.171
105
+
106
+ ### Patch Changes
107
+
108
+ - Updated dependencies [d71d976]
109
+ - effect-app@4.0.0-beta.171
110
+
111
+ ## 4.0.0-beta.170
112
+
113
+ ### Patch Changes
114
+
115
+ - Updated dependencies [8f09f77]
116
+ - effect-app@4.0.0-beta.170
117
+
118
+ ## 4.0.0-beta.169
119
+
120
+ ### Patch Changes
121
+
122
+ - Updated dependencies [8ae8b53]
123
+ - effect-app@4.0.0-beta.169
124
+
125
+ ## 4.0.0-beta.168
126
+
127
+ ### Patch Changes
128
+
129
+ - Updated dependencies [178480a]
130
+ - effect-app@4.0.0-beta.168
131
+
132
+ ## 4.0.0-beta.167
133
+
134
+ ### Patch Changes
135
+
136
+ - Updated dependencies [140e192]
137
+ - effect-app@4.0.0-beta.167
138
+
139
+ ## 4.0.0-beta.166
140
+
141
+ ### Patch Changes
142
+
143
+ - Updated dependencies [dbcc53b]
144
+ - effect-app@4.0.0-beta.166
145
+
146
+ ## 4.0.0-beta.165
147
+
148
+ ### Patch Changes
149
+
150
+ - Updated dependencies [f88ea34]
151
+ - effect-app@4.0.0-beta.165
152
+
153
+ ## 4.0.0-beta.164
154
+
155
+ ### Patch Changes
156
+
157
+ - Updated dependencies [8cb3de4]
158
+ - effect-app@4.0.0-beta.164
159
+
160
+ ## 4.0.0-beta.163
161
+
162
+ ### Patch Changes
163
+
164
+ - Updated dependencies [b952f19]
165
+ - effect-app@4.0.0-beta.163
166
+
167
+ ## 4.0.0-beta.162
168
+
169
+ ### Patch Changes
170
+
171
+ - Updated dependencies [b52b424]
172
+ - effect-app@4.0.0-beta.162
173
+
174
+ ## 4.0.0-beta.161
175
+
176
+ ### Patch Changes
177
+
178
+ - effect-app@4.0.0-beta.161
179
+
180
+ ## 4.0.0-beta.160
181
+
182
+ ### Patch Changes
183
+
184
+ - 505bfa9: Add concurrent decode helper APIs and migrate decode callsites to use them.
185
+
186
+ - Add `withDefaultParseOptions` and keep `DefaultParseOptions` centralized.
187
+ - Export `decodeEffectConcurrently` and `decodeUnknownEffectConcurrently` from Schema and SchemaParser modules.
188
+ - Update repository, queue, client, form, and CLI decode paths to use concurrent decode helpers.
189
+ - Keep schema constructors free of hardcoded parse concurrency overrides.
190
+
191
+ - Updated dependencies [505bfa9]
192
+ - effect-app@4.0.0-beta.160
193
+
194
+ ## 4.0.0-beta.159
195
+
196
+ ### Patch Changes
197
+
198
+ - c1e73de:
199
+ - Updated dependencies [c1e73de]
200
+ - effect-app@4.0.0-beta.159
201
+
202
+ ## 4.0.0-beta.158
203
+
204
+ ### Patch Changes
205
+
206
+ - Updated dependencies [3c1f52d]
207
+ - Updated dependencies [6ae3050]
208
+ - effect-app@4.0.0-beta.158
209
+
210
+ ## 4.0.0-beta.157
211
+
212
+ ### Patch Changes
213
+
214
+ - 6fff09c: unify encoded function for when you use encodedKeys
215
+ - Updated dependencies [6fff09c]
216
+ - effect-app@4.0.0-beta.157
217
+
218
+ ## 4.0.0-beta.156
219
+
220
+ ### Patch Changes
221
+
222
+ - effect-app@4.0.0-beta.156
223
+
224
+ ## 4.0.0-beta.155
225
+
226
+ ### Patch Changes
227
+
228
+ - Updated dependencies [c215db8]
229
+ - effect-app@4.0.0-beta.155
230
+
231
+ ## 4.0.0-beta.154
232
+
233
+ ### Patch Changes
234
+
235
+ - effect-app@4.0.0-beta.154
236
+
237
+ ## 4.0.0-beta.153
238
+
239
+ ### Patch Changes
240
+
241
+ - effect-app@4.0.0-beta.153
242
+
243
+ ## 4.0.0-beta.152
244
+
245
+ ### Patch Changes
246
+
247
+ - effect-app@4.0.0-beta.152
248
+
249
+ ## 4.0.0-beta.151
250
+
251
+ ### Patch Changes
252
+
253
+ - 925214b: update packages
254
+ - effect-app@4.0.0-beta.151
255
+
256
+ ## 4.0.0-beta.150
257
+
258
+ ### Patch Changes
259
+
260
+ - Updated dependencies [85a8275]
261
+ - effect-app@4.0.0-beta.150
262
+
263
+ ## 4.0.0-beta.149
264
+
265
+ ### Patch Changes
266
+
267
+ - Updated dependencies [f317c5e]
268
+ - effect-app@4.0.0-beta.149
269
+
270
+ ## 4.0.0-beta.148
271
+
272
+ ### Patch Changes
273
+
274
+ - Updated dependencies [199e9a5]
275
+ - effect-app@4.0.0-beta.148
276
+
277
+ ## 4.0.0-beta.147
278
+
279
+ ### Patch Changes
280
+
281
+ - Updated dependencies [47e3742]
282
+ - effect-app@4.0.0-beta.147
283
+
284
+ ## 4.0.0-beta.146
285
+
286
+ ### Patch Changes
287
+
288
+ - Updated dependencies [a4dff57]
289
+ - effect-app@4.0.0-beta.146
290
+
291
+ ## 4.0.0-beta.145
292
+
293
+ ### Patch Changes
294
+
295
+ - Updated dependencies [12abb55]
296
+ - effect-app@4.0.0-beta.145
297
+
298
+ ## 4.0.0-beta.144
299
+
300
+ ### Patch Changes
301
+
302
+ - d31253f: Refactor eligible schema classes and tagged classes to Opaque schemas, and migrate constructor call sites to use `.make` for those models.
303
+ - Updated dependencies [11422f8]
304
+ - Updated dependencies [d31253f]
305
+ - effect-app@4.0.0-beta.144
306
+
307
+ ## 4.0.0-beta.143
308
+
309
+ ### Patch Changes
310
+
311
+ - Updated dependencies [79eb019]
312
+ - effect-app@4.0.0-beta.143
313
+
314
+ ## 4.0.0-beta.142
315
+
316
+ ### Patch Changes
317
+
318
+ - Updated dependencies [3436d44]
319
+ - Updated dependencies [025de47]
320
+ - effect-app@4.0.0-beta.142
321
+
322
+ ## 4.0.0-beta.141
323
+
324
+ ### Patch Changes
325
+
326
+ - Updated dependencies [7c25dbb]
327
+ - effect-app@4.0.0-beta.141
328
+
329
+ ## 4.0.0-beta.140
330
+
331
+ ### Patch Changes
332
+
333
+ - 1576688: Add configurable `fakeMailAddress` to `SendgridConfig`. Supports `{i}` placeholder for unique addresses, e.g. `"test+{i}@example.com"`.
334
+ - effect-app@4.0.0-beta.140
335
+
336
+ ## 4.0.0-beta.139
337
+
338
+ ### Patch Changes
339
+
340
+ - effect-app@4.0.0-beta.139
341
+
342
+ ## 4.0.0-beta.138
343
+
344
+ ### Patch Changes
345
+
346
+ - effect-app@4.0.0-beta.138
347
+
348
+ ## 4.0.0-beta.137
349
+
350
+ ### Patch Changes
351
+
352
+ - effect-app@4.0.0-beta.137
353
+
354
+ ## 4.0.0-beta.136
355
+
356
+ ### Patch Changes
357
+
358
+ - effect-app@4.0.0-beta.136
359
+
360
+ ## 4.0.0-beta.135
361
+
362
+ ### Patch Changes
363
+
364
+ - Updated dependencies [c7bbc41]
365
+ - effect-app@4.0.0-beta.135
366
+
367
+ ## 4.0.0-beta.134
368
+
369
+ ### Patch Changes
370
+
371
+ - 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.
372
+ - Updated dependencies [9d3495e]
373
+ - Updated dependencies [f353d48]
374
+ - effect-app@4.0.0-beta.134
375
+
376
+ ## 4.0.0-beta.133
377
+
378
+ ### Patch Changes
379
+
380
+ - 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).
381
+ - c3299f7: update packages
382
+ - Updated dependencies [c3299f7]
383
+ - effect-app@4.0.0-beta.133
384
+
385
+ ## 4.0.0-beta.132
386
+
387
+ ### Patch Changes
388
+
389
+ - effect-app@4.0.0-beta.132
390
+
391
+ ## 4.0.0-beta.131
392
+
393
+ ### Patch Changes
394
+
395
+ - 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.
396
+ - effect-app@4.0.0-beta.131
397
+
398
+ ## 4.0.0-beta.130
399
+
400
+ ### Patch Changes
401
+
402
+ - Updated dependencies [ea1bd46]
403
+ - effect-app@4.0.0-beta.130
404
+
405
+ ## 4.0.0-beta.129
406
+
407
+ ### Patch Changes
408
+
409
+ - effect-app@4.0.0-beta.129
410
+
411
+ ## 4.0.0-beta.128
412
+
413
+ ### Patch Changes
414
+
415
+ - Updated dependencies [57db551]
416
+ - effect-app@4.0.0-beta.128
417
+
418
+ ## 4.0.0-beta.127
419
+
420
+ ### Patch Changes
421
+
422
+ - 71a0719: Merge `batchPar` into `batch`, expose `concurrency` via an optional `BatchOptions` argument, and make `batch` dual (data-first + data-last).
423
+ - 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.
424
+ - effect-app@4.0.0-beta.127
425
+
426
+ ## 4.0.0-beta.126
427
+
428
+ ### Patch Changes
429
+
430
+ - Updated dependencies [458bb1b]
431
+ - effect-app@4.0.0-beta.126
432
+
433
+ ## 4.0.0-beta.125
434
+
435
+ ### Patch Changes
436
+
437
+ - 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`.
438
+ - effect-app@4.0.0-beta.125
439
+
440
+ ## 4.0.0-beta.124
441
+
442
+ ### Patch Changes
443
+
444
+ - c9e0c44: cleanup auth
445
+ - 256ae85: cleanup
446
+ - Updated dependencies [256ae85]
447
+ - effect-app@4.0.0-beta.124
448
+
449
+ ## 4.0.0-beta.123
450
+
451
+ ### Patch Changes
452
+
453
+ - Updated dependencies [14aba14]
454
+ - effect-app@4.0.0-beta.123
455
+
456
+ ## 4.0.0-beta.122
457
+
458
+ ### Patch Changes
459
+
460
+ - 27bf9b6: Fix `Repository.query` environment typing to exclude schema context provided through `makeRepo` options.
461
+ - e02a258: Add optional batching overloads for repository `save` and `remove` helpers.
462
+ - f052d38: Replace `(...) => Effect.gen` with `Effect.fnUntraced` and convert select multi-step `pipe` chains to `Effect.gen` across infra.
463
+ - Updated dependencies [f052d38]
464
+ - effect-app@4.0.0-beta.122
465
+
466
+ ## 4.0.0-beta.121
467
+
468
+ ### Patch Changes
469
+
470
+ - 1015582: Fix `Q.project` field selection with `Schema.encodeKeys` by deriving selected fields from the encoded schema shape.
471
+ - Updated dependencies [5ac46cb]
472
+ - effect-app@4.0.0-beta.121
473
+
474
+ ## 4.0.0-beta.120
475
+
476
+ ### Patch Changes
477
+
478
+ - Updated dependencies [f21190c]
479
+ - effect-app@4.0.0-beta.120
480
+
481
+ ## 4.0.0-beta.119
482
+
483
+ ### Patch Changes
484
+
485
+ - db7ba34: Filter SSE events stream by storeId namespace
486
+ - effect-app@4.0.0-beta.119
487
+
488
+ ## 4.0.0-beta.118
489
+
490
+ ### Patch Changes
491
+
492
+ - Update effect packages to 4.0.0-beta.52
493
+ - Updated dependencies [bd26832]
494
+ - Updated dependencies [08d2e70]
495
+ - Updated dependencies
496
+ - effect-app@4.0.0-beta.118
497
+
498
+ ## 4.0.0-beta.117
499
+
500
+ ### Patch Changes
501
+
502
+ - 1d85785: Wrap store seed effects with `Effect.uninterruptible` to prevent interruption during seeding
503
+ - effect-app@4.0.0-beta.117
504
+
505
+ ## 4.0.0-beta.116
506
+
507
+ ### Patch Changes
508
+
509
+ - 7d5cefc: SQL and Pg stores now scope seed migration records by namespace and table name in shared databases to avoid cross-namespace seed collisions.
510
+ - effect-app@4.0.0-beta.116
511
+
512
+ ## 4.0.0-beta.115
513
+
514
+ ### Patch Changes
515
+
516
+ - 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.
517
+ - effect-app@4.0.0-beta.115
518
+
519
+ ## 4.0.0-beta.114
520
+
521
+ ### Patch Changes
522
+
523
+ - 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.
524
+ - effect-app@4.0.0-beta.114
525
+
526
+ ## 4.0.0-beta.113
527
+
528
+ ### Minor Changes
529
+
530
+ - 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.
531
+
532
+ 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.
533
+
534
+ 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.
535
+
536
+ ### Patch Changes
537
+
538
+ - effect-app@4.0.0-beta.113
539
+
540
+ ## 4.0.0-beta.112
541
+
542
+ ### Patch Changes
543
+
544
+ - 8a4a6d2: fup
545
+ - effect-app@4.0.0-beta.112
546
+
547
+ ## 4.0.0-beta.111
548
+
549
+ ### Patch Changes
550
+
551
+ - ca94edf: fix typo
552
+ - Updated dependencies [ca94edf]
553
+ - effect-app@4.0.0-beta.111
554
+
555
+ ## 4.0.0-beta.110
556
+
557
+ ### Minor Changes
558
+
559
+ - 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`.
560
+
561
+ ### Patch Changes
562
+
563
+ - effect-app@4.0.0-beta.110
564
+
565
+ ## 4.0.0-beta.109
566
+
567
+ ### Patch Changes
568
+
569
+ - 82f66f1: use uninterruptiple
570
+ - effect-app@4.0.0-beta.109
571
+
572
+ ## 4.0.0-beta.108
573
+
574
+ ### Patch Changes
575
+
576
+ - Updated dependencies [3e46e7b]
577
+ - effect-app@4.0.0-beta.108
578
+
579
+ ## 4.0.0-beta.107
580
+
581
+ ### Patch Changes
582
+
583
+ - 902ca1b: fix
584
+ - effect-app@4.0.0-beta.107
585
+
586
+ ## 4.0.0-beta.106
587
+
588
+ ### Patch Changes
589
+
590
+ - f22a026: Use `Effect.cached` in `getOrCreateStoreEffect` for proper memoization of the resolver effect.
591
+ - effect-app@4.0.0-beta.106
592
+
593
+ ## 4.0.0-beta.105
594
+
595
+ ### Minor Changes
596
+
597
+ - 3d732b1: Rewrite `withRequestResolverCache` to use official `RequestResolver.withCache`, creating a cached resolver per ContextMap via `getOrCreateStoreEffect` with semaphore-guarded initialization.
598
+
599
+ ### Patch Changes
600
+
601
+ - 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.
602
+ - 5773159: Add `itemType` annotation to all repository spans
603
+ - effect-app@4.0.0-beta.105
604
+
605
+ ## 4.0.0-beta.104
606
+
607
+ ### Patch Changes
608
+
609
+ - Updated dependencies [e944bca]
610
+ - effect-app@4.0.0-beta.104
611
+
612
+ ## 4.0.0-beta.103
613
+
614
+ ### Patch Changes
615
+
616
+ - Updated dependencies [7119320]
617
+ - effect-app@4.0.0-beta.103
618
+
619
+ ## 4.0.0-beta.102
620
+
621
+ ### Patch Changes
622
+
623
+ - 62627e9: Fix boolean handling in SQL SELECT and WHERE
624
+ - effect-app@4.0.0-beta.102
625
+
626
+ ## 4.0.0-beta.101
627
+
628
+ ### Patch Changes
629
+
630
+ - effect-app@4.0.0-beta.101
631
+
632
+ ## 4.0.0-beta.100
633
+
634
+ ### Patch Changes
635
+
636
+ - 43611c7: enable cosmosdb large partition key hashes
637
+ - effect-app@4.0.0-beta.100
638
+
639
+ ## 4.0.0-beta.99
640
+
641
+ ### Patch Changes
642
+
643
+ - 6a0e008: remove artificial Cosmos bulkSet delays
644
+ - effect-app@4.0.0-beta.99
645
+
646
+ ## 4.0.0-beta.98
647
+
648
+ ### Patch Changes
649
+
650
+ - 5aed2e3: Add span to Cosmos `batchRemove` and include `namespace` attribute on all Cosmos store spans.
651
+ - effect-app@4.0.0-beta.98
652
+
653
+ ## 4.0.0-beta.97
654
+
655
+ ### Patch Changes
656
+
657
+ - 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.
658
+ - effect-app@4.0.0-beta.97
659
+
660
+ ## 4.0.0-beta.96
661
+
662
+ ### Patch Changes
663
+
664
+ - Updated dependencies [5615e47]
665
+ - effect-app@4.0.0-beta.96
666
+
667
+ ## 4.0.0-beta.95
668
+
669
+ ### Patch Changes
670
+
671
+ - 88838fb: Remove pick/omit customizations from Class/TaggedClass/Struct/TaggedStruct. Use `Struct.pick(X.fields, [...])` from `effect-app` instead.
672
+ - Updated dependencies [88838fb]
673
+ - effect-app@4.0.0-beta.95
674
+
675
+ ## 4.0.0-beta.94
676
+
677
+ ### Patch Changes
678
+
679
+ - effect-app@4.0.0-beta.94
680
+
681
+ ## 4.0.0-beta.93
682
+
683
+ ### Patch Changes
684
+
685
+ - 2d85646: fix SQL includes-any/all double-quoting values for SQLite (JSON.stringify only needed for Postgres jsonb)
686
+ - effect-app@4.0.0-beta.93
687
+
688
+ ## 4.0.0-beta.92
689
+
690
+ ### Patch Changes
691
+
692
+ - b4ffee0: fix SQL whereEvery double-negation bug causing wrong query when operators like notIn are used (especially with empty arrays)
693
+ - effect-app@4.0.0-beta.92
694
+
695
+ ## 4.0.0-beta.91
696
+
697
+ ### Patch Changes
698
+
699
+ - Updated dependencies [738b482]
700
+ - effect-app@4.0.0-beta.91
701
+
702
+ ## 4.0.0-beta.90
703
+
704
+ ### Patch Changes
705
+
706
+ - d786b91: Fix SQL `whereSome`/`whereEvery` array relation queries using `EXISTS` with `json_each` (SQLite) / `jsonb_array_elements` (Pg).
707
+ - effect-app@4.0.0-beta.90
708
+
709
+ ## 4.0.0-beta.89
710
+
711
+ ### Patch Changes
712
+
713
+ - 9a9e46c: Fix SQL select queries to read `_etag` from column instead of JSON data, preventing INSERT on update.
714
+ - effect-app@4.0.0-beta.89
715
+
716
+ ## 4.0.0-beta.88
717
+
718
+ ### Patch Changes
719
+
720
+ - dfd5562: Fix SQL `IN`/`NOT IN` with null values to use `IS NULL`/`IS NOT NULL` instead of `IN (NULL, ...)`.
721
+ - effect-app@4.0.0-beta.88
722
+
723
+ ## 4.0.0-beta.87
724
+
725
+ ### Patch Changes
726
+
727
+ - 5a709d1: Fix SQLite select query type coercion using `json_quote` and apply defaultValues in SQL WHERE clauses via `COALESCE`.
728
+ - effect-app@4.0.0-beta.87
729
+
730
+ ## 4.0.0-beta.86
731
+
732
+ ### Patch Changes
733
+
734
+ - 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.
735
+ - effect-app@4.0.0-beta.86
736
+
737
+ ## 4.0.0-beta.85
738
+
739
+ ### Patch Changes
740
+
741
+ - 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.
742
+ - effect-app@4.0.0-beta.85
743
+
744
+ ## 4.0.0-beta.84
745
+
746
+ ### Patch Changes
747
+
748
+ - 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).
749
+ - effect-app@4.0.0-beta.84
750
+
751
+ ## 4.0.0-beta.83
752
+
753
+ ### Patch Changes
754
+
755
+ - 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.
756
+ - effect-app@4.0.0-beta.83
757
+
758
+ ## 4.0.0-beta.82
759
+
760
+ ### Minor Changes
761
+
762
+ - 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.
763
+ - 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.
764
+ - 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.
765
+ - 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`.
766
+
767
+ ### Patch Changes
768
+
769
+ - effect-app@4.0.0-beta.82
770
+
771
+ ## 4.0.0-beta.81
772
+
773
+ ### Minor Changes
774
+
775
+ - fd67f0b: Add `withRequestResolverCache` to scope RequestResolver cache to the ContextMap (request-scoped). Add `getOrCreateStore` to ContextMap for generic scoped storage.
776
+
777
+ ### Patch Changes
778
+
779
+ - effect-app@4.0.0-beta.81
780
+
781
+ ## 4.0.0-beta.80
782
+
783
+ ### Patch Changes
784
+
785
+ - eaf0115: enforce local
786
+ - effect-app@4.0.0-beta.80
787
+
788
+ ## 4.0.0-beta.79
789
+
790
+ ### Patch Changes
791
+
792
+ - 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).
793
+ - Updated dependencies [d16845e]
794
+ - effect-app@4.0.0-beta.79
795
+
796
+ ## 4.0.0-beta.78
797
+
798
+ ### Minor Changes
799
+
800
+ - 818e047: Router `matchFor` no longer requires `meta` property on resource when requests carry `moduleName` from `TaggedRequestFor`
801
+
802
+ ### Patch Changes
803
+
804
+ - effect-app@4.0.0-beta.78
805
+
806
+ ## 4.0.0-beta.77
807
+
808
+ ### Patch Changes
809
+
810
+ - Updated dependencies [3613e87]
811
+ - effect-app@4.0.0-beta.77
812
+
813
+ ## 4.0.0-beta.76
814
+
815
+ ### Patch Changes
816
+
817
+ - fac725d: update effect to latest beta
818
+ - Updated dependencies [a5248a9]
819
+ - Updated dependencies [fac725d]
820
+ - effect-app@4.0.0-beta.76
821
+
822
+ ## 4.0.0-beta.75
823
+
824
+ ### Patch Changes
825
+
826
+ - Updated dependencies [24f0a5a]
827
+ - effect-app@4.0.0-beta.75
828
+
829
+ ## 4.0.0-beta.74
830
+
831
+ ### Patch Changes
832
+
833
+ - Updated dependencies [54ec1ef]
834
+ - effect-app@4.0.0-beta.74
835
+
836
+ ## 4.0.0-beta.73
837
+
838
+ ### Patch Changes
839
+
840
+ - b53c59e: fix signature
841
+ - effect-app@4.0.0-beta.73
842
+
843
+ ## 4.0.0-beta.72
844
+
845
+ ### Patch Changes
846
+
847
+ - Updated dependencies [0541f0d]
848
+ - effect-app@4.0.0-beta.72
849
+
850
+ ## 4.0.0-beta.71
851
+
852
+ ### Patch Changes
853
+
854
+ - beae3a0: Remove `withDefaultConstructor` wrapper, use `S.withConstructorDefault` directly with `Effect.succeed`/`Effect.sync`.
855
+ - Updated dependencies [beae3a0]
856
+ - effect-app@4.0.0-beta.71
857
+
858
+ ## 4.0.0-beta.70
859
+
860
+ ### Patch Changes
861
+
862
+ - fdb9cb3: cleanup
863
+ - effect-app@4.0.0-beta.70
864
+
865
+ ## 4.0.0-beta.69
866
+
867
+ ### Patch Changes
868
+
869
+ - dc465e3: update to latest effect beta
870
+ - Updated dependencies [dc465e3]
871
+ - effect-app@4.0.0-beta.69
872
+
873
+ ## 4.0.0-beta.68
874
+
875
+ ### Patch Changes
876
+
877
+ - Updated dependencies [e6f2341]
878
+ - effect-app@4.0.0-beta.68
879
+
880
+ ## 4.0.0-beta.67
881
+
882
+ ### Patch Changes
883
+
884
+ - effect-app@4.0.0-beta.67
885
+
886
+ ## 4.0.0-beta.66
887
+
888
+ ### Patch Changes
889
+
890
+ - Updated dependencies [edc52e4]
891
+ - effect-app@4.0.0-beta.66
892
+
893
+ ## 4.0.0-beta.65
894
+
895
+ ### Patch Changes
896
+
897
+ - Updated dependencies [31739d7]
898
+ - Updated dependencies [1f103b2]
899
+ - effect-app@4.0.0-beta.65
900
+
901
+ ## 4.0.0-beta.64
902
+
903
+ ### Patch Changes
904
+
905
+ - Updated dependencies [c1a6fdc]
906
+ - effect-app@4.0.0-beta.64
907
+
908
+ ## 4.0.0-beta.63
909
+
910
+ ### Patch Changes
911
+
912
+ - 1f9d7da: fix missing toCodecJson usages
913
+ - effect-app@4.0.0-beta.63
914
+
915
+ ## 4.0.0-beta.62
916
+
917
+ ### Patch Changes
918
+
919
+ - Updated dependencies [0b21a02]
920
+ - effect-app@4.0.0-beta.62
921
+
922
+ ## 4.0.0-beta.61
923
+
924
+ ### Patch Changes
925
+
926
+ - effect-app@4.0.0-beta.61
927
+
928
+ ## 4.0.0-beta.60
929
+
930
+ ### Patch Changes
931
+
932
+ - 29c39d2: Fix repository `find` with transformed id fields in tagged union schemas
933
+ - effect-app@4.0.0-beta.60
934
+
935
+ ## 4.0.0-beta.59
936
+
937
+ ### Patch Changes
938
+
939
+ - cec026d: update packages
940
+ - Updated dependencies [cec026d]
941
+ - effect-app@4.0.0-beta.59
942
+
943
+ ## 4.0.0-beta.58
944
+
945
+ ### Patch Changes
946
+
947
+ - effect-app@4.0.0-beta.58
948
+
949
+ ## 4.0.0-beta.57
950
+
951
+ ### Patch Changes
952
+
953
+ - fbf47b8: Fix repository `find` with transformed id fields (e.g. composite ids using `decodeTo`)
954
+ - effect-app@4.0.0-beta.57
955
+
956
+ ## 4.0.0-beta.56
957
+
958
+ ### Patch Changes
959
+
960
+ - effect-app@4.0.0-beta.56
961
+
962
+ ## 4.0.0-beta.55
963
+
964
+ ### Patch Changes
965
+
966
+ - effect-app@4.0.0-beta.55
967
+
968
+ ## 4.0.0-beta.54
969
+
970
+ ### Patch Changes
971
+
972
+ - d867272: the return of `Context`
973
+ - Updated dependencies [d867272]
974
+ - effect-app@4.0.0-beta.54
975
+
976
+ ## 4.0.0-beta.53
977
+
978
+ ### Patch Changes
979
+
980
+ - Updated dependencies [ee9694e]
981
+ - effect-app@4.0.0-beta.53
982
+
983
+ ## 4.0.0-beta.52
984
+
985
+ ### Patch Changes
986
+
987
+ - Updated dependencies [6252808]
988
+ - effect-app@4.0.0-beta.52
989
+
990
+ ## 4.0.0-beta.51
991
+
992
+ ### Patch Changes
993
+
994
+ - effect-app@4.0.0-beta.51
995
+
996
+ ## 4.0.0-beta.50
997
+
998
+ ### Patch Changes
999
+
1000
+ - effect-app@4.0.0-beta.50
1001
+
1002
+ ## 4.0.0-beta.49
1003
+
1004
+ ### Patch Changes
1005
+
1006
+ - Updated dependencies [e585c9c]
1007
+ - effect-app@4.0.0-beta.49
1008
+
1009
+ ## 4.0.0-beta.48
1010
+
1011
+ ### Patch Changes
1012
+
1013
+ - Updated dependencies [0c88f78]
1014
+ - effect-app@4.0.0-beta.48
1015
+
1016
+ ## 4.0.0-beta.47
1017
+
1018
+ ### Patch Changes
1019
+
1020
+ - Updated dependencies [3365758]
1021
+ - effect-app@4.0.0-beta.47
1022
+
1023
+ ## 4.0.0-beta.46
1024
+
1025
+ ### Patch Changes
1026
+
1027
+ - effect-app@4.0.0-beta.46
1028
+
1029
+ ## 4.0.0-beta.45
1030
+
1031
+ ### Patch Changes
1032
+
1033
+ - 10b55ff: update packages
1034
+ - Updated dependencies [10b55ff]
1035
+ - effect-app@4.0.0-beta.45
1036
+
1037
+ ## 4.0.0-beta.44
1038
+
1039
+ ### Patch Changes
1040
+
1041
+ - a37aa38: Update to effect beta 43
1042
+ - Updated dependencies [a37aa38]
1043
+ - effect-app@4.0.0-beta.44
1044
+
1045
+ ## 4.0.0-beta.43
1046
+
1047
+ ### Patch Changes
1048
+
1049
+ - dab6992: no need for .lock.lock
1050
+ - effect-app@4.0.0-beta.43
1051
+
1052
+ ## 4.0.0-beta.42
1053
+
1054
+ ### Patch Changes
1055
+
1056
+ - effect-app@4.0.0-beta.42
1057
+
1058
+ ## 4.0.0-beta.41
1059
+
1060
+ ### Patch Changes
1061
+
1062
+ - effect-app@4.0.0-beta.41
1063
+
1064
+ ## 4.0.0-beta.40
1065
+
1066
+ ### Patch Changes
1067
+
1068
+ - effect-app@4.0.0-beta.40
1069
+
1070
+ ## 4.0.0-beta.39
1071
+
1072
+ ### Patch Changes
1073
+
1074
+ - Updated dependencies [10e90d5]
1075
+ - effect-app@4.0.0-beta.39
1076
+
1077
+ ## 4.0.0-beta.38
1078
+
1079
+ ### Patch Changes
1080
+
1081
+ - Updated dependencies [0b3e00e]
1082
+ - effect-app@4.0.0-beta.38
1083
+
1084
+ ## 4.0.0-beta.37
1085
+
1086
+ ### Patch Changes
1087
+
1088
+ - Updated dependencies [947fe20]
1089
+ - effect-app@4.0.0-beta.37
1090
+
1091
+ ## 4.0.0-beta.36
1092
+
1093
+ ### Patch Changes
1094
+
1095
+ - effect-app@4.0.0-beta.36
1096
+
1097
+ ## 4.0.0-beta.35
1098
+
1099
+ ### Patch Changes
1100
+
1101
+ - effect-app@4.0.0-beta.35
1102
+
1103
+ ## 4.0.0-beta.34
1104
+
1105
+ ### Patch Changes
1106
+
1107
+ - 8c645d5: update to latest effect
1108
+ - Updated dependencies [8c645d5]
1109
+ - effect-app@4.0.0-beta.34
1110
+
1111
+ ## 4.0.0-beta.33
1112
+
1113
+ ### Patch Changes
1114
+
1115
+ - 4b95009: use Finite instead of Number
1116
+ - Updated dependencies [4b95009]
1117
+ - effect-app@4.0.0-beta.33
1118
+
1119
+ ## 4.0.0-beta.32
1120
+
1121
+ ### Patch Changes
1122
+
1123
+ - Updated dependencies [01d862a]
1124
+ - effect-app@4.0.0-beta.32
1125
+
1126
+ ## 4.0.0-beta.31
1127
+
1128
+ ### Patch Changes
1129
+
1130
+ - Updated dependencies [6b6d601]
1131
+ - effect-app@4.0.0-beta.31
1132
+
1133
+ ## 4.0.0-beta.30
1134
+
1135
+ ### Patch Changes
1136
+
1137
+ - Updated dependencies [5ec1f45]
1138
+ - effect-app@4.0.0-beta.30
1139
+
1140
+ ## 4.0.0-beta.29
1141
+
1142
+ ### Patch Changes
1143
+
1144
+ - Updated dependencies [a899d46]
1145
+ - effect-app@4.0.0-beta.29
1146
+
1147
+ ## 4.0.0-beta.28
1148
+
1149
+ ### Patch Changes
1150
+
1151
+ - Updated dependencies [0099208]
1152
+ - effect-app@4.0.0-beta.28
1153
+
1154
+ ## 4.0.0-beta.27
1155
+
1156
+ ### Patch Changes
1157
+
1158
+ - 601a1ff: update effect to 4.0.0-beta.37 and drop the Schema Class disableValidation workaround now that the patched effect schema covers it
1159
+ - Updated dependencies [601a1ff]
1160
+ - effect-app@4.0.0-beta.27
1161
+
1162
+ ## 4.0.0-beta.26
1163
+
1164
+ ### Patch Changes
1165
+
1166
+ - Updated dependencies [4da28e2]
1167
+ - effect-app@4.0.0-beta.26
1168
+
1169
+ ## 4.0.0-beta.25
1170
+
1171
+ ### Patch Changes
1172
+
1173
+ - Updated dependencies [6282d4b]
1174
+ - effect-app@4.0.0-beta.25
1175
+
1176
+ ## 4.0.0-beta.24
1177
+
1178
+ ### Patch Changes
1179
+
1180
+ - Updated dependencies [32f71bf]
1181
+ - effect-app@4.0.0-beta.24
1182
+
1183
+ ## 4.0.0-beta.23
1184
+
1185
+ ### Patch Changes
1186
+
1187
+ - Updated dependencies [ea08a79]
1188
+ - effect-app@4.0.0-beta.23
1189
+
1190
+ ## 4.0.0-beta.22
1191
+
1192
+ ### Patch Changes
1193
+
1194
+ - effect-app@4.0.0-beta.22
1195
+
1196
+ ## 4.0.0-beta.21
1197
+
1198
+ ### Patch Changes
1199
+
1200
+ - 75c72ee: update effect to 4.0.0-beta.36, adapt to Option<A> revert from A | undefined
1201
+ - Updated dependencies [0d349e7]
1202
+ - Updated dependencies [75c72ee]
1203
+ - effect-app@4.0.0-beta.21
1204
+
1205
+ ## 4.0.0-beta.20
1206
+
1207
+ ### Patch Changes
1208
+
1209
+ - aa921db: Fix `TaggedRequest` no-config error type inference so requests without a third argument infer the same default error schema as requests with explicit success config.
1210
+ - Updated dependencies [aa921db]
1211
+ - effect-app@4.0.0-beta.20
1212
+
1213
+ ## 4.0.0-beta.19
1214
+
1215
+ ### Patch Changes
1216
+
1217
+ - Updated dependencies [ffc10a4]
1218
+ - effect-app@4.0.0-beta.19
1219
+
3
1220
  ## 4.0.0-beta.18
4
1221
 
5
1222
  ### Patch Changes