@effect-app/vue 4.0.0-beta.30 → 4.0.0-beta.300

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