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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +1548 -0
  2. package/dist/commander.d.ts +628 -0
  3. package/dist/commander.d.ts.map +1 -0
  4. package/dist/commander.js +1060 -0
  5. package/dist/confirm.d.ts +19 -0
  6. package/dist/confirm.d.ts.map +1 -0
  7. package/dist/confirm.js +24 -0
  8. package/dist/errorReporter.d.ts +4 -4
  9. package/dist/errorReporter.d.ts.map +1 -1
  10. package/dist/errorReporter.js +12 -18
  11. package/dist/form.d.ts +14 -5
  12. package/dist/form.d.ts.map +1 -1
  13. package/dist/form.js +41 -12
  14. package/dist/index.d.ts +1 -1
  15. package/dist/intl.d.ts +15 -0
  16. package/dist/intl.d.ts.map +1 -0
  17. package/dist/intl.js +9 -0
  18. package/dist/lib.d.ts +6 -9
  19. package/dist/lib.d.ts.map +1 -1
  20. package/dist/lib.js +35 -10
  21. package/dist/makeClient.d.ts +152 -339
  22. package/dist/makeClient.d.ts.map +1 -1
  23. package/dist/makeClient.js +221 -376
  24. package/dist/makeContext.d.ts +1 -1
  25. package/dist/makeContext.d.ts.map +1 -1
  26. package/dist/makeIntl.d.ts +1 -1
  27. package/dist/makeIntl.d.ts.map +1 -1
  28. package/dist/makeUseCommand.d.ts +8 -0
  29. package/dist/makeUseCommand.d.ts.map +1 -0
  30. package/dist/makeUseCommand.js +13 -0
  31. package/dist/mutate.d.ts +52 -34
  32. package/dist/mutate.d.ts.map +1 -1
  33. package/dist/mutate.js +137 -46
  34. package/dist/query.d.ts +19 -39
  35. package/dist/query.d.ts.map +1 -1
  36. package/dist/query.js +128 -72
  37. package/dist/routeParams.d.ts +1 -1
  38. package/dist/runtime.d.ts +7 -4
  39. package/dist/runtime.d.ts.map +1 -1
  40. package/dist/runtime.js +27 -17
  41. package/dist/toast.d.ts +50 -0
  42. package/dist/toast.d.ts.map +1 -0
  43. package/dist/toast.js +32 -0
  44. package/dist/withToast.d.ts +27 -0
  45. package/dist/withToast.d.ts.map +1 -0
  46. package/dist/withToast.js +59 -0
  47. package/examples/streamMutation.ts +70 -0
  48. package/package.json +48 -50
  49. package/src/commander.ts +3393 -0
  50. package/src/{experimental/confirm.ts → confirm.ts} +10 -14
  51. package/src/errorReporter.ts +62 -74
  52. package/src/form.ts +56 -17
  53. package/src/intl.ts +12 -0
  54. package/src/lib.ts +47 -20
  55. package/src/makeClient.ts +568 -1134
  56. package/src/{experimental/makeUseCommand.ts → makeUseCommand.ts} +6 -4
  57. package/src/mutate.ts +265 -127
  58. package/src/query.ts +197 -183
  59. package/src/runtime.ts +41 -20
  60. package/src/{experimental/toast.ts → toast.ts} +13 -27
  61. package/src/{experimental/withToast.ts → withToast.ts} +40 -12
  62. package/test/Mutation.test.ts +176 -23
  63. package/test/dist/form.test.d.ts.map +1 -1
  64. package/test/dist/lib.test.d.ts.map +1 -0
  65. package/test/dist/streamFinal.test.d.ts.map +1 -0
  66. package/test/dist/streamFn.test.d.ts.map +1 -0
  67. package/test/dist/stubs.d.ts +3529 -122
  68. package/test/dist/stubs.d.ts.map +1 -1
  69. package/test/dist/stubs.js +182 -31
  70. package/test/form-validation-errors.test.ts +23 -19
  71. package/test/form.test.ts +20 -2
  72. package/test/lib.test.ts +240 -0
  73. package/test/makeClient.test.ts +292 -38
  74. package/test/streamFinal.test.ts +63 -0
  75. package/test/streamFn.test.ts +455 -0
  76. package/test/stubs.ts +218 -42
  77. package/tsconfig.examples.json +20 -0
  78. package/tsconfig.json +0 -1
  79. package/tsconfig.json.bak +5 -2
  80. package/tsconfig.src.json +34 -34
  81. package/tsconfig.test.json +2 -2
  82. package/vitest.config.ts +5 -5
  83. package/dist/experimental/commander.d.ts +0 -359
  84. package/dist/experimental/commander.d.ts.map +0 -1
  85. package/dist/experimental/commander.js +0 -557
  86. package/dist/experimental/confirm.d.ts +0 -19
  87. package/dist/experimental/confirm.d.ts.map +0 -1
  88. package/dist/experimental/confirm.js +0 -28
  89. package/dist/experimental/intl.d.ts +0 -16
  90. package/dist/experimental/intl.d.ts.map +0 -1
  91. package/dist/experimental/intl.js +0 -5
  92. package/dist/experimental/makeUseCommand.d.ts +0 -8
  93. package/dist/experimental/makeUseCommand.d.ts.map +0 -1
  94. package/dist/experimental/makeUseCommand.js +0 -13
  95. package/dist/experimental/toast.d.ts +0 -47
  96. package/dist/experimental/toast.d.ts.map +0 -1
  97. package/dist/experimental/toast.js +0 -41
  98. package/dist/experimental/withToast.d.ts +0 -25
  99. package/dist/experimental/withToast.d.ts.map +0 -1
  100. package/dist/experimental/withToast.js +0 -45
  101. package/eslint.config.mjs +0 -24
  102. package/src/experimental/commander.ts +0 -1835
  103. package/src/experimental/intl.ts +0 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,1553 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 4.0.0-beta.210
4
+
5
+ ### Patch Changes
6
+
7
+ - effect-app@4.0.0-beta.210
8
+
9
+ ## 4.0.0-beta.209
10
+
11
+ ### Patch Changes
12
+
13
+ - c991be1: update packages
14
+ - Updated dependencies [c991be1]
15
+ - Updated dependencies [3bae238]
16
+ - effect-app@4.0.0-beta.209
17
+
18
+ ## 4.0.0-beta.208
19
+
20
+ ### Minor Changes
21
+
22
+ - 0d7d197: Add optional `groupId` and `requestId` to toast options.
23
+
24
+ - `ToastOpts` / `ToastOptsInternal` now accept `groupId?: string` and `requestId?: string`; values pass through the toast wrapper unchanged.
25
+ - `WithToast` / `withToast` accept `groupId` and auto-derive `requestId` once per invocation (current Effect span `traceId`, fallback `S.StringId.make()`); both are attached to every emitted toast (waiting/success/warning/error).
26
+ - `Command.withDefaultToast` and `Command.withDefaultToastStream` set `groupId: cc.id` automatically; the stream variant also computes `requestId` once and threads it through progress, success, and failure toasts.
27
+
28
+ ### Patch Changes
29
+
30
+ - effect-app@4.0.0-beta.208
31
+
32
+ ## 4.0.0-beta.207
33
+
34
+ ### Patch Changes
35
+
36
+ - Updated dependencies [8fffc3c]
37
+ - effect-app@4.0.0-beta.207
38
+
39
+ ## 4.0.0-beta.206
40
+
41
+ ### Patch Changes
42
+
43
+ - Updated dependencies [54bfc59]
44
+ - effect-app@4.0.0-beta.206
45
+
46
+ ## 4.0.0-beta.205
47
+
48
+ ### Patch Changes
49
+
50
+ - Updated dependencies [f313973]
51
+ - effect-app@4.0.0-beta.205
52
+
53
+ ## 4.0.0-beta.204
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies [0a0030f]
58
+ - effect-app@4.0.0-beta.204
59
+
60
+ ## 4.0.0-beta.203
61
+
62
+ ### Patch Changes
63
+
64
+ - Updated dependencies [992d9fa]
65
+ - effect-app@4.0.0-beta.203
66
+
67
+ ## 4.0.0-beta.202
68
+
69
+ ### Patch Changes
70
+
71
+ - Updated dependencies [1186b09]
72
+ - effect-app@4.0.0-beta.202
73
+
74
+ ## 4.0.0-beta.201
75
+
76
+ ### Patch Changes
77
+
78
+ - Updated dependencies [d67d17a]
79
+ - effect-app@4.0.0-beta.201
80
+
81
+ ## 4.0.0-beta.200
82
+
83
+ ### Patch Changes
84
+
85
+ - Updated dependencies [8f1cf6a]
86
+ - Updated dependencies [0cff7c1]
87
+ - effect-app@4.0.0-beta.200
88
+
89
+ ## 4.0.0-beta.199
90
+
91
+ ### Patch Changes
92
+
93
+ - effect-app@4.0.0-beta.199
94
+
95
+ ## 4.0.0-beta.198
96
+
97
+ ### Patch Changes
98
+
99
+ - dd73a4a: fix fn on stream semantics
100
+ - Updated dependencies [32dbc54]
101
+ - effect-app@4.0.0-beta.198
102
+
103
+ ## 4.0.0-beta.197
104
+
105
+ ### Minor Changes
106
+
107
+ - 3dc0d2a: Add streaming as a `stream: true` config option on `Query` / `Command` instead of a separate request type.
108
+
109
+ `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).
110
+
111
+ ```ts
112
+ // Query that streams results
113
+ Req.Query<T>()("Tag", {}, { stream: true, success: ... })
114
+
115
+ // Command that streams results
116
+ Req.Command<T>()("Tag", {}, { stream: true, success: ... })
117
+ ```
118
+
119
+ Vue client mapping (per-handler properties mirror the non-stream API — `.query`, `.fn`, `.mutate`):
120
+
121
+ - `query` + `stream: true` → exposes `.query` (read-only streaming, tracked Vue Query). Helper map key: `${name}Query`.
122
+ - `command` + `stream: true` → exposes `.fn` and `.mutate` (mutating streaming).
123
+ - Plain `query` / `command` unchanged.
124
+
125
+ Server routing dispatches via the new `stream` flag (`makeStreamRpc` for streaming commands/queries, `makeCommandRpc` / `Rpc.make` otherwise).
126
+
127
+ 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.
128
+
129
+ **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.
130
+
131
+ ### Patch Changes
132
+
133
+ - Updated dependencies [3dc0d2a]
134
+ - effect-app@4.0.0-beta.197
135
+
136
+ ## 4.0.0-beta.196
137
+
138
+ ### Patch Changes
139
+
140
+ - c7fbd58: `handle`, `mutate`, and `request` are now always functions, never a raw Effect or Stream. For no-input handlers the first argument is omitted (`handle()`, `request()`, `mutate()`).
141
+ - effect-app@4.0.0-beta.196
142
+
143
+ ## 4.0.0-beta.195
144
+
145
+ ### Patch Changes
146
+
147
+ - Updated dependencies [774a9b3]
148
+ - effect-app@4.0.0-beta.195
149
+
150
+ ## 4.0.0-beta.194
151
+
152
+ ### Patch Changes
153
+
154
+ - refactor(vue): remove 1s waiting toast delay in withDefaultToastStream
155
+ - effect-app@4.0.0-beta.194
156
+
157
+ ## 4.0.0-beta.193
158
+
159
+ ### Patch Changes
160
+
161
+ - effect-app@4.0.0-beta.193
162
+
163
+ ## 4.0.0-beta.192
164
+
165
+ ### Patch Changes
166
+
167
+ - effect-app@4.0.0-beta.192
168
+
169
+ ## 4.0.0-beta.191
170
+
171
+ ### Patch Changes
172
+
173
+ - 50ce7e6: Cleanup after tsgolint + oxlint-codegen-plugin migration:
174
+ - Wire `@effect-app/eslint-codegen-model/oxlint` via `jsPlugins` object form (`{ name: "codegen", specifier: ... }`) so the `codegen/codegen` rule key resolves.
175
+ - Drop `eslint-plugin-codegen` dep, patch, and `augmentedConfig` helper — codegen now runs through oxlint.
176
+ - Break cyclic workspace dep between `eslint-codegen-model` and `eslint-shared-config`; remove dead `eslint.config.mjs` from `eslint-codegen-model`.
177
+ - Switch `@effect-app/vue` to oxlint-only (no `.vue` files in `src`); drop its ESLint config and `eslint-shared-config` devDep.
178
+ - Restore `@typescript-eslint` plugin and rules in shared `baseConfig` so inline `eslint-disable @typescript-eslint/...` directives resolve in `@effect-app/vue-components` (the only remaining ESLint consumer, for `.vue` files).
179
+ - Add `globals.browser` to `vueConfig` so browser globals (`window`, `console`, `URL`, etc.) resolve.
180
+ - 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`.
181
+ - Updated dependencies [50ce7e6]
182
+ - effect-app@4.0.0-beta.191
183
+
184
+ ## 4.0.0-beta.190
185
+
186
+ ### Patch Changes
187
+
188
+ - 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`.
189
+ - Updated dependencies [985176b]
190
+ - effect-app@4.0.0-beta.190
191
+
192
+ ## 4.0.0-beta.189
193
+
194
+ ### Patch Changes
195
+
196
+ - d23e3f6: Delay the in-progress (waiting) toast by 1 second in `withToast` and `withDefaultToastStream`. Fast operations that produce a success/failure (or, for streams, a progress event or terminal state) within the delay window never show a waiting toast at all. Any subsequent waiting/progress/success/failure toast aborts the pending delayed toast so it never flashes after the terminal state.
197
+ - f44800c: In-progress toasts (`withToast` waiting toast and `withDefaultToastStream` waiting/progress toasts) now persist indefinitely (`timeout: Infinity`) until replaced by the success/failure toast or dismissed. Previously they used the underlying toast adapter's default duration and could disappear before the operation finished.
198
+ - Updated dependencies [ea32222]
199
+ - effect-app@4.0.0-beta.189
200
+
201
+ ## 4.0.0-beta.188
202
+
203
+ ### Minor Changes
204
+
205
+ - f16e766: Remove legacy `mutateToResult` stream mutation factory, `wrapStream` command builder, and standard command progress reporting (`running`/`progress` from the old stream factory path). Keep only the `mutate` path for use with `streamFn` combinators. Remove obsolete types (`StreamMutationWithExtensions`, `StreamCommandWithExtensions`, `StreamFnExtension`, `MutateStreamCallOptions`) and the internal `makeStreamMutation` function. Rename `mutate.wrapStream` shorthand to `mutate.wrap` to match the non-stream convention.
206
+
207
+ ### Patch Changes
208
+
209
+ - ed1b8a9: `mutate.wrap` on stream handlers now works the same as on command/query handlers: it can be called without arguments or with only combinators, with the underlying stream handler pre-baked in.
210
+ - b2e438f: Remove Operations service and repo
211
+ - Updated dependencies [b2e438f]
212
+ - effect-app@4.0.0-beta.188
213
+
214
+ ## 4.0.0-beta.187
215
+
216
+ ### Patch Changes
217
+
218
+ - 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.
219
+ - Updated dependencies [0d4e0b8]
220
+ - effect-app@4.0.0-beta.187
221
+
222
+ ## 4.0.0-beta.186
223
+
224
+ ### Patch Changes
225
+
226
+ - 89b7d2f: `Command.withDefaultToastStream`: add `progress` option to update the waiting toast with progress text on each stream element
227
+ - effect-app@4.0.0-beta.186
228
+
229
+ ## 4.0.0-beta.185
230
+
231
+ ### Patch Changes
232
+
233
+ - ddd9505: Rename stream mutation helpers: `mutateStream` → `mutateToResult`, `mutateStream2` → `mutate`.
234
+ - effect-app@4.0.0-beta.185
235
+
236
+ ## 4.0.0-beta.184
237
+
238
+ ### Minor Changes
239
+
240
+ - d4bf24a: Add `Command.withDefaultToastStream` — a stream-aware combinator for `streamFn` that properly handles the full stream lifecycle (waiting/success/failure toasts). Unlike `withDefaultToast`, it waits for the stream to drain before showing the success toast and correctly handles stream errors.
241
+
242
+ Strongly type `CommandBase` with `RA`/`RE` type params for `result`, and update `CommandButton`'s `mapProgress` prop to be typed as `(result: AsyncResult<RA, RE>) => Progress | undefined`.
243
+
244
+ ### Patch Changes
245
+
246
+ - effect-app@4.0.0-beta.184
247
+
248
+ ## 4.0.0-beta.183
249
+
250
+ ### Minor Changes
251
+
252
+ - 8ff0bf9: Add `Command.streamFn` — a stream-backed variant of `Command.fn`.
253
+
254
+ The body generator (or plain function) returns a `Stream` instead of an `Effect`. The command's `waiting` state stays `true` while the stream is running and updates the reactive `result` ref for every emitted value.
255
+
256
+ Three handler shapes are accepted:
257
+
258
+ 1. **Generator returning a Stream** (primary):
259
+ ```ts
260
+ Command.streamFn("exportData")(function* (arg, ctx) {
261
+ const token = yield* getAuthToken;
262
+ return Stream.fromEffect(startExport(token, arg.id)).pipe(
263
+ Stream.flatMap((job) => pollProgress(job.id))
264
+ );
265
+ });
266
+ ```
267
+ 2. Function returning a `Stream` directly.
268
+ 3. Function returning `Effect<Stream>` (unwrapped automatically).
269
+
270
+ - 8ff0bf9: - `CommandButton`: add optional `:map-progress` prop to compute progress from `command.result` via a custom mapper function
271
+ - `CommandBase`: add optional `result` field exposing reactive `AsyncResult` state
272
+ - Export `Progress` type from `@effect-app/vue`
273
+ - `streamFn`: pipe operators now receive the initial `Effect<Stream>` (or `Stream`) value unchanged; `Stream.unwrap` is deferred until after all combinators, enabling use of `withDefaultToast` and other Effect-level combinators
274
+ - Add `makeStreamMutation2`: like `makeStreamMutation` but returns `Effect<Stream>` per invocation (with invalidation via `Stream.ensuring`), for use with `streamFn` combinators
275
+ - Expose `streamFn` on `XClient.Y` stream handlers and on the `Command` object
276
+ - Expose `mutateStream2` on `XClient.Y` stream handlers, with a `wrapStream` helper that calls `streamFn` with the handler and provided combinators
277
+ - fc98fb7: Add `streamQuery` support for stream-type Rpc handlers. When an Rpc is of type `"stream"`, the client now exposes a `.streamQuery` property (and `...StreamQuery` in helpers) that uses `streamedQuery` from `@tanstack/query-core` to accumulate chunks reactively as an `AsyncResult<A[], E>`.
278
+
279
+ ### Patch Changes
280
+
281
+ - effect-app@4.0.0-beta.183
282
+
283
+ ## 4.0.0-beta.182
284
+
285
+ ### Minor Changes
286
+
287
+ - b9586f8: Refine `mutateStream` shape and progress reporting.
288
+
289
+ - `mutateStream(options?)` now returns the `execute` callable directly, with `id`, `running?`, and `progress?` attached as properties. Tuple form `[ref, execute]` is gone — invoke the callable to run the stream, or pass it (or the factory) to `Command.fn` / `Command.wrap` / `Command.wrapStream`.
290
+ - `progress` formatter return type widened from `string | undefined` to `Progress | undefined`, where `Progress = string | { text: string; percentage: number }`.
291
+ - Stream failures now bubble through the execute effect's typed error channel `E` instead of being swallowed. The reactive `AsyncResult` ref still mirrors the failure for live progress UI.
292
+ - `CommandBase.progress?: Progress` replaces `progressText?: string`. `CommandButton` overrides the Vuetify `loader` slot when `progress` is set, rendering a `v-progress-circular` (bound to `model-value` when a `percentage` is supplied, otherwise `indeterminate`) alongside the formatted text.
293
+ - Factories and callables are branded with `_streamFactory` / `_streamCallable` so `Command.fn` / `Command.wrap` can disambiguate them from plain mutate functions.
294
+
295
+ ### Patch Changes
296
+
297
+ - effect-app@4.0.0-beta.182
298
+
299
+ ## 4.0.0-beta.181
300
+
301
+ ### Minor Changes
302
+
303
+ - 4bbeb19: Add `wrapStream` support to `Command` with separate `result` and `running` props.
304
+
305
+ **Key design:**
306
+
307
+ - `result` is always the command's own execution outcome (from `asResult`)
308
+ - `running` holds the stream's live `AsyncResult` ref for progress tracking
309
+
310
+ **New behaviour:**
311
+
312
+ - `CommanderImpl.wrapStream(mutation)` returns a callable like `wrap` — `wrapStream(mutation)()` gives `CommandOut`.
313
+ - Accepts either `{ id, mutateStream: [...] }` or the augmented tuple directly (when `.id` is attached).
314
+ - `Command.wrap` now accepts `{ mutateStream, id }` and the augmented tuple — both delegate to `wrapStream`.
315
+ - `FnOptions.progress` — pass a `ComputedRef<AsyncResult>` to any `fn`-created command; surfaces as `running`.
316
+ - `StreamMutationWithExtensions` now includes `.id` on the tuple.
317
+ - Stream client entries expose `wrapStream` (callable), `fn`, and `mutateStream` (with `.id`).
318
+ - Stream mutation helpers also carry `.fn` and `.id`.
319
+
320
+ ```ts
321
+ // Via client entry:
322
+ const exportCmd = Command.wrapStream(client.myExport)();
323
+ // exportCmd.result = own execution result; exportCmd.running = live stream AsyncResult
324
+
325
+ // Via mutateStream tuple (id is attached):
326
+ const exportCmd = Command.wrapStream(client.myExport.mutateStream)();
327
+
328
+ // wrap also accepts the tuple:
329
+ const exportCmd = Command.wrap(client.myExport.mutateStream)();
330
+
331
+ // fn with external progress:
332
+ const cmd = Command.fn({
333
+ id: "myExport",
334
+ progress: client.myExport.mutateStream[0],
335
+ })(function* (arg) {
336
+ yield* client.myExport.mutateStream[1](arg);
337
+ });
338
+ // cmd.running === the stream AsyncResult ref
339
+ ```
340
+
341
+ ### Patch Changes
342
+
343
+ - 583393f: Default the stream `mutateStream` execute resolved value to the request's success type when no `final` schema is declared.
344
+
345
+ 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.
346
+
347
+ - Updated dependencies [583393f]
348
+ - effect-app@4.0.0-beta.181
349
+
350
+ ## 4.0.0-beta.180
351
+
352
+ ### Minor Changes
353
+
354
+ - 7fa3045: V1/V2/V3: stream and command requests carry invalidation metadata
355
+
356
+ **V1** – stream final response includes metadata
357
+
358
+ - `Invalidation.StreamResponseChunk` wraps each stream item as `{ _tag: "value", value }` and appends `{ _tag: "done", metadata }` at the end carrying all accumulated invalidation keys.
359
+
360
+ **V2** – invalidation keys included in failures
361
+
362
+ - `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.
363
+ - `InvalidationMiddlewareLive` wraps command failures; `routing.ts` wraps stream failures.
364
+ - `apiClientFactory.ts` unwraps both on the client side, forwarding keys before re-failing with the original error.
365
+
366
+ **V3** – mid-stream metadata chunks
367
+
368
+ - `Invalidation.StreamResponseChunk` now also includes `{ _tag: "metadata", metadata }` for mid-stream invalidation.
369
+ - 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`).
370
+ - `apiClientFactory.ts` processes "metadata" chunks the same as "done" chunks, forwarding keys to `InvalidationKeysFromServer` immediately.
371
+ - `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.
372
+
373
+ ### Patch Changes
374
+
375
+ - Updated dependencies [7fa3045]
376
+ - effect-app@4.0.0-beta.180
377
+
378
+ ## 4.0.0-beta.179
379
+
380
+ ### Minor Changes
381
+
382
+ - 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`.
383
+
384
+ ```ts
385
+ class MyStream extends SomethingStream<MyStream>()(
386
+ "MyStream",
387
+ { id: S.String },
388
+ {
389
+ success: S.Union([OperationProgress, ExportComplete]),
390
+ final: ExportComplete, // execute now resolves with ExportComplete
391
+ }
392
+ ) {}
393
+ ```
394
+
395
+ ### Patch Changes
396
+
397
+ - Updated dependencies [828d264]
398
+ - effect-app@4.0.0-beta.179
399
+
400
+ ## 4.0.0-beta.178
401
+
402
+ ### Minor Changes
403
+
404
+ - 07dd7b9: Add `asStreamResult` utility and stream-based mutation example.
405
+
406
+ `asStreamResult` mirrors `asResult` but accepts a `Stream<A, E, R>` (or a factory function that returns one). The reactive ref is updated with each emitted value (`waiting: true`) and finalised once the stream ends (`waiting: false`). Errors surface as `AsyncResult.failure`.
407
+
408
+ The included example (`examples/streamMutation.ts`) shows how to model a long-running export operation that streams `OperationProgress | ExportComplete` events into a readonly Vue ref.
409
+
410
+ ### Patch Changes
411
+
412
+ - effect-app@4.0.0-beta.178
413
+
414
+ ## 4.0.0-beta.177
415
+
416
+ ### Patch Changes
417
+
418
+ - Updated dependencies [89d8b3a]
419
+ - effect-app@4.0.0-beta.177
420
+
421
+ ## 4.0.0-beta.176
422
+
423
+ ### Patch Changes
424
+
425
+ - pass options
426
+ - Updated dependencies
427
+ - effect-app@4.0.0-beta.176
428
+
429
+ ## 4.0.0-beta.175
430
+
431
+ ### Minor Changes
432
+
433
+ - 28777c1: Add `select` option to `MutationOptionsBase` for a second cache invalidation after long-running operations.
434
+
435
+ When `select` is provided, cache invalidation fires twice:
436
+
437
+ 1. Immediately when the mutation completes (existing behaviour).
438
+ 2. Again after the `select` effect finishes — useful for polling or waiting for a background job before refreshing data.
439
+
440
+ ```ts
441
+ useMutation(startExportCommand, {
442
+ select: (result) => pollUntilDone(result.jobId),
443
+ });
444
+ ```
445
+
446
+ ### Patch Changes
447
+
448
+ - 37089ea: Consolidate multiple `invalidateQueries` calls into a single call per group using a `predicate`, reducing the number of TanStack Query invalidation calls in the common case from N to 1.
449
+ - effect-app@4.0.0-beta.175
450
+
451
+ ## 4.0.0-beta.174
452
+
453
+ ### Minor Changes
454
+
455
+ - 821468d: Add server-driven cache invalidation via RPC response headers.
456
+
457
+ - `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.
458
+ - `effect-app/middleware`: new `InvalidationMiddleware` RPC middleware tag; included in `DefaultGenericMiddlewares`.
459
+ - `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`.
460
+ - `@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.
461
+ - `@effect-app/vue`: `invalidateQueries` / `useMutation` now reads server-provided invalidation keys from `InvalidationKeysFromServer` after each mutation and applies them alongside the client-side invalidation.
462
+
463
+ ### Patch Changes
464
+
465
+ - 1b38043: Fix lint: use typescript ~6.0.3 instead of native-preview for ESLint compatibility; keep tsgo for compilation
466
+ - b241ae5: Merge client and server-driven cache invalidation keys into a single `Effect.forEach` pass so server keys always run regardless of whether client targets are empty or custom invalidation options are used.
467
+ - Updated dependencies [821468d]
468
+ - effect-app@4.0.0-beta.174
469
+
470
+ ## 4.0.0-beta.173
471
+
472
+ ### Patch Changes
473
+
474
+ - 4149577: fix queryresources
475
+ - effect-app@4.0.0-beta.173
476
+
477
+ ## 4.0.0-beta.172
478
+
479
+ ### Patch Changes
480
+
481
+ - effect-app@4.0.0-beta.172
482
+
483
+ ## 4.0.0-beta.171
484
+
485
+ ### Patch Changes
486
+
487
+ - d71d976: fix
488
+ - Updated dependencies [d71d976]
489
+ - effect-app@4.0.0-beta.171
490
+
491
+ ## 4.0.0-beta.170
492
+
493
+ ### Patch Changes
494
+
495
+ - 8f09f77: fix
496
+ - Updated dependencies [8f09f77]
497
+ - effect-app@4.0.0-beta.170
498
+
499
+ ## 4.0.0-beta.169
500
+
501
+ ### Patch Changes
502
+
503
+ - 8ae8b53: input mess
504
+ - Updated dependencies [8ae8b53]
505
+ - effect-app@4.0.0-beta.169
506
+
507
+ ## 4.0.0-beta.168
508
+
509
+ ### Patch Changes
510
+
511
+ - Updated dependencies [178480a]
512
+ - effect-app@4.0.0-beta.168
513
+
514
+ ## 4.0.0-beta.167
515
+
516
+ ### Patch Changes
517
+
518
+ - 140e192: Relax invalidation resource value constraints to allow arbitrary values while preserving query-only filtering in invalidation handling.
519
+ - Updated dependencies [140e192]
520
+ - effect-app@4.0.0-beta.167
521
+
522
+ ## 4.0.0-beta.166
523
+
524
+ ### Patch Changes
525
+
526
+ - 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.
527
+ - Updated dependencies [dbcc53b]
528
+ - effect-app@4.0.0-beta.166
529
+
530
+ ## 4.0.0-beta.165
531
+
532
+ ### Patch Changes
533
+
534
+ - 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.
535
+ - 66fd718: Require `clientFor` invalidation resources when any command in the client configures them.
536
+ - Updated dependencies [f88ea34]
537
+ - effect-app@4.0.0-beta.165
538
+
539
+ ## 4.0.0-beta.164
540
+
541
+ ### Minor Changes
542
+
543
+ - 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.
544
+
545
+ ### Patch Changes
546
+
547
+ - Updated dependencies [8cb3de4]
548
+ - effect-app@4.0.0-beta.164
549
+
550
+ ## 4.0.0-beta.163
551
+
552
+ ### Patch Changes
553
+
554
+ - b952f19: bye cruft
555
+ - Updated dependencies [b952f19]
556
+ - effect-app@4.0.0-beta.163
557
+
558
+ ## 4.0.0-beta.162
559
+
560
+ ### Patch Changes
561
+
562
+ - Updated dependencies [b52b424]
563
+ - effect-app@4.0.0-beta.162
564
+
565
+ ## 4.0.0-beta.161
566
+
567
+ ### Patch Changes
568
+
569
+ - aa5ef5c: Improve `deepToRaw` to support any root input type, correctly unwrap refs/computed values, and preserve collection/date shapes (`Array`, `Map`, `Set`, `Date`) while deeply removing Vue reactivity wrappers.
570
+ - effect-app@4.0.0-beta.161
571
+
572
+ ## 4.0.0-beta.160
573
+
574
+ ### Patch Changes
575
+
576
+ - 505bfa9: Add concurrent decode helper APIs and migrate decode callsites to use them.
577
+
578
+ - Add `withDefaultParseOptions` and keep `DefaultParseOptions` centralized.
579
+ - Export `decodeEffectConcurrently` and `decodeUnknownEffectConcurrently` from Schema and SchemaParser modules.
580
+ - Update repository, queue, client, form, and CLI decode paths to use concurrent decode helpers.
581
+ - Keep schema constructors free of hardcoded parse concurrency overrides.
582
+
583
+ - Updated dependencies [505bfa9]
584
+ - effect-app@4.0.0-beta.160
585
+
586
+ ## 4.0.0-beta.159
587
+
588
+ ### Patch Changes
589
+
590
+ - c1e73de:
591
+ - Updated dependencies [c1e73de]
592
+ - effect-app@4.0.0-beta.159
593
+
594
+ ## 4.0.0-beta.158
595
+
596
+ ### Patch Changes
597
+
598
+ - Updated dependencies [3c1f52d]
599
+ - Updated dependencies [6ae3050]
600
+ - effect-app@4.0.0-beta.158
601
+
602
+ ## 4.0.0-beta.157
603
+
604
+ ### Patch Changes
605
+
606
+ - Updated dependencies [6fff09c]
607
+ - effect-app@4.0.0-beta.157
608
+
609
+ ## 4.0.0-beta.156
610
+
611
+ ### Patch Changes
612
+
613
+ - 4bc4a27: Constrain `project` schema to require matching `Encoded` type with original success schema
614
+ - effect-app@4.0.0-beta.156
615
+
616
+ ## 4.0.0-beta.155
617
+
618
+ ### Patch Changes
619
+
620
+ - 2e4c018: feat: add client projection
621
+ - Updated dependencies [c215db8]
622
+ - effect-app@4.0.0-beta.155
623
+
624
+ ## 4.0.0-beta.154
625
+
626
+ ### Patch Changes
627
+
628
+ - 3200fa8: apply the remaining formatting and autofix cleanup across the vue packages
629
+ - effect-app@4.0.0-beta.154
630
+
631
+ ## 4.0.0-beta.153
632
+
633
+ ### Patch Changes
634
+
635
+ - effect-app@4.0.0-beta.153
636
+
637
+ ## 4.0.0-beta.152
638
+
639
+ ### Patch Changes
640
+
641
+ - effect-app@4.0.0-beta.152
642
+
643
+ ## 4.0.0-beta.151
644
+
645
+ ### Patch Changes
646
+
647
+ - effect-app@4.0.0-beta.151
648
+
649
+ ## 4.0.0-beta.150
650
+
651
+ ### Patch Changes
652
+
653
+ - Updated dependencies [85a8275]
654
+ - effect-app@4.0.0-beta.150
655
+
656
+ ## 4.0.0-beta.149
657
+
658
+ ### Patch Changes
659
+
660
+ - Updated dependencies [f317c5e]
661
+ - effect-app@4.0.0-beta.149
662
+
663
+ ## 4.0.0-beta.148
664
+
665
+ ### Patch Changes
666
+
667
+ - Updated dependencies [199e9a5]
668
+ - effect-app@4.0.0-beta.148
669
+
670
+ ## 4.0.0-beta.147
671
+
672
+ ### Patch Changes
673
+
674
+ - Updated dependencies [47e3742]
675
+ - effect-app@4.0.0-beta.147
676
+
677
+ ## 4.0.0-beta.146
678
+
679
+ ### Patch Changes
680
+
681
+ - Updated dependencies [a4dff57]
682
+ - effect-app@4.0.0-beta.146
683
+
684
+ ## 4.0.0-beta.145
685
+
686
+ ### Patch Changes
687
+
688
+ - Updated dependencies [12abb55]
689
+ - effect-app@4.0.0-beta.145
690
+
691
+ ## 4.0.0-beta.144
692
+
693
+ ### Patch Changes
694
+
695
+ - 11422f8: Update request helper typing and runtime invocation to rely on schema `.make` instead of class constructors, avoiding `new`-based assumptions for request schemas.
696
+ - Updated dependencies [11422f8]
697
+ - Updated dependencies [d31253f]
698
+ - effect-app@4.0.0-beta.144
699
+
700
+ ## 4.0.0-beta.143
701
+
702
+ ### Patch Changes
703
+
704
+ - Updated dependencies [79eb019]
705
+ - effect-app@4.0.0-beta.143
706
+
707
+ ## 4.0.0-beta.142
708
+
709
+ ### Patch Changes
710
+
711
+ - Updated dependencies [3436d44]
712
+ - Updated dependencies [025de47]
713
+ - effect-app@4.0.0-beta.142
714
+
715
+ ## 4.0.0-beta.141
716
+
717
+ ### Patch Changes
718
+
719
+ - Updated dependencies [7c25dbb]
720
+ - effect-app@4.0.0-beta.141
721
+
722
+ ## 4.0.0-beta.140
723
+
724
+ ### Patch Changes
725
+
726
+ - effect-app@4.0.0-beta.140
727
+
728
+ ## 4.0.0-beta.139
729
+
730
+ ### Patch Changes
731
+
732
+ - ba61aad: raw dog
733
+ - effect-app@4.0.0-beta.139
734
+
735
+ ## 4.0.0-beta.138
736
+
737
+ ### Patch Changes
738
+
739
+ - 9be71e1: fix: double guard
740
+ - effect-app@4.0.0-beta.138
741
+
742
+ ## 4.0.0-beta.137
743
+
744
+ ### Patch Changes
745
+
746
+ - effect-app@4.0.0-beta.137
747
+
748
+ ## 4.0.0-beta.136
749
+
750
+ ### Patch Changes
751
+
752
+ - effect-app@4.0.0-beta.136
753
+
754
+ ## 4.0.0-beta.135
755
+
756
+ ### Patch Changes
757
+
758
+ - Updated dependencies [c7bbc41]
759
+ - effect-app@4.0.0-beta.135
760
+
761
+ ## 4.0.0-beta.134
762
+
763
+ ### Patch Changes
764
+
765
+ - Updated dependencies [9d3495e]
766
+ - Updated dependencies [f353d48]
767
+ - effect-app@4.0.0-beta.134
768
+
769
+ ## 4.0.0-beta.133
770
+
771
+ ### Patch Changes
772
+
773
+ - 99a2e9b: Use warning toasts for expected commander failures, while keeping unexpected errors as error toasts.
774
+ - c3299f7: update packages
775
+ - Updated dependencies [c3299f7]
776
+ - effect-app@4.0.0-beta.133
777
+
778
+ ## 4.0.0-beta.132
779
+
780
+ ### Patch Changes
781
+
782
+ - 8753c52: render
783
+ - effect-app@4.0.0-beta.132
784
+
785
+ ## 4.0.0-beta.131
786
+
787
+ ### Patch Changes
788
+
789
+ - 1b57aa4: Add a `Commander` error-renderer registry via `Context.Reference` and apply registered guarded renderers before default error formatting.
790
+ - effect-app@4.0.0-beta.131
791
+
792
+ ## 4.0.0-beta.130
793
+
794
+ ### Patch Changes
795
+
796
+ - fc41dcf: add trace id and span id to toasts
797
+ - Updated dependencies [ea1bd46]
798
+ - effect-app@4.0.0-beta.130
799
+
800
+ ## 4.0.0-beta.129
801
+
802
+ ### Patch Changes
803
+
804
+ - 34f6a97: fix missing fn
805
+ - effect-app@4.0.0-beta.129
806
+
807
+ ## 4.0.0-beta.128
808
+
809
+ ### Patch Changes
810
+
811
+ - 57db551: Split `TaggedRequestFor` into `Query` and `Command` factories, and mark generated request classes with `type: "query" | "command"`.
812
+
813
+ Vue client helpers now expose query-only helpers (`query`, `suspense`, `fetch`) for query requests and mutation-only helpers (`mutate`, `fetch`) for command requests.
814
+
815
+ - Updated dependencies [57db551]
816
+ - effect-app@4.0.0-beta.128
817
+
818
+ ## 4.0.0-beta.127
819
+
820
+ ### Minor Changes
821
+
822
+ - 6a3d364: Client entries are now plain objects; use `.request` to invoke the request.
823
+
824
+ `client.Xxx` no longer is callable or an `Effect` itself. Call `client.Xxx.request(input)` (or `client.Xxx.request` for input-less requests) instead. `.mutate`, `.query`, `.suspense`, `.wrap`, and `.fn` are unchanged.
825
+
826
+ ### Patch Changes
827
+
828
+ - effect-app@4.0.0-beta.127
829
+
830
+ ## 4.0.0-beta.126
831
+
832
+ ### Patch Changes
833
+
834
+ - Updated dependencies [458bb1b]
835
+ - effect-app@4.0.0-beta.126
836
+
837
+ ## 4.0.0-beta.125
838
+
839
+ ### Patch Changes
840
+
841
+ - effect-app@4.0.0-beta.125
842
+
843
+ ## 4.0.0-beta.124
844
+
845
+ ### Patch Changes
846
+
847
+ - 256ae85: cleanup
848
+ - Updated dependencies [256ae85]
849
+ - effect-app@4.0.0-beta.124
850
+
851
+ ## 4.0.0-beta.123
852
+
853
+ ### Patch Changes
854
+
855
+ - Updated dependencies [14aba14]
856
+ - effect-app@4.0.0-beta.123
857
+
858
+ ## 4.0.0-beta.122
859
+
860
+ ### Patch Changes
861
+
862
+ - 07a57b6: Limit `client.method.mutate` extensions to only expose the mutation call and `wrap`.
863
+ - f052d38: Replace `(...) => Effect.gen` with `Effect.fnUntraced` in commander `withDefaultToast`.
864
+ - Updated dependencies [f052d38]
865
+ - effect-app@4.0.0-beta.122
866
+
867
+ ## 4.0.0-beta.121
868
+
869
+ ### Patch Changes
870
+
871
+ - Updated dependencies [5ac46cb]
872
+ - effect-app@4.0.0-beta.121
873
+
874
+ ## 4.0.0-beta.120
875
+
876
+ ### Patch Changes
877
+
878
+ - Updated dependencies [f21190c]
879
+ - effect-app@4.0.0-beta.120
880
+
881
+ ## 4.0.0-beta.119
882
+
883
+ ### Patch Changes
884
+
885
+ - effect-app@4.0.0-beta.119
886
+
887
+ ## 4.0.0-beta.118
888
+
889
+ ### Patch Changes
890
+
891
+ - Update effect packages to 4.0.0-beta.52
892
+ - Updated dependencies [bd26832]
893
+ - Updated dependencies [08d2e70]
894
+ - Updated dependencies
895
+ - effect-app@4.0.0-beta.118
896
+
897
+ ## 4.0.0-beta.117
898
+
899
+ ### Patch Changes
900
+
901
+ - effect-app@4.0.0-beta.117
902
+
903
+ ## 4.0.0-beta.116
904
+
905
+ ### Patch Changes
906
+
907
+ - effect-app@4.0.0-beta.116
908
+
909
+ ## 4.0.0-beta.115
910
+
911
+ ### Patch Changes
912
+
913
+ - effect-app@4.0.0-beta.115
914
+
915
+ ## 4.0.0-beta.114
916
+
917
+ ### Patch Changes
918
+
919
+ - effect-app@4.0.0-beta.114
920
+
921
+ ## 4.0.0-beta.113
922
+
923
+ ### Patch Changes
924
+
925
+ - effect-app@4.0.0-beta.113
926
+
927
+ ## 4.0.0-beta.112
928
+
929
+ ### Patch Changes
930
+
931
+ - effect-app@4.0.0-beta.112
932
+
933
+ ## 4.0.0-beta.111
934
+
935
+ ### Patch Changes
936
+
937
+ - Updated dependencies [ca94edf]
938
+ - effect-app@4.0.0-beta.111
939
+
940
+ ## 4.0.0-beta.110
941
+
942
+ ### Patch Changes
943
+
944
+ - effect-app@4.0.0-beta.110
945
+
946
+ ## 4.0.0-beta.109
947
+
948
+ ### Patch Changes
949
+
950
+ - effect-app@4.0.0-beta.109
951
+
952
+ ## 4.0.0-beta.108
953
+
954
+ ### Patch Changes
955
+
956
+ - Updated dependencies [3e46e7b]
957
+ - effect-app@4.0.0-beta.108
958
+
959
+ ## 4.0.0-beta.107
960
+
961
+ ### Patch Changes
962
+
963
+ - effect-app@4.0.0-beta.107
964
+
965
+ ## 4.0.0-beta.106
966
+
967
+ ### Patch Changes
968
+
969
+ - effect-app@4.0.0-beta.106
970
+
971
+ ## 4.0.0-beta.105
972
+
973
+ ### Patch Changes
974
+
975
+ - effect-app@4.0.0-beta.105
976
+
977
+ ## 4.0.0-beta.104
978
+
979
+ ### Patch Changes
980
+
981
+ - Updated dependencies [e944bca]
982
+ - effect-app@4.0.0-beta.104
983
+
984
+ ## 4.0.0-beta.103
985
+
986
+ ### Patch Changes
987
+
988
+ - Updated dependencies [7119320]
989
+ - effect-app@4.0.0-beta.103
990
+
991
+ ## 4.0.0-beta.102
992
+
993
+ ### Patch Changes
994
+
995
+ - effect-app@4.0.0-beta.102
996
+
997
+ ## 4.0.0-beta.101
998
+
999
+ ### Patch Changes
1000
+
1001
+ - effect-app@4.0.0-beta.101
1002
+
1003
+ ## 4.0.0-beta.100
1004
+
1005
+ ### Patch Changes
1006
+
1007
+ - effect-app@4.0.0-beta.100
1008
+
1009
+ ## 4.0.0-beta.99
1010
+
1011
+ ### Patch Changes
1012
+
1013
+ - effect-app@4.0.0-beta.99
1014
+
1015
+ ## 4.0.0-beta.98
1016
+
1017
+ ### Patch Changes
1018
+
1019
+ - effect-app@4.0.0-beta.98
1020
+
1021
+ ## 4.0.0-beta.97
1022
+
1023
+ ### Patch Changes
1024
+
1025
+ - effect-app@4.0.0-beta.97
1026
+
1027
+ ## 4.0.0-beta.96
1028
+
1029
+ ### Patch Changes
1030
+
1031
+ - Updated dependencies [5615e47]
1032
+ - effect-app@4.0.0-beta.96
1033
+
1034
+ ## 4.0.0-beta.95
1035
+
1036
+ ### Patch Changes
1037
+
1038
+ - Updated dependencies [88838fb]
1039
+ - effect-app@4.0.0-beta.95
1040
+
1041
+ ## 4.0.0-beta.94
1042
+
1043
+ ### Patch Changes
1044
+
1045
+ - effect-app@4.0.0-beta.94
1046
+
1047
+ ## 4.0.0-beta.93
1048
+
1049
+ ### Patch Changes
1050
+
1051
+ - effect-app@4.0.0-beta.93
1052
+
1053
+ ## 4.0.0-beta.92
1054
+
1055
+ ### Patch Changes
1056
+
1057
+ - effect-app@4.0.0-beta.92
1058
+
1059
+ ## 4.0.0-beta.91
1060
+
1061
+ ### Patch Changes
1062
+
1063
+ - Updated dependencies [738b482]
1064
+ - effect-app@4.0.0-beta.91
1065
+
1066
+ ## 4.0.0-beta.90
1067
+
1068
+ ### Patch Changes
1069
+
1070
+ - effect-app@4.0.0-beta.90
1071
+
1072
+ ## 4.0.0-beta.89
1073
+
1074
+ ### Patch Changes
1075
+
1076
+ - effect-app@4.0.0-beta.89
1077
+
1078
+ ## 4.0.0-beta.88
1079
+
1080
+ ### Patch Changes
1081
+
1082
+ - effect-app@4.0.0-beta.88
1083
+
1084
+ ## 4.0.0-beta.87
1085
+
1086
+ ### Patch Changes
1087
+
1088
+ - effect-app@4.0.0-beta.87
1089
+
1090
+ ## 4.0.0-beta.86
1091
+
1092
+ ### Patch Changes
1093
+
1094
+ - effect-app@4.0.0-beta.86
1095
+
1096
+ ## 4.0.0-beta.85
1097
+
1098
+ ### Patch Changes
1099
+
1100
+ - effect-app@4.0.0-beta.85
1101
+
1102
+ ## 4.0.0-beta.84
1103
+
1104
+ ### Patch Changes
1105
+
1106
+ - effect-app@4.0.0-beta.84
1107
+
1108
+ ## 4.0.0-beta.83
1109
+
1110
+ ### Patch Changes
1111
+
1112
+ - effect-app@4.0.0-beta.83
1113
+
1114
+ ## 4.0.0-beta.82
1115
+
1116
+ ### Patch Changes
1117
+
1118
+ - effect-app@4.0.0-beta.82
1119
+
1120
+ ## 4.0.0-beta.81
1121
+
1122
+ ### Patch Changes
1123
+
1124
+ - effect-app@4.0.0-beta.81
1125
+
1126
+ ## 4.0.0-beta.80
1127
+
1128
+ ### Patch Changes
1129
+
1130
+ - effect-app@4.0.0-beta.80
1131
+
1132
+ ## 4.0.0-beta.79
1133
+
1134
+ ### Patch Changes
1135
+
1136
+ - 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).
1137
+ - Updated dependencies [d16845e]
1138
+ - effect-app@4.0.0-beta.79
1139
+
1140
+ ## 4.0.0-beta.78
1141
+
1142
+ ### Patch Changes
1143
+
1144
+ - effect-app@4.0.0-beta.78
1145
+
1146
+ ## 4.0.0-beta.77
1147
+
1148
+ ### Patch Changes
1149
+
1150
+ - Updated dependencies [3613e87]
1151
+ - effect-app@4.0.0-beta.77
1152
+
1153
+ ## 4.0.0-beta.76
1154
+
1155
+ ### Patch Changes
1156
+
1157
+ - 08d30af: Fix Commander combinator type inference for void Arg and withDefaultToast callbacks
1158
+
1159
+ - Use `ArgForCombinator` helper to properly resolve `void` args to `undefined` in combinator positions, enabling correct type inference for `withDefaultToast` and other curried combinators
1160
+ - Use explicit positional params in `withDefaultToast` options callbacks instead of rest spread, allowing users to omit trailing parameters
1161
+
1162
+ - fac725d: update effect to latest beta
1163
+ - Updated dependencies [a5248a9]
1164
+ - Updated dependencies [fac725d]
1165
+ - effect-app@4.0.0-beta.76
1166
+
1167
+ ## 4.0.0-beta.75
1168
+
1169
+ ### Patch Changes
1170
+
1171
+ - Updated dependencies [24f0a5a]
1172
+ - effect-app@4.0.0-beta.75
1173
+
1174
+ ## 4.0.0-beta.74
1175
+
1176
+ ### Patch Changes
1177
+
1178
+ - Updated dependencies [54ec1ef]
1179
+ - effect-app@4.0.0-beta.74
1180
+
1181
+ ## 4.0.0-beta.73
1182
+
1183
+ ### Patch Changes
1184
+
1185
+ - effect-app@4.0.0-beta.73
1186
+
1187
+ ## 4.0.0-beta.72
1188
+
1189
+ ### Patch Changes
1190
+
1191
+ - Updated dependencies [0541f0d]
1192
+ - effect-app@4.0.0-beta.72
1193
+
1194
+ ## 4.0.0-beta.71
1195
+
1196
+ ### Patch Changes
1197
+
1198
+ - Updated dependencies [beae3a0]
1199
+ - effect-app@4.0.0-beta.71
1200
+
1201
+ ## 4.0.0-beta.70
1202
+
1203
+ ### Patch Changes
1204
+
1205
+ - effect-app@4.0.0-beta.70
1206
+
1207
+ ## 4.0.0-beta.69
1208
+
1209
+ ### Patch Changes
1210
+
1211
+ - dc465e3: update to latest effect beta
1212
+ - Updated dependencies [dc465e3]
1213
+ - effect-app@4.0.0-beta.69
1214
+
1215
+ ## 4.0.0-beta.68
1216
+
1217
+ ### Patch Changes
1218
+
1219
+ - Updated dependencies [e6f2341]
1220
+ - effect-app@4.0.0-beta.68
1221
+
1222
+ ## 4.0.0-beta.67
1223
+
1224
+ ### Patch Changes
1225
+
1226
+ - effect-app@4.0.0-beta.67
1227
+
1228
+ ## 4.0.0-beta.66
1229
+
1230
+ ### Patch Changes
1231
+
1232
+ - Updated dependencies [edc52e4]
1233
+ - effect-app@4.0.0-beta.66
1234
+
1235
+ ## 4.0.0-beta.65
1236
+
1237
+ ### Minor Changes
1238
+
1239
+ - 1f103b2: Replace `proxify` with explicit service accessor helpers: `accessFn`, `accessEffectFn`, `accessCn`, `accessEffectCn`.
1240
+
1241
+ ### Patch Changes
1242
+
1243
+ - Updated dependencies [31739d7]
1244
+ - Updated dependencies [1f103b2]
1245
+ - effect-app@4.0.0-beta.65
1246
+
1247
+ ## 4.0.0-beta.64
1248
+
1249
+ ### Patch Changes
1250
+
1251
+ - Updated dependencies [c1a6fdc]
1252
+ - effect-app@4.0.0-beta.64
1253
+
1254
+ ## 4.0.0-beta.63
1255
+
1256
+ ### Minor Changes
1257
+
1258
+ - b3ed68a: Remove `legacy` from `makeClient` return and clean up `LegacyMutation`, `LegacyMutationImpl`, and related types.
1259
+
1260
+ ### Patch Changes
1261
+
1262
+ - effect-app@4.0.0-beta.63
1263
+
1264
+ ## 4.0.0-beta.62
1265
+
1266
+ ### Patch Changes
1267
+
1268
+ - Updated dependencies [0b21a02]
1269
+ - effect-app@4.0.0-beta.62
1270
+
1271
+ ## 4.0.0-beta.61
1272
+
1273
+ ### Patch Changes
1274
+
1275
+ - effect-app@4.0.0-beta.61
1276
+
1277
+ ## 4.0.0-beta.60
1278
+
1279
+ ### Patch Changes
1280
+
1281
+ - effect-app@4.0.0-beta.60
1282
+
1283
+ ## 4.0.0-beta.59
1284
+
1285
+ ### Patch Changes
1286
+
1287
+ - cec026d: update packages
1288
+ - Updated dependencies [cec026d]
1289
+ - effect-app@4.0.0-beta.59
1290
+
1291
+ ## 4.0.0-beta.58
1292
+
1293
+ ### Patch Changes
1294
+
1295
+ - 7fd35e4: update tanstack/query
1296
+ - effect-app@4.0.0-beta.58
1297
+
1298
+ ## 4.0.0-beta.57
1299
+
1300
+ ### Patch Changes
1301
+
1302
+ - effect-app@4.0.0-beta.57
1303
+
1304
+ ## 4.0.0-beta.56
1305
+
1306
+ ### Patch Changes
1307
+
1308
+ - effect-app@4.0.0-beta.56
1309
+
1310
+ ## 4.0.0-beta.55
1311
+
1312
+ ### Patch Changes
1313
+
1314
+ - eceb3a3: align CauseException
1315
+ - effect-app@4.0.0-beta.55
1316
+
1317
+ ## 4.0.0-beta.54
1318
+
1319
+ ### Patch Changes
1320
+
1321
+ - d867272: the return of `Context`
1322
+ - Updated dependencies [d867272]
1323
+ - effect-app@4.0.0-beta.54
1324
+
1325
+ ## 4.0.0-beta.53
1326
+
1327
+ ### Patch Changes
1328
+
1329
+ - Updated dependencies [ee9694e]
1330
+ - effect-app@4.0.0-beta.53
1331
+
1332
+ ## 4.0.0-beta.52
1333
+
1334
+ ### Patch Changes
1335
+
1336
+ - Updated dependencies [6252808]
1337
+ - effect-app@4.0.0-beta.52
1338
+
1339
+ ## 4.0.0-beta.51
1340
+
1341
+ ### Patch Changes
1342
+
1343
+ - effect-app@4.0.0-beta.51
1344
+
1345
+ ## 4.0.0-beta.50
1346
+
1347
+ ### Patch Changes
1348
+
1349
+ - effect-app@4.0.0-beta.50
1350
+
1351
+ ## 4.0.0-beta.49
1352
+
1353
+ ### Patch Changes
1354
+
1355
+ - Updated dependencies [e585c9c]
1356
+ - effect-app@4.0.0-beta.49
1357
+
1358
+ ## 4.0.0-beta.48
1359
+
1360
+ ### Patch Changes
1361
+
1362
+ - Updated dependencies [0c88f78]
1363
+ - effect-app@4.0.0-beta.48
1364
+
1365
+ ## 4.0.0-beta.47
1366
+
1367
+ ### Patch Changes
1368
+
1369
+ - Updated dependencies [3365758]
1370
+ - effect-app@4.0.0-beta.47
1371
+
1372
+ ## 4.0.0-beta.46
1373
+
1374
+ ### Patch Changes
1375
+
1376
+ - 28a0b29: expose Input
1377
+ - 0c42d67: move out Commander and friends from experimental
1378
+ - effect-app@4.0.0-beta.46
1379
+
1380
+ ## 4.0.0-beta.45
1381
+
1382
+ ### Patch Changes
1383
+
1384
+ - 10b55ff: update packages
1385
+ - Updated dependencies [10b55ff]
1386
+ - effect-app@4.0.0-beta.45
1387
+
1388
+ ## 4.0.0-beta.44
1389
+
1390
+ ### Patch Changes
1391
+
1392
+ - a37aa38: Update to effect beta 43
1393
+ - Updated dependencies [a37aa38]
1394
+ - effect-app@4.0.0-beta.44
1395
+
1396
+ ## 4.0.0-beta.43
1397
+
1398
+ ### Patch Changes
1399
+
1400
+ - effect-app@4.0.0-beta.43
1401
+
1402
+ ## 4.0.0-beta.42
1403
+
1404
+ ### Patch Changes
1405
+
1406
+ - d195003: Fix numeric field type detection in `getMetadataFromSchema` for Effect v4 JSON schema output. `S.Number` now emits `anyOf` instead of a top-level `type: "number"`, causing fields to fall back to `"text"`. Detection now recurses through `anyOf`/`oneOf`/`allOf` to find the underlying numeric type.
1407
+ - effect-app@4.0.0-beta.42
1408
+
1409
+ ## 4.0.0-beta.41
1410
+
1411
+ ### Patch Changes
1412
+
1413
+ - 702d51c: also make runSync version available\
1414
+ - effect-app@4.0.0-beta.41
1415
+
1416
+ ## 4.0.0-beta.40
1417
+
1418
+ ### Patch Changes
1419
+
1420
+ - 18fd1df: unify runPromise
1421
+ - effect-app@4.0.0-beta.40
1422
+
1423
+ ## 4.0.0-beta.39
1424
+
1425
+ ### Patch Changes
1426
+
1427
+ - Updated dependencies [10e90d5]
1428
+ - effect-app@4.0.0-beta.39
1429
+
1430
+ ## 4.0.0-beta.38
1431
+
1432
+ ### Patch Changes
1433
+
1434
+ - Updated dependencies [0b3e00e]
1435
+ - effect-app@4.0.0-beta.38
1436
+
1437
+ ## 4.0.0-beta.37
1438
+
1439
+ ### Patch Changes
1440
+
1441
+ - 04fc985: Fixes error handling
1442
+ - Updated dependencies [947fe20]
1443
+ - effect-app@4.0.0-beta.37
1444
+
1445
+ ## 4.0.0-beta.36
1446
+
1447
+ ### Patch Changes
1448
+
1449
+ - effect-app@4.0.0-beta.36
1450
+
1451
+ ## 4.0.0-beta.35
1452
+
1453
+ ### Patch Changes
1454
+
1455
+ - effect-app@4.0.0-beta.35
1456
+
1457
+ ## 4.0.0-beta.34
1458
+
1459
+ ### Patch Changes
1460
+
1461
+ - 8c645d5: update to latest effect
1462
+ - Updated dependencies [8c645d5]
1463
+ - effect-app@4.0.0-beta.34
1464
+
1465
+ ## 4.0.0-beta.33
1466
+
1467
+ ### Patch Changes
1468
+
1469
+ - 4b95009: use Finite instead of Number
1470
+ - 7328c76: add deprecation notices
1471
+ - Updated dependencies [4b95009]
1472
+ - effect-app@4.0.0-beta.33
1473
+
1474
+ ## 4.0.0-beta.32
1475
+
1476
+ ### Patch Changes
1477
+
1478
+ - Updated dependencies [01d862a]
1479
+ - effect-app@4.0.0-beta.32
1480
+
1481
+ ## 4.0.0-beta.31
1482
+
1483
+ ### Patch Changes
1484
+
1485
+ - Updated dependencies [6b6d601]
1486
+ - effect-app@4.0.0-beta.31
1487
+
1488
+ ## 4.0.0-beta.30
1489
+
1490
+ ### Patch Changes
1491
+
1492
+ - Updated dependencies [5ec1f45]
1493
+ - effect-app@4.0.0-beta.30
1494
+
1495
+ ## 4.0.0-beta.29
1496
+
1497
+ ### Patch Changes
1498
+
1499
+ - Updated dependencies [a899d46]
1500
+ - effect-app@4.0.0-beta.29
1501
+
1502
+ ## 4.0.0-beta.28
1503
+
1504
+ ### Patch Changes
1505
+
1506
+ - Updated dependencies [0099208]
1507
+ - effect-app@4.0.0-beta.28
1508
+
1509
+ ## 4.0.0-beta.27
1510
+
1511
+ ### Patch Changes
1512
+
1513
+ - 601a1ff: update effect to 4.0.0-beta.37 and drop the Schema Class disableValidation workaround now that the patched effect schema covers it
1514
+ - Updated dependencies [601a1ff]
1515
+ - effect-app@4.0.0-beta.27
1516
+
1517
+ ## 4.0.0-beta.26
1518
+
1519
+ ### Patch Changes
1520
+
1521
+ - Updated dependencies [4da28e2]
1522
+ - effect-app@4.0.0-beta.26
1523
+
1524
+ ## 4.0.0-beta.25
1525
+
1526
+ ### Patch Changes
1527
+
1528
+ - Updated dependencies [6282d4b]
1529
+ - effect-app@4.0.0-beta.25
1530
+
1531
+ ## 4.0.0-beta.24
1532
+
1533
+ ### Patch Changes
1534
+
1535
+ - Updated dependencies [32f71bf]
1536
+ - effect-app@4.0.0-beta.24
1537
+
1538
+ ## 4.0.0-beta.23
1539
+
1540
+ ### Patch Changes
1541
+
1542
+ - Updated dependencies [ea08a79]
1543
+ - effect-app@4.0.0-beta.23
1544
+
1545
+ ## 4.0.0-beta.22
1546
+
1547
+ ### Patch Changes
1548
+
1549
+ - effect-app@4.0.0-beta.22
1550
+
3
1551
  ## 4.0.0-beta.21
4
1552
 
5
1553
  ### Patch Changes