@effect-app/vue 4.0.0-beta.22 → 4.0.0-beta.221

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