Refactor relay URL validation to use applesauce's isSafeRelayURL helper
which provides a fast regex-based check for valid websocket URLs.
Changes:
- Update isValidRelayURL in relay-url.ts to use isSafeRelayURL as fast
path, with URL constructor fallback for IP addresses
- Re-export isSafeRelayURL from relay-url.ts for convenience
- Update loaders.ts to use isSafeRelayURL directly from applesauce
- Add relay URL validation to:
- nostr-utils.ts: getEventPointerFromQTag (q-tag relay hints)
- zapstore-helpers.ts: getAppReferences (a-tag relay hints)
- nip89-helpers.ts: getHandlerReferences (a-tag relay hints)
- PublicChatsRenderer.tsx: extractGroups (group relay URLs)
This ensures consistent validation across all relay URL extraction points
using applesauce's battle-tested validation.
https://claude.ai/code/session_01Ca2fKD2r4wHKRD8rcRohj9