svelte-effect-runtime 2.5.1 → 3.0.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 (42) hide show
  1. package/.dist/chunks/{client-Cj2X9lY-.js → client-Cruhk6Oo.js} +12 -5
  2. package/.dist/chunks/client-Cruhk6Oo.js.map +1 -0
  3. package/.dist/chunks/{dispatcher-BVkm8qbG.js → dispatcher-CgCdn6bj.js} +12 -2
  4. package/.dist/chunks/{dispatcher-BVkm8qbG.js.map → dispatcher-CgCdn6bj.js.map} +1 -1
  5. package/.dist/chunks/{preprocess-DseI9Doo.js → preprocess-BhoCga82.js} +49 -6
  6. package/.dist/chunks/preprocess-BhoCga82.js.map +1 -0
  7. package/.dist/chunks/{transform-Cx5bjmP6.js → transform-CMvL4SBp.js} +19 -9
  8. package/.dist/chunks/transform-CMvL4SBp.js.map +1 -0
  9. package/.dist/dispatcher.js +1 -1
  10. package/.dist/internal/generators.js +1 -1
  11. package/.dist/internal/remote-client.js +1 -1
  12. package/.dist/markup/promise.js +1 -1
  13. package/.dist/markup/run.js +1 -1
  14. package/.dist/markup/transform.js +1 -1
  15. package/.dist/markup/value.js +1 -1
  16. package/.dist/mod.d.ts +1 -40
  17. package/.dist/mod.js +2 -27
  18. package/.dist/mod.js.map +1 -1
  19. package/.dist/preprocess/imports.d.ts +10 -2
  20. package/.dist/preprocess/types.d.ts +8 -1
  21. package/.dist/preprocess.js +2 -2
  22. package/.dist/remote/client.js +1 -1
  23. package/.dist/remote/server.js +5 -1
  24. package/.dist/remote/server.js.map +1 -1
  25. package/.dist/runtime/transform.d.ts +2 -0
  26. package/.dist/{chunks/transform-BotzDlj3.js → runtime/transform.js} +4 -17
  27. package/.dist/runtime/transform.js.map +1 -0
  28. package/.dist/server/factories.d.ts +5 -1
  29. package/.dist/server/index.d.ts +1 -1
  30. package/.dist/server/types.d.ts +44 -1
  31. package/.dist/server.d.ts +1 -1
  32. package/.dist/server.js.map +1 -1
  33. package/.dist/vite.js +9 -13
  34. package/.dist/vite.js.map +1 -1
  35. package/package.json +4 -4
  36. package/.dist/chunks/client-Cj2X9lY-.js.map +0 -1
  37. package/.dist/chunks/preprocess-DseI9Doo.js.map +0 -1
  38. package/.dist/chunks/transform-BotzDlj3.js.map +0 -1
  39. package/.dist/chunks/transform-Cx5bjmP6.js.map +0 -1
  40. package/.dist/runtime/preprocess.d.ts +0 -39
  41. package/.dist/runtime/preprocess.js +0 -31
  42. package/.dist/runtime/preprocess.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","names":[],"sources":["../../../modules/svelte-effect-runtime/src/remote/server.ts"],"sourcesContent":["import { create_serialized_remote_failure_envelope } from \"$/remote/shared.ts\";\nimport type { FormIssue } from \"$/remote/shared.ts\";\nimport { isHttpError, isRedirect, isValidationError } from \"@sveltejs/kit\";\nimport { Cause, Effect, Exit } from \"effect\";\nimport { stringify } from \"devalue\";\n\ntype CauseReason = {\n readonly _tag: string;\n readonly defect?: unknown;\n readonly error?: unknown;\n};\n\n/**\n * Runs a user-supplied Effect program through a ManagedRuntime, maps its\n * exit into the shape expected by SvelteKit, and returns the result or\n * throws a SvelteKit-compatible error.\n *\n * @since 2.0.0\n * @param effect - The Effect program to execute.\n * @param runtime - The server-side ManagedRuntime.\n * @param invalid - SvelteKit's `invalid` helper (bound per-request).\n * @param error - SvelteKit's `error` helper.\n * @returns A Promise that resolves with the effect's success value.\n * @internal\n */\nexport async function run_remote_effect<A>(\n effect: Effect.Effect<A, unknown, unknown>,\n runtime: {\n runPromise: (\n e: Effect.Effect<unknown, unknown, unknown>,\n ) => Promise<unknown>;\n },\n invalid: (status: number, body: unknown) => never,\n error: (status: number, body: unknown) => never,\n): Promise<A> {\n const exit: Exit.Exit<A, unknown> = await runtime.runPromise(\n Effect.exit(effect) as Effect.Effect<unknown, unknown, unknown>,\n ) as Exit.Exit<A, unknown>;\n\n if (Exit.isSuccess(exit)) {\n return exit.value;\n }\n\n handle_failure(exit.cause, invalid, error);\n}\n\n/**\n * Inspects the Effect Cause for failures and either throws a form\n * validation error (via SvelteKit's `invalid`) or encodes the error\n * and throws it via SvelteKit's `error`.\n */\nfunction handle_failure(\n cause: Cause.Cause<unknown>,\n invalid: (status: number, body: unknown) => never,\n error: (status: number, body: unknown) => never,\n): never {\n const reasons = get_cause_reasons(cause);\n\n /**\n * Phase 1 — let SvelteKit's thrown control-flow sentinels escape.\n */\n for (const reason of reasons) {\n if (!Cause.isDieReason(reason as never)) {\n continue;\n }\n\n const defect = reason.defect;\n\n if (is_sveltekit_control_flow(defect)) {\n throw defect;\n }\n }\n\n /**\n * Phase 2 — preserve typed form validation failures.\n */\n for (const reason of reasons) {\n if (Cause.isFailReason(reason as never)) {\n const failure = reason.error;\n if (\n typeof failure === \"object\" &&\n failure !== null &&\n (failure as Record<string, unknown>)._tag === \"FormError\"\n ) {\n const issues = (failure as { issues?: readonly FormIssue[] }).issues ??\n [];\n invalid(400, { issues });\n }\n }\n }\n\n /**\n * Phase 3 — encode all other failures for the remote client.\n */\n const encoded = encode_remote_failure(cause);\n const envelope = create_serialized_remote_failure_envelope(encoded);\n\n error(500, envelope);\n}\n\n/**\n * Encodes an Effect Cause into a string that the client-side adapter can\n * decode back into a typed `RemoteFailure`.\n *\n * @since 2.0.0\n * @param cause - The Effect Cause from a failed execution.\n * @returns A devalue-encoded string representing the serialised failure.\n * @internal\n */\nexport function encode_remote_failure(cause: Cause.Cause<unknown>): string {\n const reasons = get_cause_reasons(cause);\n\n for (const reason of reasons) {\n if (Cause.isFailReason(reason as never)) {\n const failure = reason.error;\n\n const encoded = stringify_failure(failure);\n\n if (encoded !== undefined) {\n return encoded;\n }\n\n const serializable_failure = to_serializable_failure(failure);\n const serializable_encoded = stringify_failure(serializable_failure);\n\n if (serializable_encoded !== undefined) {\n return serializable_encoded;\n }\n }\n }\n\n return stringify({ message: \"[UNKNOWN_REMOTE_FAILURE]: Unknown error\" });\n}\n\nfunction get_cause_reasons(\n cause: Cause.Cause<unknown>,\n): readonly CauseReason[] {\n const reasons = (cause as unknown as { reasons?: readonly CauseReason[] })\n .reasons;\n\n return reasons ?? [];\n}\n\nfunction is_sveltekit_control_flow(value: unknown): boolean {\n return isRedirect(value) || isHttpError(value) || isValidationError(value);\n}\n\nfunction stringify_failure(value: unknown): string | undefined {\n try {\n return stringify(value);\n } catch {\n return undefined;\n }\n}\n\nfunction to_serializable_failure(\n value: unknown,\n seen = new WeakSet<object>(),\n): unknown {\n if (typeof value === \"function\" || typeof value === \"symbol\") {\n return undefined;\n }\n\n if (!is_object_like(value)) {\n return value;\n }\n\n if (stringify_failure(value) !== undefined) {\n return value;\n }\n\n if (seen.has(value)) {\n return undefined;\n }\n\n seen.add(value);\n\n const serializable = Array.isArray(value)\n ? value.map((item) => to_serializable_failure(item, seen))\n : to_plain_record(value, seen);\n\n seen.delete(value);\n\n return serializable;\n}\n\nfunction to_plain_record(\n value: object,\n seen: WeakSet<object>,\n): Record<string, unknown> {\n const descriptors = Object.getOwnPropertyDescriptors(value);\n const record: Record<string, unknown> = {};\n\n for (const [key, descriptor] of Object.entries(descriptors)) {\n if (key === \"stack\" || !(\"value\" in descriptor)) {\n continue;\n }\n\n record[key] = to_serializable_failure(descriptor.value, seen);\n }\n\n if (value instanceof Error && !(\"message\" in record)) {\n record.message = value.message;\n }\n\n return record;\n}\n\nfunction is_object_like(value: unknown): value is object {\n return typeof value === \"object\" && value !== null;\n}\n\n/**\n * Throws a SvelteKit `invalid` response from a {@link FormError}, calling\n * through to the request-scoped `invalid` helper.\n *\n * @example\n * ```ts\n * throw_form_error(\n * [{ message: \"Name is required\", path: [\"name\"] }],\n * invalid,\n * );\n * ```\n *\n * @since 2.0.0\n * @param issues - The list of form validation issues.\n * @param invalid - SvelteKit's `invalid` helper bound to the current request.\n * @internal\n */\nexport function throw_form_error(\n issues: readonly FormIssue[],\n invalid: (status: number, body: unknown) => never,\n): never {\n invalid(400, { issues });\n}\n\n/**\n * Remaps low-level SvelteKit errors (e.g. \"Cannot use ___ outside a route\")\n * into clear, actionable messages.\n *\n * @example\n * ```ts\n * try {\n * return native_query(handler);\n * } catch (err) {\n * throw normalize_remote_helper_error(err, \"Query\");\n * }\n * ```\n *\n * @since 2.0.0\n * @param err - The error thrown by SvelteKit's native functions.\n * @param helper_name - Name of the helper that triggered the error.\n * @returns A more descriptive error.\n * @internal\n */\nexport function normalize_remote_helper_error(\n err: unknown,\n helper_name: string,\n): globalThis.Error {\n const message = err instanceof Error ? err.message : String(err);\n\n if (message.includes(\"Cannot use\") || message.includes(\"outside a route\")) {\n return new globalThis.Error(\n `[REMOTE_HELPER_CONTEXT]: ${helper_name} was called outside a .remote.ts file. ` +\n `Ensure the file is named \\`*.remote.ts\\` and is located in a route directory.`,\n );\n }\n\n return err instanceof Error\n ? err\n : new globalThis.Error(`[REMOTE_HELPER_ERROR]: ${message}`);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"server.js","names":[],"sources":["../../../modules/svelte-effect-runtime/src/remote/server.ts"],"sourcesContent":["import { create_serialized_remote_failure_envelope } from \"$/remote/shared.ts\";\nimport type { FormIssue } from \"$/remote/shared.ts\";\nimport { isHttpError, isRedirect, isValidationError } from \"@sveltejs/kit\";\nimport { Cause, Effect, Exit } from \"effect\";\nimport { stringify } from \"devalue\";\n\ntype CauseReason = {\n readonly _tag: string;\n readonly defect?: unknown;\n readonly error?: unknown;\n};\n\n/**\n * Runs a user-supplied Effect program through a ManagedRuntime, maps its\n * exit into the shape expected by SvelteKit, and returns the result or\n * throws a SvelteKit-compatible error.\n *\n * @since 2.0.0\n * @param effect - The Effect program to execute.\n * @param runtime - The server-side ManagedRuntime.\n * @param invalid - SvelteKit's `invalid` helper (bound per-request).\n * @param error - SvelteKit's `error` helper.\n * @returns A Promise that resolves with the effect's success value.\n * @internal\n */\nexport async function run_remote_effect<A>(\n effect: Effect.Effect<A, unknown, unknown>,\n runtime: {\n runPromise: (\n e: Effect.Effect<unknown, unknown, unknown>,\n ) => Promise<unknown>;\n },\n invalid: (status: number, body: unknown) => never,\n error: (status: number, body: unknown) => never,\n): Promise<A> {\n const exit: Exit.Exit<A, unknown> = await runtime.runPromise(\n Effect.exit(effect) as Effect.Effect<unknown, unknown, unknown>,\n ) as Exit.Exit<A, unknown>;\n\n if (Exit.isSuccess(exit)) {\n return exit.value;\n }\n\n handle_failure(exit.cause, invalid, error);\n}\n\n/**\n * Inspects the Effect Cause for failures and either throws a form\n * validation error (via SvelteKit's `invalid`) or encodes the error\n * and throws it via SvelteKit's `error`.\n */\nfunction handle_failure(\n cause: Cause.Cause<unknown>,\n invalid: (status: number, body: unknown) => never,\n error: (status: number, body: unknown) => never,\n): never {\n const reasons = get_cause_reasons(cause);\n\n /**\n * Phase 1 — let SvelteKit's thrown control-flow sentinels escape.\n */\n for (const reason of reasons) {\n if (!Cause.isDieReason(reason as never)) {\n continue;\n }\n\n const defect = reason.defect;\n\n if (is_sveltekit_control_flow(defect)) {\n throw defect;\n }\n }\n\n /**\n * Phase 2 — let cancellation escape without becoming a remote failure.\n */\n if (Cause.hasInterruptsOnly(cause)) {\n throw Cause.squash(cause);\n }\n\n /**\n * Phase 3 — preserve typed form validation failures.\n */\n for (const reason of reasons) {\n if (Cause.isFailReason(reason as never)) {\n const failure = reason.error;\n if (\n typeof failure === \"object\" &&\n failure !== null &&\n (failure as Record<string, unknown>)._tag === \"FormError\"\n ) {\n const issues = (failure as { issues?: readonly FormIssue[] }).issues ??\n [];\n invalid(400, { issues });\n }\n }\n }\n\n /**\n * Phase 4 — encode all other failures for the remote client.\n */\n const encoded = encode_remote_failure(cause);\n const envelope = create_serialized_remote_failure_envelope(encoded);\n\n error(500, envelope);\n}\n\n/**\n * Encodes an Effect Cause into a string that the client-side adapter can\n * decode back into a typed `RemoteFailure`.\n *\n * @since 2.0.0\n * @param cause - The Effect Cause from a failed execution.\n * @returns A devalue-encoded string representing the serialised failure.\n * @internal\n */\nexport function encode_remote_failure(cause: Cause.Cause<unknown>): string {\n const reasons = get_cause_reasons(cause);\n\n for (const reason of reasons) {\n if (Cause.isFailReason(reason as never)) {\n const failure = reason.error;\n\n const encoded = stringify_failure(failure);\n\n if (encoded !== undefined) {\n return encoded;\n }\n\n const serializable_failure = to_serializable_failure(failure);\n const serializable_encoded = stringify_failure(serializable_failure);\n\n if (serializable_encoded !== undefined) {\n return serializable_encoded;\n }\n }\n }\n\n return stringify({ message: \"[UNKNOWN_REMOTE_FAILURE]: Unknown error\" });\n}\n\nfunction get_cause_reasons(\n cause: Cause.Cause<unknown>,\n): readonly CauseReason[] {\n const reasons = (cause as unknown as { reasons?: readonly CauseReason[] })\n .reasons;\n\n return reasons ?? [];\n}\n\nfunction is_sveltekit_control_flow(value: unknown): boolean {\n return isRedirect(value) || isHttpError(value) || isValidationError(value);\n}\n\nfunction stringify_failure(value: unknown): string | undefined {\n try {\n return stringify(value);\n } catch {\n return undefined;\n }\n}\n\nfunction to_serializable_failure(\n value: unknown,\n seen = new WeakSet<object>(),\n): unknown {\n if (typeof value === \"function\" || typeof value === \"symbol\") {\n return undefined;\n }\n\n if (!is_object_like(value)) {\n return value;\n }\n\n if (stringify_failure(value) !== undefined) {\n return value;\n }\n\n if (seen.has(value)) {\n return undefined;\n }\n\n seen.add(value);\n\n const serializable = Array.isArray(value)\n ? value.map((item) => to_serializable_failure(item, seen))\n : to_plain_record(value, seen);\n\n seen.delete(value);\n\n return serializable;\n}\n\nfunction to_plain_record(\n value: object,\n seen: WeakSet<object>,\n): Record<string, unknown> {\n const descriptors = Object.getOwnPropertyDescriptors(value);\n const record: Record<string, unknown> = {};\n\n for (const [key, descriptor] of Object.entries(descriptors)) {\n if (key === \"stack\" || !(\"value\" in descriptor)) {\n continue;\n }\n\n record[key] = to_serializable_failure(descriptor.value, seen);\n }\n\n if (value instanceof Error && !(\"message\" in record)) {\n record.message = value.message;\n }\n\n return record;\n}\n\nfunction is_object_like(value: unknown): value is object {\n return typeof value === \"object\" && value !== null;\n}\n\n/**\n * Throws a SvelteKit `invalid` response from a {@link FormError}, calling\n * through to the request-scoped `invalid` helper.\n *\n * @example\n * ```ts\n * throw_form_error(\n * [{ message: \"Name is required\", path: [\"name\"] }],\n * invalid,\n * );\n * ```\n *\n * @since 2.0.0\n * @param issues - The list of form validation issues.\n * @param invalid - SvelteKit's `invalid` helper bound to the current request.\n * @internal\n */\nexport function throw_form_error(\n issues: readonly FormIssue[],\n invalid: (status: number, body: unknown) => never,\n): never {\n invalid(400, { issues });\n}\n\n/**\n * Remaps low-level SvelteKit errors (e.g. \"Cannot use ___ outside a route\")\n * into clear, actionable messages.\n *\n * @example\n * ```ts\n * try {\n * return native_query(handler);\n * } catch (err) {\n * throw normalize_remote_helper_error(err, \"Query\");\n * }\n * ```\n *\n * @since 2.0.0\n * @param err - The error thrown by SvelteKit's native functions.\n * @param helper_name - Name of the helper that triggered the error.\n * @returns A more descriptive error.\n * @internal\n */\nexport function normalize_remote_helper_error(\n err: unknown,\n helper_name: string,\n): globalThis.Error {\n const message = err instanceof Error ? err.message : String(err);\n\n if (message.includes(\"Cannot use\") || message.includes(\"outside a route\")) {\n return new globalThis.Error(\n `[REMOTE_HELPER_CONTEXT]: ${helper_name} was called outside a .remote.ts file. ` +\n `Ensure the file is named \\`*.remote.ts\\` and is located in a route directory.`,\n );\n }\n\n return err instanceof Error\n ? err\n : new globalThis.Error(`[REMOTE_HELPER_ERROR]: ${message}`);\n}\n"],"mappings":"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"}
@@ -33,3 +33,5 @@ export interface SvelteTransformResult {
33
33
  * @returns The transformed component source.
34
34
  */
35
35
  export declare function transform_svelte_effect(content: string, filename?: string): SvelteTransformResult;
36
+ export { type MarkupTransformResult, transform_markup_effect, } from "../markup/transform.js";
37
+ export { type BlockRef, type ScriptTransformResult, transform_script_effect, } from "../preprocess.js";
@@ -1,19 +1,6 @@
1
- import { t as transform_markup_effect } from "./transform-Cx5bjmP6.js";
2
- import { t as transform_script_effect } from "./preprocess-DseI9Doo.js";
3
- //#region \0rolldown/runtime.js
4
- var __defProp = Object.defineProperty;
5
- var __exportAll = (all, no_symbols) => {
6
- let target = {};
7
- for (var name in all) __defProp(target, name, {
8
- get: all[name],
9
- enumerable: true
10
- });
11
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
12
- return target;
13
- };
14
- //#endregion
1
+ import { t as transform_markup_effect } from "../chunks/transform-CMvL4SBp.js";
2
+ import { t as transform_script_effect } from "../chunks/preprocess-BhoCga82.js";
15
3
  //#region src/runtime/transform.ts
16
- var transform_exports = /* @__PURE__ */ __exportAll({ transform_svelte_effect: () => transform_svelte_effect });
17
4
  /**
18
5
  * Lowers SER syntax in a complete Svelte component without using Svelte's
19
6
  * preprocessor adapter API.
@@ -67,6 +54,6 @@ function has_typescript_lang(attrs) {
67
54
  return lang === "ts" || lang === "typescript";
68
55
  }
69
56
  //#endregion
70
- export { transform_svelte_effect as n, transform_exports as t };
57
+ export { transform_markup_effect, transform_script_effect, transform_svelte_effect };
71
58
 
72
- //# sourceMappingURL=transform-BotzDlj3.js.map
59
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","names":[],"sources":["../../../modules/svelte-effect-runtime/src/runtime/transform.ts"],"sourcesContent":["import { transform_markup_effect } from \"$/markup/transform.ts\";\nimport { transform_script_effect } from \"$/preprocess.ts\";\n\n/**\n * Result returned by the direct whole-file Svelte transform.\n *\n * @example\n * ```ts\n * const result = transform_svelte_effect(\"<p>{yield* load()}</p>\", \"App.svelte\");\n * result.code;\n * ```\n *\n * @since 2.5.0\n */\nexport interface SvelteTransformResult {\n /** Transformed Svelte source. */\n code: string;\n}\n\n/**\n * Lowers SER syntax in a complete Svelte component without using Svelte's\n * preprocessor adapter API.\n *\n * @example\n * ```ts\n * const result = transform_svelte_effect(\n * \"<script effect>const value = yield* load()</script>\",\n * \"App.svelte\",\n * );\n * ```\n *\n * @since 2.5.0\n * @param content - Full Svelte component source to lower before Svelte parses\n * it.\n * @param filename - Component filename used in generated cache identifiers and\n * diagnostics.\n * @returns The transformed component source.\n */\nexport function transform_svelte_effect(\n content: string,\n filename = \"unknown.svelte\",\n): SvelteTransformResult {\n const script = find_script(content);\n\n let combined = content;\n\n if (script?.has_effect) {\n const result = transform_script_effect(script.text, filename, {\n emit_types: script.is_typescript,\n });\n\n combined = content.slice(0, script.effect_attr_start) +\n content.slice(script.effect_attr_end, script.open_end) +\n result.code +\n content.slice(script.close_start);\n }\n\n const result = transform_markup_effect(combined, filename);\n\n return { code: result.code };\n}\n\nfunction find_script(content: string):\n | {\n text: string;\n open_end: number;\n close_start: number;\n has_effect: boolean;\n effect_attr_start: number;\n effect_attr_end: number;\n is_typescript: boolean;\n }\n | undefined {\n const pattern = /<script\\b([^>]*)>([\\s\\S]*?)<\\/script\\s*>/gi;\n\n for (const match of content.matchAll(pattern)) {\n if (match.index === undefined || /\\bmodule\\b/.test(match[1] ?? \"\")) {\n continue;\n }\n\n const attrs = match[1] ?? \"\";\n const effect_match = /\\s+effect(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s>]+))?/\n .exec(attrs);\n const open_end = match.index + match[0].indexOf(\">\") + 1;\n const attr_start = effect_match?.index ?? attrs.length;\n const attr_end = attr_start + (effect_match?.[0].length ?? 0);\n\n return {\n text: match[2],\n open_end,\n close_start: match.index + match[0].lastIndexOf(\"<\"),\n has_effect: effect_match !== null,\n effect_attr_start: match.index + \"<script\".length + attr_start,\n effect_attr_end: match.index + \"<script\".length + attr_end,\n is_typescript: has_typescript_lang(attrs),\n };\n }\n\n return undefined;\n}\n\nfunction has_typescript_lang(attrs: string): boolean {\n const lang_match = /\\blang\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s>]+))/i.exec(\n attrs,\n );\n const lang = (lang_match?.[1] ?? lang_match?.[2] ?? lang_match?.[3] ?? \"\")\n .toLowerCase();\n\n return lang === \"ts\" || lang === \"typescript\";\n}\n\nexport {\n type MarkupTransformResult,\n transform_markup_effect,\n} from \"$/markup/transform.ts\";\n\nexport {\n type BlockRef,\n type ScriptTransformResult,\n transform_script_effect,\n} from \"$/preprocess.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsCA,SAAgB,wBACd,SACA,WAAW,kBACY;CACvB,MAAM,SAAS,YAAY,OAAO;CAElC,IAAI,WAAW;CAEf,IAAI,QAAQ,YAAY;EACtB,MAAM,SAAS,wBAAwB,OAAO,MAAM,UAAU,EAC5D,YAAY,OAAO,cACrB,CAAC;EAED,WAAW,QAAQ,MAAM,GAAG,OAAO,iBAAiB,IAClD,QAAQ,MAAM,OAAO,iBAAiB,OAAO,QAAQ,IACrD,OAAO,OACP,QAAQ,MAAM,OAAO,WAAW;CACpC;CAIA,OAAO,EAAE,MAFM,wBAAwB,UAAU,QAE7B,EAAE,KAAK;AAC7B;AAEA,SAAS,YAAY,SAUP;CAGZ,KAAK,MAAM,SAAS,QAAQ,SAAS,4CAAO,GAAG;EAC7C,IAAI,MAAM,UAAU,KAAA,KAAa,aAAa,KAAK,MAAM,MAAM,EAAE,GAC/D;EAGF,MAAM,QAAQ,MAAM,MAAM;EAC1B,MAAM,eAAe,mDAClB,KAAK,KAAK;EACb,MAAM,WAAW,MAAM,QAAQ,MAAM,GAAG,QAAQ,GAAG,IAAI;EACvD,MAAM,aAAa,cAAc,SAAS,MAAM;EAChD,MAAM,WAAW,cAAc,eAAe,GAAG,UAAU;EAE3D,OAAO;GACL,MAAM,MAAM;GACZ;GACA,aAAa,MAAM,QAAQ,MAAM,GAAG,YAAY,GAAG;GACnD,YAAY,iBAAiB;GAC7B,mBAAmB,MAAM,QAAQ,IAAmB;GACpD,iBAAiB,MAAM,QAAQ,IAAmB;GAClD,eAAe,oBAAoB,KAAK;EAC1C;CACF;AAGF;AAEA,SAAS,oBAAoB,OAAwB;CACnD,MAAM,aAAa,kDAAkD,KACnE,KACF;CACA,MAAM,QAAQ,aAAa,MAAM,aAAa,MAAM,aAAa,MAAM,IACpE,YAAY;CAEf,OAAO,SAAS,QAAQ,SAAS;AACnC"}
@@ -1,8 +1,9 @@
1
1
  import type { RemoteFormInput } from "@sveltejs/kit";
2
2
  import { type Schema } from "effect";
3
- import type { EffectLike, EffectRemoteCommand, EffectRemoteForm, EffectRemoteFunction, PrerenderOptions, QueryFactory, RemoteFormHandler, RemoteHandler, SchemaEncodedInput, SchemaInput } from "./types.js";
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
+ type FormStandardSchemaInput<S> = StandardSchemaInput<S> extends RemoteFormInput ? StandardSchemaInput<S> : RemoteFormInput;
6
7
  type FormScalar = string | number | boolean | File;
7
8
  type NormalizeFormEncoded<Value> = Value extends FormScalar ? Value : Value extends ReadonlyArray<infer Item> ? Array<NormalizeFormEncoded<Item>> : Value extends object ? NormalizeFormObject<Value> : Value;
8
9
  type NormalizeFormObject<Value> = {
@@ -39,6 +40,7 @@ export declare const Query: QueryFactory;
39
40
  export declare function Command<A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>): EffectRemoteCommand<void, A, E>;
40
41
  export declare function Command<Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>): EffectRemoteCommand<Input, A, E>;
41
42
  export declare function Command<S extends Schema.Schema<unknown>, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>): EffectRemoteCommand<SchemaEncodedInput<S>, A, E>;
43
+ export declare function Command<S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>): EffectRemoteCommand<StandardSchemaInput<S>, A, E>;
42
44
  /**
43
45
  * Factory for a remote form handler.
44
46
  *
@@ -63,6 +65,7 @@ export declare function Command<S extends Schema.Schema<unknown>, A, E = never,
63
65
  export declare function Form<A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteFormHandler<void, A, E, R>): EffectRemoteForm<void, A, E>;
64
66
  export declare function Form<Input extends RemoteFormInput, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteFormHandler<Input, A, E, R>): EffectRemoteForm<Input, A, E>;
65
67
  export declare function Form<S extends Schema.Top, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteFormHandler<SchemaInput<S>, A, E, R>): EffectRemoteForm<FormSchemaEncodedInput<S>, A, E>;
68
+ export declare function Form<S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteFormHandler<StandardSchemaOutput<S>, A, E, R>): EffectRemoteForm<FormStandardSchemaInput<S>, A, E>;
66
69
  /**
67
70
  * Factory for a prerenderable remote function.
68
71
  *
@@ -75,4 +78,5 @@ export declare function Form<S extends Schema.Top, A, E = never, R = never>(vali
75
78
  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>;
76
79
  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>;
77
80
  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>;
81
+ 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>;
78
82
  export {};
@@ -2,4 +2,4 @@ export { Command, Form, Prerender, Query } from "./factories.js";
2
2
  export { Error, Redirect } from "./control-flow.js";
3
3
  export { get_server_runtime_or_throw, RequestEvent, ServerRuntime, } from "./runtime.js";
4
4
  export type { ErrorEffectFactory, ErrorStatus, ErrorStatusName, RedirectEffectFactory, RedirectStatus, RedirectStatusName, } from "./control-flow.js";
5
- export type { CommandFactory, EffectLike, EffectRemoteBatchHandler, EffectRemoteCommand, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemoteLiveQueryResource, EffectRemoteLiveSource, EffectRemoteQuery, EffectRemoteQueryFunction, FormFactory, FormInvalid, PrerenderFactory, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, } from "./types.js";
5
+ export type { CommandFactory, EffectLike, EffectRemoteBatchHandler, EffectRemoteCommand, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemoteLiveQueryResource, EffectRemoteLiveSource, EffectRemoteQuery, EffectRemoteQueryFunction, FormFactory, FormInvalid, PrerenderFactory, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, StandardSchemaInput, StandardSchemaOutput, } from "./types.js";
@@ -43,9 +43,17 @@ export type RemoteFormHandler<Input = unknown, A = unknown, E = unknown, R = unk
43
43
  *
44
44
  * @since 2.0.0
45
45
  */
46
- export type FormInvalid<Input = unknown> = FormInvalidChildren<Input> & {
46
+ export type FormInvalid<Input = unknown> = FormInvalidFunctionChildren & FormInvalidChildren<Input> & {
47
47
  (message: string): Effect.Effect<never, ReturnType<typeof create_form_error>>;
48
48
  };
49
+ type FormInvalidFunctionChildren = {
50
+ readonly apply: FormInvalid;
51
+ readonly bind: FormInvalid;
52
+ readonly call: FormInvalid;
53
+ readonly length: FormInvalid;
54
+ readonly name: FormInvalid;
55
+ readonly toString: FormInvalid;
56
+ };
49
57
  type FormInvalidChildren<Input> = IsUnknown<Input> extends true ? {
50
58
  readonly [key: string]: FormInvalid;
51
59
  } : NonNullable<Input> extends readonly (infer Item)[] ? {
@@ -70,6 +78,10 @@ export type PrerenderOptions = {
70
78
  */
71
79
  export type StandardSchema = {
72
80
  readonly "~standard": {
81
+ readonly types?: {
82
+ readonly input: unknown;
83
+ readonly output: unknown;
84
+ };
73
85
  readonly validate: (input: unknown) => unknown;
74
86
  };
75
87
  };
@@ -85,6 +97,30 @@ export type SchemaInput<S> = S extends Schema.Top ? Schema.Schema.Type<S> : unkn
85
97
  * @since 2.4.2
86
98
  */
87
99
  export type SchemaEncodedInput<S> = S extends Schema.Top ? S["Encoded"] : unknown;
100
+ /**
101
+ * Extracts the encoded input type from a Standard Schema.
102
+ *
103
+ * @since 3.0.0
104
+ */
105
+ export type StandardSchemaInput<S> = S extends {
106
+ readonly "~standard": {
107
+ readonly types: {
108
+ readonly input: infer Input;
109
+ };
110
+ };
111
+ } ? Input : unknown;
112
+ /**
113
+ * Extracts the decoded handler input type from a Standard Schema.
114
+ *
115
+ * @since 3.0.0
116
+ */
117
+ export type StandardSchemaOutput<S> = S extends {
118
+ readonly "~standard": {
119
+ readonly types: {
120
+ readonly output: infer Output;
121
+ };
122
+ };
123
+ } ? Output : StandardSchemaInput<S>;
88
124
  /**
89
125
  * Root and server export shape for building the server-side runtime.
90
126
  *
@@ -102,6 +138,7 @@ export interface QueryFactory {
102
138
  <A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>): EffectRemoteQueryFunction<void, A, E>;
103
139
  <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>): EffectRemoteQueryFunction<Input, A, E>;
104
140
  <S extends Schema.Schema<unknown>, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>): EffectRemoteQueryFunction<SchemaEncodedInput<S>, A, E>;
141
+ <S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>): EffectRemoteQueryFunction<StandardSchemaInput<S>, A, E>;
105
142
  readonly batch: QueryBatchFactory;
106
143
  readonly live: QueryLiveFactory;
107
144
  }
@@ -113,6 +150,7 @@ export interface QueryFactory {
113
150
  export interface QueryBatchFactory {
114
151
  <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: EffectRemoteBatchHandler<Input, A, E, R>): EffectRemoteQueryFunction<Input, A, E>;
115
152
  <S extends Schema.Schema<unknown>, A, E = never, R = never>(validate_or_handler: S, maybe_handler: EffectRemoteBatchHandler<SchemaInput<S>, A, E, R>): EffectRemoteQueryFunction<SchemaEncodedInput<S>, A, E>;
153
+ <S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: EffectRemoteBatchHandler<StandardSchemaOutput<S>, A, E, R>): EffectRemoteQueryFunction<StandardSchemaInput<S>, A, E>;
116
154
  }
117
155
  /**
118
156
  * Root and server export shape for live query helpers.
@@ -123,6 +161,7 @@ export interface QueryLiveFactory {
123
161
  <A, E = never, R = never>(validate_or_handler: RemoteLiveHandler<void, A, E, R>): EffectRemoteLiveQueryFunction<void, A, E>;
124
162
  <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteLiveHandler<Input, A, E, R>): EffectRemoteLiveQueryFunction<Input, A, E>;
125
163
  <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>;
164
+ <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>;
126
165
  }
127
166
  /**
128
167
  * Root and server export shape for command helpers.
@@ -133,6 +172,7 @@ export interface CommandFactory {
133
172
  <A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>): EffectRemoteCommand<void, A, E>;
134
173
  <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>): EffectRemoteCommand<Input, A, E>;
135
174
  <S extends Schema.Schema<unknown>, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>): EffectRemoteCommand<SchemaEncodedInput<S>, A, E>;
175
+ <S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>): EffectRemoteCommand<StandardSchemaInput<S>, A, E>;
136
176
  }
137
177
  /**
138
178
  * Root and server export shape for form helpers.
@@ -143,6 +183,7 @@ export interface FormFactory {
143
183
  <A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteFormHandler<void, A, E, R>): EffectRemoteForm<void, A, E>;
144
184
  <Input extends RemoteFormInput, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteFormHandler<Input, A, E, R>): EffectRemoteForm<Input, A, E>;
145
185
  <S extends Schema.Top, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteFormHandler<SchemaInput<S>, A, E, R>): EffectRemoteForm<FormSchemaEncodedInput<S>, A, E>;
186
+ <S extends StandardSchema, A, E = never, R = never>(validate_or_handler: S, maybe_handler: RemoteFormHandler<StandardSchemaOutput<S>, A, E, R>): EffectRemoteForm<FormStandardSchemaInput<S>, A, E>;
146
187
  }
147
188
  /**
148
189
  * Root and server export shape for prerender helpers.
@@ -153,6 +194,7 @@ export interface PrerenderFactory {
153
194
  <A, E = never, R = never>(validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<void, A, E>;
154
195
  <Input, A, E = never, R = never>(validate_or_handler: "unchecked", maybe_handler: RemoteHandler<Input, A, E, R>, maybe_options?: PrerenderOptions): EffectRemoteFunction<Input, A, E>;
155
196
  <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>;
197
+ <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>;
156
198
  }
157
199
  /**
158
200
  * Source values accepted by live query helpers.
@@ -300,6 +342,7 @@ export type EffectRemoteCommand<Input, A, E = never> = EffectRemoteFunction<Inpu
300
342
  export type EffectRemoteForm<Input extends RemoteFormInput | void, A, E = never> = ClientEffectRemoteForm<Input, A, E>;
301
343
  type FormSchemaEncodedInput<S> = S extends Schema.Top ? FormRemoteInput<S["Encoded"]> : never;
302
344
  type FormRemoteInput<Input> = NormalizeFormEncoded<Input> extends RemoteFormInput ? NormalizeFormEncoded<Input> : never;
345
+ type FormStandardSchemaInput<S> = StandardSchemaInput<S> extends RemoteFormInput ? StandardSchemaInput<S> : RemoteFormInput;
303
346
  type FormScalar = string | number | boolean | File;
304
347
  type NormalizeFormEncoded<Value> = Value extends FormScalar ? Value : Value extends ReadonlyArray<infer Item> ? Array<NormalizeFormEncoded<Item>> : Value extends object ? NormalizeFormObject<Value> : Value;
305
348
  type NormalizeFormObject<Value> = {
package/.dist/server.d.ts CHANGED
@@ -1,2 +1,2 @@
1
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, ErrorEffectFactory, ErrorStatus, ErrorStatusName, FormFactory, FormInvalid, PrerenderFactory, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RedirectEffectFactory, RedirectStatus, RedirectStatusName, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, } from "./server/index.js";
2
+ export type { CommandFactory, EffectLike, EffectRemoteBatchHandler, EffectRemoteCommand, EffectRemoteForm, EffectRemoteFunction, EffectRemoteLiveQuery, EffectRemoteLiveQueryFunction, EffectRemoteLiveQueryResource, EffectRemoteLiveSource, EffectRemoteQuery, EffectRemoteQueryFunction, ErrorEffectFactory, ErrorStatus, ErrorStatusName, FormFactory, FormInvalid, PrerenderFactory, PrerenderOptions, QueryBatchFactory, QueryFactory, QueryLiveFactory, RedirectEffectFactory, RedirectStatus, RedirectStatusName, RemoteFormHandler, RemoteHandler, RemoteLiveHandler, SchemaEncodedInput, SchemaInput, ServerRuntimeFactory, StandardSchema, StandardSchemaInput, StandardSchemaOutput, } from "./server/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","names":["get_native_request_event","get_native_request_event","native_query","native_command","native_form","native_prerender","Error"],"sources":["../../modules/svelte-effect-runtime/src/server/schema.ts","../../modules/svelte-effect-runtime/src/server/runtime.ts","../../modules/svelte-effect-runtime/src/server/effects.ts","../../modules/svelte-effect-runtime/src/server/invalid.ts","../../modules/svelte-effect-runtime/src/server/wrappers.ts","../../modules/svelte-effect-runtime/src/server/factories.ts","../../modules/svelte-effect-runtime/src/server/control-flow.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\nimport type { RemoteHandler, StandardSchema } from \"./types.ts\";\n\n/**\n * Checks whether a value is the string sentinel for unchecked remotes.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is `\"unchecked\"`.\n */\nexport function is_unchecked(value: unknown): value is \"unchecked\" {\n return value === \"unchecked\";\n}\n\n/**\n * Checks whether a value is a remote handler function.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is callable as a handler.\n */\nexport function is_handler(\n value: unknown,\n): value is RemoteHandler<unknown, unknown, unknown, unknown> {\n return typeof value === \"function\";\n}\n\n/**\n * Checks whether a value implements the Standard Schema contract.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is a Standard Schema.\n */\nexport function is_standard_schema(value: unknown): value is StandardSchema {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"~standard\" in value\n );\n}\n\n/**\n * Checks whether a value looks like an Effect Schema.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value should be converted to Standard Schema.\n */\nexport function is_effect_schema(\n value: unknown,\n): value is Schema.Schema<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"ast\" in value &&\n \"make\" in value\n );\n}\n\n/**\n * Converts Effect Schema inputs to Standard Schema for SvelteKit.\n *\n * @since 2.0.0\n * @param value - Schema or handler input.\n * @returns Original value or Standard Schema view of an Effect Schema.\n */\nexport function normalize_validator(value: unknown): unknown {\n if (is_standard_schema(value) || !is_effect_schema(value)) {\n return value;\n }\n\n return Schema.toStandardSchemaV1(value as never);\n}\n","import type { RequestEvent as SvelteKitRequestEvent } from \"@sveltejs/kit\";\nimport { Context, Layer, ManagedRuntime } from \"effect\";\n\n/**\n * Subset of SvelteKit's `RequestEvent` that remote handlers typically access.\n *\n * @since 2.0.0\n */\nexport interface RequestEvent extends\n Pick<\n SvelteKitRequestEvent,\n | \"cookies\"\n | \"getClientAddress\"\n | \"locals\"\n | \"params\"\n | \"platform\"\n | \"request\"\n | \"route\"\n | \"url\"\n > {}\n\n/**\n * SvelteKit's `RequestEvent` exposed as an Effect {@link Context.Tag}.\n *\n * @example\n * ```ts\n * const event = yield* RequestEvent;\n * ```\n *\n * @since 2.0.0\n */\nexport const RequestEvent: Context.Reference<RequestEvent> = Context\n .Reference<RequestEvent>(\"@ser/RequestEvent\", {\n defaultValue: () => {\n throw new Error(\n \"[REQUEST_EVENT_UNAVAILABLE]: RequestEvent is only available during a remote call\",\n );\n },\n });\n\n/**\n * Builder for the server-side Effect runtime.\n *\n * @example\n * ```ts\n * ServerRuntime.make(Db.Live);\n * ```\n *\n * @since 2.0.0\n */\nexport class ServerRuntime {\n /**\n * Build and cache the server-side `ManagedRuntime`.\n *\n * @since 2.0.0\n * @param layer - Optional Effect layer to provide to the runtime.\n * @returns The configured ManagedRuntime.\n */\n static make<R = never>(\n layer?: Layer.Layer<R>,\n ): ManagedRuntime.ManagedRuntime<R, never> {\n const runtime = ManagedRuntime.make(\n layer ?? (Layer.empty as unknown as Layer.Layer<R>),\n );\n\n current_server_runtime = runtime as ManagedRuntime.ManagedRuntime<\n unknown,\n never\n >;\n\n return runtime;\n }\n}\n\nlet current_server_runtime:\n | ManagedRuntime.ManagedRuntime<unknown, never>\n | undefined;\n\n/**\n * Returns the active server runtime, creating a default one if needed.\n *\n * @example\n * ```ts\n * const runtime = get_server_runtime_or_throw();\n * ```\n *\n * @since 2.0.0\n * @returns The current ManagedRuntime instance.\n */\nexport function get_server_runtime_or_throw(): ManagedRuntime.ManagedRuntime<\n unknown,\n never\n> {\n if (!current_server_runtime) {\n current_server_runtime = ManagedRuntime.make(\n Layer.empty,\n ) as ManagedRuntime.ManagedRuntime<unknown, never>;\n }\n\n return current_server_runtime;\n}\n","import { run_remote_effect } from \"$/remote/server.ts\";\nimport { error as svelte_error, invalid } from \"@sveltejs/kit\";\nimport { Effect, Stream } from \"effect\";\n\nimport { get_server_runtime_or_throw, RequestEvent } from \"./runtime.ts\";\nimport type { RequestEvent as RequestEventShape } from \"./runtime.ts\";\nimport type { EffectLike, EffectRemoteLiveSource } from \"./types.ts\";\n\ntype ResolvedLiveSource<A> =\n | AsyncIterable<A>\n | AsyncIterator<A>\n | Iterable<A>\n | Iterator<A>;\n\ntype LiveHandlerResult<A> =\n | EffectLike<EffectRemoteLiveSource<A>, unknown, unknown>\n | EffectRemoteLiveSource<A>;\n\n/**\n * Checks whether a value is an Effect generator return object.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value should be wrapped with `Effect.gen`.\n */\nexport function is_generator_result<A>(\n value: unknown,\n): value is Effect.gen.Return<A, unknown, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof (value as { next?: unknown }).next === \"function\"\n );\n}\n\n/**\n * Normalizes an Effect-like handler return value into an Effect.\n *\n * @since 2.0.0\n * @param value - Effect or generator return value.\n * @returns Normalized Effect.\n */\nexport function to_effect<A, E, R>(\n value: EffectLike<A, E, R>,\n): Effect.Effect<A, E, R> {\n if (is_generator_result<A>(value)) {\n return Effect.gen(() => value) as Effect.Effect<A, E, R>;\n }\n\n return value;\n}\n\n/**\n * Checks whether a value is a live query source SvelteKit can consume.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is an Effect Stream or native iterable source.\n */\nexport function is_live_source<A>(\n value: unknown,\n): value is EffectRemoteLiveSource<A> {\n if (Stream.isStream(value)) {\n return true;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const source = value as {\n readonly next?: unknown;\n readonly [Symbol.asyncIterator]?: unknown;\n readonly [Symbol.iterator]?: unknown;\n };\n\n return (\n typeof source.next === \"function\" ||\n typeof source[Symbol.asyncIterator] === \"function\" ||\n typeof source[Symbol.iterator] === \"function\"\n );\n}\n\n/**\n * Runs and normalizes a live query handler result with request services\n * available to Effect Streams.\n *\n * @since 2.0.0\n * @param value - Live query source or Effect that resolves to one.\n * @param event - SvelteKit request event for this remote call.\n * @returns Promise resolving with a source SvelteKit can stream.\n */\nexport function run_live_handler_source<A>(\n value: LiveHandlerResult<A>,\n event: RequestEventShape,\n): Promise<ResolvedLiveSource<A>> {\n const runtime = get_server_runtime_or_throw();\n const effect = Effect.provideService(\n to_live_source_effect(value),\n RequestEvent,\n event,\n ) as Effect.Effect<ResolvedLiveSource<A>, unknown, unknown>;\n\n return run_remote_effect(\n effect,\n runtime,\n svelte_invalid,\n svelte_remote_error,\n );\n}\n\nfunction to_live_source_effect<A>(\n value: LiveHandlerResult<A>,\n): Effect.Effect<ResolvedLiveSource<A>, unknown, unknown> {\n if (Stream.isStream(value)) {\n return Stream.toAsyncIterableEffect(\n value as Stream.Stream<A, unknown, unknown>,\n ) as Effect.Effect<ResolvedLiveSource<A>, unknown, unknown>;\n }\n\n if (is_native_live_source<A>(value)) {\n return Effect.succeed(value);\n }\n\n if (!Effect.isEffect(value)) {\n return Effect.fail(\n new Error(\n \"[INVALID_LIVE_QUERY_SOURCE]: Query.live handler must return an Effect Stream, Iterable, or AsyncIterable\",\n ),\n );\n }\n\n return Effect.flatMap(\n value as Effect.Effect<EffectRemoteLiveSource<A>, unknown, unknown>,\n to_live_source_effect,\n );\n}\n\nfunction is_native_live_source<A>(\n value: unknown,\n): value is ResolvedLiveSource<A> {\n return is_live_source<A>(value) && !Stream.isStream(value);\n}\n\n/**\n * Runs a remote handler Effect with the current request event provided.\n *\n * @since 2.0.0\n * @param value - Handler return value.\n * @param event - SvelteKit request event for this remote call.\n * @returns Promise resolving with the handler output.\n */\nexport function run_handler_effect<A>(\n value: EffectLike<A, unknown, unknown>,\n event: RequestEventShape,\n): Promise<A> {\n const runtime = get_server_runtime_or_throw();\n const effect = Effect.provideService(\n to_effect(value),\n RequestEvent,\n event,\n ) as Effect.Effect<A, unknown, unknown>;\n\n return run_remote_effect(\n effect,\n runtime,\n svelte_invalid,\n svelte_remote_error,\n );\n}\n\nconst svelte_invalid = (_status: number, body: unknown): never => {\n const issues = typeof body === \"object\" && body !== null &&\n Array.isArray((body as { issues?: unknown }).issues)\n ? (body as { issues: unknown[] }).issues\n : [String(body)];\n\n invalid(...(issues as never[]));\n};\n\nconst svelte_remote_error = (status: number, body: unknown): never => {\n svelte_error(status as never, body as never);\n};\n","import { create_form_error } from \"$/remote/shared.ts\";\nimport { Effect } from \"effect\";\nimport type { FormIssue } from \"$/remote/shared.ts\";\n\nimport type { FormInvalid } from \"./types.ts\";\n\n/**\n * Creates a path-aware proxy for remote form validation failures.\n *\n * @since 2.0.0\n * @param path - Current nested form path.\n * @returns Callable invalid proxy for this path.\n */\nexport function make_invalid_proxy<Input = unknown>(\n path: readonly (string | number)[] = [],\n): FormInvalid<Input> {\n const invalid_at_path = (message: string) =>\n Effect.fail(\n create_form_error([{ message, path: [...path] } satisfies FormIssue]),\n );\n\n return new Proxy(invalid_at_path, {\n get(_target, property) {\n if (typeof property === \"symbol\") {\n return undefined;\n }\n\n return make_invalid_proxy([...path, property]);\n },\n }) as FormInvalid<Input>;\n}\n","import { getRequestEvent as get_native_request_event } from \"$app/server\";\nimport { normalize_remote_helper_error } from \"$/remote/server.ts\";\n\nimport { run_handler_effect, run_live_handler_source } from \"./effects.ts\";\nimport { make_invalid_proxy } from \"./invalid.ts\";\nimport { is_handler } from \"./schema.ts\";\nimport type { RequestEvent } from \"./runtime.ts\";\nimport type {\n EffectLike,\n RemoteFormHandler,\n RemoteHandler,\n RemoteLiveHandler,\n} from \"./types.ts\";\n\nlet running_remote_effect_handlers = 0;\n\n/**\n * Reports whether SER is currently executing user remote handler code.\n *\n * @example\n * ```ts\n * if (is_running_remote_effect_handler()) {\n * return query();\n * }\n * ```\n *\n * @since 2.0.0\n * @returns Whether a remote handler wrapper is currently active.\n * @internal\n */\nexport function is_running_remote_effect_handler(): boolean {\n return running_remote_effect_handlers > 0;\n}\n\n/**\n * Builds the wrapper passed to native query, command, and prerender helpers.\n *\n * @since 2.0.0\n * @param handler - Effect handler or already-built Effect-like value.\n * @param helper_name - Remote helper name for error normalization.\n * @returns Native SvelteKit handler wrapper.\n */\nexport function make_remote_wrapper(\n handler: RemoteHandler<unknown, unknown, unknown, unknown> | EffectLike,\n helper_name: string,\n): (input: unknown) => Promise<unknown> {\n return async (input: unknown) => {\n let event: RequestEvent;\n\n try {\n event = get_native_request_event() as unknown as RequestEvent;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n\n return await run_inside_remote_effect_handler(() => {\n try {\n const result = is_handler(handler) ? handler(input) : handler;\n\n return run_handler_effect(result, event);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n });\n };\n}\n\n/**\n * Builds the wrapper passed to native live query helpers.\n *\n * @since 2.0.0\n * @param handler - Effect-aware live source handler.\n * @param helper_name - Remote helper name for error normalization.\n * @returns Native SvelteKit live query wrapper.\n */\nexport function make_remote_live_wrapper<Input, A>(\n handler: RemoteLiveHandler<Input, A, unknown, unknown>,\n helper_name: string,\n): (input: unknown) => Promise<unknown> {\n return async (input: unknown) => {\n let event: RequestEvent;\n\n try {\n event = get_native_request_event() as unknown as RequestEvent;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n\n return await run_inside_remote_effect_handler(() => {\n try {\n const result = typeof handler === \"function\"\n ? handler(input as Input)\n : handler;\n\n return run_live_handler_source(result, event);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n });\n };\n}\n\n/**\n * Builds the wrapper passed to native form helpers.\n *\n * @since 2.0.0\n * @param handler - Effect-aware form handler.\n * @param helper_name - Remote helper name for error normalization.\n * @returns Native SvelteKit form handler wrapper.\n */\nexport function make_remote_form_wrapper<Input, A>(\n handler: RemoteFormHandler<Input, A, unknown, unknown>,\n helper_name: string,\n): (data: unknown, issue: unknown) => Promise<unknown> {\n return async (data: unknown, issue: unknown) => {\n let event: RequestEvent;\n\n try {\n event = get_native_request_event() as unknown as RequestEvent;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n\n return await run_inside_remote_effect_handler(() => {\n const invalid_proxy = make_invalid_proxy<Input>();\n\n try {\n const result = handler({\n data: data as Input,\n invalid: invalid_proxy,\n issue,\n });\n\n return run_handler_effect(result, event);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n });\n };\n}\n\nasync function run_inside_remote_effect_handler<A>(\n run: () => Promise<A>,\n): Promise<A> {\n running_remote_effect_handlers += 1;\n\n try {\n return await run();\n } finally {\n running_remote_effect_handlers -= 1;\n }\n}\n","import {\n command as native_command,\n form as native_form,\n getRequestEvent as get_native_request_event,\n prerender as native_prerender,\n query as native_query,\n} from \"$app/server\";\nimport { copy_property_descriptors } from \"$/internal/descriptors.ts\";\nimport { normalize_remote_helper_error } from \"$/remote/server.ts\";\nimport type { RemoteFormInput } from \"@sveltejs/kit\";\nimport { Effect, type Schema } from \"effect\";\n\nimport { is_handler, is_unchecked, normalize_validator } from \"./schema.ts\";\nimport {\n is_running_remote_effect_handler,\n make_remote_form_wrapper,\n make_remote_live_wrapper,\n make_remote_wrapper,\n} from \"./wrappers.ts\";\nimport type {\n EffectLike,\n EffectRemoteBatchHandler,\n EffectRemoteCommand,\n EffectRemoteForm,\n EffectRemoteFunction,\n EffectRemoteLiveQuery,\n EffectRemoteLiveQueryFunction,\n EffectRemoteLiveQueryResource,\n EffectRemoteQuery,\n EffectRemoteQueryFunction,\n PrerenderOptions,\n QueryFactory,\n RemoteFormHandler,\n RemoteHandler,\n RemoteLiveHandler,\n SchemaEncodedInput,\n SchemaInput,\n} from \"./types.ts\";\n\ntype FormSchemaEncodedInput<S> = S extends Schema.Top\n ? FormRemoteInput<S[\"Encoded\"]>\n : never;\n\ntype FormRemoteInput<Input> = NormalizeFormEncoded<Input> extends\n RemoteFormInput ? NormalizeFormEncoded<Input>\n : never;\n\ntype FormScalar = string | number | boolean | File;\n\ntype NormalizeFormEncoded<Value> = Value extends FormScalar ? Value\n : Value extends ReadonlyArray<infer Item> ? Array<NormalizeFormEncoded<Item>>\n : Value extends object ? NormalizeFormObject<Value>\n : Value;\n\ntype NormalizeFormObject<Value> = {\n readonly [Key in keyof Value]: Key extends OptionalFormKeys<Value>\n ? NormalizeFormEncoded<Exclude<Value[Key], undefined>>\n : NormalizeFormEncoded<Value[Key]>;\n};\n\ntype OptionalFormKeys<Value> = {\n [Key in keyof Value]-?: Record<PropertyKey, never> extends Pick<Value, Key>\n ? Key\n : never;\n}[keyof Value];\n\ntype NativeQueryLike<Input = unknown> = (input: Input) => unknown;\n\ntype EffectRemoteResource<Output, ErrorType = never> =\n | EffectRemoteLiveQueryResource<Output>\n | EffectRemoteQuery<Output, ErrorType>;\n\nfunction to_effect_query<Input, Output, ErrorType = never>(\n native: NativeQueryLike<Input>,\n): EffectRemoteQueryFunction<Input, Output, ErrorType> {\n const wrapped = ((input: Input) => {\n if (is_current_remote_request()) {\n return (native as (input: Input) => unknown)(input);\n }\n\n const resource = (native as (input: Input) => unknown)(input);\n const effect = Effect.tryPromise({\n try: () => Promise.resolve(resource),\n catch: (error: unknown) => error,\n }) as unknown as EffectRemoteQuery<Output, ErrorType>;\n\n attach_query_resource_methods(resource, effect);\n\n return effect;\n }) as unknown as EffectRemoteQueryFunction<Input, Output, ErrorType>;\n\n copy_property_descriptors(native, wrapped);\n\n return wrapped;\n}\n\nfunction is_current_remote_request(): boolean {\n if (is_running_remote_effect_handler()) {\n return false;\n }\n\n try {\n const event = get_native_request_event() as { isRemoteRequest?: boolean };\n\n return event.isRemoteRequest === true;\n } catch {\n return false;\n }\n}\n\nfunction to_effect_live_query<Input, Output, ErrorType = never>(\n native: NativeQueryLike<Input>,\n): EffectRemoteLiveQueryFunction<Input, Output, ErrorType> {\n const wrapped = ((input: Input) => {\n const effect = Effect.try({\n try: () => {\n const resource = (native as (input: Input) => unknown)(input);\n\n return make_live_resource<Output>(resource);\n },\n catch: (error: unknown) => error,\n }) as unknown as EffectRemoteLiveQuery<Output, ErrorType>;\n\n return effect;\n }) as unknown as EffectRemoteLiveQueryFunction<\n Input,\n Output,\n ErrorType\n >;\n\n copy_property_descriptors(native, wrapped);\n\n return wrapped;\n}\n\ntype NativeRemoteResource<Output> = {\n readonly current?: Output;\n readonly error?: unknown;\n readonly loading?: boolean;\n readonly ready?: boolean;\n};\n\ntype NativeQueryResource<Output> = NativeRemoteResource<Output> & {\n readonly refresh?: () => Promise<void>;\n readonly set?: (value: Output) => void;\n readonly withOverride?: (update: (current: Output) => Output) => unknown;\n};\n\ntype NativeLiveQueryResource<Output> =\n & NativeRemoteResource<Output>\n & Partial<AsyncIterable<Output>>\n & {\n readonly connected?: boolean;\n readonly done?: boolean;\n readonly reconnect?: () => Promise<void>;\n };\n\nfunction is_query_resource<Output>(\n resource: unknown,\n): resource is NativeQueryResource<Output> {\n const resource_type = typeof resource;\n\n return (\n (resource_type === \"object\" && resource !== null) ||\n resource_type === \"function\"\n );\n}\n\nfunction is_live_resource<Output>(\n resource: unknown,\n): resource is NativeLiveQueryResource<Output> {\n const resource_type = typeof resource;\n\n return (\n (resource_type === \"object\" && resource !== null) ||\n resource_type === \"function\"\n );\n}\n\nfunction attach_remote_resource_getters<Output, ErrorType = never>(\n resource: unknown,\n effect: EffectRemoteResource<Output, ErrorType>,\n): void {\n const methods = is_query_resource<Output>(resource) ? resource : undefined;\n const keys = [\"current\", \"error\", \"loading\", \"ready\"] as const;\n\n if (!methods) {\n return;\n }\n\n for (const key of keys) {\n if (!(key in methods)) {\n continue;\n }\n\n Object.defineProperty(effect, key, {\n configurable: true,\n get: () => methods[key],\n });\n }\n}\n\nfunction attach_query_resource_methods<Output, ErrorType = never>(\n resource: unknown,\n effect: EffectRemoteQuery<Output, ErrorType>,\n): void {\n const methods = is_query_resource<Output>(resource) ? resource : undefined;\n const refresh = methods?.refresh;\n const set = methods?.set;\n const with_override = methods?.withOverride;\n\n attach_remote_resource_getters(resource, effect);\n\n if (!methods) {\n return;\n }\n\n if (typeof refresh === \"function\") {\n Object.defineProperty(effect, \"refresh\", {\n configurable: true,\n value: () =>\n Effect.tryPromise({\n try: () => Promise.resolve(refresh.call(resource)),\n catch: (error: unknown) => error,\n }),\n });\n }\n\n if (typeof set === \"function\") {\n Object.defineProperty(effect, \"set\", {\n configurable: true,\n value: (value: Output) => set.call(resource, value),\n });\n }\n\n if (typeof with_override === \"function\") {\n Object.defineProperty(effect, \"withOverride\", {\n configurable: true,\n value: (update: (current: Output) => Output) =>\n with_override.call(resource, update),\n });\n }\n}\n\nfunction attach_live_resource_methods<Output>(\n resource: unknown,\n effect: EffectRemoteLiveQueryResource<Output>,\n): void {\n const methods = is_live_resource<Output>(resource) ? resource : undefined;\n const reconnect = methods?.reconnect;\n const async_iterator = methods?.[Symbol.asyncIterator];\n const keys = [\n \"connected\",\n \"current\",\n \"done\",\n \"error\",\n \"loading\",\n \"ready\",\n ] as const;\n\n if (!methods) {\n return;\n }\n\n for (const key of keys) {\n if (!(key in methods)) {\n continue;\n }\n\n Object.defineProperty(effect, key, {\n configurable: true,\n get: () => methods[key],\n });\n }\n\n if (typeof reconnect === \"function\") {\n Object.defineProperty(effect, \"reconnect\", {\n configurable: true,\n value: () =>\n Effect.tryPromise({\n try: () => Promise.resolve(reconnect.call(resource)),\n catch: (error: unknown) => error,\n }),\n });\n }\n\n if (typeof async_iterator === \"function\") {\n Object.defineProperty(effect, Symbol.asyncIterator, {\n configurable: true,\n value: () => async_iterator.call(resource),\n });\n }\n}\n\nfunction make_live_resource<Output>(\n resource: unknown,\n): EffectRemoteLiveQueryResource<Output> {\n const live_resource = {} as EffectRemoteLiveQueryResource<Output>;\n\n attach_live_resource_methods(resource, live_resource);\n\n return live_resource;\n}\n\n/**\n * Factory for a read-only remote query function.\n *\n * @example\n * ```ts\n * export const getUser = Query(Schema.Struct({ id: Schema.String }), (input) =>\n * Effect.succeed(input.id)\n * );\n * ```\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit query function.\n */\nfunction QueryRoot<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>,\n): EffectRemoteQueryFunction<void, A, E>;\nfunction QueryRoot<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteHandler<Input, A, E, R>,\n): EffectRemoteQueryFunction<Input, A, E>;\nfunction QueryRoot<S extends Schema.Schema<unknown>, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteQueryFunction<SchemaEncodedInput<S>, A, E>;\nfunction QueryRoot(\n validate_or_handler: unknown,\n maybe_handler?: RemoteHandler,\n): unknown {\n try {\n if (maybe_handler) {\n return to_effect_query(native_query(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(maybe_handler, \"Query\") as never,\n ) as ReturnType<typeof native_query>);\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Query('unchecked', handler) requires a handler\",\n );\n }\n\n return to_effect_query(native_query(\n make_remote_wrapper(\n validate_or_handler as RemoteHandler,\n \"Query\",\n ) as never,\n ) as ReturnType<typeof native_query>);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Query\");\n }\n}\n\n/**\n * Factory for a batched read-only remote query function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema or `\"unchecked\"` sentinel.\n * @param maybe_handler - Handler receiving validated inputs as one batch.\n * @returns A SvelteKit batch query function.\n */\nfunction QueryBatch<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: EffectRemoteBatchHandler<Input, A, E, R>,\n): EffectRemoteQueryFunction<Input, A, E>;\nfunction QueryBatch<S extends Schema.Schema<unknown>, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: EffectRemoteBatchHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteQueryFunction<SchemaEncodedInput<S>, A, E>;\nfunction QueryBatch(\n validate_or_handler: unknown,\n maybe_handler?: EffectRemoteBatchHandler,\n): unknown {\n try {\n if (!maybe_handler) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Query.batch requires a handler\",\n );\n }\n\n return to_effect_query(native_query.batch(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(\n maybe_handler as RemoteHandler,\n \"Query.batch\",\n ) as never,\n ) as NativeQueryLike);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Query.batch\");\n }\n}\n\n/**\n * Factory for a live remote query function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg live handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit live query function.\n */\nfunction QueryLive<A, E = never, R = never>(\n validate_or_handler: RemoteLiveHandler<void, A, E, R>,\n): EffectRemoteLiveQueryFunction<void, A, E>;\nfunction QueryLive<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteLiveHandler<Input, A, E, R>,\n): EffectRemoteLiveQueryFunction<Input, A, E>;\nfunction QueryLive<S extends Schema.Schema<unknown>, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteLiveHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteLiveQueryFunction<SchemaEncodedInput<S>, A, E>;\nfunction QueryLive(\n validate_or_handler: unknown,\n maybe_handler?: RemoteLiveHandler,\n): unknown {\n try {\n if (maybe_handler) {\n return to_effect_live_query(native_query.live(\n normalize_validator(validate_or_handler) as never,\n make_remote_live_wrapper(\n maybe_handler,\n \"Query.live\",\n ) as never,\n ) as NativeQueryLike);\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Query.live('unchecked', handler) requires a handler\",\n );\n }\n\n return to_effect_live_query(native_query.live(\n make_remote_live_wrapper(\n validate_or_handler as RemoteLiveHandler,\n \"Query.live\",\n ) as never,\n ) as NativeQueryLike);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Query.live\");\n }\n}\n\n/**\n * Factory for read-only remote query functions.\n *\n * @example\n * ```ts\n * export const getUser = Query(Schema.Struct({ id: Schema.String }), (input) =>\n * Effect.succeed(input.id)\n * );\n *\n * export const getUserBatch = Query.batch(Schema.String, (ids) =>\n * Effect.succeed((id) => ids.includes(id))\n * );\n * ```\n *\n * @since 2.0.0\n */\nexport const Query: QueryFactory = Object.assign(QueryRoot, {\n batch: QueryBatch,\n live: QueryLive,\n});\n\n/**\n * Factory for a write-oriented remote command function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit command function.\n */\nexport function Command<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>,\n): EffectRemoteCommand<void, A, E>;\nexport function Command<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteHandler<Input, A, E, R>,\n): EffectRemoteCommand<Input, A, E>;\nexport function Command<\n S extends Schema.Schema<unknown>,\n A,\n E = never,\n R = never,\n>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteCommand<SchemaEncodedInput<S>, A, E>;\nexport function Command(\n validate_or_handler: unknown,\n maybe_handler?: RemoteHandler,\n): unknown {\n try {\n if (maybe_handler) {\n return native_command(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(maybe_handler, \"Command\") as never,\n );\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Command('unchecked', handler) requires a handler\",\n );\n }\n\n return native_command(\n make_remote_wrapper(\n validate_or_handler as RemoteHandler,\n \"Command\",\n ) as never,\n ) as ReturnType<typeof native_command>;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Command\");\n }\n}\n\n/**\n * Factory for a remote form handler.\n *\n * @example\n * ```ts\n * export const SignIn = Form(signInSchema, ({ data, invalid }) =>\n * Effect.gen(function* () {\n * if (!data.email.includes(\"@\")) {\n * return yield* invalid.email(\"Use an email address.\");\n * }\n *\n * return { email: data.email };\n * })\n * );\n * ```\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit form function.\n */\nexport function Form<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteFormHandler<void, A, E, R>,\n): EffectRemoteForm<void, A, E>;\nexport function Form<Input extends RemoteFormInput, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteFormHandler<Input, A, E, R>,\n): EffectRemoteForm<Input, A, E>;\nexport function Form<S extends Schema.Top, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteFormHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteForm<FormSchemaEncodedInput<S>, A, E>;\nexport function Form(\n validate_or_handler: unknown,\n maybe_handler?: RemoteFormHandler<unknown, unknown, unknown, unknown>,\n): unknown {\n try {\n if (maybe_handler) {\n return native_form(\n normalize_validator(validate_or_handler) as never,\n make_remote_form_wrapper(maybe_handler, \"Form\") as never,\n );\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Form('unchecked', handler) requires a handler\",\n );\n }\n\n const inputless_handler: RemoteFormHandler<void, unknown> = (\n { data, invalid, issue },\n ) => {\n if (is_handler(validate_or_handler)) {\n return validate_or_handler({ data, invalid, issue });\n }\n\n return validate_or_handler as EffectLike;\n };\n\n return native_form(\n make_remote_form_wrapper(inputless_handler, \"Form\") as never,\n ) as unknown as ReturnType<typeof native_form>;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Form\");\n }\n}\n\n/**\n * Factory for a prerenderable remote function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler_or_options - Handler or prerender options.\n * @param maybe_options - Prerender options used with a validator.\n * @returns A SvelteKit prerender function.\n */\nexport function Prerender<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>,\n maybe_options?: PrerenderOptions,\n): EffectRemoteFunction<void, A, E>;\nexport function Prerender<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteHandler<Input, A, E, R>,\n maybe_options?: PrerenderOptions,\n): EffectRemoteFunction<Input, A, E>;\nexport function Prerender<\n S extends Schema.Schema<unknown>,\n A,\n E = never,\n R = never,\n>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>,\n maybe_options?: PrerenderOptions,\n): EffectRemoteFunction<SchemaEncodedInput<S>, A, E>;\nexport function Prerender(\n validate_or_handler: unknown,\n maybe_handler_or_options?: RemoteHandler | PrerenderOptions,\n maybe_options?: PrerenderOptions,\n): unknown {\n try {\n if (is_handler(maybe_handler_or_options)) {\n return native_prerender(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(maybe_handler_or_options, \"Prerender\") as never,\n maybe_options as never,\n );\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Prerender('unchecked', handler) requires a handler\",\n );\n }\n\n return native_prerender(\n make_remote_wrapper(\n validate_or_handler as RemoteHandler,\n \"Prerender\",\n ) as never,\n maybe_handler_or_options as never,\n ) as ReturnType<typeof native_prerender>;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Prerender\");\n }\n}\n","import {\n error as svelte_error,\n redirect as svelte_redirect,\n} from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\n\nconst error_status_codes = {\n ProxyAuthenticationRequired: 407,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n NetworkAuthenticationRequired: 511,\n HttpVersionNotSupported: 505,\n UnprocessableContent: 422,\n UnprocessableEntity: 422,\n InternalServerError: 500,\n FailedDependency: 424,\n PreconditionRequired: 428,\n ServiceUnavailable: 503,\n MisdirectedRequest: 421,\n InsufficientStorage: 507,\n VariantAlsoNegotiates: 506,\n PreconditionFailed: 412,\n MethodNotAllowed: 405,\n GatewayTimeout: 504,\n PaymentRequired: 402,\n UpgradeRequired: 426,\n TooManyRequests: 429,\n LengthRequired: 411,\n NotAcceptable: 406,\n RequestTimeout: 408,\n ContentTooLarge: 413,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n BadRequest: 400,\n Unauthorized: 401,\n Forbidden: 403,\n NotFound: 404,\n Conflict: 409,\n Gone: 410,\n Locked: 423,\n TooEarly: 425,\n NotImplemented: 501,\n BadGateway: 502,\n LoopDetected: 508,\n NotExtended: 510,\n} as const;\n\nconst redirect_status_codes = {\n MovedPermanently: 301,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n MultipleChoices: 300,\n NotModified: 304,\n SwitchProxy: 306,\n SeeOther: 303,\n UseProxy: 305,\n Found: 302,\n} as const;\n\ntype SvelteErrorBody = Parameters<typeof svelte_error>[1];\n\n/**\n * Named HTTP status accepted by the {@link Error} helper.\n *\n * @example\n * ```ts\n * const status: ErrorStatusName = \"NotFound\";\n * ```\n *\n * @since 2.3.0\n */\nexport type ErrorStatusName = keyof typeof error_status_codes;\n\n/**\n * Numeric or named HTTP status accepted by the {@link Error} helper.\n *\n * @example\n * ```ts\n * const status: ErrorStatus = \"InternalServerError\";\n * ```\n *\n * @since 2.3.0\n */\nexport type ErrorStatus = ErrorStatusName | number;\n\n/**\n * Named HTTP status accepted by the {@link Redirect} helper.\n *\n * @example\n * ```ts\n * const status: RedirectStatusName = \"TemporaryRedirect\";\n * ```\n *\n * @since 2.3.0\n */\nexport type RedirectStatusName = keyof typeof redirect_status_codes;\n\n/**\n * Numeric or named HTTP status accepted by the {@link Redirect} helper.\n *\n * @example\n * ```ts\n * const status: RedirectStatus = \"SeeOther\";\n * ```\n *\n * @since 2.3.0\n */\nexport type RedirectStatus = RedirectStatusName | number;\n\n/**\n * Callable shape for the exported {@link Error} helper.\n *\n * @example\n * ```ts\n * const fail_not_found: ErrorEffectFactory = Error;\n * ```\n *\n * @since 2.3.0\n */\nexport interface ErrorEffectFactory {\n /**\n * Creates an Effect that throws SvelteKit's HTTP error control-flow value.\n *\n * @example\n * ```ts\n * return yield* Error(\"NotFound\", \"Post not found\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric HTTP status or PascalCase status name to pass to\n * SvelteKit's `error` helper.\n * @param body - Optional SvelteKit error body or message forwarded unchanged\n * to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\n (\n status: ErrorStatus,\n body?: SvelteErrorBody,\n ): Effect.Effect<never, never, never>;\n}\n\n/**\n * Callable shape for the exported {@link Redirect} helper.\n *\n * @example\n * ```ts\n * const redirect_after_save: RedirectEffectFactory = Redirect;\n * ```\n *\n * @since 2.3.0\n */\nexport interface RedirectEffectFactory {\n /**\n * Creates an Effect that throws SvelteKit's redirect control-flow value.\n *\n * @example\n * ```ts\n * return yield* Redirect(\"SeeOther\", \"/posts\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric redirect status or PascalCase status name to pass\n * to SvelteKit's `redirect` helper.\n * @param location - Target URL forwarded unchanged to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\n (\n status: RedirectStatus,\n location: string | URL,\n ): Effect.Effect<never, never, never>;\n}\n\n/**\n * Creates an Effect that raises SvelteKit's HTTP error control flow.\n *\n * @example\n * ```ts\n * return yield* Error(\"NotFound\", \"Post not found\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric HTTP status or PascalCase status name to pass to\n * SvelteKit's `error` helper.\n * @param body - Optional SvelteKit error body or message forwarded unchanged\n * to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\nexport const Error: ErrorEffectFactory = (status, body) => {\n const resolved_status = resolve_error_status(status);\n\n return Effect.sync(() => {\n svelte_error(resolved_status, body);\n });\n};\n\n/**\n * Creates an Effect that raises SvelteKit's redirect control flow.\n *\n * @example\n * ```ts\n * return yield* Redirect(\"SeeOther\", \"/posts\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric redirect status or PascalCase status name to pass to\n * SvelteKit's `redirect` helper.\n * @param location - Target URL forwarded unchanged to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\nexport const Redirect: RedirectEffectFactory = (status, location) => {\n const resolved_status = resolve_redirect_status(status);\n\n return Effect.sync(() => {\n svelte_redirect(resolved_status, location);\n });\n};\n\nfunction resolve_error_status(status: ErrorStatus): number {\n if (typeof status === \"number\") {\n return status;\n }\n\n return error_status_codes[status];\n}\n\nfunction resolve_redirect_status(status: RedirectStatus): number {\n if (typeof status === \"number\") {\n return status;\n }\n\n return redirect_status_codes[status];\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"server.js","names":["get_native_request_event","get_native_request_event","native_query","native_command","native_form","native_prerender","Error"],"sources":["../../modules/svelte-effect-runtime/src/server/schema.ts","../../modules/svelte-effect-runtime/src/server/runtime.ts","../../modules/svelte-effect-runtime/src/server/effects.ts","../../modules/svelte-effect-runtime/src/server/invalid.ts","../../modules/svelte-effect-runtime/src/server/wrappers.ts","../../modules/svelte-effect-runtime/src/server/factories.ts","../../modules/svelte-effect-runtime/src/server/control-flow.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\nimport type { RemoteHandler, StandardSchema } from \"./types.ts\";\n\n/**\n * Checks whether a value is the string sentinel for unchecked remotes.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is `\"unchecked\"`.\n */\nexport function is_unchecked(value: unknown): value is \"unchecked\" {\n return value === \"unchecked\";\n}\n\n/**\n * Checks whether a value is a remote handler function.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is callable as a handler.\n */\nexport function is_handler(\n value: unknown,\n): value is RemoteHandler<unknown, unknown, unknown, unknown> {\n return typeof value === \"function\";\n}\n\n/**\n * Checks whether a value implements the Standard Schema contract.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is a Standard Schema.\n */\nexport function is_standard_schema(value: unknown): value is StandardSchema {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"~standard\" in value\n );\n}\n\n/**\n * Checks whether a value looks like an Effect Schema.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value should be converted to Standard Schema.\n */\nexport function is_effect_schema(\n value: unknown,\n): value is Schema.Schema<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"ast\" in value &&\n \"make\" in value\n );\n}\n\n/**\n * Converts Effect Schema inputs to Standard Schema for SvelteKit.\n *\n * @since 2.0.0\n * @param value - Schema or handler input.\n * @returns Original value or Standard Schema view of an Effect Schema.\n */\nexport function normalize_validator(value: unknown): unknown {\n if (is_standard_schema(value) || !is_effect_schema(value)) {\n return value;\n }\n\n return Schema.toStandardSchemaV1(value as never);\n}\n","import type { RequestEvent as SvelteKitRequestEvent } from \"@sveltejs/kit\";\nimport { Context, Layer, ManagedRuntime } from \"effect\";\n\n/**\n * Subset of SvelteKit's `RequestEvent` that remote handlers typically access.\n *\n * @since 2.0.0\n */\nexport interface RequestEvent extends\n Pick<\n SvelteKitRequestEvent,\n | \"cookies\"\n | \"getClientAddress\"\n | \"locals\"\n | \"params\"\n | \"platform\"\n | \"request\"\n | \"route\"\n | \"url\"\n > {}\n\n/**\n * SvelteKit's `RequestEvent` exposed as an Effect {@link Context.Tag}.\n *\n * @example\n * ```ts\n * const event = yield* RequestEvent;\n * ```\n *\n * @since 2.0.0\n */\nexport const RequestEvent: Context.Reference<RequestEvent> = Context\n .Reference<RequestEvent>(\"@ser/RequestEvent\", {\n defaultValue: () => {\n throw new Error(\n \"[REQUEST_EVENT_UNAVAILABLE]: RequestEvent is only available during a remote call\",\n );\n },\n });\n\n/**\n * Builder for the server-side Effect runtime.\n *\n * @example\n * ```ts\n * ServerRuntime.make(Db.Live);\n * ```\n *\n * @since 2.0.0\n */\nexport class ServerRuntime {\n /**\n * Build and cache the server-side `ManagedRuntime`.\n *\n * @since 2.0.0\n * @param layer - Optional Effect layer to provide to the runtime.\n * @returns The configured ManagedRuntime.\n */\n static make<R = never>(\n layer?: Layer.Layer<R>,\n ): ManagedRuntime.ManagedRuntime<R, never> {\n const runtime = ManagedRuntime.make(\n layer ?? (Layer.empty as unknown as Layer.Layer<R>),\n );\n\n current_server_runtime = runtime as ManagedRuntime.ManagedRuntime<\n unknown,\n never\n >;\n\n return runtime;\n }\n}\n\nlet current_server_runtime:\n | ManagedRuntime.ManagedRuntime<unknown, never>\n | undefined;\n\n/**\n * Returns the active server runtime, creating a default one if needed.\n *\n * @example\n * ```ts\n * const runtime = get_server_runtime_or_throw();\n * ```\n *\n * @since 2.0.0\n * @returns The current ManagedRuntime instance.\n */\nexport function get_server_runtime_or_throw(): ManagedRuntime.ManagedRuntime<\n unknown,\n never\n> {\n if (!current_server_runtime) {\n current_server_runtime = ManagedRuntime.make(\n Layer.empty,\n ) as ManagedRuntime.ManagedRuntime<unknown, never>;\n }\n\n return current_server_runtime;\n}\n","import { run_remote_effect } from \"$/remote/server.ts\";\nimport { error as svelte_error, invalid } from \"@sveltejs/kit\";\nimport { Effect, Stream } from \"effect\";\n\nimport { get_server_runtime_or_throw, RequestEvent } from \"./runtime.ts\";\nimport type { RequestEvent as RequestEventShape } from \"./runtime.ts\";\nimport type { EffectLike, EffectRemoteLiveSource } from \"./types.ts\";\n\ntype ResolvedLiveSource<A> =\n | AsyncIterable<A>\n | AsyncIterator<A>\n | Iterable<A>\n | Iterator<A>;\n\ntype LiveHandlerResult<A> =\n | EffectLike<EffectRemoteLiveSource<A>, unknown, unknown>\n | EffectRemoteLiveSource<A>;\n\n/**\n * Checks whether a value is an Effect generator return object.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value should be wrapped with `Effect.gen`.\n */\nexport function is_generator_result<A>(\n value: unknown,\n): value is Effect.gen.Return<A, unknown, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n typeof (value as { next?: unknown }).next === \"function\"\n );\n}\n\n/**\n * Normalizes an Effect-like handler return value into an Effect.\n *\n * @since 2.0.0\n * @param value - Effect or generator return value.\n * @returns Normalized Effect.\n */\nexport function to_effect<A, E, R>(\n value: EffectLike<A, E, R>,\n): Effect.Effect<A, E, R> {\n if (is_generator_result<A>(value)) {\n return Effect.gen(() => value) as Effect.Effect<A, E, R>;\n }\n\n return value;\n}\n\n/**\n * Checks whether a value is a live query source SvelteKit can consume.\n *\n * @since 2.0.0\n * @param value - Value to inspect.\n * @returns Whether the value is an Effect Stream or native iterable source.\n */\nexport function is_live_source<A>(\n value: unknown,\n): value is EffectRemoteLiveSource<A> {\n if (Stream.isStream(value)) {\n return true;\n }\n\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const source = value as {\n readonly next?: unknown;\n readonly [Symbol.asyncIterator]?: unknown;\n readonly [Symbol.iterator]?: unknown;\n };\n\n return (\n typeof source.next === \"function\" ||\n typeof source[Symbol.asyncIterator] === \"function\" ||\n typeof source[Symbol.iterator] === \"function\"\n );\n}\n\n/**\n * Runs and normalizes a live query handler result with request services\n * available to Effect Streams.\n *\n * @since 2.0.0\n * @param value - Live query source or Effect that resolves to one.\n * @param event - SvelteKit request event for this remote call.\n * @returns Promise resolving with a source SvelteKit can stream.\n */\nexport function run_live_handler_source<A>(\n value: LiveHandlerResult<A>,\n event: RequestEventShape,\n): Promise<ResolvedLiveSource<A>> {\n const runtime = get_server_runtime_or_throw();\n const effect = Effect.provideService(\n to_live_source_effect(value),\n RequestEvent,\n event,\n ) as Effect.Effect<ResolvedLiveSource<A>, unknown, unknown>;\n\n return run_remote_effect(\n effect,\n runtime,\n svelte_invalid,\n svelte_remote_error,\n );\n}\n\nfunction to_live_source_effect<A>(\n value: LiveHandlerResult<A>,\n): Effect.Effect<ResolvedLiveSource<A>, unknown, unknown> {\n if (Stream.isStream(value)) {\n return Stream.toAsyncIterableEffect(\n value as Stream.Stream<A, unknown, unknown>,\n ) as Effect.Effect<ResolvedLiveSource<A>, unknown, unknown>;\n }\n\n if (is_native_live_source<A>(value)) {\n return Effect.succeed(value);\n }\n\n if (!Effect.isEffect(value)) {\n return Effect.fail(\n new Error(\n \"[INVALID_LIVE_QUERY_SOURCE]: Query.live handler must return an Effect Stream, Iterable, or AsyncIterable\",\n ),\n );\n }\n\n return Effect.flatMap(\n value as Effect.Effect<EffectRemoteLiveSource<A>, unknown, unknown>,\n to_live_source_effect,\n );\n}\n\nfunction is_native_live_source<A>(\n value: unknown,\n): value is ResolvedLiveSource<A> {\n return is_live_source<A>(value) && !Stream.isStream(value);\n}\n\n/**\n * Runs a remote handler Effect with the current request event provided.\n *\n * @since 2.0.0\n * @param value - Handler return value.\n * @param event - SvelteKit request event for this remote call.\n * @returns Promise resolving with the handler output.\n */\nexport function run_handler_effect<A>(\n value: EffectLike<A, unknown, unknown>,\n event: RequestEventShape,\n): Promise<A> {\n const runtime = get_server_runtime_or_throw();\n const effect = Effect.provideService(\n to_effect(value),\n RequestEvent,\n event,\n ) as Effect.Effect<A, unknown, unknown>;\n\n return run_remote_effect(\n effect,\n runtime,\n svelte_invalid,\n svelte_remote_error,\n );\n}\n\nconst svelte_invalid = (_status: number, body: unknown): never => {\n const issues = typeof body === \"object\" && body !== null &&\n Array.isArray((body as { issues?: unknown }).issues)\n ? (body as { issues: unknown[] }).issues\n : [String(body)];\n\n invalid(...(issues as never[]));\n};\n\nconst svelte_remote_error = (status: number, body: unknown): never => {\n svelte_error(status as never, body as never);\n};\n","import { create_form_error } from \"$/remote/shared.ts\";\nimport { Effect } from \"effect\";\nimport type { FormIssue } from \"$/remote/shared.ts\";\n\nimport type { FormInvalid } from \"./types.ts\";\n\n/**\n * Creates a path-aware proxy for remote form validation failures.\n *\n * @since 2.0.0\n * @param path - Current nested form path.\n * @returns Callable invalid proxy for this path.\n */\nexport function make_invalid_proxy<Input = unknown>(\n path: readonly (string | number)[] = [],\n): FormInvalid<Input> {\n const invalid_at_path = (message: string) =>\n Effect.fail(\n create_form_error([{ message, path: [...path] } satisfies FormIssue]),\n );\n\n return new Proxy(invalid_at_path, {\n get(_target, property) {\n if (typeof property === \"symbol\") {\n return undefined;\n }\n\n return make_invalid_proxy([...path, property]);\n },\n }) as FormInvalid<Input>;\n}\n","import { getRequestEvent as get_native_request_event } from \"$app/server\";\nimport { normalize_remote_helper_error } from \"$/remote/server.ts\";\n\nimport { run_handler_effect, run_live_handler_source } from \"./effects.ts\";\nimport { make_invalid_proxy } from \"./invalid.ts\";\nimport { is_handler } from \"./schema.ts\";\nimport type { RequestEvent } from \"./runtime.ts\";\nimport type {\n EffectLike,\n RemoteFormHandler,\n RemoteHandler,\n RemoteLiveHandler,\n} from \"./types.ts\";\n\nlet running_remote_effect_handlers = 0;\n\n/**\n * Reports whether SER is currently executing user remote handler code.\n *\n * @example\n * ```ts\n * if (is_running_remote_effect_handler()) {\n * return query();\n * }\n * ```\n *\n * @since 2.0.0\n * @returns Whether a remote handler wrapper is currently active.\n * @internal\n */\nexport function is_running_remote_effect_handler(): boolean {\n return running_remote_effect_handlers > 0;\n}\n\n/**\n * Builds the wrapper passed to native query, command, and prerender helpers.\n *\n * @since 2.0.0\n * @param handler - Effect handler or already-built Effect-like value.\n * @param helper_name - Remote helper name for error normalization.\n * @returns Native SvelteKit handler wrapper.\n */\nexport function make_remote_wrapper(\n handler: RemoteHandler<unknown, unknown, unknown, unknown> | EffectLike,\n helper_name: string,\n): (input: unknown) => Promise<unknown> {\n return async (input: unknown) => {\n let event: RequestEvent;\n\n try {\n event = get_native_request_event() as unknown as RequestEvent;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n\n return await run_inside_remote_effect_handler(() => {\n try {\n const result = is_handler(handler) ? handler(input) : handler;\n\n return run_handler_effect(result, event);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n });\n };\n}\n\n/**\n * Builds the wrapper passed to native live query helpers.\n *\n * @since 2.0.0\n * @param handler - Effect-aware live source handler.\n * @param helper_name - Remote helper name for error normalization.\n * @returns Native SvelteKit live query wrapper.\n */\nexport function make_remote_live_wrapper<Input, A>(\n handler: RemoteLiveHandler<Input, A, unknown, unknown>,\n helper_name: string,\n): (input: unknown) => Promise<unknown> {\n return async (input: unknown) => {\n let event: RequestEvent;\n\n try {\n event = get_native_request_event() as unknown as RequestEvent;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n\n return await run_inside_remote_effect_handler(() => {\n try {\n const result = typeof handler === \"function\"\n ? handler(input as Input)\n : handler;\n\n return run_live_handler_source(result, event);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n });\n };\n}\n\n/**\n * Builds the wrapper passed to native form helpers.\n *\n * @since 2.0.0\n * @param handler - Effect-aware form handler.\n * @param helper_name - Remote helper name for error normalization.\n * @returns Native SvelteKit form handler wrapper.\n */\nexport function make_remote_form_wrapper<Input, A>(\n handler: RemoteFormHandler<Input, A, unknown, unknown>,\n helper_name: string,\n): (data: unknown, issue: unknown) => Promise<unknown> {\n return async (data: unknown, issue: unknown) => {\n let event: RequestEvent;\n\n try {\n event = get_native_request_event() as unknown as RequestEvent;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n\n return await run_inside_remote_effect_handler(() => {\n const invalid_proxy = make_invalid_proxy<Input>();\n\n try {\n const result = handler({\n data: data as Input,\n invalid: invalid_proxy,\n issue,\n });\n\n return run_handler_effect(result, event);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, helper_name);\n }\n });\n };\n}\n\nasync function run_inside_remote_effect_handler<A>(\n run: () => Promise<A>,\n): Promise<A> {\n running_remote_effect_handlers += 1;\n\n try {\n return await run();\n } finally {\n running_remote_effect_handlers -= 1;\n }\n}\n","import {\n command as native_command,\n form as native_form,\n getRequestEvent as get_native_request_event,\n prerender as native_prerender,\n query as native_query,\n} from \"$app/server\";\nimport { copy_property_descriptors } from \"$/internal/descriptors.ts\";\nimport { normalize_remote_helper_error } from \"$/remote/server.ts\";\nimport type { RemoteFormInput } from \"@sveltejs/kit\";\nimport { Effect, type Schema } from \"effect\";\n\nimport { is_handler, is_unchecked, normalize_validator } from \"./schema.ts\";\nimport {\n is_running_remote_effect_handler,\n make_remote_form_wrapper,\n make_remote_live_wrapper,\n make_remote_wrapper,\n} from \"./wrappers.ts\";\nimport type {\n EffectLike,\n EffectRemoteBatchHandler,\n EffectRemoteCommand,\n EffectRemoteForm,\n EffectRemoteFunction,\n EffectRemoteLiveQuery,\n EffectRemoteLiveQueryFunction,\n EffectRemoteLiveQueryResource,\n EffectRemoteQuery,\n EffectRemoteQueryFunction,\n PrerenderOptions,\n QueryFactory,\n RemoteFormHandler,\n RemoteHandler,\n RemoteLiveHandler,\n SchemaEncodedInput,\n SchemaInput,\n StandardSchema,\n StandardSchemaInput,\n StandardSchemaOutput,\n} from \"./types.ts\";\n\ntype FormSchemaEncodedInput<S> = S extends Schema.Top\n ? FormRemoteInput<S[\"Encoded\"]>\n : never;\n\ntype FormRemoteInput<Input> = NormalizeFormEncoded<Input> extends\n RemoteFormInput ? NormalizeFormEncoded<Input>\n : never;\n\ntype FormStandardSchemaInput<S> = StandardSchemaInput<S> extends RemoteFormInput\n ? StandardSchemaInput<S>\n : RemoteFormInput;\n\ntype FormScalar = string | number | boolean | File;\n\ntype NormalizeFormEncoded<Value> = Value extends FormScalar ? Value\n : Value extends ReadonlyArray<infer Item> ? Array<NormalizeFormEncoded<Item>>\n : Value extends object ? NormalizeFormObject<Value>\n : Value;\n\ntype NormalizeFormObject<Value> = {\n readonly [Key in keyof Value]: Key extends OptionalFormKeys<Value>\n ? NormalizeFormEncoded<Exclude<Value[Key], undefined>>\n : NormalizeFormEncoded<Value[Key]>;\n};\n\ntype OptionalFormKeys<Value> = {\n [Key in keyof Value]-?: Record<PropertyKey, never> extends Pick<Value, Key>\n ? Key\n : never;\n}[keyof Value];\n\ntype NativeQueryLike<Input = unknown> = (input: Input) => unknown;\n\ntype EffectRemoteResource<Output, ErrorType = never> =\n | EffectRemoteLiveQueryResource<Output>\n | EffectRemoteQuery<Output, ErrorType>;\n\nfunction to_effect_query<Input, Output, ErrorType = never>(\n native: NativeQueryLike<Input>,\n): EffectRemoteQueryFunction<Input, Output, ErrorType> {\n const wrapped = ((input: Input) => {\n if (is_current_remote_request()) {\n return (native as (input: Input) => unknown)(input);\n }\n\n const resource = (native as (input: Input) => unknown)(input);\n const effect = Effect.tryPromise({\n try: () => Promise.resolve(resource),\n catch: (error: unknown) => error,\n }) as unknown as EffectRemoteQuery<Output, ErrorType>;\n\n attach_query_resource_methods(resource, effect);\n\n return effect;\n }) as unknown as EffectRemoteQueryFunction<Input, Output, ErrorType>;\n\n copy_property_descriptors(native, wrapped);\n\n return wrapped;\n}\n\nfunction is_current_remote_request(): boolean {\n if (is_running_remote_effect_handler()) {\n return false;\n }\n\n try {\n const event = get_native_request_event() as { isRemoteRequest?: boolean };\n\n return event.isRemoteRequest === true;\n } catch {\n return false;\n }\n}\n\nfunction to_effect_live_query<Input, Output, ErrorType = never>(\n native: NativeQueryLike<Input>,\n): EffectRemoteLiveQueryFunction<Input, Output, ErrorType> {\n const wrapped = ((input: Input) => {\n const effect = Effect.try({\n try: () => {\n const resource = (native as (input: Input) => unknown)(input);\n\n return make_live_resource<Output>(resource);\n },\n catch: (error: unknown) => error,\n }) as unknown as EffectRemoteLiveQuery<Output, ErrorType>;\n\n return effect;\n }) as unknown as EffectRemoteLiveQueryFunction<\n Input,\n Output,\n ErrorType\n >;\n\n copy_property_descriptors(native, wrapped);\n\n return wrapped;\n}\n\ntype NativeRemoteResource<Output> = {\n readonly current?: Output;\n readonly error?: unknown;\n readonly loading?: boolean;\n readonly ready?: boolean;\n};\n\ntype NativeQueryResource<Output> = NativeRemoteResource<Output> & {\n readonly refresh?: () => Promise<void>;\n readonly set?: (value: Output) => void;\n readonly withOverride?: (update: (current: Output) => Output) => unknown;\n};\n\ntype NativeLiveQueryResource<Output> =\n & NativeRemoteResource<Output>\n & Partial<AsyncIterable<Output>>\n & {\n readonly connected?: boolean;\n readonly done?: boolean;\n readonly reconnect?: () => Promise<void>;\n };\n\nfunction is_query_resource<Output>(\n resource: unknown,\n): resource is NativeQueryResource<Output> {\n const resource_type = typeof resource;\n\n return (\n (resource_type === \"object\" && resource !== null) ||\n resource_type === \"function\"\n );\n}\n\nfunction is_live_resource<Output>(\n resource: unknown,\n): resource is NativeLiveQueryResource<Output> {\n const resource_type = typeof resource;\n\n return (\n (resource_type === \"object\" && resource !== null) ||\n resource_type === \"function\"\n );\n}\n\nfunction attach_remote_resource_getters<Output, ErrorType = never>(\n resource: unknown,\n effect: EffectRemoteResource<Output, ErrorType>,\n): void {\n const methods = is_query_resource<Output>(resource) ? resource : undefined;\n const keys = [\"current\", \"error\", \"loading\", \"ready\"] as const;\n\n if (!methods) {\n return;\n }\n\n for (const key of keys) {\n if (!(key in methods)) {\n continue;\n }\n\n Object.defineProperty(effect, key, {\n configurable: true,\n get: () => methods[key],\n });\n }\n}\n\nfunction attach_query_resource_methods<Output, ErrorType = never>(\n resource: unknown,\n effect: EffectRemoteQuery<Output, ErrorType>,\n): void {\n const methods = is_query_resource<Output>(resource) ? resource : undefined;\n const refresh = methods?.refresh;\n const set = methods?.set;\n const with_override = methods?.withOverride;\n\n attach_remote_resource_getters(resource, effect);\n\n if (!methods) {\n return;\n }\n\n if (typeof refresh === \"function\") {\n Object.defineProperty(effect, \"refresh\", {\n configurable: true,\n value: () =>\n Effect.tryPromise({\n try: () => Promise.resolve(refresh.call(resource)),\n catch: (error: unknown) => error,\n }),\n });\n }\n\n if (typeof set === \"function\") {\n Object.defineProperty(effect, \"set\", {\n configurable: true,\n value: (value: Output) => set.call(resource, value),\n });\n }\n\n if (typeof with_override === \"function\") {\n Object.defineProperty(effect, \"withOverride\", {\n configurable: true,\n value: (update: (current: Output) => Output) =>\n with_override.call(resource, update),\n });\n }\n}\n\nfunction attach_live_resource_methods<Output>(\n resource: unknown,\n effect: EffectRemoteLiveQueryResource<Output>,\n): void {\n const methods = is_live_resource<Output>(resource) ? resource : undefined;\n const reconnect = methods?.reconnect;\n const async_iterator = methods?.[Symbol.asyncIterator];\n const keys = [\n \"connected\",\n \"current\",\n \"done\",\n \"error\",\n \"loading\",\n \"ready\",\n ] as const;\n\n if (!methods) {\n return;\n }\n\n for (const key of keys) {\n if (!(key in methods)) {\n continue;\n }\n\n Object.defineProperty(effect, key, {\n configurable: true,\n get: () => methods[key],\n });\n }\n\n if (typeof reconnect === \"function\") {\n Object.defineProperty(effect, \"reconnect\", {\n configurable: true,\n value: () =>\n Effect.tryPromise({\n try: () => Promise.resolve(reconnect.call(resource)),\n catch: (error: unknown) => error,\n }),\n });\n }\n\n if (typeof async_iterator === \"function\") {\n Object.defineProperty(effect, Symbol.asyncIterator, {\n configurable: true,\n value: () => async_iterator.call(resource),\n });\n }\n}\n\nfunction make_live_resource<Output>(\n resource: unknown,\n): EffectRemoteLiveQueryResource<Output> {\n const live_resource = {} as EffectRemoteLiveQueryResource<Output>;\n\n attach_live_resource_methods(resource, live_resource);\n\n return live_resource;\n}\n\n/**\n * Factory for a read-only remote query function.\n *\n * @example\n * ```ts\n * export const getUser = Query(Schema.Struct({ id: Schema.String }), (input) =>\n * Effect.succeed(input.id)\n * );\n * ```\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit query function.\n */\nfunction QueryRoot<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>,\n): EffectRemoteQueryFunction<void, A, E>;\nfunction QueryRoot<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteHandler<Input, A, E, R>,\n): EffectRemoteQueryFunction<Input, A, E>;\nfunction QueryRoot<S extends Schema.Schema<unknown>, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteQueryFunction<SchemaEncodedInput<S>, A, E>;\nfunction QueryRoot<S extends StandardSchema, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>,\n): EffectRemoteQueryFunction<StandardSchemaInput<S>, A, E>;\nfunction QueryRoot(\n validate_or_handler: unknown,\n maybe_handler?: unknown,\n): unknown {\n try {\n if (maybe_handler) {\n return to_effect_query(native_query(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(maybe_handler as RemoteHandler, \"Query\") as never,\n ) as ReturnType<typeof native_query>);\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Query('unchecked', handler) requires a handler\",\n );\n }\n\n return to_effect_query(native_query(\n make_remote_wrapper(\n validate_or_handler as RemoteHandler,\n \"Query\",\n ) as never,\n ) as ReturnType<typeof native_query>);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Query\");\n }\n}\n\n/**\n * Factory for a batched read-only remote query function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema or `\"unchecked\"` sentinel.\n * @param maybe_handler - Handler receiving validated inputs as one batch.\n * @returns A SvelteKit batch query function.\n */\nfunction QueryBatch<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: EffectRemoteBatchHandler<Input, A, E, R>,\n): EffectRemoteQueryFunction<Input, A, E>;\nfunction QueryBatch<S extends Schema.Schema<unknown>, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: EffectRemoteBatchHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteQueryFunction<SchemaEncodedInput<S>, A, E>;\nfunction QueryBatch<S extends StandardSchema, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: EffectRemoteBatchHandler<StandardSchemaOutput<S>, A, E, R>,\n): EffectRemoteQueryFunction<StandardSchemaInput<S>, A, E>;\nfunction QueryBatch(\n validate_or_handler: unknown,\n maybe_handler?: unknown,\n): unknown {\n try {\n if (!maybe_handler) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Query.batch requires a handler\",\n );\n }\n\n return to_effect_query(native_query.batch(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(\n maybe_handler as RemoteHandler,\n \"Query.batch\",\n ) as never,\n ) as NativeQueryLike);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Query.batch\");\n }\n}\n\n/**\n * Factory for a live remote query function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg live handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit live query function.\n */\nfunction QueryLive<A, E = never, R = never>(\n validate_or_handler: RemoteLiveHandler<void, A, E, R>,\n): EffectRemoteLiveQueryFunction<void, A, E>;\nfunction QueryLive<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteLiveHandler<Input, A, E, R>,\n): EffectRemoteLiveQueryFunction<Input, A, E>;\nfunction QueryLive<S extends Schema.Schema<unknown>, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteLiveHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteLiveQueryFunction<SchemaEncodedInput<S>, A, E>;\nfunction QueryLive<S extends StandardSchema, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteLiveHandler<StandardSchemaOutput<S>, A, E, R>,\n): EffectRemoteLiveQueryFunction<StandardSchemaInput<S>, A, E>;\nfunction QueryLive(\n validate_or_handler: unknown,\n maybe_handler?: unknown,\n): unknown {\n try {\n if (maybe_handler) {\n return to_effect_live_query(native_query.live(\n normalize_validator(validate_or_handler) as never,\n make_remote_live_wrapper(\n maybe_handler as RemoteLiveHandler,\n \"Query.live\",\n ) as never,\n ) as NativeQueryLike);\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Query.live('unchecked', handler) requires a handler\",\n );\n }\n\n return to_effect_live_query(native_query.live(\n make_remote_live_wrapper(\n validate_or_handler as RemoteLiveHandler,\n \"Query.live\",\n ) as never,\n ) as NativeQueryLike);\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Query.live\");\n }\n}\n\n/**\n * Factory for read-only remote query functions.\n *\n * @example\n * ```ts\n * export const getUser = Query(Schema.Struct({ id: Schema.String }), (input) =>\n * Effect.succeed(input.id)\n * );\n *\n * export const getUserBatch = Query.batch(Schema.String, (ids) =>\n * Effect.succeed((id) => ids.includes(id))\n * );\n * ```\n *\n * @since 2.0.0\n */\nexport const Query: QueryFactory = Object.assign(QueryRoot, {\n batch: QueryBatch,\n live: QueryLive,\n});\n\n/**\n * Factory for a write-oriented remote command function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit command function.\n */\nexport function Command<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>,\n): EffectRemoteCommand<void, A, E>;\nexport function Command<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteHandler<Input, A, E, R>,\n): EffectRemoteCommand<Input, A, E>;\nexport function Command<\n S extends Schema.Schema<unknown>,\n A,\n E = never,\n R = never,\n>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteCommand<SchemaEncodedInput<S>, A, E>;\nexport function Command<S extends StandardSchema, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>,\n): EffectRemoteCommand<StandardSchemaInput<S>, A, E>;\nexport function Command(\n validate_or_handler: unknown,\n maybe_handler?: unknown,\n): unknown {\n try {\n if (maybe_handler) {\n return native_command(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(maybe_handler as RemoteHandler, \"Command\") as never,\n );\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Command('unchecked', handler) requires a handler\",\n );\n }\n\n return native_command(\n make_remote_wrapper(\n validate_or_handler as RemoteHandler,\n \"Command\",\n ) as never,\n ) as ReturnType<typeof native_command>;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Command\");\n }\n}\n\n/**\n * Factory for a remote form handler.\n *\n * @example\n * ```ts\n * export const SignIn = Form(signInSchema, ({ data, invalid }) =>\n * Effect.gen(function* () {\n * if (!data.email.includes(\"@\")) {\n * return yield* invalid.email(\"Use an email address.\");\n * }\n *\n * return { email: data.email };\n * })\n * );\n * ```\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler - Handler used when a validator is supplied.\n * @returns A SvelteKit form function.\n */\nexport function Form<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteFormHandler<void, A, E, R>,\n): EffectRemoteForm<void, A, E>;\nexport function Form<Input extends RemoteFormInput, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteFormHandler<Input, A, E, R>,\n): EffectRemoteForm<Input, A, E>;\nexport function Form<S extends Schema.Top, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteFormHandler<SchemaInput<S>, A, E, R>,\n): EffectRemoteForm<FormSchemaEncodedInput<S>, A, E>;\nexport function Form<S extends StandardSchema, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteFormHandler<StandardSchemaOutput<S>, A, E, R>,\n): EffectRemoteForm<FormStandardSchemaInput<S>, A, E>;\nexport function Form(\n validate_or_handler: unknown,\n maybe_handler?: unknown,\n): unknown {\n try {\n if (maybe_handler) {\n return native_form(\n normalize_validator(validate_or_handler) as never,\n make_remote_form_wrapper(\n maybe_handler as RemoteFormHandler,\n \"Form\",\n ) as never,\n );\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Form('unchecked', handler) requires a handler\",\n );\n }\n\n const inputless_handler: RemoteFormHandler<void, unknown> = (\n { data, invalid, issue },\n ) => {\n if (is_handler(validate_or_handler)) {\n return validate_or_handler({ data, invalid, issue });\n }\n\n return validate_or_handler as EffectLike;\n };\n\n return native_form(\n make_remote_form_wrapper(inputless_handler, \"Form\") as never,\n ) as unknown as ReturnType<typeof native_form>;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Form\");\n }\n}\n\n/**\n * Factory for a prerenderable remote function.\n *\n * @since 2.0.0\n * @param validate_or_handler - A schema, `\"unchecked\"`, or no-arg handler.\n * @param maybe_handler_or_options - Handler or prerender options.\n * @param maybe_options - Prerender options used with a validator.\n * @returns A SvelteKit prerender function.\n */\nexport function Prerender<A, E = never, R = never>(\n validate_or_handler: EffectLike<A, E, R> | RemoteHandler<void, A, E, R>,\n maybe_options?: PrerenderOptions,\n): EffectRemoteFunction<void, A, E>;\nexport function Prerender<Input, A, E = never, R = never>(\n validate_or_handler: \"unchecked\",\n maybe_handler: RemoteHandler<Input, A, E, R>,\n maybe_options?: PrerenderOptions,\n): EffectRemoteFunction<Input, A, E>;\nexport function Prerender<\n S extends Schema.Schema<unknown>,\n A,\n E = never,\n R = never,\n>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<SchemaInput<S>, A, E, R>,\n maybe_options?: PrerenderOptions,\n): EffectRemoteFunction<SchemaEncodedInput<S>, A, E>;\nexport function Prerender<S extends StandardSchema, A, E = never, R = never>(\n validate_or_handler: S,\n maybe_handler: RemoteHandler<StandardSchemaOutput<S>, A, E, R>,\n maybe_options?: PrerenderOptions,\n): EffectRemoteFunction<StandardSchemaInput<S>, A, E>;\nexport function Prerender(\n validate_or_handler: unknown,\n maybe_handler_or_options?: unknown,\n maybe_options?: PrerenderOptions,\n): unknown {\n try {\n if (is_handler(maybe_handler_or_options)) {\n return native_prerender(\n normalize_validator(validate_or_handler) as never,\n make_remote_wrapper(maybe_handler_or_options, \"Prerender\") as never,\n maybe_options as never,\n );\n }\n\n if (is_unchecked(validate_or_handler)) {\n throw new Error(\n \"[MISSING_REMOTE_HANDLER]: Prerender('unchecked', handler) requires a handler\",\n );\n }\n\n return native_prerender(\n make_remote_wrapper(\n validate_or_handler as RemoteHandler,\n \"Prerender\",\n ) as never,\n maybe_handler_or_options as never,\n ) as ReturnType<typeof native_prerender>;\n } catch (error: unknown) {\n throw normalize_remote_helper_error(error, \"Prerender\");\n }\n}\n","import {\n error as svelte_error,\n redirect as svelte_redirect,\n} from \"@sveltejs/kit\";\nimport { Effect } from \"effect\";\n\nconst error_status_codes = {\n ProxyAuthenticationRequired: 407,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n NetworkAuthenticationRequired: 511,\n HttpVersionNotSupported: 505,\n UnprocessableContent: 422,\n UnprocessableEntity: 422,\n InternalServerError: 500,\n FailedDependency: 424,\n PreconditionRequired: 428,\n ServiceUnavailable: 503,\n MisdirectedRequest: 421,\n InsufficientStorage: 507,\n VariantAlsoNegotiates: 506,\n PreconditionFailed: 412,\n MethodNotAllowed: 405,\n GatewayTimeout: 504,\n PaymentRequired: 402,\n UpgradeRequired: 426,\n TooManyRequests: 429,\n LengthRequired: 411,\n NotAcceptable: 406,\n RequestTimeout: 408,\n ContentTooLarge: 413,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n BadRequest: 400,\n Unauthorized: 401,\n Forbidden: 403,\n NotFound: 404,\n Conflict: 409,\n Gone: 410,\n Locked: 423,\n TooEarly: 425,\n NotImplemented: 501,\n BadGateway: 502,\n LoopDetected: 508,\n NotExtended: 510,\n} as const;\n\nconst redirect_status_codes = {\n MovedPermanently: 301,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n MultipleChoices: 300,\n NotModified: 304,\n SwitchProxy: 306,\n SeeOther: 303,\n UseProxy: 305,\n Found: 302,\n} as const;\n\ntype SvelteErrorBody = Parameters<typeof svelte_error>[1];\n\n/**\n * Named HTTP status accepted by the {@link Error} helper.\n *\n * @example\n * ```ts\n * const status: ErrorStatusName = \"NotFound\";\n * ```\n *\n * @since 2.3.0\n */\nexport type ErrorStatusName = keyof typeof error_status_codes;\n\n/**\n * Numeric or named HTTP status accepted by the {@link Error} helper.\n *\n * @example\n * ```ts\n * const status: ErrorStatus = \"InternalServerError\";\n * ```\n *\n * @since 2.3.0\n */\nexport type ErrorStatus = ErrorStatusName | number;\n\n/**\n * Named HTTP status accepted by the {@link Redirect} helper.\n *\n * @example\n * ```ts\n * const status: RedirectStatusName = \"TemporaryRedirect\";\n * ```\n *\n * @since 2.3.0\n */\nexport type RedirectStatusName = keyof typeof redirect_status_codes;\n\n/**\n * Numeric or named HTTP status accepted by the {@link Redirect} helper.\n *\n * @example\n * ```ts\n * const status: RedirectStatus = \"SeeOther\";\n * ```\n *\n * @since 2.3.0\n */\nexport type RedirectStatus = RedirectStatusName | number;\n\n/**\n * Callable shape for the exported {@link Error} helper.\n *\n * @example\n * ```ts\n * const fail_not_found: ErrorEffectFactory = Error;\n * ```\n *\n * @since 2.3.0\n */\nexport interface ErrorEffectFactory {\n /**\n * Creates an Effect that throws SvelteKit's HTTP error control-flow value.\n *\n * @example\n * ```ts\n * return yield* Error(\"NotFound\", \"Post not found\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric HTTP status or PascalCase status name to pass to\n * SvelteKit's `error` helper.\n * @param body - Optional SvelteKit error body or message forwarded unchanged\n * to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\n (\n status: ErrorStatus,\n body?: SvelteErrorBody,\n ): Effect.Effect<never, never, never>;\n}\n\n/**\n * Callable shape for the exported {@link Redirect} helper.\n *\n * @example\n * ```ts\n * const redirect_after_save: RedirectEffectFactory = Redirect;\n * ```\n *\n * @since 2.3.0\n */\nexport interface RedirectEffectFactory {\n /**\n * Creates an Effect that throws SvelteKit's redirect control-flow value.\n *\n * @example\n * ```ts\n * return yield* Redirect(\"SeeOther\", \"/posts\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric redirect status or PascalCase status name to pass\n * to SvelteKit's `redirect` helper.\n * @param location - Target URL forwarded unchanged to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\n (\n status: RedirectStatus,\n location: string | URL,\n ): Effect.Effect<never, never, never>;\n}\n\n/**\n * Creates an Effect that raises SvelteKit's HTTP error control flow.\n *\n * @example\n * ```ts\n * return yield* Error(\"NotFound\", \"Post not found\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric HTTP status or PascalCase status name to pass to\n * SvelteKit's `error` helper.\n * @param body - Optional SvelteKit error body or message forwarded unchanged\n * to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\nexport const Error: ErrorEffectFactory = (status, body) => {\n const resolved_status = resolve_error_status(status);\n\n return Effect.sync(() => {\n svelte_error(resolved_status, body);\n });\n};\n\n/**\n * Creates an Effect that raises SvelteKit's redirect control flow.\n *\n * @example\n * ```ts\n * return yield* Redirect(\"SeeOther\", \"/posts\");\n * ```\n *\n * @since 2.3.0\n * @param status - Numeric redirect status or PascalCase status name to pass to\n * SvelteKit's `redirect` helper.\n * @param location - Target URL forwarded unchanged to SvelteKit.\n * @returns An Effect that never succeeds because SvelteKit takes over request\n * control flow.\n */\nexport const Redirect: RedirectEffectFactory = (status, location) => {\n const resolved_status = resolve_redirect_status(status);\n\n return Effect.sync(() => {\n svelte_redirect(resolved_status, location);\n });\n};\n\nfunction resolve_error_status(status: ErrorStatus): number {\n if (typeof status === \"number\") {\n return status;\n }\n\n return error_status_codes[status];\n}\n\nfunction resolve_redirect_status(status: RedirectStatus): number {\n if (typeof status === \"number\") {\n return status;\n }\n\n return redirect_status_codes[status];\n}\n"],"mappings":"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"}
package/.dist/vite.js CHANGED
@@ -26,19 +26,15 @@ function effect(options) {
26
26
  function make_svelte_transform_plugin() {
27
27
  return {
28
28
  name: "svelte-effect-runtime:svelte-transform",
29
- enforce: "pre",
30
- transform: {
31
- order: "pre",
32
- async handler(code, id) {
33
- if (!is_svelte_component_module(id)) return;
34
- const { transform_svelte_effect } = await import("./chunks/transform-BotzDlj3.js").then((n) => n.t);
35
- const result = transform_svelte_effect(code, id);
36
- if (result.code === code) return;
37
- return {
38
- code: result.code,
39
- map: null
40
- };
41
- }
29
+ async transform(code, id) {
30
+ if (!is_svelte_component_module(id)) return;
31
+ const { transform_svelte_effect } = await import("./runtime/transform.js");
32
+ const result = transform_svelte_effect(code, id);
33
+ if (result.code === code) return;
34
+ return {
35
+ code: result.code,
36
+ map: null
37
+ };
42
38
  }
43
39
  };
44
40
  }