@effect-app/vue 4.0.0-beta.23 → 4.0.0-beta.231

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