svelte-effect-runtime 4.0.0 → 4.1.0

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 (150) hide show
  1. package/.dist/chunks/client-DbwVAMWm.js +530 -0
  2. package/.dist/chunks/client-DbwVAMWm.js.map +1 -0
  3. package/.dist/chunks/compiler-Dpyu4Owd.js +412 -0
  4. package/.dist/chunks/compiler-Dpyu4Owd.js.map +1 -0
  5. package/.dist/chunks/descriptors-q909VWyR.js +216 -0
  6. package/.dist/chunks/descriptors-q909VWyR.js.map +1 -0
  7. package/.dist/chunks/diagnostics-DLwwrBWb.js +359 -0
  8. package/.dist/chunks/diagnostics-DLwwrBWb.js.map +1 -0
  9. package/.dist/chunks/dispatcher-CTWINW5I.js +534 -0
  10. package/.dist/chunks/dispatcher-CTWINW5I.js.map +1 -0
  11. package/.dist/chunks/dispatcher-pZPzarul.js +23 -0
  12. package/.dist/chunks/dispatcher-pZPzarul.js.map +1 -0
  13. package/.dist/chunks/{errors-IJjsUwrE.js → errors-qhcbUH6o.js} +56 -44
  14. package/.dist/chunks/errors-qhcbUH6o.js.map +1 -0
  15. package/.dist/chunks/live-BW7xZKjb.js +146 -0
  16. package/.dist/chunks/live-BW7xZKjb.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-CVI4t66c.js → remote-client-mkQAfP1G.js} +29 -23
  20. package/.dist/chunks/remote-client-mkQAfP1G.js.map +1 -0
  21. package/.dist/chunks/{runtime-GBQz32DZ.js → runtime-CPosEhGl.js} +3 -27
  22. package/.dist/chunks/runtime-CPosEhGl.js.map +1 -0
  23. package/.dist/chunks/{server-D1LcDnZE.js → server-yQrNoiCR.js} +15 -84
  24. package/.dist/chunks/server-yQrNoiCR.js.map +1 -0
  25. package/.dist/chunks/source-scan-cSawCvsg.js +1059 -0
  26. package/.dist/chunks/source-scan-cSawCvsg.js.map +1 -0
  27. package/.dist/chunks/{transform-jNUr65K9.js → transform-D7TTlPpK.js} +245 -371
  28. package/.dist/chunks/transform-D7TTlPpK.js.map +1 -0
  29. package/.dist/compiler/markup-identifiers.d.ts +2 -0
  30. package/.dist/compiler/remote-client.d.ts +1 -19
  31. package/.dist/compiler/source-scan.d.ts +11 -108
  32. package/.dist/compiler/sveltekit-remote-bridge.d.ts +3 -0
  33. package/.dist/compiler.d.ts +6 -0
  34. package/.dist/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 +42 -135
  42. package/.dist/dispatcher/scope.d.ts +36 -0
  43. package/.dist/dispatcher/types.d.ts +0 -151
  44. package/.dist/dispatcher.d.ts +2 -1
  45. package/.dist/dispatcher.js +2 -2
  46. package/.dist/errors.d.ts +44 -42
  47. package/.dist/generated/dispatcher.d.ts +6 -51
  48. package/.dist/generators.d.ts +2 -12
  49. package/.dist/internal/descriptors.d.ts +0 -16
  50. package/.dist/internal/generators.js +14 -9
  51. package/.dist/internal/generators.js.map +1 -1
  52. package/.dist/internal/live.d.ts +9 -0
  53. package/.dist/internal/remote-client.js +2 -2
  54. package/.dist/internal/remote-server.js +2 -2
  55. package/.dist/internal/schema.d.ts +0 -54
  56. package/.dist/live.d.ts +9 -26
  57. package/.dist/markup/event-attributes.d.ts +0 -32
  58. package/.dist/markup/promise.d.ts +1 -23
  59. package/.dist/markup/promise.js +2 -18
  60. package/.dist/markup/promise.js.map +1 -1
  61. package/.dist/markup/run.d.ts +1 -10
  62. package/.dist/markup/run.js +2 -11
  63. package/.dist/markup/run.js.map +1 -1
  64. package/.dist/markup/transform/apply.d.ts +5 -4
  65. package/.dist/markup/transform/classify.d.ts +2 -11
  66. package/.dist/markup/transform/constants.d.ts +2 -1
  67. package/.dist/markup/transform/effect-bindings.d.ts +2 -26
  68. package/.dist/markup/transform/effect-callbacks.d.ts +0 -20
  69. package/.dist/markup/transform/emit.d.ts +2 -11
  70. package/.dist/markup/transform/expressions.d.ts +0 -35
  71. package/.dist/markup/transform/scan.d.ts +3 -22
  72. package/.dist/markup/transform/types.d.ts +15 -127
  73. package/.dist/markup/transform.js +1 -1
  74. package/.dist/markup/value.d.ts +1 -18
  75. package/.dist/markup/value.js +2 -19
  76. package/.dist/markup/value.js.map +1 -1
  77. package/.dist/mod.d.ts +3 -8
  78. package/.dist/mod.js +5 -5
  79. package/.dist/mod.js.map +1 -1
  80. package/.dist/remote/cause-codec.d.ts +3 -37
  81. package/.dist/remote/client/command.d.ts +3 -17
  82. package/.dist/remote/client/form-data.d.ts +0 -7
  83. package/.dist/remote/client/form-enhance.d.ts +0 -7
  84. package/.dist/remote/client/form-transport.d.ts +14 -20
  85. package/.dist/remote/client/form.d.ts +4 -24
  86. package/.dist/remote/client/index.d.ts +2 -1
  87. package/.dist/remote/client/prerender.d.ts +6 -0
  88. package/.dist/remote/client/query-result.d.ts +2 -14
  89. package/.dist/remote/client/query.d.ts +8 -48
  90. package/.dist/remote/client/responses.d.ts +3 -27
  91. package/.dist/remote/client/types.d.ts +16 -110
  92. package/.dist/remote/client/utils.d.ts +0 -8
  93. package/.dist/remote/client.d.ts +2 -2
  94. package/.dist/remote/client.js +2 -2
  95. package/.dist/remote/effect.d.ts +6 -0
  96. package/.dist/remote/failures.d.ts +4 -0
  97. package/.dist/remote/query-update.d.ts +2 -0
  98. package/.dist/remote/resource.d.ts +25 -0
  99. package/.dist/remote/server.d.ts +5 -50
  100. package/.dist/remote/server.js +2 -2
  101. package/.dist/remote/shared.d.ts +6 -145
  102. package/.dist/remote/shared.js +6 -127
  103. package/.dist/remote/shared.js.map +1 -1
  104. package/.dist/runtime/transform.js +26 -31
  105. package/.dist/runtime/transform.js.map +1 -1
  106. package/.dist/script-transform/ast.d.ts +0 -46
  107. package/.dist/script-transform/imports.d.ts +3 -39
  108. package/.dist/script-transform/index.d.ts +2 -0
  109. package/.dist/script-transform/lower.d.ts +0 -9
  110. package/.dist/script-transform/runes.d.ts +0 -10
  111. package/.dist/script-transform/runtime-block.d.ts +0 -17
  112. package/.dist/script-transform/source.d.ts +0 -24
  113. package/.dist/script-transform/types.d.ts +9 -126
  114. package/.dist/server/effects.d.ts +4 -53
  115. package/.dist/server/factories.d.ts +7 -7
  116. package/.dist/server/index.d.ts +1 -1
  117. package/.dist/server/invalid.d.ts +0 -7
  118. package/.dist/server/live-snapshot.d.ts +5 -0
  119. package/.dist/server/remote-handler-context.d.ts +5 -0
  120. package/.dist/server/runtime.d.ts +6 -24
  121. package/.dist/server/schema.d.ts +0 -14
  122. package/.dist/server/transport.d.ts +2 -0
  123. package/.dist/server/types.d.ts +49 -26
  124. package/.dist/server/wrappers.d.ts +3 -40
  125. package/.dist/server.d.ts +1 -1
  126. package/.dist/server.js +200 -215
  127. package/.dist/server.js.map +1 -1
  128. package/.dist/yieldable.d.ts +1 -35
  129. package/package.json +2 -2
  130. package/.dist/chunks/client-DcZUV4rR.js +0 -653
  131. package/.dist/chunks/client-DcZUV4rR.js.map +0 -1
  132. package/.dist/chunks/compiler-BBPNyXmQ.js +0 -460
  133. package/.dist/chunks/compiler-BBPNyXmQ.js.map +0 -1
  134. package/.dist/chunks/dispatcher-DOx8iC6r.js +0 -505
  135. package/.dist/chunks/dispatcher-DOx8iC6r.js.map +0 -1
  136. package/.dist/chunks/dispatcher-H-Ia0Os4.js +0 -47
  137. package/.dist/chunks/dispatcher-H-Ia0Os4.js.map +0 -1
  138. package/.dist/chunks/errors-IJjsUwrE.js.map +0 -1
  139. package/.dist/chunks/live-BXAKre_4.js +0 -104
  140. package/.dist/chunks/live-BXAKre_4.js.map +0 -1
  141. package/.dist/chunks/remote-client-CVI4t66c.js.map +0 -1
  142. package/.dist/chunks/runtime-GBQz32DZ.js.map +0 -1
  143. package/.dist/chunks/schema-D9pct6Y5.js +0 -89
  144. package/.dist/chunks/schema-D9pct6Y5.js.map +0 -1
  145. package/.dist/chunks/server-D1LcDnZE.js.map +0 -1
  146. package/.dist/chunks/source-scan-C4PsggID.js +0 -341
  147. package/.dist/chunks/source-scan-C4PsggID.js.map +0 -1
  148. package/.dist/chunks/transform-jNUr65K9.js.map +0 -1
  149. package/.dist/remote/client/effect.d.ts +0 -29
  150. package/.dist/remote/client/failures.d.ts +0 -42
@@ -1,63 +1,14 @@
1
- import { Effect, Stream } from "effect";
2
1
  import type { RequestEvent as RequestEventShape } from "./runtime.js";
2
+ import { Effect, Stream } from "effect";
3
3
  import type { EffectLike } from "./types.js";
4
4
  type ResolvedLiveSource<A> = AsyncIterable<A>;
5
5
  type LiveHandlerResult<A> = Stream.Stream<A, unknown, unknown>;
6
- /**
7
- * Checks whether a value is an Effect generator return object.
8
- *
9
- * @since 2.0.0
10
- * @param value - Value to inspect.
11
- * @returns Whether the value should be wrapped with `Effect.gen`.
12
- */
6
+ type LiveHandler<A> = () => LiveHandlerResult<A>;
13
7
  export declare function is_generator_result<A>(value: unknown): value is Effect.gen.Return<A, unknown, unknown>;
14
- /**
15
- * Normalizes an Effect-like handler return value into an Effect.
16
- *
17
- * @since 2.0.0
18
- * @param value - Effect or generator return value.
19
- * @returns Normalized Effect.
20
- */
21
8
  export declare function ToEffect<A, E, R>(value: EffectLike<A, E, R>): Effect.Effect<A, E, R>;
22
- /**
23
- * Compatibility alias for {@link ToEffect}.
24
- *
25
- * @example
26
- * ```ts
27
- * const program = to_effect(Effect.succeed(1));
28
- * ```
29
- *
30
- * @since 2.0.0
31
- * @param value - Effect or generator return value.
32
- * @returns Normalized Effect.
33
- * @internal
34
- */
35
- export declare const to_effect: typeof ToEffect;
36
- /**
37
- * Checks whether a value is an Effect Stream live source.
38
- *
39
- * @since 2.0.0
40
- * @param value - Value to inspect.
41
- * @returns Whether the value is an Effect Stream.
42
- */
43
9
  export declare function is_live_source<A>(value: unknown): value is Stream.Stream<A, unknown, unknown>;
44
- /**
45
- * Runs and normalizes a live query handler result with request services
46
- * available to Effect Streams.
47
- *
48
- * @since 2.0.0
49
- * @param value - Live query source or Effect that resolves to one.
50
- * @param event - SvelteKit request event for this remote call.
51
- * @returns Promise resolving with a source SvelteKit can stream.
52
- */
53
10
  export declare function run_live_handler_source<A>(value: LiveHandlerResult<A>, event: RequestEventShape): Promise<ResolvedLiveSource<A>>;
54
- /**
55
- * Runs a remote handler Effect with the current request event provided.
56
- *
57
- * @since 2.0.0
58
- * @param value - Handler return value.
59
- * @param event - SvelteKit request event for this remote call.
60
- * @returns Promise resolving with the handler output.
61
- */
11
+ /** Runs a live handler inside the request-local ownership scope. */
12
+ export declare function run_live_handler<A>(handler: LiveHandler<A>, event: RequestEventShape): Promise<ResolvedLiveSource<A>>;
62
13
  export declare function run_handler_effect<A>(value: EffectLike<A, unknown, unknown>, event: RequestEventShape): Promise<A>;
63
14
  export {};
@@ -1,6 +1,6 @@
1
+ import type { EffectLike, EffectRemoteCommand, EffectRemoteForm, EffectRemotePrerenderFunction, PrerenderOptions, QueryFactory, RemoteFormHandler, RemoteHandler, SchemaEncodedInput, SchemaInput, StandardSchema, StandardSchemaInput, StandardSchemaOutput } from "./types.js";
1
2
  import type { RemoteFormInput } from "@sveltejs/kit";
2
3
  import { type Schema } from "effect";
3
- import type { EffectLike, EffectRemoteCommand, EffectRemoteForm, EffectRemoteFunction, PrerenderOptions, QueryFactory, RemoteFormHandler, RemoteHandler, SchemaEncodedInput, SchemaInput, StandardSchema, StandardSchemaInput, StandardSchemaOutput } from "./types.js";
4
4
  type FormSchemaEncodedInput<S> = S extends Schema.Top ? FormRemoteInput<S["Encoded"]> : never;
5
5
  type FormRemoteInput<Input> = NormalizeFormEncoded<Input> extends RemoteFormInput ? NormalizeFormEncoded<Input> : never;
6
6
  type FormStandardSchemaInput<S> = StandardSchemaInput<S> extends RemoteFormInput ? StandardSchemaInput<S> : RemoteFormInput;
@@ -134,7 +134,7 @@ export declare function Form<S extends StandardSchema, A, E = never, R = never>(
134
134
  * configuration.
135
135
  * @returns A prerender function that yields an Effect when called.
136
136
  */
137
- export declare function Prerender<A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<void, A, E>;
137
+ export declare function Prerender<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>;
138
138
  /**
139
139
  * Creates a prerenderable remote function with unchecked input.
140
140
  *
@@ -143,7 +143,7 @@ export declare function Prerender<A, E = never, R = never>(validate_or_handler:
143
143
  * export const GetPost = Prerender(
144
144
  * "unchecked",
145
145
  * (slug: string) => Effect.succeed({ slug }),
146
- * { inputs: () => ["intro"] },
146
+ * { inputs: () => Effect.succeed(["intro"]) },
147
147
  * );
148
148
  * ```
149
149
  *
@@ -155,7 +155,7 @@ export declare function Prerender<A, E = never, R = never>(validate_or_handler:
155
155
  * configuration.
156
156
  * @returns A prerender function that yields an Effect when called with input.
157
157
  */
158
- export declare function Prerender<Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<Input, A, E>;
158
+ export declare function Prerender<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>;
159
159
  /**
160
160
  * Creates a prerenderable remote function validated with an Effect Schema.
161
161
  *
@@ -164,7 +164,7 @@ export declare function Prerender<Input, A, E = never, R = never>(validate_or_ha
164
164
  * export const GetPost = Prerender(
165
165
  * Schema.String,
166
166
  * (slug) => Effect.succeed({ slug }),
167
- * { inputs: () => ["intro"] },
167
+ * { inputs: () => Effect.succeed(["intro"]) },
168
168
  * );
169
169
  * ```
170
170
  *
@@ -176,7 +176,7 @@ export declare function Prerender<Input, A, E = never, R = never>(validate_or_ha
176
176
  * configuration.
177
177
  * @returns A prerender function whose caller input is the schema encoded type.
178
178
  */
179
- export declare function Prerender<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>;
179
+ export declare function Prerender<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>;
180
180
  /**
181
181
  * Creates a prerenderable remote function validated with a Standard Schema.
182
182
  *
@@ -197,5 +197,5 @@ export declare function Prerender<S extends Schema.Schema<unknown>, A, E = never
197
197
  * configuration.
198
198
  * @returns A prerender function whose caller input is the schema input type.
199
199
  */
200
- export declare function Prerender<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>;
200
+ export declare function Prerender<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>;
201
201
  export {};
@@ -6,4 +6,4 @@ export { RuntimeAlreadyInitializedError } from "../errors.js";
6
6
  export { Live } from "../live.js";
7
7
  export type { LiveFactory, LiveStatus, RemoteLiveStream } from "../live.js";
8
8
  export type { ErrorBody, ErrorEffectFactory, ErrorProperties, ErrorStatus, ErrorStatusName, RedirectEffectFactory, RedirectOptions, RedirectStatus, RedirectStatusName, } from "./control-flow.js";
9
- export type { CommandFactory, EffectHandler, EffectLike, EffectRemoteBatchHandler, EffectRemoteCommand, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemoteQuery, EffectRemoteQueryFunction, FormFactory, FormInvalid, PrerenderFactory, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, RemoteLiveSource, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, StandardSchemaInput, StandardSchemaOutput, } from "./types.js";
9
+ export type { CommandFactory, EffectHandler, EffectLike, EffectRemoteBatchHandler, EffectRemoteCommand, EffectRemoteCommandCall, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemotePrerender, EffectRemotePrerenderFunction, EffectRemoteQuery, EffectRemoteQueryFunction, FormFactory, FormInvalid, PrerenderFactory, PrerenderInputs, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, RemoteLiveSource, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, StandardSchemaInput, StandardSchemaOutput, } from "./types.js";
@@ -1,9 +1,2 @@
1
1
  import type { FormInvalid } from "./types.js";
2
- /**
3
- * Creates a path-aware proxy for remote form validation failures.
4
- *
5
- * @since 2.0.0
6
- * @param path - Current nested form path.
7
- * @returns Callable invalid proxy for this path.
8
- */
9
2
  export declare function make_invalid_proxy<Input = unknown>(path?: readonly (string | number)[]): FormInvalid<Input>;
@@ -0,0 +1,5 @@
1
+ export type NativeTransport = Readonly<Record<string, {
2
+ readonly encode: (value: unknown) => false | unknown;
3
+ }>>;
4
+ /** Converts SvelteKit transport hooks into a devalue live snapshot encoder. */
5
+ export declare function make_remote_live_snapshot_encoder(transport: NativeTransport): (value: unknown) => string;
@@ -0,0 +1,5 @@
1
+ import { Effect } from "effect";
2
+ /** Tracks ownership per request event so concurrent requests remain isolated. */
3
+ export declare function is_running_remote_effect_handler(event?: object): boolean;
4
+ /** Marks one request as handler-owned for the lifetime of the supplied Effect. */
5
+ export declare const RunInsideRemoteEffectHandler: <A, E, R>(event: object, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
@@ -4,6 +4,12 @@ import { Context, Layer, ManagedRuntime } from "effect";
4
4
  /**
5
5
  * Subset of SvelteKit's `RequestEvent` that remote handlers typically access.
6
6
  *
7
+ * @example
8
+ * ```ts
9
+ * const event: RequestEvent = yield* RequestEvent;
10
+ * console.log(event.url.pathname);
11
+ * ```
12
+ *
7
13
  * @since 2.0.0
8
14
  */
9
15
  export interface RequestEvent extends Pick<SvelteKitRequestEvent, "cookies" | "getClientAddress" | "locals" | "params" | "platform" | "request" | "route" | "url"> {
@@ -51,29 +57,5 @@ export declare class ServerRuntime {
51
57
  * @returns The current ManagedRuntime instance.
52
58
  */
53
59
  export declare function get_server_runtime_or_throw(): ManagedRuntime.ManagedRuntime<unknown, never>;
54
- /**
55
- * Returns a dispatcher backed by the active server runtime.
56
- *
57
- * @example
58
- * ```ts
59
- * const dispatcher = get_server_dispatcher();
60
- * ```
61
- *
62
- * @since 3.0.1
63
- * @returns The cached server dispatcher, creating one from the current server
64
- * runtime when needed.
65
- */
66
60
  export declare function get_server_dispatcher(): InternalDispatcher;
67
- /**
68
- * Resets the internal server runtime singleton used by source-level tests.
69
- *
70
- * @example
71
- * ```ts
72
- * reset_server_runtime();
73
- * ```
74
- *
75
- * @since 3.4.0
76
- * @returns Nothing.
77
- * @internal
78
- */
79
61
  export declare function reset_server_runtime(): void;
@@ -1,18 +1,4 @@
1
1
  import type { RemoteHandler } from "./types.js";
2
2
  export { is_effect_schema, is_standard_schema, normalize_validator, type StandardSchema, } from "../internal/schema.js";
3
- /**
4
- * Checks whether a value is the string sentinel for unchecked remotes.
5
- *
6
- * @since 2.0.0
7
- * @param value - Value to inspect.
8
- * @returns Whether the value is `"unchecked"`.
9
- */
10
3
  export declare function is_unchecked(value: unknown): value is "unchecked";
11
- /**
12
- * Checks whether a value is a remote handler function.
13
- *
14
- * @since 2.0.0
15
- * @param value - Value to inspect.
16
- * @returns Whether the value is callable as a handler.
17
- */
18
4
  export declare function is_handler(value: unknown): value is RemoteHandler<unknown, unknown, unknown, unknown>;
@@ -0,0 +1,2 @@
1
+ /** Creates the current SvelteKit request's transport-aware live snapshot encoder. */
2
+ export declare function get_remote_live_snapshot_encoder(): ((value: unknown) => string) | undefined;
@@ -1,8 +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";
4
- import type { RemoteLiveStream } from "../live.js";
2
+ import type { EffectRemoteCommandCall as ClientEffectRemoteCommandCall, EffectRemoteForm as ClientEffectRemoteForm, EffectRemoteQueryUpdateBrand as ClientEffectRemoteQueryUpdateBrand } from "../remote/client.js";
5
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";
6
6
  /**
7
7
  * Effect-like values accepted by remote helper wrappers.
8
8
  *
@@ -135,18 +135,25 @@ type IsUnknown<Value> = unknown extends Value ? ([Value] extends [unknown] ? tru
135
135
  *
136
136
  * @example
137
137
  * ```ts
138
- * const options: PrerenderOptions = {
139
- * inputs: () => ["first-post", "second-post"],
138
+ * const options: PrerenderOptions<string> = {
139
+ * inputs: () => Effect.succeed(["first-post", "second-post"]),
140
140
  * dynamic: true,
141
141
  * };
142
142
  * ```
143
143
  *
144
144
  * @since 2.0.0
145
145
  */
146
- export type PrerenderOptions = {
147
- readonly inputs?: unknown;
146
+ export type PrerenderOptions<Input = unknown, E = unknown, R = unknown> = {
147
+ readonly inputs?: PrerenderInputs<Input, E, R>;
148
148
  readonly dynamic?: boolean;
149
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>;
150
157
  /**
151
158
  * Minimal Standard Schema shape accepted by SvelteKit remote helpers.
152
159
  *
@@ -347,25 +354,41 @@ export interface FormFactory {
347
354
  * @since 2.0.0
348
355
  */
349
356
  export interface PrerenderFactory {
350
- <A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<void, A, E>;
351
- <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<Input, A, E>;
352
- <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>;
353
- <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>;
354
361
  }
355
362
  /**
356
- * Effect-returning remote function type exposed by query and prerender.
363
+ * Base Effect-returning function type used by remote commands.
357
364
  *
358
365
  * @example
359
366
  * ```ts
360
- * type Post = { id: string };
361
- * const posts: Post[] = [];
362
- * const getPosts: EffectRemoteFunction<void, Post[]> = () =>
363
- * Effect.succeed(posts);
367
+ * const SavePost: EffectRemoteFunction<string, { saved: true }> = (id) =>
368
+ * Effect.succeed({ saved: true });
364
369
  * ```
365
370
  *
366
371
  * @since 2.0.0
367
372
  */
368
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>;
374
+ /**
375
+ * Effect-returning prerender resource with SvelteKit's read-only state
376
+ * preserved.
377
+ *
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.
388
+ *
389
+ * @since 4.0.0
390
+ */
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>;
369
392
  /**
370
393
  * Effect-returning query resource with SvelteKit cache update methods
371
394
  * preserved.
@@ -378,7 +401,7 @@ export type EffectRemoteFunction<Input, A, E = never> = [Input] extends [void] ?
378
401
  *
379
402
  * @since 2.0.0
380
403
  */
381
- 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"> & {
382
405
  readonly current: A | undefined;
383
406
  readonly error: unknown;
384
407
  readonly loading: boolean;
@@ -424,19 +447,19 @@ export type EffectRemoteLiveQuery<A, E = never> = RemoteLiveStream<A, E>;
424
447
  */
425
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>;
426
449
  /**
427
- * Effect-returning command type with SvelteKit's pending counter preserved.
450
+ * Effect returned by a command invocation, including SvelteKit's per-call
451
+ * query update selection.
428
452
  *
429
- * @example
430
- * ```ts
431
- * const upvote: EffectRemoteCommand<string, number> = Object.assign(
432
- * (id: string) => Effect.succeed(id.length),
433
- * { pending: 0 },
434
- * );
435
- * ```
453
+ * @since 4.0.0
454
+ */
455
+ export type EffectRemoteCommandCall<A, E = never> = ClientEffectRemoteCommandCall<A, E>;
456
+ /**
457
+ * Effect-returning command type with SvelteKit's pending counter and per-call
458
+ * updates preserved.
436
459
  *
437
460
  * @since 2.0.0
438
461
  */
439
- 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>) & {
440
463
  readonly pending: number;
441
464
  };
442
465
  /**
@@ -1,43 +1,6 @@
1
- import type { EffectLike, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, RemoteLiveSource } 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
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>;
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
- */
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
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, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemoteQuery, EffectRemoteQueryFunction, ErrorBody, ErrorEffectFactory, ErrorProperties, ErrorStatus, ErrorStatusName, FormFactory, FormInvalid, LiveFactory, LiveStatus, PrerenderFactory, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RedirectEffectFactory, RedirectOptions, RedirectStatus, RedirectStatusName, RemoteFormHandler, RemoteHandler, RemoteLiveStream, RemoteLiveHandler, RemoteLiveSource, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, StandardSchemaInput, StandardSchemaOutput, } 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";