UNPKG

@agentman/chat-widget

Version:

Agentman Chat Widget for easy integration with web applications

62 lines (61 loc) 1.72 kB
import type { ClientMetadata } from '../types/types'; /** * Utility class for collecting client metadata */ export declare class ClientMetadataCollector { /** * Generate a unique device ID for this browser/device */ private static generateDeviceId; /** * Generate a session ID for this browser session */ private static generateSessionId; /** * Detect browser/device type from user agent */ private static detectBrowserDevice; /** * Get timezone string */ private static getTimezone; /** * Fetch IP address and geolocation from external service with security measures */ static fetchIPAndGeoLocation(): Promise<{ ip_address?: string; geo_location?: string; }>; /** * Safely parse and validate IP service response */ private static parseAndValidateIPResponse; /** * Extract and sanitize IP data from validated response */ private static extractIPData; /** * Validate IP address format */ private static isValidIP; /** * Sanitize string values from external APIs */ private static sanitizeString; /** * Collect all available client metadata */ static collect(overrides?: Partial<ClientMetadata>): ClientMetadata; /** * Sanitize URL to prevent XSS */ private static sanitizeURL; /** * Collect metadata including IP (async version) */ static collectWithIP(overrides?: Partial<ClientMetadata>): Promise<ClientMetadata>; /** * Merge metadata with custom tags */ static mergeWithCustomTags(metadata: ClientMetadata, customTags?: Record<string, any>): ClientMetadata; }