svelte-effect-runtime 3.4.11 → 4.0.1

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 (147) hide show
  1. package/.dist/chunks/client-BrZka6DW.js +530 -0
  2. package/.dist/chunks/client-BrZka6DW.js.map +1 -0
  3. package/.dist/chunks/compiler-COVzgLYo.js +412 -0
  4. package/.dist/chunks/compiler-COVzgLYo.js.map +1 -0
  5. package/.dist/chunks/descriptors-B4otDlm1.js +216 -0
  6. package/.dist/chunks/descriptors-B4otDlm1.js.map +1 -0
  7. package/.dist/chunks/diagnostics-BDrky-Di.js +359 -0
  8. package/.dist/chunks/diagnostics-BDrky-Di.js.map +1 -0
  9. package/.dist/chunks/dispatcher-BA0PLQhA.js +16 -0
  10. package/.dist/chunks/dispatcher-BA0PLQhA.js.map +1 -0
  11. package/.dist/chunks/{dispatcher-pHH4JcFR.js → dispatcher-_x0MQZBS.js} +84 -258
  12. package/.dist/chunks/dispatcher-_x0MQZBS.js.map +1 -0
  13. package/.dist/chunks/{errors-Dcf0MVbq.js → errors-CLsbGjIa.js} +57 -106
  14. package/.dist/chunks/errors-CLsbGjIa.js.map +1 -0
  15. package/.dist/chunks/live-BundLSoY.js +146 -0
  16. package/.dist/chunks/live-BundLSoY.js.map +1 -0
  17. package/.dist/chunks/live-CHK0RrZu.js +10 -0
  18. package/.dist/chunks/live-CHK0RrZu.js.map +1 -0
  19. package/.dist/chunks/{remote-client-Bj1pZXgq.js → remote-client-mkQAfP1G.js} +30 -24
  20. package/.dist/chunks/remote-client-mkQAfP1G.js.map +1 -0
  21. package/.dist/chunks/{runtime-ekkMQ-wL.js → runtime-HDTlEnzp.js} +3 -27
  22. package/.dist/chunks/runtime-HDTlEnzp.js.map +1 -0
  23. package/.dist/chunks/server-BNrA1I-u.js +144 -0
  24. package/.dist/chunks/server-BNrA1I-u.js.map +1 -0
  25. package/.dist/chunks/source-scan-9pZxnfct.js +1059 -0
  26. package/.dist/chunks/source-scan-9pZxnfct.js.map +1 -0
  27. package/.dist/chunks/{transform-CtQDGS9c.js → transform-BXyYUAez.js} +308 -484
  28. package/.dist/chunks/transform-BXyYUAez.js.map +1 -0
  29. package/.dist/compiler/markup-identifiers.d.ts +2 -0
  30. package/.dist/compiler/remote-client.d.ts +6 -0
  31. package/.dist/compiler/source-scan.d.ts +101 -0
  32. package/.dist/compiler/sveltekit-remote-bridge.d.ts +3 -0
  33. package/.dist/{vite.d.ts → compiler.d.ts} +7 -1
  34. package/.dist/{vite.js → compiler.js} +1 -1
  35. package/.dist/detect.d.ts +0 -31
  36. package/.dist/detect.js +0 -39
  37. package/.dist/detect.js.map +1 -1
  38. package/.dist/diagnostics.d.ts +0 -16
  39. package/.dist/dispatcher/deps.d.ts +3 -14
  40. package/.dist/dispatcher/fibers.d.ts +5 -46
  41. package/.dist/dispatcher/index.d.ts +1 -143
  42. package/.dist/dispatcher/types.d.ts +0 -151
  43. package/.dist/dispatcher.js +1 -1
  44. package/.dist/errors.d.ts +44 -86
  45. package/.dist/generated/dispatcher.d.ts +0 -50
  46. package/.dist/generators.d.ts +3 -12
  47. package/.dist/internal/descriptors.d.ts +0 -16
  48. package/.dist/internal/generators.js +25 -3
  49. package/.dist/internal/generators.js.map +1 -0
  50. package/.dist/internal/live.d.ts +9 -0
  51. package/.dist/internal/remote-client.js +2 -2
  52. package/.dist/internal/remote-server.js +2 -2
  53. package/.dist/internal/schema.d.ts +13 -0
  54. package/.dist/live.d.ts +106 -0
  55. package/.dist/markup/event-attributes.d.ts +5 -28
  56. package/.dist/markup/promise.d.ts +1 -23
  57. package/.dist/markup/promise.js +2 -18
  58. package/.dist/markup/promise.js.map +1 -1
  59. package/.dist/markup/run.d.ts +1 -10
  60. package/.dist/markup/run.js +2 -11
  61. package/.dist/markup/run.js.map +1 -1
  62. package/.dist/markup/transform/apply.d.ts +4 -4
  63. package/.dist/markup/transform/classify.d.ts +2 -11
  64. package/.dist/markup/transform/constants.d.ts +2 -1
  65. package/.dist/markup/transform/effect-bindings.d.ts +2 -26
  66. package/.dist/markup/transform/effect-callbacks.d.ts +0 -20
  67. package/.dist/markup/transform/emit.d.ts +2 -11
  68. package/.dist/markup/transform/expressions.d.ts +0 -35
  69. package/.dist/markup/transform/scan.d.ts +3 -22
  70. package/.dist/markup/transform/types.d.ts +2 -129
  71. package/.dist/markup/transform.js +1 -1
  72. package/.dist/markup/value.d.ts +1 -18
  73. package/.dist/markup/value.js +2 -19
  74. package/.dist/markup/value.js.map +1 -1
  75. package/.dist/mod.d.ts +6 -8
  76. package/.dist/mod.js +5 -4
  77. package/.dist/mod.js.map +1 -1
  78. package/.dist/remote/cause-codec.d.ts +19 -0
  79. package/.dist/remote/client/command.d.ts +3 -17
  80. package/.dist/remote/client/form-data.d.ts +0 -7
  81. package/.dist/remote/client/form-enhance.d.ts +0 -7
  82. package/.dist/remote/client/form-transport.d.ts +15 -18
  83. package/.dist/remote/client/form.d.ts +9 -20
  84. package/.dist/remote/client/index.d.ts +2 -1
  85. package/.dist/remote/client/prerender.d.ts +6 -0
  86. package/.dist/remote/client/query-result.d.ts +2 -14
  87. package/.dist/remote/client/query.d.ts +9 -59
  88. package/.dist/remote/client/responses.d.ts +3 -27
  89. package/.dist/remote/client/types.d.ts +26 -101
  90. package/.dist/remote/client/utils.d.ts +0 -8
  91. package/.dist/remote/client.d.ts +2 -2
  92. package/.dist/remote/client.js +2 -2
  93. package/.dist/remote/effect.d.ts +6 -0
  94. package/.dist/remote/failures.d.ts +4 -0
  95. package/.dist/remote/query-update.d.ts +2 -0
  96. package/.dist/remote/resource.d.ts +25 -0
  97. package/.dist/remote/server.d.ts +5 -60
  98. package/.dist/remote/server.js +2 -179
  99. package/.dist/remote/shared.d.ts +6 -145
  100. package/.dist/remote/shared.js +6 -127
  101. package/.dist/remote/shared.js.map +1 -1
  102. package/.dist/runtime/transform.js +83 -87
  103. package/.dist/runtime/transform.js.map +1 -1
  104. package/.dist/script-transform/ast.d.ts +0 -46
  105. package/.dist/script-transform/imports.d.ts +2 -38
  106. package/.dist/script-transform/lower.d.ts +0 -9
  107. package/.dist/script-transform/runes.d.ts +0 -10
  108. package/.dist/script-transform/runtime-block.d.ts +0 -17
  109. package/.dist/script-transform/source.d.ts +0 -24
  110. package/.dist/script-transform/types.d.ts +9 -126
  111. package/.dist/server/effects.d.ts +8 -57
  112. package/.dist/server/factories.d.ts +7 -7
  113. package/.dist/server/handler.d.ts +37 -0
  114. package/.dist/server/index.d.ts +4 -1
  115. package/.dist/server/invalid.d.ts +0 -7
  116. package/.dist/server/live-snapshot.d.ts +5 -0
  117. package/.dist/server/remote-handler-context.d.ts +5 -0
  118. package/.dist/server/runtime.d.ts +6 -24
  119. package/.dist/server/schema.d.ts +2 -40
  120. package/.dist/server/transport.d.ts +2 -0
  121. package/.dist/server/types.d.ts +88 -71
  122. package/.dist/server/wrappers.d.ts +4 -41
  123. package/.dist/server.d.ts +2 -2
  124. package/.dist/server.js +255 -279
  125. package/.dist/server.js.map +1 -1
  126. package/.dist/yieldable.d.ts +7 -0
  127. package/README.md +1 -1
  128. package/package.json +5 -5
  129. package/.dist/chunks/client-CsVu54pU.js +0 -627
  130. package/.dist/chunks/client-CsVu54pU.js.map +0 -1
  131. package/.dist/chunks/descriptors-cOe9uRJz.js +0 -36
  132. package/.dist/chunks/descriptors-cOe9uRJz.js.map +0 -1
  133. package/.dist/chunks/dispatcher-LtvFKYUp.js +0 -47
  134. package/.dist/chunks/dispatcher-LtvFKYUp.js.map +0 -1
  135. package/.dist/chunks/dispatcher-pHH4JcFR.js.map +0 -1
  136. package/.dist/chunks/errors-Dcf0MVbq.js.map +0 -1
  137. package/.dist/chunks/event-attributes-gHzP2ycp.js +0 -39
  138. package/.dist/chunks/event-attributes-gHzP2ycp.js.map +0 -1
  139. package/.dist/chunks/remote-client-Bj1pZXgq.js.map +0 -1
  140. package/.dist/chunks/runtime-ekkMQ-wL.js.map +0 -1
  141. package/.dist/chunks/transform-CtQDGS9c.js.map +0 -1
  142. package/.dist/chunks/vite-WGlbSnso.js +0 -486
  143. package/.dist/chunks/vite-WGlbSnso.js.map +0 -1
  144. package/.dist/remote/client/effect.d.ts +0 -29
  145. package/.dist/remote/client/failures.d.ts +0 -42
  146. package/.dist/remote/server.js.map +0 -1
  147. package/.dist/vite/remote-client.d.ts +0 -24
@@ -1,7 +1,8 @@
1
- import type { create_form_error, RemoteFailure } from "../remote/shared.js";
2
1
  import type { RemoteFormInput, RemoteQuery, RemoteQueryOverride } from "@sveltejs/kit";
3
- import type { EffectRemoteForm as ClientEffectRemoteForm } from "../remote/client.js";
2
+ import type { EffectRemoteCommandCall as ClientEffectRemoteCommandCall, EffectRemoteForm as ClientEffectRemoteForm, EffectRemoteQueryUpdateBrand as ClientEffectRemoteQueryUpdateBrand } from "../remote/client.js";
4
3
  import type { Effect, Layer, ManagedRuntime, Schema, Stream } from "effect";
4
+ import type { create_form_error, RemoteFailure } from "../remote/shared.js";
5
+ import type { RemoteLiveStream } from "../live.js";
5
6
  /**
6
7
  * Effect-like values accepted by remote helper wrappers.
7
8
  *
@@ -13,6 +14,25 @@ import type { Effect, Layer, ManagedRuntime, Schema, Stream } from "effect";
13
14
  * @since 2.0.0
14
15
  */
15
16
  export type EffectLike<A = unknown, E = unknown, R = unknown> = Effect.Effect<A, E, R> | Effect.gen.Return<A, E, R>;
17
+ /**
18
+ * Effect-producing callback adapted by {@link Handler} to a native SvelteKit
19
+ * server handler. The callback must resolve every typed failure before the
20
+ * server boundary, while its service requirements are supplied by
21
+ * {@link ServerRuntime}.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import type { RequestHandler } from "./$types";
26
+ *
27
+ * const get_post: EffectHandler<RequestHandler> = ({ params }) =>
28
+ * Posts.get(params.slug).pipe(
29
+ * Effect.map((post) => Response.json(post)),
30
+ * );
31
+ * ```
32
+ *
33
+ * @since 4.0.0
34
+ */
35
+ export type EffectHandler<NativeHandler extends (...arguments_: never[]) => unknown, R = unknown> = (...arguments_: Parameters<NativeHandler>) => EffectLike<Awaited<ReturnType<NativeHandler>>, never, R>;
16
36
  /**
17
37
  * Handler shape accepted by query, command, and prerender helpers.
18
38
  *
@@ -26,17 +46,28 @@ export type EffectLike<A = unknown, E = unknown, R = unknown> = Effect.Effect<A,
26
46
  */
27
47
  export type RemoteHandler<Input = unknown, A = unknown, E = unknown, R = unknown> = (input: Input) => EffectLike<A, E, R>;
28
48
  /**
29
- * Handler or source shape accepted by live query helpers.
49
+ * Source shape accepted by no-argument live query helpers.
30
50
  *
31
51
  * @example
32
52
  * ```ts
33
- * const handler: RemoteLiveHandler<void, number> = () =>
34
- * Stream.make(1, 2, 3);
53
+ * const source: RemoteLiveSource<number> = Stream.make(1, 2, 3);
54
+ * ```
55
+ *
56
+ * @since 3.4.8
57
+ */
58
+ export type RemoteLiveSource<A = unknown, E = unknown, R = unknown> = Stream.Stream<A, E, R>;
59
+ /**
60
+ * Handler shape accepted by input-bearing live query helpers.
61
+ *
62
+ * @example
63
+ * ```ts
64
+ * const handler: RemoteLiveHandler<string, number> = (id) =>
65
+ * Stream.make(id.length);
35
66
  * ```
36
67
  *
37
68
  * @since 2.0.0
38
69
  */
39
- export type RemoteLiveHandler<Input = unknown, A = unknown, E = unknown, R = unknown> = EffectLike<EffectRemoteLiveSource<A>, E, R> | EffectRemoteLiveSource<A> | ((input: Input) => EffectLike<EffectRemoteLiveSource<A>, E, R> | EffectRemoteLiveSource<A>);
70
+ export type RemoteLiveHandler<Input = unknown, A = unknown, E = unknown, R = unknown> = (input: Input) => Stream.Stream<A, E, R>;
40
71
  /**
41
72
  * Handler shape accepted by batch query helpers. The handler receives the
42
73
  * validated inputs collected by SvelteKit and returns an Effect-producing
@@ -104,18 +135,25 @@ type IsUnknown<Value> = unknown extends Value ? ([Value] extends [unknown] ? tru
104
135
  *
105
136
  * @example
106
137
  * ```ts
107
- * const options: PrerenderOptions = {
108
- * inputs: () => ["first-post", "second-post"],
138
+ * const options: PrerenderOptions<string> = {
139
+ * inputs: () => Effect.succeed(["first-post", "second-post"]),
109
140
  * dynamic: true,
110
141
  * };
111
142
  * ```
112
143
  *
113
144
  * @since 2.0.0
114
145
  */
115
- export type PrerenderOptions = {
116
- readonly inputs?: unknown;
146
+ export type PrerenderOptions<Input = unknown, E = unknown, R = unknown> = {
147
+ readonly inputs?: PrerenderInputs<Input, E, R>;
117
148
  readonly dynamic?: boolean;
118
149
  };
150
+ /**
151
+ * Effect-producing input generator for a prerendered remote function.
152
+ *
153
+ * @since 4.0.0
154
+ * @returns The caller inputs SvelteKit should prerender.
155
+ */
156
+ export type PrerenderInputs<Input = unknown, E = unknown, R = unknown> = () => EffectLike<readonly Input[], E, R>;
119
157
  /**
120
158
  * Minimal Standard Schema shape accepted by SvelteKit remote helpers.
121
159
  *
@@ -262,7 +300,7 @@ export interface QueryBatchFactory {
262
300
  * @since 2.0.0
263
301
  */
264
302
  export interface QueryLiveFactory {
265
- <A, E = never, R = never>(validate_or_handler: RemoteLiveHandler<void, A, E, R>): EffectRemoteLiveQueryFunction<void, A, E>;
303
+ <A, E = never, R = never>(validate_or_handler: RemoteLiveSource<A, E, R> | RemoteLiveHandler<void, A, E, R>): EffectRemoteLiveQueryFunction<void, A, E>;
266
304
  <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteLiveHandler<Input, A, E, R>): EffectRemoteLiveQueryFunction<Input, A, E>;
267
305
  <S extends Schema.Schema<unknown>, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteLiveHandler<SchemaInput<S>, A, E, R>): EffectRemoteLiveQueryFunction<SchemaEncodedInput<S>, A, E>;
268
306
  <S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteLiveHandler<StandardSchemaOutput<S>, A, E, R>): EffectRemoteLiveQueryFunction<StandardSchemaInput<S>, A, E>;
@@ -316,36 +354,41 @@ export interface FormFactory {
316
354
  * @since 2.0.0
317
355
  */
318
356
  export interface PrerenderFactory {
319
- <A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<void, A, E>;
320
- <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<Input, A, E>;
321
- <S extends Schema.Schema<unknown>, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<SchemaEncodedInput<S>, A, E>;
322
- <S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<StandardSchemaInput<S>, A, E>;
357
+ <A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>, maybe_options?: PrerenderOptions<void>): EffectRemotePrerenderFunction<void, A, E>;
358
+ <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>, maybe_options?: PrerenderOptions<Input>): EffectRemotePrerenderFunction<Input, A, E>;
359
+ <S extends Schema.Schema<unknown>, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>, maybe_options?: PrerenderOptions<SchemaEncodedInput<S>>): EffectRemotePrerenderFunction<SchemaEncodedInput<S>, A, E>;
360
+ <S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>, maybe_options?: PrerenderOptions<StandardSchemaInput<S>>): EffectRemotePrerenderFunction<StandardSchemaInput<S>, A, E>;
323
361
  }
324
362
  /**
325
- * Source values accepted by live query helpers.
363
+ * Base Effect-returning function type used by remote commands.
326
364
  *
327
365
  * @example
328
366
  * ```ts
329
- * const source: EffectRemoteLiveSource<number> = Stream.make(1, 2, 3);
367
+ * const SavePost: EffectRemoteFunction<string, { saved: true }> = (id) =>
368
+ * Effect.succeed({ saved: true });
330
369
  * ```
331
370
  *
332
371
  * @since 2.0.0
333
372
  */
334
- export type EffectRemoteLiveSource<A> = Stream.Stream<A, unknown, unknown> | AsyncIterable<A> | AsyncIterator<A> | Iterable<A> | Iterator<A>;
373
+ export type EffectRemoteFunction<Input, A, E = never> = [Input] extends [void] ? () => Effect.Effect<A, RemoteFailure<E>, never> : undefined extends Input ? (input?: Input) => Effect.Effect<A, RemoteFailure<E>, never> : (input: Input) => Effect.Effect<A, RemoteFailure<E>, never>;
335
374
  /**
336
- * Effect-returning remote function type exposed by query and prerender.
375
+ * Effect-returning prerender resource with SvelteKit's read-only state
376
+ * preserved.
337
377
  *
338
- * @example
339
- * ```ts
340
- * type Post = { id: string };
341
- * const posts: Post[] = [];
342
- * const getPosts: EffectRemoteFunction<void, Post[]> = () =>
343
- * Effect.succeed(posts);
344
- * ```
378
+ * @since 4.0.0
379
+ */
380
+ export type EffectRemotePrerender<A, E = never> = Effect.Effect<A, RemoteFailure<E>, never> & {
381
+ readonly current: A | undefined;
382
+ readonly error: unknown;
383
+ readonly loading: boolean;
384
+ readonly ready: boolean;
385
+ };
386
+ /**
387
+ * Effect-returning prerender function whose resource state remains readable.
345
388
  *
346
- * @since 2.0.0
389
+ * @since 4.0.0
347
390
  */
348
- export type EffectRemoteFunction<Input, A, E = never> = [Input] extends [void] ? () => Effect.Effect<A, RemoteFailure<E>, never> : undefined extends Input ? (input?: Input) => Effect.Effect<A, RemoteFailure<E>, never> : (input: Input) => Effect.Effect<A, RemoteFailure<E>, never>;
391
+ export type EffectRemotePrerenderFunction<Input, A, E = never> = [Input] extends [void] ? () => EffectRemotePrerender<A, E> : undefined extends Input ? (input?: Input) => EffectRemotePrerender<A, E> : (input: Input) => EffectRemotePrerender<A, E>;
349
392
  /**
350
393
  * Effect-returning query resource with SvelteKit cache update methods
351
394
  * preserved.
@@ -358,7 +401,7 @@ export type EffectRemoteFunction<Input, A, E = never> = [Input] extends [void] ?
358
401
  *
359
402
  * @since 2.0.0
360
403
  */
361
- export type EffectRemoteQuery<A, E = never> = Effect.Effect<A, RemoteFailure<E>, never> & Pick<RemoteQuery<A>, "set"> & {
404
+ export type EffectRemoteQuery<A, E = never> = ClientEffectRemoteQueryUpdateBrand & Effect.Effect<A, RemoteFailure<E>, never> & Pick<RemoteQuery<A>, "set"> & {
362
405
  readonly current: A | undefined;
363
406
  readonly error: unknown;
364
407
  readonly loading: boolean;
@@ -381,68 +424,42 @@ export type EffectRemoteQuery<A, E = never> = Effect.Effect<A, RemoteFailure<E>,
381
424
  */
382
425
  export type EffectRemoteQueryFunction<Input, A, E = never> = [Input] extends [void] ? () => EffectRemoteQuery<A, E> : undefined extends Input ? (input?: Input) => EffectRemoteQuery<A, E> : (input: Input) => EffectRemoteQuery<A, E>;
383
426
  /**
384
- * Live query resource with SvelteKit live stream state and reconnect controls
385
- * preserved.
427
+ * Remote live query stream.
386
428
  *
387
429
  * @example
388
430
  * ```ts
389
- * const clock = yield* getClock();
390
- * yield* clock.reconnect();
391
- *
392
- * for await (const value of clock) {
393
- * console.log(value);
394
- * }
431
+ * const clock = getClock();
432
+ * const first = yield* Stream.runHead(clock);
395
433
  * ```
396
434
  *
397
- * @since 2.0.0
435
+ * @since 3.4.8
398
436
  */
399
- export type EffectRemoteLiveQueryResource<A> = {
400
- readonly connected: boolean;
401
- readonly current: A | undefined;
402
- readonly done: boolean;
403
- readonly error: unknown;
404
- readonly loading: boolean;
405
- readonly ready: boolean;
406
- readonly reconnect: () => Effect.Effect<void, unknown, never>;
407
- } & AsyncIterable<A>;
437
+ export type EffectRemoteLiveQuery<A, E = never> = RemoteLiveStream<A, E>;
408
438
  /**
409
- * Effect-returning live query whose yielded value is the live resource.
439
+ * Remote live query function returning an Effect Stream.
410
440
  *
411
441
  * @example
412
442
  * ```ts
413
- * const clock = yield* getClock();
414
- * const current = clock.current;
443
+ * const clock = getClock();
415
444
  * ```
416
445
  *
417
- * @since 2.2.0
446
+ * @since 3.4.8
418
447
  */
419
- export type EffectRemoteLiveQuery<A, E = never> = Effect.Effect<EffectRemoteLiveQueryResource<A>, RemoteFailure<E>, never>;
448
+ export type EffectRemoteLiveQueryFunction<Input, A, E = never> = [Input] extends [void] ? () => EffectRemoteLiveQuery<A, E> : undefined extends Input ? (input?: Input) => EffectRemoteLiveQuery<A, E> : (input: Input) => EffectRemoteLiveQuery<A, E>;
420
449
  /**
421
- * Effect-returning remote live query function with SvelteKit live stream
422
- * properties preserved on the returned Effect.
423
- *
424
- * @example
425
- * ```ts
426
- * const clock = yield* getClock();
427
- * ```
450
+ * Effect returned by a command invocation, including SvelteKit's per-call
451
+ * query update selection.
428
452
  *
429
- * @since 2.2.0
453
+ * @since 4.0.0
430
454
  */
431
- export type EffectRemoteLiveQueryFunction<Input, A, E = never> = [Input] extends [void] ? () => EffectRemoteLiveQuery<A, E> : undefined extends Input ? (input?: Input) => EffectRemoteLiveQuery<A, E> : (input: Input) => EffectRemoteLiveQuery<A, E>;
455
+ export type EffectRemoteCommandCall<A, E = never> = ClientEffectRemoteCommandCall<A, E>;
432
456
  /**
433
- * Effect-returning command type with SvelteKit's pending counter preserved.
434
- *
435
- * @example
436
- * ```ts
437
- * const upvote: EffectRemoteCommand<string, number> = Object.assign(
438
- * (id: string) => Effect.succeed(id.length),
439
- * { pending: 0 },
440
- * );
441
- * ```
457
+ * Effect-returning command type with SvelteKit's pending counter and per-call
458
+ * updates preserved.
442
459
  *
443
460
  * @since 2.0.0
444
461
  */
445
- export type EffectRemoteCommand<Input, A, E = never> = EffectRemoteFunction<Input, A, E> & {
462
+ export type EffectRemoteCommand<Input, A, E = never> = ([Input] extends [void] ? () => EffectRemoteCommandCall<A, E> : undefined extends Input ? (input?: Input) => EffectRemoteCommandCall<A, E> : (input: Input) => EffectRemoteCommandCall<A, E>) & {
446
463
  readonly pending: number;
447
464
  };
448
465
  /**
@@ -1,43 +1,6 @@
1
- import type { EffectLike, RemoteFormHandler, RemoteHandler, RemoteLiveHandler } from "./types.js";
2
- /**
3
- * Reports whether SER is currently executing user remote handler code.
4
- *
5
- * @example
6
- * ```ts
7
- * if (is_running_remote_effect_handler()) {
8
- * return query();
9
- * }
10
- * ```
11
- *
12
- * @since 2.0.0
13
- * @returns Whether a remote handler wrapper is currently active.
14
- * @internal
15
- */
16
- export declare function is_running_remote_effect_handler(): boolean;
17
- /**
18
- * Builds the wrapper passed to native query, command, and prerender helpers.
19
- *
20
- * @since 2.0.0
21
- * @param handler - Effect handler or already-built Effect-like value.
22
- * @param helper_name - Remote helper name for error normalization.
23
- * @returns Native SvelteKit handler wrapper.
24
- */
1
+ import type { EffectLike, PrerenderInputs, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, RemoteLiveSource } from "./types.js";
2
+ export { is_running_remote_effect_handler } from "./remote-handler-context.js";
3
+ export declare function make_prerender_inputs_wrapper<Input>(generate_inputs: PrerenderInputs<Input>): () => Promise<Input[]>;
25
4
  export declare function make_remote_wrapper(handler: RemoteHandler<unknown, unknown, unknown, unknown> | EffectLike, helper_name: string): (input: unknown) => Promise<unknown>;
26
- /**
27
- * Builds the wrapper passed to native live query helpers.
28
- *
29
- * @since 2.0.0
30
- * @param handler - Effect-aware live source handler.
31
- * @param helper_name - Remote helper name for error normalization.
32
- * @returns Native SvelteKit live query wrapper.
33
- */
34
- export declare function make_remote_live_wrapper<Input, A>(handler: RemoteLiveHandler<Input, A, unknown, unknown>, helper_name: string): (input: unknown) => Promise<unknown>;
35
- /**
36
- * Builds the wrapper passed to native form helpers.
37
- *
38
- * @since 2.0.0
39
- * @param handler - Effect-aware form handler.
40
- * @param helper_name - Remote helper name for error normalization.
41
- * @returns Native SvelteKit form handler wrapper.
42
- */
5
+ export declare function make_remote_live_wrapper<Input, A>(handler: RemoteLiveSource<A, unknown, unknown> | RemoteLiveHandler<Input, A, unknown, unknown>, helper_name: string): (input: unknown) => Promise<unknown>;
43
6
  export declare function make_remote_form_wrapper<Input, A>(handler: RemoteFormHandler<Input, A, unknown, unknown>, helper_name: string): (data: unknown, issue: unknown) => Promise<unknown>;
package/.dist/server.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { Command, Error, Form, get_server_runtime_or_throw, Prerender, Query, Redirect, RequestEvent, ServerRuntime, } from "./server/index.js";
2
- export type { CommandFactory, EffectLike, EffectRemoteBatchHandler, EffectRemoteCommand, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemoteLiveQueryResource, EffectRemoteLiveSource, EffectRemoteQuery, EffectRemoteQueryFunction, ErrorBody, ErrorEffectFactory, ErrorProperties, ErrorStatus, ErrorStatusName, FormFactory, FormInvalid, PrerenderFactory, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RedirectEffectFactory, RedirectOptions, RedirectStatus, RedirectStatusName, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, StandardSchemaInput, StandardSchemaOutput, } from "./server/index.js";
1
+ export { Command, Error, Form, get_server_runtime_or_throw, Handler, Live, Prerender, Query, Redirect, RequestEvent, ServerRuntime, } from "./server/index.js";
2
+ export type { CommandFactory, EffectHandler, EffectLike, EffectRemoteBatchHandler, EffectRemoteCommand, EffectRemoteCommandCall, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemotePrerender, EffectRemotePrerenderFunction, EffectRemoteQuery, EffectRemoteQueryFunction, ErrorBody, ErrorEffectFactory, ErrorProperties, ErrorStatus, ErrorStatusName, FormFactory, FormInvalid, LiveFactory, LiveStatus, PrerenderFactory, PrerenderInputs, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RedirectEffectFactory, RedirectOptions, RedirectStatus, RedirectStatusName, RemoteFormHandler, RemoteHandler, RemoteLiveStream, RemoteLiveHandler, RemoteLiveSource, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, StandardSchemaInput, StandardSchemaOutput, } from "./server/index.js";