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

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