diff --git a/src/lib/lovable-error-reporting.ts b/src/lib/lovable-error-reporting.ts new file mode 100644 index 0000000..d1f9b1b --- /dev/null +++ b/src/lib/lovable-error-reporting.ts @@ -0,0 +1,36 @@ +type LovableErrorOptions = { + mechanism?: "manual" | "onerror" | "unhandledrejection" | "react_error_boundary"; + handled?: boolean; + severity?: "error" | "warning" | "info"; +}; + +type LovableEvents = { + captureException?: ( + error: unknown, + context?: Record, + options?: LovableErrorOptions, + ) => void; +}; + +declare global { + interface Window { + __lovableEvents?: LovableEvents; + } +} + +export function reportLovableError(error: unknown, context: Record = {}) { + if (typeof window === "undefined") return; + window.__lovableEvents?.captureException?.( + error, + { + source: "react_error_boundary", + route: window.location.pathname, + ...context, + }, + { + mechanism: "react_error_boundary", + handled: false, + severity: "error", + }, + ); +}