import type { Event } from 'nostr-tools' import { PLATFORM_SERVICE } from '../platformConfig' import { TARGET_EVENT_ID } from './constants' type ExtractedTags = ReturnType export function isTargetDebugEvent(eventId: string): boolean { return eventId === TARGET_EVENT_ID } export function logRelaySyncProgress(params: { relayUrl: string; eventCount: number }): void { if (params.eventCount % 100 !== 0) { return } console.warn( `[PlatformSync] Received ${params.eventCount} events from relay ${params.relayUrl} (client-side filtering in progress)` ) } export function logTargetEventReceived(params: { relayUrl: string; event: Event; eventCount: number }): void { if (!isTargetDebugEvent(params.event.id)) { return } console.warn(`[PlatformSync] ✅ Received target event from relay ${params.relayUrl} (event #${params.eventCount}):`, { id: params.event.id, created_at: params.event.created_at, created_at_date: new Date(params.event.created_at * 1000).toISOString(), pubkey: params.event.pubkey, allTags: params.event.tags, serviceTags: params.event.tags.filter((tag) => tag[0] === 'service'), }) } export function logTargetEventTags(params: { event: Event tags: ExtractedTags }): void { if (!isTargetDebugEvent(params.event.id)) { return } console.warn(`[PlatformSync] Extracted tags for target event:`, { extractedTags: params.tags, hasServiceTag: params.tags.service === PLATFORM_SERVICE, serviceValue: params.tags.service, expectedService: PLATFORM_SERVICE, }) } export function logTargetEventAccepted(event: Event): void { if (!isTargetDebugEvent(event.id)) { return } console.warn(`[PlatformSync] Target event accepted and added to relayEvents`) } export function logTargetEventRejected(params: { event: Event; tags: ExtractedTags }): void { if (!isTargetDebugEvent(params.event.id)) { return } console.warn( `[PlatformSync] Event ${params.event.id} rejected: service tag is "${params.tags.service}", expected "${PLATFORM_SERVICE}"` ) } export function logTargetEventDebug(params: { event: Event; tags: ExtractedTags }): void { if (!isTargetDebugEvent(params.event.id)) { return } console.warn(`[PlatformSync] Processing target event:`, { id: params.event.id, type: params.tags.type, hidden: params.tags.hidden, service: params.tags.service, version: params.tags.version, }) } export function logTargetEventSkipped(params: { event: Event; tags: ExtractedTags }): void { if (!isTargetDebugEvent(params.event.id) || !params.tags.hidden) { return } console.warn(`[PlatformSync] Target event skipped: hidden=${params.tags.hidden}`) } export function logTargetEventAttempt(params: { event: Event; message: string }): void { if (!isTargetDebugEvent(params.event.id)) { return } console.warn(`[PlatformSync] ${params.message}`) } export function logTargetEventParsed(params: { event: Event; parsed: unknown }): void { if (!isTargetDebugEvent(params.event.id)) { return } const parsedObj = params.parsed as { hash?: string } | null console.warn(`[PlatformSync] parsePresentationEvent result for target event:`, { parsed: parsedObj !== null, hasHash: parsedObj?.hash !== undefined, hash: parsedObj?.hash, }) } export function logTargetEventCached(params: { event: Event; hash: string }): void { if (!isTargetDebugEvent(params.event.id)) { return } console.warn(`[PlatformSync] Target event cached successfully as author with hash:`, params.hash) } export function logTargetEventNotCached(params: { event: Event; parsed: unknown }): void { if (!isTargetDebugEvent(params.event.id)) { return } const parsedObj = params.parsed as { hash?: string } | null console.warn(`[PlatformSync] Target event NOT cached: parsed=${parsedObj !== null}, hasHash=${parsedObj?.hash !== undefined}`) }