svelte-effect-runtime 3.4.11 → 4.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 (83) hide show
  1. package/.dist/chunks/{client-CsVu54pU.js → client-DcZUV4rR.js} +76 -50
  2. package/.dist/chunks/client-DcZUV4rR.js.map +1 -0
  3. package/.dist/chunks/{vite-WGlbSnso.js → compiler-BBPNyXmQ.js} +84 -110
  4. package/.dist/chunks/compiler-BBPNyXmQ.js.map +1 -0
  5. package/.dist/chunks/{dispatcher-pHH4JcFR.js → dispatcher-DOx8iC6r.js} +2 -2
  6. package/.dist/chunks/{dispatcher-pHH4JcFR.js.map → dispatcher-DOx8iC6r.js.map} +1 -1
  7. package/.dist/chunks/{dispatcher-LtvFKYUp.js → dispatcher-H-Ia0Os4.js} +3 -3
  8. package/.dist/chunks/{dispatcher-LtvFKYUp.js.map → dispatcher-H-Ia0Os4.js.map} +1 -1
  9. package/.dist/chunks/{errors-Dcf0MVbq.js → errors-IJjsUwrE.js} +21 -65
  10. package/.dist/chunks/errors-IJjsUwrE.js.map +1 -0
  11. package/.dist/chunks/live-BXAKre_4.js +104 -0
  12. package/.dist/chunks/live-BXAKre_4.js.map +1 -0
  13. package/.dist/chunks/{remote-client-Bj1pZXgq.js → remote-client-CVI4t66c.js} +2 -2
  14. package/.dist/chunks/remote-client-CVI4t66c.js.map +1 -0
  15. package/.dist/chunks/{runtime-ekkMQ-wL.js → runtime-GBQz32DZ.js} +3 -3
  16. package/.dist/chunks/{runtime-ekkMQ-wL.js.map → runtime-GBQz32DZ.js.map} +1 -1
  17. package/.dist/chunks/schema-D9pct6Y5.js +89 -0
  18. package/.dist/chunks/schema-D9pct6Y5.js.map +1 -0
  19. package/.dist/chunks/server-D1LcDnZE.js +213 -0
  20. package/.dist/chunks/server-D1LcDnZE.js.map +1 -0
  21. package/.dist/chunks/source-scan-C4PsggID.js +341 -0
  22. package/.dist/chunks/source-scan-C4PsggID.js.map +1 -0
  23. package/.dist/chunks/{transform-CtQDGS9c.js → transform-jNUr65K9.js} +237 -239
  24. package/.dist/chunks/transform-jNUr65K9.js.map +1 -0
  25. package/.dist/compiler/source-scan.d.ts +198 -0
  26. package/.dist/{vite.d.ts → compiler.d.ts} +1 -1
  27. package/.dist/{vite.js → compiler.js} +1 -1
  28. package/.dist/dispatcher.js +1 -1
  29. package/.dist/errors.d.ts +15 -45
  30. package/.dist/generators.d.ts +3 -1
  31. package/.dist/internal/generators.js +20 -3
  32. package/.dist/internal/generators.js.map +1 -0
  33. package/.dist/internal/remote-client.js +1 -1
  34. package/.dist/internal/remote-server.js +1 -1
  35. package/.dist/internal/schema.d.ts +67 -0
  36. package/.dist/live.d.ts +123 -0
  37. package/.dist/markup/event-attributes.d.ts +16 -7
  38. package/.dist/markup/promise.js +1 -1
  39. package/.dist/markup/run.js +1 -1
  40. package/.dist/markup/transform/constants.d.ts +1 -0
  41. package/.dist/markup/transform/types.d.ts +1 -0
  42. package/.dist/markup/transform.js +1 -1
  43. package/.dist/markup/value.js +1 -1
  44. package/.dist/mod.d.ts +6 -3
  45. package/.dist/mod.js +5 -4
  46. package/.dist/mod.js.map +1 -1
  47. package/.dist/remote/cause-codec.d.ts +53 -0
  48. package/.dist/remote/client/form-transport.d.ts +4 -1
  49. package/.dist/remote/client/form.d.ts +10 -1
  50. package/.dist/remote/client/index.d.ts +1 -1
  51. package/.dist/remote/client/query.d.ts +6 -16
  52. package/.dist/remote/client/types.d.ts +32 -13
  53. package/.dist/remote/client.d.ts +1 -1
  54. package/.dist/remote/client.js +1 -1
  55. package/.dist/remote/server.d.ts +2 -12
  56. package/.dist/remote/server.js +1 -178
  57. package/.dist/runtime/transform.js +81 -68
  58. package/.dist/runtime/transform.js.map +1 -1
  59. package/.dist/script-transform/imports.d.ts +2 -0
  60. package/.dist/script-transform/types.d.ts +8 -0
  61. package/.dist/server/effects.d.ts +7 -7
  62. package/.dist/server/handler.d.ts +37 -0
  63. package/.dist/server/index.d.ts +4 -1
  64. package/.dist/server/schema.d.ts +2 -26
  65. package/.dist/server/types.d.ts +44 -50
  66. package/.dist/server/wrappers.d.ts +2 -2
  67. package/.dist/server.d.ts +2 -2
  68. package/.dist/server.js +88 -97
  69. package/.dist/server.js.map +1 -1
  70. package/.dist/yieldable.d.ts +41 -0
  71. package/README.md +1 -1
  72. package/package.json +4 -4
  73. package/.dist/chunks/client-CsVu54pU.js.map +0 -1
  74. package/.dist/chunks/descriptors-cOe9uRJz.js +0 -36
  75. package/.dist/chunks/descriptors-cOe9uRJz.js.map +0 -1
  76. package/.dist/chunks/errors-Dcf0MVbq.js.map +0 -1
  77. package/.dist/chunks/event-attributes-gHzP2ycp.js +0 -39
  78. package/.dist/chunks/event-attributes-gHzP2ycp.js.map +0 -1
  79. package/.dist/chunks/remote-client-Bj1pZXgq.js.map +0 -1
  80. package/.dist/chunks/transform-CtQDGS9c.js.map +0 -1
  81. package/.dist/chunks/vite-WGlbSnso.js.map +0 -1
  82. package/.dist/remote/server.js.map +0 -1
  83. /package/.dist/{vite → compiler}/remote-client.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler-BBPNyXmQ.js","names":["candidate"],"sources":["../../../modules/svelte-effect-runtime/src/diagnostics.ts","../../../modules/svelte-effect-runtime/src/compiler.ts"],"sourcesContent":["import type { MarkupBraceExpression, ScriptRegion } from \"$/compiler/source-scan.ts\";\nimport { scan_svelte_effect_source } from \"$/compiler/source-scan.ts\";\n\n/**\n * Warning diagnostic produced by the SER Vite diagnostics plugin.\n */\ninterface Diagnostic {\n\tmessage: string;\n\tline: number;\n\tcolumn: number;\n}\n\ninterface SourceLocation {\n\tline: number;\n\tcolumn: number;\n}\n\n/**\n * Finds best-effort SER usage diagnostics in Svelte component markup.\n *\n * @example\n * ```ts\n * const diagnostics = find_svelte_effect_diagnostics(\n * `<button onclick={Effect.gen}>save</button>`,\n * \"Button.svelte\",\n * );\n * ```\n *\n * @since 2.0.0\n * @param code - Svelte component source to scan for suspicious Effect usage.\n * @param filename - Filename used in diagnostic messages.\n * @returns Warning diagnostics with a message and source location.\n */\nexport function find_svelte_effect_diagnostics(\n\tcode: string,\n\tfilename: string,\n): Array<{ message: string; line: number; column: number }> {\n\tconst scan = scan_svelte_effect_source(code, filename);\n\tconst effect_names = find_effect_local_names(scan.scripts);\n\tconst line_starts = make_line_starts(code);\n\n\treturn scan.markup_expressions.flatMap((expression) =>\n\t\tmake_expression_diagnostics(filename, effect_names, expression, line_starts),\n\t);\n}\n\nfunction find_effect_local_names(scripts: readonly ScriptRegion[]): Set<string> {\n\tconst names = new Set<string>([\"Effect\"]);\n\n\tfor (const script of scripts) {\n\t\tconst import_pattern = /import\\s+(type\\s+)?\\{([^}]+)\\}\\s+from\\s+[\"']effect[\"']/g;\n\n\t\tfor (const import_match of script.text.matchAll(import_pattern)) {\n\t\t\tconst is_type_only_import = import_match[1] !== undefined;\n\t\t\tconst specifiers = import_match[2].split(\",\");\n\n\t\t\tif (is_type_only_import) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfor (const specifier of specifiers) {\n\t\t\t\tconst local_name = parse_effect_import_local_name(specifier);\n\n\t\t\t\tif (local_name) {\n\t\t\t\t\tnames.add(local_name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn names;\n}\n\nfunction parse_effect_import_local_name(specifier: string): string | undefined {\n\tconst trimmed = specifier.trim();\n\tconst match = trimmed.match(/^Effect(?:\\s+as\\s+([A-Za-z_$][\\w$]*))?$/);\n\n\tif (!match) {\n\t\treturn undefined;\n\t}\n\n\treturn match[1] ?? \"Effect\";\n}\n\nfunction make_expression_diagnostics(\n\tfilename: string,\n\teffect_names: Set<string>,\n\texpression: MarkupBraceExpression,\n\tline_starts: number[],\n): Diagnostic[] {\n\tconst attribute_name = expression.attribute_name;\n\tconst expression_text = expression.expression_text;\n\t/** The source scanner exposes a name only for a direct single-expression value. */\n\tconst is_event_attribute = attribute_name !== undefined && attribute_name.startsWith(\"on\");\n\tconst is_attribute = attribute_name !== undefined;\n\n\tif (!contains_effect_reference(expression_text, effect_names)) {\n\t\treturn [];\n\t}\n\n\tif (starts_with_yield_star(expression_text)) {\n\t\treturn [];\n\t}\n\n\tconst loc = get_line_column(line_starts, expression.open);\n\n\tif (\n\t\tis_event_attribute &&\n\t\tis_callback_expression(expression_text) &&\n\t\tcontains_yield_star(expression_text)\n\t) {\n\t\treturn [\n\t\t\tmake_diagnostic(\n\t\t\t\tloc,\n\t\t\t\tmake_hidden_event_yield_warning(filename, attribute_name, expression_text),\n\t\t\t),\n\t\t];\n\t}\n\n\tif (contains_effect_runner(expression_text, effect_names)) {\n\t\treturn [\n\t\t\tmake_diagnostic(\n\t\t\t\tloc,\n\t\t\t\tmake_explicit_runner_warning(filename, attribute_name, expression_text),\n\t\t\t),\n\t\t];\n\t}\n\n\tif (is_bare_effect_gen(expression_text, effect_names)) {\n\t\treturn [\n\t\t\tmake_diagnostic(\n\t\t\t\tloc,\n\t\t\t\tmake_bare_effect_gen_warning(filename, attribute_name, expression_text),\n\t\t\t),\n\t\t];\n\t}\n\n\tif (is_event_attribute && is_callback_expression(expression_text)) {\n\t\treturn [\n\t\t\tmake_diagnostic(\n\t\t\t\tloc,\n\t\t\t\tmake_event_callback_returns_effect_warning(\n\t\t\t\t\tfilename,\n\t\t\t\t\tattribute_name,\n\t\t\t\t\texpression_text,\n\t\t\t\t),\n\t\t\t),\n\t\t];\n\t}\n\n\tif (is_event_attribute) {\n\t\treturn [\n\t\t\tmake_diagnostic(\n\t\t\t\tloc,\n\t\t\t\tmake_event_attribute_effect_warning(filename, attribute_name, expression_text),\n\t\t\t),\n\t\t];\n\t}\n\n\tif (is_attribute) {\n\t\treturn [\n\t\t\tmake_diagnostic(\n\t\t\t\tloc,\n\t\t\t\tmake_attribute_effect_warning(filename, attribute_name, expression_text),\n\t\t\t),\n\t\t];\n\t}\n\n\treturn [make_diagnostic(loc, make_sync_markup_effect_warning(filename, expression_text))];\n}\n\nfunction make_diagnostic(loc: { line: number; column: number }, message: string): Diagnostic {\n\treturn {\n\t\tmessage,\n\t\tline: loc.line,\n\t\tcolumn: loc.column,\n\t};\n}\n\nfunction make_hidden_event_yield_warning(\n\tfilename: string,\n\tattribute_name: string,\n\texpression_text: string,\n): string {\n\treturn [\n\t\t`[svelte-effect-runtime] Detected yield* hidden inside an event callback.`,\n\t\t`${filename}: ${attribute_name}={${expression_text}}`,\n\t\t`SER can only lower yield* at the event attribute boundary.`,\n\t\t`Write the event expression directly, for example: ${attribute_name}={yield* save()}`,\n\t].join(\"\\n\");\n}\n\nfunction make_explicit_runner_warning(\n\tfilename: string,\n\tattribute_name: string | undefined,\n\texpression_text: string,\n): string {\n\tconst location = attribute_name\n\t\t? `${attribute_name}={${expression_text}}`\n\t\t: `{${expression_text}}`;\n\n\treturn [\n\t\t`[svelte-effect-runtime] Detected an explicit Effect runner inside Svelte markup.`,\n\t\t`${filename}: ${location}`,\n\t\t`Explicit runners bypass SER cancellation and error handling for markup effects.`,\n\t\t`Prefer yield* so SER can manage the Effect lifecycle.`,\n\t].join(\"\\n\");\n}\n\nfunction make_bare_effect_gen_warning(\n\tfilename: string,\n\tattribute_name: string | undefined,\n\texpression_text: string,\n): string {\n\tconst location = attribute_name\n\t\t? `${attribute_name}={${expression_text}}`\n\t\t: `{${expression_text}}`;\n\tconst fixed = attribute_name\n\t\t? `${attribute_name}={yield* ${expression_text}(function* () { ... })}`\n\t\t: `{yield* ${expression_text}(function* () { ... })}`;\n\n\treturn [\n\t\t`[svelte-effect-runtime] Detected Effect.gen used as a value instead of an Effect program.`,\n\t\t`${filename}: ${location}`,\n\t\t`${expression_text} is a constructor, not the result of running a generator.`,\n\t\t`Use: ${fixed}`,\n\t].join(\"\\n\");\n}\n\nfunction make_event_callback_returns_effect_warning(\n\tfilename: string,\n\tattribute_name: string,\n\texpression_text: string,\n): string {\n\treturn [\n\t\t`[svelte-effect-runtime] Detected an event callback that returns an Effect but does not run it.`,\n\t\t`${filename}: ${attribute_name}={${expression_text}}`,\n\t\t`Svelte will call the callback and receive an Effect value, but SER will not manage it from inside the callback.`,\n\t\t`Use yield* at the event attribute boundary or explicitly run the Effect if you really want to bypass SER.`,\n\t].join(\"\\n\");\n}\n\nfunction make_event_attribute_effect_warning(\n\tfilename: string,\n\tattribute_name: string,\n\texpression_text: string,\n): string {\n\tconst fixed = `${attribute_name}={yield* ${expression_text}}`;\n\n\treturn [\n\t\t`[svelte-effect-runtime] Detected an event attribute that looks like an Effect but is not written with yield*.`,\n\t\t`${filename}: ${attribute_name}={${expression_text}}`,\n\t\t`If you are trying to use Effect in this event handler, use yield* at the beginning.`,\n\t\t`Use: ${fixed}`,\n\t].join(\"\\n\");\n}\n\nfunction make_attribute_effect_warning(\n\tfilename: string,\n\tattribute_name: string,\n\texpression_text: string,\n): string {\n\tconst fixed = `${attribute_name}={yield* ${expression_text}}`;\n\n\treturn [\n\t\t`[svelte-effect-runtime] Detected an attribute value that looks like an Effect but is not written with yield*.`,\n\t\t`${filename}: ${attribute_name}={${expression_text}}`,\n\t\t`Svelte attributes need the resolved Effect value, not the Effect object itself.`,\n\t\t`Use: ${fixed}`,\n\t].join(\"\\n\");\n}\n\nfunction make_sync_markup_effect_warning(filename: string, expression_text: string): string {\n\treturn [\n\t\t`[svelte-effect-runtime] Detected a markup expression that creates an Effect but is not written with yield*.`,\n\t\t`${filename}: {${expression_text}}`,\n\t\t`This expression will produce an Effect value, not its result.`,\n\t\t`Use yield* where Svelte expects the resolved value.`,\n\t].join(\"\\n\");\n}\n\nfunction contains_effect_reference(expression_text: string, effect_names: Set<string>): boolean {\n\tconst name_pattern = make_effect_name_pattern(effect_names);\n\tconst effect_pattern = new RegExp(\n\t\t`\\\\b(?:${name_pattern})\\\\.(?:gen|succeed|fail|try|tryPromise|promise|sync|all|void|log|runPromise|runSync|runFork)\\\\b`,\n\t);\n\n\treturn effect_pattern.test(expression_text);\n}\n\nfunction contains_effect_runner(expression_text: string, effect_names: Set<string>): boolean {\n\tconst name_pattern = make_effect_name_pattern(effect_names);\n\tconst runner_pattern = new RegExp(`\\\\b(?:${name_pattern})\\\\.run(?:Promise|Sync|Fork)\\\\b`);\n\n\treturn runner_pattern.test(expression_text);\n}\n\nfunction is_bare_effect_gen(expression_text: string, effect_names: Set<string>): boolean {\n\tconst name_pattern = make_effect_name_pattern(effect_names);\n\tconst bare_gen_pattern = new RegExp(`^(?:${name_pattern})\\\\.gen$`);\n\n\treturn bare_gen_pattern.test(expression_text);\n}\n\nfunction make_effect_name_pattern(effect_names: Set<string>): string {\n\treturn [...effect_names]\n\t\t.map(escape_regexp)\n\t\t.sort((a, b) => b.length - a.length)\n\t\t.join(\"|\");\n}\n\nfunction starts_with_yield_star(expression_text: string): boolean {\n\treturn /^yield\\s*\\*/.test(expression_text);\n}\n\nfunction contains_yield_star(expression_text: string): boolean {\n\treturn /\\byield\\s*\\*/.test(expression_text);\n}\n\nfunction is_callback_expression(expression_text: string): boolean {\n\treturn (\n\t\t/^(?:async\\s+)?(?:\\([^)]*\\)|[A-Za-z_$][\\w$]*)\\s*=>/.test(expression_text) ||\n\t\t/^(?:async\\s+)?function\\b/.test(expression_text)\n\t);\n}\n\nfunction get_line_column(line_starts: number[], position: number): SourceLocation {\n\tlet low = 0;\n\tlet high = line_starts.length - 1;\n\n\twhile (low <= high) {\n\t\tconst mid = Math.floor((low + high) / 2);\n\n\t\tif (line_starts[mid] <= position) {\n\t\t\tlow = mid + 1;\n\t\t} else {\n\t\t\thigh = mid - 1;\n\t\t}\n\t}\n\n\tconst line_index = Math.max(0, high);\n\tconst line = line_index + 1;\n\tconst column = position - line_starts[line_index];\n\n\treturn { line, column };\n}\n\nfunction make_line_starts(code: string): number[] {\n\tconst line_starts = [0];\n\n\tfor (let i = 0; i < code.length; i += 1) {\n\t\tif (code[i] !== \"\\n\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tline_starts.push(i + 1);\n\t}\n\n\treturn line_starts;\n}\n\nfunction escape_regexp(value: string): string {\n\treturn value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}","import { find_svelte_effect_diagnostics } from \"./diagnostics.ts\";\nimport type { Plugin } from \"vite\";\n\n/**\n * Options for the {@link effect} Vite plugin.\n *\n * @since 2.0.0\n */\nexport interface EffectOptions {\n\t/** Whether to emit debug logging in the generated remote client module. */\n\tdebug?: boolean;\n}\n\ninterface SvelteComponentModuleFilter {\n\tset_extensions(extensions: readonly string[]): void;\n\tis_module(id: string): boolean;\n}\n\ninterface VitePluginSvelteApi {\n\toptions?: {\n\t\textensions?: readonly unknown[];\n\t};\n}\n\ntype VitePluginSvelte = Plugin & {\n\tapi?: VitePluginSvelteApi;\n};\n\ntype VitePluginSvelteWithExtensions = Plugin & {\n\tapi: {\n\t\toptions: {\n\t\t\textensions: readonly string[];\n\t\t};\n\t};\n};\n\nconst default_svelte_component_extensions = [\".svelte\"] as const;\n\n/**\n * Vite plugin for SvelteKit. The server import plugin rewrites server-side\n * imports to the server entrypoint; the remote client plugin wraps SvelteKit's\n * generated client remote exports in Effect-returning adapters.\n *\n * @example\n * ```ts\n * import { effect } from \"svelte-effect-runtime/compiler\";\n * import { sveltekit } from \"@sveltejs/kit/vite\";\n *\n * export default defineConfig({ plugins: [effect(), sveltekit()] });\n * ```\n *\n * @since 2.0.0\n * @param options - Optional configuration.\n * @returns Vite plugins that integrate the runtime with SvelteKit.\n */\nexport function effect(options?: EffectOptions): Plugin[] {\n\tconst component_filter = make_svelte_component_module_filter();\n\n\treturn [\n\t\tmake_diagnostics_plugin(component_filter),\n\t\tmake_reserved_helper_guard_plugin(component_filter),\n\t\tmake_svelte_transform_plugin(component_filter),\n\t\tmake_server_rewrite_plugin(),\n\t\tmake_remote_client_wrapper_plugin(options),\n\t];\n}\n\nfunction make_diagnostics_plugin(component_filter: SvelteComponentModuleFilter): Plugin {\n\tconst warned_diagnostics = new Set<string>();\n\n\treturn {\n\t\tname: \"svelte-effect-runtime:diagnostics\",\n\n\t\ttransform(code: string, id: string) {\n\t\t\tif (!component_filter.is_module(id)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst clean_id = id.split(\"?\")[0] ?? id;\n\t\t\tconst diagnostics = find_svelte_effect_diagnostics(code, clean_id);\n\n\t\t\tfor (const diagnostic of diagnostics) {\n\t\t\t\tconst diagnostic_key = [\n\t\t\t\t\tclean_id,\n\t\t\t\t\tdiagnostic.line,\n\t\t\t\t\tdiagnostic.column,\n\t\t\t\t\tdiagnostic.message,\n\t\t\t\t].join(\":\");\n\n\t\t\t\tif (warned_diagnostics.has(diagnostic_key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\twarned_diagnostics.add(diagnostic_key);\n\n\t\t\t\tthis.warn({\n\t\t\t\t\tid: clean_id,\n\t\t\t\t\tmessage: diagnostic.message,\n\t\t\t\t\tloc: {\n\t\t\t\t\t\tline: diagnostic.line,\n\t\t\t\t\t\tcolumn: diagnostic.column,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t},\n\t};\n}\n\nfunction make_reserved_helper_guard_plugin(component_filter: SvelteComponentModuleFilter): Plugin {\n\treturn {\n\t\tname: \"svelte-effect-runtime:reserved-helper-guard\",\n\n\t\ttransform(code: string, id: string) {\n\t\t\tif (!component_filter.is_module(id) || !has_ser_syntax(code)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst reserved_names = find_reserved_helper_names(code);\n\n\t\t\tif (reserved_names.length === 0) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tthis.warn(make_reserved_helper_warning(reserved_names));\n\n\t\t\treturn undefined;\n\t\t},\n\t};\n}\n\nfunction make_svelte_transform_plugin(component_filter: SvelteComponentModuleFilter): Plugin {\n\treturn {\n\t\tname: \"svelte-effect-runtime:svelte-transform\",\n\n\t\tconfigResolved(config) {\n\t\t\tconst extensions = find_svelte_component_extensions(config.plugins);\n\t\t\tconst conflicting_plugin_names = find_pre_transform_plugin_names(config.plugins);\n\n\t\t\tif (extensions) {\n\t\t\t\tcomponent_filter.set_extensions(extensions);\n\t\t\t}\n\n\t\t\tif (conflicting_plugin_names.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconfig.logger.info(make_pre_transform_plugin_notice(conflicting_plugin_names));\n\t\t},\n\n\t\tasync transform(code: string, id: string, options?: { ssr?: boolean }) {\n\t\t\tif (!component_filter.is_module(id)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst { transform_svelte_effect } = await import(\"./runtime/transform.ts\");\n\t\t\tconst result = transform_svelte_effect(code, id, {\n\t\t\t\ttarget: options?.ssr ? \"server\" : \"client\",\n\t\t\t});\n\n\t\t\tif (result.code === code) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn { code: result.code, map: null };\n\t\t},\n\t};\n}\n\nfunction make_svelte_component_module_filter(): SvelteComponentModuleFilter {\n\tlet extensions: readonly string[] = default_svelte_component_extensions;\n\n\treturn {\n\t\tset_extensions(next_extensions) {\n\t\t\tconst normalized_extensions = normalize_svelte_component_extensions(next_extensions);\n\n\t\t\tif (normalized_extensions.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\textensions = normalized_extensions;\n\t\t},\n\n\t\tis_module(id) {\n\t\t\treturn is_svelte_component_module(id, extensions);\n\t\t},\n\t};\n}\n\nfunction normalize_svelte_component_extensions(extensions: readonly string[]): string[] {\n\tconst normalized_extensions = extensions\n\t\t.filter((extension) => extension.length > 0)\n\t\t.map((extension) => (extension.startsWith(\".\") ? extension : `.${extension}`));\n\n\treturn [...new Set(normalized_extensions)];\n}\n\nfunction find_svelte_component_extensions(\n\tplugins: readonly Plugin[],\n): readonly string[] | undefined {\n\tconst svelte_plugin = plugins.find(has_svelte_component_extensions);\n\n\treturn svelte_plugin?.api?.options?.extensions;\n}\n\nfunction has_svelte_component_extensions(plugin: Plugin): plugin is VitePluginSvelteWithExtensions {\n\tconst candidate = plugin as VitePluginSvelte;\n\tconst extensions = candidate.api?.options?.extensions;\n\n\tif (!plugin.name.startsWith(\"vite-plugin-svelte\")) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\tArray.isArray(extensions) && extensions.every((extension) => typeof extension === \"string\")\n\t);\n}\n\nfunction find_pre_transform_plugin_names(plugins: readonly Plugin[]): string[] {\n\treturn plugins\n\t\t.filter(\n\t\t\t(plugin) =>\n\t\t\t\t!plugin.name.startsWith(\"svelte-effect-runtime:\") &&\n\t\t\t\t!is_known_framework_pre_transform_plugin(plugin.name) &&\n\t\t\t\thas_pre_transform_priority(plugin),\n\t\t)\n\t\t.map((plugin) => plugin.name);\n}\n\nconst ansi_reset = \"\\x1b[0m\";\nconst ansi_light_green = \"\\x1b[92m\";\n\nfunction make_pre_transform_plugin_notice(plugin_names: readonly string[]): string {\n\tconst formatted_plugins = plugin_names.map((plugin_name) => ` - ${plugin_name}`).join(\"\\n\");\n\n\treturn [\n\t\t`${ansi_light_green}[svelte-effect-runtime]${ansi_reset} Svelte Effect Runtime noticed possible Vite plugin ordering conflicts.`,\n\t\t\"\",\n\t\t\"These plugins run before normal Svelte component transforms:\",\n\t\tformatted_plugins,\n\t\t\"\",\n\t\t\"This is usually fine, but if you see Svelte parser errors around <script effect>\",\n\t\t\"or yield* in components, one of those plugins may be reading component files before\",\n\t\t\"SER has lowered its syntax.\",\n\t].join(\"\\n\");\n}\n\nfunction is_known_framework_pre_transform_plugin(name: string): boolean {\n\treturn name.startsWith(\"vite:\") || name === \"vite-plugin-svelte:preprocess\";\n}\n\nfunction has_pre_transform_priority(plugin: Plugin): boolean {\n\tif (plugin.enforce === \"pre\" && plugin.transform) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\ttypeof plugin.transform === \"object\" &&\n\t\tplugin.transform !== null &&\n\t\t\"order\" in plugin.transform &&\n\t\tplugin.transform.order === \"pre\"\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction make_server_rewrite_plugin(): Plugin {\n\treturn {\n\t\tname: \"svelte-effect-runtime:server-imports\",\n\n\t\tconfig() {\n\t\t\treturn { optimizeDeps: { exclude: [\"svelte-effect-runtime\"] } };\n\t\t},\n\n\t\tasync transform(code: string, id: string) {\n\t\t\tif (!is_server_runtime_module(id)) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tif (!code.includes(\"svelte-effect-runtime\")) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst rewritten = await rewrite_server_imports(code, id);\n\n\t\t\tif (rewritten === code) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn { code: rewritten, map: null };\n\t\t},\n\t};\n}\n\nasync function rewrite_server_imports(code: string, id: string): Promise<string> {\n\tconst [{ default: MagicString }, ts] = await Promise.all([\n\t\timport(\"magic-string\"),\n\t\timport(\"typescript\"),\n\t]);\n\tconst filename = id.split(\"?\", 2)[0] ?? id;\n\tconst source_file = ts.createSourceFile(\n\t\tfilename,\n\t\tcode,\n\t\tts.ScriptTarget.Latest,\n\t\ttrue,\n\t\tget_script_kind(filename, ts),\n\t);\n\tconst magic = new MagicString(code);\n\tlet changed = false;\n\n\tconst rewrite_specifier = (specifier: import(\"typescript\").StringLiteralLike) => {\n\t\tconst replacement = get_server_import_replacement(specifier.text);\n\n\t\tif (!replacement) {\n\t\t\treturn;\n\t\t}\n\n\t\tmagic.overwrite(\n\t\t\tspecifier.getStart(source_file),\n\t\t\tspecifier.end,\n\t\t\tJSON.stringify(replacement),\n\t\t);\n\t\tchanged = true;\n\t};\n\n\tconst visit = (node: import(\"typescript\").Node) => {\n\t\tif (ts.isImportDeclaration(node) && ts.isStringLiteralLike(node.moduleSpecifier)) {\n\t\t\trewrite_specifier(node.moduleSpecifier);\n\t\t}\n\n\t\tif (\n\t\t\tts.isExportDeclaration(node) &&\n\t\t\tnode.moduleSpecifier &&\n\t\t\tts.isStringLiteralLike(node.moduleSpecifier)\n\t\t) {\n\t\t\trewrite_specifier(node.moduleSpecifier);\n\t\t}\n\n\t\tif (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {\n\t\t\tconst [specifier] = node.arguments;\n\n\t\t\tif (specifier && ts.isStringLiteralLike(specifier)) {\n\t\t\t\trewrite_specifier(specifier);\n\t\t\t}\n\t\t}\n\n\t\tts.forEachChild(node, visit);\n\t};\n\n\tvisit(source_file);\n\n\treturn changed ? magic.toString() : code;\n}\n\nfunction get_server_import_replacement(specifier: string): string | undefined {\n\tif (specifier === \"svelte-effect-runtime\") {\n\t\treturn \"svelte-effect-runtime/server\";\n\t}\n\n\tif (specifier === \"svelte-effect-runtime/internal/generators\") {\n\t\treturn \"svelte-effect-runtime/server\";\n\t}\n\n\treturn undefined;\n}\n\nfunction get_script_kind(filename: string, ts: typeof import(\"typescript\")) {\n\tconst normalized_filename = filename.toLowerCase();\n\n\tif (has_file_extension(normalized_filename, [\".tsx\"])) {\n\t\treturn ts.ScriptKind.TSX;\n\t}\n\n\tif (has_file_extension(normalized_filename, [\".jsx\"])) {\n\t\treturn ts.ScriptKind.JSX;\n\t}\n\n\tif (has_file_extension(normalized_filename, [\".js\", \".mjs\", \".cjs\"])) {\n\t\treturn ts.ScriptKind.JS;\n\t}\n\n\treturn ts.ScriptKind.TS;\n}\n\nfunction has_file_extension(filename: string, extensions: readonly string[]): boolean {\n\treturn extensions.some((extension) => filename.endsWith(extension));\n}\n\nfunction make_remote_client_wrapper_plugin(options?: EffectOptions): Plugin {\n\treturn {\n\t\tname: \"svelte-effect-runtime:remote-client\",\n\t\tenforce: \"post\",\n\n\t\tconfig() {\n\t\t\treturn { ssr: { noExternal: [\"svelte-effect-runtime\"] } };\n\t\t},\n\n\t\tconfigResolved(config) {\n\t\t\tconst no_external = config.ssr.noExternal;\n\t\t\tconst runtime_package = \"svelte-effect-runtime\";\n\n\t\t\tif (no_external === true) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (Array.isArray(no_external)) {\n\t\t\t\tconst has_runtime_package = no_external.some((entry) => entry === runtime_package);\n\n\t\t\t\tif (!has_runtime_package) {\n\t\t\t\t\tno_external.push(runtime_package);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconfig.ssr.noExternal = [no_external, runtime_package].filter(\n\t\t\t\t(value): value is string | RegExp => value !== undefined,\n\t\t\t);\n\t\t},\n\n\t\tasync transform(code: string, id: string) {\n\t\t\tif (!is_remote_module(id) || !code.includes(\"__sveltekit/remote\")) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst rewritten = await rewrite_remote_client_exports(code, options);\n\n\t\t\tif (rewritten === code) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn { code: rewritten, map: null };\n\t\t},\n\t};\n}\n\nfunction is_server_runtime_module(id: string): boolean {\n\tconst [filename] = id.split(\"?\", 2);\n\n\treturn (\n\t\t/\\.(server|remote)(?:\\.[cm])?\\.[jt]s$/.test(filename) ||\n\t\t/(?:^|[\\\\/])hooks\\.server(?:\\.[cm])?\\.[jt]s$/.test(filename)\n\t);\n}\n\nfunction is_remote_module(id: string): boolean {\n\treturn /\\.(remote|remote\\.[cm]?)\\.[jt]s(?:\\?.*)?$/.test(id) || id.includes(\".remote.\");\n}\n\nfunction is_svelte_component_module(id: string, extensions: readonly string[]): boolean {\n\tconst [filename, query = \"\"] = id.split(\"?\", 2);\n\n\tif (!extensions.some((extension) => filename.endsWith(extension))) {\n\t\treturn false;\n\t}\n\n\tif (query.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst params = new URLSearchParams(query);\n\tconst allowed_params = [\"t\", \"v\"];\n\n\treturn [...params.keys()].every((key) => allowed_params.includes(key));\n}\n\nfunction has_ser_syntax(code: string): boolean {\n\treturn /\\byield\\s*\\*/.test(code) || /<script\\b[^>]*\\beffect(?:[\\s=>]|$)/.test(code);\n}\n\nfunction find_reserved_helper_names(code: string): string[] {\n\tconst script_segments = [...code.matchAll(/<script\\b[^>]*>([\\s\\S]*?)<\\/script\\s*>/gi)].map(\n\t\t(match) => match[1] ?? \"\",\n\t);\n\tconst markup_segments = [...code.matchAll(/\\{[^{}]*(?:Dispatcher|Code)[^{}]*\\}/g)].map(\n\t\t(match) => match[0],\n\t);\n\tconst search_segments = [...script_segments, ...markup_segments];\n\n\treturn [\"Dispatcher\", \"Code\"].filter((name) =>\n\t\tsearch_segments.some((segment) => new RegExp(`\\\\b${name}\\\\b`).test(segment)),\n\t);\n}\n\nfunction make_reserved_helper_warning(names: string[]): string {\n\tconst quoted_names = names.map((name) => `\\`${name}\\``);\n\tconst subject =\n\t\tquoted_names.length === 1\n\t\t\t? quoted_names[0]\n\t\t\t: `${quoted_names.slice(0, -1).join(\", \")} and ${\n\t\t\t\t\tquoted_names[quoted_names.length - 1]\n\t\t\t\t}`;\n\tconst verb = names.length === 1 ? \"is\" : \"are\";\n\n\treturn [\n\t\t`[svelte-effect-runtime] ${subject} ${verb} reserved for generated markup helpers.`,\n\t\t`Rename or alias local bindings that use ${subject} before using SER syntax in this component.`,\n\t].join(\" \");\n}\n\n/**\n * Rewrites SvelteKit's generated client remote module from:\n *\n * `export const get_post = __remote.query(\"hash/get_post\")`\n *\n * into an Effect-aware wrapper around the same native function.\n *\n * @example\n * ```ts\n * const rewritten = await rewrite_remote_client_exports(remote_module_code);\n * ```\n *\n * @since 2.0.0\n * @param code - The generated client remote module code.\n * @param options - Optional plugin options.\n * @returns A promise that resolves to the rewritten module code.\n * @internal\n */\nexport async function rewrite_remote_client_exports(\n\tcode: string,\n\toptions?: EffectOptions,\n): Promise<string> {\n\tconst remote_client = await import(\"./compiler/remote-client.ts\");\n\n\treturn remote_client.rewrite_remote_client_exports(code, options);\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { _ as RuntimeAlreadyInitializedError, a as DispatcherDisposedError } from "./errors-Dcf0MVbq.js";
1
+ import { a as DispatcherDisposedError, v as RuntimeAlreadyInitializedError } from "./errors-IJjsUwrE.js";
2
2
  import { Cause, Effect, Exit, Fiber, Layer, ManagedRuntime } from "effect";
3
3
  import { createSubscriber } from "svelte/reactivity";
4
4
  import { isRedirect } from "@sveltejs/kit";
@@ -502,4 +502,4 @@ function reset_dispatcher() {
502
502
  //#endregion
503
503
  export { Code as i, get_dispatcher as n, reset_dispatcher as r, Dispatcher as t };
504
504
 
505
- //# sourceMappingURL=dispatcher-pHH4JcFR.js.map
505
+ //# sourceMappingURL=dispatcher-DOx8iC6r.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher-pHH4JcFR.js","names":["#notify_value_cells","#runtime","#emit_markup_value","#emit_markup_promise","#emit_markup_run","#disposed","#next_fiber_id","#fibers","#make_value_cache_key","#value_ids","#subscribe_value_cells","#value_cells","#interrupt_cached_fiber","#clear_pending_value_cell","#should_start_value_fiber","#start_value_fiber","#make_promise_cache_key","#promise_ids","#promise_values","#start_promise_fiber","#is_server_render","#clear_value_cells","#is_current_fiber","#set_value_cell","#complete_fiber","#publish_value_success","#publish_value_failure","#delete_value_cell"],"sources":["../../../modules/svelte-effect-runtime/src/dispatcher/fibers.ts","../../../modules/svelte-effect-runtime/src/dispatcher/deps.ts","../../../modules/svelte-effect-runtime/src/dispatcher/types.ts","../../../modules/svelte-effect-runtime/src/dispatcher/index.ts"],"sourcesContent":["import { Cause, Effect, Exit, Fiber } from \"effect\";\nimport type { Fiber as FiberType } from \"effect/Fiber\";\nimport type { ManagedRuntime as ManagedRuntimeType } from \"effect/ManagedRuntime\";\n\n/**\n * Callbacks fired when a watched dispatcher fiber completes.\n *\n * @example\n * ```ts\n * const callbacks: FiberWatchCallbacks<number> = {\n * on_success: (value) => cache.set(key, value),\n * };\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport interface FiberWatchCallbacks<A> {\n\ton_complete?: () => void;\n\ton_success?: (value: A) => void;\n\ton_failure?: (error: unknown) => void;\n\tsurface_failure?: boolean;\n}\n\n/**\n * Interrupts a dispatcher fiber through its managed runtime.\n *\n * @example\n * ```ts\n * interrupt_fiber(runtime, fiber);\n * ```\n *\n * @since 2.0.0\n * @param runtime - Managed runtime that owns the fiber.\n * @param fiber - Fiber to interrupt.\n * @returns Nothing.\n * @internal\n */\nexport function interrupt_fiber(\n\truntime: ManagedRuntimeType<unknown, unknown>,\n\tfiber: FiberType<unknown, unknown>,\n): void {\n\truntime.runFork(Fiber.interrupt(fiber) as Effect.Effect<unknown, unknown, unknown>);\n}\n\n/**\n * Watches a dispatcher fiber, runs completion callbacks, and surfaces\n * non-interrupt failures on the microtask queue.\n *\n * @example\n * ```ts\n * watch_fiber_exit({ runtime, fiber, on_complete: cleanup });\n * ```\n *\n * @since 2.0.0\n * @param options - Runtime, fiber, and callbacks used for the watcher.\n * @returns Nothing.\n * @internal\n */\nexport function watch_fiber_exit<A>(\n\toptions: {\n\t\truntime: ManagedRuntimeType<unknown, unknown>;\n\t\tfiber: FiberType<unknown, unknown>;\n\t} & FiberWatchCallbacks<A>,\n): void {\n\tconst { runtime, fiber, on_complete, on_success, on_failure, surface_failure = true } = options;\n\n\truntime.runFork(\n\t\tEffect.flatMap(Fiber.await(fiber), (exit) =>\n\t\t\tEffect.sync(() => {\n\t\t\t\tif (Exit.isSuccess(exit)) {\n\t\t\t\t\ton_success?.(exit.value as A);\n\t\t\t\t\ton_complete?.();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!Cause.hasInterruptsOnly(exit.cause)) {\n\t\t\t\t\tconst error = Cause.squash(exit.cause);\n\n\t\t\t\t\ton_failure?.(error);\n\n\t\t\t\t\tif (surface_failure) {\n\t\t\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ton_complete?.();\n\t\t\t}),\n\t\t),\n\t);\n}\n","const object_dep_ids = new WeakMap<object, number>();\nconst symbol_dep_ids = new Map<symbol, number>();\n\nlet next_object_dep_id = 0;\nlet next_symbol_dep_id = 0;\n\n/**\n * Builds a deterministic cache key from a dependency array.\n *\n * @example\n * ```ts\n * const key = hash_deps([user_id, filters]);\n * ```\n *\n * @since 2.0.0\n * @param deps - Dependency array to encode for cache lookup.\n * @returns A structured string key suitable for Map lookups.\n * @internal\n */\nexport function hash_deps(deps: readonly unknown[]): string {\n\tconst parts = deps.map((dep) => {\n\t\tif (dep === null) {\n\t\t\treturn \"l:null\";\n\t\t}\n\n\t\tif (dep === undefined) {\n\t\t\treturn \"u:undefined\";\n\t\t}\n\n\t\tconst type = typeof dep;\n\n\t\tif (type === \"string\") {\n\t\t\treturn [\"s\", dep];\n\t\t}\n\n\t\tif (type === \"number\") {\n\t\t\treturn `n:${Object.is(dep, -0) ? \"-0\" : String(dep)}`;\n\t\t}\n\n\t\tif (type === \"bigint\") {\n\t\t\treturn `b:${dep}`;\n\t\t}\n\n\t\tif (type === \"boolean\") {\n\t\t\treturn dep ? \"t:true\" : \"f:false\";\n\t\t}\n\n\t\tif (type === \"symbol\") {\n\t\t\treturn hash_symbol_dep(dep as symbol);\n\t\t}\n\n\t\treturn hash_object_dep(dep as object);\n\t});\n\n\treturn JSON.stringify(parts);\n}\n\nfunction hash_symbol_dep(dep: symbol): string {\n\tlet id = symbol_dep_ids.get(dep);\n\n\tif (id === undefined) {\n\t\tnext_symbol_dep_id += 1;\n\t\tid = next_symbol_dep_id;\n\t\tsymbol_dep_ids.set(dep, id);\n\t}\n\n\treturn `y:${id}`;\n}\n\nfunction hash_object_dep(dep: object): string {\n\tlet id = object_dep_ids.get(dep);\n\n\tif (id === undefined) {\n\t\tnext_object_dep_id += 1;\n\t\tid = next_object_dep_id;\n\t\tobject_dep_ids.set(dep, id);\n\t}\n\n\treturn `o:${id}`;\n}\n","import type { Effect } from \"effect\";\n\n/**\n * Stable operation codes used by transform-generated dispatcher events.\n *\n * @example\n * ```ts\n * const type = Code.Markup.Promise;\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport const Code = {\n\tMarkup: {\n\t\tPromise: \"MarkupPromise\",\n\t\tRun: \"MarkupRun\",\n\t\tValue: \"MarkupValue\",\n\t},\n} as const;\n\n/**\n * Options for markup promise behavior during server rendering.\n *\n * @example\n * ```ts\n * const options: MarkupPromiseOptions = { ssr: \"pending\" };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupPromiseOptions {\n\t/** Keep the SSR promise pending so Svelte renders an await block fallback. */\n\tssr?: \"pending\";\n}\n\n/**\n * Minimal cleanup handle returned by dispatcher lifecycle hooks.\n *\n * @example\n * ```ts\n * const dispose: Dispose = dispatcher.fork(program);\n * dispose();\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport type Dispose = () => void;\n\n/**\n * Options for a cached dispatcher value block.\n *\n * @example\n * ```ts\n * const options: ValueOptions<number> = {\n * id: \"count\",\n * deps: [],\n * fallback: 0,\n * factory: () => Effect.succeed(1),\n * };\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport interface ValueOptions<A> {\n\t/** Stable cache key for this value block. */\n\tid: string;\n\t/** Reactive dependency array. */\n\tdeps: readonly unknown[];\n\t/** Value returned synchronously while the effect is running or during SSR. */\n\tfallback: A;\n\t/** Generator function that yields the effect to run. */\n\tfactory: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Options for a cached dispatcher promise block.\n *\n * @example\n * ```ts\n * const options: PromiseOptions<number> = {\n * id: \"count\",\n * deps: [],\n * factory: () => Effect.succeed(1),\n * };\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport interface PromiseOptions<A> {\n\t/** Stable cache key for this promise block. */\n\tid: string;\n\t/** Reactive dependency array. */\n\tdeps: readonly unknown[];\n\t/** Generator function that yields the effect to run. */\n\tfactory: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Generated event that reads a markup expression through the cached value\n * channel.\n *\n * @example\n * ```ts\n * const event: MarkupValueEvent<number, undefined> = {\n * type: Code.Markup.Value,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fallback: undefined,\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupValueEvent<A, F> {\n\t/** Dispatcher code identifying a markup value read. */\n\ttype: typeof Code.Markup.Value;\n\t/** Stable identifier generated from the expression's source position. */\n\tid: string;\n\t/** Reactive dependency array captured from free identifiers. */\n\tdeps: readonly unknown[];\n\t/** Value returned synchronously while the effect is pending. */\n\tfallback: F;\n\t/** Generator function that yields the effect to run. */\n\tfn: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Generated event that reads a markup expression through the cached promise\n * channel.\n *\n * @example\n * ```ts\n * const event: MarkupPromiseEvent<number> = {\n * type: Code.Markup.Promise,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupPromiseEvent<A> {\n\t/** Dispatcher code identifying a markup promise read. */\n\ttype: typeof Code.Markup.Promise;\n\t/** Stable identifier generated from the expression's source position. */\n\tid: string;\n\t/** Reactive dependency array captured from free identifiers. */\n\tdeps: readonly unknown[];\n\t/** Generator function that yields the effect to run. */\n\tfn: () => Effect.gen.Return<A, unknown, unknown>;\n\t/** Value resolved during SSR when a fallback is required. */\n\tssr_fallback?: A;\n\t/** Optional SSR behavior for await blocks and similar contexts. */\n\toptions?: MarkupPromiseOptions;\n}\n\n/**\n * Generated event that runs an event-handler Effect.\n *\n * @example\n * ```ts\n * const event: MarkupRunEvent<void> = {\n * type: Code.Markup.Run,\n * fn: function* () {\n * yield* Effect.void;\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupRunEvent<A> {\n\t/** Dispatcher code identifying a markup event-handler run. */\n\ttype: typeof Code.Markup.Run;\n\t/** Generator function that yields the effect to run. */\n\tfn: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Union of generated dispatcher events.\n *\n * @example\n * ```ts\n * const event: DispatcherEvent<number, undefined> = {\n * type: Code.Markup.Value,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fallback: undefined,\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport type DispatcherEvent<A, F = A> =\n\t| MarkupPromiseEvent<A>\n\t| MarkupRunEvent<A>\n\t| MarkupValueEvent<A, F>;\n","import type { ManagedRuntime as ManagedRuntimeType } from \"effect/ManagedRuntime\";\nimport { Cause, Effect, Exit, Fiber, Layer, ManagedRuntime } from \"effect\";\nimport { createSubscriber } from \"svelte/reactivity\";\nimport type { Fiber as FiberType } from \"effect/Fiber\";\nimport { isRedirect } from \"@sveltejs/kit\";\n\nimport { RuntimeAlreadyInitializedError, DispatcherDisposedError } from \"$/errors.ts\";\nimport { interrupt_fiber, watch_fiber_exit } from \"./fibers.ts\";\nimport { hash_deps } from \"./deps.ts\";\nimport { Code } from \"./types.ts\";\nimport type {\n\tDispatcherEvent,\n\tDispose,\n\tMarkupPromiseEvent,\n\tMarkupRunEvent,\n\tMarkupValueEvent,\n\tPromiseOptions,\n\tValueOptions,\n} from \"./types.ts\";\n\nexport { Code } from \"./types.ts\";\nexport type { Dispose, PromiseOptions, ValueOptions } from \"./types.ts\";\n\ntype ValueCell<A> =\n\t| {\n\t\t\treadonly status: \"pending\";\n\t\t\treadonly fiber: FiberType<unknown, unknown>;\n\t }\n\t| {\n\t\t\treadonly status: \"success\";\n\t\t\treadonly value: A;\n\t }\n\t| {\n\t\t\treadonly status: \"failure\";\n\t\t\treadonly error: unknown;\n\t };\n\n/**\n * Unified effect block dispatcher. Manages the fiber lifecycle of every\n * effect block and wires results into reactive channels.\n *\n * @example\n * ```ts\n * const dispatcher = new Dispatcher();\n * const cancel = dispatcher.fork(Effect.log(\"running\"));\n * cancel();\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport class Dispatcher {\n\t/** The underlying Effect runtime that executes forked programs. */\n\t#runtime: ManagedRuntimeType<unknown, unknown>;\n\t/** Active fibers keyed by cache id or generated fork id. */\n\t#fibers = new Map<string, FiberType<unknown, unknown>>();\n\t/** Reactive value cells keyed by value cache id. */\n\t#value_cells = new Map<string, ValueCell<unknown>>();\n\t/** Notifies subscribed Svelte template effects when value cells change. */\n\t#notify_value_cells = (): void => {};\n\t/** Subscribes the current Svelte tracking scope to value cell changes. */\n\t#subscribe_value_cells = createSubscriber((update) => {\n\t\tthis.#notify_value_cells = update;\n\n\t\treturn () => {\n\t\t\tif (this.#notify_value_cells !== update) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.#notify_value_cells = (): void => {};\n\t\t};\n\t});\n\t/** Pending promises keyed by promise cache id. */\n\t#promise_values = new Map<string, Promise<unknown>>();\n\t/** Current cache key per value block id. */\n\t#value_ids = new Map<string, string>();\n\t/** Current cache key per promise block id. */\n\t#promise_ids = new Map<string, string>();\n\t/** Whether dispose has been called, blocking new work. */\n\t#disposed = false;\n\t/** Monotonically increasing counter for unnamed fiber keys. */\n\t#next_fiber_id = 0;\n\n\t/**\n\t * Creates a dispatcher with an optional layer and installs it as the global\n\t * singleton returned by {@link get_dispatcher}.\n\t *\n\t * @example\n\t * ```ts\n\t * const dispatcher = Dispatcher.make(Db.Live);\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param layer - Optional Effect layer to provide to the runtime.\n\t * @returns The newly created dispatcher.\n\t */\n\tstatic make<R = never>(layer?: Layer.Layer<R>): Dispatcher {\n\t\tif (current_dispatcher) {\n\t\t\tthrow new RuntimeAlreadyInitializedError(\"ClientRuntime\");\n\t\t}\n\n\t\tconst runtime = ManagedRuntime.make(layer ?? (Layer.empty as unknown as Layer.Layer<R>));\n\n\t\tconst dispatcher = new Dispatcher(runtime as ManagedRuntimeType<unknown, unknown>);\n\t\tcurrent_dispatcher = dispatcher;\n\n\t\treturn dispatcher;\n\t}\n\n\t/**\n\t * Creates a dispatcher backed by the provided managed runtime.\n\t *\n\t * @example\n\t * ```ts\n\t * const dispatcher = new Dispatcher(runtime);\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param runtime - Managed runtime to use, or an empty-layer runtime when\n\t * omitted.\n\t */\n\tconstructor(runtime?: ManagedRuntimeType<unknown, unknown>) {\n\t\tthis.#runtime =\n\t\t\truntime ??\n\t\t\t(ManagedRuntime.make(Layer.empty) as unknown as ManagedRuntimeType<unknown, unknown>);\n\t}\n\n\t/**\n\t * Handles a transform-generated dispatcher event.\n\t *\n\t * @example\n\t * ```ts\n\t * const value = dispatcher.emit({\n\t * type: Code.Markup.Value,\n\t * id: \"Component.svelte:1:2\",\n\t * deps: [],\n\t * fallback: undefined,\n\t * fn: function* () {\n\t * return yield* Effect.succeed(1);\n\t * },\n\t * });\n\t * ```\n\t *\n\t * @since 3.3.0\n\t * @param event - Generated event describing the dispatcher operation to run.\n\t * @returns The operation result for the emitted dispatcher event.\n\t */\n\temit<A, F>(event: MarkupValueEvent<A, F>): A | F;\n\temit<A>(event: MarkupPromiseEvent<A>): Promise<A>;\n\temit<A>(event: MarkupRunEvent<A>): Promise<A>;\n\temit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A>;\n\temit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A> {\n\t\tswitch (event.type) {\n\t\t\tcase Code.Markup.Value:\n\t\t\t\treturn this.#emit_markup_value(event);\n\n\t\t\tcase Code.Markup.Promise:\n\t\t\t\treturn this.#emit_markup_promise(event);\n\n\t\t\tcase Code.Markup.Run:\n\t\t\t\treturn this.#emit_markup_run(event);\n\t\t}\n\t}\n\n\t/**\n\t * Forks an effect as a managed fiber and returns a cleanup function.\n\t *\n\t * @example\n\t * ```ts\n\t * const dispose = dispatcher.fork(Effect.log(\"clicked\"));\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param effect - Effect to fork.\n\t * @returns A function that interrupts the fiber.\n\t */\n\tfork<A, E, R>(effect: Effect.Effect<A, E, R>): Dispose {\n\t\tif (this.#disposed) {\n\t\t\treturn () => {};\n\t\t}\n\n\t\tconst fiber = this.#runtime.runFork(effect as Effect.Effect<unknown, unknown, unknown>);\n\t\tconst key = `fork:${this.#next_fiber_id}`;\n\n\t\tthis.#next_fiber_id += 1;\n\t\tthis.#fibers.set(key, fiber);\n\t\twatch_fiber_exit({\n\t\t\truntime: this.#runtime,\n\t\t\tfiber,\n\t\t\ton_complete: () => this.#fibers.delete(key),\n\t\t});\n\n\t\tlet disposed = false;\n\n\t\treturn (): void => {\n\t\t\tif (disposed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdisposed = true;\n\t\t\tinterrupt_fiber(this.#runtime, fiber);\n\t\t};\n\t}\n\n\t/**\n\t * Forks an effect and exposes its result as a cached reactive value.\n\t *\n\t * @example\n\t * ```ts\n\t * const user = dispatcher.value({ id, deps, fallback, factory });\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param options - Value id, dependency array, fallback, and effect factory.\n\t * @returns The cached value if resolved, otherwise the fallback.\n\t */\n\tvalue<A>(options: ValueOptions<A>): A {\n\t\tif (this.#disposed) {\n\t\t\treturn options.fallback;\n\t\t}\n\n\t\tconst cache_key = this.#make_value_cache_key(options.id, options.deps);\n\t\tconst old_key = this.#value_ids.get(options.id);\n\n\t\tthis.#subscribe_value_cells();\n\n\t\tconst cell = this.#value_cells.get(cache_key);\n\n\t\tif (old_key !== undefined && old_key !== cache_key) {\n\t\t\tconst old_fiber = this.#interrupt_cached_fiber(old_key);\n\n\t\t\tthis.#clear_pending_value_cell(old_key, old_fiber);\n\t\t}\n\n\t\tthis.#value_ids.set(options.id, cache_key);\n\n\t\tif (this.#should_start_value_fiber(cache_key, cell)) {\n\t\t\tthis.#start_value_fiber(cache_key, options);\n\t\t}\n\n\t\tif (cell?.status === \"success\") {\n\t\t\treturn cell.value as A;\n\t\t}\n\n\t\tif (cell?.status === \"failure\") {\n\t\t\tthrow cell.error;\n\t\t}\n\n\t\treturn options.fallback;\n\t}\n\n\t/**\n\t * Forks an effect and exposes its completion as a cached promise.\n\t *\n\t * @example\n\t * ```ts\n\t * const promise = dispatcher.promise({ id, deps, factory });\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param options - Promise id, dependency array, and effect factory.\n\t * @returns A promise that resolves with the effect result.\n\t */\n\tpromise<A>(options: PromiseOptions<A>): Promise<A> {\n\t\tif (this.#disposed) {\n\t\t\treturn Promise.reject(new DispatcherDisposedError());\n\t\t}\n\n\t\tconst cache_key = this.#make_promise_cache_key(options.id, options.deps);\n\t\tconst old_key = this.#promise_ids.get(options.id);\n\n\t\tif (old_key !== undefined && old_key !== cache_key) {\n\t\t\tthis.#interrupt_cached_fiber(old_key);\n\t\t\tthis.#promise_values.delete(old_key);\n\t\t}\n\n\t\tthis.#promise_ids.set(options.id, cache_key);\n\n\t\tconst existing = this.#promise_values.get(cache_key);\n\n\t\tif (existing) {\n\t\t\treturn existing as Promise<A>;\n\t\t}\n\n\t\tconst promise = this.#start_promise_fiber(cache_key, options);\n\n\t\tthis.#promise_values.set(cache_key, promise);\n\n\t\treturn promise;\n\t}\n\n\t/**\n\t * Runs an event-handler effect and surfaces failures to Svelte.\n\t *\n\t * @example\n\t * ```ts\n\t * await dispatcher.run(Effect.log(\"submit\"));\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param effect - Effect to execute.\n\t * @returns A promise that resolves or rejects when the effect completes.\n\t */\n\trun<A, E, R>(effect: Effect.Effect<A, E, R>): Promise<A> {\n\t\tif (this.#disposed) {\n\t\t\treturn Promise.reject(new DispatcherDisposedError());\n\t\t}\n\n\t\tconst ExitProgram = Effect.exit(effect) as Effect.Effect<unknown, unknown, unknown>;\n\n\t\treturn this.#runtime.runPromise(ExitProgram).then((exit: unknown) => {\n\t\t\tconst result = exit as Exit.Exit<A, E>;\n\n\t\t\tif (Exit.isSuccess(result)) {\n\t\t\t\treturn result.value;\n\t\t\t}\n\n\t\t\tif (Cause.hasInterruptsOnly(result.cause)) {\n\t\t\t\treturn undefined as A;\n\t\t\t}\n\n\t\t\tconst error = Cause.squash(result.cause);\n\n\t\t\tif (isRedirect(error)) {\n\t\t\t\treturn undefined as A;\n\t\t\t}\n\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tthrow error;\n\t\t\t});\n\n\t\t\tthrow error;\n\t\t});\n\t}\n\n\t#emit_markup_value<A, F>(event: MarkupValueEvent<A, F>): A | F {\n\t\tif (this.#is_server_render()) {\n\t\t\treturn event.fallback;\n\t\t}\n\n\t\treturn this.value<A | F>({\n\t\t\tid: event.id,\n\t\t\tdeps: event.deps,\n\t\t\tfallback: event.fallback,\n\t\t\tfactory: event.fn,\n\t\t});\n\t}\n\n\t#emit_markup_promise<A>(event: MarkupPromiseEvent<A>): Promise<A> {\n\t\tif (this.#is_server_render()) {\n\t\t\tif (event.options?.ssr === \"pending\") {\n\t\t\t\treturn new Promise<A>(() => {});\n\t\t\t}\n\n\t\t\tif (\"ssr_fallback\" in event) {\n\t\t\t\treturn Promise.resolve(event.ssr_fallback as A);\n\t\t\t}\n\t\t}\n\n\t\treturn this.promise({\n\t\t\tid: event.id,\n\t\t\tdeps: event.deps,\n\t\t\tfactory: event.fn,\n\t\t});\n\t}\n\n\t#emit_markup_run<A>(event: MarkupRunEvent<A>): Promise<A> {\n\t\tconst Program = Effect.gen(event.fn);\n\n\t\treturn this.run(Program);\n\t}\n\n\t/**\n\t * Cancels all running fibers and releases cached values.\n\t *\n\t * @example\n\t * ```ts\n\t * dispatcher.dispose();\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @returns Nothing.\n\t */\n\tdispose(): void {\n\t\tthis.#disposed = true;\n\n\t\tfor (const fiber of this.#fibers.values()) {\n\t\t\tinterrupt_fiber(this.#runtime, fiber);\n\t\t}\n\n\t\tthis.#fibers.clear();\n\t\tthis.#clear_value_cells();\n\t\tthis.#promise_values.clear();\n\t\tthis.#value_ids.clear();\n\t\tthis.#promise_ids.clear();\n\n\t\tvoid this.#runtime.dispose().catch((error: unknown) => {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t});\n\t}\n\n\t#make_value_cache_key(id: string, deps: readonly unknown[]): string {\n\t\treturn `value:${id}::${hash_deps(deps)}`;\n\t}\n\n\t#make_promise_cache_key(id: string, deps: readonly unknown[]): string {\n\t\treturn `promise:${id}::${hash_deps(deps)}`;\n\t}\n\n\t#is_server_render(): boolean {\n\t\treturn typeof document === \"undefined\";\n\t}\n\n\t#interrupt_cached_fiber(cache_key: string): FiberType<unknown, unknown> | undefined {\n\t\tconst old_fiber = this.#fibers.get(cache_key);\n\n\t\tif (!old_fiber) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tinterrupt_fiber(this.#runtime, old_fiber);\n\t\tthis.#fibers.delete(cache_key);\n\n\t\treturn old_fiber;\n\t}\n\n\t#should_start_value_fiber(cache_key: string, cell: ValueCell<unknown> | undefined): boolean {\n\t\treturn !this.#disposed && !this.#fibers.has(cache_key) && cell === undefined;\n\t}\n\n\t#start_value_fiber<A>(cache_key: string, options: ValueOptions<A>): void {\n\t\tconst Program = Effect.gen(function* () {\n\t\t\tconst result = yield* Effect.gen(options.factory);\n\n\t\t\treturn result;\n\t\t});\n\t\tconst fiber = this.#runtime.runFork(Program as Effect.Effect<unknown, unknown, unknown>);\n\n\t\tthis.#fibers.set(cache_key, fiber);\n\n\t\tqueueMicrotask(() => {\n\t\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.#value_cells.has(cache_key)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.#set_value_cell(cache_key, {\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tfiber,\n\t\t\t});\n\t\t});\n\n\t\twatch_fiber_exit({\n\t\t\truntime: this.#runtime,\n\t\t\tfiber,\n\t\t\tsurface_failure: false,\n\t\t\ton_complete: () => this.#complete_fiber(cache_key, fiber),\n\t\t\ton_success: (value) => this.#publish_value_success(cache_key, fiber, value),\n\t\t\ton_failure: (error) => this.#publish_value_failure(cache_key, fiber, error),\n\t\t});\n\t}\n\n\t#start_promise_fiber<A>(cache_key: string, options: PromiseOptions<A>): Promise<A> {\n\t\tconst Program = Effect.gen(function* () {\n\t\t\tconst result = yield* Effect.gen(options.factory);\n\n\t\t\treturn result;\n\t\t});\n\t\tconst fiber = this.#runtime.runFork(Program as Effect.Effect<unknown, unknown, unknown>);\n\n\t\tthis.#fibers.set(cache_key, fiber);\n\n\t\treturn this.#runtime.runPromise(\n\t\t\tEffect.flatMap(Fiber.await(fiber), (exit) =>\n\t\t\t\tEffect.sync(() => {\n\t\t\t\t\tconst is_current = this.#is_current_fiber(cache_key, fiber);\n\n\t\t\t\t\tif (is_current) {\n\t\t\t\t\t\tthis.#fibers.delete(cache_key);\n\t\t\t\t\t\tthis.#promise_values.delete(cache_key);\n\n\t\t\t\t\t\tif (this.#promise_ids.get(options.id) === cache_key) {\n\t\t\t\t\t\t\tthis.#promise_ids.delete(options.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Exit.isSuccess(exit)) {\n\t\t\t\t\t\treturn exit.value as A;\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow Cause.squash(exit.cause);\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\t}\n\n\t#clear_pending_value_cell(\n\t\tcache_key: string,\n\t\tfiber: FiberType<unknown, unknown> | undefined,\n\t): void {\n\t\tconst cell = this.#value_cells.get(cache_key);\n\n\t\tif (cell?.status !== \"pending\") {\n\t\t\treturn;\n\t\t}\n\n\t\tif (fiber !== undefined && cell.fiber !== fiber) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#delete_value_cell(cache_key);\n\t}\n\n\t#complete_fiber(cache_key: string, fiber: FiberType<unknown, unknown>): void {\n\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#fibers.delete(cache_key);\n\t}\n\n\t#publish_value_success<A>(\n\t\tcache_key: string,\n\t\tfiber: FiberType<unknown, unknown>,\n\t\tvalue: A,\n\t): void {\n\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#set_value_cell(cache_key, {\n\t\t\tstatus: \"success\",\n\t\t\tvalue,\n\t\t});\n\t}\n\n\t#publish_value_failure(\n\t\tcache_key: string,\n\t\tfiber: FiberType<unknown, unknown>,\n\t\terror: unknown,\n\t): void {\n\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#set_value_cell(cache_key, {\n\t\t\tstatus: \"failure\",\n\t\t\terror,\n\t\t});\n\t}\n\n\t#set_value_cell(cache_key: string, cell: ValueCell<unknown>): void {\n\t\tthis.#value_cells.set(cache_key, cell);\n\t\tthis.#notify_value_cells();\n\t}\n\n\t#delete_value_cell(cache_key: string): void {\n\t\tconst deleted = this.#value_cells.delete(cache_key);\n\n\t\tif (!deleted) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#notify_value_cells();\n\t}\n\n\t#clear_value_cells(): void {\n\t\tif (this.#value_cells.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#value_cells.clear();\n\t\tthis.#notify_value_cells();\n\t}\n\n\t#is_current_fiber(cache_key: string, fiber: FiberType<unknown, unknown>): boolean {\n\t\treturn !this.#disposed && this.#fibers.get(cache_key) === fiber;\n\t}\n}\n\nlet current_dispatcher: Dispatcher | null = null;\n\n/**\n * Resolves the active dispatcher, creating a default one if necessary.\n *\n * @example\n * ```ts\n * const dispatcher = get_dispatcher();\n * ```\n *\n * @since 2.0.0\n * @returns The active dispatcher singleton.\n * @internal\n */\nexport function get_dispatcher(): Dispatcher {\n\tcurrent_dispatcher ??= new Dispatcher();\n\n\treturn current_dispatcher;\n}\n\n/**\n * Resets the internal singleton dispatcher used by source-level tests.\n *\n * @example\n * ```ts\n * reset_dispatcher();\n * ```\n *\n * @since 2.0.0\n * @returns Nothing.\n * @internal\n */\nexport function reset_dispatcher(): void {\n\tcurrent_dispatcher?.dispose();\n\tcurrent_dispatcher = null;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher-DOx8iC6r.js","names":["#notify_value_cells","#runtime","#emit_markup_value","#emit_markup_promise","#emit_markup_run","#disposed","#next_fiber_id","#fibers","#make_value_cache_key","#value_ids","#subscribe_value_cells","#value_cells","#interrupt_cached_fiber","#clear_pending_value_cell","#should_start_value_fiber","#start_value_fiber","#make_promise_cache_key","#promise_ids","#promise_values","#start_promise_fiber","#is_server_render","#clear_value_cells","#is_current_fiber","#set_value_cell","#complete_fiber","#publish_value_success","#publish_value_failure","#delete_value_cell"],"sources":["../../../modules/svelte-effect-runtime/src/dispatcher/fibers.ts","../../../modules/svelte-effect-runtime/src/dispatcher/deps.ts","../../../modules/svelte-effect-runtime/src/dispatcher/types.ts","../../../modules/svelte-effect-runtime/src/dispatcher/index.ts"],"sourcesContent":["import { Cause, Effect, Exit, Fiber } from \"effect\";\nimport type { Fiber as FiberType } from \"effect/Fiber\";\nimport type { ManagedRuntime as ManagedRuntimeType } from \"effect/ManagedRuntime\";\n\n/**\n * Callbacks fired when a watched dispatcher fiber completes.\n *\n * @example\n * ```ts\n * const callbacks: FiberWatchCallbacks<number> = {\n * on_success: (value) => cache.set(key, value),\n * };\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport interface FiberWatchCallbacks<A> {\n\ton_complete?: () => void;\n\ton_success?: (value: A) => void;\n\ton_failure?: (error: unknown) => void;\n\tsurface_failure?: boolean;\n}\n\n/**\n * Interrupts a dispatcher fiber through its managed runtime.\n *\n * @example\n * ```ts\n * interrupt_fiber(runtime, fiber);\n * ```\n *\n * @since 2.0.0\n * @param runtime - Managed runtime that owns the fiber.\n * @param fiber - Fiber to interrupt.\n * @returns Nothing.\n * @internal\n */\nexport function interrupt_fiber(\n\truntime: ManagedRuntimeType<unknown, unknown>,\n\tfiber: FiberType<unknown, unknown>,\n): void {\n\truntime.runFork(Fiber.interrupt(fiber) as Effect.Effect<unknown, unknown, unknown>);\n}\n\n/**\n * Watches a dispatcher fiber, runs completion callbacks, and surfaces\n * non-interrupt failures on the microtask queue.\n *\n * @example\n * ```ts\n * watch_fiber_exit({ runtime, fiber, on_complete: cleanup });\n * ```\n *\n * @since 2.0.0\n * @param options - Runtime, fiber, and callbacks used for the watcher.\n * @returns Nothing.\n * @internal\n */\nexport function watch_fiber_exit<A>(\n\toptions: {\n\t\truntime: ManagedRuntimeType<unknown, unknown>;\n\t\tfiber: FiberType<unknown, unknown>;\n\t} & FiberWatchCallbacks<A>,\n): void {\n\tconst { runtime, fiber, on_complete, on_success, on_failure, surface_failure = true } = options;\n\n\truntime.runFork(\n\t\tEffect.flatMap(Fiber.await(fiber), (exit) =>\n\t\t\tEffect.sync(() => {\n\t\t\t\tif (Exit.isSuccess(exit)) {\n\t\t\t\t\ton_success?.(exit.value as A);\n\t\t\t\t\ton_complete?.();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!Cause.hasInterruptsOnly(exit.cause)) {\n\t\t\t\t\tconst error = Cause.squash(exit.cause);\n\n\t\t\t\t\ton_failure?.(error);\n\n\t\t\t\t\tif (surface_failure) {\n\t\t\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ton_complete?.();\n\t\t\t}),\n\t\t),\n\t);\n}\n","const object_dep_ids = new WeakMap<object, number>();\nconst symbol_dep_ids = new Map<symbol, number>();\n\nlet next_object_dep_id = 0;\nlet next_symbol_dep_id = 0;\n\n/**\n * Builds a deterministic cache key from a dependency array.\n *\n * @example\n * ```ts\n * const key = hash_deps([user_id, filters]);\n * ```\n *\n * @since 2.0.0\n * @param deps - Dependency array to encode for cache lookup.\n * @returns A structured string key suitable for Map lookups.\n * @internal\n */\nexport function hash_deps(deps: readonly unknown[]): string {\n\tconst parts = deps.map((dep) => {\n\t\tif (dep === null) {\n\t\t\treturn \"l:null\";\n\t\t}\n\n\t\tif (dep === undefined) {\n\t\t\treturn \"u:undefined\";\n\t\t}\n\n\t\tconst type = typeof dep;\n\n\t\tif (type === \"string\") {\n\t\t\treturn [\"s\", dep];\n\t\t}\n\n\t\tif (type === \"number\") {\n\t\t\treturn `n:${Object.is(dep, -0) ? \"-0\" : String(dep)}`;\n\t\t}\n\n\t\tif (type === \"bigint\") {\n\t\t\treturn `b:${dep}`;\n\t\t}\n\n\t\tif (type === \"boolean\") {\n\t\t\treturn dep ? \"t:true\" : \"f:false\";\n\t\t}\n\n\t\tif (type === \"symbol\") {\n\t\t\treturn hash_symbol_dep(dep as symbol);\n\t\t}\n\n\t\treturn hash_object_dep(dep as object);\n\t});\n\n\treturn JSON.stringify(parts);\n}\n\nfunction hash_symbol_dep(dep: symbol): string {\n\tlet id = symbol_dep_ids.get(dep);\n\n\tif (id === undefined) {\n\t\tnext_symbol_dep_id += 1;\n\t\tid = next_symbol_dep_id;\n\t\tsymbol_dep_ids.set(dep, id);\n\t}\n\n\treturn `y:${id}`;\n}\n\nfunction hash_object_dep(dep: object): string {\n\tlet id = object_dep_ids.get(dep);\n\n\tif (id === undefined) {\n\t\tnext_object_dep_id += 1;\n\t\tid = next_object_dep_id;\n\t\tobject_dep_ids.set(dep, id);\n\t}\n\n\treturn `o:${id}`;\n}\n","import type { Effect } from \"effect\";\n\n/**\n * Stable operation codes used by transform-generated dispatcher events.\n *\n * @example\n * ```ts\n * const type = Code.Markup.Promise;\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport const Code = {\n\tMarkup: {\n\t\tPromise: \"MarkupPromise\",\n\t\tRun: \"MarkupRun\",\n\t\tValue: \"MarkupValue\",\n\t},\n} as const;\n\n/**\n * Options for markup promise behavior during server rendering.\n *\n * @example\n * ```ts\n * const options: MarkupPromiseOptions = { ssr: \"pending\" };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupPromiseOptions {\n\t/** Keep the SSR promise pending so Svelte renders an await block fallback. */\n\tssr?: \"pending\";\n}\n\n/**\n * Minimal cleanup handle returned by dispatcher lifecycle hooks.\n *\n * @example\n * ```ts\n * const dispose: Dispose = dispatcher.fork(program);\n * dispose();\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport type Dispose = () => void;\n\n/**\n * Options for a cached dispatcher value block.\n *\n * @example\n * ```ts\n * const options: ValueOptions<number> = {\n * id: \"count\",\n * deps: [],\n * fallback: 0,\n * factory: () => Effect.succeed(1),\n * };\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport interface ValueOptions<A> {\n\t/** Stable cache key for this value block. */\n\tid: string;\n\t/** Reactive dependency array. */\n\tdeps: readonly unknown[];\n\t/** Value returned synchronously while the effect is running or during SSR. */\n\tfallback: A;\n\t/** Generator function that yields the effect to run. */\n\tfactory: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Options for a cached dispatcher promise block.\n *\n * @example\n * ```ts\n * const options: PromiseOptions<number> = {\n * id: \"count\",\n * deps: [],\n * factory: () => Effect.succeed(1),\n * };\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport interface PromiseOptions<A> {\n\t/** Stable cache key for this promise block. */\n\tid: string;\n\t/** Reactive dependency array. */\n\tdeps: readonly unknown[];\n\t/** Generator function that yields the effect to run. */\n\tfactory: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Generated event that reads a markup expression through the cached value\n * channel.\n *\n * @example\n * ```ts\n * const event: MarkupValueEvent<number, undefined> = {\n * type: Code.Markup.Value,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fallback: undefined,\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupValueEvent<A, F> {\n\t/** Dispatcher code identifying a markup value read. */\n\ttype: typeof Code.Markup.Value;\n\t/** Stable identifier generated from the expression's source position. */\n\tid: string;\n\t/** Reactive dependency array captured from free identifiers. */\n\tdeps: readonly unknown[];\n\t/** Value returned synchronously while the effect is pending. */\n\tfallback: F;\n\t/** Generator function that yields the effect to run. */\n\tfn: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Generated event that reads a markup expression through the cached promise\n * channel.\n *\n * @example\n * ```ts\n * const event: MarkupPromiseEvent<number> = {\n * type: Code.Markup.Promise,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupPromiseEvent<A> {\n\t/** Dispatcher code identifying a markup promise read. */\n\ttype: typeof Code.Markup.Promise;\n\t/** Stable identifier generated from the expression's source position. */\n\tid: string;\n\t/** Reactive dependency array captured from free identifiers. */\n\tdeps: readonly unknown[];\n\t/** Generator function that yields the effect to run. */\n\tfn: () => Effect.gen.Return<A, unknown, unknown>;\n\t/** Value resolved during SSR when a fallback is required. */\n\tssr_fallback?: A;\n\t/** Optional SSR behavior for await blocks and similar contexts. */\n\toptions?: MarkupPromiseOptions;\n}\n\n/**\n * Generated event that runs an event-handler Effect.\n *\n * @example\n * ```ts\n * const event: MarkupRunEvent<void> = {\n * type: Code.Markup.Run,\n * fn: function* () {\n * yield* Effect.void;\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport interface MarkupRunEvent<A> {\n\t/** Dispatcher code identifying a markup event-handler run. */\n\ttype: typeof Code.Markup.Run;\n\t/** Generator function that yields the effect to run. */\n\tfn: () => Effect.gen.Return<A, unknown, unknown>;\n}\n\n/**\n * Union of generated dispatcher events.\n *\n * @example\n * ```ts\n * const event: DispatcherEvent<number, undefined> = {\n * type: Code.Markup.Value,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fallback: undefined,\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * };\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport type DispatcherEvent<A, F = A> =\n\t| MarkupPromiseEvent<A>\n\t| MarkupRunEvent<A>\n\t| MarkupValueEvent<A, F>;\n","import type { ManagedRuntime as ManagedRuntimeType } from \"effect/ManagedRuntime\";\nimport { Cause, Effect, Exit, Fiber, Layer, ManagedRuntime } from \"effect\";\nimport { createSubscriber } from \"svelte/reactivity\";\nimport type { Fiber as FiberType } from \"effect/Fiber\";\nimport { isRedirect } from \"@sveltejs/kit\";\n\nimport { RuntimeAlreadyInitializedError, DispatcherDisposedError } from \"$/errors.ts\";\nimport { interrupt_fiber, watch_fiber_exit } from \"./fibers.ts\";\nimport { hash_deps } from \"./deps.ts\";\nimport { Code } from \"./types.ts\";\nimport type {\n\tDispatcherEvent,\n\tDispose,\n\tMarkupPromiseEvent,\n\tMarkupRunEvent,\n\tMarkupValueEvent,\n\tPromiseOptions,\n\tValueOptions,\n} from \"./types.ts\";\n\nexport { Code } from \"./types.ts\";\nexport type { Dispose, PromiseOptions, ValueOptions } from \"./types.ts\";\n\ntype ValueCell<A> =\n\t| {\n\t\t\treadonly status: \"pending\";\n\t\t\treadonly fiber: FiberType<unknown, unknown>;\n\t }\n\t| {\n\t\t\treadonly status: \"success\";\n\t\t\treadonly value: A;\n\t }\n\t| {\n\t\t\treadonly status: \"failure\";\n\t\t\treadonly error: unknown;\n\t };\n\n/**\n * Unified effect block dispatcher. Manages the fiber lifecycle of every\n * effect block and wires results into reactive channels.\n *\n * @example\n * ```ts\n * const dispatcher = new Dispatcher();\n * const cancel = dispatcher.fork(Effect.log(\"running\"));\n * cancel();\n * ```\n *\n * @since 2.0.0\n * @internal\n */\nexport class Dispatcher {\n\t/** The underlying Effect runtime that executes forked programs. */\n\t#runtime: ManagedRuntimeType<unknown, unknown>;\n\t/** Active fibers keyed by cache id or generated fork id. */\n\t#fibers = new Map<string, FiberType<unknown, unknown>>();\n\t/** Reactive value cells keyed by value cache id. */\n\t#value_cells = new Map<string, ValueCell<unknown>>();\n\t/** Notifies subscribed Svelte template effects when value cells change. */\n\t#notify_value_cells = (): void => {};\n\t/** Subscribes the current Svelte tracking scope to value cell changes. */\n\t#subscribe_value_cells = createSubscriber((update) => {\n\t\tthis.#notify_value_cells = update;\n\n\t\treturn () => {\n\t\t\tif (this.#notify_value_cells !== update) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.#notify_value_cells = (): void => {};\n\t\t};\n\t});\n\t/** Pending promises keyed by promise cache id. */\n\t#promise_values = new Map<string, Promise<unknown>>();\n\t/** Current cache key per value block id. */\n\t#value_ids = new Map<string, string>();\n\t/** Current cache key per promise block id. */\n\t#promise_ids = new Map<string, string>();\n\t/** Whether dispose has been called, blocking new work. */\n\t#disposed = false;\n\t/** Monotonically increasing counter for unnamed fiber keys. */\n\t#next_fiber_id = 0;\n\n\t/**\n\t * Creates a dispatcher with an optional layer and installs it as the global\n\t * singleton returned by {@link get_dispatcher}.\n\t *\n\t * @example\n\t * ```ts\n\t * const dispatcher = Dispatcher.make(Db.Live);\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param layer - Optional Effect layer to provide to the runtime.\n\t * @returns The newly created dispatcher.\n\t */\n\tstatic make<R = never>(layer?: Layer.Layer<R>): Dispatcher {\n\t\tif (current_dispatcher) {\n\t\t\tthrow new RuntimeAlreadyInitializedError(\"ClientRuntime\");\n\t\t}\n\n\t\tconst runtime = ManagedRuntime.make(layer ?? (Layer.empty as unknown as Layer.Layer<R>));\n\n\t\tconst dispatcher = new Dispatcher(runtime as ManagedRuntimeType<unknown, unknown>);\n\t\tcurrent_dispatcher = dispatcher;\n\n\t\treturn dispatcher;\n\t}\n\n\t/**\n\t * Creates a dispatcher backed by the provided managed runtime.\n\t *\n\t * @example\n\t * ```ts\n\t * const dispatcher = new Dispatcher(runtime);\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param runtime - Managed runtime to use, or an empty-layer runtime when\n\t * omitted.\n\t */\n\tconstructor(runtime?: ManagedRuntimeType<unknown, unknown>) {\n\t\tthis.#runtime =\n\t\t\truntime ??\n\t\t\t(ManagedRuntime.make(Layer.empty) as unknown as ManagedRuntimeType<unknown, unknown>);\n\t}\n\n\t/**\n\t * Handles a transform-generated dispatcher event.\n\t *\n\t * @example\n\t * ```ts\n\t * const value = dispatcher.emit({\n\t * type: Code.Markup.Value,\n\t * id: \"Component.svelte:1:2\",\n\t * deps: [],\n\t * fallback: undefined,\n\t * fn: function* () {\n\t * return yield* Effect.succeed(1);\n\t * },\n\t * });\n\t * ```\n\t *\n\t * @since 3.3.0\n\t * @param event - Generated event describing the dispatcher operation to run.\n\t * @returns The operation result for the emitted dispatcher event.\n\t */\n\temit<A, F>(event: MarkupValueEvent<A, F>): A | F;\n\temit<A>(event: MarkupPromiseEvent<A>): Promise<A>;\n\temit<A>(event: MarkupRunEvent<A>): Promise<A>;\n\temit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A>;\n\temit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A> {\n\t\tswitch (event.type) {\n\t\t\tcase Code.Markup.Value:\n\t\t\t\treturn this.#emit_markup_value(event);\n\n\t\t\tcase Code.Markup.Promise:\n\t\t\t\treturn this.#emit_markup_promise(event);\n\n\t\t\tcase Code.Markup.Run:\n\t\t\t\treturn this.#emit_markup_run(event);\n\t\t}\n\t}\n\n\t/**\n\t * Forks an effect as a managed fiber and returns a cleanup function.\n\t *\n\t * @example\n\t * ```ts\n\t * const dispose = dispatcher.fork(Effect.log(\"clicked\"));\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param effect - Effect to fork.\n\t * @returns A function that interrupts the fiber.\n\t */\n\tfork<A, E, R>(effect: Effect.Effect<A, E, R>): Dispose {\n\t\tif (this.#disposed) {\n\t\t\treturn () => {};\n\t\t}\n\n\t\tconst fiber = this.#runtime.runFork(effect as Effect.Effect<unknown, unknown, unknown>);\n\t\tconst key = `fork:${this.#next_fiber_id}`;\n\n\t\tthis.#next_fiber_id += 1;\n\t\tthis.#fibers.set(key, fiber);\n\t\twatch_fiber_exit({\n\t\t\truntime: this.#runtime,\n\t\t\tfiber,\n\t\t\ton_complete: () => this.#fibers.delete(key),\n\t\t});\n\n\t\tlet disposed = false;\n\n\t\treturn (): void => {\n\t\t\tif (disposed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdisposed = true;\n\t\t\tinterrupt_fiber(this.#runtime, fiber);\n\t\t};\n\t}\n\n\t/**\n\t * Forks an effect and exposes its result as a cached reactive value.\n\t *\n\t * @example\n\t * ```ts\n\t * const user = dispatcher.value({ id, deps, fallback, factory });\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param options - Value id, dependency array, fallback, and effect factory.\n\t * @returns The cached value if resolved, otherwise the fallback.\n\t */\n\tvalue<A>(options: ValueOptions<A>): A {\n\t\tif (this.#disposed) {\n\t\t\treturn options.fallback;\n\t\t}\n\n\t\tconst cache_key = this.#make_value_cache_key(options.id, options.deps);\n\t\tconst old_key = this.#value_ids.get(options.id);\n\n\t\tthis.#subscribe_value_cells();\n\n\t\tconst cell = this.#value_cells.get(cache_key);\n\n\t\tif (old_key !== undefined && old_key !== cache_key) {\n\t\t\tconst old_fiber = this.#interrupt_cached_fiber(old_key);\n\n\t\t\tthis.#clear_pending_value_cell(old_key, old_fiber);\n\t\t}\n\n\t\tthis.#value_ids.set(options.id, cache_key);\n\n\t\tif (this.#should_start_value_fiber(cache_key, cell)) {\n\t\t\tthis.#start_value_fiber(cache_key, options);\n\t\t}\n\n\t\tif (cell?.status === \"success\") {\n\t\t\treturn cell.value as A;\n\t\t}\n\n\t\tif (cell?.status === \"failure\") {\n\t\t\tthrow cell.error;\n\t\t}\n\n\t\treturn options.fallback;\n\t}\n\n\t/**\n\t * Forks an effect and exposes its completion as a cached promise.\n\t *\n\t * @example\n\t * ```ts\n\t * const promise = dispatcher.promise({ id, deps, factory });\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param options - Promise id, dependency array, and effect factory.\n\t * @returns A promise that resolves with the effect result.\n\t */\n\tpromise<A>(options: PromiseOptions<A>): Promise<A> {\n\t\tif (this.#disposed) {\n\t\t\treturn Promise.reject(new DispatcherDisposedError());\n\t\t}\n\n\t\tconst cache_key = this.#make_promise_cache_key(options.id, options.deps);\n\t\tconst old_key = this.#promise_ids.get(options.id);\n\n\t\tif (old_key !== undefined && old_key !== cache_key) {\n\t\t\tthis.#interrupt_cached_fiber(old_key);\n\t\t\tthis.#promise_values.delete(old_key);\n\t\t}\n\n\t\tthis.#promise_ids.set(options.id, cache_key);\n\n\t\tconst existing = this.#promise_values.get(cache_key);\n\n\t\tif (existing) {\n\t\t\treturn existing as Promise<A>;\n\t\t}\n\n\t\tconst promise = this.#start_promise_fiber(cache_key, options);\n\n\t\tthis.#promise_values.set(cache_key, promise);\n\n\t\treturn promise;\n\t}\n\n\t/**\n\t * Runs an event-handler effect and surfaces failures to Svelte.\n\t *\n\t * @example\n\t * ```ts\n\t * await dispatcher.run(Effect.log(\"submit\"));\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @param effect - Effect to execute.\n\t * @returns A promise that resolves or rejects when the effect completes.\n\t */\n\trun<A, E, R>(effect: Effect.Effect<A, E, R>): Promise<A> {\n\t\tif (this.#disposed) {\n\t\t\treturn Promise.reject(new DispatcherDisposedError());\n\t\t}\n\n\t\tconst ExitProgram = Effect.exit(effect) as Effect.Effect<unknown, unknown, unknown>;\n\n\t\treturn this.#runtime.runPromise(ExitProgram).then((exit: unknown) => {\n\t\t\tconst result = exit as Exit.Exit<A, E>;\n\n\t\t\tif (Exit.isSuccess(result)) {\n\t\t\t\treturn result.value;\n\t\t\t}\n\n\t\t\tif (Cause.hasInterruptsOnly(result.cause)) {\n\t\t\t\treturn undefined as A;\n\t\t\t}\n\n\t\t\tconst error = Cause.squash(result.cause);\n\n\t\t\tif (isRedirect(error)) {\n\t\t\t\treturn undefined as A;\n\t\t\t}\n\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tthrow error;\n\t\t\t});\n\n\t\t\tthrow error;\n\t\t});\n\t}\n\n\t#emit_markup_value<A, F>(event: MarkupValueEvent<A, F>): A | F {\n\t\tif (this.#is_server_render()) {\n\t\t\treturn event.fallback;\n\t\t}\n\n\t\treturn this.value<A | F>({\n\t\t\tid: event.id,\n\t\t\tdeps: event.deps,\n\t\t\tfallback: event.fallback,\n\t\t\tfactory: event.fn,\n\t\t});\n\t}\n\n\t#emit_markup_promise<A>(event: MarkupPromiseEvent<A>): Promise<A> {\n\t\tif (this.#is_server_render()) {\n\t\t\tif (event.options?.ssr === \"pending\") {\n\t\t\t\treturn new Promise<A>(() => {});\n\t\t\t}\n\n\t\t\tif (\"ssr_fallback\" in event) {\n\t\t\t\treturn Promise.resolve(event.ssr_fallback as A);\n\t\t\t}\n\t\t}\n\n\t\treturn this.promise({\n\t\t\tid: event.id,\n\t\t\tdeps: event.deps,\n\t\t\tfactory: event.fn,\n\t\t});\n\t}\n\n\t#emit_markup_run<A>(event: MarkupRunEvent<A>): Promise<A> {\n\t\tconst Program = Effect.gen(event.fn);\n\n\t\treturn this.run(Program);\n\t}\n\n\t/**\n\t * Cancels all running fibers and releases cached values.\n\t *\n\t * @example\n\t * ```ts\n\t * dispatcher.dispose();\n\t * ```\n\t *\n\t * @since 2.0.0\n\t * @returns Nothing.\n\t */\n\tdispose(): void {\n\t\tthis.#disposed = true;\n\n\t\tfor (const fiber of this.#fibers.values()) {\n\t\t\tinterrupt_fiber(this.#runtime, fiber);\n\t\t}\n\n\t\tthis.#fibers.clear();\n\t\tthis.#clear_value_cells();\n\t\tthis.#promise_values.clear();\n\t\tthis.#value_ids.clear();\n\t\tthis.#promise_ids.clear();\n\n\t\tvoid this.#runtime.dispose().catch((error: unknown) => {\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t});\n\t}\n\n\t#make_value_cache_key(id: string, deps: readonly unknown[]): string {\n\t\treturn `value:${id}::${hash_deps(deps)}`;\n\t}\n\n\t#make_promise_cache_key(id: string, deps: readonly unknown[]): string {\n\t\treturn `promise:${id}::${hash_deps(deps)}`;\n\t}\n\n\t#is_server_render(): boolean {\n\t\treturn typeof document === \"undefined\";\n\t}\n\n\t#interrupt_cached_fiber(cache_key: string): FiberType<unknown, unknown> | undefined {\n\t\tconst old_fiber = this.#fibers.get(cache_key);\n\n\t\tif (!old_fiber) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tinterrupt_fiber(this.#runtime, old_fiber);\n\t\tthis.#fibers.delete(cache_key);\n\n\t\treturn old_fiber;\n\t}\n\n\t#should_start_value_fiber(cache_key: string, cell: ValueCell<unknown> | undefined): boolean {\n\t\treturn !this.#disposed && !this.#fibers.has(cache_key) && cell === undefined;\n\t}\n\n\t#start_value_fiber<A>(cache_key: string, options: ValueOptions<A>): void {\n\t\tconst Program = Effect.gen(function* () {\n\t\t\tconst result = yield* Effect.gen(options.factory);\n\n\t\t\treturn result;\n\t\t});\n\t\tconst fiber = this.#runtime.runFork(Program as Effect.Effect<unknown, unknown, unknown>);\n\n\t\tthis.#fibers.set(cache_key, fiber);\n\n\t\tqueueMicrotask(() => {\n\t\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.#value_cells.has(cache_key)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.#set_value_cell(cache_key, {\n\t\t\t\tstatus: \"pending\",\n\t\t\t\tfiber,\n\t\t\t});\n\t\t});\n\n\t\twatch_fiber_exit({\n\t\t\truntime: this.#runtime,\n\t\t\tfiber,\n\t\t\tsurface_failure: false,\n\t\t\ton_complete: () => this.#complete_fiber(cache_key, fiber),\n\t\t\ton_success: (value) => this.#publish_value_success(cache_key, fiber, value),\n\t\t\ton_failure: (error) => this.#publish_value_failure(cache_key, fiber, error),\n\t\t});\n\t}\n\n\t#start_promise_fiber<A>(cache_key: string, options: PromiseOptions<A>): Promise<A> {\n\t\tconst Program = Effect.gen(function* () {\n\t\t\tconst result = yield* Effect.gen(options.factory);\n\n\t\t\treturn result;\n\t\t});\n\t\tconst fiber = this.#runtime.runFork(Program as Effect.Effect<unknown, unknown, unknown>);\n\n\t\tthis.#fibers.set(cache_key, fiber);\n\n\t\treturn this.#runtime.runPromise(\n\t\t\tEffect.flatMap(Fiber.await(fiber), (exit) =>\n\t\t\t\tEffect.sync(() => {\n\t\t\t\t\tconst is_current = this.#is_current_fiber(cache_key, fiber);\n\n\t\t\t\t\tif (is_current) {\n\t\t\t\t\t\tthis.#fibers.delete(cache_key);\n\t\t\t\t\t\tthis.#promise_values.delete(cache_key);\n\n\t\t\t\t\t\tif (this.#promise_ids.get(options.id) === cache_key) {\n\t\t\t\t\t\t\tthis.#promise_ids.delete(options.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Exit.isSuccess(exit)) {\n\t\t\t\t\t\treturn exit.value as A;\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow Cause.squash(exit.cause);\n\t\t\t\t}),\n\t\t\t),\n\t\t);\n\t}\n\n\t#clear_pending_value_cell(\n\t\tcache_key: string,\n\t\tfiber: FiberType<unknown, unknown> | undefined,\n\t): void {\n\t\tconst cell = this.#value_cells.get(cache_key);\n\n\t\tif (cell?.status !== \"pending\") {\n\t\t\treturn;\n\t\t}\n\n\t\tif (fiber !== undefined && cell.fiber !== fiber) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#delete_value_cell(cache_key);\n\t}\n\n\t#complete_fiber(cache_key: string, fiber: FiberType<unknown, unknown>): void {\n\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#fibers.delete(cache_key);\n\t}\n\n\t#publish_value_success<A>(\n\t\tcache_key: string,\n\t\tfiber: FiberType<unknown, unknown>,\n\t\tvalue: A,\n\t): void {\n\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#set_value_cell(cache_key, {\n\t\t\tstatus: \"success\",\n\t\t\tvalue,\n\t\t});\n\t}\n\n\t#publish_value_failure(\n\t\tcache_key: string,\n\t\tfiber: FiberType<unknown, unknown>,\n\t\terror: unknown,\n\t): void {\n\t\tif (!this.#is_current_fiber(cache_key, fiber)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#set_value_cell(cache_key, {\n\t\t\tstatus: \"failure\",\n\t\t\terror,\n\t\t});\n\t}\n\n\t#set_value_cell(cache_key: string, cell: ValueCell<unknown>): void {\n\t\tthis.#value_cells.set(cache_key, cell);\n\t\tthis.#notify_value_cells();\n\t}\n\n\t#delete_value_cell(cache_key: string): void {\n\t\tconst deleted = this.#value_cells.delete(cache_key);\n\n\t\tif (!deleted) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#notify_value_cells();\n\t}\n\n\t#clear_value_cells(): void {\n\t\tif (this.#value_cells.size === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#value_cells.clear();\n\t\tthis.#notify_value_cells();\n\t}\n\n\t#is_current_fiber(cache_key: string, fiber: FiberType<unknown, unknown>): boolean {\n\t\treturn !this.#disposed && this.#fibers.get(cache_key) === fiber;\n\t}\n}\n\nlet current_dispatcher: Dispatcher | null = null;\n\n/**\n * Resolves the active dispatcher, creating a default one if necessary.\n *\n * @example\n * ```ts\n * const dispatcher = get_dispatcher();\n * ```\n *\n * @since 2.0.0\n * @returns The active dispatcher singleton.\n * @internal\n */\nexport function get_dispatcher(): Dispatcher {\n\tcurrent_dispatcher ??= new Dispatcher();\n\n\treturn current_dispatcher;\n}\n\n/**\n * Resets the internal singleton dispatcher used by source-level tests.\n *\n * @example\n * ```ts\n * reset_dispatcher();\n * ```\n *\n * @since 2.0.0\n * @returns Nothing.\n * @internal\n */\nexport function reset_dispatcher(): void {\n\tcurrent_dispatcher?.dispose();\n\tcurrent_dispatcher = null;\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { n as get_dispatcher$1 } from "./dispatcher-pHH4JcFR.js";
2
- import { r as get_server_dispatcher } from "./runtime-ekkMQ-wL.js";
1
+ import { n as get_dispatcher$1 } from "./dispatcher-DOx8iC6r.js";
2
+ import { r as get_server_dispatcher } from "./runtime-GBQz32DZ.js";
3
3
  //#region src/generated/dispatcher.ts
4
4
  /**
5
5
  * Facade used by transform-generated component code to dispatch runtime
@@ -44,4 +44,4 @@ function get_dispatcher() {
44
44
  //#endregion
45
45
  export { get_dispatcher as n, Dispatcher as t };
46
46
 
47
- //# sourceMappingURL=dispatcher-LtvFKYUp.js.map
47
+ //# sourceMappingURL=dispatcher-H-Ia0Os4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher-LtvFKYUp.js","names":["get_client_dispatcher"],"sources":["../../../modules/svelte-effect-runtime/src/generated/dispatcher.ts"],"sourcesContent":["import { get_dispatcher as get_client_dispatcher } from \"$/dispatcher.ts\";\nimport { get_server_dispatcher } from \"$/server/runtime.ts\";\nimport type {\n\tDispatcher as RuntimeDispatcher,\n\tDispatcherEvent,\n\tMarkupPromiseEvent,\n\tMarkupRunEvent,\n\tMarkupValueEvent,\n} from \"$/dispatcher.ts\";\n\nexport { Code } from \"$/dispatcher.ts\";\nexport type {\n\tDispatcherEvent,\n\tMarkupPromiseEvent,\n\tMarkupPromiseOptions,\n\tMarkupRunEvent,\n\tMarkupValueEvent,\n} from \"$/dispatcher.ts\";\n\n/**\n * Facade used by transform-generated component code to dispatch runtime\n * events through the current client or server dispatcher.\n *\n * @example\n * ```ts\n * const value = Dispatcher.emit({\n * type: Code.Markup.Value,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fallback: undefined,\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * });\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport class Dispatcher {\n\t/**\n\t * Emits a transform-generated dispatcher event.\n\t *\n\t * @example\n\t * ```ts\n\t * const promise = Dispatcher.emit({\n\t * type: Code.Markup.Promise,\n\t * id: \"Component.svelte:1:2\",\n\t * deps: [],\n\t * fn: function* () {\n\t * return yield* Effect.succeed(1);\n\t * },\n\t * });\n\t * ```\n\t *\n\t * @since 3.3.0\n\t * @param event - Generated event describing the dispatcher operation to run.\n\t * @returns The result produced by the active dispatcher.\n\t */\n\tstatic emit<A, F>(event: MarkupValueEvent<A, F>): A | F;\n\tstatic emit<A>(event: MarkupPromiseEvent<A>): Promise<A>;\n\tstatic emit<A>(event: MarkupRunEvent<A>): Promise<A>;\n\tstatic emit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A>;\n\tstatic emit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A> {\n\t\treturn get_dispatcher().emit(event);\n\t}\n}\n\n/**\n * Returns the dispatcher appropriate for generated component code.\n *\n * @example\n * ```ts\n * const dispatcher = get_dispatcher();\n * ```\n *\n * @since 3.0.1\n * @returns The server dispatcher during SSR, otherwise the client dispatcher.\n */\nexport function get_dispatcher(): RuntimeDispatcher {\n\tif (typeof document === \"undefined\") {\n\t\treturn get_server_dispatcher();\n\t}\n\n\treturn get_client_dispatcher();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAa,aAAb,MAAwB;CAwBvB,OAAO,KAAW,OAAkD;EACnE,OAAO,eAAe,CAAC,CAAC,KAAK,KAAK;CACnC;AACD;;;;;;;;;;;;AAaA,SAAgB,iBAAoC;CACnD,IAAI,OAAO,aAAa,aACvB,OAAO,sBAAsB;CAG9B,OAAOA,iBAAsB;AAC9B"}
1
+ {"version":3,"file":"dispatcher-H-Ia0Os4.js","names":["get_client_dispatcher"],"sources":["../../../modules/svelte-effect-runtime/src/generated/dispatcher.ts"],"sourcesContent":["import { get_dispatcher as get_client_dispatcher } from \"$/dispatcher.ts\";\nimport { get_server_dispatcher } from \"$/server/runtime.ts\";\nimport type {\n\tDispatcher as RuntimeDispatcher,\n\tDispatcherEvent,\n\tMarkupPromiseEvent,\n\tMarkupRunEvent,\n\tMarkupValueEvent,\n} from \"$/dispatcher.ts\";\n\nexport { Code } from \"$/dispatcher.ts\";\nexport type {\n\tDispatcherEvent,\n\tMarkupPromiseEvent,\n\tMarkupPromiseOptions,\n\tMarkupRunEvent,\n\tMarkupValueEvent,\n} from \"$/dispatcher.ts\";\n\n/**\n * Facade used by transform-generated component code to dispatch runtime\n * events through the current client or server dispatcher.\n *\n * @example\n * ```ts\n * const value = Dispatcher.emit({\n * type: Code.Markup.Value,\n * id: \"Component.svelte:1:2\",\n * deps: [],\n * fallback: undefined,\n * fn: function* () {\n * return yield* Effect.succeed(1);\n * },\n * });\n * ```\n *\n * @since 3.3.0\n * @internal\n */\nexport class Dispatcher {\n\t/**\n\t * Emits a transform-generated dispatcher event.\n\t *\n\t * @example\n\t * ```ts\n\t * const promise = Dispatcher.emit({\n\t * type: Code.Markup.Promise,\n\t * id: \"Component.svelte:1:2\",\n\t * deps: [],\n\t * fn: function* () {\n\t * return yield* Effect.succeed(1);\n\t * },\n\t * });\n\t * ```\n\t *\n\t * @since 3.3.0\n\t * @param event - Generated event describing the dispatcher operation to run.\n\t * @returns The result produced by the active dispatcher.\n\t */\n\tstatic emit<A, F>(event: MarkupValueEvent<A, F>): A | F;\n\tstatic emit<A>(event: MarkupPromiseEvent<A>): Promise<A>;\n\tstatic emit<A>(event: MarkupRunEvent<A>): Promise<A>;\n\tstatic emit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A>;\n\tstatic emit<A, F>(event: DispatcherEvent<A, F>): A | F | Promise<A> {\n\t\treturn get_dispatcher().emit(event);\n\t}\n}\n\n/**\n * Returns the dispatcher appropriate for generated component code.\n *\n * @example\n * ```ts\n * const dispatcher = get_dispatcher();\n * ```\n *\n * @since 3.0.1\n * @returns The server dispatcher during SSR, otherwise the client dispatcher.\n */\nexport function get_dispatcher(): RuntimeDispatcher {\n\tif (typeof document === \"undefined\") {\n\t\treturn get_server_dispatcher();\n\t}\n\n\treturn get_client_dispatcher();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAa,aAAb,MAAwB;CAwBvB,OAAO,KAAW,OAAkD;EACnE,OAAO,eAAe,CAAC,CAAC,KAAK,KAAK;CACnC;AACD;;;;;;;;;;;;AAaA,SAAgB,iBAAoC;CACnD,IAAI,OAAO,aAAa,aACvB,OAAO,sBAAsB;CAG9B,OAAOA,iBAAsB;AAC9B"}
@@ -65,43 +65,6 @@ var PreprocessError = class extends RuntimeError {
65
65
  }
66
66
  };
67
67
  /**
68
- * Retained for compatibility when callers need a structured representation of
69
- * possible Vite plugin ordering conflicts.
70
- *
71
- * @example
72
- * ```ts
73
- * throw new VitePreTransformPluginConflictError(["wuchale"]);
74
- * ```
75
- *
76
- * @since 2.4.0
77
- * @param plugin_names - Names of Vite plugins that declare pre-transform
78
- * priority and may parse raw component files before SER lowers them.
79
- * @returns A runtime-authored Error describing the possible plugin ordering
80
- * conflict.
81
- */
82
- var VitePreTransformPluginConflictError = class extends RuntimeError {
83
- /**
84
- * Names of conflicting Vite plugins.
85
- *
86
- * @since 2.4.0
87
- */
88
- plugin_names;
89
- constructor(plugin_names) {
90
- super([
91
- `Svelte Effect Runtime noticed possible Vite plugin ordering conflicts.`,
92
- "",
93
- `These plugins run before normal Svelte component transforms:`,
94
- ...plugin_names.map((plugin_name) => ` - ${plugin_name}`),
95
- "",
96
- `This is usually fine, but if you see Svelte parser errors around <script effect>`,
97
- `or yield* in components, one of those plugins may be reading component files before`,
98
- `SER has lowered its syntax.`
99
- ].join("\n"));
100
- this.name = "VitePreTransformPluginConflictError";
101
- this.plugin_names = plugin_names;
102
- }
103
- };
104
- /**
105
68
  * Thrown when a statement mixes JavaScript `await` with Effect `yield*` work
106
69
  * that must be lowered into an `Effect.gen` program.
107
70
  *
@@ -431,11 +394,29 @@ var UncheckedPrerenderHandlerMissingError = class extends RuntimeError {
431
394
  */
432
395
  var InvalidLiveQueryReturnError = class extends RuntimeError {
433
396
  constructor() {
434
- super("Query.live handler must return an Effect Stream, Iterable, or AsyncIterable; resolved values must expose a streaming protocol that SER can bridge to SvelteKit.");
397
+ super("Query.live handler must return an Effect Stream. Wrap native iterables with Stream.fromIterable, Stream.fromAsyncIterable, or another Stream constructor before returning them.");
435
398
  this.name = "InvalidLiveQueryReturnError";
436
399
  }
437
400
  };
438
401
  /**
402
+ * Thrown when generated component code yields a Stream that completes before
403
+ * producing a value.
404
+ *
405
+ * @example
406
+ * ```ts
407
+ * throw new EmptyStreamYieldError();
408
+ * ```
409
+ *
410
+ * @since 3.4.8
411
+ * @returns An Error describing an empty Stream in a value position.
412
+ */
413
+ var EmptyStreamYieldError = class extends RuntimeError {
414
+ constructor() {
415
+ super("Cannot resolve yield* stream expression because the Stream completed without emitting a value.");
416
+ this.name = "EmptyStreamYieldError";
417
+ }
418
+ };
419
+ /**
439
420
  * Thrown when a dispatcher operation is requested after disposal.
440
421
  *
441
422
  * @example
@@ -717,32 +698,7 @@ var RemoteHelperError = class extends RuntimeError {
717
698
  this.value = value;
718
699
  }
719
700
  };
720
- /**
721
- * Thrown when a non-Error value must be normalized into an Error instance.
722
- *
723
- * @example
724
- * ```ts
725
- * throw new UnknownRuntimeError("raw failure");
726
- * ```
727
- *
728
- * @since 2.4.0
729
- * @param value - Non-Error value that needs Error normalization.
730
- * @returns An Error preserving the string representation of an unknown value.
731
- */
732
- var UnknownRuntimeError = class extends RuntimeError {
733
- /**
734
- * Non-Error value that was normalized.
735
- *
736
- * @since 2.4.0
737
- */
738
- value;
739
- constructor(value) {
740
- super(String(value));
741
- this.name = "UnknownRuntimeError";
742
- this.value = value;
743
- }
744
- };
745
701
  //#endregion
746
- export { YieldStarInEventCallbackError as A, UncheckedLiveQueryHandlerMissingError as C, UnsupportedMarkupEffectPositionError as D, UnknownRuntimeError as E, UnsupportedRemoteFormResponseError as O, UncheckedFormHandlerMissingError as S, UncheckedQueryHandlerMissingError as T, RuntimeAlreadyInitializedError as _, DispatcherDisposedError as a, SvelteKitServerExportUnavailableError as b, InvalidLiveQueryReturnError as c, PreprocessError as d, RemoteErrorDecodeError as f, RequestEventUnavailableError as g, RemoteHelperError as h, BatchQueryHandlerMissingError as i, VitePreTransformPluginConflictError as k, InvalidQueryFactoryError as l, RemoteHelperContextError as m, AsyncEffectInSyncRuneError as n, InvalidCommandFactoryError as o, RemoteFormEndpointMissingError as p, AwaitInEffectWorkError as r, InvalidLiveQueryFactoryError as s, AsyncEffectInEventCallbackError as t, InvalidRemoteFormResponseError as u, RuntimeError as v, UncheckedPrerenderHandlerMissingError as w, UncheckedCommandHandlerMissingError as x, ServerOnlyImportError as y };
702
+ export { UncheckedFormHandlerMissingError as C, UnsupportedMarkupEffectPositionError as D, UncheckedQueryHandlerMissingError as E, UnsupportedRemoteFormResponseError as O, UncheckedCommandHandlerMissingError as S, UncheckedPrerenderHandlerMissingError as T, RequestEventUnavailableError as _, DispatcherDisposedError as a, ServerOnlyImportError as b, InvalidLiveQueryFactoryError as c, InvalidRemoteFormResponseError as d, PreprocessError as f, RemoteHelperError as g, RemoteHelperContextError as h, BatchQueryHandlerMissingError as i, YieldStarInEventCallbackError as k, InvalidLiveQueryReturnError as l, RemoteFormEndpointMissingError as m, AsyncEffectInSyncRuneError as n, EmptyStreamYieldError as o, RemoteErrorDecodeError as p, AwaitInEffectWorkError as r, InvalidCommandFactoryError as s, AsyncEffectInEventCallbackError as t, InvalidQueryFactoryError as u, RuntimeAlreadyInitializedError as v, UncheckedLiveQueryHandlerMissingError as w, SvelteKitServerExportUnavailableError as x, RuntimeError as y };
747
703
 
748
- //# sourceMappingURL=errors-Dcf0MVbq.js.map
704
+ //# sourceMappingURL=errors-IJjsUwrE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-IJjsUwrE.js","names":[],"sources":["../../../modules/svelte-effect-runtime/src/errors.ts"],"sourcesContent":["/**\n * Base class for runtime-authored errors. The class gives every local failure\n * a stable JavaScript error name while preserving the technical message that\n * reaches Vite, SvelteKit, and test output.\n *\n * @example\n * ```ts\n * throw new RuntimeError(\"Invariant violated.\");\n * ```\n *\n * @since 2.4.0\n * @param message - Technical diagnostic message describing the failed runtime\n * invariant.\n * @returns A runtime-authored Error instance.\n */\nexport class RuntimeError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"RuntimeError\";\n\t}\n}\n\n/**\n * Formats a runtime-owned error message with a stable screaming-case code.\n *\n * @example\n * ```ts\n * throw new Error(make_error_message(\"DISPATCHER_DISPOSED\", \"Dispatcher has been disposed\"));\n * ```\n *\n * @since 2.0.0\n * @param code - Stable screaming-case identifier for the error category.\n * @param message - Human-readable error message without the leading code.\n * @returns The complete error message prefixed with the stable code.\n */\nexport function make_error_message(code: string, message: string): string {\n\treturn `[${code}]: ${message}`;\n}\n\n/**\n * Base error class for all preprocessor errors emitted during script and\n * markup transformation. Carries the source filename so error messages can\n * reference the affected file.\n *\n * @example\n * ```ts\n * throw new PreprocessError(\"Component.svelte: invalid transform input.\", \"Component.svelte\");\n * ```\n *\n * @since 2.0.0\n * @param message - Technical diagnostic message for the transform failure.\n * @param filename - Source filename that triggered the transform failure.\n * @returns A preprocessor Error instance with source file context.\n */\nexport class PreprocessError extends RuntimeError {\n\t/**\n\t * The source filename that triggered this error.\n\t *\n\t * @since 2.0.0\n\t */\n\treadonly filename: string;\n\n\tconstructor(message: string, filename: string) {\n\t\tsuper(message);\n\t\tthis.name = \"PreprocessError\";\n\t\tthis.filename = filename;\n\t}\n}\n\n/**\n * Thrown when a statement mixes JavaScript `await` with Effect `yield*` work\n * that must be lowered into an `Effect.gen` program.\n *\n * @example\n * ```ts\n * throw new AwaitInEffectWorkError(\"Component.svelte\", \"const value = await load();\");\n * ```\n *\n * @since 2.0.0\n * @param filename - Source filename containing the unsupported statement.\n * @param statement_text - Full source text for the statement containing\n * mixed async work.\n * @returns A preprocessor Error instance with statement context.\n */\nexport class AwaitInEffectWorkError extends PreprocessError {\n\t/**\n\t * The full text of the problematic statement containing mixed async work.\n\t *\n\t * @since 2.0.0\n\t */\n\treadonly statement_text: string;\n\n\tconstructor(filename: string, statement_text: string) {\n\t\tsuper(\n\t\t\t[\n\t\t\t\tmake_error_message(\n\t\t\t\t\t\"AWAIT_IN_EFFECT_WORK\",\n\t\t\t\t\t`${filename}: await cannot be mixed with yield* in Effect work.`,\n\t\t\t\t),\n\t\t\t\t`Top-level await is supported as ordinary Svelte async rendering, but statements lowered into Effect.gen must use yield* for async Effect work.`,\n\t\t\t\t\"\",\n\t\t\t\t`Problematic statement:`,\n\t\t\t\tstatement_text,\n\t\t\t].join(\"\\n\"),\n\t\t\tfilename,\n\t\t);\n\t\tthis.name = \"AwaitInEffectWorkError\";\n\t\tthis.statement_text = statement_text;\n\t}\n}\n\n/**\n * Thrown when async Effect work appears inside a Svelte rune position that\n * must stay synchronous.\n *\n * @example\n * ```ts\n * throw new AsyncEffectInSyncRuneError(\"$derived\", \"$derived(yield* load())\", \"Component.svelte\");\n * ```\n *\n * @since 2.0.0\n * @param rune_name - Name of the Svelte rune containing the unsupported async\n * Effect work.\n * @param expression_text - Full source text for the rune expression.\n * @param filename - Source filename containing the unsupported rune.\n * @returns A preprocessor Error instance with rune source context.\n */\nexport class AsyncEffectInSyncRuneError extends PreprocessError {\n\t/**\n\t * The name of the rune that contained async Effect work.\n\t *\n\t * @since 2.0.0\n\t */\n\treadonly rune_name: string;\n\n\t/**\n\t * The full text of the expression that triggered the error.\n\t *\n\t * @since 2.0.0\n\t */\n\treadonly expression_text: string;\n\n\tconstructor(rune_name: string, expression_text: string, filename: string) {\n\t\tsuper(\n\t\t\t[\n\t\t\t\tmake_error_message(\n\t\t\t\t\t\"ASYNC_EFFECT_IN_SYNC_RUNE\",\n\t\t\t\t\t`${filename}: yield* cannot be used inside ${rune_name}().`,\n\t\t\t\t),\n\t\t\t\t`${rune_name}() must stay synchronous. Do not put async Effect work inside this rune.`,\n\t\t\t\t\"\",\n\t\t\t\t`Problematic expression:`,\n\t\t\t\texpression_text,\n\t\t\t].join(\"\\n\"),\n\t\t\tfilename,\n\t\t);\n\t\tthis.name = \"AsyncEffectInSyncRuneError\";\n\t\tthis.rune_name = rune_name;\n\t\tthis.expression_text = expression_text;\n\t}\n}\n\n/**\n * Thrown when async Effect work appears inside a non-generator callback nested\n * in a markup event handler.\n *\n * @example\n * ```ts\n * throw new AsyncEffectInEventCallbackError(\n * \"Component.svelte\",\n * \"Effect.try(() => yield* save())\",\n * );\n * ```\n *\n * @since 2.0.0\n * @param filename - Source filename containing the invalid event handler.\n * @param expression_text - Event handler expression that contains the nested\n * unsupported async Effect work.\n * @returns A preprocessor Error instance with event expression context.\n */\nexport class AsyncEffectInEventCallbackError extends PreprocessError {\n\t/**\n\t * The full text of the problematic event handler body.\n\t *\n\t * @since 2.0.0\n\t */\n\treadonly expression_text: string;\n\n\tconstructor(filename: string, expression_text: string) {\n\t\tsuper(\n\t\t\t[\n\t\t\t\tmake_error_message(\n\t\t\t\t\t\"ASYNC_EFFECT_IN_EVENT_CALLBACK\",\n\t\t\t\t\t`${filename}: yield* cannot be used inside a nested non-generator callback in a markup event handler.`,\n\t\t\t\t),\n\t\t\t\t`Move the yield* to the event handler body. Effect.try and Effect.sync callbacks are plain synchronous JavaScript; do not call Effect-returning functions inside them.`,\n\t\t\t\t\"\",\n\t\t\t\t`Run the remote Effect directly:`,\n\t\t\t\t` onclick={yield* UpvotePost(id)}`,\n\t\t\t\t\"\",\n\t\t\t\t`Recover from remote failures by composing the Effect value:`,\n\t\t\t\t` onclick={yield* UpvotePost(id).pipe(Effect.catch(() => Effect.void))}`,\n\t\t\t\t\"\",\n\t\t\t\t`Problematic expression:`,\n\t\t\t\texpression_text,\n\t\t\t].join(\"\\n\"),\n\t\t\tfilename,\n\t\t);\n\t\tthis.name = \"AsyncEffectInEventCallbackError\";\n\t\tthis.expression_text = expression_text;\n\t}\n}\n\n/**\n * Thrown when an event handler callback contains the old raw `yield*`\n * shorthand. Effectful event handlers must put `yield*` directly in the event\n * attribute so the callback boundary is generated by the markup runtime.\n *\n * @example\n * ```ts\n * throw new YieldStarInEventCallbackError(\"Component.svelte\", \"() => yield* save()\");\n * ```\n *\n * @since 2.0.0\n * @param filename - Svelte component filename used to identify where the\n * invalid event handler callback was found.\n * @param expression_text - Original event handler callback text that contained\n * `yield*` and should be rewritten as a direct event Effect expression.\n * @returns A preprocessor Error instance with event callback context.\n */\nexport class YieldStarInEventCallbackError extends PreprocessError {\n\t/**\n\t * The full text of the problematic event handler callback.\n\t *\n\t * @since 2.0.0\n\t */\n\treadonly expression_text: string;\n\n\tconstructor(filename: string, expression_text: string) {\n\t\tsuper(\n\t\t\t[\n\t\t\t\tmake_error_message(\n\t\t\t\t\t\"ASYNC_EFFECT_IN_EVENT_HANDLER_CALLBACK\",\n\t\t\t\t\t`${filename}: yield* in markup event handlers must be written directly as the event attribute value.`,\n\t\t\t\t),\n\t\t\t\t`SER generates the event callback for effectful event handlers; do not put yield* inside a JavaScript callback.`,\n\t\t\t\t\"\",\n\t\t\t\t`Use this form:`,\n\t\t\t\t` onclick={yield* UpvotePost(id)}`,\n\t\t\t\t\"\",\n\t\t\t\t`Instead of this form:`,\n\t\t\t\t` onclick={() => yield* UpvotePost(id)}`,\n\t\t\t\t\"\",\n\t\t\t\t`Problematic expression:`,\n\t\t\t\texpression_text,\n\t\t\t].join(\"\\n\"),\n\t\t\tfilename,\n\t\t);\n\t\tthis.name = \"YieldStarInEventCallbackError\";\n\t\tthis.expression_text = expression_text;\n\t}\n}\n\n/**\n * Thrown when async Effect work appears in a markup position SER cannot lower\n * safely.\n *\n * @example\n * ```ts\n * throw new UnsupportedMarkupEffectPositionError(\n * \"Component.svelte\",\n * \"value={yield* load()}\",\n * );\n * ```\n *\n * @since 2.4.2\n * @param filename - Source filename containing the unsupported markup.\n * @param expression_text - The unsupported markup expression text.\n * @returns A preprocessor Error instance with markup source context.\n */\nexport class UnsupportedMarkupEffectPositionError extends PreprocessError {\n\t/**\n\t * The unsupported markup expression text.\n\t *\n\t * @since 2.4.2\n\t */\n\treadonly expression_text: string;\n\n\tconstructor(filename: string, expression_text: string) {\n\t\tsuper(\n\t\t\t[\n\t\t\t\tmake_error_message(\n\t\t\t\t\t\"UNSUPPORTED_MARKUP_EFFECT_POSITION\",\n\t\t\t\t\t`${filename}: yield* cannot be used in this markup position.`,\n\t\t\t\t),\n\t\t\t\t`Move the Effect work into a supported expression tag, block expression, render expression, declaration tag, or event handler.`,\n\t\t\t\t\"\",\n\t\t\t\t`Problematic expression:`,\n\t\t\t\texpression_text,\n\t\t\t].join(\"\\n\"),\n\t\t\tfilename,\n\t\t);\n\t\tthis.name = \"UnsupportedMarkupEffectPositionError\";\n\t\tthis.expression_text = expression_text;\n\t}\n}\n\n/**\n * Thrown when the request-scoped SvelteKit event context is read outside a\n * remote handler.\n *\n * @example\n * ```ts\n * throw new RequestEventUnavailableError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing missing request context.\n */\nexport class RequestEventUnavailableError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"RequestEvent is only available while a SER remote handler is executing inside a request-scoped Effect context.\",\n\t\t);\n\t\tthis.name = \"RequestEventUnavailableError\";\n\t}\n}\n\n/**\n * Thrown when an unchecked Query declaration omits the handler.\n *\n * @example\n * ```ts\n * throw new UncheckedQueryHandlerMissingError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing the invalid Query overload usage.\n */\nexport class UncheckedQueryHandlerMissingError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Query('unchecked', handler) requires a concrete handler function as the second argument; the unchecked schema sentinel cannot execute by itself.\",\n\t\t);\n\t\tthis.name = \"UncheckedQueryHandlerMissingError\";\n\t}\n}\n\n/**\n * Thrown when a batch Query declaration omits the batch handler.\n *\n * @example\n * ```ts\n * throw new BatchQueryHandlerMissingError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing the invalid batch Query overload usage.\n */\nexport class BatchQueryHandlerMissingError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Query.batch requires a concrete batch handler function; the batch helper cannot infer a handler from schema metadata alone.\",\n\t\t);\n\t\tthis.name = \"BatchQueryHandlerMissingError\";\n\t}\n}\n\n/**\n * Thrown when an unchecked live Query declaration omits the handler.\n *\n * @example\n * ```ts\n * throw new UncheckedLiveQueryHandlerMissingError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing the invalid live Query overload usage.\n */\nexport class UncheckedLiveQueryHandlerMissingError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Query.live('unchecked', handler) requires a concrete handler function as the second argument; the unchecked schema sentinel cannot produce a live source.\",\n\t\t);\n\t\tthis.name = \"UncheckedLiveQueryHandlerMissingError\";\n\t}\n}\n\n/**\n * Thrown when an unchecked Command declaration omits the handler.\n *\n * @example\n * ```ts\n * throw new UncheckedCommandHandlerMissingError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing the invalid Command overload usage.\n */\nexport class UncheckedCommandHandlerMissingError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Command('unchecked', handler) requires a concrete handler function as the second argument; the unchecked schema sentinel cannot execute a command.\",\n\t\t);\n\t\tthis.name = \"UncheckedCommandHandlerMissingError\";\n\t}\n}\n\n/**\n * Thrown when an unchecked Form declaration omits the handler.\n *\n * @example\n * ```ts\n * throw new UncheckedFormHandlerMissingError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing the invalid Form overload usage.\n */\nexport class UncheckedFormHandlerMissingError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Form('unchecked', handler) requires a concrete handler function as the second argument; the unchecked schema sentinel cannot process form data.\",\n\t\t);\n\t\tthis.name = \"UncheckedFormHandlerMissingError\";\n\t}\n}\n\n/**\n * Thrown when an unchecked Prerender declaration omits the handler.\n *\n * @example\n * ```ts\n * throw new UncheckedPrerenderHandlerMissingError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing the invalid Prerender overload usage.\n */\nexport class UncheckedPrerenderHandlerMissingError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Prerender('unchecked', handler) requires a concrete handler function as the second argument; the unchecked schema sentinel cannot produce prerendered data.\",\n\t\t);\n\t\tthis.name = \"UncheckedPrerenderHandlerMissingError\";\n\t}\n}\n\n/**\n * Thrown when a live query handler resolves to a value that cannot be streamed.\n *\n * @example\n * ```ts\n * throw new InvalidLiveQueryReturnError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing the expected live query return protocol.\n */\nexport class InvalidLiveQueryReturnError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Query.live handler must return an Effect Stream. Wrap native iterables with Stream.fromIterable, Stream.fromAsyncIterable, or another Stream constructor before returning them.\",\n\t\t);\n\t\tthis.name = \"InvalidLiveQueryReturnError\";\n\t}\n}\n\n/**\n * Thrown when generated component code yields a Stream that completes before\n * producing a value.\n *\n * @example\n * ```ts\n * throw new EmptyStreamYieldError();\n * ```\n *\n * @since 3.4.8\n * @returns An Error describing an empty Stream in a value position.\n */\nexport class EmptyStreamYieldError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Cannot resolve yield* stream expression because the Stream completed without emitting a value.\",\n\t\t);\n\t\tthis.name = \"EmptyStreamYieldError\";\n\t}\n}\n\n/**\n * Thrown when a dispatcher operation is requested after disposal.\n *\n * @example\n * ```ts\n * throw new DispatcherDisposedError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing an invalid dispatcher lifecycle transition.\n */\nexport class DispatcherDisposedError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Dispatcher has been disposed; no new Effect fibers or promise bridges can be started after component teardown.\",\n\t\t);\n\t\tthis.name = \"DispatcherDisposedError\";\n\t}\n}\n\n/**\n * Thrown when an application attempts to configure a runtime after one has\n * already been initialized.\n *\n * @example\n * ```ts\n * throw new RuntimeAlreadyInitializedError(\"ClientRuntime\");\n * ```\n *\n * @since 3.4.0\n * @param runtime_name - Public runtime API that was initialized more than once.\n * @returns An Error describing the invalid runtime lifecycle transition.\n */\nexport class RuntimeAlreadyInitializedError extends RuntimeError {\n\tconstructor(runtime_name: string) {\n\t\tsuper(\n\t\t\tmake_error_message(\n\t\t\t\t\"RUNTIME_ALREADY_INITIALIZED\",\n\t\t\t\t`${runtime_name}.make(...) cannot be called because the runtime has already been initialized. Configure it once during application startup, before any Effect-backed component, remote handler, or generated runtime code runs.`,\n\t\t\t),\n\t\t);\n\t\tthis.name = \"RuntimeAlreadyInitializedError\";\n\t}\n}\n\n/**\n * Thrown when a generated or native remote query export is not callable.\n *\n * @example\n * ```ts\n * throw new InvalidQueryFactoryError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing an invalid query adapter input.\n */\nexport class InvalidQueryFactoryError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Invalid query factory: expected a function or an object exposing query/load methods from SvelteKit remote query generation.\",\n\t\t);\n\t\tthis.name = \"InvalidQueryFactoryError\";\n\t}\n}\n\n/**\n * Thrown when a generated or native remote live query export is not callable.\n *\n * @example\n * ```ts\n * throw new InvalidLiveQueryFactoryError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing an invalid live query adapter input.\n */\nexport class InvalidLiveQueryFactoryError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Invalid live query factory: expected a function or an object exposing a query method from SvelteKit remote live query generation.\",\n\t\t);\n\t\tthis.name = \"InvalidLiveQueryFactoryError\";\n\t}\n}\n\n/**\n * Thrown when a generated or native remote command export is not callable.\n *\n * @example\n * ```ts\n * throw new InvalidCommandFactoryError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing an invalid command adapter input.\n */\nexport class InvalidCommandFactoryError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Invalid command factory: expected a function or an object exposing an invoke method from SvelteKit remote command generation.\",\n\t\t);\n\t\tthis.name = \"InvalidCommandFactoryError\";\n\t}\n}\n\n/**\n * Thrown when the client-side form adapter cannot derive a remote endpoint.\n *\n * @example\n * ```ts\n * throw new RemoteFormEndpointMissingError();\n * ```\n *\n * @since 2.4.0\n * @returns An Error describing missing form transport metadata.\n */\nexport class RemoteFormEndpointMissingError extends RuntimeError {\n\tconstructor() {\n\t\tsuper(\n\t\t\t\"Form has no submit method or remote endpoint; the adapted SvelteKit form object does not expose an action id and no remote base URL was generated.\",\n\t\t);\n\t\tthis.name = \"RemoteFormEndpointMissingError\";\n\t}\n}\n\n/**\n * Thrown when a remote form response envelope is not an object with a response\n * type.\n *\n * @example\n * ```ts\n * throw new InvalidRemoteFormResponseError(envelope);\n * ```\n *\n * @since 2.4.0\n * @param envelope - Raw response envelope returned by the remote form endpoint.\n * @returns An Error describing malformed form response data.\n */\nexport class InvalidRemoteFormResponseError extends RuntimeError {\n\t/**\n\t * Raw response envelope returned by the remote form endpoint.\n\t *\n\t * @since 2.4.0\n\t */\n\treadonly envelope: unknown;\n\n\tconstructor(envelope?: unknown) {\n\t\tsuper(\n\t\t\t\"Invalid remote form response: expected an object envelope with a string type field returned by SvelteKit remote form transport.\",\n\t\t);\n\t\tthis.name = \"InvalidRemoteFormResponseError\";\n\t\tthis.envelope = envelope;\n\t}\n}\n\n/**\n * Thrown when a remote form response has a well-formed envelope but an\n * unsupported response type or payload slot.\n *\n * @example\n * ```ts\n * throw new UnsupportedRemoteFormResponseError(envelope);\n * ```\n *\n * @since 2.4.0\n * @param envelope - Raw response envelope returned by the remote form endpoint.\n * @returns An Error describing unsupported form response data.\n */\nexport class UnsupportedRemoteFormResponseError extends RuntimeError {\n\t/**\n\t * Raw response envelope returned by the remote form endpoint.\n\t *\n\t * @since 2.4.0\n\t */\n\treadonly envelope: unknown;\n\n\tconstructor(envelope?: unknown) {\n\t\tsuper(\n\t\t\t\"Unsupported remote form response: expected a result envelope with a devalue-encoded result or data string.\",\n\t\t);\n\t\tthis.name = \"UnsupportedRemoteFormResponseError\";\n\t\tthis.envelope = envelope;\n\t}\n}\n\n/**\n * Thrown when a serialized remote failure envelope cannot be decoded.\n *\n * @example\n * ```ts\n * throw new RemoteErrorDecodeError(raw);\n * ```\n *\n * @since 2.4.0\n * @param raw - Raw serialized remote failure payload that failed decoding.\n * @returns An Error describing a malformed remote failure payload.\n */\nexport class RemoteErrorDecodeError extends RuntimeError {\n\t/**\n\t * Raw serialized remote failure payload that failed decoding.\n\t *\n\t * @since 2.4.0\n\t */\n\treadonly raw: unknown;\n\n\tconstructor(raw?: unknown) {\n\t\tsuper(\n\t\t\t\"Failed to decode remote error payload: expected a devalue-encoded SER remote failure envelope compatible with the client decoder.\",\n\t\t);\n\t\tthis.name = \"RemoteErrorDecodeError\";\n\t\tthis.raw = raw;\n\t}\n}\n\n/**\n * Thrown when a root server-only helper is imported without Vite rewriting.\n *\n * @example\n * ```ts\n * throw new ServerOnlyImportError(\"Query\");\n * ```\n *\n * @since 2.4.0\n * @param export_name - Name of the server-only root export that was invoked.\n * @returns An Error describing a missing server rewrite.\n */\nexport class ServerOnlyImportError extends RuntimeError {\n\t/**\n\t * Name of the server-only root export that was invoked.\n\t *\n\t * @since 2.4.0\n\t */\n\treadonly export_name: string;\n\n\tconstructor(export_name: string) {\n\t\tsuper(\n\t\t\t`${export_name} is only available in SvelteKit server files. Ensure the SER Vite plugin is enabled so root imports are rewritten to svelte-effect-runtime/server before execution.`,\n\t\t);\n\t\tthis.name = \"ServerOnlyImportError\";\n\t\tthis.export_name = export_name;\n\t}\n}\n\n/**\n * Thrown when the publish-time `$app/server` shim executes outside SvelteKit.\n *\n * @example\n * ```ts\n * throw new SvelteKitServerExportUnavailableError(\"query\");\n * ```\n *\n * @since 2.4.0\n * @param export_name - Name of the `$app/server` export that was invoked.\n * @returns An Error describing an unavailable SvelteKit virtual module export.\n */\nexport class SvelteKitServerExportUnavailableError extends RuntimeError {\n\t/**\n\t * Name of the `$app/server` export that was invoked.\n\t *\n\t * @since 2.4.0\n\t */\n\treadonly export_name: string;\n\n\tconstructor(export_name: string) {\n\t\tsuper(\n\t\t\t`SvelteKit virtual $app/server export ${export_name} is only available inside a SvelteKit server module.`,\n\t\t);\n\t\tthis.name = \"SvelteKitServerExportUnavailableError\";\n\t\tthis.export_name = export_name;\n\t}\n}\n\n/**\n * Thrown when a SvelteKit remote helper reports that it was called outside the\n * route-scoped remote module context.\n *\n * @example\n * ```ts\n * throw new RemoteHelperContextError(\"Query\");\n * ```\n *\n * @since 2.4.0\n * @param helper_name - SER helper name that triggered the context failure.\n * @returns An Error describing the required `.remote.ts` placement.\n */\nexport class RemoteHelperContextError extends RuntimeError {\n\t/**\n\t * SER helper name that triggered the context failure.\n\t *\n\t * @since 2.4.0\n\t */\n\treadonly helper_name: string;\n\n\tconstructor(helper_name: string) {\n\t\tsuper(\n\t\t\tmake_error_message(\n\t\t\t\t\"REMOTE_HELPER_CONTEXT\",\n\t\t\t\t`${helper_name} was called outside a .remote.ts file. Ensure the file is named \\`*.remote.ts\\` and is located in a route directory so SvelteKit can bind remote helper context.`,\n\t\t\t),\n\t\t);\n\t\tthis.name = \"RemoteHelperContextError\";\n\t\tthis.helper_name = helper_name;\n\t}\n}\n\n/**\n * Thrown when a SvelteKit remote helper normalizes a non-Error thrown value.\n *\n * @example\n * ```ts\n * throw new RemoteHelperError(\"raw failure\");\n * ```\n *\n * @since 2.4.0\n * @param value - Non-Error value thrown while creating a remote helper.\n * @returns An Error preserving the remote helper failure value.\n */\nexport class RemoteHelperError extends RuntimeError {\n\t/**\n\t * Non-Error value that was normalized.\n\t *\n\t * @since 2.4.0\n\t */\n\treadonly value: unknown;\n\n\tconstructor(value: unknown) {\n\t\tsuper(make_error_message(\"REMOTE_HELPER_ERROR\", String(value)));\n\t\tthis.name = \"RemoteHelperError\";\n\t\tthis.value = value;\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { c as InvalidLiveQueryFactoryError } from "./errors-IJjsUwrE.js";
2
+ import { Effect, Stream } from "effect";
3
+ //#region src/live.ts
4
+ /**
5
+ * Runtime marker attached to remote live streams created by SER.
6
+ *
7
+ * @since 3.4.8
8
+ */
9
+ const REMOTE_LIVE_STREAM = Symbol.for("ser.remote-live-stream");
10
+ const LIVE_METADATA = Symbol.for("ser.remote-live-metadata");
11
+ const LIVE_OPERATOR = Symbol.for("ser.live-operator");
12
+ /**
13
+ * Builds a remote live stream from SvelteKit's native live resource.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const stream = make_remote_live_stream(resource, normalize_native_error);
18
+ * ```
19
+ *
20
+ * @since 3.4.8
21
+ * @param resource - Native SvelteKit live query resource.
22
+ * @param on_error - Error mapper used for stream and reconnect failures.
23
+ * @returns A remote live stream carrying hidden transport metadata.
24
+ * @internal
25
+ */
26
+ function make_remote_live_stream(resource, on_error) {
27
+ const live_resource = as_native_live_resource(resource);
28
+ return attach_live_metadata(Stream.fromAsyncIterable(live_resource, on_error), {
29
+ resource: live_resource,
30
+ on_error
31
+ });
32
+ }
33
+ /**
34
+ * Remote live transport helpers.
35
+ *
36
+ * @since 3.4.8
37
+ */
38
+ const Live = {
39
+ status: Object.assign(function status(stream) {
40
+ const metadata = get_live_metadata(stream);
41
+ if (!metadata) return Stream.succeed({ _tag: "Idle" });
42
+ return Stream.succeed(read_live_status(metadata.resource)).pipe(Stream.concat(Stream.tick("250 millis").pipe(Stream.map(() => read_live_status(metadata.resource)))));
43
+ }, { [LIVE_OPERATOR]: true }),
44
+ reconnect: Object.assign(function reconnect(stream) {
45
+ const metadata = get_live_metadata(stream);
46
+ const reconnect = metadata?.resource.reconnect;
47
+ if (!metadata || typeof reconnect !== "function") return Effect.fail(new InvalidLiveQueryFactoryError());
48
+ return Effect.tryPromise({
49
+ try: () => Promise.resolve(reconnect.call(metadata.resource)),
50
+ catch: metadata.on_error
51
+ });
52
+ }, { [LIVE_OPERATOR]: true })
53
+ };
54
+ function as_native_live_resource(resource) {
55
+ if (!is_native_live_resource(resource)) throw new InvalidLiveQueryFactoryError();
56
+ return resource;
57
+ }
58
+ function is_native_live_resource(resource) {
59
+ const resource_type = typeof resource;
60
+ if (resource_type !== "object" && resource_type !== "function") return false;
61
+ if (resource === null) return false;
62
+ return typeof resource[Symbol.asyncIterator] === "function";
63
+ }
64
+ function attach_live_metadata(stream, metadata) {
65
+ const carrier = stream;
66
+ if (carrier[LIVE_METADATA]) return stream;
67
+ Object.defineProperty(carrier, LIVE_METADATA, {
68
+ configurable: true,
69
+ value: metadata
70
+ });
71
+ Object.defineProperty(carrier, REMOTE_LIVE_STREAM, {
72
+ configurable: true,
73
+ value: true
74
+ });
75
+ propagate_live_metadata_through_pipe(carrier, metadata);
76
+ return stream;
77
+ }
78
+ function propagate_live_metadata_through_pipe(stream, metadata) {
79
+ const pipe = stream.pipe.bind(stream);
80
+ Object.defineProperty(stream, "pipe", {
81
+ configurable: true,
82
+ value: (...args) => {
83
+ const result = pipe(...args);
84
+ if (Stream.isStream(result)) return attach_live_metadata(result, metadata);
85
+ return result;
86
+ }
87
+ });
88
+ }
89
+ function get_live_metadata(stream) {
90
+ return stream[LIVE_METADATA];
91
+ }
92
+ function read_live_status(resource) {
93
+ if (resource.error !== void 0) return {
94
+ _tag: "Failed",
95
+ cause: resource.error
96
+ };
97
+ if (resource.done === true) return { _tag: "Closed" };
98
+ if (resource.connected === true) return { _tag: "Open" };
99
+ return { _tag: "Connecting" };
100
+ }
101
+ //#endregion
102
+ export { make_remote_live_stream as n, Live as t };
103
+
104
+ //# sourceMappingURL=live-BXAKre_4.js.map