effect-app 4.0.0-beta.2 → 4.0.0-beta.200

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 (224) hide show
  1. package/CHANGELOG.md +960 -0
  2. package/dist/Array.d.ts +1 -1
  3. package/dist/Chunk.d.ts +1 -1
  4. package/dist/Chunk.d.ts.map +1 -1
  5. package/dist/Config/SecretURL.d.ts +1 -1
  6. package/dist/Config/SecretURL.d.ts.map +1 -1
  7. package/dist/Config/SecretURL.js +2 -2
  8. package/dist/Config/internal/configSecretURL.d.ts +1 -1
  9. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  10. package/dist/Config.d.ts +7 -0
  11. package/dist/Config.d.ts.map +1 -0
  12. package/dist/Config.js +6 -0
  13. package/dist/ConfigProvider.d.ts +39 -0
  14. package/dist/ConfigProvider.d.ts.map +1 -0
  15. package/dist/ConfigProvider.js +42 -0
  16. package/dist/Context.d.ts +40 -0
  17. package/dist/Context.d.ts.map +1 -0
  18. package/dist/Context.js +67 -0
  19. package/dist/Effect.d.ts +9 -10
  20. package/dist/Effect.d.ts.map +1 -1
  21. package/dist/Effect.js +3 -6
  22. package/dist/Function.d.ts +1 -1
  23. package/dist/Function.d.ts.map +1 -1
  24. package/dist/Inputify.type.d.ts +1 -1
  25. package/dist/Layer.d.ts +7 -6
  26. package/dist/Layer.d.ts.map +1 -1
  27. package/dist/Layer.js +1 -1
  28. package/dist/NonEmptySet.d.ts +1 -1
  29. package/dist/NonEmptySet.d.ts.map +1 -1
  30. package/dist/Option.d.ts +1 -1
  31. package/dist/Option.d.ts.map +1 -1
  32. package/dist/Pure.d.ts +5 -5
  33. package/dist/Pure.d.ts.map +1 -1
  34. package/dist/Pure.js +13 -13
  35. package/dist/Schema/Class.d.ts +66 -20
  36. package/dist/Schema/Class.d.ts.map +1 -1
  37. package/dist/Schema/Class.js +189 -22
  38. package/dist/Schema/FastCheck.d.ts +1 -1
  39. package/dist/Schema/FastCheck.d.ts.map +1 -1
  40. package/dist/Schema/Methods.d.ts +1 -1
  41. package/dist/Schema/SchemaParser.d.ts +5 -0
  42. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  43. package/dist/Schema/SchemaParser.js +6 -0
  44. package/dist/Schema/SpecialJsonSchema.d.ts +33 -0
  45. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
  46. package/dist/Schema/SpecialJsonSchema.js +122 -0
  47. package/dist/Schema/SpecialOpenApi.d.ts +32 -0
  48. package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
  49. package/dist/Schema/SpecialOpenApi.js +123 -0
  50. package/dist/Schema/brand.d.ts +14 -6
  51. package/dist/Schema/brand.d.ts.map +1 -1
  52. package/dist/Schema/brand.js +1 -1
  53. package/dist/Schema/email.d.ts +1 -1
  54. package/dist/Schema/email.d.ts.map +1 -1
  55. package/dist/Schema/email.js +9 -5
  56. package/dist/Schema/ext.d.ts +121 -48
  57. package/dist/Schema/ext.d.ts.map +1 -1
  58. package/dist/Schema/ext.js +134 -52
  59. package/dist/Schema/moreStrings.d.ts +117 -17
  60. package/dist/Schema/moreStrings.d.ts.map +1 -1
  61. package/dist/Schema/moreStrings.js +19 -18
  62. package/dist/Schema/numbers.d.ts +127 -15
  63. package/dist/Schema/numbers.d.ts.map +1 -1
  64. package/dist/Schema/numbers.js +10 -12
  65. package/dist/Schema/phoneNumber.d.ts +1 -1
  66. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  67. package/dist/Schema/phoneNumber.js +8 -4
  68. package/dist/Schema/schema.d.ts +1 -1
  69. package/dist/Schema/strings.d.ts +37 -5
  70. package/dist/Schema/strings.d.ts.map +1 -1
  71. package/dist/Schema/strings.js +1 -5
  72. package/dist/Schema.d.ts +159 -58
  73. package/dist/Schema.d.ts.map +1 -1
  74. package/dist/Schema.js +136 -68
  75. package/dist/Set.d.ts +1 -1
  76. package/dist/Set.d.ts.map +1 -1
  77. package/dist/TypeTest.d.ts +1 -1
  78. package/dist/Types.d.ts +1 -1
  79. package/dist/Widen.type.d.ts +1 -1
  80. package/dist/_ext/Array.d.ts +1 -1
  81. package/dist/_ext/Array.d.ts.map +1 -1
  82. package/dist/_ext/date.d.ts +1 -1
  83. package/dist/_ext/misc.d.ts +1 -1
  84. package/dist/_ext/ord.ext.d.ts +1 -1
  85. package/dist/_ext/ord.ext.d.ts.map +1 -1
  86. package/dist/builtin.d.ts +1 -1
  87. package/dist/builtin.d.ts.map +1 -1
  88. package/dist/client/InvalidationKeys.d.ts +29 -0
  89. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  90. package/dist/client/InvalidationKeys.js +33 -0
  91. package/dist/client/apiClientFactory.d.ts +18 -32
  92. package/dist/client/apiClientFactory.d.ts.map +1 -1
  93. package/dist/client/apiClientFactory.js +98 -36
  94. package/dist/client/clientFor.d.ts +51 -17
  95. package/dist/client/clientFor.d.ts.map +1 -1
  96. package/dist/client/clientFor.js +9 -1
  97. package/dist/client/errors.d.ts +49 -25
  98. package/dist/client/errors.d.ts.map +1 -1
  99. package/dist/client/errors.js +43 -17
  100. package/dist/client/makeClient.d.ts +468 -32
  101. package/dist/client/makeClient.d.ts.map +1 -1
  102. package/dist/client/makeClient.js +61 -34
  103. package/dist/client.d.ts +2 -1
  104. package/dist/client.d.ts.map +1 -1
  105. package/dist/client.js +2 -1
  106. package/dist/faker.d.ts +1 -1
  107. package/dist/faker.d.ts.map +1 -1
  108. package/dist/http/Request.d.ts +2 -2
  109. package/dist/http/Request.d.ts.map +1 -1
  110. package/dist/http/Request.js +5 -5
  111. package/dist/http/internal/lib.d.ts +1 -1
  112. package/dist/http.d.ts +1 -1
  113. package/dist/ids.d.ts +9 -9
  114. package/dist/ids.d.ts.map +1 -1
  115. package/dist/ids.js +3 -2
  116. package/dist/index.d.ts +5 -9
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +6 -9
  119. package/dist/logger.d.ts +1 -1
  120. package/dist/middleware.d.ts +16 -9
  121. package/dist/middleware.d.ts.map +1 -1
  122. package/dist/middleware.js +13 -9
  123. package/dist/rpc/Invalidation.d.ts +397 -0
  124. package/dist/rpc/Invalidation.d.ts.map +1 -0
  125. package/dist/rpc/Invalidation.js +150 -0
  126. package/dist/rpc/MiddlewareMaker.d.ts +6 -5
  127. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  128. package/dist/rpc/MiddlewareMaker.js +51 -28
  129. package/dist/rpc/RpcContextMap.d.ts +3 -3
  130. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  131. package/dist/rpc/RpcContextMap.js +4 -4
  132. package/dist/rpc/RpcMiddleware.d.ts +6 -5
  133. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  134. package/dist/rpc/RpcMiddleware.js +1 -1
  135. package/dist/rpc.d.ts +2 -2
  136. package/dist/rpc.d.ts.map +1 -1
  137. package/dist/rpc.js +2 -2
  138. package/dist/transform.d.ts +1 -1
  139. package/dist/transform.d.ts.map +1 -1
  140. package/dist/transform.js +3 -3
  141. package/dist/utils/effectify.d.ts +1 -1
  142. package/dist/utils/extend.d.ts +1 -1
  143. package/dist/utils/extend.d.ts.map +1 -1
  144. package/dist/utils/gen.d.ts +2 -2
  145. package/dist/utils/gen.d.ts.map +1 -1
  146. package/dist/utils/logLevel.d.ts +2 -2
  147. package/dist/utils/logLevel.d.ts.map +1 -1
  148. package/dist/utils/logger.d.ts +3 -3
  149. package/dist/utils/logger.d.ts.map +1 -1
  150. package/dist/utils/logger.js +3 -3
  151. package/dist/utils.d.ts +48 -10
  152. package/dist/utils.d.ts.map +1 -1
  153. package/dist/utils.js +33 -8
  154. package/dist/validation/validators.d.ts +1 -1
  155. package/dist/validation/validators.d.ts.map +1 -1
  156. package/dist/validation.d.ts +1 -1
  157. package/dist/validation.d.ts.map +1 -1
  158. package/package.json +46 -28
  159. package/src/Config/SecretURL.ts +2 -1
  160. package/src/Config.ts +14 -0
  161. package/src/ConfigProvider.ts +48 -0
  162. package/src/{ServiceMap.ts → Context.ts} +58 -64
  163. package/src/Effect.ts +12 -14
  164. package/src/Layer.ts +6 -5
  165. package/src/Pure.ts +17 -18
  166. package/src/Schema/Class.ts +268 -62
  167. package/src/Schema/SchemaParser.ts +12 -0
  168. package/src/Schema/SpecialJsonSchema.ts +137 -0
  169. package/src/Schema/SpecialOpenApi.ts +130 -0
  170. package/src/Schema/brand.ts +21 -7
  171. package/src/Schema/email.ts +10 -3
  172. package/src/Schema/ext.ts +226 -86
  173. package/src/Schema/moreStrings.ts +37 -32
  174. package/src/Schema/numbers.ts +14 -16
  175. package/src/Schema/phoneNumber.ts +8 -2
  176. package/src/Schema/strings.ts +4 -8
  177. package/src/Schema.ts +350 -107
  178. package/src/client/InvalidationKeys.ts +50 -0
  179. package/src/client/apiClientFactory.ts +227 -136
  180. package/src/client/clientFor.ts +86 -29
  181. package/src/client/errors.ts +61 -26
  182. package/src/client/makeClient.ts +530 -80
  183. package/src/client.ts +1 -0
  184. package/src/http/Request.ts +7 -4
  185. package/src/ids.ts +3 -2
  186. package/src/index.ts +5 -11
  187. package/src/middleware.ts +12 -10
  188. package/src/rpc/Invalidation.ts +221 -0
  189. package/src/rpc/MiddlewareMaker.ts +61 -51
  190. package/src/rpc/README.md +2 -2
  191. package/src/rpc/RpcContextMap.ts +6 -5
  192. package/src/rpc/RpcMiddleware.ts +6 -5
  193. package/src/rpc.ts +1 -1
  194. package/src/transform.ts +2 -2
  195. package/src/utils/gen.ts +1 -1
  196. package/src/utils/logger.ts +2 -2
  197. package/src/utils.ts +73 -15
  198. package/test/dist/moreStrings.test.d.ts.map +1 -0
  199. package/test/dist/rpc.test.d.ts.map +1 -1
  200. package/test/dist/secretURL.test.d.ts.map +1 -0
  201. package/test/dist/special.test.d.ts.map +1 -0
  202. package/test/moreStrings.test.ts +17 -0
  203. package/test/rpc.test.ts +38 -6
  204. package/test/schema.test.ts +609 -4
  205. package/test/secretURL.test.ts +157 -0
  206. package/test/special.test.ts +1023 -0
  207. package/test/utils.test.ts +6 -6
  208. package/tsconfig.base.json +3 -4
  209. package/tsconfig.json +0 -1
  210. package/tsconfig.json.bak +2 -2
  211. package/tsconfig.src.json +29 -29
  212. package/tsconfig.test.json +2 -2
  213. package/dist/Operations.d.ts +0 -87
  214. package/dist/Operations.d.ts.map +0 -1
  215. package/dist/Operations.js +0 -29
  216. package/dist/ServiceMap.d.ts +0 -44
  217. package/dist/ServiceMap.d.ts.map +0 -1
  218. package/dist/ServiceMap.js +0 -91
  219. package/dist/Struct.d.ts +0 -44
  220. package/dist/Struct.d.ts.map +0 -1
  221. package/dist/Struct.js +0 -29
  222. package/eslint.config.mjs +0 -26
  223. package/src/Operations.ts +0 -55
  224. package/src/Struct.ts +0 -54
package/CHANGELOG.md CHANGED
@@ -1,5 +1,965 @@
1
1
  # @effect-app/prelude
2
2
 
3
+ ## 4.0.0-beta.200
4
+
5
+ ### Patch Changes
6
+
7
+ - 8f1cf6a: able to configure schema concurrency
8
+ - 0cff7c1: workaround middleware error issue
9
+
10
+ ## 4.0.0-beta.199
11
+
12
+ ## 4.0.0-beta.198
13
+
14
+ ### Patch Changes
15
+
16
+ - 32dbc54: fix stream type when no success specified
17
+
18
+ ## 4.0.0-beta.197
19
+
20
+ ### Minor Changes
21
+
22
+ - 3dc0d2a: Add streaming as a `stream: true` config option on `Query` / `Command` instead of a separate request type.
23
+
24
+ `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).
25
+
26
+ ```ts
27
+ // Query that streams results
28
+ Req.Query<T>()("Tag", {}, { stream: true, success: ... })
29
+
30
+ // Command that streams results
31
+ Req.Command<T>()("Tag", {}, { stream: true, success: ... })
32
+ ```
33
+
34
+ Vue client mapping (per-handler properties mirror the non-stream API — `.query`, `.fn`, `.mutate`):
35
+
36
+ - `query` + `stream: true` → exposes `.query` (read-only streaming, tracked Vue Query). Helper map key: `${name}Query`.
37
+ - `command` + `stream: true` → exposes `.fn` and `.mutate` (mutating streaming).
38
+ - Plain `query` / `command` unchanged.
39
+
40
+ Server routing dispatches via the new `stream` flag (`makeStreamRpc` for streaming commands/queries, `makeCommandRpc` / `Rpc.make` otherwise).
41
+
42
+ 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.
43
+
44
+ **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.
45
+
46
+ ## 4.0.0-beta.196
47
+
48
+ ## 4.0.0-beta.195
49
+
50
+ ### Patch Changes
51
+
52
+ - 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.
53
+
54
+ 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`.
55
+
56
+ `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".
57
+
58
+ 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.
59
+
60
+ ## 4.0.0-beta.194
61
+
62
+ ## 4.0.0-beta.193
63
+
64
+ ## 4.0.0-beta.192
65
+
66
+ ## 4.0.0-beta.191
67
+
68
+ ### Patch Changes
69
+
70
+ - 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`.
71
+
72
+ ## 4.0.0-beta.190
73
+
74
+ ### Patch Changes
75
+
76
+ - 985176b: Align request handler input typing with the request's `make` signature. Handlers are now classified as no-input only when the request schema declares no payload fields; any payload (even fully-optional) yields a function handler whose input matches `make`'s first parameter. Adds `HandlerInput<I>` and threads it through `CommandFromRequest`.
77
+
78
+ ## 4.0.0-beta.189
79
+
80
+ ### Patch Changes
81
+
82
+ - 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.
83
+
84
+ ## 4.0.0-beta.188
85
+
86
+ ### Patch Changes
87
+
88
+ - b2e438f: Remove Operations service and repo
89
+
90
+ ## 4.0.0-beta.187
91
+
92
+ ### Patch Changes
93
+
94
+ - 0d4e0b8: Fix `isGeneratorFunction` using `isObject` instead of `isFunction`: generator functions have `typeof === "function"`, not `"object"`, so the check always returned `false`. This caused `Command.streamFn` generator-form handlers to silently pass a raw `Generator` object rather than an `Effect<Stream>`, meaning the mutation was never executed.
95
+
96
+ ## 4.0.0-beta.186
97
+
98
+ ## 4.0.0-beta.185
99
+
100
+ ## 4.0.0-beta.184
101
+
102
+ ## 4.0.0-beta.183
103
+
104
+ ## 4.0.0-beta.182
105
+
106
+ ## 4.0.0-beta.181
107
+
108
+ ### Patch Changes
109
+
110
+ - 583393f: Default the stream `mutateStream` execute resolved value to the request's success type when no `final` schema is declared.
111
+
112
+ Previously the type defaulted to `void`, but the runtime already resolves with the last emitted value. Types now match runtime behaviour: `execute` returns `Final` if a `final` schema is set, otherwise the success type.
113
+
114
+ ## 4.0.0-beta.180
115
+
116
+ ### Minor Changes
117
+
118
+ - 7fa3045: V1/V2/V3: stream and command requests carry invalidation metadata
119
+
120
+ **V1** – stream final response includes metadata
121
+
122
+ - `Invalidation.StreamResponseChunk` wraps each stream item as `{ _tag: "value", value }` and appends `{ _tag: "done", metadata }` at the end carrying all accumulated invalidation keys.
123
+
124
+ **V2** – invalidation keys included in failures
125
+
126
+ - `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.
127
+ - `InvalidationMiddlewareLive` wraps command failures; `routing.ts` wraps stream failures.
128
+ - `apiClientFactory.ts` unwraps both on the client side, forwarding keys before re-failing with the original error.
129
+
130
+ **V3** – mid-stream metadata chunks
131
+
132
+ - `Invalidation.StreamResponseChunk` now also includes `{ _tag: "metadata", metadata }` for mid-stream invalidation.
133
+ - 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`).
134
+ - `apiClientFactory.ts` processes "metadata" chunks the same as "done" chunks, forwarding keys to `InvalidationKeysFromServer` immediately.
135
+ - `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.
136
+
137
+ ## 4.0.0-beta.179
138
+
139
+ ### Minor Changes
140
+
141
+ - 828d264: Stream requests now support an optional `final` schema that models the final success type of the stream. When declared, `mutateStream`'s execute effect resolves with the last emitted value typed as `Final` instead of `void`.
142
+
143
+ ```ts
144
+ class MyStream extends SomethingStream<MyStream>()(
145
+ "MyStream",
146
+ { id: S.String },
147
+ {
148
+ success: S.Union([OperationProgress, ExportComplete]),
149
+ final: ExportComplete, // execute now resolves with ExportComplete
150
+ }
151
+ ) {}
152
+ ```
153
+
154
+ ## 4.0.0-beta.178
155
+
156
+ ## 4.0.0-beta.177
157
+
158
+ ### Minor Changes
159
+
160
+ - 89d8b3a: Add Effect RPC `Stream` support to the wrapper.
161
+
162
+ - New `Stream` request constructor on `TaggedRequestFor` parallel to `Query`/`Command`. Emits resources with `type: "stream"`.
163
+ - 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).
164
+ - 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.
165
+ - New `RequestStreamHandler` / `RequestStreamHandlerWithInput` shapes in `clientFor.ts`; `RequestHandlers` dispatches on `type: "stream"`.
166
+
167
+ ## 4.0.0-beta.176
168
+
169
+ ### Patch Changes
170
+
171
+ - pass options
172
+
173
+ ## 4.0.0-beta.175
174
+
175
+ ## 4.0.0-beta.174
176
+
177
+ ### Minor Changes
178
+
179
+ - 821468d: Add server-driven cache invalidation via RPC response headers.
180
+
181
+ - `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.
182
+ - `effect-app/middleware`: new `InvalidationMiddleware` RPC middleware tag; included in `DefaultGenericMiddlewares`.
183
+ - `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`.
184
+ - `@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.
185
+ - `@effect-app/vue`: `invalidateQueries` / `useMutation` now reads server-provided invalidation keys from `InvalidationKeysFromServer` after each mutation and applies them alongside the client-side invalidation.
186
+
187
+ ## 4.0.0-beta.173
188
+
189
+ ## 4.0.0-beta.172
190
+
191
+ ## 4.0.0-beta.171
192
+
193
+ ### Patch Changes
194
+
195
+ - d71d976: fix
196
+
197
+ ## 4.0.0-beta.170
198
+
199
+ ### Patch Changes
200
+
201
+ - 8f09f77: fix
202
+
203
+ ## 4.0.0-beta.169
204
+
205
+ ### Patch Changes
206
+
207
+ - 8ae8b53: input mess
208
+
209
+ ## 4.0.0-beta.168
210
+
211
+ ### Patch Changes
212
+
213
+ - 178480a: Fix request handler input classification to use request schema fields instead of `make` parameters, preventing defaulted/nullable input fields from being treated as no-input handlers.
214
+
215
+ ## 4.0.0-beta.167
216
+
217
+ ### Patch Changes
218
+
219
+ - 140e192: Relax invalidation resource value constraints to allow arbitrary values while preserving query-only filtering in invalidation handling.
220
+
221
+ ## 4.0.0-beta.166
222
+
223
+ ### Patch Changes
224
+
225
+ - dbcc53b: Refactor command invalidation typing: declare resources via `Command<Self, Resources>()`, pass `invalidatesQueries` as the optional 4th argument, and enforce exact `clientFor` invalidation resources when required.
226
+
227
+ ## 4.0.0-beta.165
228
+
229
+ ### Minor Changes
230
+
231
+ - f88ea34: Move `makeQueryKey` into `effect-app/client` and update Vue source and tests to import it from the shared client module. Vue still re-exports `makeQueryKey` from `src/lib` for compatibility.
232
+
233
+ ## 4.0.0-beta.164
234
+
235
+ ### Minor Changes
236
+
237
+ - 8cb3de4: Add command invalidation helpers that preserve query-only resource types and pass mutation input and `Exit` results into invalidation callbacks. Update Vue `clientFor` to merge request-level invalidation config with call-site invalidation and require matching invalidation resources.
238
+
239
+ ## 4.0.0-beta.163
240
+
241
+ ### Patch Changes
242
+
243
+ - b952f19: bye cruft
244
+
245
+ ## 4.0.0-beta.162
246
+
247
+ ### Patch Changes
248
+
249
+ - b52b424: restore annotations for now
250
+
251
+ ## 4.0.0-beta.161
252
+
253
+ ## 4.0.0-beta.160
254
+
255
+ ### Patch Changes
256
+
257
+ - 505bfa9: Add concurrent decode helper APIs and migrate decode callsites to use them.
258
+
259
+ - Add `withDefaultParseOptions` and keep `DefaultParseOptions` centralized.
260
+ - Export `decodeEffectConcurrently` and `decodeUnknownEffectConcurrently` from Schema and SchemaParser modules.
261
+ - Update repository, queue, client, form, and CLI decode paths to use concurrent decode helpers.
262
+ - Keep schema constructors free of hardcoded parse concurrency overrides.
263
+
264
+ ## 4.0.0-beta.159
265
+
266
+ ### Patch Changes
267
+
268
+ - c1e73de:
269
+
270
+ ## 4.0.0-beta.158
271
+
272
+ ### Patch Changes
273
+
274
+ - 3c1f52d: improve: class strictness enabled by default again, allow `strict: false` as opt out for now.
275
+ - 6ae3050: Preserve class annotation parseOptions in relaxed declaration struct decoding so custom parse options (including concurrency defaults) are applied consistently.
276
+
277
+ ## 4.0.0-beta.157
278
+
279
+ ### Patch Changes
280
+
281
+ - 6fff09c: unify encoded function for when you use encodedKeys
282
+
283
+ ## 4.0.0-beta.156
284
+
285
+ ## 4.0.0-beta.155
286
+
287
+ ### Patch Changes
288
+
289
+ - c215db8: align TaggedUnion with array arg
290
+
291
+ ## 4.0.0-beta.154
292
+
293
+ ## 4.0.0-beta.153
294
+
295
+ ## 4.0.0-beta.152
296
+
297
+ ## 4.0.0-beta.151
298
+
299
+ ## 4.0.0-beta.150
300
+
301
+ ### Patch Changes
302
+
303
+ - 85a8275: Expose `make`, `makeOption`, and `makeEffect` static helpers on request classes created via `Query`/`Command`.
304
+
305
+ ## 4.0.0-beta.149
306
+
307
+ ### Patch Changes
308
+
309
+ - f317c5e: Preserve omitted-input make helpers through Schema.Opaque when the wrapped schema allows optional or default-only constructor input.
310
+
311
+ ## 4.0.0-beta.148
312
+
313
+ ### Patch Changes
314
+
315
+ - 199e9a5: Allow Struct and TaggedStruct make helpers to omit input when every constructor field is optional or defaulted, and preserve widening copy typings through a lighter named public type to improve TypeScript editor responsiveness.
316
+
317
+ ## 4.0.0-beta.147
318
+
319
+ ### Patch Changes
320
+
321
+ - 47e3742: Preserve Struct.copy through `annotate`, `annotateKey`, and `mapFields` chains, and add tests covering chained copy behavior on Struct schemas.
322
+
323
+ ## 4.0.0-beta.146
324
+
325
+ ### Patch Changes
326
+
327
+ - a4dff57: Adjust Struct and TaggedStruct copy typing to follow class-style widening constraints while keeping structural copy runtime behavior.
328
+
329
+ ## 4.0.0-beta.145
330
+
331
+ ### Patch Changes
332
+
333
+ - 12abb55: Refine schema copy behavior by keeping class copy constructor-based while using structural copy for Struct and TaggedStruct helpers.
334
+
335
+ ## 4.0.0-beta.144
336
+
337
+ ### Patch Changes
338
+
339
+ - 11422f8: Update request helper typing and runtime invocation to rely on schema `.make` instead of class constructors, avoiding `new`-based assumptions for request schemas.
340
+ - d31253f: Refactor eligible schema classes and tagged classes to Opaque schemas, and migrate constructor call sites to use `.make` for those models.
341
+
342
+ ## 4.0.0-beta.143
343
+
344
+ ### Patch Changes
345
+
346
+ - 79eb019: Remove redundant schema `title` annotations when they duplicate the schema `identifier`.
347
+
348
+ ## 4.0.0-beta.142
349
+
350
+ ### Minor Changes
351
+
352
+ - 025de47: Fold the encoded-override support from `ExtendedClass` and `ExtendedTaggedClass` into `Class`, `TaggedClass`, `ErrorClass`, and `TaggedErrorClass`, and update model codegen to detect the new second-generic form.
353
+
354
+ ### Patch Changes
355
+
356
+ - 3436d44: Extend `Schema.Opaque` in `effect-app/Schema` to support an optional encoded-type generic while preserving the original single-generic behavior.
357
+
358
+ ## 4.0.0-beta.141
359
+
360
+ ### Patch Changes
361
+
362
+ - 7c25dbb: Add relaxed wrapper support for `ErrorClass` and `TaggedErrorClass` in `effect-app/Schema`, matching the existing class wrapper behavior (`copy`, cached `ast`, and unbounded parse concurrency).
363
+
364
+ ## 4.0.0-beta.140
365
+
366
+ ## 4.0.0-beta.139
367
+
368
+ ## 4.0.0-beta.138
369
+
370
+ ## 4.0.0-beta.137
371
+
372
+ ## 4.0.0-beta.136
373
+
374
+ ## 4.0.0-beta.135
375
+
376
+ ### Patch Changes
377
+
378
+ - c7bbc41: fix - class should check type side
379
+
380
+ ## 4.0.0-beta.134
381
+
382
+ ### Patch Changes
383
+
384
+ - 9d3495e: Preserve field-level schema decode errors for relaxed Class and TaggedClass declarations so decode failures report nested constraints (for example min-length violations) instead of only a generic class-type mismatch.
385
+ - f353d48: Rename the Class/TaggedClass relaxed declaration option to `strict` (default `false`) and apply it to `Class`, `TaggedClass`, `ExtendedClass`, and `ExtendedTaggedClass`.
386
+
387
+ When `strict: true`, class decoding keeps strict class-level declaration behavior; by default, decoding remains relaxed and preserves field-level schema errors.
388
+
389
+ ## 4.0.0-beta.133
390
+
391
+ ### Patch Changes
392
+
393
+ - c3299f7: update packages
394
+
395
+ ## 4.0.0-beta.132
396
+
397
+ ## 4.0.0-beta.131
398
+
399
+ ## 4.0.0-beta.130
400
+
401
+ ### Patch Changes
402
+
403
+ - ea1bd46: fix: prevent expansion of nominal brands
404
+
405
+ ## 4.0.0-beta.129
406
+
407
+ ## 4.0.0-beta.128
408
+
409
+ ### Patch Changes
410
+
411
+ - 57db551: Split `TaggedRequestFor` into `Query` and `Command` factories, and mark generated request classes with `type: "query" | "command"`.
412
+
413
+ Vue client helpers now expose query-only helpers (`query`, `suspense`, `fetch`) for query requests and mutation-only helpers (`mutate`, `fetch`) for command requests.
414
+
415
+ ## 4.0.0-beta.127
416
+
417
+ ## 4.0.0-beta.126
418
+
419
+ ### Patch Changes
420
+
421
+ - 458bb1b: fix type
422
+
423
+ ## 4.0.0-beta.125
424
+
425
+ ## 4.0.0-beta.124
426
+
427
+ ### Patch Changes
428
+
429
+ - 256ae85: cleanup
430
+
431
+ ## 4.0.0-beta.123
432
+
433
+ ### Patch Changes
434
+
435
+ - 14aba14: fix: clientFor
436
+
437
+ ## 4.0.0-beta.122
438
+
439
+ ### Patch Changes
440
+
441
+ - f052d38: Replace `(...) => Effect.gen` with `Effect.fnUntraced` in `apiClientFactory`.
442
+
443
+ ## 4.0.0-beta.121
444
+
445
+ ### Patch Changes
446
+
447
+ - 5ac46cb: Make `Schema.provide` dual (pipeable)
448
+
449
+ ## 4.0.0-beta.120
450
+
451
+ ### Minor Changes
452
+
453
+ - f21190c: Add `copy` property to `Class` and `TaggedClass` for creating modified instances with updated fields. The `copy` method is cached per-class and supports both object and function-based updates, with pipeline support.
454
+
455
+ ## 4.0.0-beta.119
456
+
457
+ ## 4.0.0-beta.118
458
+
459
+ ### Minor Changes
460
+
461
+ - 08d2e70: Add `concurrency: "unbounded"` parseOptions annotation to Schema constructors (Struct, Array, NonEmptyArray, Record, TaggedStruct, ReadonlySet, ReadonlyMap, Class, TaggedClass) so all encode/decode operations automatically run with unbounded concurrency. Also override `mapFields` on Struct and Class/TaggedClass to preserve the annotation.
462
+
463
+ ### Patch Changes
464
+
465
+ - bd26832: Add nested anyOf flattening to JSON Schema post-processing
466
+ - Update effect packages to 4.0.0-beta.52
467
+
468
+ ## 4.0.0-beta.117
469
+
470
+ ## 4.0.0-beta.116
471
+
472
+ ## 4.0.0-beta.115
473
+
474
+ ## 4.0.0-beta.114
475
+
476
+ ## 4.0.0-beta.113
477
+
478
+ ## 4.0.0-beta.112
479
+
480
+ ## 4.0.0-beta.111
481
+
482
+ ### Patch Changes
483
+
484
+ - ca94edf: fix typo
485
+
486
+ ## 4.0.0-beta.110
487
+
488
+ ## 4.0.0-beta.109
489
+
490
+ ## 4.0.0-beta.108
491
+
492
+ ### Patch Changes
493
+
494
+ - 3e46e7b: allow excess props in openapi schemas
495
+
496
+ ## 4.0.0-beta.107
497
+
498
+ ## 4.0.0-beta.106
499
+
500
+ ## 4.0.0-beta.105
501
+
502
+ ## 4.0.0-beta.104
503
+
504
+ ### Minor Changes
505
+
506
+ - e944bca: Add `generateGuards` and `generateGuardsFor` to `TaggedUnion` / `ExtendTaggedUnion` for property-scoped type guards.
507
+
508
+ - `generateGuards("key")` — generic per-guard, no need to specify the container type
509
+ - `generateGuardsFor<A>()("key")` — curried, fixes `A` for concrete guard signatures
510
+
511
+ Both return `{ is{Tag}, isAnyOf }` guards that narrow the container type by its tagged union property.
512
+
513
+ ## 4.0.0-beta.103
514
+
515
+ ### Minor Changes
516
+
517
+ - 7119320: Add `generateGuards` to `TaggedUnion` / `ExtendTaggedUnion` for generating property-scoped type guards.
518
+
519
+ Usage: `MyUnion.generateGuards<MyType>()("propertyKey")` returns `{ is{Tag}, isAnyOf }` guards that narrow the container type by its tagged union property.
520
+
521
+ ## 4.0.0-beta.102
522
+
523
+ ## 4.0.0-beta.101
524
+
525
+ ## 4.0.0-beta.100
526
+
527
+ ## 4.0.0-beta.99
528
+
529
+ ## 4.0.0-beta.98
530
+
531
+ ## 4.0.0-beta.97
532
+
533
+ ## 4.0.0-beta.96
534
+
535
+ ### Patch Changes
536
+
537
+ - 5615e47: bs
538
+
539
+ ## 4.0.0-beta.95
540
+
541
+ ### Patch Changes
542
+
543
+ - 88838fb: Remove pick/omit customizations from Class/TaggedClass/Struct/TaggedStruct. Use `Struct.pick(X.fields, [...])` from `effect-app` instead.
544
+
545
+ ## 4.0.0-beta.94
546
+
547
+ ## 4.0.0-beta.93
548
+
549
+ ## 4.0.0-beta.92
550
+
551
+ ## 4.0.0-beta.91
552
+
553
+ ### Minor Changes
554
+
555
+ - 738b482: Add pick/omit to Struct and TaggedStruct
556
+
557
+ ## 4.0.0-beta.90
558
+
559
+ ## 4.0.0-beta.89
560
+
561
+ ## 4.0.0-beta.88
562
+
563
+ ## 4.0.0-beta.87
564
+
565
+ ## 4.0.0-beta.86
566
+
567
+ ## 4.0.0-beta.85
568
+
569
+ ## 4.0.0-beta.84
570
+
571
+ ## 4.0.0-beta.83
572
+
573
+ ## 4.0.0-beta.82
574
+
575
+ ## 4.0.0-beta.81
576
+
577
+ ## 4.0.0-beta.80
578
+
579
+ ## 4.0.0-beta.79
580
+
581
+ ### Minor Changes
582
+
583
+ - 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).
584
+
585
+ ## 4.0.0-beta.78
586
+
587
+ ## 4.0.0-beta.77
588
+
589
+ ### Minor Changes
590
+
591
+ - 3613e87: Add `TaggedRequestFor` helper to `makeRpcClient` that curries a `moduleName`, producing request classes with static `id` and `moduleName` properties. This enables passing request classes directly to `makeQueryKey` without going through `clientFor` first. The `clientFor` function no longer requires a `meta` property on the module when requests carry `moduleName`. The meta codegen preset now generates `Req = TaggedRequestFor(moduleName)`. Original `TaggedRequest` remains for backwards compatibility.
592
+
593
+ ## 4.0.0-beta.76
594
+
595
+ ### Patch Changes
596
+
597
+ - a5248a9: use new schema features
598
+ - fac725d: update effect to latest beta
599
+
600
+ ## 4.0.0-beta.75
601
+
602
+ ### Patch Changes
603
+
604
+ - 24f0a5a: rename Literal to Literals, no longer hiding Schema's singular Literal.
605
+
606
+ ## 4.0.0-beta.74
607
+
608
+ ### Patch Changes
609
+
610
+ - 54ec1ef: fix bs
611
+
612
+ ## 4.0.0-beta.73
613
+
614
+ ## 4.0.0-beta.72
615
+
616
+ ### Patch Changes
617
+
618
+ - 0541f0d: fix withDefault types
619
+
620
+ ## 4.0.0-beta.71
621
+
622
+ ### Minor Changes
623
+
624
+ - beae3a0: Remove `withDefaultConstructor` wrapper, use `S.withConstructorDefault` directly with `Effect.succeed`/`Effect.sync`.
625
+
626
+ ## 4.0.0-beta.70
627
+
628
+ ## 4.0.0-beta.69
629
+
630
+ ### Patch Changes
631
+
632
+ - dc465e3: update to latest effect beta
633
+
634
+ ## 4.0.0-beta.68
635
+
636
+ ### Patch Changes
637
+
638
+ - e6f2341: Add SecretURL tests and switch secretURL config to use Config.nonEmptyString
639
+
640
+ ## 4.0.0-beta.67
641
+
642
+ ## 4.0.0-beta.66
643
+
644
+ ### Patch Changes
645
+
646
+ - edc52e4: update
647
+
648
+ ## 4.0.0-beta.65
649
+
650
+ ### Minor Changes
651
+
652
+ - 1f103b2: Replace `proxify` with explicit service accessor helpers: `accessFn`, `accessEffectFn`, `accessCn`, `accessEffectCn`.
653
+
654
+ ### Patch Changes
655
+
656
+ - 31739d7: Fix JSON schema output for Email, Date, PhoneNumber, and Url schemas. The `jsonSchema` annotation key is not recognized by Effect v4's JSON schema generator — use proper v4 annotations (`format`, `description`) and built-in checks (`isMinLength`, `isMaxLength`) instead.
657
+
658
+ ## 4.0.0-beta.64
659
+
660
+ ### Patch Changes
661
+
662
+ - c1a6fdc: fix proxify
663
+
664
+ ## 4.0.0-beta.63
665
+
666
+ ## 4.0.0-beta.62
667
+
668
+ ### Patch Changes
669
+
670
+ - 0b21a02: fix: flatten simple allOf constraints in JSON Schema output for better codegen compatibility
671
+
672
+ ## 4.0.0-beta.61
673
+
674
+ ## 4.0.0-beta.60
675
+
676
+ ## 4.0.0-beta.59
677
+
678
+ ### Patch Changes
679
+
680
+ - cec026d: update packages
681
+
682
+ ## 4.0.0-beta.58
683
+
684
+ ## 4.0.0-beta.57
685
+
686
+ ## 4.0.0-beta.56
687
+
688
+ ## 4.0.0-beta.55
689
+
690
+ ## 4.0.0-beta.54
691
+
692
+ ### Patch Changes
693
+
694
+ - d867272: the return of `Context`
695
+
696
+ ## 4.0.0-beta.53
697
+
698
+ ### Patch Changes
699
+
700
+ - ee9694e: fix type issue?
701
+
702
+ ## 4.0.0-beta.52
703
+
704
+ ### Minor Changes
705
+
706
+ - 6252808: Add `ReadonlySetFromArray` and `ReadonlyMapFromArray` schema transformations that decode from annotated arrays to Set/Map. Update `ReadonlySet` and `ReadonlyMap` to use these internally.
707
+
708
+ ## 4.0.0-beta.51
709
+
710
+ ## 4.0.0-beta.50
711
+
712
+ ## 4.0.0-beta.49
713
+
714
+ ### Patch Changes
715
+
716
+ - e585c9c: fix config nested
717
+
718
+ ## 4.0.0-beta.48
719
+
720
+ ### Patch Changes
721
+
722
+ - 0c88f78: Remove `TaggedError` compatibility re-export, use `TaggedErrorClass` directly
723
+
724
+ ## 4.0.0-beta.47
725
+
726
+ ### Patch Changes
727
+
728
+ - 3365758: workaround effect error messages
729
+
730
+ ## 4.0.0-beta.46
731
+
732
+ ## 4.0.0-beta.45
733
+
734
+ ### Patch Changes
735
+
736
+ - 10b55ff: update packages
737
+
738
+ ## 4.0.0-beta.44
739
+
740
+ ### Patch Changes
741
+
742
+ - a37aa38: Update to effect beta 43
743
+
744
+ ## 4.0.0-beta.43
745
+
746
+ ## 4.0.0-beta.42
747
+
748
+ ## 4.0.0-beta.41
749
+
750
+ ## 4.0.0-beta.40
751
+
752
+ ## 4.0.0-beta.39
753
+
754
+ ### Patch Changes
755
+
756
+ - 10e90d5: fix: TaggedRequest should be an Opaque Schema Class
757
+
758
+ ## 4.0.0-beta.38
759
+
760
+ ### Patch Changes
761
+
762
+ - 0b3e00e: fix bug
763
+
764
+ ## 4.0.0-beta.37
765
+
766
+ ### Patch Changes
767
+
768
+ - 947fe20: fix input date
769
+
770
+ ## 4.0.0-beta.36
771
+
772
+ ## 4.0.0-beta.35
773
+
774
+ ## 4.0.0-beta.34
775
+
776
+ ### Patch Changes
777
+
778
+ - 8c645d5: update to latest effect
779
+
780
+ ## 4.0.0-beta.33
781
+
782
+ ### Patch Changes
783
+
784
+ - 4b95009: use Finite instead of Number
785
+
786
+ ## 4.0.0-beta.32
787
+
788
+ ### Patch Changes
789
+
790
+ - 01d862a: again
791
+
792
+ ## 4.0.0-beta.31
793
+
794
+ ### Patch Changes
795
+
796
+ - 6b6d601: fix ForceVOid
797
+
798
+ ## 4.0.0-beta.30
799
+
800
+ ### Patch Changes
801
+
802
+ - 5ec1f45: fix ForceVoid for real
803
+
804
+ ## 4.0.0-beta.29
805
+
806
+ ### Patch Changes
807
+
808
+ - a899d46: Replace `ForceVoid` in `makeClient` with a typed codec transformation instead of an unsafe cast.
809
+
810
+ ## 4.0.0-beta.28
811
+
812
+ ### Patch Changes
813
+
814
+ - 0099208: Refactor `Pure` helpers to use typed `useSync` calls instead of unsafe casts.
815
+
816
+ ## 4.0.0-beta.27
817
+
818
+ ### Patch Changes
819
+
820
+ - 601a1ff: update effect to 4.0.0-beta.37 and drop the Schema Class disableValidation workaround now that the patched effect schema covers it
821
+
822
+ ## 4.0.0-beta.26
823
+
824
+ ### Patch Changes
825
+
826
+ - 4da28e2: Change `Schema.Class` and `Schema.TaggedClass` wrappers to default constructor options to `{ disableValidation: true }`.
827
+
828
+ This avoids strict class identifier validation by default when constructing wrapper classes (for example passing a compatible view class), while keeping existing behavior when explicit options are provided.
829
+
830
+ ## 4.0.0-beta.25
831
+
832
+ ### Patch Changes
833
+
834
+ - 6282d4b: Update `Effect.allLower` to call `svc.asEffect()` when available, ensuring service entries are normalized before `Effect.all` evaluation.
835
+
836
+ ## 4.0.0-beta.24
837
+
838
+ ### Patch Changes
839
+
840
+ - 32f71bf: Fix `Schema.TaggedUnion(...).tags` extraction for class-based members (for example `TaggedClass`) by using a local AST sentinel walker instead of relying on internal effect APIs.
841
+
842
+ Add tests covering:
843
+
844
+ - `TaggedUnion` with `encodeKeys`-wrapped members
845
+ - `TaggedUnion` with `TaggedClass` members
846
+
847
+ ## 4.0.0-beta.23
848
+
849
+ ### Patch Changes
850
+
851
+ - ea08a79: remove `fields` constraint from TaggedUnion/tags helpers, extract `_tag` via AST walk instead
852
+
853
+ ## 4.0.0-beta.22
854
+
855
+ ## 4.0.0-beta.21
856
+
857
+ ### Patch Changes
858
+
859
+ - 0d349e7: Align effect-app tagged union helpers with Effect v4 by delegating to the native tagged union utilities, exposing v4-style `cases` and `guards`, and preserving the local `tags` helper.
860
+ - 75c72ee: update effect to 4.0.0-beta.36, adapt to Option<A> revert from A | undefined
861
+
862
+ ## 4.0.0-beta.20
863
+
864
+ ### Patch Changes
865
+
866
+ - 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.
867
+
868
+ ## 4.0.0-beta.19
869
+
870
+ ### Patch Changes
871
+
872
+ - ffc10a4: Migrate `Schema/ext` context helpers to Effect v4 by implementing `provide` and `contextFromServices` with proper service subtraction across decoding and encoding requirements.
873
+
874
+ ## 4.0.0-beta.18
875
+
876
+ ### Patch Changes
877
+
878
+ - e9dbbdd: Tighten schema helper generics in `Schema/ext.ts` so default-related helpers accept properly named schema type parameters instead of bare `S.Top` inputs.
879
+
880
+ ## 4.0.0-beta.17
881
+
882
+ ### Patch Changes
883
+
884
+ - c8a6a3f: fix TaggedUnion
885
+
886
+ ## 4.0.0-beta.16
887
+
888
+ ### Patch Changes
889
+
890
+ - 56db2c4: fix: isA
891
+
892
+ ## 4.0.0-beta.15
893
+
894
+ ### Patch Changes
895
+
896
+ - 20186b6: Migrate schema arbitrary annotations to Effect v4 `toArbitrary` and cover `StringId` generation with a fast-check test.
897
+
898
+ ## 4.0.0-beta.14
899
+
900
+ ## 4.0.0-beta.13
901
+
902
+ ### Patch Changes
903
+
904
+ - 16de88c: remove hopefully obsolete Struct overrides
905
+ - 1c3c541: Update Effect dependencies to 4.0.0-beta.31 across workspace packages.
906
+ - de2359d: Update Effect dependencies to 4.0.0-beta.28 across workspace packages.
907
+ - 0d72f34: Update Effect dependencies to 4.0.0-beta.29 across workspace packages.
908
+
909
+ ## 4.0.0-beta.12
910
+
911
+ ### Patch Changes
912
+
913
+ - 622d54a: Configure Changesets fixed versioning for public packages.
914
+
915
+ ## 4.0.0-beta.10
916
+
917
+ ### Patch Changes
918
+
919
+ - 01c70d0: update all teh tings
920
+
921
+ ## 4.0.0-beta.9
922
+
923
+ ### Patch Changes
924
+
925
+ - 5727372: switch to NdJson
926
+
927
+ ## 4.0.0-beta.8
928
+
929
+ ### Patch Changes
930
+
931
+ - 1f336bc: fix RequestName
932
+
933
+ ## 4.0.0-beta.7
934
+
935
+ ### Patch Changes
936
+
937
+ - 62b4989: fix request attr
938
+
939
+ ## 4.0.0-beta.6
940
+
941
+ ### Patch Changes
942
+
943
+ - df75041: fix Req
944
+
945
+ ## 4.0.0-beta.5
946
+
947
+ ### Patch Changes
948
+
949
+ - 016c5a3: adapt isObject change
950
+
951
+ ## 4.0.0-beta.4
952
+
953
+ ### Patch Changes
954
+
955
+ - 88b90c3: fix withDefault
956
+
957
+ ## 4.0.0-beta.3
958
+
959
+ ### Patch Changes
960
+
961
+ - 3a7abae: fix bs
962
+
3
963
  ## 4.0.0-beta.2
4
964
 
5
965
  ### Major Changes