@effect-app/vue 4.0.0-beta.28 → 4.0.0-beta.280

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 (125) hide show
  1. package/CHANGELOG.md +2065 -0
  2. package/dist/atomQuery.d.ts +105 -0
  3. package/dist/atomQuery.d.ts.map +1 -0
  4. package/dist/atomQuery.js +283 -0
  5. package/dist/commander.d.ts +634 -0
  6. package/dist/commander.d.ts.map +1 -0
  7. package/dist/commander.js +1070 -0
  8. package/dist/{experimental/confirm.d.ts → confirm.d.ts} +6 -4
  9. package/dist/confirm.d.ts.map +1 -0
  10. package/dist/confirm.js +26 -0
  11. package/dist/errorReporter.d.ts +6 -4
  12. package/dist/errorReporter.d.ts.map +1 -1
  13. package/dist/errorReporter.js +14 -19
  14. package/dist/form.d.ts +14 -5
  15. package/dist/form.d.ts.map +1 -1
  16. package/dist/form.js +46 -13
  17. package/dist/internal/tanstackQuery.d.ts +9 -0
  18. package/dist/internal/tanstackQuery.d.ts.map +1 -0
  19. package/dist/internal/tanstackQuery.js +163 -0
  20. package/dist/intl.d.ts +15 -0
  21. package/dist/intl.d.ts.map +1 -0
  22. package/dist/intl.js +9 -0
  23. package/dist/lib.d.ts +7 -9
  24. package/dist/lib.d.ts.map +1 -1
  25. package/dist/lib.js +35 -10
  26. package/dist/makeClient.d.ts +212 -336
  27. package/dist/makeClient.d.ts.map +1 -1
  28. package/dist/makeClient.js +399 -411
  29. package/dist/makeContext.d.ts.map +1 -1
  30. package/dist/makeIntl.d.ts.map +1 -1
  31. package/dist/{experimental/makeUseCommand.d.ts → makeUseCommand.d.ts} +4 -3
  32. package/dist/makeUseCommand.d.ts.map +1 -0
  33. package/dist/makeUseCommand.js +13 -0
  34. package/dist/mutate.d.ts +106 -40
  35. package/dist/mutate.d.ts.map +1 -1
  36. package/dist/mutate.js +187 -58
  37. package/dist/query.d.ts +139 -45
  38. package/dist/query.d.ts.map +1 -1
  39. package/dist/query.js +330 -122
  40. package/dist/routeParams.d.ts +4 -4
  41. package/dist/routeParams.d.ts.map +1 -1
  42. package/dist/routeParams.js +4 -3
  43. package/dist/runtime.d.ts +1 -14
  44. package/dist/runtime.d.ts.map +1 -1
  45. package/dist/runtime.js +2 -26
  46. package/dist/suspense.d.ts +5 -0
  47. package/dist/suspense.d.ts.map +1 -0
  48. package/dist/suspense.js +12 -0
  49. package/dist/toast.d.ts +2 -0
  50. package/dist/toast.d.ts.map +1 -0
  51. package/dist/toast.js +2 -0
  52. package/dist/withToast.d.ts +2 -0
  53. package/dist/withToast.d.ts.map +1 -0
  54. package/dist/withToast.js +2 -0
  55. package/docs/atom-query-api-redesign.md +207 -0
  56. package/examples/streamMutation.ts +72 -0
  57. package/package.json +30 -94
  58. package/src/atomQuery.ts +381 -0
  59. package/src/commander.ts +3413 -0
  60. package/src/{experimental/confirm.ts → confirm.ts} +13 -15
  61. package/src/errorReporter.ts +65 -75
  62. package/src/form.ts +61 -18
  63. package/src/index.ts +7 -7
  64. package/src/internal/tanstackQuery.ts +250 -0
  65. package/src/intl.ts +12 -0
  66. package/src/lib.ts +49 -21
  67. package/src/makeClient.ts +941 -1159
  68. package/src/makeIntl.ts +2 -2
  69. package/src/{experimental/makeUseCommand.ts → makeUseCommand.ts} +9 -6
  70. package/src/mutate.ts +343 -151
  71. package/src/query.ts +688 -260
  72. package/src/routeParams.ts +7 -7
  73. package/src/runtime.ts +1 -31
  74. package/src/suspense.ts +17 -0
  75. package/src/toast.ts +1 -0
  76. package/src/withToast.ts +1 -0
  77. package/test/Mutation.test.ts +181 -24
  78. package/test/dist/form.test.d.ts.map +1 -1
  79. package/test/dist/lib.test.d.ts.map +1 -0
  80. package/test/dist/patchableQueryAtom.test.d.ts.map +1 -0
  81. package/test/dist/queryOptions.test.d.ts.map +1 -0
  82. package/test/dist/retrySchedule.test.d.ts.map +1 -0
  83. package/test/dist/streamFinal.test.d.ts.map +1 -0
  84. package/test/dist/streamFn.test.d.ts.map +1 -0
  85. package/test/dist/stubs.d.ts +3694 -122
  86. package/test/dist/stubs.d.ts.map +1 -1
  87. package/test/dist/stubs.js +192 -32
  88. package/test/dist/suspense-regression.test.d.ts.map +1 -0
  89. package/test/dist/suspense.test.d.ts.map +1 -0
  90. package/test/form-validation-errors.test.ts +25 -20
  91. package/test/form.test.ts +22 -3
  92. package/test/lib.test.ts +240 -0
  93. package/test/makeClient.test.ts +437 -38
  94. package/test/streamFinal.test.ts +64 -0
  95. package/test/streamFn.test.ts +457 -0
  96. package/test/stubs.ts +228 -43
  97. package/test/suspense-regression.test.ts +115 -0
  98. package/test/suspense.test.ts +160 -0
  99. package/tsconfig.examples.json +20 -0
  100. package/tsconfig.json +3 -1
  101. package/tsconfig.src.json +34 -34
  102. package/tsconfig.test.json +2 -2
  103. package/vitest.config.ts +5 -5
  104. package/dist/experimental/commander.d.ts +0 -359
  105. package/dist/experimental/commander.d.ts.map +0 -1
  106. package/dist/experimental/commander.js +0 -557
  107. package/dist/experimental/confirm.d.ts.map +0 -1
  108. package/dist/experimental/confirm.js +0 -28
  109. package/dist/experimental/intl.d.ts +0 -16
  110. package/dist/experimental/intl.d.ts.map +0 -1
  111. package/dist/experimental/intl.js +0 -5
  112. package/dist/experimental/makeUseCommand.d.ts.map +0 -1
  113. package/dist/experimental/makeUseCommand.js +0 -13
  114. package/dist/experimental/toast.d.ts +0 -47
  115. package/dist/experimental/toast.d.ts.map +0 -1
  116. package/dist/experimental/toast.js +0 -41
  117. package/dist/experimental/withToast.d.ts +0 -25
  118. package/dist/experimental/withToast.d.ts.map +0 -1
  119. package/dist/experimental/withToast.js +0 -45
  120. package/eslint.config.mjs +0 -24
  121. package/src/experimental/commander.ts +0 -1835
  122. package/src/experimental/intl.ts +0 -9
  123. package/src/experimental/toast.ts +0 -66
  124. package/src/experimental/withToast.ts +0 -99
  125. package/tsconfig.json.bak +0 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,2070 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 4.0.0-beta.280
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [3eda52e]
8
+ - effect-app@4.0.0-beta.280
9
+
10
+ ## 4.0.0-beta.279
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies [5f9cd6a]
15
+ - effect-app@4.0.0-beta.279
16
+
17
+ ## 4.0.0-beta.278
18
+
19
+ ### Patch Changes
20
+
21
+ - a354345: Move release tsconfig flattening from publish to pack lifecycle so package configs are restored before registry upload/auth can fail.
22
+ - a69da09: Publish from generated staging directories so release-only files are created outside the source package tree.
23
+ - 18b915f: Default legacy TanStack queries to Effect-Equal-aware structural sharing.
24
+ - Updated dependencies [a354345]
25
+ - Updated dependencies [a69da09]
26
+ - effect-app@4.0.0-beta.278
27
+
28
+ ## 4.0.0-beta.277
29
+
30
+ ### Patch Changes
31
+
32
+ - 74e6d40: Seed legacy TanStack suspense results into Vue query refs when the observer re-points mid-flight.
33
+ - effect-app@4.0.0-beta.277
34
+
35
+ ## 4.0.0-beta.276
36
+
37
+ ### Patch Changes
38
+
39
+ - 32f05c8: Remove unused dependency declarations from package manifests.
40
+ - Updated dependencies [32f05c8]
41
+ - effect-app@4.0.0-beta.276
42
+
43
+ ## 4.0.0-beta.275
44
+
45
+ ### Patch Changes
46
+
47
+ - a74a894: Fix atom-query suspense cleanup so per-observer wrappers unsubscribe on unmount while cached query atoms keep their idle TTL.
48
+ - effect-app@4.0.0-beta.275
49
+
50
+ ## 4.0.0-beta.274
51
+
52
+ ### Patch Changes
53
+
54
+ - ac62e48: Route `useUpdateQuery` through the configured query cache so TanStack-backed legacy queries receive manual cache updates.
55
+ - 677821a: Run projected query decoders through Effect so schemas that require services can resolve during legacy TanStack query refetches.
56
+ - effect-app@4.0.0-beta.274
57
+
58
+ ## 4.0.0-beta.273
59
+
60
+ ### Patch Changes
61
+
62
+ - 664e83d: Add Atom-native Vue query APIs, stream query pull atoms, and a TanStack-backed legacy query engine toggle.
63
+ - Updated dependencies [664e83d]
64
+ - Updated dependencies [e4ff9a6]
65
+ - effect-app@4.0.0-beta.273
66
+
67
+ ## 4.0.0-beta.272
68
+
69
+ ### Patch Changes
70
+
71
+ - Updated dependencies [21ac90a]
72
+ - effect-app@4.0.0-beta.272
73
+
74
+ ## 4.0.0-beta.271
75
+
76
+ ### Patch Changes
77
+
78
+ - Updated dependencies [939bebc]
79
+ - effect-app@4.0.0-beta.271
80
+
81
+ ## 4.0.0-beta.270
82
+
83
+ ### Patch Changes
84
+
85
+ - 78d076a: Update effect packages to `4.0.0-beta.84` (`effect`, `@effect/platform-node`, `@effect/platform-browser`, `@effect/atom-vue`, `@effect/sql-sqlite-node`, `@effect/vitest`).
86
+ - Updated dependencies [78d076a]
87
+ - effect-app@4.0.0-beta.270
88
+
89
+ ## 4.0.0-beta.269
90
+
91
+ ### Patch Changes
92
+
93
+ - Updated dependencies [50b022e]
94
+ - Updated dependencies [50b022e]
95
+ - effect-app@4.0.0-beta.269
96
+
97
+ ## 4.0.0-beta.268
98
+
99
+ ### Patch Changes
100
+
101
+ - acfdc9e: Point development package exports at TypeScript sources while keeping published exports on compiled dist files.
102
+ - Updated dependencies [acfdc9e]
103
+ - effect-app@4.0.0-beta.268
104
+
105
+ ## 4.0.0-beta.267
106
+
107
+ ### Patch Changes
108
+
109
+ - 1df5cf5: Wait for Vue query result refs to settle after TanStack suspense resolves.
110
+ - Updated dependencies [23a7167]
111
+ - effect-app@4.0.0-beta.267
112
+
113
+ ## 4.0.0-beta.266
114
+
115
+ ### Patch Changes
116
+
117
+ - Updated dependencies [bbaa67e]
118
+ - effect-app@4.0.0-beta.266
119
+
120
+ ## 4.0.0-beta.265
121
+
122
+ ### Patch Changes
123
+
124
+ - 3e855bc: Update Effect packages to `4.0.0-beta.83` (from `beta.74`): `effect`, `@effect/platform-node`, `@effect/platform-browser`, `@effect/sql-sqlite-node`, `@effect/atom-vue`, `@effect/vitest`.
125
+
126
+ Adapt the infra workflow engines to beta.83 API changes:
127
+
128
+ - `Schema.Defect` is now a constructor function — use `S.Defect()` when building the deferred-exit codec (the bare constant no longer produces a usable schema and crashed `toType`).
129
+ - `Workflow` exposes its name as `_tag` instead of `name`. `WorkflowEngineSqlite`/`WorkflowEngineCosmos` now key the registry, codec caches, and persisted `workflow_name` off `workflow._tag`, fixing crash-recovery (stale-lease re-drive previously registered under an `undefined` key and never matched).
130
+
131
+ - Updated dependencies [3e855bc]
132
+ - effect-app@4.0.0-beta.265
133
+
134
+ ## 4.0.0-beta.264
135
+
136
+ ### Patch Changes
137
+
138
+ - effect-app@4.0.0-beta.264
139
+
140
+ ## 4.0.0-beta.263
141
+
142
+ ### Patch Changes
143
+
144
+ - effect-app@4.0.0-beta.263
145
+
146
+ ## 4.0.0-beta.262
147
+
148
+ ### Patch Changes
149
+
150
+ - 55c6572: update packages
151
+ - Updated dependencies [55c6572]
152
+ - effect-app@4.0.0-beta.262
153
+
154
+ ## 4.0.0-beta.261
155
+
156
+ ### Patch Changes
157
+
158
+ - effect-app@4.0.0-beta.261
159
+
160
+ ## 4.0.0-beta.260
161
+
162
+ ### Patch Changes
163
+
164
+ - bogus
165
+ - Updated dependencies
166
+ - effect-app@4.0.0-beta.260
167
+
168
+ ## 4.0.0-beta.259
169
+
170
+ ### Patch Changes
171
+
172
+ - effect-app@4.0.0-beta.259
173
+
174
+ ## 4.0.0-beta.258
175
+
176
+ ### Patch Changes
177
+
178
+ - effect-app@4.0.0-beta.258
179
+
180
+ ## 4.0.0-beta.257
181
+
182
+ ### Patch Changes
183
+
184
+ - Updated dependencies [e71eb78]
185
+ - effect-app@4.0.0-beta.257
186
+
187
+ ## 4.0.0-beta.256
188
+
189
+ ### Patch Changes
190
+
191
+ - Updated dependencies [347af48]
192
+ - effect-app@4.0.0-beta.256
193
+
194
+ ## 4.0.0-beta.255
195
+
196
+ ### Patch Changes
197
+
198
+ - Updated dependencies [52a31dd]
199
+ - effect-app@4.0.0-beta.255
200
+
201
+ ## 4.0.0-beta.254
202
+
203
+ ### Patch Changes
204
+
205
+ - Updated dependencies [29a1e57]
206
+ - effect-app@4.0.0-beta.254
207
+
208
+ ## 4.0.0-beta.253
209
+
210
+ ### Patch Changes
211
+
212
+ - Updated dependencies [b90fa30]
213
+ - effect-app@4.0.0-beta.253
214
+
215
+ ## 4.0.0-beta.252
216
+
217
+ ### Patch Changes
218
+
219
+ - Updated dependencies [a788432]
220
+ - effect-app@4.0.0-beta.252
221
+
222
+ ## 4.0.0-beta.251
223
+
224
+ ### Patch Changes
225
+
226
+ - Updated dependencies [1c858d3]
227
+ - effect-app@4.0.0-beta.251
228
+
229
+ ## 4.0.0-beta.250
230
+
231
+ ### Patch Changes
232
+
233
+ - Updated dependencies [3053760]
234
+ - effect-app@4.0.0-beta.250
235
+
236
+ ## 4.0.0-beta.249
237
+
238
+ ### Minor Changes
239
+
240
+ - ba789a2: Move core service contracts and runtime-agnostic modules into `effect-app`, keep `infra` and `vue` focused on adapters, and drop the temporary `infra` compatibility re-export paths in favor of the new canonical imports.
241
+
242
+ `@effect-app/infra` no longer re-exports moved core modules such as `./Model`, `./Emailer/service`, `./QueueMaker/service`, `./Store/service`, `./adapters/*`, or `./api/*` entrypoints.
243
+
244
+ ### Patch Changes
245
+
246
+ - Updated dependencies [ba789a2]
247
+ - effect-app@4.0.0-beta.249
248
+
249
+ ## 4.0.0-beta.248
250
+
251
+ ### Patch Changes
252
+
253
+ - 2a86a17: improve tsgo compat: avoid deferred `Schema.Type`/`Codec.Encoded`/`Codec.DecodingServices`/`Codec.EncodingServices` conditional helpers in generic positions where the type parameter is already constrained to `Schema.Top`. Index the property directly (`X["Type"]`, `X["Encoded"]`, `X["DecodingServices"]`, …) so tsgo doesn't leak `unknown` into `Effect` channels (notably `R`).
254
+
255
+ Sites: `client/clientFor.ts` (`RequestHandlerFor`, `FinalTypeOf`, `ExtractResponse`, `ExtractEResponse`), `client/makeClient.ts` (`InputFromPayload`, `OutputFromSuccess`, `InvalidationConfigForCommand`, `TaggedRequestWithMeta` overloads), `rpc/MiddlewareMaker.ts` (`Errors`), `rpc/RpcMiddleware.ts` (`Failure`, `FailureContext`), `Schema/ext.ts` (`ReadonlySetFromArray`, `ReadonlyMapFromArray`), `infra/routing.ts` (`GetSuccessShape`, handlers, route matcher), `vue/makeClient.ts` (`MutationExt.project`, `MutationWithExtensions`, `QueryProjection`), `vue/routeParams.ts` (`parseRouteParams*`).
256
+
257
+ - Updated dependencies [2a86a17]
258
+ - effect-app@4.0.0-beta.248
259
+
260
+ ## 4.0.0-beta.247
261
+
262
+ ### Patch Changes
263
+
264
+ - 01bab22: Work around tsgo failing to reduce `S.Codec.DecodingServices<X>` (`X extends Top ? X["DecodingServices"] : never`) in generic positions, which left `unknown` and polluted the `R` channel of client handlers and RPC middleware failure context. Since the schemas involved are already constrained to `S.Top`, read `["DecodingServices"]` directly in `RequestHandlerFor`, `TagClass.FailureContext`, and the Vue `MutationExt` / `QueryProjection` types.
265
+ - Updated dependencies [01bab22]
266
+ - effect-app@4.0.0-beta.247
267
+
268
+ ## 4.0.0-beta.246
269
+
270
+ ### Patch Changes
271
+
272
+ - effect-app@4.0.0-beta.246
273
+
274
+ ## 4.0.0-beta.245
275
+
276
+ ### Patch Changes
277
+
278
+ - effect-app@4.0.0-beta.245
279
+
280
+ ## 4.0.0-beta.244
281
+
282
+ ### Patch Changes
283
+
284
+ - b8b9080: update packages
285
+ - Updated dependencies [b8b9080]
286
+ - effect-app@4.0.0-beta.244
287
+
288
+ ## 4.0.0-beta.243
289
+
290
+ ### Patch Changes
291
+
292
+ - effect-app@4.0.0-beta.243
293
+
294
+ ## 4.0.0-beta.242
295
+
296
+ ### Patch Changes
297
+
298
+ - da83c1f: Align `InvalidationEntry` (vue) with `InvalidateQueryInstruction` (effect-app).
299
+
300
+ `InvalidateQueryInstruction` is now parametrized over `Filters` / `Options`
301
+ (defaulting to `Record<string, unknown>` so the core stays framework-agnostic).
302
+ `@effect-app/vue` exposes `InvalidationEntry` as a narrowed alias substituting
303
+ `@tanstack/vue-query`'s `InvalidateQueryFilters` and `InvalidateOptions`. Single
304
+ source of truth for the union shape across both packages.
305
+
306
+ - Updated dependencies [da83c1f]
307
+ - Updated dependencies [21017d5]
308
+ - Updated dependencies [2495ace]
309
+ - effect-app@4.0.0-beta.242
310
+
311
+ ## 4.0.0-beta.241
312
+
313
+ ### Patch Changes
314
+
315
+ - 2aa8e5e: `queryInvalidation` accept shorthand entries (per-mutation, Command, and client-level `QueryInvalidation<M>` maps).
316
+
317
+ Each entry returned may now be:
318
+
319
+ - a raw query key (`string[]`)
320
+ - an RPC handler (`{ id, options? }`) — its query key is derived via `makeQueryKey`
321
+ - the existing `{ filters, options }` raw tanstack-query invalidation
322
+
323
+ ```ts
324
+ queryInvalidation: (queryKey) => [queryKey, GetMe, PackListIndex];
325
+ ```
326
+
327
+ equivalent to:
328
+
329
+ ```ts
330
+ queryInvalidation: (queryKey) => [
331
+ { filters: { queryKey } },
332
+ { filters: { queryKey: makeQueryKey(GetMe) } },
333
+ { filters: { queryKey: makeQueryKey(PackListIndex) } },
334
+ ];
335
+ ```
336
+
337
+ - Updated dependencies [b035b1c]
338
+ - effect-app@4.0.0-beta.241
339
+
340
+ ## 4.0.0-beta.240
341
+
342
+ ### Patch Changes
343
+
344
+ - effect-app@4.0.0-beta.240
345
+
346
+ ## 4.0.0-beta.239
347
+
348
+ ### Patch Changes
349
+
350
+ - effect-app@4.0.0-beta.239
351
+
352
+ ## 4.0.0-beta.238
353
+
354
+ ### Patch Changes
355
+
356
+ - effect-app@4.0.0-beta.238
357
+
358
+ ## 4.0.0-beta.237
359
+
360
+ ### Patch Changes
361
+
362
+ - effect-app@4.0.0-beta.237
363
+
364
+ ## 4.0.0-beta.236
365
+
366
+ ### Patch Changes
367
+
368
+ - effect-app@4.0.0-beta.236
369
+
370
+ ## 4.0.0-beta.235
371
+
372
+ ### Patch Changes
373
+
374
+ - 6cfd83d: update effect to latest beta
375
+ - Updated dependencies [ba4bdc3]
376
+ - Updated dependencies [6cfd83d]
377
+ - effect-app@4.0.0-beta.235
378
+
379
+ ## 4.0.0-beta.234
380
+
381
+ ### Patch Changes
382
+
383
+ - effect-app@4.0.0-beta.234
384
+
385
+ ## 4.0.0-beta.233
386
+
387
+ ### Patch Changes
388
+
389
+ - 57a1862: Update to effect 4.0.0-beta.67. Switch deps from `pkg.pr.new` snapshot back to npm beta tag.
390
+ - Updated dependencies [57a1862]
391
+ - effect-app@4.0.0-beta.233
392
+
393
+ ## 4.0.0-beta.232
394
+
395
+ ### Patch Changes
396
+
397
+ - 1176240: Fix `client[Key].Input` resolving to `never` for stream request handlers. The extractor only matched `RequestHandlerWithInput`, so any `RequestStreamHandlerWithInput` entry fell through to the `never` branch. Added a parallel `RequestStreamHandlerWithInput` extract so stream Inputs surface the handler's input type.
398
+ - 0263827: Update to effect `pkg.pr.new` snapshot at `a42ef66` (4.0.0-beta.66). Remove `Yieldable` and `asEffect()` (service tags are now `Effect` directly).
399
+ - Updated dependencies [0263827]
400
+ - Updated dependencies [0263827]
401
+ - Updated dependencies [0263827]
402
+ - effect-app@4.0.0-beta.232
403
+
404
+ ## 4.0.0-beta.231
405
+
406
+ ### Patch Changes
407
+
408
+ - 7ca66ce: Update to effect 4.0.0-beta.66. Remove `Yieldable` and `asEffect()` (service tags are now `Effect` directly).
409
+ - Updated dependencies [7ca66ce]
410
+ - effect-app@4.0.0-beta.231
411
+
412
+ ## 4.0.0-beta.230
413
+
414
+ ### Patch Changes
415
+
416
+ - effect-app@4.0.0-beta.230
417
+
418
+ ## 4.0.0-beta.229
419
+
420
+ ### Minor Changes
421
+
422
+ - 2b4c324: Make the default mutation invalidation heuristic configurable.
423
+
424
+ 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:
425
+
426
+ ```ts
427
+ import { makeQueryKey, setDefaultGetQueryKey } from "@effect-app/vue";
428
+
429
+ // invalidate the full namespace of the action (no parent collapse)
430
+ setDefaultGetQueryKey((h) => {
431
+ const key = makeQueryKey(h);
432
+ const ns = key.filter((_) => _.startsWith("$"));
433
+ if (!ns.length) throw new Error("empty query key for: " + h.id);
434
+ return ns;
435
+ });
436
+ ```
437
+
438
+ Call at app bootstrap. Pass `undefined` to restore the built-in default. Per-mutation overrides via the existing `queryInvalidation` option still take precedence.
439
+
440
+ ### Patch Changes
441
+
442
+ - effect-app@4.0.0-beta.229
443
+
444
+ ## 4.0.0-beta.228
445
+
446
+ ### Minor Changes
447
+
448
+ - 62dafaa: Default mutation invalidation now scopes to the action's full namespace instead of the parent.
449
+
450
+ 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.
451
+
452
+ 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`.
453
+
454
+ ### Patch Changes
455
+
456
+ - effect-app@4.0.0-beta.228
457
+
458
+ ## 4.0.0-beta.227
459
+
460
+ ### Patch Changes
461
+
462
+ - effect-app@4.0.0-beta.227
463
+
464
+ ## 4.0.0-beta.226
465
+
466
+ ### Patch Changes
467
+
468
+ - effect-app@4.0.0-beta.226
469
+
470
+ ## 4.0.0-beta.225
471
+
472
+ ### Patch Changes
473
+
474
+ - effect-app@4.0.0-beta.225
475
+
476
+ ## 4.0.0-beta.224
477
+
478
+ ### Minor Changes
479
+
480
+ - 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`.
481
+
482
+ ### Patch Changes
483
+
484
+ - effect-app@4.0.0-beta.224
485
+
486
+ ## 4.0.0-beta.223
487
+
488
+ ### Patch Changes
489
+
490
+ - effect-app@4.0.0-beta.223
491
+
492
+ ## 4.0.0-beta.222
493
+
494
+ ### Patch Changes
495
+
496
+ - effect-app@4.0.0-beta.222
497
+
498
+ ## 4.0.0-beta.221
499
+
500
+ ### Patch Changes
501
+
502
+ - 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"`).
503
+ - Updated dependencies [439cbeb]
504
+ - effect-app@4.0.0-beta.221
505
+
506
+ ## 4.0.0-beta.220
507
+
508
+ ### Patch Changes
509
+
510
+ - effect-app@4.0.0-beta.220
511
+
512
+ ## 4.0.0-beta.219
513
+
514
+ ### Patch Changes
515
+
516
+ - Updated dependencies [d738811]
517
+ - effect-app@4.0.0-beta.219
518
+
519
+ ## 4.0.0-beta.218
520
+
521
+ ### Patch Changes
522
+
523
+ - effect-app@4.0.0-beta.218
524
+
525
+ ## 4.0.0-beta.217
526
+
527
+ ### Patch Changes
528
+
529
+ - Updated dependencies [0e824ef]
530
+ - effect-app@4.0.0-beta.217
531
+
532
+ ## 4.0.0-beta.216
533
+
534
+ ### Patch Changes
535
+
536
+ - effect-app@4.0.0-beta.216
537
+
538
+ ## 4.0.0-beta.215
539
+
540
+ ### Patch Changes
541
+
542
+ - effect-app@4.0.0-beta.215
543
+
544
+ ## 4.0.0-beta.214
545
+
546
+ ### Patch Changes
547
+
548
+ - effect-app@4.0.0-beta.214
549
+
550
+ ## 4.0.0-beta.213
551
+
552
+ ### Patch Changes
553
+
554
+ - effect-app@4.0.0-beta.213
555
+
556
+ ## 4.0.0-beta.212
557
+
558
+ ### Patch Changes
559
+
560
+ - Updated dependencies [8792221]
561
+ - effect-app@4.0.0-beta.212
562
+
563
+ ## 4.0.0-beta.211
564
+
565
+ ### Patch Changes
566
+
567
+ - effect-app@4.0.0-beta.211
568
+
569
+ ## 4.0.0-beta.210
570
+
571
+ ### Patch Changes
572
+
573
+ - effect-app@4.0.0-beta.210
574
+
575
+ ## 4.0.0-beta.209
576
+
577
+ ### Patch Changes
578
+
579
+ - c991be1: update packages
580
+ - Updated dependencies [c991be1]
581
+ - Updated dependencies [3bae238]
582
+ - effect-app@4.0.0-beta.209
583
+
584
+ ## 4.0.0-beta.208
585
+
586
+ ### Minor Changes
587
+
588
+ - 0d7d197: Add optional `groupId` and `requestId` to toast options.
589
+
590
+ - `ToastOpts` / `ToastOptsInternal` now accept `groupId?: string` and `requestId?: string`; values pass through the toast wrapper unchanged.
591
+ - `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).
592
+ - `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.
593
+
594
+ ### Patch Changes
595
+
596
+ - effect-app@4.0.0-beta.208
597
+
598
+ ## 4.0.0-beta.207
599
+
600
+ ### Patch Changes
601
+
602
+ - Updated dependencies [8fffc3c]
603
+ - effect-app@4.0.0-beta.207
604
+
605
+ ## 4.0.0-beta.206
606
+
607
+ ### Patch Changes
608
+
609
+ - Updated dependencies [54bfc59]
610
+ - effect-app@4.0.0-beta.206
611
+
612
+ ## 4.0.0-beta.205
613
+
614
+ ### Patch Changes
615
+
616
+ - Updated dependencies [f313973]
617
+ - effect-app@4.0.0-beta.205
618
+
619
+ ## 4.0.0-beta.204
620
+
621
+ ### Patch Changes
622
+
623
+ - Updated dependencies [0a0030f]
624
+ - effect-app@4.0.0-beta.204
625
+
626
+ ## 4.0.0-beta.203
627
+
628
+ ### Patch Changes
629
+
630
+ - Updated dependencies [992d9fa]
631
+ - effect-app@4.0.0-beta.203
632
+
633
+ ## 4.0.0-beta.202
634
+
635
+ ### Patch Changes
636
+
637
+ - Updated dependencies [1186b09]
638
+ - effect-app@4.0.0-beta.202
639
+
640
+ ## 4.0.0-beta.201
641
+
642
+ ### Patch Changes
643
+
644
+ - Updated dependencies [d67d17a]
645
+ - effect-app@4.0.0-beta.201
646
+
647
+ ## 4.0.0-beta.200
648
+
649
+ ### Patch Changes
650
+
651
+ - Updated dependencies [8f1cf6a]
652
+ - Updated dependencies [0cff7c1]
653
+ - effect-app@4.0.0-beta.200
654
+
655
+ ## 4.0.0-beta.199
656
+
657
+ ### Patch Changes
658
+
659
+ - effect-app@4.0.0-beta.199
660
+
661
+ ## 4.0.0-beta.198
662
+
663
+ ### Patch Changes
664
+
665
+ - dd73a4a: fix fn on stream semantics
666
+ - Updated dependencies [32dbc54]
667
+ - effect-app@4.0.0-beta.198
668
+
669
+ ## 4.0.0-beta.197
670
+
671
+ ### Minor Changes
672
+
673
+ - 3dc0d2a: Add streaming as a `stream: true` config option on `Query` / `Command` instead of a separate request type.
674
+
675
+ `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).
676
+
677
+ ```ts
678
+ // Query that streams results
679
+ Req.Query<T>()("Tag", {}, { stream: true, success: ... })
680
+
681
+ // Command that streams results
682
+ Req.Command<T>()("Tag", {}, { stream: true, success: ... })
683
+ ```
684
+
685
+ Vue client mapping (per-handler properties mirror the non-stream API — `.query`, `.fn`, `.mutate`):
686
+
687
+ - `query` + `stream: true` → exposes `.query` (read-only streaming, tracked Vue Query). Helper map key: `${name}Query`.
688
+ - `command` + `stream: true` → exposes `.fn` and `.mutate` (mutating streaming).
689
+ - Plain `query` / `command` unchanged.
690
+
691
+ Server routing dispatches via the new `stream` flag (`makeStreamRpc` for streaming commands/queries, `makeCommandRpc` / `Rpc.make` otherwise).
692
+
693
+ 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.
694
+
695
+ **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.
696
+
697
+ ### Patch Changes
698
+
699
+ - Updated dependencies [3dc0d2a]
700
+ - effect-app@4.0.0-beta.197
701
+
702
+ ## 4.0.0-beta.196
703
+
704
+ ### Patch Changes
705
+
706
+ - 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()`).
707
+ - effect-app@4.0.0-beta.196
708
+
709
+ ## 4.0.0-beta.195
710
+
711
+ ### Patch Changes
712
+
713
+ - Updated dependencies [774a9b3]
714
+ - effect-app@4.0.0-beta.195
715
+
716
+ ## 4.0.0-beta.194
717
+
718
+ ### Patch Changes
719
+
720
+ - refactor(vue): remove 1s waiting toast delay in withDefaultToastStream
721
+ - effect-app@4.0.0-beta.194
722
+
723
+ ## 4.0.0-beta.193
724
+
725
+ ### Patch Changes
726
+
727
+ - effect-app@4.0.0-beta.193
728
+
729
+ ## 4.0.0-beta.192
730
+
731
+ ### Patch Changes
732
+
733
+ - effect-app@4.0.0-beta.192
734
+
735
+ ## 4.0.0-beta.191
736
+
737
+ ### Patch Changes
738
+
739
+ - 50ce7e6: Cleanup after tsgolint + oxlint-codegen-plugin migration:
740
+ - Wire `@effect-app/eslint-codegen-model/oxlint` via `jsPlugins` object form (`{ name: "codegen", specifier: ... }`) so the `codegen/codegen` rule key resolves.
741
+ - Drop `eslint-plugin-codegen` dep, patch, and `augmentedConfig` helper — codegen now runs through oxlint.
742
+ - Break cyclic workspace dep between `eslint-codegen-model` and `eslint-shared-config`; remove dead `eslint.config.mjs` from `eslint-codegen-model`.
743
+ - Switch `@effect-app/vue` to oxlint-only (no `.vue` files in `src`); drop its ESLint config and `eslint-shared-config` devDep.
744
+ - 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).
745
+ - Add `globals.browser` to `vueConfig` so browser globals (`window`, `console`, `URL`, etc.) resolve.
746
+ - 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`.
747
+ - Updated dependencies [50ce7e6]
748
+ - effect-app@4.0.0-beta.191
749
+
750
+ ## 4.0.0-beta.190
751
+
752
+ ### Patch Changes
753
+
754
+ - 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`.
755
+ - Updated dependencies [985176b]
756
+ - effect-app@4.0.0-beta.190
757
+
758
+ ## 4.0.0-beta.189
759
+
760
+ ### Patch Changes
761
+
762
+ - 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.
763
+ - 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.
764
+ - Updated dependencies [ea32222]
765
+ - effect-app@4.0.0-beta.189
766
+
767
+ ## 4.0.0-beta.188
768
+
769
+ ### Minor Changes
770
+
771
+ - 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.
772
+
773
+ ### Patch Changes
774
+
775
+ - 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.
776
+ - b2e438f: Remove Operations service and repo
777
+ - Updated dependencies [b2e438f]
778
+ - effect-app@4.0.0-beta.188
779
+
780
+ ## 4.0.0-beta.187
781
+
782
+ ### Patch Changes
783
+
784
+ - 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.
785
+ - Updated dependencies [0d4e0b8]
786
+ - effect-app@4.0.0-beta.187
787
+
788
+ ## 4.0.0-beta.186
789
+
790
+ ### Patch Changes
791
+
792
+ - 89b7d2f: `Command.withDefaultToastStream`: add `progress` option to update the waiting toast with progress text on each stream element
793
+ - effect-app@4.0.0-beta.186
794
+
795
+ ## 4.0.0-beta.185
796
+
797
+ ### Patch Changes
798
+
799
+ - ddd9505: Rename stream mutation helpers: `mutateStream` → `mutateToResult`, `mutateStream2` → `mutate`.
800
+ - effect-app@4.0.0-beta.185
801
+
802
+ ## 4.0.0-beta.184
803
+
804
+ ### Minor Changes
805
+
806
+ - 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.
807
+
808
+ 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`.
809
+
810
+ ### Patch Changes
811
+
812
+ - effect-app@4.0.0-beta.184
813
+
814
+ ## 4.0.0-beta.183
815
+
816
+ ### Minor Changes
817
+
818
+ - 8ff0bf9: Add `Command.streamFn` — a stream-backed variant of `Command.fn`.
819
+
820
+ 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.
821
+
822
+ Three handler shapes are accepted:
823
+
824
+ 1. **Generator returning a Stream** (primary):
825
+ ```ts
826
+ Command.streamFn("exportData")(function* (arg, ctx) {
827
+ const token = yield* getAuthToken;
828
+ return Stream.fromEffect(startExport(token, arg.id)).pipe(
829
+ Stream.flatMap((job) => pollProgress(job.id))
830
+ );
831
+ });
832
+ ```
833
+ 2. Function returning a `Stream` directly.
834
+ 3. Function returning `Effect<Stream>` (unwrapped automatically).
835
+
836
+ - 8ff0bf9: - `CommandButton`: add optional `:map-progress` prop to compute progress from `command.result` via a custom mapper function
837
+ - `CommandBase`: add optional `result` field exposing reactive `AsyncResult` state
838
+ - Export `Progress` type from `@effect-app/vue`
839
+ - `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
840
+ - Add `makeStreamMutation2`: like `makeStreamMutation` but returns `Effect<Stream>` per invocation (with invalidation via `Stream.ensuring`), for use with `streamFn` combinators
841
+ - Expose `streamFn` on `XClient.Y` stream handlers and on the `Command` object
842
+ - Expose `mutateStream2` on `XClient.Y` stream handlers, with a `wrapStream` helper that calls `streamFn` with the handler and provided combinators
843
+ - 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>`.
844
+
845
+ ### Patch Changes
846
+
847
+ - effect-app@4.0.0-beta.183
848
+
849
+ ## 4.0.0-beta.182
850
+
851
+ ### Minor Changes
852
+
853
+ - b9586f8: Refine `mutateStream` shape and progress reporting.
854
+
855
+ - `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`.
856
+ - `progress` formatter return type widened from `string | undefined` to `Progress | undefined`, where `Progress = string | { text: string; percentage: number }`.
857
+ - 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.
858
+ - `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.
859
+ - Factories and callables are branded with `_streamFactory` / `_streamCallable` so `Command.fn` / `Command.wrap` can disambiguate them from plain mutate functions.
860
+
861
+ ### Patch Changes
862
+
863
+ - effect-app@4.0.0-beta.182
864
+
865
+ ## 4.0.0-beta.181
866
+
867
+ ### Minor Changes
868
+
869
+ - 4bbeb19: Add `wrapStream` support to `Command` with separate `result` and `running` props.
870
+
871
+ **Key design:**
872
+
873
+ - `result` is always the command's own execution outcome (from `asResult`)
874
+ - `running` holds the stream's live `AsyncResult` ref for progress tracking
875
+
876
+ **New behaviour:**
877
+
878
+ - `CommanderImpl.wrapStream(mutation)` returns a callable like `wrap` — `wrapStream(mutation)()` gives `CommandOut`.
879
+ - Accepts either `{ id, mutateStream: [...] }` or the augmented tuple directly (when `.id` is attached).
880
+ - `Command.wrap` now accepts `{ mutateStream, id }` and the augmented tuple — both delegate to `wrapStream`.
881
+ - `FnOptions.progress` — pass a `ComputedRef<AsyncResult>` to any `fn`-created command; surfaces as `running`.
882
+ - `StreamMutationWithExtensions` now includes `.id` on the tuple.
883
+ - Stream client entries expose `wrapStream` (callable), `fn`, and `mutateStream` (with `.id`).
884
+ - Stream mutation helpers also carry `.fn` and `.id`.
885
+
886
+ ```ts
887
+ // Via client entry:
888
+ const exportCmd = Command.wrapStream(client.myExport)();
889
+ // exportCmd.result = own execution result; exportCmd.running = live stream AsyncResult
890
+
891
+ // Via mutateStream tuple (id is attached):
892
+ const exportCmd = Command.wrapStream(client.myExport.mutateStream)();
893
+
894
+ // wrap also accepts the tuple:
895
+ const exportCmd = Command.wrap(client.myExport.mutateStream)();
896
+
897
+ // fn with external progress:
898
+ const cmd = Command.fn({
899
+ id: "myExport",
900
+ progress: client.myExport.mutateStream[0],
901
+ })(function* (arg) {
902
+ yield* client.myExport.mutateStream[1](arg);
903
+ });
904
+ // cmd.running === the stream AsyncResult ref
905
+ ```
906
+
907
+ ### Patch Changes
908
+
909
+ - 583393f: Default the stream `mutateStream` execute resolved value to the request's success type when no `final` schema is declared.
910
+
911
+ 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.
912
+
913
+ - Updated dependencies [583393f]
914
+ - effect-app@4.0.0-beta.181
915
+
916
+ ## 4.0.0-beta.180
917
+
918
+ ### Minor Changes
919
+
920
+ - 7fa3045: V1/V2/V3: stream and command requests carry invalidation metadata
921
+
922
+ **V1** – stream final response includes metadata
923
+
924
+ - `Invalidation.StreamResponseChunk` wraps each stream item as `{ _tag: "value", value }` and appends `{ _tag: "done", metadata }` at the end carrying all accumulated invalidation keys.
925
+
926
+ **V2** – invalidation keys included in failures
927
+
928
+ - `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.
929
+ - `InvalidationMiddlewareLive` wraps command failures; `routing.ts` wraps stream failures.
930
+ - `apiClientFactory.ts` unwraps both on the client side, forwarding keys before re-failing with the original error.
931
+
932
+ **V3** – mid-stream metadata chunks
933
+
934
+ - `Invalidation.StreamResponseChunk` now also includes `{ _tag: "metadata", metadata }` for mid-stream invalidation.
935
+ - 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`).
936
+ - `apiClientFactory.ts` processes "metadata" chunks the same as "done" chunks, forwarding keys to `InvalidationKeysFromServer` immediately.
937
+ - `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.
938
+
939
+ ### Patch Changes
940
+
941
+ - Updated dependencies [7fa3045]
942
+ - effect-app@4.0.0-beta.180
943
+
944
+ ## 4.0.0-beta.179
945
+
946
+ ### Minor Changes
947
+
948
+ - 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`.
949
+
950
+ ```ts
951
+ class MyStream extends SomethingStream<MyStream>()(
952
+ "MyStream",
953
+ { id: S.String },
954
+ {
955
+ success: S.Union([OperationProgress, ExportComplete]),
956
+ final: ExportComplete, // execute now resolves with ExportComplete
957
+ }
958
+ ) {}
959
+ ```
960
+
961
+ ### Patch Changes
962
+
963
+ - Updated dependencies [828d264]
964
+ - effect-app@4.0.0-beta.179
965
+
966
+ ## 4.0.0-beta.178
967
+
968
+ ### Minor Changes
969
+
970
+ - 07dd7b9: Add `asStreamResult` utility and stream-based mutation example.
971
+
972
+ `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`.
973
+
974
+ 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.
975
+
976
+ ### Patch Changes
977
+
978
+ - effect-app@4.0.0-beta.178
979
+
980
+ ## 4.0.0-beta.177
981
+
982
+ ### Patch Changes
983
+
984
+ - Updated dependencies [89d8b3a]
985
+ - effect-app@4.0.0-beta.177
986
+
987
+ ## 4.0.0-beta.176
988
+
989
+ ### Patch Changes
990
+
991
+ - pass options
992
+ - Updated dependencies
993
+ - effect-app@4.0.0-beta.176
994
+
995
+ ## 4.0.0-beta.175
996
+
997
+ ### Minor Changes
998
+
999
+ - 28777c1: Add `select` option to `MutationOptionsBase` for a second cache invalidation after long-running operations.
1000
+
1001
+ When `select` is provided, cache invalidation fires twice:
1002
+
1003
+ 1. Immediately when the mutation completes (existing behaviour).
1004
+ 2. Again after the `select` effect finishes — useful for polling or waiting for a background job before refreshing data.
1005
+
1006
+ ```ts
1007
+ useMutation(startExportCommand, {
1008
+ select: (result) => pollUntilDone(result.jobId),
1009
+ });
1010
+ ```
1011
+
1012
+ ### Patch Changes
1013
+
1014
+ - 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.
1015
+ - effect-app@4.0.0-beta.175
1016
+
1017
+ ## 4.0.0-beta.174
1018
+
1019
+ ### Minor Changes
1020
+
1021
+ - 821468d: Add server-driven cache invalidation via RPC response headers.
1022
+
1023
+ - `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.
1024
+ - `effect-app/middleware`: new `InvalidationMiddleware` RPC middleware tag; included in `DefaultGenericMiddlewares`.
1025
+ - `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`.
1026
+ - `@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.
1027
+ - `@effect-app/vue`: `invalidateQueries` / `useMutation` now reads server-provided invalidation keys from `InvalidationKeysFromServer` after each mutation and applies them alongside the client-side invalidation.
1028
+
1029
+ ### Patch Changes
1030
+
1031
+ - 1b38043: Fix lint: use typescript ~6.0.3 instead of native-preview for ESLint compatibility; keep tsgo for compilation
1032
+ - 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.
1033
+ - Updated dependencies [821468d]
1034
+ - effect-app@4.0.0-beta.174
1035
+
1036
+ ## 4.0.0-beta.173
1037
+
1038
+ ### Patch Changes
1039
+
1040
+ - 4149577: fix queryresources
1041
+ - effect-app@4.0.0-beta.173
1042
+
1043
+ ## 4.0.0-beta.172
1044
+
1045
+ ### Patch Changes
1046
+
1047
+ - effect-app@4.0.0-beta.172
1048
+
1049
+ ## 4.0.0-beta.171
1050
+
1051
+ ### Patch Changes
1052
+
1053
+ - d71d976: fix
1054
+ - Updated dependencies [d71d976]
1055
+ - effect-app@4.0.0-beta.171
1056
+
1057
+ ## 4.0.0-beta.170
1058
+
1059
+ ### Patch Changes
1060
+
1061
+ - 8f09f77: fix
1062
+ - Updated dependencies [8f09f77]
1063
+ - effect-app@4.0.0-beta.170
1064
+
1065
+ ## 4.0.0-beta.169
1066
+
1067
+ ### Patch Changes
1068
+
1069
+ - 8ae8b53: input mess
1070
+ - Updated dependencies [8ae8b53]
1071
+ - effect-app@4.0.0-beta.169
1072
+
1073
+ ## 4.0.0-beta.168
1074
+
1075
+ ### Patch Changes
1076
+
1077
+ - Updated dependencies [178480a]
1078
+ - effect-app@4.0.0-beta.168
1079
+
1080
+ ## 4.0.0-beta.167
1081
+
1082
+ ### Patch Changes
1083
+
1084
+ - 140e192: Relax invalidation resource value constraints to allow arbitrary values while preserving query-only filtering in invalidation handling.
1085
+ - Updated dependencies [140e192]
1086
+ - effect-app@4.0.0-beta.167
1087
+
1088
+ ## 4.0.0-beta.166
1089
+
1090
+ ### Patch Changes
1091
+
1092
+ - 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.
1093
+ - Updated dependencies [dbcc53b]
1094
+ - effect-app@4.0.0-beta.166
1095
+
1096
+ ## 4.0.0-beta.165
1097
+
1098
+ ### Patch Changes
1099
+
1100
+ - 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.
1101
+ - 66fd718: Require `clientFor` invalidation resources when any command in the client configures them.
1102
+ - Updated dependencies [f88ea34]
1103
+ - effect-app@4.0.0-beta.165
1104
+
1105
+ ## 4.0.0-beta.164
1106
+
1107
+ ### Minor Changes
1108
+
1109
+ - 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.
1110
+
1111
+ ### Patch Changes
1112
+
1113
+ - Updated dependencies [8cb3de4]
1114
+ - effect-app@4.0.0-beta.164
1115
+
1116
+ ## 4.0.0-beta.163
1117
+
1118
+ ### Patch Changes
1119
+
1120
+ - b952f19: bye cruft
1121
+ - Updated dependencies [b952f19]
1122
+ - effect-app@4.0.0-beta.163
1123
+
1124
+ ## 4.0.0-beta.162
1125
+
1126
+ ### Patch Changes
1127
+
1128
+ - Updated dependencies [b52b424]
1129
+ - effect-app@4.0.0-beta.162
1130
+
1131
+ ## 4.0.0-beta.161
1132
+
1133
+ ### Patch Changes
1134
+
1135
+ - 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.
1136
+ - effect-app@4.0.0-beta.161
1137
+
1138
+ ## 4.0.0-beta.160
1139
+
1140
+ ### Patch Changes
1141
+
1142
+ - 505bfa9: Add concurrent decode helper APIs and migrate decode callsites to use them.
1143
+
1144
+ - Add `withDefaultParseOptions` and keep `DefaultParseOptions` centralized.
1145
+ - Export `decodeEffectConcurrently` and `decodeUnknownEffectConcurrently` from Schema and SchemaParser modules.
1146
+ - Update repository, queue, client, form, and CLI decode paths to use concurrent decode helpers.
1147
+ - Keep schema constructors free of hardcoded parse concurrency overrides.
1148
+
1149
+ - Updated dependencies [505bfa9]
1150
+ - effect-app@4.0.0-beta.160
1151
+
1152
+ ## 4.0.0-beta.159
1153
+
1154
+ ### Patch Changes
1155
+
1156
+ - c1e73de:
1157
+ - Updated dependencies [c1e73de]
1158
+ - effect-app@4.0.0-beta.159
1159
+
1160
+ ## 4.0.0-beta.158
1161
+
1162
+ ### Patch Changes
1163
+
1164
+ - Updated dependencies [3c1f52d]
1165
+ - Updated dependencies [6ae3050]
1166
+ - effect-app@4.0.0-beta.158
1167
+
1168
+ ## 4.0.0-beta.157
1169
+
1170
+ ### Patch Changes
1171
+
1172
+ - Updated dependencies [6fff09c]
1173
+ - effect-app@4.0.0-beta.157
1174
+
1175
+ ## 4.0.0-beta.156
1176
+
1177
+ ### Patch Changes
1178
+
1179
+ - 4bc4a27: Constrain `project` schema to require matching `Encoded` type with original success schema
1180
+ - effect-app@4.0.0-beta.156
1181
+
1182
+ ## 4.0.0-beta.155
1183
+
1184
+ ### Patch Changes
1185
+
1186
+ - 2e4c018: feat: add client projection
1187
+ - Updated dependencies [c215db8]
1188
+ - effect-app@4.0.0-beta.155
1189
+
1190
+ ## 4.0.0-beta.154
1191
+
1192
+ ### Patch Changes
1193
+
1194
+ - 3200fa8: apply the remaining formatting and autofix cleanup across the vue packages
1195
+ - effect-app@4.0.0-beta.154
1196
+
1197
+ ## 4.0.0-beta.153
1198
+
1199
+ ### Patch Changes
1200
+
1201
+ - effect-app@4.0.0-beta.153
1202
+
1203
+ ## 4.0.0-beta.152
1204
+
1205
+ ### Patch Changes
1206
+
1207
+ - effect-app@4.0.0-beta.152
1208
+
1209
+ ## 4.0.0-beta.151
1210
+
1211
+ ### Patch Changes
1212
+
1213
+ - effect-app@4.0.0-beta.151
1214
+
1215
+ ## 4.0.0-beta.150
1216
+
1217
+ ### Patch Changes
1218
+
1219
+ - Updated dependencies [85a8275]
1220
+ - effect-app@4.0.0-beta.150
1221
+
1222
+ ## 4.0.0-beta.149
1223
+
1224
+ ### Patch Changes
1225
+
1226
+ - Updated dependencies [f317c5e]
1227
+ - effect-app@4.0.0-beta.149
1228
+
1229
+ ## 4.0.0-beta.148
1230
+
1231
+ ### Patch Changes
1232
+
1233
+ - Updated dependencies [199e9a5]
1234
+ - effect-app@4.0.0-beta.148
1235
+
1236
+ ## 4.0.0-beta.147
1237
+
1238
+ ### Patch Changes
1239
+
1240
+ - Updated dependencies [47e3742]
1241
+ - effect-app@4.0.0-beta.147
1242
+
1243
+ ## 4.0.0-beta.146
1244
+
1245
+ ### Patch Changes
1246
+
1247
+ - Updated dependencies [a4dff57]
1248
+ - effect-app@4.0.0-beta.146
1249
+
1250
+ ## 4.0.0-beta.145
1251
+
1252
+ ### Patch Changes
1253
+
1254
+ - Updated dependencies [12abb55]
1255
+ - effect-app@4.0.0-beta.145
1256
+
1257
+ ## 4.0.0-beta.144
1258
+
1259
+ ### Patch Changes
1260
+
1261
+ - 11422f8: Update request helper typing and runtime invocation to rely on schema `.make` instead of class constructors, avoiding `new`-based assumptions for request schemas.
1262
+ - Updated dependencies [11422f8]
1263
+ - Updated dependencies [d31253f]
1264
+ - effect-app@4.0.0-beta.144
1265
+
1266
+ ## 4.0.0-beta.143
1267
+
1268
+ ### Patch Changes
1269
+
1270
+ - Updated dependencies [79eb019]
1271
+ - effect-app@4.0.0-beta.143
1272
+
1273
+ ## 4.0.0-beta.142
1274
+
1275
+ ### Patch Changes
1276
+
1277
+ - Updated dependencies [3436d44]
1278
+ - Updated dependencies [025de47]
1279
+ - effect-app@4.0.0-beta.142
1280
+
1281
+ ## 4.0.0-beta.141
1282
+
1283
+ ### Patch Changes
1284
+
1285
+ - Updated dependencies [7c25dbb]
1286
+ - effect-app@4.0.0-beta.141
1287
+
1288
+ ## 4.0.0-beta.140
1289
+
1290
+ ### Patch Changes
1291
+
1292
+ - effect-app@4.0.0-beta.140
1293
+
1294
+ ## 4.0.0-beta.139
1295
+
1296
+ ### Patch Changes
1297
+
1298
+ - ba61aad: raw dog
1299
+ - effect-app@4.0.0-beta.139
1300
+
1301
+ ## 4.0.0-beta.138
1302
+
1303
+ ### Patch Changes
1304
+
1305
+ - 9be71e1: fix: double guard
1306
+ - effect-app@4.0.0-beta.138
1307
+
1308
+ ## 4.0.0-beta.137
1309
+
1310
+ ### Patch Changes
1311
+
1312
+ - effect-app@4.0.0-beta.137
1313
+
1314
+ ## 4.0.0-beta.136
1315
+
1316
+ ### Patch Changes
1317
+
1318
+ - effect-app@4.0.0-beta.136
1319
+
1320
+ ## 4.0.0-beta.135
1321
+
1322
+ ### Patch Changes
1323
+
1324
+ - Updated dependencies [c7bbc41]
1325
+ - effect-app@4.0.0-beta.135
1326
+
1327
+ ## 4.0.0-beta.134
1328
+
1329
+ ### Patch Changes
1330
+
1331
+ - Updated dependencies [9d3495e]
1332
+ - Updated dependencies [f353d48]
1333
+ - effect-app@4.0.0-beta.134
1334
+
1335
+ ## 4.0.0-beta.133
1336
+
1337
+ ### Patch Changes
1338
+
1339
+ - 99a2e9b: Use warning toasts for expected commander failures, while keeping unexpected errors as error toasts.
1340
+ - c3299f7: update packages
1341
+ - Updated dependencies [c3299f7]
1342
+ - effect-app@4.0.0-beta.133
1343
+
1344
+ ## 4.0.0-beta.132
1345
+
1346
+ ### Patch Changes
1347
+
1348
+ - 8753c52: render
1349
+ - effect-app@4.0.0-beta.132
1350
+
1351
+ ## 4.0.0-beta.131
1352
+
1353
+ ### Patch Changes
1354
+
1355
+ - 1b57aa4: Add a `Commander` error-renderer registry via `Context.Reference` and apply registered guarded renderers before default error formatting.
1356
+ - effect-app@4.0.0-beta.131
1357
+
1358
+ ## 4.0.0-beta.130
1359
+
1360
+ ### Patch Changes
1361
+
1362
+ - fc41dcf: add trace id and span id to toasts
1363
+ - Updated dependencies [ea1bd46]
1364
+ - effect-app@4.0.0-beta.130
1365
+
1366
+ ## 4.0.0-beta.129
1367
+
1368
+ ### Patch Changes
1369
+
1370
+ - 34f6a97: fix missing fn
1371
+ - effect-app@4.0.0-beta.129
1372
+
1373
+ ## 4.0.0-beta.128
1374
+
1375
+ ### Patch Changes
1376
+
1377
+ - 57db551: Split `TaggedRequestFor` into `Query` and `Command` factories, and mark generated request classes with `type: "query" | "command"`.
1378
+
1379
+ Vue client helpers now expose query-only helpers (`query`, `suspense`, `fetch`) for query requests and mutation-only helpers (`mutate`, `fetch`) for command requests.
1380
+
1381
+ - Updated dependencies [57db551]
1382
+ - effect-app@4.0.0-beta.128
1383
+
1384
+ ## 4.0.0-beta.127
1385
+
1386
+ ### Minor Changes
1387
+
1388
+ - 6a3d364: Client entries are now plain objects; use `.request` to invoke the request.
1389
+
1390
+ `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.
1391
+
1392
+ ### Patch Changes
1393
+
1394
+ - effect-app@4.0.0-beta.127
1395
+
1396
+ ## 4.0.0-beta.126
1397
+
1398
+ ### Patch Changes
1399
+
1400
+ - Updated dependencies [458bb1b]
1401
+ - effect-app@4.0.0-beta.126
1402
+
1403
+ ## 4.0.0-beta.125
1404
+
1405
+ ### Patch Changes
1406
+
1407
+ - effect-app@4.0.0-beta.125
1408
+
1409
+ ## 4.0.0-beta.124
1410
+
1411
+ ### Patch Changes
1412
+
1413
+ - 256ae85: cleanup
1414
+ - Updated dependencies [256ae85]
1415
+ - effect-app@4.0.0-beta.124
1416
+
1417
+ ## 4.0.0-beta.123
1418
+
1419
+ ### Patch Changes
1420
+
1421
+ - Updated dependencies [14aba14]
1422
+ - effect-app@4.0.0-beta.123
1423
+
1424
+ ## 4.0.0-beta.122
1425
+
1426
+ ### Patch Changes
1427
+
1428
+ - 07a57b6: Limit `client.method.mutate` extensions to only expose the mutation call and `wrap`.
1429
+ - f052d38: Replace `(...) => Effect.gen` with `Effect.fnUntraced` in commander `withDefaultToast`.
1430
+ - Updated dependencies [f052d38]
1431
+ - effect-app@4.0.0-beta.122
1432
+
1433
+ ## 4.0.0-beta.121
1434
+
1435
+ ### Patch Changes
1436
+
1437
+ - Updated dependencies [5ac46cb]
1438
+ - effect-app@4.0.0-beta.121
1439
+
1440
+ ## 4.0.0-beta.120
1441
+
1442
+ ### Patch Changes
1443
+
1444
+ - Updated dependencies [f21190c]
1445
+ - effect-app@4.0.0-beta.120
1446
+
1447
+ ## 4.0.0-beta.119
1448
+
1449
+ ### Patch Changes
1450
+
1451
+ - effect-app@4.0.0-beta.119
1452
+
1453
+ ## 4.0.0-beta.118
1454
+
1455
+ ### Patch Changes
1456
+
1457
+ - Update effect packages to 4.0.0-beta.52
1458
+ - Updated dependencies [bd26832]
1459
+ - Updated dependencies [08d2e70]
1460
+ - Updated dependencies
1461
+ - effect-app@4.0.0-beta.118
1462
+
1463
+ ## 4.0.0-beta.117
1464
+
1465
+ ### Patch Changes
1466
+
1467
+ - effect-app@4.0.0-beta.117
1468
+
1469
+ ## 4.0.0-beta.116
1470
+
1471
+ ### Patch Changes
1472
+
1473
+ - effect-app@4.0.0-beta.116
1474
+
1475
+ ## 4.0.0-beta.115
1476
+
1477
+ ### Patch Changes
1478
+
1479
+ - effect-app@4.0.0-beta.115
1480
+
1481
+ ## 4.0.0-beta.114
1482
+
1483
+ ### Patch Changes
1484
+
1485
+ - effect-app@4.0.0-beta.114
1486
+
1487
+ ## 4.0.0-beta.113
1488
+
1489
+ ### Patch Changes
1490
+
1491
+ - effect-app@4.0.0-beta.113
1492
+
1493
+ ## 4.0.0-beta.112
1494
+
1495
+ ### Patch Changes
1496
+
1497
+ - effect-app@4.0.0-beta.112
1498
+
1499
+ ## 4.0.0-beta.111
1500
+
1501
+ ### Patch Changes
1502
+
1503
+ - Updated dependencies [ca94edf]
1504
+ - effect-app@4.0.0-beta.111
1505
+
1506
+ ## 4.0.0-beta.110
1507
+
1508
+ ### Patch Changes
1509
+
1510
+ - effect-app@4.0.0-beta.110
1511
+
1512
+ ## 4.0.0-beta.109
1513
+
1514
+ ### Patch Changes
1515
+
1516
+ - effect-app@4.0.0-beta.109
1517
+
1518
+ ## 4.0.0-beta.108
1519
+
1520
+ ### Patch Changes
1521
+
1522
+ - Updated dependencies [3e46e7b]
1523
+ - effect-app@4.0.0-beta.108
1524
+
1525
+ ## 4.0.0-beta.107
1526
+
1527
+ ### Patch Changes
1528
+
1529
+ - effect-app@4.0.0-beta.107
1530
+
1531
+ ## 4.0.0-beta.106
1532
+
1533
+ ### Patch Changes
1534
+
1535
+ - effect-app@4.0.0-beta.106
1536
+
1537
+ ## 4.0.0-beta.105
1538
+
1539
+ ### Patch Changes
1540
+
1541
+ - effect-app@4.0.0-beta.105
1542
+
1543
+ ## 4.0.0-beta.104
1544
+
1545
+ ### Patch Changes
1546
+
1547
+ - Updated dependencies [e944bca]
1548
+ - effect-app@4.0.0-beta.104
1549
+
1550
+ ## 4.0.0-beta.103
1551
+
1552
+ ### Patch Changes
1553
+
1554
+ - Updated dependencies [7119320]
1555
+ - effect-app@4.0.0-beta.103
1556
+
1557
+ ## 4.0.0-beta.102
1558
+
1559
+ ### Patch Changes
1560
+
1561
+ - effect-app@4.0.0-beta.102
1562
+
1563
+ ## 4.0.0-beta.101
1564
+
1565
+ ### Patch Changes
1566
+
1567
+ - effect-app@4.0.0-beta.101
1568
+
1569
+ ## 4.0.0-beta.100
1570
+
1571
+ ### Patch Changes
1572
+
1573
+ - effect-app@4.0.0-beta.100
1574
+
1575
+ ## 4.0.0-beta.99
1576
+
1577
+ ### Patch Changes
1578
+
1579
+ - effect-app@4.0.0-beta.99
1580
+
1581
+ ## 4.0.0-beta.98
1582
+
1583
+ ### Patch Changes
1584
+
1585
+ - effect-app@4.0.0-beta.98
1586
+
1587
+ ## 4.0.0-beta.97
1588
+
1589
+ ### Patch Changes
1590
+
1591
+ - effect-app@4.0.0-beta.97
1592
+
1593
+ ## 4.0.0-beta.96
1594
+
1595
+ ### Patch Changes
1596
+
1597
+ - Updated dependencies [5615e47]
1598
+ - effect-app@4.0.0-beta.96
1599
+
1600
+ ## 4.0.0-beta.95
1601
+
1602
+ ### Patch Changes
1603
+
1604
+ - Updated dependencies [88838fb]
1605
+ - effect-app@4.0.0-beta.95
1606
+
1607
+ ## 4.0.0-beta.94
1608
+
1609
+ ### Patch Changes
1610
+
1611
+ - effect-app@4.0.0-beta.94
1612
+
1613
+ ## 4.0.0-beta.93
1614
+
1615
+ ### Patch Changes
1616
+
1617
+ - effect-app@4.0.0-beta.93
1618
+
1619
+ ## 4.0.0-beta.92
1620
+
1621
+ ### Patch Changes
1622
+
1623
+ - effect-app@4.0.0-beta.92
1624
+
1625
+ ## 4.0.0-beta.91
1626
+
1627
+ ### Patch Changes
1628
+
1629
+ - Updated dependencies [738b482]
1630
+ - effect-app@4.0.0-beta.91
1631
+
1632
+ ## 4.0.0-beta.90
1633
+
1634
+ ### Patch Changes
1635
+
1636
+ - effect-app@4.0.0-beta.90
1637
+
1638
+ ## 4.0.0-beta.89
1639
+
1640
+ ### Patch Changes
1641
+
1642
+ - effect-app@4.0.0-beta.89
1643
+
1644
+ ## 4.0.0-beta.88
1645
+
1646
+ ### Patch Changes
1647
+
1648
+ - effect-app@4.0.0-beta.88
1649
+
1650
+ ## 4.0.0-beta.87
1651
+
1652
+ ### Patch Changes
1653
+
1654
+ - effect-app@4.0.0-beta.87
1655
+
1656
+ ## 4.0.0-beta.86
1657
+
1658
+ ### Patch Changes
1659
+
1660
+ - effect-app@4.0.0-beta.86
1661
+
1662
+ ## 4.0.0-beta.85
1663
+
1664
+ ### Patch Changes
1665
+
1666
+ - effect-app@4.0.0-beta.85
1667
+
1668
+ ## 4.0.0-beta.84
1669
+
1670
+ ### Patch Changes
1671
+
1672
+ - effect-app@4.0.0-beta.84
1673
+
1674
+ ## 4.0.0-beta.83
1675
+
1676
+ ### Patch Changes
1677
+
1678
+ - effect-app@4.0.0-beta.83
1679
+
1680
+ ## 4.0.0-beta.82
1681
+
1682
+ ### Patch Changes
1683
+
1684
+ - effect-app@4.0.0-beta.82
1685
+
1686
+ ## 4.0.0-beta.81
1687
+
1688
+ ### Patch Changes
1689
+
1690
+ - effect-app@4.0.0-beta.81
1691
+
1692
+ ## 4.0.0-beta.80
1693
+
1694
+ ### Patch Changes
1695
+
1696
+ - effect-app@4.0.0-beta.80
1697
+
1698
+ ## 4.0.0-beta.79
1699
+
1700
+ ### Patch Changes
1701
+
1702
+ - 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).
1703
+ - Updated dependencies [d16845e]
1704
+ - effect-app@4.0.0-beta.79
1705
+
1706
+ ## 4.0.0-beta.78
1707
+
1708
+ ### Patch Changes
1709
+
1710
+ - effect-app@4.0.0-beta.78
1711
+
1712
+ ## 4.0.0-beta.77
1713
+
1714
+ ### Patch Changes
1715
+
1716
+ - Updated dependencies [3613e87]
1717
+ - effect-app@4.0.0-beta.77
1718
+
1719
+ ## 4.0.0-beta.76
1720
+
1721
+ ### Patch Changes
1722
+
1723
+ - 08d30af: Fix Commander combinator type inference for void Arg and withDefaultToast callbacks
1724
+
1725
+ - Use `ArgForCombinator` helper to properly resolve `void` args to `undefined` in combinator positions, enabling correct type inference for `withDefaultToast` and other curried combinators
1726
+ - Use explicit positional params in `withDefaultToast` options callbacks instead of rest spread, allowing users to omit trailing parameters
1727
+
1728
+ - fac725d: update effect to latest beta
1729
+ - Updated dependencies [a5248a9]
1730
+ - Updated dependencies [fac725d]
1731
+ - effect-app@4.0.0-beta.76
1732
+
1733
+ ## 4.0.0-beta.75
1734
+
1735
+ ### Patch Changes
1736
+
1737
+ - Updated dependencies [24f0a5a]
1738
+ - effect-app@4.0.0-beta.75
1739
+
1740
+ ## 4.0.0-beta.74
1741
+
1742
+ ### Patch Changes
1743
+
1744
+ - Updated dependencies [54ec1ef]
1745
+ - effect-app@4.0.0-beta.74
1746
+
1747
+ ## 4.0.0-beta.73
1748
+
1749
+ ### Patch Changes
1750
+
1751
+ - effect-app@4.0.0-beta.73
1752
+
1753
+ ## 4.0.0-beta.72
1754
+
1755
+ ### Patch Changes
1756
+
1757
+ - Updated dependencies [0541f0d]
1758
+ - effect-app@4.0.0-beta.72
1759
+
1760
+ ## 4.0.0-beta.71
1761
+
1762
+ ### Patch Changes
1763
+
1764
+ - Updated dependencies [beae3a0]
1765
+ - effect-app@4.0.0-beta.71
1766
+
1767
+ ## 4.0.0-beta.70
1768
+
1769
+ ### Patch Changes
1770
+
1771
+ - effect-app@4.0.0-beta.70
1772
+
1773
+ ## 4.0.0-beta.69
1774
+
1775
+ ### Patch Changes
1776
+
1777
+ - dc465e3: update to latest effect beta
1778
+ - Updated dependencies [dc465e3]
1779
+ - effect-app@4.0.0-beta.69
1780
+
1781
+ ## 4.0.0-beta.68
1782
+
1783
+ ### Patch Changes
1784
+
1785
+ - Updated dependencies [e6f2341]
1786
+ - effect-app@4.0.0-beta.68
1787
+
1788
+ ## 4.0.0-beta.67
1789
+
1790
+ ### Patch Changes
1791
+
1792
+ - effect-app@4.0.0-beta.67
1793
+
1794
+ ## 4.0.0-beta.66
1795
+
1796
+ ### Patch Changes
1797
+
1798
+ - Updated dependencies [edc52e4]
1799
+ - effect-app@4.0.0-beta.66
1800
+
1801
+ ## 4.0.0-beta.65
1802
+
1803
+ ### Minor Changes
1804
+
1805
+ - 1f103b2: Replace `proxify` with explicit service accessor helpers: `accessFn`, `accessEffectFn`, `accessCn`, `accessEffectCn`.
1806
+
1807
+ ### Patch Changes
1808
+
1809
+ - Updated dependencies [31739d7]
1810
+ - Updated dependencies [1f103b2]
1811
+ - effect-app@4.0.0-beta.65
1812
+
1813
+ ## 4.0.0-beta.64
1814
+
1815
+ ### Patch Changes
1816
+
1817
+ - Updated dependencies [c1a6fdc]
1818
+ - effect-app@4.0.0-beta.64
1819
+
1820
+ ## 4.0.0-beta.63
1821
+
1822
+ ### Minor Changes
1823
+
1824
+ - b3ed68a: Remove `legacy` from `makeClient` return and clean up `LegacyMutation`, `LegacyMutationImpl`, and related types.
1825
+
1826
+ ### Patch Changes
1827
+
1828
+ - effect-app@4.0.0-beta.63
1829
+
1830
+ ## 4.0.0-beta.62
1831
+
1832
+ ### Patch Changes
1833
+
1834
+ - Updated dependencies [0b21a02]
1835
+ - effect-app@4.0.0-beta.62
1836
+
1837
+ ## 4.0.0-beta.61
1838
+
1839
+ ### Patch Changes
1840
+
1841
+ - effect-app@4.0.0-beta.61
1842
+
1843
+ ## 4.0.0-beta.60
1844
+
1845
+ ### Patch Changes
1846
+
1847
+ - effect-app@4.0.0-beta.60
1848
+
1849
+ ## 4.0.0-beta.59
1850
+
1851
+ ### Patch Changes
1852
+
1853
+ - cec026d: update packages
1854
+ - Updated dependencies [cec026d]
1855
+ - effect-app@4.0.0-beta.59
1856
+
1857
+ ## 4.0.0-beta.58
1858
+
1859
+ ### Patch Changes
1860
+
1861
+ - 7fd35e4: update tanstack/query
1862
+ - effect-app@4.0.0-beta.58
1863
+
1864
+ ## 4.0.0-beta.57
1865
+
1866
+ ### Patch Changes
1867
+
1868
+ - effect-app@4.0.0-beta.57
1869
+
1870
+ ## 4.0.0-beta.56
1871
+
1872
+ ### Patch Changes
1873
+
1874
+ - effect-app@4.0.0-beta.56
1875
+
1876
+ ## 4.0.0-beta.55
1877
+
1878
+ ### Patch Changes
1879
+
1880
+ - eceb3a3: align CauseException
1881
+ - effect-app@4.0.0-beta.55
1882
+
1883
+ ## 4.0.0-beta.54
1884
+
1885
+ ### Patch Changes
1886
+
1887
+ - d867272: the return of `Context`
1888
+ - Updated dependencies [d867272]
1889
+ - effect-app@4.0.0-beta.54
1890
+
1891
+ ## 4.0.0-beta.53
1892
+
1893
+ ### Patch Changes
1894
+
1895
+ - Updated dependencies [ee9694e]
1896
+ - effect-app@4.0.0-beta.53
1897
+
1898
+ ## 4.0.0-beta.52
1899
+
1900
+ ### Patch Changes
1901
+
1902
+ - Updated dependencies [6252808]
1903
+ - effect-app@4.0.0-beta.52
1904
+
1905
+ ## 4.0.0-beta.51
1906
+
1907
+ ### Patch Changes
1908
+
1909
+ - effect-app@4.0.0-beta.51
1910
+
1911
+ ## 4.0.0-beta.50
1912
+
1913
+ ### Patch Changes
1914
+
1915
+ - effect-app@4.0.0-beta.50
1916
+
1917
+ ## 4.0.0-beta.49
1918
+
1919
+ ### Patch Changes
1920
+
1921
+ - Updated dependencies [e585c9c]
1922
+ - effect-app@4.0.0-beta.49
1923
+
1924
+ ## 4.0.0-beta.48
1925
+
1926
+ ### Patch Changes
1927
+
1928
+ - Updated dependencies [0c88f78]
1929
+ - effect-app@4.0.0-beta.48
1930
+
1931
+ ## 4.0.0-beta.47
1932
+
1933
+ ### Patch Changes
1934
+
1935
+ - Updated dependencies [3365758]
1936
+ - effect-app@4.0.0-beta.47
1937
+
1938
+ ## 4.0.0-beta.46
1939
+
1940
+ ### Patch Changes
1941
+
1942
+ - 28a0b29: expose Input
1943
+ - 0c42d67: move out Commander and friends from experimental
1944
+ - effect-app@4.0.0-beta.46
1945
+
1946
+ ## 4.0.0-beta.45
1947
+
1948
+ ### Patch Changes
1949
+
1950
+ - 10b55ff: update packages
1951
+ - Updated dependencies [10b55ff]
1952
+ - effect-app@4.0.0-beta.45
1953
+
1954
+ ## 4.0.0-beta.44
1955
+
1956
+ ### Patch Changes
1957
+
1958
+ - a37aa38: Update to effect beta 43
1959
+ - Updated dependencies [a37aa38]
1960
+ - effect-app@4.0.0-beta.44
1961
+
1962
+ ## 4.0.0-beta.43
1963
+
1964
+ ### Patch Changes
1965
+
1966
+ - effect-app@4.0.0-beta.43
1967
+
1968
+ ## 4.0.0-beta.42
1969
+
1970
+ ### Patch Changes
1971
+
1972
+ - 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.
1973
+ - effect-app@4.0.0-beta.42
1974
+
1975
+ ## 4.0.0-beta.41
1976
+
1977
+ ### Patch Changes
1978
+
1979
+ - 702d51c: also make runSync version available\
1980
+ - effect-app@4.0.0-beta.41
1981
+
1982
+ ## 4.0.0-beta.40
1983
+
1984
+ ### Patch Changes
1985
+
1986
+ - 18fd1df: unify runPromise
1987
+ - effect-app@4.0.0-beta.40
1988
+
1989
+ ## 4.0.0-beta.39
1990
+
1991
+ ### Patch Changes
1992
+
1993
+ - Updated dependencies [10e90d5]
1994
+ - effect-app@4.0.0-beta.39
1995
+
1996
+ ## 4.0.0-beta.38
1997
+
1998
+ ### Patch Changes
1999
+
2000
+ - Updated dependencies [0b3e00e]
2001
+ - effect-app@4.0.0-beta.38
2002
+
2003
+ ## 4.0.0-beta.37
2004
+
2005
+ ### Patch Changes
2006
+
2007
+ - 04fc985: Fixes error handling
2008
+ - Updated dependencies [947fe20]
2009
+ - effect-app@4.0.0-beta.37
2010
+
2011
+ ## 4.0.0-beta.36
2012
+
2013
+ ### Patch Changes
2014
+
2015
+ - effect-app@4.0.0-beta.36
2016
+
2017
+ ## 4.0.0-beta.35
2018
+
2019
+ ### Patch Changes
2020
+
2021
+ - effect-app@4.0.0-beta.35
2022
+
2023
+ ## 4.0.0-beta.34
2024
+
2025
+ ### Patch Changes
2026
+
2027
+ - 8c645d5: update to latest effect
2028
+ - Updated dependencies [8c645d5]
2029
+ - effect-app@4.0.0-beta.34
2030
+
2031
+ ## 4.0.0-beta.33
2032
+
2033
+ ### Patch Changes
2034
+
2035
+ - 4b95009: use Finite instead of Number
2036
+ - 7328c76: add deprecation notices
2037
+ - Updated dependencies [4b95009]
2038
+ - effect-app@4.0.0-beta.33
2039
+
2040
+ ## 4.0.0-beta.32
2041
+
2042
+ ### Patch Changes
2043
+
2044
+ - Updated dependencies [01d862a]
2045
+ - effect-app@4.0.0-beta.32
2046
+
2047
+ ## 4.0.0-beta.31
2048
+
2049
+ ### Patch Changes
2050
+
2051
+ - Updated dependencies [6b6d601]
2052
+ - effect-app@4.0.0-beta.31
2053
+
2054
+ ## 4.0.0-beta.30
2055
+
2056
+ ### Patch Changes
2057
+
2058
+ - Updated dependencies [5ec1f45]
2059
+ - effect-app@4.0.0-beta.30
2060
+
2061
+ ## 4.0.0-beta.29
2062
+
2063
+ ### Patch Changes
2064
+
2065
+ - Updated dependencies [a899d46]
2066
+ - effect-app@4.0.0-beta.29
2067
+
3
2068
  ## 4.0.0-beta.28
4
2069
 
5
2070
  ### Patch Changes