svelte-effect-runtime 3.4.2 → 3.4.3

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.
@@ -404,7 +404,8 @@ function make_remote_client_wrapper_plugin(options) {
404
404
  };
405
405
  }
406
406
  function is_server_runtime_module(id) {
407
- return id.endsWith(".server.ts") || id.endsWith(".remote.ts") || id.includes("hooks.server.");
407
+ const [filename] = id.split("?", 2);
408
+ return /\.(server|remote)(?:\.[cm])?\.[jt]s$/.test(filename) || /(?:^|[\\/])hooks\.server(?:\.[cm])?\.[jt]s$/.test(filename);
408
409
  }
409
410
  function is_remote_module(id) {
410
411
  return /\.(remote|remote\.[cm]?)\.[jt]s(?:\?.*)?$/.test(id) || id.includes(".remote.");
@@ -476,4 +477,4 @@ function make_remote_export(name, type, id_literal, namespace) {
476
477
  //#endregion
477
478
  export { rewrite_remote_client_exports as n, effect as t };
478
479
 
479
- //# sourceMappingURL=vite-DTeo70MK.js.map
480
+ //# sourceMappingURL=vite-DR3-WaqQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite-DTeo70MK.js","names":[],"sources":["../../../modules/svelte-effect-runtime/src/diagnostics.ts","../../../modules/svelte-effect-runtime/src/vite.ts"],"sourcesContent":["/**\n * Warning diagnostic produced by the SER Vite diagnostics plugin.\n */\ninterface Diagnostic {\n message: string;\n line: number;\n column: number;\n}\n\ninterface MarkupExpression {\n start: number;\n end: number;\n expression_text: string;\n attribute_name?: string;\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 code: string,\n filename: string,\n): Array<{ message: string; line: number; column: number }> {\n const effect_names = find_effect_local_names(code);\n const expressions = find_markup_expressions(code);\n\n return expressions.flatMap((expression) =>\n make_expression_diagnostics(code, filename, effect_names, expression)\n );\n}\n\nfunction find_effect_local_names(code: string): Set<string> {\n const names = new Set<string>([\"Effect\"]);\n const script_pattern = /<script\\b[^>]*>([\\s\\S]*?)<\\/script\\s*>/gi;\n\n for (const script_match of code.matchAll(script_pattern)) {\n const script = script_match[1];\n const import_pattern =\n /import\\s+(type\\s+)?\\{([^}]+)\\}\\s+from\\s+[\"']effect[\"']/g;\n\n for (const import_match of script.matchAll(import_pattern)) {\n const is_type_only_import = import_match[1] !== undefined;\n const specifiers = import_match[2].split(\",\");\n\n if (is_type_only_import) {\n continue;\n }\n\n for (const specifier of specifiers) {\n const local_name = parse_effect_import_local_name(specifier);\n\n if (local_name) {\n names.add(local_name);\n }\n }\n }\n }\n\n return names;\n}\n\nfunction parse_effect_import_local_name(specifier: string): string | undefined {\n const trimmed = specifier.trim();\n const match = trimmed.match(/^Effect(?:\\s+as\\s+([A-Za-z_$][\\w$]*))?$/);\n\n if (!match) {\n return undefined;\n }\n\n return match[1] ?? \"Effect\";\n}\n\nfunction find_markup_expressions(code: string): MarkupExpression[] {\n const expressions: MarkupExpression[] = [];\n let cursor = 0;\n\n while (cursor < code.length) {\n const open = code.indexOf(\"{\", cursor);\n\n if (open === -1) {\n break;\n }\n\n if (is_inside_svelte_excluded_block(code, open)) {\n cursor = open + 1;\n continue;\n }\n\n const close = find_closing_brace(code, open + 1);\n\n if (close === -1) {\n cursor = open + 1;\n continue;\n }\n\n expressions.push({\n start: open,\n end: close,\n expression_text: code.slice(open + 1, close).trim(),\n attribute_name: find_attribute_name_before_expression(code, open),\n });\n\n cursor = close + 1;\n }\n\n return expressions;\n}\n\nfunction make_expression_diagnostics(\n code: string,\n filename: string,\n effect_names: Set<string>,\n expression: MarkupExpression,\n): Diagnostic[] {\n const attribute_name = expression.attribute_name;\n const expression_text = expression.expression_text;\n const is_event_attribute = attribute_name !== undefined &&\n is_event_attribute_name(attribute_name);\n const is_attribute = attribute_name !== undefined;\n const loc = get_line_column(code, expression.start);\n\n if (!contains_effect_reference(expression_text, effect_names)) {\n return [];\n }\n\n if (starts_with_yield_star(expression_text)) {\n return [];\n }\n\n if (\n is_event_attribute &&\n is_callback_expression(expression_text) &&\n contains_yield_star(expression_text)\n ) {\n return [\n make_diagnostic(\n loc,\n make_hidden_event_yield_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (contains_effect_runner(expression_text, effect_names)) {\n return [\n make_diagnostic(\n loc,\n make_explicit_runner_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_bare_effect_gen(expression_text, effect_names)) {\n return [\n make_diagnostic(\n loc,\n make_bare_effect_gen_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_event_attribute && is_callback_expression(expression_text)) {\n return [\n make_diagnostic(\n loc,\n make_event_callback_returns_effect_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_event_attribute) {\n return [\n make_diagnostic(\n loc,\n make_event_attribute_effect_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_attribute) {\n return [\n make_diagnostic(\n loc,\n make_attribute_effect_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n return [\n make_diagnostic(\n loc,\n make_sync_markup_effect_warning(filename, expression_text),\n ),\n ];\n}\n\nfunction make_diagnostic(\n loc: { line: number; column: number },\n message: string,\n): Diagnostic {\n return {\n message,\n line: loc.line,\n column: loc.column,\n };\n}\n\nfunction make_hidden_event_yield_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n return [\n `[svelte-effect-runtime] Detected yield* hidden inside an event callback.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `SER can only lower yield* at the event attribute boundary.`,\n `Write the event expression directly, for example: ${attribute_name}={yield* save()}`,\n ].join(\"\\n\");\n}\n\nfunction make_explicit_runner_warning(\n filename: string,\n attribute_name: string | undefined,\n expression_text: string,\n): string {\n const location = attribute_name\n ? `${attribute_name}={${expression_text}}`\n : `{${expression_text}}`;\n\n return [\n `[svelte-effect-runtime] Detected an explicit Effect runner inside Svelte markup.`,\n `${filename}: ${location}`,\n `Explicit runners bypass SER cancellation and error handling for markup effects.`,\n `Prefer yield* so SER can manage the Effect lifecycle.`,\n ].join(\"\\n\");\n}\n\nfunction make_bare_effect_gen_warning(\n filename: string,\n attribute_name: string | undefined,\n expression_text: string,\n): string {\n const location = attribute_name\n ? `${attribute_name}={${expression_text}}`\n : `{${expression_text}}`;\n const fixed = attribute_name\n ? `${attribute_name}={yield* ${expression_text}(function* () { ... })}`\n : `{yield* ${expression_text}(function* () { ... })}`;\n\n return [\n `[svelte-effect-runtime] Detected Effect.gen used as a value instead of an Effect program.`,\n `${filename}: ${location}`,\n `${expression_text} is a constructor, not the result of running a generator.`,\n `Use: ${fixed}`,\n ].join(\"\\n\");\n}\n\nfunction make_event_callback_returns_effect_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n return [\n `[svelte-effect-runtime] Detected an event callback that returns an Effect but does not run it.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `Svelte will call the callback and receive an Effect value, but SER will not manage it from inside the callback.`,\n `Use yield* at the event attribute boundary or explicitly run the Effect if you really want to bypass SER.`,\n ].join(\"\\n\");\n}\n\nfunction make_event_attribute_effect_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n const fixed = `${attribute_name}={yield* ${expression_text}}`;\n\n return [\n `[svelte-effect-runtime] Detected an event attribute that looks like an Effect but is not written with yield*.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `If you are trying to use Effect in this event handler, use yield* at the beginning.`,\n `Use: ${fixed}`,\n ].join(\"\\n\");\n}\n\nfunction make_attribute_effect_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n const fixed = `${attribute_name}={yield* ${expression_text}}`;\n\n return [\n `[svelte-effect-runtime] Detected an attribute value that looks like an Effect but is not written with yield*.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `Svelte attributes need the resolved Effect value, not the Effect object itself.`,\n `Use: ${fixed}`,\n ].join(\"\\n\");\n}\n\nfunction make_sync_markup_effect_warning(\n filename: string,\n expression_text: string,\n): string {\n return [\n `[svelte-effect-runtime] Detected a markup expression that creates an Effect but is not written with yield*.`,\n `${filename}: {${expression_text}}`,\n `This expression will produce an Effect value, not its result.`,\n `Use yield* where Svelte expects the resolved value.`,\n ].join(\"\\n\");\n}\n\nfunction contains_effect_reference(\n expression_text: string,\n effect_names: Set<string>,\n): boolean {\n const name_pattern = make_effect_name_pattern(effect_names);\n const effect_pattern = new RegExp(\n `\\\\b(?:${name_pattern})\\\\.(?:gen|succeed|fail|try|tryPromise|promise|sync|all|void|log|runPromise|runSync|runFork)\\\\b`,\n );\n\n return effect_pattern.test(expression_text);\n}\n\nfunction contains_effect_runner(\n expression_text: string,\n effect_names: Set<string>,\n): boolean {\n const name_pattern = make_effect_name_pattern(effect_names);\n const runner_pattern = new RegExp(\n `\\\\b(?:${name_pattern})\\\\.run(?:Promise|Sync|Fork)\\\\b`,\n );\n\n return runner_pattern.test(expression_text);\n}\n\nfunction is_bare_effect_gen(\n expression_text: string,\n effect_names: Set<string>,\n): boolean {\n const name_pattern = make_effect_name_pattern(effect_names);\n const bare_gen_pattern = new RegExp(\n `^(?:${name_pattern})\\\\.gen$`,\n );\n\n return bare_gen_pattern.test(expression_text);\n}\n\nfunction make_effect_name_pattern(effect_names: Set<string>): string {\n return [...effect_names]\n .map(escape_regexp)\n .sort((a, b) => b.length - a.length)\n .join(\"|\");\n}\n\nfunction starts_with_yield_star(expression_text: string): boolean {\n return /^yield\\s*\\*/.test(expression_text);\n}\n\nfunction contains_yield_star(expression_text: string): boolean {\n return /\\byield\\s*\\*/.test(expression_text);\n}\n\nfunction is_callback_expression(expression_text: string): boolean {\n return /^(?:async\\s+)?(?:\\([^)]*\\)|[A-Za-z_$][\\w$]*)\\s*=>/.test(\n expression_text,\n ) ||\n /^(?:async\\s+)?function\\b/.test(expression_text);\n}\n\nfunction is_event_attribute_name(name: string): boolean {\n return /^on(?::[A-Za-z_$][\\w$-]*|[a-z][\\w$-]*)$/.test(name);\n}\n\nfunction find_attribute_name_before_expression(\n code: string,\n open: number,\n): string | undefined {\n const tag_start = code.lastIndexOf(\"<\", open);\n const last_tag_end = code.lastIndexOf(\">\", open);\n\n if (tag_start === -1 || tag_start < last_tag_end) {\n return undefined;\n }\n\n const before_expression = code.slice(tag_start + 1, open);\n const match = before_expression.match(\n /(?:^|\\s)([A-Za-z_$:][\\w$:-]*)\\s*=\\s*$/,\n );\n\n return match?.[1];\n}\n\nfunction is_inside_svelte_excluded_block(code: string, pos: number): boolean {\n const script = find_svelte_tag_range(code, \"script\", pos);\n const style = find_svelte_tag_range(code, \"style\", pos);\n\n return (\n (script !== undefined && pos < script.end && pos > script.start) ||\n (style !== undefined && pos < style.end && pos > style.start)\n );\n}\n\nfunction find_svelte_tag_range(\n code: string,\n tag: string,\n after_pos: number,\n): { start: number; end: number } | undefined {\n const pattern = new RegExp(\n `<${tag}\\\\b[^>]*>([\\\\s\\\\S]*?)<\\\\/${tag}\\\\s*>`,\n \"gi\",\n );\n\n for (const match of code.matchAll(pattern)) {\n if (match.index === undefined) {\n continue;\n }\n\n const end = match.index + match[0].length;\n\n if (match.index <= after_pos && after_pos < end) {\n return { start: match.index, end };\n }\n }\n\n return undefined;\n}\n\nfunction find_closing_brace(code: string, start: number): number {\n let depth = 0;\n\n for (let i = start; i < code.length; i += 1) {\n const ch = code[i];\n\n if (ch === \"{\" && code[i - 1] !== \"$\") {\n depth += 1;\n } else if (ch === \"}\") {\n if (depth === 0) {\n return i;\n }\n\n depth -= 1;\n } else if (ch === \"'\" || ch === '\"' || ch === \"`\") {\n i = skip_string(code, i, ch);\n\n if (i === -1) {\n return -1;\n }\n } else if (ch === \"/\" && code[i + 1] === \"/\") {\n i = skip_line_comment(code, i);\n } else if (ch === \"/\" && code[i + 1] === \"*\") {\n i = skip_block_comment(code, i);\n\n if (i === -1) {\n return -1;\n }\n }\n }\n\n return -1;\n}\n\nfunction skip_string(code: string, start: number, quote: string): number {\n for (let i = start + 1; i < code.length; i += 1) {\n if (code[i] === \"\\\\\") {\n i += 1;\n continue;\n }\n\n if (code[i] === quote) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction skip_line_comment(code: string, start: number): number {\n for (let i = start + 2; i < code.length; i += 1) {\n if (code[i] === \"\\n\") {\n return i;\n }\n }\n\n return code.length;\n}\n\nfunction skip_block_comment(code: string, start: number): number {\n for (let i = start + 2; i < code.length; i += 1) {\n if (code[i] === \"*\" && code[i + 1] === \"/\") {\n return i + 1;\n }\n }\n\n return -1;\n}\n\nfunction get_line_column(\n code: string,\n position: number,\n): { line: number; column: number } {\n const before = code.slice(0, position);\n const lines = before.split(\"\\n\");\n const line = lines.length;\n const column = lines.at(-1)?.length ?? 0;\n\n return { line, column };\n}\n\nfunction escape_regexp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\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 /** Whether to emit debug logging in the generated remote client module. */\n debug?: boolean;\n}\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\";\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 return [\n make_diagnostics_plugin(),\n make_reserved_helper_guard_plugin(),\n make_svelte_transform_plugin(),\n make_server_rewrite_plugin(),\n make_remote_client_wrapper_plugin(options),\n ];\n}\n\nfunction make_diagnostics_plugin(): Plugin {\n const warned_diagnostics = new Set<string>();\n\n return {\n name: \"svelte-effect-runtime:diagnostics\",\n\n transform(code: string, id: string) {\n if (!is_svelte_component_module(id)) {\n return undefined;\n }\n\n const clean_id = id.split(\"?\")[0] ?? id;\n const diagnostics = find_svelte_effect_diagnostics(\n code,\n clean_id,\n );\n\n for (const diagnostic of diagnostics) {\n const diagnostic_key = [\n clean_id,\n diagnostic.line,\n diagnostic.column,\n diagnostic.message,\n ].join(\":\");\n\n if (warned_diagnostics.has(diagnostic_key)) {\n continue;\n }\n\n warned_diagnostics.add(diagnostic_key);\n\n this.warn({\n id: clean_id,\n message: diagnostic.message,\n loc: {\n line: diagnostic.line,\n column: diagnostic.column,\n },\n });\n }\n\n return undefined;\n },\n };\n}\n\nfunction make_reserved_helper_guard_plugin(): Plugin {\n return {\n name: \"svelte-effect-runtime:reserved-helper-guard\",\n\n transform(code: string, id: string) {\n if (!is_svelte_component_module(id) || !has_ser_syntax(code)) {\n return undefined;\n }\n\n const reserved_names = find_reserved_helper_names(code);\n\n if (reserved_names.length === 0) {\n return undefined;\n }\n\n this.warn(make_reserved_helper_warning(reserved_names));\n\n return undefined;\n },\n };\n}\n\nfunction make_svelte_transform_plugin(): Plugin {\n return {\n name: \"svelte-effect-runtime:svelte-transform\",\n\n configResolved(config) {\n const conflicting_plugin_names = find_pre_transform_plugin_names(\n config.plugins,\n );\n\n if (conflicting_plugin_names.length === 0) {\n return;\n }\n\n config.logger.info(\n make_pre_transform_plugin_notice(conflicting_plugin_names),\n );\n },\n\n async transform(code: string, id: string, options?: { ssr?: boolean }) {\n if (!is_svelte_component_module(id)) {\n return undefined;\n }\n\n const { transform_svelte_effect } = await import(\n \"./runtime/transform.ts\"\n );\n const result = transform_svelte_effect(code, id, {\n target: options?.ssr ? \"server\" : \"client\",\n });\n\n if (result.code === code) {\n return undefined;\n }\n\n return { code: result.code, map: null };\n },\n };\n}\n\nfunction find_pre_transform_plugin_names(plugins: readonly Plugin[]): string[] {\n return plugins\n .filter((plugin) =>\n !plugin.name.startsWith(\"svelte-effect-runtime:\") &&\n !is_known_framework_pre_transform_plugin(plugin.name) &&\n has_pre_transform_priority(plugin)\n )\n .map((plugin) => plugin.name);\n}\n\nconst ansi_reset = \"\\x1b[0m\";\nconst ansi_light_green = \"\\x1b[92m\";\n\nfunction make_pre_transform_plugin_notice(\n plugin_names: readonly string[],\n): string {\n const formatted_plugins = plugin_names\n .map((plugin_name) => ` - ${plugin_name}`)\n .join(\"\\n\");\n\n return [\n `${ansi_light_green}[svelte-effect-runtime]${ansi_reset} Svelte Effect Runtime noticed possible Vite plugin ordering conflicts.`,\n \"\",\n \"These plugins run before normal Svelte component transforms:\",\n formatted_plugins,\n \"\",\n \"This is usually fine, but if you see Svelte parser errors around <script effect>\",\n \"or yield* in components, one of those plugins may be reading .svelte files before\",\n \"SER has lowered its syntax.\",\n ].join(\"\\n\");\n}\n\nfunction is_known_framework_pre_transform_plugin(name: string): boolean {\n return name.startsWith(\"vite:\") || name === \"vite-plugin-svelte:preprocess\";\n}\n\nfunction has_pre_transform_priority(plugin: Plugin): boolean {\n if (plugin.enforce === \"pre\" && plugin.transform) {\n return true;\n }\n\n if (\n typeof plugin.transform === \"object\" &&\n plugin.transform !== null &&\n \"order\" in plugin.transform &&\n plugin.transform.order === \"pre\"\n ) {\n return true;\n }\n\n return false;\n}\n\nfunction make_server_rewrite_plugin(): Plugin {\n return {\n name: \"svelte-effect-runtime:server-imports\",\n\n config() {\n return { optimizeDeps: { exclude: [\"svelte-effect-runtime\"] } };\n },\n\n transform(code: string, id: string) {\n if (!is_server_runtime_module(id)) {\n return undefined;\n }\n\n const rewritten = code\n .replace(\n /from\\s+[\"']svelte-effect-runtime[\"']/g,\n `from \"svelte-effect-runtime/server\"`,\n )\n .replace(\n /from\\s+[\"']svelte-effect-runtime\\/internal\\/generators[\"']/g,\n `from \"svelte-effect-runtime/server\"`,\n );\n\n if (rewritten === code) {\n return undefined;\n }\n\n return { code: rewritten, map: null };\n },\n };\n}\n\nfunction make_remote_client_wrapper_plugin(options?: EffectOptions): Plugin {\n return {\n name: \"svelte-effect-runtime:remote-client\",\n enforce: \"post\",\n\n config() {\n return { ssr: { noExternal: [\"svelte-effect-runtime\"] } };\n },\n\n configResolved(config) {\n const no_external = config.ssr.noExternal;\n const runtime_package = \"svelte-effect-runtime\";\n\n if (no_external === true) {\n return;\n }\n\n if (Array.isArray(no_external)) {\n const has_runtime_package = no_external.some(\n (entry) => entry === runtime_package,\n );\n\n if (!has_runtime_package) {\n no_external.push(runtime_package);\n }\n\n return;\n }\n\n config.ssr.noExternal = [\n no_external,\n runtime_package,\n ].filter((value): value is string | RegExp => value !== undefined);\n },\n\n transform(code: string, id: string) {\n if (!is_remote_module(id) || !code.includes(\"__sveltekit/remote\")) {\n return undefined;\n }\n\n const rewritten = rewrite_remote_client_exports(code, options);\n\n if (rewritten === code) {\n return undefined;\n }\n\n return { code: rewritten, map: null };\n },\n };\n}\n\nfunction is_server_runtime_module(id: string): boolean {\n return (\n id.endsWith(\".server.ts\") ||\n id.endsWith(\".remote.ts\") ||\n id.includes(\"hooks.server.\")\n );\n}\n\nfunction is_remote_module(id: string): boolean {\n return /\\.(remote|remote\\.[cm]?)\\.[jt]s(?:\\?.*)?$/.test(id) ||\n id.includes(\".remote.\");\n}\n\nfunction is_svelte_component_module(id: string): boolean {\n const [filename, query = \"\"] = id.split(\"?\", 2);\n\n if (!filename.endsWith(\".svelte\")) {\n return false;\n }\n\n if (query.length === 0) {\n return true;\n }\n\n const params = new URLSearchParams(query);\n const allowed_params = [\"t\", \"v\"];\n\n return [...params.keys()].every((key) => allowed_params.includes(key));\n}\n\nfunction has_ser_syntax(code: string): boolean {\n return /\\byield\\s*\\*/.test(code) ||\n /<script\\b[^>]*\\beffect(?:[\\s=>]|$)/.test(code);\n}\n\nfunction find_reserved_helper_names(code: string): string[] {\n const script_segments = [...code.matchAll(\n /<script\\b[^>]*>([\\s\\S]*?)<\\/script\\s*>/gi,\n )].map((match) => match[1] ?? \"\");\n const markup_segments = [\n ...code.matchAll(/\\{[^{}]*(?:Dispatcher|Code)[^{}]*\\}/g),\n ]\n .map((match) => match[0]);\n const search_segments = [...script_segments, ...markup_segments];\n\n return [\"Dispatcher\", \"Code\"].filter((name) =>\n search_segments.some((segment) => new RegExp(`\\\\b${name}\\\\b`).test(segment))\n );\n}\n\nfunction make_reserved_helper_warning(names: string[]): string {\n const quoted_names = names.map((name) => `\\`${name}\\``);\n const subject = quoted_names.length === 1\n ? quoted_names[0]\n : `${quoted_names.slice(0, -1).join(\", \")} and ${\n quoted_names[quoted_names.length - 1]\n }`;\n const verb = names.length === 1 ? \"is\" : \"are\";\n\n return [\n `[svelte-effect-runtime] ${subject} ${verb} reserved for generated markup helpers.`,\n `Rename or alias local bindings that use ${subject} before using SER syntax in this component.`,\n ].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 * @since 2.0.0\n * @param code - The generated client remote module code.\n * @param options - Optional plugin options.\n * @returns The rewritten module code.\n * @internal\n */\nexport function rewrite_remote_client_exports(\n code: string,\n options?: EffectOptions,\n): string {\n const import_match = code.match(\n /import\\s+\\*\\s+as\\s+([A-Za-z_$][\\w$]*)\\s+from\\s+[\"']__sveltekit\\/remote[\"'];?/,\n );\n\n if (!import_match) {\n return code;\n }\n\n const namespace = import_match[1];\n const export_pattern = new RegExp(\n `export\\\\s+const\\\\s+([A-Za-z_$][\\\\w$]*)\\\\s*=\\\\s*${namespace}\\\\.(query_batch|query_live|query|command|form|prerender)\\\\(([\"'][^\"']+[\"'])\\\\);?`,\n \"g\",\n );\n\n let replaced_any = false;\n const body = code.replace(\n export_pattern,\n (_match, name, type, id_literal) => {\n replaced_any = true;\n\n return make_remote_export(name, type, id_literal, namespace);\n },\n );\n\n if (!replaced_any) {\n return code;\n }\n\n const imports = [\n `import { app_dir, base } from \"$app/paths/internal/client\";`,\n `import { create_remote_query_adapter, create_remote_live_query_adapter, create_remote_command_adapter, create_remote_form_adapter } from \"svelte-effect-runtime/internal/remote-client\";`,\n ].join(\"\\n\");\n\n const helpers = [\n `const __SER___remote_base = \\`\\${base}/\\${app_dir}/remote\\`;`,\n `function __SER___decode_payload(value) { return value; }`,\n ].join(\"\\n\");\n\n const debug_line = options?.debug\n ? `console.log(\"[ser] remote client wrappers loaded\");`\n : \"\";\n\n const injected = [\n import_match[0],\n imports,\n helpers,\n debug_line,\n ].filter(Boolean).join(\"\\n\");\n\n return body.replace(import_match[0], injected);\n}\n\nfunction make_remote_export(\n name: string,\n type: string,\n id_literal: string,\n namespace: string,\n): string {\n const native_call = `${namespace}.${type}(${id_literal})`;\n\n if (type === \"command\") {\n return `export const ${name} = create_remote_command_adapter(${native_call}, __SER___decode_payload);`;\n }\n\n if (type === \"form\") {\n return `export const ${name} = create_remote_form_adapter(${native_call}, __SER___decode_payload, __SER___remote_base);`;\n }\n\n if (type === \"query_live\") {\n return `export const ${name} = create_remote_live_query_adapter(${native_call}, __SER___decode_payload);`;\n }\n\n return `export const ${name} = create_remote_query_adapter(${native_call}, __SER___decode_payload);`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"vite-DR3-WaqQ.js","names":[],"sources":["../../../modules/svelte-effect-runtime/src/diagnostics.ts","../../../modules/svelte-effect-runtime/src/vite.ts"],"sourcesContent":["/**\n * Warning diagnostic produced by the SER Vite diagnostics plugin.\n */\ninterface Diagnostic {\n message: string;\n line: number;\n column: number;\n}\n\ninterface MarkupExpression {\n start: number;\n end: number;\n expression_text: string;\n attribute_name?: string;\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 code: string,\n filename: string,\n): Array<{ message: string; line: number; column: number }> {\n const effect_names = find_effect_local_names(code);\n const expressions = find_markup_expressions(code);\n\n return expressions.flatMap((expression) =>\n make_expression_diagnostics(code, filename, effect_names, expression)\n );\n}\n\nfunction find_effect_local_names(code: string): Set<string> {\n const names = new Set<string>([\"Effect\"]);\n const script_pattern = /<script\\b[^>]*>([\\s\\S]*?)<\\/script\\s*>/gi;\n\n for (const script_match of code.matchAll(script_pattern)) {\n const script = script_match[1];\n const import_pattern =\n /import\\s+(type\\s+)?\\{([^}]+)\\}\\s+from\\s+[\"']effect[\"']/g;\n\n for (const import_match of script.matchAll(import_pattern)) {\n const is_type_only_import = import_match[1] !== undefined;\n const specifiers = import_match[2].split(\",\");\n\n if (is_type_only_import) {\n continue;\n }\n\n for (const specifier of specifiers) {\n const local_name = parse_effect_import_local_name(specifier);\n\n if (local_name) {\n names.add(local_name);\n }\n }\n }\n }\n\n return names;\n}\n\nfunction parse_effect_import_local_name(specifier: string): string | undefined {\n const trimmed = specifier.trim();\n const match = trimmed.match(/^Effect(?:\\s+as\\s+([A-Za-z_$][\\w$]*))?$/);\n\n if (!match) {\n return undefined;\n }\n\n return match[1] ?? \"Effect\";\n}\n\nfunction find_markup_expressions(code: string): MarkupExpression[] {\n const expressions: MarkupExpression[] = [];\n let cursor = 0;\n\n while (cursor < code.length) {\n const open = code.indexOf(\"{\", cursor);\n\n if (open === -1) {\n break;\n }\n\n if (is_inside_svelte_excluded_block(code, open)) {\n cursor = open + 1;\n continue;\n }\n\n const close = find_closing_brace(code, open + 1);\n\n if (close === -1) {\n cursor = open + 1;\n continue;\n }\n\n expressions.push({\n start: open,\n end: close,\n expression_text: code.slice(open + 1, close).trim(),\n attribute_name: find_attribute_name_before_expression(code, open),\n });\n\n cursor = close + 1;\n }\n\n return expressions;\n}\n\nfunction make_expression_diagnostics(\n code: string,\n filename: string,\n effect_names: Set<string>,\n expression: MarkupExpression,\n): Diagnostic[] {\n const attribute_name = expression.attribute_name;\n const expression_text = expression.expression_text;\n const is_event_attribute = attribute_name !== undefined &&\n is_event_attribute_name(attribute_name);\n const is_attribute = attribute_name !== undefined;\n const loc = get_line_column(code, expression.start);\n\n if (!contains_effect_reference(expression_text, effect_names)) {\n return [];\n }\n\n if (starts_with_yield_star(expression_text)) {\n return [];\n }\n\n if (\n is_event_attribute &&\n is_callback_expression(expression_text) &&\n contains_yield_star(expression_text)\n ) {\n return [\n make_diagnostic(\n loc,\n make_hidden_event_yield_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (contains_effect_runner(expression_text, effect_names)) {\n return [\n make_diagnostic(\n loc,\n make_explicit_runner_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_bare_effect_gen(expression_text, effect_names)) {\n return [\n make_diagnostic(\n loc,\n make_bare_effect_gen_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_event_attribute && is_callback_expression(expression_text)) {\n return [\n make_diagnostic(\n loc,\n make_event_callback_returns_effect_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_event_attribute) {\n return [\n make_diagnostic(\n loc,\n make_event_attribute_effect_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n if (is_attribute) {\n return [\n make_diagnostic(\n loc,\n make_attribute_effect_warning(\n filename,\n attribute_name,\n expression_text,\n ),\n ),\n ];\n }\n\n return [\n make_diagnostic(\n loc,\n make_sync_markup_effect_warning(filename, expression_text),\n ),\n ];\n}\n\nfunction make_diagnostic(\n loc: { line: number; column: number },\n message: string,\n): Diagnostic {\n return {\n message,\n line: loc.line,\n column: loc.column,\n };\n}\n\nfunction make_hidden_event_yield_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n return [\n `[svelte-effect-runtime] Detected yield* hidden inside an event callback.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `SER can only lower yield* at the event attribute boundary.`,\n `Write the event expression directly, for example: ${attribute_name}={yield* save()}`,\n ].join(\"\\n\");\n}\n\nfunction make_explicit_runner_warning(\n filename: string,\n attribute_name: string | undefined,\n expression_text: string,\n): string {\n const location = attribute_name\n ? `${attribute_name}={${expression_text}}`\n : `{${expression_text}}`;\n\n return [\n `[svelte-effect-runtime] Detected an explicit Effect runner inside Svelte markup.`,\n `${filename}: ${location}`,\n `Explicit runners bypass SER cancellation and error handling for markup effects.`,\n `Prefer yield* so SER can manage the Effect lifecycle.`,\n ].join(\"\\n\");\n}\n\nfunction make_bare_effect_gen_warning(\n filename: string,\n attribute_name: string | undefined,\n expression_text: string,\n): string {\n const location = attribute_name\n ? `${attribute_name}={${expression_text}}`\n : `{${expression_text}}`;\n const fixed = attribute_name\n ? `${attribute_name}={yield* ${expression_text}(function* () { ... })}`\n : `{yield* ${expression_text}(function* () { ... })}`;\n\n return [\n `[svelte-effect-runtime] Detected Effect.gen used as a value instead of an Effect program.`,\n `${filename}: ${location}`,\n `${expression_text} is a constructor, not the result of running a generator.`,\n `Use: ${fixed}`,\n ].join(\"\\n\");\n}\n\nfunction make_event_callback_returns_effect_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n return [\n `[svelte-effect-runtime] Detected an event callback that returns an Effect but does not run it.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `Svelte will call the callback and receive an Effect value, but SER will not manage it from inside the callback.`,\n `Use yield* at the event attribute boundary or explicitly run the Effect if you really want to bypass SER.`,\n ].join(\"\\n\");\n}\n\nfunction make_event_attribute_effect_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n const fixed = `${attribute_name}={yield* ${expression_text}}`;\n\n return [\n `[svelte-effect-runtime] Detected an event attribute that looks like an Effect but is not written with yield*.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `If you are trying to use Effect in this event handler, use yield* at the beginning.`,\n `Use: ${fixed}`,\n ].join(\"\\n\");\n}\n\nfunction make_attribute_effect_warning(\n filename: string,\n attribute_name: string,\n expression_text: string,\n): string {\n const fixed = `${attribute_name}={yield* ${expression_text}}`;\n\n return [\n `[svelte-effect-runtime] Detected an attribute value that looks like an Effect but is not written with yield*.`,\n `${filename}: ${attribute_name}={${expression_text}}`,\n `Svelte attributes need the resolved Effect value, not the Effect object itself.`,\n `Use: ${fixed}`,\n ].join(\"\\n\");\n}\n\nfunction make_sync_markup_effect_warning(\n filename: string,\n expression_text: string,\n): string {\n return [\n `[svelte-effect-runtime] Detected a markup expression that creates an Effect but is not written with yield*.`,\n `${filename}: {${expression_text}}`,\n `This expression will produce an Effect value, not its result.`,\n `Use yield* where Svelte expects the resolved value.`,\n ].join(\"\\n\");\n}\n\nfunction contains_effect_reference(\n expression_text: string,\n effect_names: Set<string>,\n): boolean {\n const name_pattern = make_effect_name_pattern(effect_names);\n const effect_pattern = new RegExp(\n `\\\\b(?:${name_pattern})\\\\.(?:gen|succeed|fail|try|tryPromise|promise|sync|all|void|log|runPromise|runSync|runFork)\\\\b`,\n );\n\n return effect_pattern.test(expression_text);\n}\n\nfunction contains_effect_runner(\n expression_text: string,\n effect_names: Set<string>,\n): boolean {\n const name_pattern = make_effect_name_pattern(effect_names);\n const runner_pattern = new RegExp(\n `\\\\b(?:${name_pattern})\\\\.run(?:Promise|Sync|Fork)\\\\b`,\n );\n\n return runner_pattern.test(expression_text);\n}\n\nfunction is_bare_effect_gen(\n expression_text: string,\n effect_names: Set<string>,\n): boolean {\n const name_pattern = make_effect_name_pattern(effect_names);\n const bare_gen_pattern = new RegExp(\n `^(?:${name_pattern})\\\\.gen$`,\n );\n\n return bare_gen_pattern.test(expression_text);\n}\n\nfunction make_effect_name_pattern(effect_names: Set<string>): string {\n return [...effect_names]\n .map(escape_regexp)\n .sort((a, b) => b.length - a.length)\n .join(\"|\");\n}\n\nfunction starts_with_yield_star(expression_text: string): boolean {\n return /^yield\\s*\\*/.test(expression_text);\n}\n\nfunction contains_yield_star(expression_text: string): boolean {\n return /\\byield\\s*\\*/.test(expression_text);\n}\n\nfunction is_callback_expression(expression_text: string): boolean {\n return /^(?:async\\s+)?(?:\\([^)]*\\)|[A-Za-z_$][\\w$]*)\\s*=>/.test(\n expression_text,\n ) ||\n /^(?:async\\s+)?function\\b/.test(expression_text);\n}\n\nfunction is_event_attribute_name(name: string): boolean {\n return /^on(?::[A-Za-z_$][\\w$-]*|[a-z][\\w$-]*)$/.test(name);\n}\n\nfunction find_attribute_name_before_expression(\n code: string,\n open: number,\n): string | undefined {\n const tag_start = code.lastIndexOf(\"<\", open);\n const last_tag_end = code.lastIndexOf(\">\", open);\n\n if (tag_start === -1 || tag_start < last_tag_end) {\n return undefined;\n }\n\n const before_expression = code.slice(tag_start + 1, open);\n const match = before_expression.match(\n /(?:^|\\s)([A-Za-z_$:][\\w$:-]*)\\s*=\\s*$/,\n );\n\n return match?.[1];\n}\n\nfunction is_inside_svelte_excluded_block(code: string, pos: number): boolean {\n const script = find_svelte_tag_range(code, \"script\", pos);\n const style = find_svelte_tag_range(code, \"style\", pos);\n\n return (\n (script !== undefined && pos < script.end && pos > script.start) ||\n (style !== undefined && pos < style.end && pos > style.start)\n );\n}\n\nfunction find_svelte_tag_range(\n code: string,\n tag: string,\n after_pos: number,\n): { start: number; end: number } | undefined {\n const pattern = new RegExp(\n `<${tag}\\\\b[^>]*>([\\\\s\\\\S]*?)<\\\\/${tag}\\\\s*>`,\n \"gi\",\n );\n\n for (const match of code.matchAll(pattern)) {\n if (match.index === undefined) {\n continue;\n }\n\n const end = match.index + match[0].length;\n\n if (match.index <= after_pos && after_pos < end) {\n return { start: match.index, end };\n }\n }\n\n return undefined;\n}\n\nfunction find_closing_brace(code: string, start: number): number {\n let depth = 0;\n\n for (let i = start; i < code.length; i += 1) {\n const ch = code[i];\n\n if (ch === \"{\" && code[i - 1] !== \"$\") {\n depth += 1;\n } else if (ch === \"}\") {\n if (depth === 0) {\n return i;\n }\n\n depth -= 1;\n } else if (ch === \"'\" || ch === '\"' || ch === \"`\") {\n i = skip_string(code, i, ch);\n\n if (i === -1) {\n return -1;\n }\n } else if (ch === \"/\" && code[i + 1] === \"/\") {\n i = skip_line_comment(code, i);\n } else if (ch === \"/\" && code[i + 1] === \"*\") {\n i = skip_block_comment(code, i);\n\n if (i === -1) {\n return -1;\n }\n }\n }\n\n return -1;\n}\n\nfunction skip_string(code: string, start: number, quote: string): number {\n for (let i = start + 1; i < code.length; i += 1) {\n if (code[i] === \"\\\\\") {\n i += 1;\n continue;\n }\n\n if (code[i] === quote) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction skip_line_comment(code: string, start: number): number {\n for (let i = start + 2; i < code.length; i += 1) {\n if (code[i] === \"\\n\") {\n return i;\n }\n }\n\n return code.length;\n}\n\nfunction skip_block_comment(code: string, start: number): number {\n for (let i = start + 2; i < code.length; i += 1) {\n if (code[i] === \"*\" && code[i + 1] === \"/\") {\n return i + 1;\n }\n }\n\n return -1;\n}\n\nfunction get_line_column(\n code: string,\n position: number,\n): { line: number; column: number } {\n const before = code.slice(0, position);\n const lines = before.split(\"\\n\");\n const line = lines.length;\n const column = lines.at(-1)?.length ?? 0;\n\n return { line, column };\n}\n\nfunction escape_regexp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\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 /** Whether to emit debug logging in the generated remote client module. */\n debug?: boolean;\n}\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\";\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 return [\n make_diagnostics_plugin(),\n make_reserved_helper_guard_plugin(),\n make_svelte_transform_plugin(),\n make_server_rewrite_plugin(),\n make_remote_client_wrapper_plugin(options),\n ];\n}\n\nfunction make_diagnostics_plugin(): Plugin {\n const warned_diagnostics = new Set<string>();\n\n return {\n name: \"svelte-effect-runtime:diagnostics\",\n\n transform(code: string, id: string) {\n if (!is_svelte_component_module(id)) {\n return undefined;\n }\n\n const clean_id = id.split(\"?\")[0] ?? id;\n const diagnostics = find_svelte_effect_diagnostics(\n code,\n clean_id,\n );\n\n for (const diagnostic of diagnostics) {\n const diagnostic_key = [\n clean_id,\n diagnostic.line,\n diagnostic.column,\n diagnostic.message,\n ].join(\":\");\n\n if (warned_diagnostics.has(diagnostic_key)) {\n continue;\n }\n\n warned_diagnostics.add(diagnostic_key);\n\n this.warn({\n id: clean_id,\n message: diagnostic.message,\n loc: {\n line: diagnostic.line,\n column: diagnostic.column,\n },\n });\n }\n\n return undefined;\n },\n };\n}\n\nfunction make_reserved_helper_guard_plugin(): Plugin {\n return {\n name: \"svelte-effect-runtime:reserved-helper-guard\",\n\n transform(code: string, id: string) {\n if (!is_svelte_component_module(id) || !has_ser_syntax(code)) {\n return undefined;\n }\n\n const reserved_names = find_reserved_helper_names(code);\n\n if (reserved_names.length === 0) {\n return undefined;\n }\n\n this.warn(make_reserved_helper_warning(reserved_names));\n\n return undefined;\n },\n };\n}\n\nfunction make_svelte_transform_plugin(): Plugin {\n return {\n name: \"svelte-effect-runtime:svelte-transform\",\n\n configResolved(config) {\n const conflicting_plugin_names = find_pre_transform_plugin_names(\n config.plugins,\n );\n\n if (conflicting_plugin_names.length === 0) {\n return;\n }\n\n config.logger.info(\n make_pre_transform_plugin_notice(conflicting_plugin_names),\n );\n },\n\n async transform(code: string, id: string, options?: { ssr?: boolean }) {\n if (!is_svelte_component_module(id)) {\n return undefined;\n }\n\n const { transform_svelte_effect } = await import(\n \"./runtime/transform.ts\"\n );\n const result = transform_svelte_effect(code, id, {\n target: options?.ssr ? \"server\" : \"client\",\n });\n\n if (result.code === code) {\n return undefined;\n }\n\n return { code: result.code, map: null };\n },\n };\n}\n\nfunction find_pre_transform_plugin_names(plugins: readonly Plugin[]): string[] {\n return plugins\n .filter((plugin) =>\n !plugin.name.startsWith(\"svelte-effect-runtime:\") &&\n !is_known_framework_pre_transform_plugin(plugin.name) &&\n has_pre_transform_priority(plugin)\n )\n .map((plugin) => plugin.name);\n}\n\nconst ansi_reset = \"\\x1b[0m\";\nconst ansi_light_green = \"\\x1b[92m\";\n\nfunction make_pre_transform_plugin_notice(\n plugin_names: readonly string[],\n): string {\n const formatted_plugins = plugin_names\n .map((plugin_name) => ` - ${plugin_name}`)\n .join(\"\\n\");\n\n return [\n `${ansi_light_green}[svelte-effect-runtime]${ansi_reset} Svelte Effect Runtime noticed possible Vite plugin ordering conflicts.`,\n \"\",\n \"These plugins run before normal Svelte component transforms:\",\n formatted_plugins,\n \"\",\n \"This is usually fine, but if you see Svelte parser errors around <script effect>\",\n \"or yield* in components, one of those plugins may be reading .svelte files before\",\n \"SER has lowered its syntax.\",\n ].join(\"\\n\");\n}\n\nfunction is_known_framework_pre_transform_plugin(name: string): boolean {\n return name.startsWith(\"vite:\") || name === \"vite-plugin-svelte:preprocess\";\n}\n\nfunction has_pre_transform_priority(plugin: Plugin): boolean {\n if (plugin.enforce === \"pre\" && plugin.transform) {\n return true;\n }\n\n if (\n typeof plugin.transform === \"object\" &&\n plugin.transform !== null &&\n \"order\" in plugin.transform &&\n plugin.transform.order === \"pre\"\n ) {\n return true;\n }\n\n return false;\n}\n\nfunction make_server_rewrite_plugin(): Plugin {\n return {\n name: \"svelte-effect-runtime:server-imports\",\n\n config() {\n return { optimizeDeps: { exclude: [\"svelte-effect-runtime\"] } };\n },\n\n transform(code: string, id: string) {\n if (!is_server_runtime_module(id)) {\n return undefined;\n }\n\n const rewritten = code\n .replace(\n /from\\s+[\"']svelte-effect-runtime[\"']/g,\n `from \"svelte-effect-runtime/server\"`,\n )\n .replace(\n /from\\s+[\"']svelte-effect-runtime\\/internal\\/generators[\"']/g,\n `from \"svelte-effect-runtime/server\"`,\n );\n\n if (rewritten === code) {\n return undefined;\n }\n\n return { code: rewritten, map: null };\n },\n };\n}\n\nfunction make_remote_client_wrapper_plugin(options?: EffectOptions): Plugin {\n return {\n name: \"svelte-effect-runtime:remote-client\",\n enforce: \"post\",\n\n config() {\n return { ssr: { noExternal: [\"svelte-effect-runtime\"] } };\n },\n\n configResolved(config) {\n const no_external = config.ssr.noExternal;\n const runtime_package = \"svelte-effect-runtime\";\n\n if (no_external === true) {\n return;\n }\n\n if (Array.isArray(no_external)) {\n const has_runtime_package = no_external.some(\n (entry) => entry === runtime_package,\n );\n\n if (!has_runtime_package) {\n no_external.push(runtime_package);\n }\n\n return;\n }\n\n config.ssr.noExternal = [\n no_external,\n runtime_package,\n ].filter((value): value is string | RegExp => value !== undefined);\n },\n\n transform(code: string, id: string) {\n if (!is_remote_module(id) || !code.includes(\"__sveltekit/remote\")) {\n return undefined;\n }\n\n const rewritten = rewrite_remote_client_exports(code, options);\n\n if (rewritten === code) {\n return undefined;\n }\n\n return { code: rewritten, map: null };\n },\n };\n}\n\nfunction is_server_runtime_module(id: string): boolean {\n const [filename] = id.split(\"?\", 2);\n\n return (\n /\\.(server|remote)(?:\\.[cm])?\\.[jt]s$/.test(filename) ||\n /(?:^|[\\\\/])hooks\\.server(?:\\.[cm])?\\.[jt]s$/.test(filename)\n );\n}\n\nfunction is_remote_module(id: string): boolean {\n return /\\.(remote|remote\\.[cm]?)\\.[jt]s(?:\\?.*)?$/.test(id) ||\n id.includes(\".remote.\");\n}\n\nfunction is_svelte_component_module(id: string): boolean {\n const [filename, query = \"\"] = id.split(\"?\", 2);\n\n if (!filename.endsWith(\".svelte\")) {\n return false;\n }\n\n if (query.length === 0) {\n return true;\n }\n\n const params = new URLSearchParams(query);\n const allowed_params = [\"t\", \"v\"];\n\n return [...params.keys()].every((key) => allowed_params.includes(key));\n}\n\nfunction has_ser_syntax(code: string): boolean {\n return /\\byield\\s*\\*/.test(code) ||\n /<script\\b[^>]*\\beffect(?:[\\s=>]|$)/.test(code);\n}\n\nfunction find_reserved_helper_names(code: string): string[] {\n const script_segments = [...code.matchAll(\n /<script\\b[^>]*>([\\s\\S]*?)<\\/script\\s*>/gi,\n )].map((match) => match[1] ?? \"\");\n const markup_segments = [\n ...code.matchAll(/\\{[^{}]*(?:Dispatcher|Code)[^{}]*\\}/g),\n ]\n .map((match) => match[0]);\n const search_segments = [...script_segments, ...markup_segments];\n\n return [\"Dispatcher\", \"Code\"].filter((name) =>\n search_segments.some((segment) => new RegExp(`\\\\b${name}\\\\b`).test(segment))\n );\n}\n\nfunction make_reserved_helper_warning(names: string[]): string {\n const quoted_names = names.map((name) => `\\`${name}\\``);\n const subject = quoted_names.length === 1\n ? quoted_names[0]\n : `${quoted_names.slice(0, -1).join(\", \")} and ${\n quoted_names[quoted_names.length - 1]\n }`;\n const verb = names.length === 1 ? \"is\" : \"are\";\n\n return [\n `[svelte-effect-runtime] ${subject} ${verb} reserved for generated markup helpers.`,\n `Rename or alias local bindings that use ${subject} before using SER syntax in this component.`,\n ].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 * @since 2.0.0\n * @param code - The generated client remote module code.\n * @param options - Optional plugin options.\n * @returns The rewritten module code.\n * @internal\n */\nexport function rewrite_remote_client_exports(\n code: string,\n options?: EffectOptions,\n): string {\n const import_match = code.match(\n /import\\s+\\*\\s+as\\s+([A-Za-z_$][\\w$]*)\\s+from\\s+[\"']__sveltekit\\/remote[\"'];?/,\n );\n\n if (!import_match) {\n return code;\n }\n\n const namespace = import_match[1];\n const export_pattern = new RegExp(\n `export\\\\s+const\\\\s+([A-Za-z_$][\\\\w$]*)\\\\s*=\\\\s*${namespace}\\\\.(query_batch|query_live|query|command|form|prerender)\\\\(([\"'][^\"']+[\"'])\\\\);?`,\n \"g\",\n );\n\n let replaced_any = false;\n const body = code.replace(\n export_pattern,\n (_match, name, type, id_literal) => {\n replaced_any = true;\n\n return make_remote_export(name, type, id_literal, namespace);\n },\n );\n\n if (!replaced_any) {\n return code;\n }\n\n const imports = [\n `import { app_dir, base } from \"$app/paths/internal/client\";`,\n `import { create_remote_query_adapter, create_remote_live_query_adapter, create_remote_command_adapter, create_remote_form_adapter } from \"svelte-effect-runtime/internal/remote-client\";`,\n ].join(\"\\n\");\n\n const helpers = [\n `const __SER___remote_base = \\`\\${base}/\\${app_dir}/remote\\`;`,\n `function __SER___decode_payload(value) { return value; }`,\n ].join(\"\\n\");\n\n const debug_line = options?.debug\n ? `console.log(\"[ser] remote client wrappers loaded\");`\n : \"\";\n\n const injected = [\n import_match[0],\n imports,\n helpers,\n debug_line,\n ].filter(Boolean).join(\"\\n\");\n\n return body.replace(import_match[0], injected);\n}\n\nfunction make_remote_export(\n name: string,\n type: string,\n id_literal: string,\n namespace: string,\n): string {\n const native_call = `${namespace}.${type}(${id_literal})`;\n\n if (type === \"command\") {\n return `export const ${name} = create_remote_command_adapter(${native_call}, __SER___decode_payload);`;\n }\n\n if (type === \"form\") {\n return `export const ${name} = create_remote_form_adapter(${native_call}, __SER___decode_payload, __SER___remote_base);`;\n }\n\n if (type === \"query_live\") {\n return `export const ${name} = create_remote_live_query_adapter(${native_call}, __SER___decode_payload);`;\n }\n\n return `export const ${name} = create_remote_query_adapter(${native_call}, __SER___decode_payload);`;\n}\n"],"mappings":"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"}
package/.dist/mod.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { A as YieldStarInEventCallbackError, C as UncheckedLiveQueryHandlerMissingError, D as UnsupportedMarkupEffectPositionError, E as UnknownRuntimeError, O as UnsupportedRemoteFormResponseError, S as UncheckedFormHandlerMissingError, T as UncheckedQueryHandlerMissingError, _ as RuntimeAlreadyInitializedError, a as DispatcherDisposedError, b as SvelteKitServerExportUnavailableError, c as InvalidLiveQueryReturnError, d as PreprocessError, f as RemoteErrorDecodeError, g as RequestEventUnavailableError, h as RemoteHelperError, i as BatchQueryHandlerMissingError, k as VitePreTransformPluginConflictError, l as InvalidQueryFactoryError, m as RemoteHelperContextError, n as AsyncEffectInSyncRuneError, o as InvalidCommandFactoryError, p as RemoteFormEndpointMissingError, r as AwaitInEffectWorkError, s as InvalidLiveQueryFactoryError, t as AsyncEffectInEventCallbackError, u as InvalidRemoteFormResponseError, v as RuntimeError, w as UncheckedPrerenderHandlerMissingError, x as UncheckedCommandHandlerMissingError, y as ServerOnlyImportError } from "./chunks/errors-0PaWf7Bq.js";
2
2
  import { t as Dispatcher } from "./chunks/dispatcher-s46GfT6n.js";
3
3
  import { is_form_error, is_remote_http_error, is_remote_transport_error, is_remote_validation_error } from "./remote/shared.js";
4
- import { t as effect } from "./chunks/vite-DTeo70MK.js";
4
+ import { t as effect } from "./chunks/vite-DR3-WaqQ.js";
5
5
  //#region src/mod.ts
6
6
  /**
7
7
  * Public API surface for `svelte-effect-runtime`.
package/.dist/vite.js CHANGED
@@ -1,2 +1,2 @@
1
- import { n as rewrite_remote_client_exports, t as effect } from "./chunks/vite-DTeo70MK.js";
1
+ import { n as rewrite_remote_client_exports, t as effect } from "./chunks/vite-DR3-WaqQ.js";
2
2
  export { effect, rewrite_remote_client_exports };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-effect-runtime",
3
- "version": "3.4.2",
3
+ "version": "3.4.3",
4
4
  "description": "Core module that houses the Vite plugin to enable effectful execution.",
5
5
  "license": "BSD-3-Clause",
6
6
  "type": "module",