@product-intelligence-hub/sdk-web 0.2.0 → 0.4.0
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.
- package/README.md +102 -5
- package/dist/hooks.cjs +2 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.cts +32 -0
- package/dist/hooks.d.ts +32 -0
- package/dist/hooks.js +2 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -2
- package/dist/index.d.ts +42 -2
- package/dist/index.global.js +68 -2
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +28 -2
package/dist/index.global.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../sdk-core/src/errors.ts","../../sdk-core/src/utils.ts","../../sdk-core/src/identity.ts","../../sdk-core/src/queue.ts","../../sdk-core/src/session.ts","../../sdk-core/src/transport.ts","../../sdk-core/src/client.ts","../src/autocapture.ts","../src/beacon.ts","../src/storage.ts","../src/index.ts"],"names":["w","A","i","t","e","n","PIHError","_PIHError","message","code","details","__publicField","error","generateUUID","bytes","hex","b","c","r","getTimestamp","dateToTimestamp","date","getBackoffDelay","attempt","baseDelay","maxDelay","delay","STORAGE_PREFIX","STORAGE_KEYS","DEFAULTS","IdentityManager","storage","debug","storedAnonymousId","storedUserId","storedTraits","userId","traits","enabled","args","EventQueue","config","event","dropped","queuedEvent","options","batch","events","q","response","rejection","pihError","item","nextAttempt","backoff","stored","parsed","SessionManager","timeout","callbacks","storedSessionId","storedLastActivity","lastActivity","now","duration","endedSessionId","Transport","url","apiEvents","body","data","payload","tenantId","headers","blob","PIHClient","sessionId","eventName","properties","timestamp","UTM_STORAGE_KEY","UTM_PARAMS","Autocapture","client","utmParams","originalPush","originalReplace","onNavigate","target","trackElement","elementTag","elementText","elementId","elementClasses","dataTrack","href","params","key","value","currentParams","BeaconManager","MemoryStorage","isLocalStorageAvailable","testKey","LocalStorageAdapter","createWebStorage","WebPIHClient","webConfig","instance","init","getInstance","resetInstance","PIH","index_default"],"mappings":"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","file":"index.global.js","sourcesContent":["/**\n * Error codes for PIH SDK errors\n */\nexport type PIHErrorCode =\n | \"NETWORK_ERROR\"\n | \"INVALID_CONFIG\"\n | \"QUEUE_FULL\"\n | \"RATE_LIMITED\"\n | \"INVALID_PAYLOAD\"\n | \"STORAGE_ERROR\"\n | \"SESSION_ERROR\"\n | \"UNKNOWN_ERROR\";\n\n/**\n * Custom error class for PIH SDK\n */\nexport class PIHError extends Error {\n /** Error code for programmatic handling */\n public readonly code: PIHErrorCode;\n /** Additional error details */\n public readonly details?: unknown;\n\n constructor(message: string, code: PIHErrorCode, details?: unknown) {\n super(message);\n this.name = \"PIHError\";\n this.code = code;\n this.details = details;\n\n // Maintains proper stack trace for where error was thrown (V8 only)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, PIHError);\n }\n }\n\n /**\n * Create a network error\n */\n static networkError(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"NETWORK_ERROR\", details);\n }\n\n /**\n * Create an invalid config error\n */\n static invalidConfig(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"INVALID_CONFIG\", details);\n }\n\n /**\n * Create a queue full error\n */\n static queueFull(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"QUEUE_FULL\", details);\n }\n\n /**\n * Create a rate limited error\n */\n static rateLimited(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"RATE_LIMITED\", details);\n }\n\n /**\n * Create an invalid payload error\n */\n static invalidPayload(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"INVALID_PAYLOAD\", details);\n }\n\n /**\n * Create a storage error\n */\n static storageError(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"STORAGE_ERROR\", details);\n }\n\n /**\n * Create a session error\n */\n static sessionError(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"SESSION_ERROR\", details);\n }\n\n /**\n * Convert unknown error to PIHError\n */\n static fromUnknown(error: unknown): PIHError {\n if (error instanceof PIHError) {\n return error;\n }\n if (error instanceof Error) {\n return new PIHError(error.message, \"UNKNOWN_ERROR\", error);\n }\n return new PIHError(String(error), \"UNKNOWN_ERROR\", error);\n }\n}\n","/**\n * Generate a UUID v4\n * Uses crypto.randomUUID if available, otherwise falls back to manual generation\n */\nexport function generateUUID(): string {\n // Use native crypto.randomUUID if available (modern browsers, Node.js 19+)\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n\n // Fallback implementation using crypto.getRandomValues\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.getRandomValues === \"function\"\n ) {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n\n // Set version (4) and variant (8, 9, A, or B)\n bytes[6] = (bytes[6]! & 0x0f) | 0x40;\n bytes[8] = (bytes[8]! & 0x3f) | 0x80;\n\n const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, \"0\")).join(\n \"\"\n );\n\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n }\n\n // Last resort fallback using Math.random (less secure but works everywhere)\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Get current timestamp in ISO 8601 UTC format\n */\nexport function getTimestamp(): string {\n return new Date().toISOString();\n}\n\n/**\n * Get timestamp from Date in ISO 8601 UTC format\n */\nexport function dateToTimestamp(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Calculate exponential backoff delay\n * @param attempt - Current attempt number (0-indexed)\n * @param baseDelay - Base delay in milliseconds (default: 1000)\n * @param maxDelay - Maximum delay in milliseconds (default: 16000)\n */\nexport function getBackoffDelay(\n attempt: number,\n baseDelay = 1000,\n maxDelay = 16000\n): number {\n const delay = baseDelay * Math.pow(2, attempt);\n return Math.min(delay, maxDelay);\n}\n\n/**\n * Check if a value is a plain object\n */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\n/**\n * Deep clone a value using JSON serialization\n * Note: Does not preserve functions, undefined, or special objects\n */\nexport function deepClone<T>(value: T): T {\n return JSON.parse(JSON.stringify(value));\n}\n\n/**\n * Merge two objects, with the second object's values taking precedence\n */\nexport function mergeObjects<T extends Record<string, unknown>>(\n target: T,\n source: Partial<T>\n): T {\n return { ...target, ...source };\n}\n\n/**\n * Create a debounced function\n */\nexport function debounce<T extends (...args: unknown[]) => void>(\n fn: T,\n delay: number\n): T {\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n return ((...args: unknown[]) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n fn(...args);\n timeoutId = null;\n }, delay);\n }) as T;\n}\n\n/**\n * Storage key prefix for all PIH SDK data\n */\nexport const STORAGE_PREFIX = \"pih_\";\n\n/**\n * Storage keys used by the SDK\n */\nexport const STORAGE_KEYS = {\n QUEUE: `${STORAGE_PREFIX}queue`,\n ANONYMOUS_ID: `${STORAGE_PREFIX}anonymous_id`,\n USER_ID: `${STORAGE_PREFIX}user_id`,\n USER_TRAITS: `${STORAGE_PREFIX}user_traits`,\n SESSION_ID: `${STORAGE_PREFIX}session_id`,\n SESSION_LAST_ACTIVITY: `${STORAGE_PREFIX}session_last_activity`,\n} as const;\n\n/**\n * Default configuration values\n */\nexport const DEFAULTS = {\n API_URL: \"https://repoingest-production.up.railway.app\",\n FLUSH_INTERVAL: 10000, // 10 seconds\n FLUSH_AT: 25, // events\n MAX_QUEUE_SIZE: 5000, // events\n SESSION_TIMEOUT: 1800000, // 30 minutes\n MAX_BATCH_SIZE: 100, // events per request\n MAX_RETRIES: 5,\n BASE_BACKOFF_DELAY: 1000, // 1 second\n MAX_BACKOFF_DELAY: 16000, // 16 seconds\n} as const;\n","import type { StorageAdapter } from \"./types.js\";\nimport { generateUUID, STORAGE_KEYS } from \"./utils.js\";\n\n/**\n * Identity manager for handling anonymous and user IDs\n */\nexport class IdentityManager {\n private anonymousId: string;\n private userId: string | null = null;\n private userTraits: Record<string, unknown> = {};\n private storage: StorageAdapter | null;\n private debug: boolean;\n\n constructor(storage: StorageAdapter | null, debug = false) {\n this.storage = storage;\n this.debug = debug;\n this.anonymousId = generateUUID();\n }\n\n /**\n * Initialize identity from storage\n */\n async initialize(): Promise<void> {\n if (!this.storage) {\n this.log(\"No storage adapter, using in-memory identity only\");\n return;\n }\n\n try {\n // Load anonymous ID\n const storedAnonymousId = await this.storage.get(\n STORAGE_KEYS.ANONYMOUS_ID\n );\n if (storedAnonymousId) {\n this.anonymousId = storedAnonymousId;\n this.log(\"Loaded anonymous ID from storage:\", this.anonymousId);\n } else {\n // Persist the generated anonymous ID\n await this.storage.set(STORAGE_KEYS.ANONYMOUS_ID, this.anonymousId);\n this.log(\"Generated new anonymous ID:\", this.anonymousId);\n }\n\n // Load user ID\n const storedUserId = await this.storage.get(STORAGE_KEYS.USER_ID);\n if (storedUserId) {\n this.userId = storedUserId;\n this.log(\"Loaded user ID from storage:\", this.userId);\n }\n\n // Load user traits\n const storedTraits = await this.storage.get(STORAGE_KEYS.USER_TRAITS);\n if (storedTraits) {\n try {\n this.userTraits = JSON.parse(storedTraits);\n this.log(\"Loaded user traits from storage:\", this.userTraits);\n } catch {\n this.log(\"Failed to parse stored user traits\");\n }\n }\n } catch (error) {\n this.log(\"Error loading identity from storage:\", error);\n }\n }\n\n /**\n * Get the anonymous ID\n */\n getAnonymousId(): string {\n return this.anonymousId;\n }\n\n /**\n * Get the user ID\n */\n getUserId(): string | null {\n return this.userId;\n }\n\n /**\n * Get user traits\n */\n getUserTraits(): Record<string, unknown> {\n return { ...this.userTraits };\n }\n\n /**\n * Set the user ID (identify the user)\n */\n async setUserId(userId: string): Promise<void> {\n this.userId = userId;\n this.log(\"Set user ID:\", userId);\n\n if (this.storage) {\n try {\n await this.storage.set(STORAGE_KEYS.USER_ID, userId);\n } catch (error) {\n this.log(\"Error persisting user ID:\", error);\n }\n }\n }\n\n /**\n * Set user traits\n */\n async setUserTraits(traits: Record<string, unknown>): Promise<void> {\n this.userTraits = { ...this.userTraits, ...traits };\n this.log(\"Set user traits:\", this.userTraits);\n\n if (this.storage) {\n try {\n await this.storage.set(\n STORAGE_KEYS.USER_TRAITS,\n JSON.stringify(this.userTraits)\n );\n } catch (error) {\n this.log(\"Error persisting user traits:\", error);\n }\n }\n }\n\n /**\n * Reset identity (logout)\n * Generates a new anonymous ID and clears user data\n */\n async reset(): Promise<void> {\n this.anonymousId = generateUUID();\n this.userId = null;\n this.userTraits = {};\n this.log(\"Identity reset, new anonymous ID:\", this.anonymousId);\n\n if (this.storage) {\n try {\n await Promise.all([\n this.storage.set(STORAGE_KEYS.ANONYMOUS_ID, this.anonymousId),\n this.storage.remove(STORAGE_KEYS.USER_ID),\n this.storage.remove(STORAGE_KEYS.USER_TRAITS),\n ]);\n } catch (error) {\n this.log(\"Error resetting identity in storage:\", error);\n }\n }\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n private log(...args: unknown[]): void {\n if (this.debug) {\n console.log(\"[PIH Identity]\", ...args);\n }\n }\n}\n","import { PIHError } from \"./errors.js\";\nimport type { Transport } from \"./transport.js\";\nimport type {\n TrackEvent,\n QueuedEvent,\n StorageAdapter,\n TransportOptions,\n} from \"./types.js\";\nimport { STORAGE_KEYS, DEFAULTS, getBackoffDelay } from \"./utils.js\";\n\n/**\n * Event queue configuration\n */\nexport interface EventQueueConfig {\n /** Events before auto-flush (default: 25) */\n flushAt: number;\n /** Milliseconds between auto-flushes (default: 10000) */\n flushInterval: number;\n /** Max queued events (default: 5000) */\n maxQueueSize: number;\n /** Storage adapter for persistence */\n storage: StorageAdapter | null;\n /** Transport for sending events */\n transport: Transport;\n /** Error callback */\n onError?: (error: PIHError, events: TrackEvent[]) => void;\n /** Debug mode */\n debug?: boolean;\n}\n\n/**\n * Event queue with persistence and retry logic\n */\nexport class EventQueue {\n private queue: QueuedEvent[] = [];\n private isFlushing = false;\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n private retryTimer: ReturnType<typeof setTimeout> | null = null;\n private config: EventQueueConfig;\n private initialized = false;\n\n constructor(config: EventQueueConfig) {\n this.config = {\n flushAt: config.flushAt ?? DEFAULTS.FLUSH_AT,\n flushInterval: config.flushInterval ?? DEFAULTS.FLUSH_INTERVAL,\n maxQueueSize: config.maxQueueSize ?? DEFAULTS.MAX_QUEUE_SIZE,\n storage: config.storage,\n transport: config.transport,\n onError: config.onError,\n debug: config.debug ?? false,\n };\n }\n\n /**\n * Initialize the queue (load persisted events)\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n await this.loadPersistedQueue();\n this.startFlushTimer();\n this.initialized = true;\n\n this.log(\"Queue initialized with\", this.queue.length, \"persisted events\");\n }\n\n /**\n * Add an event to the queue\n */\n async enqueue(event: TrackEvent): Promise<void> {\n // Enforce max queue size (drop oldest when full)\n while (this.queue.length >= this.config.maxQueueSize) {\n const dropped = this.queue.shift();\n if (dropped) {\n this.log(\"Queue full, dropping oldest event:\", dropped.event.event_id);\n this.config.onError?.(\n PIHError.queueFull(\"Queue full, dropped oldest event\", {\n dropped_event_id: dropped.event.event_id,\n }),\n [dropped.event]\n );\n }\n }\n\n // Add event to queue\n const queuedEvent: QueuedEvent = {\n event,\n attempts: 0,\n firstAttempt: Date.now(),\n };\n this.queue.push(queuedEvent);\n\n this.log(\"Enqueued event:\", event.event_id, \"Queue size:\", this.queue.length);\n\n // Persist queue\n await this.persistQueue();\n\n // Check if we should flush\n if (this.queue.length >= this.config.flushAt) {\n this.log(\"Queue reached flushAt threshold, flushing\");\n this.flush();\n }\n }\n\n /**\n * Flush the queue (send all events)\n */\n async flush(options?: TransportOptions): Promise<void> {\n if (this.isFlushing || this.queue.length === 0) {\n return;\n }\n\n this.isFlushing = true;\n this.log(\"Flushing\", this.queue.length, \"events\");\n\n try {\n // Take batch from queue (max 100 per request)\n const batch = this.queue.splice(0, DEFAULTS.MAX_BATCH_SIZE);\n const events = batch.map((q) => q.event);\n\n try {\n const response = await this.config.transport.sendEvents(events, options);\n\n // Handle rejections\n for (const rejection of response.rejected) {\n if (rejection.reason === \"rate_limited\") {\n // Re-queue rate limited events\n const queuedEvent = batch.find(\n (q) => q.event.event_id === rejection.event_id\n );\n if (queuedEvent && queuedEvent.attempts < DEFAULTS.MAX_RETRIES) {\n queuedEvent.attempts++;\n this.queue.unshift(queuedEvent);\n this.log(\n \"Rate limited event re-queued:\",\n rejection.event_id,\n \"attempt:\",\n queuedEvent.attempts\n );\n }\n } else {\n // Other rejections are permanent failures\n this.log(\n \"Event permanently rejected:\",\n rejection.event_id,\n rejection.reason,\n rejection.details\n );\n }\n }\n\n this.log(\n \"Flush complete. Accepted:\",\n response.stats.accepted,\n \"Rejected:\",\n response.stats.rejected\n );\n } catch (error) {\n const pihError = PIHError.fromUnknown(error);\n\n // Network error - re-queue all with backoff\n for (const item of batch) {\n if (item.attempts < DEFAULTS.MAX_RETRIES) {\n item.attempts++;\n this.queue.unshift(item);\n } else {\n this.log(\n \"Event dropped after max retries:\",\n item.event.event_id\n );\n }\n }\n\n // Schedule retry with backoff\n const nextAttempt = batch[0]?.attempts ?? 1;\n const backoff = getBackoffDelay(nextAttempt);\n this.log(\"Network error, scheduling retry in\", backoff, \"ms\");\n\n this.retryTimer = setTimeout(() => {\n this.retryTimer = null;\n this.flush(options);\n }, backoff);\n\n this.config.onError?.(pihError, events);\n }\n\n // Persist updated queue\n await this.persistQueue();\n\n // Continue flushing if there are more events\n if (this.queue.length >= this.config.flushAt) {\n // Use setImmediate/setTimeout to avoid blocking\n setTimeout(() => this.flush(options), 0);\n }\n } finally {\n this.isFlushing = false;\n }\n }\n\n /**\n * Get the current queue length\n */\n getQueueLength(): number {\n return this.queue.length;\n }\n\n /**\n * Check if the queue is empty\n */\n isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n /**\n * Check if queue is currently flushing\n */\n isBusy(): boolean {\n return this.isFlushing;\n }\n\n /**\n * Clear the queue\n */\n async clear(): Promise<void> {\n this.queue = [];\n await this.persistQueue();\n this.log(\"Queue cleared\");\n }\n\n /**\n * Stop the queue (cancel timers)\n */\n destroy(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n this.retryTimer = null;\n }\n this.log(\"Queue destroyed\");\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.config.debug = enabled;\n }\n\n private async persistQueue(): Promise<void> {\n if (!this.config.storage) return;\n\n try {\n await this.config.storage.set(\n STORAGE_KEYS.QUEUE,\n JSON.stringify(this.queue)\n );\n } catch (error) {\n this.log(\"Error persisting queue:\", error);\n }\n }\n\n private async loadPersistedQueue(): Promise<void> {\n if (!this.config.storage) return;\n\n try {\n const stored = await this.config.storage.get(STORAGE_KEYS.QUEUE);\n if (stored) {\n const parsed = JSON.parse(stored) as QueuedEvent[];\n // Validate parsed data\n if (Array.isArray(parsed)) {\n this.queue = parsed.filter(\n (item) =>\n item &&\n typeof item === \"object\" &&\n \"event\" in item &&\n \"attempts\" in item\n );\n }\n }\n } catch (error) {\n this.log(\"Error loading persisted queue:\", error);\n this.queue = [];\n }\n }\n\n private startFlushTimer(): void {\n if (this.flushTimer) return;\n\n this.flushTimer = setInterval(() => {\n if (this.queue.length > 0) {\n this.log(\"Flush timer triggered\");\n this.flush();\n }\n }, this.config.flushInterval);\n }\n\n private log(...args: unknown[]): void {\n if (this.config.debug) {\n console.log(\"[PIH Queue]\", ...args);\n }\n }\n}\n","import type { StorageAdapter } from \"./types.js\";\nimport { generateUUID, STORAGE_KEYS, DEFAULTS } from \"./utils.js\";\n\n/**\n * Callback for session events\n */\nexport interface SessionCallbacks {\n onSessionStart?: (sessionId: string) => void;\n onSessionEnd?: (sessionId: string, duration: number) => void;\n}\n\n/**\n * Session manager for handling session tracking\n */\nexport class SessionManager {\n private sessionId: string | null = null;\n private sessionStartTime: number = 0;\n private lastActivity: number = 0;\n private timeout: number;\n private storage: StorageAdapter | null;\n private callbacks: SessionCallbacks;\n private debug: boolean;\n\n constructor(\n storage: StorageAdapter | null,\n timeout: number = DEFAULTS.SESSION_TIMEOUT,\n callbacks: SessionCallbacks = {},\n debug = false\n ) {\n this.storage = storage;\n this.timeout = timeout;\n this.callbacks = callbacks;\n this.debug = debug;\n }\n\n /**\n * Initialize session from storage\n */\n async initialize(): Promise<void> {\n if (!this.storage) {\n this.log(\"No storage adapter, using in-memory session only\");\n return;\n }\n\n try {\n const storedSessionId = await this.storage.get(STORAGE_KEYS.SESSION_ID);\n const storedLastActivity = await this.storage.get(\n STORAGE_KEYS.SESSION_LAST_ACTIVITY\n );\n\n if (storedSessionId && storedLastActivity) {\n const lastActivity = parseInt(storedLastActivity, 10);\n const now = Date.now();\n\n // Check if session is still valid\n if (now - lastActivity < this.timeout) {\n this.sessionId = storedSessionId;\n this.lastActivity = lastActivity;\n this.sessionStartTime = lastActivity; // Approximate\n this.log(\"Restored session from storage:\", this.sessionId);\n } else {\n // Session expired, clear it\n this.log(\"Stored session expired, will start new session\");\n await this.clearStoredSession();\n }\n }\n } catch (error) {\n this.log(\"Error loading session from storage:\", error);\n }\n }\n\n /**\n * Get the current session ID\n * Creates a new session if needed or if the current one expired\n */\n getSessionId(): string {\n const now = Date.now();\n\n // Check if session expired\n if (this.sessionId && now - this.lastActivity > this.timeout) {\n this.endSession();\n }\n\n // Start new session if needed\n if (!this.sessionId) {\n this.startSession();\n }\n\n // Update last activity\n this.lastActivity = now;\n this.persistLastActivity();\n\n return this.sessionId!;\n }\n\n /**\n * Touch the session to update last activity\n * Call this on each track event\n */\n touch(): void {\n if (this.sessionId) {\n this.lastActivity = Date.now();\n this.persistLastActivity();\n }\n }\n\n /**\n * Check if there's an active session\n */\n hasActiveSession(): boolean {\n if (!this.sessionId) return false;\n return Date.now() - this.lastActivity < this.timeout;\n }\n\n /**\n * Get the current session ID without creating a new one\n */\n getCurrentSessionId(): string | null {\n return this.sessionId;\n }\n\n /**\n * Get session duration in milliseconds\n */\n getSessionDuration(): number {\n if (!this.sessionId) return 0;\n return Date.now() - this.sessionStartTime;\n }\n\n /**\n * Start a new session\n */\n startSession(): void {\n const now = Date.now();\n this.sessionId = generateUUID();\n this.sessionStartTime = now;\n this.lastActivity = now;\n\n this.log(\"Started new session:\", this.sessionId);\n this.persistSession();\n\n // Notify callback\n this.callbacks.onSessionStart?.(this.sessionId);\n }\n\n /**\n * End the current session\n */\n endSession(): void {\n if (!this.sessionId) return;\n\n const duration = this.getSessionDuration();\n const endedSessionId = this.sessionId;\n\n this.log(\"Ended session:\", endedSessionId, \"duration:\", duration);\n\n // Clear session\n this.sessionId = null;\n this.sessionStartTime = 0;\n this.lastActivity = 0;\n this.clearStoredSession();\n\n // Notify callback\n this.callbacks.onSessionEnd?.(endedSessionId, duration);\n }\n\n /**\n * Force end the session (for app background, page hide, etc.)\n */\n forceEndSession(): void {\n if (this.sessionId) {\n this.endSession();\n }\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n /**\n * Set session timeout\n */\n setTimeout(timeout: number): void {\n this.timeout = timeout;\n }\n\n private async persistSession(): Promise<void> {\n if (!this.storage || !this.sessionId) return;\n\n try {\n await Promise.all([\n this.storage.set(STORAGE_KEYS.SESSION_ID, this.sessionId),\n this.storage.set(\n STORAGE_KEYS.SESSION_LAST_ACTIVITY,\n String(this.lastActivity)\n ),\n ]);\n } catch (error) {\n this.log(\"Error persisting session:\", error);\n }\n }\n\n private async persistLastActivity(): Promise<void> {\n if (!this.storage) return;\n\n try {\n await this.storage.set(\n STORAGE_KEYS.SESSION_LAST_ACTIVITY,\n String(this.lastActivity)\n );\n } catch (error) {\n this.log(\"Error persisting last activity:\", error);\n }\n }\n\n private async clearStoredSession(): Promise<void> {\n if (!this.storage) return;\n\n try {\n await Promise.all([\n this.storage.remove(STORAGE_KEYS.SESSION_ID),\n this.storage.remove(STORAGE_KEYS.SESSION_LAST_ACTIVITY),\n ]);\n } catch (error) {\n this.log(\"Error clearing stored session:\", error);\n }\n }\n\n private log(...args: unknown[]): void {\n if (this.debug) {\n console.log(\"[PIH Session]\", ...args);\n }\n }\n}\n","import { PIHError } from \"./errors.js\";\nimport type {\n TrackEvent,\n TrackResponse,\n IdentifyPayload,\n IdentifyResponse,\n TransportOptions,\n} from \"./types.js\";\n\n/**\n * Transport configuration\n */\nexport interface TransportConfig {\n /** API base URL */\n apiUrl: string;\n /** API key for authentication */\n apiKey: string;\n /** Tenant ID for multi-tenancy */\n tenantId?: string;\n /** Debug mode */\n debug?: boolean;\n}\n\n/**\n * HTTP transport for sending events to the ingest API\n */\nexport class Transport {\n private apiUrl: string;\n private apiKey: string;\n private tenantId?: string;\n private debug: boolean;\n\n constructor(config: TransportConfig) {\n this.apiUrl = config.apiUrl.replace(/\\/$/, \"\"); // Remove trailing slash\n this.apiKey = config.apiKey;\n this.tenantId = config.tenantId;\n this.debug = config.debug ?? false;\n }\n\n /**\n * Send a batch of events to the track endpoint\n */\n async sendEvents(\n events: TrackEvent[],\n options?: TransportOptions\n ): Promise<TrackResponse> {\n const url = `${this.apiUrl}/v1/track`;\n const apiEvents = events.map((e) => this.toTrackApiPayload(e));\n const body = JSON.stringify({ events: apiEvents });\n\n this.log(\"Sending\", events.length, \"events to\", url);\n\n // Try sendBeacon first if requested (for page hide scenarios)\n if (options?.useBeacon && typeof navigator !== \"undefined\" && typeof navigator.sendBeacon === \"function\") {\n const sent = this.sendViaBeacon(url, body);\n if (sent) {\n this.log(\"Events sent via sendBeacon\");\n // sendBeacon doesn't return response, assume success\n return {\n accepted: events.map((e) => ({\n event_id: e.event_id,\n timestamp: e.timestamp,\n })),\n rejected: [],\n stats: {\n received: events.length,\n accepted: events.length,\n rejected: 0,\n processing_time_ms: 0,\n },\n };\n }\n }\n\n // Standard fetch request\n try {\n const response = await this.fetch(url, {\n method: \"POST\",\n headers: this.getHeaders(),\n body,\n keepalive: options?.useBeacon, // Keep connection alive for page hide\n });\n\n if (!response.ok) {\n if (response.status === 429) {\n throw PIHError.rateLimited(\n `Rate limited: ${response.statusText}`,\n { status: response.status }\n );\n }\n throw PIHError.networkError(\n `HTTP ${response.status}: ${response.statusText}`,\n { status: response.status }\n );\n }\n\n const data = (await response.json()) as TrackResponse;\n this.log(\"Track response:\", data);\n return data;\n } catch (error) {\n if (error instanceof PIHError) {\n throw error;\n }\n throw PIHError.networkError(\n `Failed to send events: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n }\n\n /**\n * Send an identify call\n */\n async sendIdentify(payload: IdentifyPayload): Promise<IdentifyResponse> {\n const url = `${this.apiUrl}/v1/identify`;\n const body = JSON.stringify(this.toIdentifyApiPayload(payload));\n\n this.log(\"Sending identify to\", url, payload);\n\n try {\n const response = await this.fetch(url, {\n method: \"POST\",\n headers: this.getHeaders(),\n body,\n });\n\n if (!response.ok) {\n if (response.status === 429) {\n throw PIHError.rateLimited(\n `Rate limited: ${response.statusText}`,\n { status: response.status }\n );\n }\n throw PIHError.networkError(\n `HTTP ${response.status}: ${response.statusText}`,\n { status: response.status }\n );\n }\n\n const data = (await response.json()) as IdentifyResponse;\n this.log(\"Identify response:\", data);\n return data;\n } catch (error) {\n if (error instanceof PIHError) {\n throw error;\n }\n throw PIHError.networkError(\n `Failed to send identify: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n }\n\n /**\n * Set tenant ID\n */\n setTenantId(tenantId: string): void {\n this.tenantId = tenantId;\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n private getHeaders(): Record<string, string> {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n\n if (this.tenantId) {\n headers[\"X-Tenant-Id\"] = this.tenantId;\n }\n\n return headers;\n }\n\n /**\n * Map internal TrackEvent (snake_case) to API payload (camelCase)\n */\n private toTrackApiPayload(event: TrackEvent): Record<string, unknown> {\n return {\n eventId: event.event_id,\n eventName: event.event_name,\n timestamp: event.timestamp,\n anonymousId: event.anonymous_id,\n userId: event.user_id ?? undefined,\n sessionId: event.session_id ?? undefined,\n properties: event.properties,\n userTraits: event.user_traits,\n context: {\n platform: event.platform,\n appVersion: event.app_version ?? undefined,\n },\n };\n }\n\n /**\n * Map internal IdentifyPayload (snake_case) to API payload (camelCase)\n */\n private toIdentifyApiPayload(payload: IdentifyPayload): Record<string, unknown> {\n return {\n userId: payload.user_id,\n anonymousId: payload.anonymous_id,\n traits: payload.traits,\n timestamp: payload.timestamp,\n };\n }\n\n private sendViaBeacon(url: string, body: string): boolean {\n try {\n // Create blob with proper content type\n const blob = new Blob([body], { type: \"application/json\" });\n return navigator.sendBeacon(url, blob);\n } catch (error) {\n this.log(\"sendBeacon failed:\", error);\n return false;\n }\n }\n\n private async fetch(\n url: string,\n options: RequestInit\n ): Promise<Response> {\n // Use native fetch\n if (typeof fetch !== \"undefined\") {\n return fetch(url, options);\n }\n\n // This shouldn't happen in modern environments, but throw a clear error\n throw PIHError.networkError(\n \"fetch is not available in this environment\"\n );\n }\n\n private log(...args: unknown[]): void {\n if (this.debug) {\n console.log(\"[PIH Transport]\", ...args);\n }\n }\n}\n","import { PIHError } from \"./errors.js\";\nimport { IdentityManager } from \"./identity.js\";\nimport { EventQueue } from \"./queue.js\";\nimport { SessionManager } from \"./session.js\";\nimport { Transport } from \"./transport.js\";\nimport type {\n PIHConfig,\n TrackEvent,\n TrackOptions,\n StorageAdapter,\n TransportOptions,\n} from \"./types.js\";\nimport { generateUUID, getTimestamp, dateToTimestamp, DEFAULTS } from \"./utils.js\";\n\n/**\n * Base PIH client class\n * Platform-specific SDKs extend this class\n */\nexport class PIHClient {\n protected config: PIHConfig;\n protected storage: StorageAdapter | null = null;\n protected identity: IdentityManager;\n protected session: SessionManager;\n protected transport: Transport;\n protected queue: EventQueue;\n protected initialized = false;\n protected tenantId: string;\n\n constructor(config: PIHConfig, storage: StorageAdapter | null = null) {\n this.validateConfig(config);\n\n this.config = {\n apiUrl: DEFAULTS.API_URL,\n debug: false,\n flushInterval: DEFAULTS.FLUSH_INTERVAL,\n flushAt: DEFAULTS.FLUSH_AT,\n maxQueueSize: DEFAULTS.MAX_QUEUE_SIZE,\n sessionTimeout: DEFAULTS.SESSION_TIMEOUT,\n ...config,\n };\n\n this.storage = storage;\n this.tenantId = config.tenantId ?? \"\";\n\n // Initialize identity manager\n this.identity = new IdentityManager(storage, this.config.debug);\n\n // Initialize session manager\n this.session = new SessionManager(\n storage,\n this.config.sessionTimeout,\n {\n onSessionStart: (sessionId) => {\n this.log(\"Session started:\", sessionId);\n // Track session_started event\n this.trackInternal(\"session_started\", { session_id: sessionId });\n },\n onSessionEnd: (sessionId, duration) => {\n this.log(\"Session ended:\", sessionId, \"duration:\", duration);\n // Track session_ended event\n this.trackInternal(\"session_ended\", {\n session_id: sessionId,\n duration_ms: duration,\n });\n },\n },\n this.config.debug\n );\n\n // Initialize transport\n this.transport = new Transport({\n apiUrl: this.config.apiUrl!,\n apiKey: this.config.apiKey,\n tenantId: this.tenantId,\n debug: this.config.debug,\n });\n\n // Initialize queue\n this.queue = new EventQueue({\n flushAt: this.config.flushAt!,\n flushInterval: this.config.flushInterval!,\n maxQueueSize: this.config.maxQueueSize!,\n storage,\n transport: this.transport,\n onError: (error, events) => {\n this.config.onError?.(error);\n this.log(\"Queue error:\", error.message, \"events:\", events.length);\n },\n debug: this.config.debug,\n });\n }\n\n /**\n * Initialize the client (load persisted state)\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n await Promise.all([\n this.identity.initialize(),\n this.session.initialize(),\n this.queue.initialize(),\n ]);\n\n this.initialized = true;\n this.log(\"Client initialized\");\n }\n\n /**\n * Set the tenant ID\n */\n setTenant(tenantId: string): void {\n this.tenantId = tenantId;\n this.transport.setTenantId(tenantId);\n this.log(\"Tenant set:\", tenantId);\n }\n\n /**\n * Identify the user\n */\n async identify(\n userId: string,\n traits?: Record<string, unknown>\n ): Promise<void> {\n await this.ensureInitialized();\n\n await this.identity.setUserId(userId);\n if (traits) {\n await this.identity.setUserTraits(traits);\n }\n\n // Send identify call to server\n try {\n await this.transport.sendIdentify({\n project_id: this.config.projectId,\n environment: this.config.environment,\n tenant_id: this.tenantId,\n anonymous_id: this.identity.getAnonymousId(),\n user_id: userId,\n traits,\n timestamp: getTimestamp(),\n });\n } catch (error) {\n const pihError = PIHError.fromUnknown(error);\n this.config.onError?.(pihError);\n this.log(\"Identify error:\", pihError.message);\n }\n }\n\n /**\n * Set user traits without identifying\n */\n async setUserTraits(traits: Record<string, unknown>): Promise<void> {\n await this.ensureInitialized();\n await this.identity.setUserTraits(traits);\n }\n\n /**\n * Track an event\n */\n async track(\n eventName: string,\n properties?: Record<string, unknown>,\n options?: TrackOptions\n ): Promise<void> {\n await this.ensureInitialized();\n\n const event = this.createEvent(eventName, properties, options);\n\n // Touch session to update last activity\n this.session.touch();\n\n if (options?.immediate) {\n // Send immediately, bypassing queue\n try {\n await this.transport.sendEvents([event]);\n } catch (error) {\n const pihError = PIHError.fromUnknown(error);\n this.config.onError?.(pihError);\n this.log(\"Immediate track error:\", pihError.message);\n }\n } else {\n // Add to queue\n await this.queue.enqueue(event);\n }\n }\n\n /**\n * Flush the event queue\n */\n async flush(options?: TransportOptions): Promise<void> {\n await this.ensureInitialized();\n await this.queue.flush(options);\n }\n\n /**\n * Reset identity (logout)\n */\n async reset(): Promise<void> {\n await this.ensureInitialized();\n\n // End current session\n this.session.forceEndSession();\n\n // Reset identity\n await this.identity.reset();\n\n this.log(\"Client reset\");\n }\n\n /**\n * Enable/disable debug mode\n */\n setDebug(enabled: boolean): void {\n this.config.debug = enabled;\n this.identity.setDebug(enabled);\n this.session.setDebug(enabled);\n this.transport.setDebug(enabled);\n this.queue.setDebug(enabled);\n }\n\n /**\n * Get the anonymous ID\n */\n getAnonymousId(): string {\n return this.identity.getAnonymousId();\n }\n\n /**\n * Get the user ID\n */\n getUserId(): string | null {\n return this.identity.getUserId();\n }\n\n /**\n * Get the session ID\n */\n getSessionId(): string | null {\n return this.session.getCurrentSessionId();\n }\n\n /**\n * Get the queue length\n */\n getQueueLength(): number {\n return this.queue.getQueueLength();\n }\n\n /**\n * Destroy the client (cleanup)\n */\n destroy(): void {\n this.queue.destroy();\n this.log(\"Client destroyed\");\n }\n\n /**\n * Internal track method that doesn't require initialization\n * Used for session events during initialization\n */\n protected trackInternal(\n eventName: string,\n properties?: Record<string, unknown>\n ): void {\n const event = this.createEvent(eventName, properties);\n // Fire and forget - don't await\n this.queue.enqueue(event).catch((error) => {\n this.log(\"Internal track error:\", error);\n });\n }\n\n /**\n * Create a track event\n */\n protected createEvent(\n eventName: string,\n properties?: Record<string, unknown>,\n options?: TrackOptions\n ): TrackEvent {\n const timestamp = options?.timestamp\n ? dateToTimestamp(options.timestamp)\n : getTimestamp();\n\n return {\n event_id: generateUUID(),\n timestamp,\n project_id: this.config.projectId,\n environment: this.config.environment,\n tenant_id: this.tenantId,\n event_name: eventName,\n anonymous_id: this.identity.getAnonymousId(),\n user_id: this.identity.getUserId(),\n session_id: this.session.getSessionId(),\n platform: this.config.platform,\n app_version: this.config.appVersion ?? null,\n properties: properties ?? {},\n user_traits: this.identity.getUserTraits(),\n };\n }\n\n /**\n * Ensure client is initialized\n */\n protected async ensureInitialized(): Promise<void> {\n if (!this.initialized) {\n await this.initialize();\n }\n }\n\n /**\n * Validate configuration\n */\n protected validateConfig(config: PIHConfig): void {\n if (!config.apiKey) {\n throw PIHError.invalidConfig(\"apiKey is required\");\n }\n if (!config.projectId) {\n throw PIHError.invalidConfig(\"projectId is required\");\n }\n if (!config.environment) {\n throw PIHError.invalidConfig(\"environment is required\");\n }\n if (!config.platform) {\n throw PIHError.invalidConfig(\"platform is required\");\n }\n }\n\n protected log(...args: unknown[]): void {\n if (this.config.debug) {\n console.log(\"[PIH Client]\", ...args);\n }\n }\n}\n","import type { PIHClient, AutocaptureConfig } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * UTM parameter storage key\n */\nconst UTM_STORAGE_KEY = \"pih_utm_params\";\n\n/**\n * UTM parameter names\n */\nconst UTM_PARAMS = [\n \"utm_source\",\n \"utm_medium\",\n \"utm_campaign\",\n \"utm_term\",\n \"utm_content\",\n] as const;\n\n/**\n * Autocapture manager for web SDK\n */\nexport class Autocapture {\n private client: PIHClient;\n private config: AutocaptureConfig;\n private cachedUtmParams: Record<string, string> | null = null;\n private originalPushState: typeof history.pushState | null = null;\n private originalReplaceState: typeof history.replaceState | null = null;\n private boundHandleClick: (e: MouseEvent) => void;\n private boundHandlePopState: () => void;\n\n constructor(client: PIHClient, config: AutocaptureConfig = {}) {\n this.client = client;\n this.config = {\n pageViews: config.pageViews !== false, // default: true\n clicks: config.clicks ?? false, // default: false\n clickSelector: config.clickSelector ?? \"[data-track]\",\n forms: config.forms ?? false, // default: false\n };\n\n this.boundHandleClick = this.handleClick.bind(this);\n this.boundHandlePopState = this.handlePopState.bind(this);\n }\n\n /**\n * Start autocapture\n */\n start(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n // Load cached UTM params\n this.loadCachedUtmParams();\n\n // Setup page view tracking\n if (this.config.pageViews) {\n this.setupPageViews();\n // Track initial page view\n this.trackPageView();\n }\n\n // Setup click tracking\n if (this.config.clicks) {\n this.setupClickTracking();\n }\n }\n\n /**\n * Stop autocapture\n */\n stop(): void {\n // Restore original history methods\n if (this.originalPushState) {\n history.pushState = this.originalPushState;\n this.originalPushState = null;\n }\n if (this.originalReplaceState) {\n history.replaceState = this.originalReplaceState;\n this.originalReplaceState = null;\n }\n\n // Remove event listeners\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"popstate\", this.boundHandlePopState);\n }\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\"click\", this.boundHandleClick, true);\n }\n }\n\n /**\n * Manually track a page view\n */\n trackPageView(): void {\n const url = new URL(window.location.href);\n const utmParams = this.extractUtmParams(url);\n\n // Cache UTM params on first page view with UTM\n if (Object.keys(utmParams).length > 0 && !this.cachedUtmParams) {\n this.cachedUtmParams = utmParams;\n this.persistUtmParams(utmParams);\n }\n\n this.client.track(\"page_viewed\", {\n path: url.pathname,\n search: url.search,\n hash: url.hash,\n referrer: document.referrer || null,\n title: document.title,\n url: window.location.href,\n // Include UTM params (from current URL or cached)\n ...this.getUtmParams(url),\n });\n }\n\n /**\n * Setup page view tracking\n */\n private setupPageViews(): void {\n // Monkey-patch History API for SPA navigation\n this.originalPushState = history.pushState;\n this.originalReplaceState = history.replaceState;\n\n const originalPush = this.originalPushState!;\n const originalReplace = this.originalReplaceState!;\n const onNavigate = () => this.trackPageView();\n\n history.pushState = function (...args) {\n originalPush.apply(history, args);\n // Use setTimeout to ensure URL has been updated\n setTimeout(onNavigate, 0);\n };\n\n history.replaceState = function (...args) {\n originalReplace.apply(history, args);\n // Use setTimeout to ensure URL has been updated\n setTimeout(onNavigate, 0);\n };\n\n // Listen for popstate (back/forward navigation)\n window.addEventListener(\"popstate\", this.boundHandlePopState);\n }\n\n /**\n * Handle popstate event\n */\n private handlePopState(): void {\n this.trackPageView();\n }\n\n /**\n * Setup click tracking\n */\n private setupClickTracking(): void {\n document.addEventListener(\"click\", this.boundHandleClick, true);\n }\n\n /**\n * Handle click event\n */\n private handleClick(event: MouseEvent): void {\n const target = event.target as Element | null;\n if (!target) return;\n\n // Find the closest element matching the selector\n const trackElement = target.closest(this.config.clickSelector!);\n if (!trackElement) return;\n\n // Get element properties\n const elementTag = trackElement.tagName.toLowerCase();\n const elementText = (trackElement.textContent || \"\").trim().slice(0, 100);\n const elementId = trackElement.id || null;\n const elementClasses = trackElement.className || null;\n const dataTrack = trackElement.getAttribute(\"data-track\");\n const href =\n trackElement instanceof HTMLAnchorElement ? trackElement.href : null;\n\n this.client.track(\"element_clicked\", {\n element_tag: elementTag,\n element_text: elementText,\n element_id: elementId,\n element_classes: elementClasses,\n data_track: dataTrack,\n href,\n path: window.location.pathname,\n });\n }\n\n /**\n * Extract UTM parameters from URL\n */\n private extractUtmParams(url: URL): Record<string, string> {\n const params: Record<string, string> = {};\n for (const key of UTM_PARAMS) {\n const value = url.searchParams.get(key);\n if (value) {\n params[key] = value;\n }\n }\n return params;\n }\n\n /**\n * Get UTM parameters (current URL or cached)\n */\n private getUtmParams(url: URL): Record<string, string> {\n // First check current URL\n const currentParams = this.extractUtmParams(url);\n if (Object.keys(currentParams).length > 0) {\n return currentParams;\n }\n\n // Fall back to cached params\n return this.cachedUtmParams ?? {};\n }\n\n /**\n * Load cached UTM params from storage\n */\n private loadCachedUtmParams(): void {\n try {\n const stored = localStorage.getItem(UTM_STORAGE_KEY);\n if (stored) {\n this.cachedUtmParams = JSON.parse(stored);\n }\n } catch {\n // Ignore storage errors\n }\n }\n\n /**\n * Persist UTM params to storage\n */\n private persistUtmParams(params: Record<string, string>): void {\n try {\n localStorage.setItem(UTM_STORAGE_KEY, JSON.stringify(params));\n } catch {\n // Ignore storage errors\n }\n }\n}\n","import type { PIHClient } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * Beacon manager for flushing events on page hide\n */\nexport class BeaconManager {\n private client: PIHClient;\n private boundHandleVisibilityChange: () => void;\n private boundHandleBeforeUnload: () => void;\n\n constructor(client: PIHClient) {\n this.client = client;\n this.boundHandleVisibilityChange = this.handleVisibilityChange.bind(this);\n this.boundHandleBeforeUnload = this.handleBeforeUnload.bind(this);\n }\n\n /**\n * Start listening for visibility and unload events\n */\n start(): void {\n if (typeof document !== \"undefined\") {\n document.addEventListener(\n \"visibilitychange\",\n this.boundHandleVisibilityChange\n );\n }\n\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"beforeunload\", this.boundHandleBeforeUnload);\n // Also listen for pagehide which is more reliable on mobile\n window.addEventListener(\"pagehide\", this.boundHandleBeforeUnload);\n }\n }\n\n /**\n * Stop listening for events\n */\n stop(): void {\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\n \"visibilitychange\",\n this.boundHandleVisibilityChange\n );\n }\n\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"beforeunload\", this.boundHandleBeforeUnload);\n window.removeEventListener(\"pagehide\", this.boundHandleBeforeUnload);\n }\n }\n\n /**\n * Handle visibility change\n */\n private handleVisibilityChange(): void {\n if (document.visibilityState === \"hidden\") {\n this.flushWithBeacon();\n }\n }\n\n /**\n * Handle before unload\n */\n private handleBeforeUnload(): void {\n this.flushWithBeacon();\n }\n\n /**\n * Flush events using sendBeacon\n */\n private flushWithBeacon(): void {\n // Use sendBeacon for reliability when page is closing\n this.client.flush({ useBeacon: true }).catch(() => {\n // Ignore errors during page unload\n });\n }\n}\n\n/**\n * Check if sendBeacon is available\n */\nexport function isSendBeaconAvailable(): boolean {\n return (\n typeof navigator !== \"undefined\" &&\n typeof navigator.sendBeacon === \"function\"\n );\n}\n","import type { StorageAdapter } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * In-memory storage fallback when localStorage is unavailable\n */\nclass MemoryStorage implements StorageAdapter {\n private data = new Map<string, string>();\n\n async get(key: string): Promise<string | null> {\n return this.data.get(key) ?? null;\n }\n\n async set(key: string, value: string): Promise<void> {\n this.data.set(key, value);\n }\n\n async remove(key: string): Promise<void> {\n this.data.delete(key);\n }\n}\n\n/**\n * Check if localStorage is available\n */\nfunction isLocalStorageAvailable(): boolean {\n try {\n const testKey = \"__pih_test__\";\n localStorage.setItem(testKey, testKey);\n localStorage.removeItem(testKey);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * localStorage adapter with fallback to in-memory storage\n */\nclass LocalStorageAdapter implements StorageAdapter {\n private fallback: MemoryStorage | null = null;\n private useLocalStorage: boolean;\n\n constructor() {\n this.useLocalStorage = isLocalStorageAvailable();\n if (!this.useLocalStorage) {\n this.fallback = new MemoryStorage();\n console.warn(\n \"[PIH] localStorage unavailable, using in-memory storage. Data will not persist across page loads.\"\n );\n }\n }\n\n async get(key: string): Promise<string | null> {\n if (this.fallback) {\n return this.fallback.get(key);\n }\n\n try {\n return localStorage.getItem(key);\n } catch {\n // localStorage access might fail in some contexts\n if (!this.fallback) {\n this.fallback = new MemoryStorage();\n }\n return this.fallback.get(key);\n }\n }\n\n async set(key: string, value: string): Promise<void> {\n if (this.fallback) {\n return this.fallback.set(key, value);\n }\n\n try {\n localStorage.setItem(key, value);\n } catch (error) {\n // Handle quota exceeded or other errors\n if (!this.fallback) {\n this.fallback = new MemoryStorage();\n console.warn(\n \"[PIH] localStorage write failed, falling back to in-memory storage:\",\n error\n );\n }\n return this.fallback.set(key, value);\n }\n }\n\n async remove(key: string): Promise<void> {\n if (this.fallback) {\n return this.fallback.remove(key);\n }\n\n try {\n localStorage.removeItem(key);\n } catch {\n // Ignore removal errors\n }\n }\n}\n\n/**\n * Create the web storage adapter\n */\nexport function createWebStorage(): StorageAdapter {\n return new LocalStorageAdapter();\n}\n\n/**\n * Export the storage adapter singleton\n */\nexport const webStorage = createWebStorage();\n","import {\n PIHClient,\n type PIHConfig,\n type StorageAdapter,\n} from \"@product-intelligence-hub/sdk-core\";\n\nimport { Autocapture } from \"./autocapture.js\";\nimport { BeaconManager } from \"./beacon.js\";\nimport { createWebStorage } from \"./storage.js\";\n\n/**\n * Web-specific PIH configuration\n */\nexport interface WebPIHConfig extends Omit<PIHConfig, \"platform\"> {\n /** Platform is always \"web\" for web SDK */\n platform?: \"web\";\n}\n\n/**\n * Web PIH Client\n * Extends the base client with web-specific features\n */\nexport class WebPIHClient extends PIHClient {\n private autocapture: Autocapture | null = null;\n private beacon: BeaconManager;\n\n constructor(config: WebPIHConfig, storage?: StorageAdapter) {\n // Ensure platform is set to \"web\"\n const webConfig: PIHConfig = {\n ...config,\n platform: \"web\",\n };\n\n // Use provided storage or create web storage\n super(webConfig, storage ?? createWebStorage());\n\n // Setup beacon manager for flush on page hide\n this.beacon = new BeaconManager(this);\n }\n\n /**\n * Initialize the web client\n */\n override async initialize(): Promise<void> {\n await super.initialize();\n\n // Start beacon manager\n this.beacon.start();\n\n // Setup autocapture if configured\n if (this.config.autocapture) {\n this.autocapture = new Autocapture(this, this.config.autocapture);\n this.autocapture.start();\n }\n\n this.log(\"Web client initialized\");\n }\n\n /**\n * Enable autocapture after initialization\n */\n enableAutocapture(config?: PIHConfig[\"autocapture\"]): void {\n if (this.autocapture) {\n this.autocapture.stop();\n }\n this.autocapture = new Autocapture(this, config);\n this.autocapture.start();\n }\n\n /**\n * Disable autocapture\n */\n disableAutocapture(): void {\n if (this.autocapture) {\n this.autocapture.stop();\n this.autocapture = null;\n }\n }\n\n /**\n * Manually track a page view\n */\n trackPageView(): void {\n if (this.autocapture) {\n this.autocapture.trackPageView();\n } else {\n // Track page view without autocapture\n const url = new URL(window.location.href);\n this.track(\"page_viewed\", {\n path: url.pathname,\n search: url.search,\n hash: url.hash,\n referrer: document.referrer || null,\n title: document.title,\n url: window.location.href,\n });\n }\n }\n\n /**\n * Destroy the client\n */\n override destroy(): void {\n this.beacon.stop();\n if (this.autocapture) {\n this.autocapture.stop();\n }\n super.destroy();\n }\n\n protected override log(...args: unknown[]): void {\n if (this.config.debug) {\n console.log(\"[PIH Web]\", ...args);\n }\n }\n}\n\n/**\n * Singleton instance\n */\nlet instance: WebPIHClient | null = null;\n\n/**\n * Initialize the PIH Web SDK\n */\nfunction init(config: WebPIHConfig): WebPIHClient {\n if (instance) {\n console.warn(\"[PIH] SDK already initialized. Returning existing instance.\");\n return instance;\n }\n\n instance = new WebPIHClient(config);\n\n // Auto-initialize\n instance.initialize().catch((error) => {\n console.error(\"[PIH] Failed to initialize:\", error);\n });\n\n return instance;\n}\n\n/**\n * Get the current instance\n */\nfunction getInstance(): WebPIHClient | null {\n return instance;\n}\n\n/**\n * Reset the singleton (for testing)\n */\nfunction resetInstance(): void {\n if (instance) {\n instance.destroy();\n instance = null;\n }\n}\n\n// Default export for UMD/IIFE\nconst PIH = {\n init,\n getInstance,\n resetInstance,\n WebPIHClient,\n};\n\nexport default PIH;\nexport { init, getInstance, resetInstance };\n\n// Re-export types from core\nexport type {\n PIHConfig,\n TrackEvent,\n TrackOptions,\n TransportOptions,\n AutocaptureConfig,\n PIHError,\n PIHErrorCode,\n} from \"@product-intelligence-hub/sdk-core\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/utils.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/types/dist/types.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/mutation.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observer.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/cross-origin-iframe-mirror.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/iframe-manager.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/ext/tslib/tslib.es6.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/_virtual/image-bitmap-data-url-worker.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/record/index.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrdom/es/rrdom.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/index.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/ext/fflate/esm/browser.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/packer/pack.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/packer/unpack.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/record/error-stack-parser.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/record/stringify.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/record/index.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/plugins/console/replay/index.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/ext/mitt/dist/mitt.mjs.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/smoothscroll.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/timer.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/ext/@xstate/fsm/es/index.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/machine.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/styles/inject-style.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/deserialize-args.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/webgl.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/2d.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/canvas/index.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/replay/index.js","../../../node_modules/.pnpm/rrweb@2.0.0-alpha.4/node_modules/rrweb/es/rrweb/packages/rrweb/src/entries/all.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../sdk-core/src/errors.ts","../../sdk-core/src/utils.ts","../../sdk-core/src/identity.ts","../../sdk-core/src/queue.ts","../../sdk-core/src/session.ts","../../sdk-core/src/transport.ts","../../sdk-core/src/client.ts","../src/autocapture.ts","../src/beacon.ts","../src/bounce-back.ts","../src/context.ts","../src/engagement.ts","../src/error-tracker.ts","../src/performance.ts","../src/recording.ts","../src/storage.ts","../src/hooks.ts","../src/index.ts"],"names":["isElement","n","isShadowRoot","host","isNativeShadowDom","shadowRoot","fixBrowserCompatibilityIssuesInCSS","cssText","getCssRulesString","s","rules","getCssRuleString","rule","cssStringified","isCSSImportRule","createMirror","Mirror","maskInputValue","_a","maskInputOptions","tagName","type","value","maskInputFn","text","is2DCanvasBlank","canvas","ctx","chunkSize","x","y","getImageData","originalGetImageData","ORIGINAL_ATTRIBUTE_NAME","pixelBuffer","pixel","genId","_id","getValidTagName","element","processedTagName","tagNameRegex","stringifyStyleSheet","sheet","extractOrigin","url","origin","absoluteToStylesheet","href","URL_IN_CSS_REF","quote1","path1","quote2","path2","path3","filePath","maybeQuote","RELATIVE_PATH","DATA_URI","stack","parts","_i","parts_1","part","getAbsoluteSrcsetString","doc","attributeValue","pos","collectCharacters","regEx","chars","match","output","SRCSET_COMMAS_OR_SPACES","SRCSET_NOT_SPACES","absoluteToDoc","descriptorsStr","inParens","c","a","isSVGElement","el","getHref","transformAttribute","name","_isBlockedElement","blockClass","blockSelector","eIndex","className","classMatchesRegex","node","regex","checkAncestors","needMaskingText","maskTextClass","maskTextSelector","onceIframeLoaded","iframeEl","listener","iframeLoadTimeout","win","fired","readyState","timer_1","blankUrl","onceStylesheetLoaded","link","styleSheetLoadTimeout","styleSheetLoaded","timer","serializeNode","options","mirror","inlineStylesheet","maskTextFn","_b","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","_c","newlyAddedElement","rootId","getRootId","NodeType","serializeElementNode","serializeTextNode","docId","parentTagName","textContent","isStyle","isScript","err","needBlock","attributes","len","i","attr","stylesheet","checked","canvasDataURL","blankCanvas","blankCanvasDataURL","canvasService","canvasCtx","image_1","oldValue_1","recordInlineImage","_d","width","height","lowerIfExists","maybeAttr","slimDOMExcluded","sn","slimDOMOptions","serializeNodeWithId","skipChild","_e","_f","onSerialize","onIframeLoad","_g","onStylesheetLoad","_h","stylesheetLoadTimeout","_j","_k","_l","preserveWhiteSpace","_serializedNode","id","IGNORED_NODE","serializedNode","recordChild","bypassOptions","_m","childN","serializedChildNode","_o","_p","iframeDoc","serializedIframeNode","serializedLinkNode","snapshot","maskAllInputs","slimDOM","parse","css","lineno","column","updatePosition","str","lines","position","start","Position","whitespace","errorsList","error","msg","rulesList","open","close","comments","atrule","re","m","comment","selector","trim","declaration","propMatch","prop","val","ret","commentre","declarations","decls","decl","keyframe","vals","atkeyframes","vendor","frame","frames","atsupports","supports","style","athost","atmedia","media","atcustommedia","atpage","sel","atdocument","atfontface","atimport","_compileAtrule","atcharset","atnamespace","addParent","obj","parent","isNode","childParent","k","v","getTagName","tagMap","escapeRegExp","addHoverClass","cache","cachedStyle","ast","selectors","HOVER_SELECTOR","selectorMatcher","index","b","result","newSelector","HOVER_SELECTOR_GLOBAL","createCache","stylesWithHoverClass","buildNode","hackCss","node_1","specialAttributes","name_1","isTextarea","isRemoteOrDynamicCss","child","_loop_1","name_2","image","e","buildNodeWithSN","afterAppend","childNode","visit","onVisit","walk","handleScroll","name_3","rebuild","visitedNode","init_rrweb_snapshot","__esmMin","_this","meta","oldNode","utils_exports","__export","StyleSheetMirror","_mirror","getBaseDimension","getNestedRule","getPositionsAndIndex","getWindowHeight","getWindowWidth","hasShadowRoot","hookSetter","isAncestorRemoved","isBlocked","isIgnored","isSerialized","isSerializedIframe","isSerializedStylesheet","isTouchEvent","iterateResolveTree","on","patch","polyfill","queueToResolveTrees","throttle","uniqueTextMutations","fn","target","func","wait","timeout","previous","args","now","remaining","context","key","d","isRevoked","original","source","replacement","wrapped","event","queue","queueNodeMap","putIntoMap","nodeInTree","queueNodeTrees","mutation","nextId","parentId","nextInTree","idx","parentInTree","tree","cb","rootIframe","frameElement","frameDimension","frameBaseDimension","relativeScale","nestedIndex","positions","mutations","idSet","uniqueMutations","DEPARTED_MIRROR_ACCESS_WARNING","init_utils","receiver","newId","EventType","IncrementalSource","MouseInteractions","CanvasContext","ReplayerEvents","init_types","EventType2","IncrementalSource2","MouseInteractions2","CanvasContext2","ReplayerEvents2","isNodeInLinkedList","deepDelete","addsSet","isParentRemoved","removes","_isParentRemoved","parentNode","r","isAncestorInSet","set","_isAncestorInSet","DoubleLinkedList","moveKey","MutationBuffer","init_mutation","current","adds","addList","getNextId","ns","pushAdd","shadowHost","rootShadowHost","notInDoc","currentN","iframe","childSn","candidate","_node","unhandledNode","payload","attribute","item","old","styleObj","pname","newValue","newPriority","nodeId","targetId","getEventTarget","path","initMutationObserver","rootEl","mutationBuffer","mutationBuffers","mutationObserverCtor","angularZoneSymbol","observer","initMoveObserver","mousemoveCb","sampling","threshold","callbackThreshold","timeBaseline","wrappedCb","totalOffset","p","evt","clientX","clientY","handlers","initMouseInteractionObserver","mouseInteractionCb","disableMap","getHandler","eventKey","eventName","handler","h","initScrollObserver","scrollCb","scrollEl","initViewportResizeObserver","viewportResizeCb","lastH","lastW","updateDimension","wrapEventWithUserTriggeredFlag","enable","initInputObserver","inputCb","ignoreClass","userTriggeredOnInput","eventHandler","userTriggered","INPUT_TAGS","isChecked","cbWithDedup","lastInputValue","lastInputValueMap","currentWindow","propertyDescriptor","hookProperties","getNestedCSSRulePositions","recurse","childRule","isCSSGroupingRuleSupported","isCSSMediaRuleSupported","isCSSSupportsRuleSupported","isCSSConditionRuleSupported","getIdAndStyleId","styleMirror","styleId","initStyleSheetObserver","styleSheetRuleCb","stylesheetManager","insertRule","deleteRule","replace","replaceSync","supportedNestedCSSRuleTypes","unmodifiedFunctions","typeKey","initAdoptedStyleSheetObserver","hostId","patchTarget","originalPropertyDescriptor","sheets","initStyleDeclarationObserver","styleDeclarationCb","ignoreCSSAttributes","setProperty","property","priority","removeProperty","initMediaInteractionObserver","mediaInteractionCb","currentTime","volume","muted","playbackRate","initFontObserver","fontCb","fontMap","originalFontFace","family","descriptors","fontFace","restoreHandler","initSelectionObserver","param","selectionCb","collapsed","updateSelection","selection","ranges","count","range","startContainer","startOffset","endContainer","endOffset","mergeHooks","o","hooks","mutationCb","canvasMutationCb","initObservers","mutationObserver","mousemoveHandler","mouseInteractionHandler","scrollHandler","viewportResizeHandler","inputHandler","mediaInteractionHandler","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","selectionObserver","pluginHandlers","plugin","init_observer","CrossOriginIframeMirror","init_cross_origin_iframe_mirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","remoteIdToIdMap","map","ids","IframeManager","init_iframe_manager","message","transformedEvent","iframeMirror","keys","ShadowDomManager","init_shadow_dom_manager","manager","option","iframeElement","restorePatch","__rest","t","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","rejected","init_tslib_es6","lookup","encode","decode","init_base64_arraybuffer_es5","arraybuffer","bytes","base64","bufferLength","encoded1","encoded2","encoded3","encoded4","variableListFor","ctor","contextMap","canvasVarMap","serializeArg","arg","src","isInstanceOfWebGLObject","saveWebGLVar","serializeArgs","init_serialize_args","list","initCanvas2DMutationObserver","props2D","recordArgs","hookHandler","init_d","initCanvasContextObserver","contextType","init_canvas","patchGLPrototype","prototype","props","initCanvasWebGLMutationObserver","init_webgl","WorkerClass","WorkerThreads","init_rollup_plugin_web_worker_loader_helper_node_WorkerClass","__require","decodeBase64","enableUnicode","createBase64WorkerFactory","sourcemapArg","enableUnicodeArg","body","init_rollup_plugin_web_worker_loader_helper_node_createBase64WorkerFactory","binaryString","createURL","blob","init_rollup_plugin_web_worker_loader_helper_browser_createBase64WorkerFactory","isNodeJS","kIsNodeJS","init_rollup_plugin_web_worker_loader_helper_auto_isNodeJS","init_rollup_plugin_web_worker_loader_helper_auto_createBase64WorkerFactory","WorkerFactory","init_image_bitmap_data_url_worker","CanvasManager","init_canvas_manager","fps","canvasContextReset","snapshotInProgressMap","worker","timeBetweenSnapshots","lastSnapshotTime","rafId","getCanvas","matchedCanvas","takeCanvasSnapshots","timestamp","bitmap","canvas2DReset","canvasWebGL1and2Reset","setLatestRAFTimestamp","values","valuesWithType","StylesheetManager","init_stylesheet_manager","linkEl","adoptedStyleSheetData","styles","wrapEvent","record","emit","checkoutEveryNms","checkoutEveryNth","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordCrossOriginIframes","collectFonts","plugins","inEmittingFrame","passEmitsToParent","lastFullSnapshotEvent","incrementalSnapshotCount","eventProcessor","wrappedEmit","isCheckout","buf","exceedCount","exceedTime","takeFullSnapshot","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","wrappedAdoptedStyleSheetEmit","iframeManager","canvasManager","shadowDomManager","observe","init","recording","init_record","tag","createMirror$1","Mirror$1","parseCSSText","res","listDelimiter","propertyDelimiter","tmp","camelize","toCSSText","properties","normalizedName","hyphenate","BaseRRDocumentImpl","RRNodeClass","BaseRRDocument","NodeType$1","nodeType","newChild","refChild","childIndex","indexOfChild","content","publicId","doctype","_namespace","_qualifiedName","_doctype","qualifiedName","systemId","BaseRRDocumentTypeImpl","BaseRRNode","BaseRRElementImpl","_namespaceURI","data","BaseRRTextImpl","BaseRRCommentImpl","CDATASection","BaseRRCDATASectionImpl","ClassList","newClassName","hyphenateRE","_init","_event","attributeString","BaseRRMediaElementImpl","RRElementClass","diff","oldTree","newTree","replayer","rrnodeMirror","oldChildren","newChildren","diffChildren","inputDataToApply","scrollDataToApply","oldElement","newRRElement","diffProps","oldMediaElement","newMediaRRElement","rrCanvasElement","canvasMutation","styleSheet","oldContentDocument","newIFrameElement","oldAttributes","newAttributes","NAMESPACES","oldStartIndex","oldEndIndex","newStartIndex","newEndIndex","oldStartNode","oldEndNode","newStartNode","newEndNode","oldIdToIndex","indexInOld","oldStartId","oldEndId","newStartId","newEndId","oldChild","nodeToMove","newNode","createOrGetNode","referenceRRNode","referenceNode","rrNode","domMirror","SVGTagMap","buildFromNode","rrdom","parentRRNode","documentType","elementNode","rrElement","RRDocument","getDefaultSN","buildFromDom","dom","camelizeRE","CUSTOM_PROPERTY_REGEX","RRDocumentType","RRElement","RRMediaElement","RRCanvasElement","RRStyleElement","RRIFrameElement","RRText","RRComment","RRCDATASection","init_rrdom","_","_args","siblings","_newChild","_refChild","classText","onChange","classNames","classes","_RRDocument","documentTypeNode","upperTagName","commentNode","sectionNode","textNode","addCustomEvent","freezePage","init_src","zlibSync","opts","adler","dopt","zlh","wbytes","unzlibSync","out","inflt","zlv","strToU8","latin1","l","ar","u8","ai","w","slc","strFromU8","dat","u16","u32","fleb","fdeb","clim","freb","fl","revfl","fd","revfd","rev","hMap","flt","fdt","flm","flrm","fdm","fdrm","max","bits","bits16","shft","wbits","wbits16","hTree","ln","lc","clen","wfblk","wblk","deo","et","dflt","init_browser","eb","j","cd","mb","le","co","rvb","sv","r_1","st","sl","noBuf","noSt","cbuf","bl","nbuf","final","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lt","dt","lms","dms","mxa","sym","add","dsym","end","t2","i0","i1","i2","maxSym","tr","mbt","lft","cst","i2_1","i2_2","i2_3","cl","cli","cln","cls","cf","syms","lf","df","li","bs","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","flen","ftlen","dtlen","ll","dl","llm","lcts","it","clct","dst","lvl","plvl","pre","post","lst","opt","msk_1","prev","head","bs1_1","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","ml","nl","mmd","md","ti","pti","lin","din","lv","pack","init_pack","unpack","init_unpack","raw","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser","init_error_stack_parser","lineNumber","columnNumber","urlLike","line","sanitizedLine","location","tokens","locationParts","functionName","fileName","functionNameRegex","matches","lineRE","pathToSelector","domSiblings","sibling","isObject","isObjTooDeep","limit","stringify","stringifyOptions","thisPos","shouldIgnore","toString","eventResult","eventValue","_obj","init_stringify","initLogObserver","logOptions","defaultLogOptions","loggerType","logger","logCount","cancelHandlers","errorHandler","trace","stackFrame","levelType","_logger","level","PLUGIN_NAME","getRecordConsolePlugin","defaultLogConfig","LogReplayPlugin","getReplayConsolePlugin","init_replay","config","replayLogger","stackPrefix","_isSync","logData","mitt_mjs_exports","mitt","init_mitt_mjs","Element","SCROLL_TIME","scrollElement","isMicrosoftBrowser","userAgent","userAgentPatterns","ROUNDING_TOLERANCE","ease","shouldBailOut","firstArg","hasScrollableSpace","axis","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","findScrollableParent","time","currentX","currentY","elapsed","smoothScroll","scrollable","startX","startY","method","startTime","left","top","scrollableParent","parentRects","clientRects","init_smoothscroll","addDelay","baselineTime","firstOffset","firstTimestamp","Timer","init_timer","actions","action","lastTimestamp","check","speed","mode","mid","u","f","g","S","E","R","N","O","T","q","z","A","B","C","init_es","discardPriorSnapshots","events","createPlayerService","getCastFn","applyEventsSynchronously","emitter","playerMachine","timeOffset","lastPlayedEvent","neededEvents","lastPlayedTimestamp","syncEvents","castFn","machineEvent","insertionIndex","isSync","createSpeedService","speedMachine","init_machine","init_inject_style","webGLVarMap","deserializeArg","imageMap","preload","blobContents","init_deserialize_args","getContext","saveToWebGLVarMap","WebGLVariableConstructorsNames","variables","webglMutation","debugMode","canvasEventMap","precomputedMutation","commands","command","indicatesTouchDevice","SKIP_TIME_THRESHOLD","SKIP_TIME_INTERVAL","REPLAY_CONSOLE_PREFIX","defaultMouseTailConfig","Replayer","dimension","skipTime","last_index","finish","defaultConfig","replayerHandler","canvasEvent","canvasMutationData","realNode","a1","a2","state","firstMeta","firstFullsnapshot","firstEvent","lastEvent","rawEvent","collected","builtNode","mutationInQueue","documentElement","injectStylesRules","styleEl","unloadSheets","beforeLoadState","stateHandler","unsubscribe","promises","imgd","status","lastPosition","triggerFocus","mediaEl","virtualNode","legacy_missingNodeMap","nextNotInDOM","next","appendNode","targetDoc","parentSn","childNodeArray","resolveTrees","attributeName","newSn","siblingNode","styleValues","targetEl","svp","svs","selectionSet","targetHost","newStyleSheet","hostWindow","MAX_RETRY_TIME","adoptStyleSheets","styleIds","stylesToAdopt","targetMutation","previousId","previousInMap","nextInMap","debugData","base","_x","_y","lineCap","lineWidth","strokeStyle","duration","draw","hoveredEl","currentEl","all_exports","init_all","require_react_production","__commonJSMin","exports","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_ACTIVITY_TYPE","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","assign","emptyObject","Component","updater","partialState","callback","ComponentDummy","PureComponent","pureComponentPrototype","isArrayImpl","noop","ReactSharedInternals","hasOwnProperty","ReactElement","refProp","cloneAndReplaceKey","newKey","isValidElement","object","escape","escaperLookup","userProvidedKeyEscapeRegex","getElementKey","resolveThenable","thenable","fulfilledValue","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","nextNamePrefix","mapChildren","lazyInitializer","moduleObject","reportGlobalError","Children","forEachFunc","forEachContext","size","propName","childArray","defaultValue","childrenLength","render","compare","scope","prevTransition","currentTransition","returnValue","onStartTransitionFinish","usable","initialState","permalink","deps","Context","initialValue","create","ref","passthrough","reducer","initialArg","subscribe","getSnapshot","getServerSnapshot","require_react_development","module","defineDeprecationWarning","methodName","info","warnNoop","publicInstance","callerName","warningKey","didWarnStateUpdateForUnmountedComponent","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_SUSPENSE_LIST_TYPE","innerType","getTaskName","getOwner","dispatcher","UnknownOwner","hasValidKey","getter","defineKeyPropWarningGetter","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","owner","debugStack","debugTask","validateChildKeys","childKey","didWarnAboutMaps","ioInfo","_ioInfo","_ioInfo2","resolveDispatcher","releaseAsyncTransition","enqueueTask","task","enqueueTaskImpl","requireString","didWarnAboutMessageChannel","channel","aggregateErrors","errors","popActScope","prevActQueue","prevActScopeDepth","actScopeDepth","recursivelyFlushAsyncActWork","flushActQueue","isFlushing","continuation","deprecatedAPIs","fnName","createTask","callStackForError","didWarnAboutOldJSXRuntime","unknownOwnerDebugStack","unknownOwnerDebugTask","didWarnNoAwaitAct","queueSeveralMicrotasks","didAwaitActCall","error$0","_thrownError","returnValue$jscomp$0","getCurrentStack","refObject","elementType","ownName","lazyType","formatterFn","require_react","PIHError","_PIHError","code","details","__publicField","generateUUID","hex","getTimestamp","dateToTimestamp","date","getBackoffDelay","attempt","baseDelay","maxDelay","delay","STORAGE_PREFIX","STORAGE_KEYS","DEFAULTS","IdentityManager","storage","debug","storedAnonymousId","storedUserId","storedTraits","userId","traits","enabled","EventQueue","dropped","queuedEvent","batch","response","rejection","pihError","nextAttempt","backoff","stored","parsed","SessionManager","callbacks","storedSessionId","storedLastActivity","lastActivity","endedSessionId","DEFAULT_SDK_META","Transport","apiEvents","tenantId","headers","PIHClient","sessionId","refreshInterval","newFlags","storedSessionNumber","storedEventIndex","currentSessionId","UTM_STORAGE_KEY","UTM_PARAMS","DEFAULT_ATTRIBUTE_PREFIX","Autocapture","client","utmParams","originalPush","originalReplace","onNavigate","attrs","actionAttr","actionElement","actionName","actionProps","elementTag","elementText","elementId","elementClasses","form","params","currentParams","BeaconManager","STORAGE_KEY","BounceBackDetector","anchor","pihAttributes","timeAway","detectDeviceType","ua","screenWidth","getConnectionType","getWebContext","getTimezone","connectionType","SCROLL_THRESHOLDS","EngagementTracker","scrollPercent","docHeight","viewportHeight","scrollTop","scrollableHeight","ErrorTracker","reason","PerformanceTracker","webVitals","reportMetric","metric","RecordingManager","apiUrl","apiKey","matchedRule","currentUrl","rrweb","maskingConfig","maxDuration","currentSequence","click","recentClicks","firstClick","MemoryStorage","isLocalStorageAvailable","testKey","LocalStorageAdapter","createWebStorage","import_react","listeners","notifyFlagListeners","useFeatureFlag","getInstance","useFeatureFlags","WebPIHClient","webConfig","instance","resetInstance","PIH","index_default"],"mappings":"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","file":"index.global.js","sourcesContent":["var NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType || (NodeType = {}));\n\nfunction isElement(n) {\r\n return n.nodeType === n.ELEMENT_NODE;\r\n}\r\nfunction isShadowRoot(n) {\r\n var host = n === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction getCssRulesString(s) {\r\n try {\r\n var rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules).map(getCssRuleString).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction getCssRuleString(rule) {\r\n var cssStringified = rule.cssText;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n cssStringified = getCssRulesString(rule.styleSheet) || cssStringified;\r\n }\r\n catch (_a) {\r\n }\r\n }\r\n return cssStringified;\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nvar Mirror = (function () {\r\n function Mirror() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n Mirror.prototype.getId = function (n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n var id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n };\r\n Mirror.prototype.getNode = function (id) {\r\n return this.idNodeMap.get(id) || null;\r\n };\r\n Mirror.prototype.getIds = function () {\r\n return Array.from(this.idNodeMap.keys());\r\n };\r\n Mirror.prototype.getMeta = function (n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n };\r\n Mirror.prototype.removeNodeFromMap = function (n) {\r\n var _this = this;\r\n var id = this.getId(n);\r\n this.idNodeMap[\"delete\"](id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach(function (childNode) {\r\n return _this.removeNodeFromMap(childNode);\r\n });\r\n }\r\n };\r\n Mirror.prototype.has = function (id) {\r\n return this.idNodeMap.has(id);\r\n };\r\n Mirror.prototype.hasNode = function (node) {\r\n return this.nodeMetaMap.has(node);\r\n };\r\n Mirror.prototype.add = function (n, meta) {\r\n var id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n };\r\n Mirror.prototype.replace = function (id, n) {\r\n var oldNode = this.getNode(id);\r\n if (oldNode) {\r\n var meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n };\r\n Mirror.prototype.reset = function () {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n };\r\n return Mirror;\r\n}());\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction maskInputValue(_a) {\r\n var maskInputOptions = _a.maskInputOptions, tagName = _a.tagName, type = _a.type, value = _a.value, maskInputFn = _a.maskInputFn;\r\n var text = value || '';\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nvar ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nfunction is2DCanvasBlank(canvas) {\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx)\r\n return true;\r\n var chunkSize = 50;\r\n for (var x = 0; x < canvas.width; x += chunkSize) {\r\n for (var y = 0; y < canvas.height; y += chunkSize) {\r\n var getImageData = ctx.getImageData;\r\n var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData\r\n ? getImageData[ORIGINAL_ATTRIBUTE_NAME]\r\n : getImageData;\r\n var pixelBuffer = new Uint32Array(originalGetImageData.call(ctx, x, y, Math.min(chunkSize, canvas.width - x), Math.min(chunkSize, canvas.height - y)).data.buffer);\r\n if (pixelBuffer.some(function (pixel) { return pixel !== 0; }))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\n\nvar _id = 1;\r\nvar tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nvar IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n var processedTagName = element.tagName.toLowerCase().trim();\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction stringifyStyleSheet(sheet) {\r\n return sheet.cssRules\r\n ? Array.from(sheet.cssRules)\r\n .map(function (rule) { return rule.cssText || ''; })\r\n .join('')\r\n : '';\r\n}\r\nfunction extractOrigin(url) {\r\n var origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nvar canvasService;\r\nvar canvasCtx;\r\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nvar RELATIVE_PATH = /^(?!www\\.|(?:http|ftp)s?:\\/\\/|[A-Za-z]:\\\\|\\/\\/|#).*/;\r\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) {\r\n var filePath = path1 || path2 || path3;\r\n var maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (!RELATIVE_PATH.test(filePath)) {\r\n return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return \"url(\".concat(maybeQuote).concat(filePath).concat(maybeQuote, \")\");\r\n }\r\n if (filePath[0] === '/') {\r\n return \"url(\".concat(maybeQuote).concat(extractOrigin(href) + filePath).concat(maybeQuote, \")\");\r\n }\r\n var stack = href.split('/');\r\n var parts = filePath.split('/');\r\n stack.pop();\r\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\r\n var part = parts_1[_i];\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return \"url(\".concat(maybeQuote).concat(stack.join('/')).concat(maybeQuote, \")\");\r\n });\r\n}\r\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nvar SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n var pos = 0;\r\n function collectCharacters(regEx) {\r\n var chars;\r\n var match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n var output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n var url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n var descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n var inParens = false;\r\n while (true) {\r\n var c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n var a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n var a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (name === 'src' ||\r\n (name === 'href' && value && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n value &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset' && value) {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style' && value) {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data' && value) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else {\r\n return value;\r\n }\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (var eIndex = element.classList.length; eIndex--;) {\r\n var className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (var eIndex = node.classList.length; eIndex--;) {\r\n var className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector) {\r\n var el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (typeof maskTextClass === 'string') {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n if (el.closest(\".\".concat(maskTextClass)))\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, true))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n var win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n var fired = false;\r\n var readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n var timer_1 = setTimeout(function () {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', function () {\r\n clearTimeout(timer_1);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n var blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n var fired = false;\r\n var styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n var timer = setTimeout(function () {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', function () {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c;\r\n var rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: [],\r\n compatMode: n.compatMode\r\n };\r\n }\r\n else {\r\n return {\r\n type: NodeType.Document,\r\n childNodes: []\r\n };\r\n }\r\n case n.DOCUMENT_TYPE_NODE:\r\n return {\r\n type: NodeType.DocumentType,\r\n name: n.name,\r\n publicId: n.publicId,\r\n systemId: n.systemId,\r\n rootId: rootId\r\n };\r\n case n.ELEMENT_NODE:\r\n return serializeElementNode(n, {\r\n doc: doc,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskInputFn: maskInputFn,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: newlyAddedElement,\r\n rootId: rootId\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n maskTextFn: maskTextFn,\r\n rootId: rootId\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.CDATA,\r\n textContent: '',\r\n rootId: rootId\r\n };\r\n case n.COMMENT_NODE:\r\n return {\r\n type: NodeType.Comment,\r\n textContent: n.textContent || '',\r\n rootId: rootId\r\n };\r\n default:\r\n return false;\r\n }\r\n}\r\nfunction getRootId(doc, mirror) {\r\n if (!mirror.hasNode(doc))\r\n return undefined;\r\n var docId = mirror.getId(doc);\r\n return docId === 1 ? undefined : docId;\r\n}\r\nfunction serializeTextNode(n, options) {\r\n var _a;\r\n var maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, maskTextFn = options.maskTextFn, rootId = options.rootId;\r\n var parentTagName = n.parentNode && n.parentNode.tagName;\r\n var textContent = n.textContent;\r\n var isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n var isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStyleSheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(\"Cannot get CSS styles from text's parentNode. Error: \".concat(err), n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n if (!isStyle &&\r\n !isScript &&\r\n textContent &&\r\n needMaskingText(n, maskTextClass, maskTextSelector)) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle: isStyle,\r\n rootId: rootId\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n var doc = options.doc, blockClass = options.blockClass, blockSelector = options.blockSelector, inlineStylesheet = options.inlineStylesheet, _a = options.maskInputOptions, maskInputOptions = _a === void 0 ? {} : _a, maskInputFn = options.maskInputFn, _b = options.dataURLOptions, dataURLOptions = _b === void 0 ? {} : _b, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _c = options.newlyAddedElement, newlyAddedElement = _c === void 0 ? false : _c, rootId = options.rootId;\r\n var needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n var tagName = getValidTagName(n);\r\n var attributes = {};\r\n var len = n.attributes.length;\r\n for (var i = 0; i < len; i++) {\r\n var attr = n.attributes[i];\r\n attributes[attr.name] = transformAttribute(doc, tagName, attr.name, attr.value);\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n var stylesheet = Array.from(doc.styleSheets).find(function (s) {\r\n return s.href === n.href;\r\n });\r\n var cssText = null;\r\n if (stylesheet) {\r\n cssText = getCssRulesString(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n var cssText = getCssRulesString(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n var value = n.value;\r\n var checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n type: attributes.type,\r\n tagName: tagName,\r\n value: value,\r\n maskInputOptions: maskInputOptions,\r\n maskInputFn: maskInputFn\r\n });\r\n }\r\n else if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n var canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n var blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n var image_1 = n;\r\n var oldValue_1 = image_1.crossOrigin;\r\n image_1.crossOrigin = 'anonymous';\r\n var recordInlineImage = function () {\r\n try {\r\n canvasService.width = image_1.naturalWidth;\r\n canvasService.height = image_1.naturalHeight;\r\n canvasCtx.drawImage(image_1, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(\"Cannot inline img src=\".concat(image_1.currentSrc, \"! Error: \").concat(err));\r\n }\r\n oldValue_1\r\n ? (attributes.crossOrigin = oldValue_1)\r\n : image_1.removeAttribute('crossorigin');\r\n };\r\n if (image_1.complete && image_1.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image_1.onload = recordInlineImage;\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n attributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n attributes.rr_mediaCurrentTime = n.currentTime;\r\n }\r\n if (!newlyAddedElement) {\r\n if (n.scrollLeft) {\r\n attributes.rr_scrollLeft = n.scrollLeft;\r\n }\r\n if (n.scrollTop) {\r\n attributes.rr_scrollTop = n.scrollTop;\r\n }\r\n }\r\n if (needBlock) {\r\n var _d = n.getBoundingClientRect(), width = _d.width, height = _d.height;\r\n attributes = {\r\n \"class\": attributes[\"class\"],\r\n rr_width: \"\".concat(width, \"px\"),\r\n rr_height: \"\".concat(height, \"px\")\r\n };\r\n }\r\n if (tagName === 'iframe' && !keepIframeSrcFn(attributes.src)) {\r\n if (!n.contentDocument) {\r\n attributes.rr_src = attributes.src;\r\n }\r\n delete attributes.src;\r\n }\r\n return {\r\n type: NodeType.Element,\r\n tagName: tagName,\r\n attributes: attributes,\r\n childNodes: [],\r\n isSVG: isSVGElement(n) || undefined,\r\n needBlock: needBlock,\r\n rootId: rootId\r\n };\r\n}\r\nfunction lowerIfExists(maybeAttr) {\r\n if (maybeAttr === undefined) {\r\n return '';\r\n }\r\n else {\r\n return maybeAttr.toLowerCase();\r\n }\r\n}\r\nfunction slimDOMExcluded(sn, slimDOMOptions) {\r\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\r\n return true;\r\n }\r\n else if (sn.type === NodeType.Element) {\r\n if (slimDOMOptions.script &&\r\n (sn.tagName === 'script' ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'preload' &&\r\n sn.attributes.as === 'script') ||\r\n (sn.tagName === 'link' &&\r\n sn.attributes.rel === 'prefetch' &&\r\n typeof sn.attributes.href === 'string' &&\r\n sn.attributes.href.endsWith('.js')))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n var doc = options.doc, mirror = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.inlineStylesheet, inlineStylesheet = _b === void 0 ? true : _b, _c = options.maskInputOptions, maskInputOptions = _c === void 0 ? {} : _c, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, slimDOMOptions = options.slimDOMOptions, _d = options.dataURLOptions, dataURLOptions = _d === void 0 ? {} : _d, _e = options.inlineImages, inlineImages = _e === void 0 ? false : _e, _f = options.recordCanvas, recordCanvas = _f === void 0 ? false : _f, onSerialize = options.onSerialize, onIframeLoad = options.onIframeLoad, _g = options.iframeLoadTimeout, iframeLoadTimeout = _g === void 0 ? 5000 : _g, onStylesheetLoad = options.onStylesheetLoad, _h = options.stylesheetLoadTimeout, stylesheetLoadTimeout = _h === void 0 ? 5000 : _h, _j = options.keepIframeSrcFn, keepIframeSrcFn = _j === void 0 ? function () { return false; } : _j, _k = options.newlyAddedElement, newlyAddedElement = _k === void 0 ? false : _k;\r\n var _l = options.preserveWhiteSpace, preserveWhiteSpace = _l === void 0 ? true : _l;\r\n var _serializedNode = serializeNode(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: newlyAddedElement\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n var id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.Text &&\r\n !_serializedNode.isStyle &&\r\n !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, '').length)) {\r\n id = IGNORED_NODE;\r\n }\r\n else {\r\n id = genId();\r\n }\r\n var serializedNode = Object.assign(_serializedNode, { id: id });\r\n mirror.add(n, serializedNode);\r\n if (id === IGNORED_NODE) {\r\n return null;\r\n }\r\n if (onSerialize) {\r\n onSerialize(n);\r\n }\r\n var recordChild = !skipChild;\r\n if (serializedNode.type === NodeType.Element) {\r\n recordChild = recordChild && !serializedNode.needBlock;\r\n delete serializedNode.needBlock;\r\n var shadowRoot = n.shadowRoot;\r\n if (shadowRoot && isNativeShadowDom(shadowRoot))\r\n serializedNode.isShadowHost = true;\r\n }\r\n if ((serializedNode.type === NodeType.Document ||\r\n serializedNode.type === NodeType.Element) &&\r\n recordChild) {\r\n if (slimDOMOptions.headWhitespace &&\r\n serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'head') {\r\n preserveWhiteSpace = false;\r\n }\r\n var bypassOptions = {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: skipChild,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn\r\n };\r\n for (var _i = 0, _m = Array.from(n.childNodes); _i < _m.length; _i++) {\r\n var childN = _m[_i];\r\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (var _o = 0, _p = Array.from(n.shadowRoot.childNodes); _o < _p.length; _o++) {\r\n var childN = _p[_o];\r\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, function () {\r\n var iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n var serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n serializedNode.attributes.rel === 'stylesheet') {\r\n onceStylesheetLoaded(n, function () {\r\n if (onStylesheetLoad) {\r\n var serializedLinkNode = serializeNodeWithId(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n var _a = options || {}, _b = _a.mirror, mirror = _b === void 0 ? new Mirror() : _b, _c = _a.blockClass, blockClass = _c === void 0 ? 'rr-block' : _c, _d = _a.blockSelector, blockSelector = _d === void 0 ? null : _d, _e = _a.maskTextClass, maskTextClass = _e === void 0 ? 'rr-mask' : _e, _f = _a.maskTextSelector, maskTextSelector = _f === void 0 ? null : _f, _g = _a.inlineStylesheet, inlineStylesheet = _g === void 0 ? true : _g, _h = _a.inlineImages, inlineImages = _h === void 0 ? false : _h, _j = _a.recordCanvas, recordCanvas = _j === void 0 ? false : _j, _k = _a.maskAllInputs, maskAllInputs = _k === void 0 ? false : _k, maskTextFn = _a.maskTextFn, maskInputFn = _a.maskInputFn, _l = _a.slimDOM, slimDOM = _l === void 0 ? false : _l, dataURLOptions = _a.dataURLOptions, preserveWhiteSpace = _a.preserveWhiteSpace, onSerialize = _a.onSerialize, onIframeLoad = _a.onIframeLoad, iframeLoadTimeout = _a.iframeLoadTimeout, onStylesheetLoad = _a.onStylesheetLoad, stylesheetLoadTimeout = _a.stylesheetLoadTimeout, _m = _a.keepIframeSrcFn, keepIframeSrcFn = _m === void 0 ? function () { return false; } : _m;\r\n var maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true\r\n }\r\n : maskAllInputs;\r\n var slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror: mirror,\r\n blockClass: blockClass,\r\n blockSelector: blockSelector,\r\n maskTextClass: maskTextClass,\r\n maskTextSelector: maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet: inlineStylesheet,\r\n maskInputOptions: maskInputOptions,\r\n maskTextFn: maskTextFn,\r\n maskInputFn: maskInputFn,\r\n slimDOMOptions: slimDOMOptions,\r\n dataURLOptions: dataURLOptions,\r\n inlineImages: inlineImages,\r\n recordCanvas: recordCanvas,\r\n preserveWhiteSpace: preserveWhiteSpace,\r\n onSerialize: onSerialize,\r\n onIframeLoad: onIframeLoad,\r\n iframeLoadTimeout: iframeLoadTimeout,\r\n onStylesheetLoad: onStylesheetLoad,\r\n stylesheetLoadTimeout: stylesheetLoadTimeout,\r\n keepIframeSrcFn: keepIframeSrcFn,\r\n newlyAddedElement: false\r\n });\r\n}\r\n\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\r\nfunction parse(css, options) {\r\n if (options === void 0) { options = {}; }\r\n var lineno = 1;\r\n var column = 1;\r\n function updatePosition(str) {\r\n var lines = str.match(/\\n/g);\r\n if (lines) {\r\n lineno += lines.length;\r\n }\r\n var i = str.lastIndexOf('\\n');\r\n column = i === -1 ? column + str.length : str.length - i;\r\n }\r\n function position() {\r\n var start = { line: lineno, column: column };\r\n return function (node) {\r\n node.position = new Position(start);\r\n whitespace();\r\n return node;\r\n };\r\n }\r\n var Position = (function () {\r\n function Position(start) {\r\n this.start = start;\r\n this.end = { line: lineno, column: column };\r\n this.source = options.source;\r\n }\r\n return Position;\r\n }());\r\n Position.prototype.content = css;\r\n var errorsList = [];\r\n function error(msg) {\r\n var err = new Error(\"\".concat(options.source || '', \":\").concat(lineno, \":\").concat(column, \": \").concat(msg));\r\n err.reason = msg;\r\n err.filename = options.source;\r\n err.line = lineno;\r\n err.column = column;\r\n err.source = css;\r\n if (options.silent) {\r\n errorsList.push(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n }\r\n function stylesheet() {\r\n var rulesList = rules();\r\n return {\r\n type: 'stylesheet',\r\n stylesheet: {\r\n source: options.source,\r\n rules: rulesList,\r\n parsingErrors: errorsList\r\n }\r\n };\r\n }\r\n function open() {\r\n return match(/^{\\s*/);\r\n }\r\n function close() {\r\n return match(/^}/);\r\n }\r\n function rules() {\r\n var node;\r\n var rules = [];\r\n whitespace();\r\n comments(rules);\r\n while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\r\n if (node !== false) {\r\n rules.push(node);\r\n comments(rules);\r\n }\r\n }\r\n return rules;\r\n }\r\n function match(re) {\r\n var m = re.exec(css);\r\n if (!m) {\r\n return;\r\n }\r\n var str = m[0];\r\n updatePosition(str);\r\n css = css.slice(str.length);\r\n return m;\r\n }\r\n function whitespace() {\r\n match(/^\\s*/);\r\n }\r\n function comments(rules) {\r\n if (rules === void 0) { rules = []; }\r\n var c;\r\n while ((c = comment())) {\r\n if (c !== false) {\r\n rules.push(c);\r\n }\r\n c = comment();\r\n }\r\n return rules;\r\n }\r\n function comment() {\r\n var pos = position();\r\n if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\r\n return;\r\n }\r\n var i = 2;\r\n while ('' !== css.charAt(i) &&\r\n ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\r\n ++i;\r\n }\r\n i += 2;\r\n if ('' === css.charAt(i - 1)) {\r\n return error('End of comment missing');\r\n }\r\n var str = css.slice(2, i - 2);\r\n column += 2;\r\n updatePosition(str);\r\n css = css.slice(i);\r\n column += 2;\r\n return pos({\r\n type: 'comment',\r\n comment: str\r\n });\r\n }\r\n function selector() {\r\n var m = match(/^([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n return trim(m[0])\r\n .replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '')\r\n .replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (m) {\r\n return m.replace(/,/g, '\\u200C');\r\n })\r\n .split(/\\s*(?![^(]*\\)),\\s*/)\r\n .map(function (s) {\r\n return s.replace(/\\u200C/g, ',');\r\n });\r\n }\r\n function declaration() {\r\n var pos = position();\r\n var propMatch = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\r\n if (!propMatch) {\r\n return;\r\n }\r\n var prop = trim(propMatch[0]);\r\n if (!match(/^:\\s*/)) {\r\n return error(\"property missing ':'\");\r\n }\r\n var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\r\n var ret = pos({\r\n type: 'declaration',\r\n property: prop.replace(commentre, ''),\r\n value: val ? trim(val[0]).replace(commentre, '') : ''\r\n });\r\n match(/^[;\\s]*/);\r\n return ret;\r\n }\r\n function declarations() {\r\n var decls = [];\r\n if (!open()) {\r\n return error(\"missing '{'\");\r\n }\r\n comments(decls);\r\n var decl;\r\n while ((decl = declaration())) {\r\n if (decl !== false) {\r\n decls.push(decl);\r\n comments(decls);\r\n }\r\n decl = declaration();\r\n }\r\n if (!close()) {\r\n return error(\"missing '}'\");\r\n }\r\n return decls;\r\n }\r\n function keyframe() {\r\n var m;\r\n var vals = [];\r\n var pos = position();\r\n while ((m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/))) {\r\n vals.push(m[1]);\r\n match(/^,\\s*/);\r\n }\r\n if (!vals.length) {\r\n return;\r\n }\r\n return pos({\r\n type: 'keyframe',\r\n values: vals,\r\n declarations: declarations()\r\n });\r\n }\r\n function atkeyframes() {\r\n var pos = position();\r\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n var vendor = m[1];\r\n m = match(/^([-\\w]+)\\s*/);\r\n if (!m) {\r\n return error('@keyframes missing name');\r\n }\r\n var name = m[1];\r\n if (!open()) {\r\n return error(\"@keyframes missing '{'\");\r\n }\r\n var frame;\r\n var frames = comments();\r\n while ((frame = keyframe())) {\r\n frames.push(frame);\r\n frames = frames.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(\"@keyframes missing '}'\");\r\n }\r\n return pos({\r\n type: 'keyframes',\r\n name: name,\r\n vendor: vendor,\r\n keyframes: frames\r\n });\r\n }\r\n function atsupports() {\r\n var pos = position();\r\n var m = match(/^@supports *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var supports = trim(m[1]);\r\n if (!open()) {\r\n return error(\"@supports missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@supports missing '}'\");\r\n }\r\n return pos({\r\n type: 'supports',\r\n supports: supports,\r\n rules: style\r\n });\r\n }\r\n function athost() {\r\n var pos = position();\r\n var m = match(/^@host\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(\"@host missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@host missing '}'\");\r\n }\r\n return pos({\r\n type: 'host',\r\n rules: style\r\n });\r\n }\r\n function atmedia() {\r\n var pos = position();\r\n var m = match(/^@media *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var media = trim(m[1]);\r\n if (!open()) {\r\n return error(\"@media missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@media missing '}'\");\r\n }\r\n return pos({\r\n type: 'media',\r\n media: media,\r\n rules: style\r\n });\r\n }\r\n function atcustommedia() {\r\n var pos = position();\r\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\r\n if (!m) {\r\n return;\r\n }\r\n return pos({\r\n type: 'custom-media',\r\n name: trim(m[1]),\r\n media: trim(m[2])\r\n });\r\n }\r\n function atpage() {\r\n var pos = position();\r\n var m = match(/^@page */);\r\n if (!m) {\r\n return;\r\n }\r\n var sel = selector() || [];\r\n if (!open()) {\r\n return error(\"@page missing '{'\");\r\n }\r\n var decls = comments();\r\n var decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(\"@page missing '}'\");\r\n }\r\n return pos({\r\n type: 'page',\r\n selectors: sel,\r\n declarations: decls\r\n });\r\n }\r\n function atdocument() {\r\n var pos = position();\r\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\r\n if (!m) {\r\n return;\r\n }\r\n var vendor = trim(m[1]);\r\n var doc = trim(m[2]);\r\n if (!open()) {\r\n return error(\"@document missing '{'\");\r\n }\r\n var style = comments().concat(rules());\r\n if (!close()) {\r\n return error(\"@document missing '}'\");\r\n }\r\n return pos({\r\n type: 'document',\r\n document: doc,\r\n vendor: vendor,\r\n rules: style\r\n });\r\n }\r\n function atfontface() {\r\n var pos = position();\r\n var m = match(/^@font-face\\s*/);\r\n if (!m) {\r\n return;\r\n }\r\n if (!open()) {\r\n return error(\"@font-face missing '{'\");\r\n }\r\n var decls = comments();\r\n var decl;\r\n while ((decl = declaration())) {\r\n decls.push(decl);\r\n decls = decls.concat(comments());\r\n }\r\n if (!close()) {\r\n return error(\"@font-face missing '}'\");\r\n }\r\n return pos({\r\n type: 'font-face',\r\n declarations: decls\r\n });\r\n }\r\n var atimport = _compileAtrule('import');\r\n var atcharset = _compileAtrule('charset');\r\n var atnamespace = _compileAtrule('namespace');\r\n function _compileAtrule(name) {\r\n var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\r\n return function () {\r\n var pos = position();\r\n var m = match(re);\r\n if (!m) {\r\n return;\r\n }\r\n var ret = { type: name };\r\n ret[name] = m[1].trim();\r\n return pos(ret);\r\n };\r\n }\r\n function atrule() {\r\n if (css[0] !== '@') {\r\n return;\r\n }\r\n return (atkeyframes() ||\r\n atmedia() ||\r\n atcustommedia() ||\r\n atsupports() ||\r\n atimport() ||\r\n atcharset() ||\r\n atnamespace() ||\r\n atdocument() ||\r\n atpage() ||\r\n athost() ||\r\n atfontface());\r\n }\r\n function rule() {\r\n var pos = position();\r\n var sel = selector();\r\n if (!sel) {\r\n return error('selector missing');\r\n }\r\n comments();\r\n return pos({\r\n type: 'rule',\r\n selectors: sel,\r\n declarations: declarations()\r\n });\r\n }\r\n return addParent(stylesheet());\r\n}\r\nfunction trim(str) {\r\n return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\r\n}\r\nfunction addParent(obj, parent) {\r\n var isNode = obj && typeof obj.type === 'string';\r\n var childParent = isNode ? obj : parent;\r\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\r\n var k = _a[_i];\r\n var value = obj[k];\r\n if (Array.isArray(value)) {\r\n value.forEach(function (v) {\r\n addParent(v, childParent);\r\n });\r\n }\r\n else if (value && typeof value === 'object') {\r\n addParent(value, childParent);\r\n }\r\n }\r\n if (isNode) {\r\n Object.defineProperty(obj, 'parent', {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: parent || null\r\n });\r\n }\r\n return obj;\r\n}\n\nvar tagMap = {\r\n script: 'noscript',\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient'\r\n};\r\nfunction getTagName(n) {\r\n var tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\r\n if (tagName === 'link' && n.attributes._cssText) {\r\n tagName = 'style';\r\n }\r\n return tagName;\r\n}\r\nfunction escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n}\r\nvar HOVER_SELECTOR = /([^\\\\]):hover/;\r\nvar HOVER_SELECTOR_GLOBAL = new RegExp(HOVER_SELECTOR.source, 'g');\r\nfunction addHoverClass(cssText, cache) {\r\n var cachedStyle = cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.get(cssText);\r\n if (cachedStyle)\r\n return cachedStyle;\r\n var ast = parse(cssText, {\r\n silent: true\r\n });\r\n if (!ast.stylesheet) {\r\n return cssText;\r\n }\r\n var selectors = [];\r\n ast.stylesheet.rules.forEach(function (rule) {\r\n if ('selectors' in rule) {\r\n (rule.selectors || []).forEach(function (selector) {\r\n if (HOVER_SELECTOR.test(selector)) {\r\n selectors.push(selector);\r\n }\r\n });\r\n }\r\n });\r\n if (selectors.length === 0) {\r\n return cssText;\r\n }\r\n var selectorMatcher = new RegExp(selectors\r\n .filter(function (selector, index) { return selectors.indexOf(selector) === index; })\r\n .sort(function (a, b) { return b.length - a.length; })\r\n .map(function (selector) {\r\n return escapeRegExp(selector);\r\n })\r\n .join('|'), 'g');\r\n var result = cssText.replace(selectorMatcher, function (selector) {\r\n var newSelector = selector.replace(HOVER_SELECTOR_GLOBAL, '$1.\\\\:hover');\r\n return \"\".concat(selector, \", \").concat(newSelector);\r\n });\r\n cache === null || cache === void 0 ? void 0 : cache.stylesWithHoverClass.set(cssText, result);\r\n return result;\r\n}\r\nfunction createCache() {\r\n var stylesWithHoverClass = new Map();\r\n return {\r\n stylesWithHoverClass: stylesWithHoverClass\r\n };\r\n}\r\nfunction buildNode(n, options) {\r\n var doc = options.doc, hackCss = options.hackCss, cache = options.cache;\r\n switch (n.type) {\r\n case NodeType.Document:\r\n return doc.implementation.createDocument(null, '', null);\r\n case NodeType.DocumentType:\r\n return doc.implementation.createDocumentType(n.name || 'html', n.publicId, n.systemId);\r\n case NodeType.Element: {\r\n var tagName = getTagName(n);\r\n var node_1;\r\n if (n.isSVG) {\r\n node_1 = doc.createElementNS('http://www.w3.org/2000/svg', tagName);\r\n }\r\n else {\r\n node_1 = doc.createElement(tagName);\r\n }\r\n var specialAttributes = {};\r\n for (var name_1 in n.attributes) {\r\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name_1)) {\r\n continue;\r\n }\r\n var value = n.attributes[name_1];\r\n if (tagName === 'option' &&\r\n name_1 === 'selected' &&\r\n value === false) {\r\n continue;\r\n }\r\n if (value === true)\r\n value = '';\r\n if (name_1.startsWith('rr_')) {\r\n specialAttributes[name_1] = value;\r\n continue;\r\n }\r\n var isTextarea = tagName === 'textarea' && name_1 === 'value';\r\n var isRemoteOrDynamicCss = tagName === 'style' && name_1 === '_cssText';\r\n if (isRemoteOrDynamicCss && hackCss && typeof value === 'string') {\r\n value = addHoverClass(value, cache);\r\n }\r\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === 'string') {\r\n var child = doc.createTextNode(value);\r\n for (var _i = 0, _a = Array.from(node_1.childNodes); _i < _a.length; _i++) {\r\n var c = _a[_i];\r\n if (c.nodeType === node_1.TEXT_NODE) {\r\n node_1.removeChild(c);\r\n }\r\n }\r\n node_1.appendChild(child);\r\n continue;\r\n }\r\n try {\r\n if (n.isSVG && name_1 === 'xlink:href') {\r\n node_1.setAttributeNS('http://www.w3.org/1999/xlink', name_1, value.toString());\r\n }\r\n else if (name_1 === 'onload' ||\r\n name_1 === 'onclick' ||\r\n name_1.substring(0, 7) === 'onmouse') {\r\n node_1.setAttribute('_' + name_1, value.toString());\r\n }\r\n else if (tagName === 'meta' &&\r\n n.attributes['http-equiv'] === 'Content-Security-Policy' &&\r\n name_1 === 'content') {\r\n node_1.setAttribute('csp-content', value.toString());\r\n continue;\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'preload' &&\r\n n.attributes.as === 'script') {\r\n }\r\n else if (tagName === 'link' &&\r\n n.attributes.rel === 'prefetch' &&\r\n typeof n.attributes.href === 'string' &&\r\n n.attributes.href.endsWith('.js')) {\r\n }\r\n else if (tagName === 'img' &&\r\n n.attributes.srcset &&\r\n n.attributes.rr_dataURL) {\r\n node_1.setAttribute('rrweb-original-srcset', n.attributes.srcset);\r\n }\r\n else {\r\n node_1.setAttribute(name_1, value.toString());\r\n }\r\n }\r\n catch (error) {\r\n }\r\n }\r\n var _loop_1 = function (name_2) {\r\n var value = specialAttributes[name_2];\r\n if (tagName === 'canvas' && name_2 === 'rr_dataURL') {\r\n var image_1 = document.createElement('img');\r\n image_1.onload = function () {\r\n var ctx = node_1.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image_1, 0, 0, image_1.width, image_1.height);\r\n }\r\n };\r\n image_1.src = value.toString();\r\n if (node_1.RRNodeType)\r\n node_1.rr_dataURL = value.toString();\r\n }\r\n else if (tagName === 'img' && name_2 === 'rr_dataURL') {\r\n var image = node_1;\r\n if (!image.currentSrc.startsWith('data:')) {\r\n image.setAttribute('rrweb-original-src', n.attributes.src);\r\n image.src = value.toString();\r\n }\r\n }\r\n if (name_2 === 'rr_width') {\r\n node_1.style.width = value.toString();\r\n }\r\n else if (name_2 === 'rr_height') {\r\n node_1.style.height = value.toString();\r\n }\r\n else if (name_2 === 'rr_mediaCurrentTime' &&\r\n typeof value === 'number') {\r\n node_1.currentTime = value;\r\n }\r\n else if (name_2 === 'rr_mediaState') {\r\n switch (value) {\r\n case 'played':\r\n node_1\r\n .play()[\"catch\"](function (e) { return console.warn('media playback error', e); });\r\n break;\r\n case 'paused':\r\n node_1.pause();\r\n break;\r\n }\r\n }\r\n };\r\n for (var name_2 in specialAttributes) {\r\n _loop_1(name_2);\r\n }\r\n if (n.isShadowHost) {\r\n if (!node_1.shadowRoot) {\r\n node_1.attachShadow({ mode: 'open' });\r\n }\r\n else {\r\n while (node_1.shadowRoot.firstChild) {\r\n node_1.shadowRoot.removeChild(node_1.shadowRoot.firstChild);\r\n }\r\n }\r\n }\r\n return node_1;\r\n }\r\n case NodeType.Text:\r\n return doc.createTextNode(n.isStyle && hackCss\r\n ? addHoverClass(n.textContent, cache)\r\n : n.textContent);\r\n case NodeType.CDATA:\r\n return doc.createCDATASection(n.textContent);\r\n case NodeType.Comment:\r\n return doc.createComment(n.textContent);\r\n default:\r\n return null;\r\n }\r\n}\r\nfunction buildNodeWithSN(n, options) {\r\n var doc = options.doc, mirror = options.mirror, _a = options.skipChild, skipChild = _a === void 0 ? false : _a, _b = options.hackCss, hackCss = _b === void 0 ? true : _b, afterAppend = options.afterAppend, cache = options.cache;\r\n var node = buildNode(n, { doc: doc, hackCss: hackCss, cache: cache });\r\n if (!node) {\r\n return null;\r\n }\r\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\r\n mirror.replace(n.rootId, doc);\r\n }\r\n if (n.type === NodeType.Document) {\r\n doc.close();\r\n doc.open();\r\n if (n.compatMode === 'BackCompat' &&\r\n n.childNodes &&\r\n n.childNodes[0].type !== NodeType.DocumentType) {\r\n if (n.childNodes[0].type === NodeType.Element &&\r\n 'xmlns' in n.childNodes[0].attributes &&\r\n n.childNodes[0].attributes.xmlns === 'http://www.w3.org/1999/xhtml') {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">');\r\n }\r\n else {\r\n doc.write('<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">');\r\n }\r\n }\r\n node = doc;\r\n }\r\n mirror.add(node, n);\r\n if ((n.type === NodeType.Document || n.type === NodeType.Element) &&\r\n !skipChild) {\r\n for (var _i = 0, _c = n.childNodes; _i < _c.length; _i++) {\r\n var childN = _c[_i];\r\n var childNode = buildNodeWithSN(childN, {\r\n doc: doc,\r\n mirror: mirror,\r\n skipChild: false,\r\n hackCss: hackCss,\r\n afterAppend: afterAppend,\r\n cache: cache\r\n });\r\n if (!childNode) {\r\n console.warn('Failed to rebuild', childN);\r\n continue;\r\n }\r\n if (childN.isShadow && isElement(node) && node.shadowRoot) {\r\n node.shadowRoot.appendChild(childNode);\r\n }\r\n else {\r\n node.appendChild(childNode);\r\n }\r\n if (afterAppend) {\r\n afterAppend(childNode, childN.id);\r\n }\r\n }\r\n }\r\n return node;\r\n}\r\nfunction visit(mirror, onVisit) {\r\n function walk(node) {\r\n onVisit(node);\r\n }\r\n for (var _i = 0, _a = mirror.getIds(); _i < _a.length; _i++) {\r\n var id = _a[_i];\r\n if (mirror.has(id)) {\r\n walk(mirror.getNode(id));\r\n }\r\n }\r\n}\r\nfunction handleScroll(node, mirror) {\r\n var n = mirror.getMeta(node);\r\n if ((n === null || n === void 0 ? void 0 : n.type) !== NodeType.Element) {\r\n return;\r\n }\r\n var el = node;\r\n for (var name_3 in n.attributes) {\r\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name_3) &&\r\n name_3.startsWith('rr_'))) {\r\n continue;\r\n }\r\n var value = n.attributes[name_3];\r\n if (name_3 === 'rr_scrollLeft') {\r\n el.scrollLeft = value;\r\n }\r\n if (name_3 === 'rr_scrollTop') {\r\n el.scrollTop = value;\r\n }\r\n }\r\n}\r\nfunction rebuild(n, options) {\r\n var doc = options.doc, onVisit = options.onVisit, _a = options.hackCss, hackCss = _a === void 0 ? true : _a, afterAppend = options.afterAppend, cache = options.cache, _b = options.mirror, mirror = _b === void 0 ? new Mirror() : _b;\r\n var node = buildNodeWithSN(n, {\r\n doc: doc,\r\n mirror: mirror,\r\n skipChild: false,\r\n hackCss: hackCss,\r\n afterAppend: afterAppend,\r\n cache: cache\r\n });\r\n visit(mirror, function (visitedNode) {\r\n if (onVisit) {\r\n onVisit(visitedNode);\r\n }\r\n handleScroll(visitedNode, mirror);\r\n });\r\n return node;\r\n}\n\nexport { IGNORED_NODE, Mirror, NodeType, addHoverClass, buildNodeWithSN, classMatchesRegex, createCache, createMirror, genId, getCssRuleString, getCssRulesString, is2DCanvasBlank, isCSSImportRule, isElement, isNativeShadowDom, isShadowRoot, maskInputValue, needMaskingText, rebuild, serializeNodeWithId, snapshot, transformAttribute };\n","import { classMatchesRegex, IGNORED_NODE, isShadowRoot } from '../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nfunction on(type, fn, target = document) {\r\n const options = { capture: true, passive: true };\r\n target.addEventListener(type, fn, options);\r\n return () => target.removeEventListener(type, fn, options);\r\n}\r\nconst DEPARTED_MIRROR_ACCESS_WARNING = 'Please stop import mirror directly. Instead of that,' +\r\n '\\r\\n' +\r\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\r\n '\\r\\n' +\r\n 'or you can use record.mirror to access the mirror instance during recording.';\r\nlet _mirror = {\r\n map: {},\r\n getId() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return -1;\r\n },\r\n getNode() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return null;\r\n },\r\n removeNodeFromMap() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n has() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n return false;\r\n },\r\n reset() {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n },\r\n};\r\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\r\n _mirror = new Proxy(_mirror, {\r\n get(target, prop, receiver) {\r\n if (prop === 'map') {\r\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\r\n }\r\n return Reflect.get(target, prop, receiver);\r\n },\r\n });\r\n}\r\nfunction throttle(func, wait, options = {}) {\r\n let timeout = null;\r\n let previous = 0;\r\n return function (...args) {\r\n const now = Date.now();\r\n if (!previous && options.leading === false) {\r\n previous = now;\r\n }\r\n const remaining = wait - (now - previous);\r\n const context = this;\r\n if (remaining <= 0 || remaining > wait) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n previous = now;\r\n func.apply(context, args);\r\n }\r\n else if (!timeout && options.trailing !== false) {\r\n timeout = setTimeout(() => {\r\n previous = options.leading === false ? 0 : Date.now();\r\n timeout = null;\r\n func.apply(context, args);\r\n }, remaining);\r\n }\r\n };\r\n}\r\nfunction hookSetter(target, key, d, isRevoked, win = window) {\r\n const original = win.Object.getOwnPropertyDescriptor(target, key);\r\n win.Object.defineProperty(target, key, isRevoked\r\n ? d\r\n : {\r\n set(value) {\r\n setTimeout(() => {\r\n d.set.call(this, value);\r\n }, 0);\r\n if (original && original.set) {\r\n original.set.call(this, value);\r\n }\r\n },\r\n });\r\n return () => hookSetter(target, key, original || {}, true);\r\n}\r\nfunction patch(source, name, replacement) {\r\n try {\r\n if (!(name in source)) {\r\n return () => {\r\n };\r\n }\r\n const original = source[name];\r\n const wrapped = replacement(original);\r\n if (typeof wrapped === 'function') {\r\n wrapped.prototype = wrapped.prototype || {};\r\n Object.defineProperties(wrapped, {\r\n __rrweb_original__: {\r\n enumerable: false,\r\n value: original,\r\n },\r\n });\r\n }\r\n source[name] = wrapped;\r\n return () => {\r\n source[name] = original;\r\n };\r\n }\r\n catch (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (!el)\r\n return false;\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n if (blockSelector) {\r\n if (node.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(win = window) {\r\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\r\n win.NodeList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\r\n win.DOMTokenList.prototype.forEach = Array.prototype\r\n .forEach;\r\n }\r\n if (!Node.prototype.contains) {\r\n Node.prototype.contains = (...args) => {\r\n let node = args[0];\r\n if (!(0 in args)) {\r\n throw new TypeError('1 argument is required');\r\n }\r\n do {\r\n if (this === node) {\r\n return true;\r\n }\r\n } while ((node = node && node.parentNode));\r\n return false;\r\n };\r\n }\r\n}\r\nfunction queueToResolveTrees(queue) {\r\n const queueNodeMap = {};\r\n const putIntoMap = (m, parent) => {\r\n const nodeInTree = {\r\n value: m,\r\n parent,\r\n children: [],\r\n };\r\n queueNodeMap[m.node.id] = nodeInTree;\r\n return nodeInTree;\r\n };\r\n const queueNodeTrees = [];\r\n for (const mutation of queue) {\r\n const { nextId, parentId } = mutation;\r\n if (nextId && nextId in queueNodeMap) {\r\n const nextInTree = queueNodeMap[nextId];\r\n if (nextInTree.parent) {\r\n const idx = nextInTree.parent.children.indexOf(nextInTree);\r\n nextInTree.parent.children.splice(idx, 0, putIntoMap(mutation, nextInTree.parent));\r\n }\r\n else {\r\n const idx = queueNodeTrees.indexOf(nextInTree);\r\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\r\n }\r\n continue;\r\n }\r\n if (parentId in queueNodeMap) {\r\n const parentInTree = queueNodeMap[parentId];\r\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\r\n continue;\r\n }\r\n queueNodeTrees.push(putIntoMap(mutation, null));\r\n }\r\n return queueNodeTrees;\r\n}\r\nfunction iterateResolveTree(tree, cb) {\r\n cb(tree.value);\r\n for (let i = tree.children.length - 1; i >= 0; i--) {\r\n iterateResolveTree(tree.children[i], cb);\r\n }\r\n}\r\nfunction isSerializedIframe(n, mirror) {\r\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\r\n}\r\nfunction isSerializedStylesheet(n, mirror) {\r\n return Boolean(n.nodeName === 'LINK' &&\r\n n.nodeType === n.ELEMENT_NODE &&\r\n n.getAttribute &&\r\n n.getAttribute('rel') === 'stylesheet' &&\r\n mirror.getMeta(n));\r\n}\r\nfunction getBaseDimension(node, rootIframe) {\r\n var _a, _b;\r\n const frameElement = (_b = (_a = node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) === null || _b === void 0 ? void 0 : _b.frameElement;\r\n if (!frameElement || frameElement === rootIframe) {\r\n return {\r\n x: 0,\r\n y: 0,\r\n relativeScale: 1,\r\n absoluteScale: 1,\r\n };\r\n }\r\n const frameDimension = frameElement.getBoundingClientRect();\r\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\r\n const relativeScale = frameDimension.height / frameElement.clientHeight;\r\n return {\r\n x: frameDimension.x * frameBaseDimension.relativeScale +\r\n frameBaseDimension.x,\r\n y: frameDimension.y * frameBaseDimension.relativeScale +\r\n frameBaseDimension.y,\r\n relativeScale,\r\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\r\n };\r\n}\r\nfunction hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nfunction getNestedRule(rules, position) {\r\n const rule = rules[position[0]];\r\n if (position.length === 1) {\r\n return rule;\r\n }\r\n else {\r\n return getNestedRule(rule.cssRules[position[1]].cssRules, position.slice(2));\r\n }\r\n}\r\nfunction getPositionsAndIndex(nestedIndex) {\r\n const positions = [...nestedIndex];\r\n const index = positions.pop();\r\n return { positions, index };\r\n}\r\nfunction uniqueTextMutations(mutations) {\r\n const idSet = new Set();\r\n const uniqueMutations = [];\r\n for (let i = mutations.length; i--;) {\r\n const mutation = mutations[i];\r\n if (!idSet.has(mutation.id)) {\r\n uniqueMutations.push(mutation);\r\n idSet.add(mutation.id);\r\n }\r\n }\r\n return uniqueMutations;\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\n\nexport { StyleSheetMirror, _mirror, getBaseDimension, getNestedRule, getPositionsAndIndex, getWindowHeight, getWindowWidth, hasShadowRoot, hookSetter, isAncestorRemoved, isBlocked, isIgnored, isSerialized, isSerializedIframe, isSerializedStylesheet, isTouchEvent, iterateResolveTree, on, patch, polyfill, queueToResolveTrees, throttle, uniqueTextMutations };\n","var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\n\nexport { CanvasContext, EventType, IncrementalSource, MouseInteractions, ReplayerEvents };\n","import { isShadowRoot, isNativeShadowDom, maskInputValue, transformAttribute, needMaskingText, IGNORED_NODE, serializeNodeWithId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { isIgnored, isBlocked, isSerialized, isAncestorRemoved, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n var _a, _b, _c, _d;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n let rootShadowHost = shadowHost;\r\n while (((_d = (_c = rootShadowHost === null || rootShadowHost === void 0 ? void 0 : rootShadowHost.getRootNode) === null || _c === void 0 ? void 0 : _c.call(rootShadowHost)) === null || _d === void 0 ? void 0 : _d.nodeType) ===\r\n Node.DOCUMENT_FRAGMENT_NODE &&\r\n rootShadowHost.getRootNode().host)\r\n rootShadowHost = rootShadowHost.getRootNode().host;\r\n const notInDoc = !this.doc.contains(n) &&\r\n (!rootShadowHost || !this.doc.contains(rootShadowHost));\r\n if (!n.parentNode || notInDoc) {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(shadowHost)\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of Array.from(this.movedSet.values())) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of Array.from(this.addedSet.values())) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n for (let index = addList.length - 1; index >= 0; index--) {\r\n const _node = addList.get(index);\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => ({\r\n id: this.mirror.getId(text.node),\r\n value: text.value,\r\n }))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => ({\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attribute.attributes,\r\n }))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value)\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let value = m.target.getAttribute(m.attributeName);\r\n if (m.attributeName === 'value') {\r\n value = maskInputValue({\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: m.target.tagName,\r\n type: m.target.getAttribute('type'),\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributes.find((a) => a.node === m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n m.attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n m.attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n };\r\n this.attributes.push(item);\r\n }\r\n if (m.attributeName === 'style') {\r\n const old = this.doc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n if (item.attributes.style === undefined ||\r\n item.attributes.style === null) {\r\n item.attributes.style = {};\r\n }\r\n const styleObj = item.attributes.style;\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n styleObj[pname] = newValue;\r\n }\r\n else {\r\n styleObj[pname] = [newValue, newPriority];\r\n }\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n styleObj[pname] = false;\r\n }\r\n }\r\n }\r\n else {\r\n item.attributes[m.attributeName] = transformAttribute(this.doc, target.tagName, m.attributeName, value);\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false))\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nexport { MutationBuffer as default };\n","import { maskInputValue } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { on, throttle, isBlocked, getWindowHeight, getWindowWidth, hookSetter, patch, isTouchEvent } from '../utils.js';\nimport { MouseInteractions, IncrementalSource } from '../../../types/dist/types.js';\nimport MutationBuffer from './mutation.js';\n\nconst mutationBuffers = [];\r\nconst isCSSGroupingRuleSupported = typeof CSSGroupingRule !== 'undefined';\r\nconst isCSSMediaRuleSupported = typeof CSSMediaRule !== 'undefined';\r\nconst isCSSSupportsRuleSupported = typeof CSSSupportsRule !== 'undefined';\r\nconst isCSSConditionRuleSupported = typeof CSSConditionRule !== 'undefined';\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n return event.target;\r\n }\r\n catch (_a) {\r\n return event.target;\r\n }\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(mutationBuffer.processMutations.bind(mutationBuffer));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }, callbackThreshold);\r\n const updatePosition = throttle((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = Date.now();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: Date.now() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource.MouseMove\r\n : IncrementalSource.TouchMove);\r\n }, threshold, {\r\n trailing: false,\r\n });\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const e = isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n mouseInteractionCb({\r\n type: MouseInteractions[eventKey],\r\n id,\r\n x: clientX,\r\n y: clientY,\r\n });\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n const eventName = eventKey.toLowerCase();\r\n const handler = getHandler(eventKey);\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = throttle((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc) {\r\n const scrollEl = (doc.scrollingElement || doc.documentElement);\r\n scrollCb({\r\n id,\r\n x: scrollEl.scrollLeft,\r\n y: scrollEl.scrollTop,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }, sampling.scroll || 100);\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb, }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = throttle(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }, 200);\r\n return on('resize', updateDimension, window);\r\n}\r\nfunction wrapEventWithUserTriggeredFlag(v, enable) {\r\n const value = Object.assign({}, v);\r\n if (!enable)\r\n delete value.userTriggered;\r\n return value;\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n if (target && target.tagName === 'OPTION')\r\n target = target.parentElement;\r\n if (!target ||\r\n !target.tagName ||\r\n INPUT_TAGS.indexOf(target.tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const type = target.type;\r\n if (target.classList.contains(ignoreClass)) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[target.tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, wrapEventWithUserTriggeredFlag({ text, isChecked, userTriggered }, userTriggeredOnInput));\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n cbWithDedup(el, wrapEventWithUserTriggeredFlag({\r\n text: el.value,\r\n isChecked: !isChecked,\r\n userTriggered: false,\r\n }, userTriggeredOnInput));\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n inputCb(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, eventHandler, doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n eventHandler({ target: this });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((isCSSGroupingRuleSupported &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (isCSSMediaRuleSupported &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (isCSSSupportsRuleSupported &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (isCSSConditionRuleSupported &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = function (rule, index) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return insertRule.apply(this, [rule, index]);\r\n };\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = function (index) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return deleteRule.apply(this, [index]);\r\n };\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = function (text) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return replace.apply(this, [text]);\r\n };\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = function (text) {\r\n const { id, styleId } = getIdAndStyleId(this, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return replaceSync.apply(this, [text]);\r\n };\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (isCSSGroupingRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (isCSSMediaRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (isCSSConditionRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (isCSSSupportsRuleSupported) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = function (rule, index) {\r\n const { id, styleId } = getIdAndStyleId(this.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(this),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return unmodifiedFunctions[typeKey].insertRule.apply(this, [rule, index]);\r\n };\r\n type.prototype.deleteRule = function (index) {\r\n const { id, styleId } = getIdAndStyleId(this.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(this), index] },\r\n ],\r\n });\r\n }\r\n return unmodifiedFunctions[typeKey].deleteRule.apply(this, [index]);\r\n };\r\n });\r\n return () => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n };\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets');\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return () => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n };\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = function (property, value, priority) {\r\n var _a;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(this, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(this.parentRule),\r\n });\r\n }\r\n return setProperty.apply(this, [property, value, priority]);\r\n };\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = function (property) {\r\n var _a;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(this, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = this.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(this.parentRule),\r\n });\r\n }\r\n return removeProperty.apply(this, [property]);\r\n };\r\n return () => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n };\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, }) {\r\n const handler = (type) => throttle((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate, } = target;\r\n mediaInteractionCb({\r\n type,\r\n id: mirror.getId(target),\r\n currentTime,\r\n volume,\r\n muted,\r\n playbackRate,\r\n });\r\n }, sampling.media || 500);\r\n const handlers = [\r\n on('play', handler(0)),\r\n on('pause', handler(1)),\r\n on('seeked', handler(2)),\r\n on('volumechange', handler(3)),\r\n on('ratechange', handler(4)),\r\n ];\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }, 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = () => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n };\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n const mutationObserver = initMutationObserver(o, o.doc);\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o);\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n const styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n const adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n const styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n const fontObserver = o.collectFonts\r\n ? initFontObserver(o)\r\n : () => {\r\n };\r\n const selectionObserver = initSelectionObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return () => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n pluginHandlers.forEach((h) => h());\r\n };\r\n}\n\nexport { INPUT_TAGS, initAdoptedStyleSheetObserver, initMutationObserver, initObservers, initScrollObserver, mutationBuffers };\n","class CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nexport { CrossOriginIframeMirror as default };\n","import { genId } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n if (message.data.type === 'rrweb') {\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, message.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, message.data.isCheckout);\r\n }\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType.FullSnapshot: {\r\n this.crossOriginIframeMirror.reset(iframeEl);\r\n this.crossOriginIframeStyleMirror.reset(iframeEl);\r\n this.replaceIdOnNode(e.data.node, iframeEl);\r\n return {\r\n timestamp: e.timestamp,\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource.Mutation,\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: e.data.node,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n },\r\n };\r\n }\r\n case EventType.Meta:\r\n case EventType.Load:\r\n case EventType.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType.Plugin: {\r\n return e;\r\n }\r\n case EventType.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource.Mutation: {\r\n e.data.adds.forEach((n) => {\r\n this.replaceIds(n, iframeEl, [\r\n 'parentId',\r\n 'nextId',\r\n 'previousId',\r\n ]);\r\n this.replaceIdOnNode(n.node, iframeEl);\r\n });\r\n e.data.removes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\r\n });\r\n e.data.attributes.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n e.data.texts.forEach((n) => {\r\n this.replaceIds(n, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove: {\r\n e.data.positions.forEach((p) => {\r\n this.replaceIds(p, iframeEl, ['id']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource.MediaInteraction:\r\n case IncrementalSource.MouseInteraction:\r\n case IncrementalSource.Scroll:\r\n case IncrementalSource.CanvasMutation:\r\n case IncrementalSource.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\r\n return e;\r\n }\r\n case IncrementalSource.Font: {\r\n return e;\r\n }\r\n case IncrementalSource.Selection: {\r\n e.data.ranges.forEach((range) => {\r\n this.replaceIds(range, iframeEl, ['start', 'end']);\r\n });\r\n return e;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n}\n\nexport { IframeManager };\n","import { initMutationObserver, initScrollObserver, initAdoptedStyleSheetObserver } from './observer.js';\nimport { patch } from '../utils.js';\nimport { isNativeShadowDom } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restorePatches = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n const manager = this;\r\n this.restorePatches.push(patch(Element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot)\r\n manager.addShadowRoot(this.shadowRoot, this.ownerDocument);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror }));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot);\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (iframeElement.contentWindow) {\r\n const manager = this;\r\n this.restorePatches.push(patch(iframeElement.contentWindow.HTMLElement.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot)\r\n manager.addShadowRoot(this.shadowRoot, iframeElement.contentDocument);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n }\r\n reset() {\r\n this.restorePatches.forEach((restorePatch) => restorePatch());\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\nexport { ShadowDomManager };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\nexport { __awaiter, __rest };\n","/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n","import { encode } from './../../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return [...args].map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nexport { isInstanceOfWebGLObject, saveWebGLVar, serializeArg, serializeArgs, variableListFor };\n","import { CanvasContext } from '../../../../../types/dist/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { serializeArgs } from './serialize-args.js';\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs([...args], win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvas2DMutationObserver as default };\n","import { patch, isBlocked } from '../../../utils.js';\n\nfunction initCanvasContextObserver(win, blockClass, blockSelector) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, true)) {\r\n if (!('__context' in this))\r\n this.__context = contextType;\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasContextObserver as default };\n","import { CanvasContext } from '../../../../../types/dist/types.js';\nimport { patch, isBlocked, hookSetter } from '../../../utils.js';\nimport { saveWebGLVar, serializeArgs } from './serialize-args.js';\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n const recordArgs = serializeArgs([...args], win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nexport { initCanvasWebGLMutationObserver as default };\n","var WorkerClass = null;\n\ntry {\n var WorkerThreads =\n typeof module !== 'undefined' && typeof module.require === 'function' && module.require('worker_threads') ||\n typeof __non_webpack_require__ === 'function' && __non_webpack_require__('worker_threads') ||\n typeof require === 'function' && require('worker_threads');\n WorkerClass = WorkerThreads.Worker;\n} catch(e) {} // eslint-disable-line\n\nexport { WorkerClass };\n","import { WorkerClass } from './_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js';\n\nfunction decodeBase64(base64, enableUnicode) {\n return Buffer.from(base64, 'base64').toString(enableUnicode ? 'utf16' : 'utf8');\n}\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;\n var source = decodeBase64(base64, enableUnicode);\n var start = source.indexOf('\\n', 10) + 1;\n var body = source.substring(start) + (sourcemap ? '\\/\\/# sourceMappingURL=' + sourcemap : '');\n return function WorkerFactory(options) {\n return new WorkerClass(body, Object.assign({}, options, { eval: true }));\n };\n}\n\nexport { createBase64WorkerFactory };\n","function decodeBase64(base64, enableUnicode) {\n var binaryString = atob(base64);\n if (enableUnicode) {\n var binaryView = new Uint8Array(binaryString.length);\n for (var i = 0, n = binaryString.length; i < n; ++i) {\n binaryView[i] = binaryString.charCodeAt(i);\n }\n return String.fromCharCode.apply(null, new Uint16Array(binaryView.buffer));\n }\n return binaryString;\n}\n\nfunction createURL(base64, sourcemapArg, enableUnicodeArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;\n var source = decodeBase64(base64, enableUnicode);\n var start = source.indexOf('\\n', 10) + 1;\n var body = source.substring(start) + (sourcemap ? '\\/\\/# sourceMappingURL=' + sourcemap : '');\n var blob = new Blob([body], { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(base64, sourcemapArg, enableUnicodeArg);\n return new Worker(url, options);\n };\n}\n\nexport { createBase64WorkerFactory };\n","var kIsNodeJS = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n\nfunction isNodeJS() {\n return kIsNodeJS;\n}\n\nexport { isNodeJS };\n","import { createBase64WorkerFactory as createBase64WorkerFactory$1 } from './_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js';\nimport { createBase64WorkerFactory as createBase64WorkerFactory$2 } from './_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js';\nimport { isNodeJS } from './_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js';\n\nfunction createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {\n if (isNodeJS()) {\n return createBase64WorkerFactory$1(base64, sourcemapArg, enableUnicodeArg);\n }\n return createBase64WorkerFactory$2(base64, sourcemapArg, enableUnicodeArg);\n}\n\nexport { createBase64WorkerFactory };\n","import { createBase64WorkerFactory } from './_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js';\n\nvar WorkerFactory = createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwooZnVuY3Rpb24gKCkgewogICAgJ3VzZSBzdHJpY3QnOwoKICAgIC8qISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLg0KDQogICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55DQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLg0KDQogICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEgNCiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkNCiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsDQogICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NDQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1INCiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SDQogICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4NCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLw0KDQogICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikgew0KICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0NCiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7DQogICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9DQogICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfQ0KICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOw0KICAgICAgICB9KTsNCiAgICB9CgogICAgLyoKICAgICAqIGJhc2U2NC1hcnJheWJ1ZmZlciAxLjAuMSA8aHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlcj4KICAgICAqIENvcHlyaWdodCAoYykgMjAyMSBOaWtsYXMgdm9uIEhlcnR6ZW4gPGh0dHBzOi8vaGVydHplbi5jb20+CiAgICAgKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZQogICAgICovCiAgICB2YXIgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7CiAgICAvLyBVc2UgYSBsb29rdXAgdGFibGUgdG8gZmluZCB0aGUgaW5kZXguCiAgICB2YXIgbG9va3VwID0gdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICd1bmRlZmluZWQnID8gW10gOiBuZXcgVWludDhBcnJheSgyNTYpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGxvb2t1cFtjaGFycy5jaGFyQ29kZUF0KGkpXSA9IGk7CiAgICB9CiAgICB2YXIgZW5jb2RlID0gZnVuY3Rpb24gKGFycmF5YnVmZmVyKSB7CiAgICAgICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlidWZmZXIpLCBpLCBsZW4gPSBieXRlcy5sZW5ndGgsIGJhc2U2NCA9ICcnOwogICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkgKz0gMykgewogICAgICAgICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaV0gPj4gMl07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1soKGJ5dGVzW2ldICYgMykgPDwgNCkgfCAoYnl0ZXNbaSArIDFdID4+IDQpXTsKICAgICAgICAgICAgYmFzZTY0ICs9IGNoYXJzWygoYnl0ZXNbaSArIDFdICYgMTUpIDw8IDIpIHwgKGJ5dGVzW2kgKyAyXSA+PiA2KV07CiAgICAgICAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpICsgMl0gJiA2M107CiAgICAgICAgfQogICAgICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgJz0nOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgICAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgJz09JzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGJhc2U2NDsKICAgIH07CgogICAgY29uc3QgbGFzdEJsb2JNYXAgPSBuZXcgTWFwKCk7DQogICAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gbmV3IE1hcCgpOw0KICAgIGZ1bmN0aW9uIGdldFRyYW5zcGFyZW50QmxvYkZvcih3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucykgew0KICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgew0KICAgICAgICAgICAgY29uc3QgaWQgPSBgJHt3aWR0aH0tJHtoZWlnaHR9YDsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgaWYgKHRyYW5zcGFyZW50QmxvYk1hcC5oYXMoaWQpKQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNwYXJlbnRCbG9iTWFwLmdldChpZCk7DQogICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsNCiAgICAgICAgICAgICAgICBvZmZzY3JlZW4uZ2V0Q29udGV4dCgnMmQnKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0geWllbGQgYmxvYi5hcnJheUJ1ZmZlcigpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7DQogICAgICAgICAgICAgICAgdHJhbnNwYXJlbnRCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuICcnOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9DQogICAgY29uc3Qgd29ya2VyID0gc2VsZjsNCiAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsNCiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsNCiAgICAgICAgICAgIGlmICgnT2Zmc2NyZWVuQ2FudmFzJyBpbiBnbG9iYWxUaGlzKSB7DQogICAgICAgICAgICAgICAgY29uc3QgeyBpZCwgYml0bWFwLCB3aWR0aCwgaGVpZ2h0LCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOw0KICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zKTsNCiAgICAgICAgICAgICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOw0KICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IG9mZnNjcmVlbi5nZXRDb250ZXh0KCcyZCcpOw0KICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwKTsNCiAgICAgICAgICAgICAgICBiaXRtYXAuY2xvc2UoKTsNCiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0geWllbGQgb2Zmc2NyZWVuLmNvbnZlcnRUb0Jsb2IoZGF0YVVSTE9wdGlvbnMpOw0KICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7DQogICAgICAgICAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSB5aWVsZCBibG9iLmFycmF5QnVmZmVyKCk7DQogICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gZW5jb2RlKGFycmF5QnVmZmVyKTsNCiAgICAgICAgICAgICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgKHlpZWxkIHRyYW5zcGFyZW50QmFzZTY0KSA9PT0gYmFzZTY0KSB7DQogICAgICAgICAgICAgICAgICAgIGxhc3RCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7DQogICAgICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsNCiAgICAgICAgICAgICAgICAgICAgaWQsDQogICAgICAgICAgICAgICAgICAgIHR5cGUsDQogICAgICAgICAgICAgICAgICAgIGJhc2U2NCwNCiAgICAgICAgICAgICAgICAgICAgd2lkdGgsDQogICAgICAgICAgICAgICAgICAgIGhlaWdodCwNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfTsKCn0pKCk7Cgo=', null, false);\n/* eslint-enable */\n\nexport { WorkerFactory as default };\n","import { __rest, __awaiter } from './../../../../../../ext/tslib/tslib.es6.js';\nimport { isBlocked } from '../../../utils.js';\nimport { CanvasContext } from '../../../../../types/dist/types.js';\nimport initCanvas2DMutationObserver from './2d.js';\nimport initCanvasContextObserver from './canvas.js';\nimport initCanvasWebGLMutationObserver from './webgl.js';\nimport WorkerFactory from '../../../../../../_virtual/image-bitmap-data-url-worker.js';\n\nclass CanvasManager {\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context === null || context === void 0 ? void 0 : context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nexport { CanvasManager };\n","import { getCssRuleString } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { StyleSheetMirror } from '../utils.js';\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n const rules = Array.from(sheet.rules || CSSRule);\r\n styles.push({\r\n styleId,\r\n rules: rules.map((r, index) => {\r\n return {\r\n rule: getCssRuleString(r),\r\n index,\r\n };\r\n }),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nexport { StylesheetManager };\n","import { createMirror, snapshot } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { initObservers, mutationBuffers } from './observer.js';\nimport { polyfill, on, getWindowWidth, getWindowHeight, isSerializedIframe, isSerializedStylesheet, hasShadowRoot } from '../utils.js';\nimport { EventType, IncrementalSource } from '../../../types/dist/types.js';\nimport { IframeManager } from './iframe-manager.js';\nimport { ShadowDomManager } from './shadow-dom-manager.js';\nimport { CanvasManager } from './observers/canvas/canvas-manager.js';\nimport { StylesheetManager } from './stylesheet-manager.js';\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: Date.now() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordCanvas = false, recordCrossOriginIframes = false, userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), } = options;\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n window.parent.document;\r\n passEmitsToParent = false;\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType.FullSnapshot &&\r\n !(e.type === EventType.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n var _a, _b, _c, _d, _e, _f;\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: {\r\n left: window.pageXOffset !== undefined\r\n ? window.pageXOffset\r\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollLeft) ||\r\n ((_b = (_a = document === null || document === void 0 ? void 0 : document.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = document === null || document === void 0 ? void 0 : document.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: window.pageYOffset !== undefined\r\n ? window.pageYOffset\r\n : (document === null || document === void 0 ? void 0 : document.documentElement.scrollTop) ||\r\n ((_e = (_d = document === null || document === void 0 ? void 0 : document.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = document === null || document === void 0 ? void 0 : document.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n },\r\n },\r\n }));\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.DomContentLoaded,\r\n data: {},\r\n }));\r\n }));\r\n const observe = (doc) => {\r\n var _a;\r\n return initObservers({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource.Selection }, p),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Load,\r\n data: {},\r\n }));\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n recording = false;\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nexport { record as default };\n","var NodeType$1;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"Document\"] = 0] = \"Document\";\r\n NodeType[NodeType[\"DocumentType\"] = 1] = \"DocumentType\";\r\n NodeType[NodeType[\"Element\"] = 2] = \"Element\";\r\n NodeType[NodeType[\"Text\"] = 3] = \"Text\";\r\n NodeType[NodeType[\"CDATA\"] = 4] = \"CDATA\";\r\n NodeType[NodeType[\"Comment\"] = 5] = \"Comment\";\r\n})(NodeType$1 || (NodeType$1 = {}));\nvar Mirror$1 = (function () {\r\n function Mirror() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n Mirror.prototype.getId = function (n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n var id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n };\r\n Mirror.prototype.getNode = function (id) {\r\n return this.idNodeMap.get(id) || null;\r\n };\r\n Mirror.prototype.getIds = function () {\r\n return Array.from(this.idNodeMap.keys());\r\n };\r\n Mirror.prototype.getMeta = function (n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n };\r\n Mirror.prototype.removeNodeFromMap = function (n) {\r\n var _this = this;\r\n var id = this.getId(n);\r\n this.idNodeMap[\"delete\"](id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach(function (childNode) {\r\n return _this.removeNodeFromMap(childNode);\r\n });\r\n }\r\n };\r\n Mirror.prototype.has = function (id) {\r\n return this.idNodeMap.has(id);\r\n };\r\n Mirror.prototype.hasNode = function (node) {\r\n return this.nodeMetaMap.has(node);\r\n };\r\n Mirror.prototype.add = function (n, meta) {\r\n var id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n };\r\n Mirror.prototype.replace = function (id, n) {\r\n var oldNode = this.getNode(id);\r\n if (oldNode) {\r\n var meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n };\r\n Mirror.prototype.reset = function () {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n };\r\n return Mirror;\r\n}());\r\nfunction createMirror$1() {\r\n return new Mirror$1();\r\n}\n\nfunction parseCSSText(cssText) {\r\n const res = {};\r\n const listDelimiter = /;(?![^(]*\\))/g;\r\n const propertyDelimiter = /:(.+)/;\r\n const comment = /\\/\\*.*?\\*\\//g;\r\n cssText\r\n .replace(comment, '')\r\n .split(listDelimiter)\r\n .forEach(function (item) {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiter);\r\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\r\n }\r\n });\r\n return res;\r\n}\r\nfunction toCSSText(style) {\r\n const properties = [];\r\n for (const name in style) {\r\n const value = style[name];\r\n if (typeof value !== 'string')\r\n continue;\r\n const normalizedName = hyphenate(name);\r\n properties.push(`${normalizedName}: ${value};`);\r\n }\r\n return properties.join(' ');\r\n}\r\nconst camelizeRE = /-([a-z])/g;\r\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\r\nconst camelize = (str) => {\r\n if (CUSTOM_PROPERTY_REGEX.test(str))\r\n return str;\r\n return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));\r\n};\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\nconst hyphenate = (str) => {\r\n return str.replace(hyphenateRE, '-$1').toLowerCase();\r\n};\n\nclass BaseRRNode {\r\n constructor(..._args) {\r\n this.childNodes = [];\r\n this.parentElement = null;\r\n this.parentNode = null;\r\n this.ELEMENT_NODE = NodeType.ELEMENT_NODE;\r\n this.TEXT_NODE = NodeType.TEXT_NODE;\r\n }\r\n get firstChild() {\r\n return this.childNodes[0] || null;\r\n }\r\n get lastChild() {\r\n return this.childNodes[this.childNodes.length - 1] || null;\r\n }\r\n get nextSibling() {\r\n const parentNode = this.parentNode;\r\n if (!parentNode)\r\n return null;\r\n const siblings = parentNode.childNodes;\r\n const index = siblings.indexOf(this);\r\n return siblings[index + 1] || null;\r\n }\r\n contains(node) {\r\n if (node === this)\r\n return true;\r\n for (const child of this.childNodes) {\r\n if (child.contains(node))\r\n return true;\r\n }\r\n return false;\r\n }\r\n appendChild(_newChild) {\r\n throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n insertBefore(_newChild, _refChild) {\r\n throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n removeChild(_node) {\r\n throw new Error(`RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`);\r\n }\r\n toString() {\r\n return 'RRNode';\r\n }\r\n}\r\nfunction BaseRRDocumentImpl(RRNodeClass) {\r\n return class BaseRRDocument extends RRNodeClass {\r\n constructor() {\r\n super(...arguments);\r\n this.nodeType = NodeType.DOCUMENT_NODE;\r\n this.nodeName = '#document';\r\n this.compatMode = 'CSS1Compat';\r\n this.RRNodeType = NodeType$1.Document;\r\n this.textContent = null;\r\n }\r\n get documentElement() {\r\n return (this.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'HTML') || null);\r\n }\r\n get body() {\r\n var _a;\r\n return (((_a = this.documentElement) === null || _a === void 0 ? void 0 : _a.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'BODY')) || null);\r\n }\r\n get head() {\r\n var _a;\r\n return (((_a = this.documentElement) === null || _a === void 0 ? void 0 : _a.childNodes.find((node) => node.RRNodeType === NodeType$1.Element &&\r\n node.tagName === 'HEAD')) || null);\r\n }\r\n get implementation() {\r\n return this;\r\n }\r\n get firstElementChild() {\r\n return this.documentElement;\r\n }\r\n appendChild(childNode) {\r\n const nodeType = childNode.RRNodeType;\r\n if (nodeType === NodeType$1.Element ||\r\n nodeType === NodeType$1.DocumentType) {\r\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\r\n throw new Error(`RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? 'RRElement' : 'RRDoctype'} on RRDocument allowed.`);\r\n }\r\n }\r\n childNode.parentElement = null;\r\n childNode.parentNode = this;\r\n this.childNodes.push(childNode);\r\n return childNode;\r\n }\r\n insertBefore(newChild, refChild) {\r\n const nodeType = newChild.RRNodeType;\r\n if (nodeType === NodeType$1.Element ||\r\n nodeType === NodeType$1.DocumentType) {\r\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\r\n throw new Error(`RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? 'RRElement' : 'RRDoctype'} on RRDocument allowed.`);\r\n }\r\n }\r\n if (refChild === null)\r\n return this.appendChild(newChild);\r\n const childIndex = this.childNodes.indexOf(refChild);\r\n if (childIndex == -1)\r\n throw new Error(\"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\");\r\n this.childNodes.splice(childIndex, 0, newChild);\r\n newChild.parentElement = null;\r\n newChild.parentNode = this;\r\n return newChild;\r\n }\r\n removeChild(node) {\r\n const indexOfChild = this.childNodes.indexOf(node);\r\n if (indexOfChild === -1)\r\n throw new Error(\"Failed to execute 'removeChild' on 'RRDocument': The RRNode to be removed is not a child of this RRNode.\");\r\n this.childNodes.splice(indexOfChild, 1);\r\n node.parentElement = null;\r\n node.parentNode = null;\r\n return node;\r\n }\r\n open() {\r\n this.childNodes = [];\r\n }\r\n close() {\r\n }\r\n write(content) {\r\n let publicId;\r\n if (content ===\r\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\r\n publicId = '-//W3C//DTD XHTML 1.0 Transitional//EN';\r\n else if (content ===\r\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\r\n publicId = '-//W3C//DTD HTML 4.0 Transitional//EN';\r\n if (publicId) {\r\n const doctype = this.createDocumentType('html', publicId, '');\r\n this.open();\r\n this.appendChild(doctype);\r\n }\r\n }\r\n createDocument(_namespace, _qualifiedName, _doctype) {\r\n return new BaseRRDocument();\r\n }\r\n createDocumentType(qualifiedName, publicId, systemId) {\r\n const doctype = new (BaseRRDocumentTypeImpl(BaseRRNode))(qualifiedName, publicId, systemId);\r\n doctype.ownerDocument = this;\r\n return doctype;\r\n }\r\n createElement(tagName) {\r\n const element = new (BaseRRElementImpl(BaseRRNode))(tagName);\r\n element.ownerDocument = this;\r\n return element;\r\n }\r\n createElementNS(_namespaceURI, qualifiedName) {\r\n return this.createElement(qualifiedName);\r\n }\r\n createTextNode(data) {\r\n const text = new (BaseRRTextImpl(BaseRRNode))(data);\r\n text.ownerDocument = this;\r\n return text;\r\n }\r\n createComment(data) {\r\n const comment = new (BaseRRCommentImpl(BaseRRNode))(data);\r\n comment.ownerDocument = this;\r\n return comment;\r\n }\r\n createCDATASection(data) {\r\n const CDATASection = new (BaseRRCDATASectionImpl(BaseRRNode))(data);\r\n CDATASection.ownerDocument = this;\r\n return CDATASection;\r\n }\r\n toString() {\r\n return 'RRDocument';\r\n }\r\n };\r\n}\r\nfunction BaseRRDocumentTypeImpl(RRNodeClass) {\r\n return class BaseRRDocumentType extends RRNodeClass {\r\n constructor(qualifiedName, publicId, systemId) {\r\n super();\r\n this.nodeType = NodeType.DOCUMENT_TYPE_NODE;\r\n this.RRNodeType = NodeType$1.DocumentType;\r\n this.textContent = null;\r\n this.name = qualifiedName;\r\n this.publicId = publicId;\r\n this.systemId = systemId;\r\n this.nodeName = qualifiedName;\r\n }\r\n toString() {\r\n return 'RRDocumentType';\r\n }\r\n };\r\n}\r\nfunction BaseRRElementImpl(RRNodeClass) {\r\n return class BaseRRElement extends RRNodeClass {\r\n constructor(tagName) {\r\n super();\r\n this.nodeType = NodeType.ELEMENT_NODE;\r\n this.RRNodeType = NodeType$1.Element;\r\n this.attributes = {};\r\n this.shadowRoot = null;\r\n this.tagName = tagName.toUpperCase();\r\n this.nodeName = tagName.toUpperCase();\r\n }\r\n get textContent() {\r\n let result = '';\r\n this.childNodes.forEach((node) => (result += node.textContent));\r\n return result;\r\n }\r\n set textContent(textContent) {\r\n this.childNodes = [this.ownerDocument.createTextNode(textContent)];\r\n }\r\n get classList() {\r\n return new ClassList(this.attributes.class, (newClassName) => {\r\n this.attributes.class = newClassName;\r\n });\r\n }\r\n get id() {\r\n return this.attributes.id || '';\r\n }\r\n get className() {\r\n return this.attributes.class || '';\r\n }\r\n get style() {\r\n const style = (this.attributes.style\r\n ? parseCSSText(this.attributes.style)\r\n : {});\r\n const hyphenateRE = /\\B([A-Z])/g;\r\n style.setProperty = (name, value, priority) => {\r\n if (hyphenateRE.test(name))\r\n return;\r\n const normalizedName = camelize(name);\r\n if (!value)\r\n delete style[normalizedName];\r\n else\r\n style[normalizedName] = value;\r\n if (priority === 'important')\r\n style[normalizedName] += ' !important';\r\n this.attributes.style = toCSSText(style);\r\n };\r\n style.removeProperty = (name) => {\r\n if (hyphenateRE.test(name))\r\n return '';\r\n const normalizedName = camelize(name);\r\n const value = style[normalizedName] || '';\r\n delete style[normalizedName];\r\n this.attributes.style = toCSSText(style);\r\n return value;\r\n };\r\n return style;\r\n }\r\n getAttribute(name) {\r\n return this.attributes[name] || null;\r\n }\r\n setAttribute(name, attribute) {\r\n this.attributes[name] = attribute;\r\n }\r\n setAttributeNS(_namespace, qualifiedName, value) {\r\n this.setAttribute(qualifiedName, value);\r\n }\r\n removeAttribute(name) {\r\n delete this.attributes[name];\r\n }\r\n appendChild(newChild) {\r\n this.childNodes.push(newChild);\r\n newChild.parentNode = this;\r\n newChild.parentElement = this;\r\n return newChild;\r\n }\r\n insertBefore(newChild, refChild) {\r\n if (refChild === null)\r\n return this.appendChild(newChild);\r\n const childIndex = this.childNodes.indexOf(refChild);\r\n if (childIndex == -1)\r\n throw new Error(\"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\");\r\n this.childNodes.splice(childIndex, 0, newChild);\r\n newChild.parentElement = this;\r\n newChild.parentNode = this;\r\n return newChild;\r\n }\r\n removeChild(node) {\r\n const indexOfChild = this.childNodes.indexOf(node);\r\n if (indexOfChild === -1)\r\n throw new Error(\"Failed to execute 'removeChild' on 'RRElement': The RRNode to be removed is not a child of this RRNode.\");\r\n this.childNodes.splice(indexOfChild, 1);\r\n node.parentElement = null;\r\n node.parentNode = null;\r\n return node;\r\n }\r\n attachShadow(_init) {\r\n const shadowRoot = this.ownerDocument.createElement('SHADOWROOT');\r\n this.shadowRoot = shadowRoot;\r\n return shadowRoot;\r\n }\r\n dispatchEvent(_event) {\r\n return true;\r\n }\r\n toString() {\r\n let attributeString = '';\r\n for (const attribute in this.attributes) {\r\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\r\n }\r\n return `${this.tagName} ${attributeString}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRMediaElementImpl(RRElementClass) {\r\n return class BaseRRMediaElement extends RRElementClass {\r\n attachShadow(_init) {\r\n throw new Error(`RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`);\r\n }\r\n play() {\r\n this.paused = false;\r\n }\r\n pause() {\r\n this.paused = true;\r\n }\r\n };\r\n}\r\nfunction BaseRRTextImpl(RRNodeClass) {\r\n return class BaseRRText extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeType = NodeType.TEXT_NODE;\r\n this.nodeName = '#text';\r\n this.RRNodeType = NodeType$1.Text;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRText text=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRCommentImpl(RRNodeClass) {\r\n return class BaseRRComment extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeType = NodeType.COMMENT_NODE;\r\n this.nodeName = '#comment';\r\n this.RRNodeType = NodeType$1.Comment;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRComment text=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nfunction BaseRRCDATASectionImpl(RRNodeClass) {\r\n return class BaseRRCDATASection extends RRNodeClass {\r\n constructor(data) {\r\n super();\r\n this.nodeName = '#cdata-section';\r\n this.nodeType = NodeType.CDATA_SECTION_NODE;\r\n this.RRNodeType = NodeType$1.CDATA;\r\n this.data = data;\r\n }\r\n get textContent() {\r\n return this.data;\r\n }\r\n set textContent(textContent) {\r\n this.data = textContent;\r\n }\r\n toString() {\r\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\r\n }\r\n };\r\n}\r\nclass ClassList {\r\n constructor(classText, onChange) {\r\n this.classes = [];\r\n this.add = (...classNames) => {\r\n for (const item of classNames) {\r\n const className = String(item);\r\n if (this.classes.indexOf(className) >= 0)\r\n continue;\r\n this.classes.push(className);\r\n }\r\n this.onChange && this.onChange(this.classes.join(' '));\r\n };\r\n this.remove = (...classNames) => {\r\n this.classes = this.classes.filter((item) => classNames.indexOf(item) === -1);\r\n this.onChange && this.onChange(this.classes.join(' '));\r\n };\r\n if (classText) {\r\n const classes = classText.trim().split(/\\s+/);\r\n this.classes.push(...classes);\r\n }\r\n this.onChange = onChange;\r\n }\r\n}\r\nvar NodeType;\r\n(function (NodeType) {\r\n NodeType[NodeType[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\r\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\r\n NodeType[NodeType[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\r\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\r\n NodeType[NodeType[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\r\n NodeType[NodeType[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\r\n NodeType[NodeType[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\r\n NodeType[NodeType[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\r\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\r\n NodeType[NodeType[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\r\n})(NodeType || (NodeType = {}));\n\nconst NAMESPACES = {\r\n svg: 'http://www.w3.org/2000/svg',\r\n 'xlink:href': 'http://www.w3.org/1999/xlink',\r\n xmlns: 'http://www.w3.org/2000/xmlns/',\r\n};\r\nconst SVGTagMap = {\r\n altglyph: 'altGlyph',\r\n altglyphdef: 'altGlyphDef',\r\n altglyphitem: 'altGlyphItem',\r\n animatecolor: 'animateColor',\r\n animatemotion: 'animateMotion',\r\n animatetransform: 'animateTransform',\r\n clippath: 'clipPath',\r\n feblend: 'feBlend',\r\n fecolormatrix: 'feColorMatrix',\r\n fecomponenttransfer: 'feComponentTransfer',\r\n fecomposite: 'feComposite',\r\n feconvolvematrix: 'feConvolveMatrix',\r\n fediffuselighting: 'feDiffuseLighting',\r\n fedisplacementmap: 'feDisplacementMap',\r\n fedistantlight: 'feDistantLight',\r\n fedropshadow: 'feDropShadow',\r\n feflood: 'feFlood',\r\n fefunca: 'feFuncA',\r\n fefuncb: 'feFuncB',\r\n fefuncg: 'feFuncG',\r\n fefuncr: 'feFuncR',\r\n fegaussianblur: 'feGaussianBlur',\r\n feimage: 'feImage',\r\n femerge: 'feMerge',\r\n femergenode: 'feMergeNode',\r\n femorphology: 'feMorphology',\r\n feoffset: 'feOffset',\r\n fepointlight: 'fePointLight',\r\n fespecularlighting: 'feSpecularLighting',\r\n fespotlight: 'feSpotLight',\r\n fetile: 'feTile',\r\n feturbulence: 'feTurbulence',\r\n foreignobject: 'foreignObject',\r\n glyphref: 'glyphRef',\r\n lineargradient: 'linearGradient',\r\n radialgradient: 'radialGradient',\r\n};\r\nfunction diff(oldTree, newTree, replayer, rrnodeMirror) {\r\n const oldChildren = oldTree.childNodes;\r\n const newChildren = newTree.childNodes;\r\n rrnodeMirror =\r\n rrnodeMirror ||\r\n newTree.mirror ||\r\n newTree.ownerDocument.mirror;\r\n if (oldChildren.length > 0 || newChildren.length > 0) {\r\n diffChildren(Array.from(oldChildren), newChildren, oldTree, replayer, rrnodeMirror);\r\n }\r\n let inputDataToApply = null, scrollDataToApply = null;\r\n switch (newTree.RRNodeType) {\r\n case NodeType$1.Document: {\r\n const newRRDocument = newTree;\r\n scrollDataToApply = newRRDocument.scrollData;\r\n break;\r\n }\r\n case NodeType$1.Element: {\r\n const oldElement = oldTree;\r\n const newRRElement = newTree;\r\n diffProps(oldElement, newRRElement, rrnodeMirror);\r\n scrollDataToApply = newRRElement.scrollData;\r\n inputDataToApply = newRRElement.inputData;\r\n switch (newRRElement.tagName) {\r\n case 'AUDIO':\r\n case 'VIDEO': {\r\n const oldMediaElement = oldTree;\r\n const newMediaRRElement = newRRElement;\r\n if (newMediaRRElement.paused !== undefined)\r\n newMediaRRElement.paused\r\n ? void oldMediaElement.pause()\r\n : void oldMediaElement.play();\r\n if (newMediaRRElement.muted !== undefined)\r\n oldMediaElement.muted = newMediaRRElement.muted;\r\n if (newMediaRRElement.volume !== undefined)\r\n oldMediaElement.volume = newMediaRRElement.volume;\r\n if (newMediaRRElement.currentTime !== undefined)\r\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\r\n if (newMediaRRElement.playbackRate !== undefined)\r\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\r\n break;\r\n }\r\n case 'CANVAS':\r\n {\r\n const rrCanvasElement = newTree;\r\n if (rrCanvasElement.rr_dataURL !== null) {\r\n const image = document.createElement('img');\r\n image.onload = () => {\r\n const ctx = oldElement.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n image.src = rrCanvasElement.rr_dataURL;\r\n }\r\n rrCanvasElement.canvasMutations.forEach((canvasMutation) => replayer.applyCanvas(canvasMutation.event, canvasMutation.mutation, oldTree));\r\n }\r\n break;\r\n case 'STYLE':\r\n {\r\n const styleSheet = oldElement.sheet;\r\n styleSheet &&\r\n newTree.rules.forEach((data) => replayer.applyStyleSheetMutation(data, styleSheet));\r\n }\r\n break;\r\n }\r\n if (newRRElement.shadowRoot) {\r\n if (!oldElement.shadowRoot)\r\n oldElement.attachShadow({ mode: 'open' });\r\n const oldChildren = oldElement.shadowRoot.childNodes;\r\n const newChildren = newRRElement.shadowRoot.childNodes;\r\n if (oldChildren.length > 0 || newChildren.length > 0)\r\n diffChildren(Array.from(oldChildren), newChildren, oldElement.shadowRoot, replayer, rrnodeMirror);\r\n }\r\n break;\r\n }\r\n case NodeType$1.Text:\r\n case NodeType$1.Comment:\r\n case NodeType$1.CDATA:\r\n if (oldTree.textContent !==\r\n newTree.data)\r\n oldTree.textContent = newTree.data;\r\n break;\r\n }\r\n scrollDataToApply && replayer.applyScroll(scrollDataToApply, true);\r\n inputDataToApply && replayer.applyInput(inputDataToApply);\r\n if (newTree.nodeName === 'IFRAME') {\r\n const oldContentDocument = oldTree.contentDocument;\r\n const newIFrameElement = newTree;\r\n if (oldContentDocument) {\r\n const sn = rrnodeMirror.getMeta(newIFrameElement.contentDocument);\r\n if (sn) {\r\n replayer.mirror.add(oldContentDocument, Object.assign({}, sn));\r\n }\r\n diff(oldContentDocument, newIFrameElement.contentDocument, replayer, rrnodeMirror);\r\n }\r\n }\r\n}\r\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\r\n const oldAttributes = oldTree.attributes;\r\n const newAttributes = newTree.attributes;\r\n for (const name in newAttributes) {\r\n const newValue = newAttributes[name];\r\n const sn = rrnodeMirror.getMeta(newTree);\r\n if (sn && 'isSVG' in sn && sn.isSVG && NAMESPACES[name])\r\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\r\n else if (newTree.tagName === 'CANVAS' && name === 'rr_dataURL') {\r\n const image = document.createElement('img');\r\n image.src = newValue;\r\n image.onload = () => {\r\n const ctx = oldTree.getContext('2d');\r\n if (ctx) {\r\n ctx.drawImage(image, 0, 0, image.width, image.height);\r\n }\r\n };\r\n }\r\n else\r\n oldTree.setAttribute(name, newValue);\r\n }\r\n for (const { name } of Array.from(oldAttributes))\r\n if (!(name in newAttributes))\r\n oldTree.removeAttribute(name);\r\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\r\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\r\n}\r\nfunction diffChildren(oldChildren, newChildren, parentNode, replayer, rrnodeMirror) {\r\n var _a;\r\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\r\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\r\n let oldIdToIndex = undefined, indexInOld;\r\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\r\n const oldStartId = replayer.mirror.getId(oldStartNode);\r\n const oldEndId = replayer.mirror.getId(oldEndNode);\r\n const newStartId = rrnodeMirror.getId(newStartNode);\r\n const newEndId = rrnodeMirror.getId(newEndNode);\r\n if (oldStartNode === undefined) {\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n }\r\n else if (oldEndNode === undefined) {\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n }\r\n else if (oldStartId !== -1 &&\r\n oldStartId === newStartId) {\r\n diff(oldStartNode, newStartNode, replayer, rrnodeMirror);\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n else if (oldEndId !== -1 &&\r\n oldEndId === newEndId) {\r\n diff(oldEndNode, newEndNode, replayer, rrnodeMirror);\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n newEndNode = newChildren[--newEndIndex];\r\n }\r\n else if (oldStartId !== -1 &&\r\n oldStartId === newEndId) {\r\n parentNode.insertBefore(oldStartNode, oldEndNode.nextSibling);\r\n diff(oldStartNode, newEndNode, replayer, rrnodeMirror);\r\n oldStartNode = oldChildren[++oldStartIndex];\r\n newEndNode = newChildren[--newEndIndex];\r\n }\r\n else if (oldEndId !== -1 &&\r\n oldEndId === newStartId) {\r\n parentNode.insertBefore(oldEndNode, oldStartNode);\r\n diff(oldEndNode, newStartNode, replayer, rrnodeMirror);\r\n oldEndNode = oldChildren[--oldEndIndex];\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n else {\r\n if (!oldIdToIndex) {\r\n oldIdToIndex = {};\r\n for (let i = oldStartIndex; i <= oldEndIndex; i++) {\r\n const oldChild = oldChildren[i];\r\n if (oldChild && replayer.mirror.hasNode(oldChild))\r\n oldIdToIndex[replayer.mirror.getId(oldChild)] = i;\r\n }\r\n }\r\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\r\n if (indexInOld) {\r\n const nodeToMove = oldChildren[indexInOld];\r\n parentNode.insertBefore(nodeToMove, oldStartNode);\r\n diff(nodeToMove, newStartNode, replayer, rrnodeMirror);\r\n oldChildren[indexInOld] = undefined;\r\n }\r\n else {\r\n const newNode = createOrGetNode(newStartNode, replayer.mirror, rrnodeMirror);\r\n if (parentNode.nodeName === '#document' &&\r\n ((_a = replayer.mirror.getMeta(newNode)) === null || _a === void 0 ? void 0 : _a.type) === NodeType$1.Element &&\r\n parentNode.documentElement) {\r\n parentNode.removeChild(parentNode.documentElement);\r\n oldChildren[oldStartIndex] = undefined;\r\n oldStartNode = undefined;\r\n }\r\n parentNode.insertBefore(newNode, oldStartNode || null);\r\n diff(newNode, newStartNode, replayer, rrnodeMirror);\r\n }\r\n newStartNode = newChildren[++newStartIndex];\r\n }\r\n }\r\n if (oldStartIndex > oldEndIndex) {\r\n const referenceRRNode = newChildren[newEndIndex + 1];\r\n let referenceNode = null;\r\n if (referenceRRNode)\r\n parentNode.childNodes.forEach((child) => {\r\n if (replayer.mirror.getId(child) === rrnodeMirror.getId(referenceRRNode))\r\n referenceNode = child;\r\n });\r\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\r\n const newNode = createOrGetNode(newChildren[newStartIndex], replayer.mirror, rrnodeMirror);\r\n parentNode.insertBefore(newNode, referenceNode);\r\n diff(newNode, newChildren[newStartIndex], replayer, rrnodeMirror);\r\n }\r\n }\r\n else if (newStartIndex > newEndIndex) {\r\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\r\n const node = oldChildren[oldStartIndex];\r\n if (node) {\r\n parentNode.removeChild(node);\r\n replayer.mirror.removeNodeFromMap(node);\r\n }\r\n }\r\n }\r\n}\r\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\r\n const nodeId = rrnodeMirror.getId(rrNode);\r\n const sn = rrnodeMirror.getMeta(rrNode);\r\n let node = null;\r\n if (nodeId > -1)\r\n node = domMirror.getNode(nodeId);\r\n if (node !== null)\r\n return node;\r\n switch (rrNode.RRNodeType) {\r\n case NodeType$1.Document:\r\n node = new Document();\r\n break;\r\n case NodeType$1.DocumentType:\r\n node = document.implementation.createDocumentType(rrNode.name, rrNode.publicId, rrNode.systemId);\r\n break;\r\n case NodeType$1.Element: {\r\n let tagName = rrNode.tagName.toLowerCase();\r\n tagName = SVGTagMap[tagName] || tagName;\r\n if (sn && 'isSVG' in sn && (sn === null || sn === void 0 ? void 0 : sn.isSVG)) {\r\n node = document.createElementNS(NAMESPACES['svg'], tagName);\r\n }\r\n else\r\n node = document.createElement(rrNode.tagName);\r\n break;\r\n }\r\n case NodeType$1.Text:\r\n node = document.createTextNode(rrNode.data);\r\n break;\r\n case NodeType$1.Comment:\r\n node = document.createComment(rrNode.data);\r\n break;\r\n case NodeType$1.CDATA:\r\n node = document.createCDATASection(rrNode.data);\r\n break;\r\n }\r\n if (sn)\r\n domMirror.add(node, Object.assign({}, sn));\r\n return node;\r\n}\n\nclass RRDocument extends BaseRRDocumentImpl(BaseRRNode) {\r\n constructor(mirror) {\r\n super();\r\n this.UNSERIALIZED_STARTING_ID = -2;\r\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\r\n this.mirror = createMirror();\r\n this.scrollData = null;\r\n if (mirror) {\r\n this.mirror = mirror;\r\n }\r\n }\r\n get unserializedId() {\r\n return this._unserializedId--;\r\n }\r\n createDocument(_namespace, _qualifiedName, _doctype) {\r\n return new RRDocument();\r\n }\r\n createDocumentType(qualifiedName, publicId, systemId) {\r\n const documentTypeNode = new RRDocumentType(qualifiedName, publicId, systemId);\r\n documentTypeNode.ownerDocument = this;\r\n return documentTypeNode;\r\n }\r\n createElement(tagName) {\r\n const upperTagName = tagName.toUpperCase();\r\n let element;\r\n switch (upperTagName) {\r\n case 'AUDIO':\r\n case 'VIDEO':\r\n element = new RRMediaElement(upperTagName);\r\n break;\r\n case 'IFRAME':\r\n element = new RRIFrameElement(upperTagName, this.mirror);\r\n break;\r\n case 'CANVAS':\r\n element = new RRCanvasElement(upperTagName);\r\n break;\r\n case 'STYLE':\r\n element = new RRStyleElement(upperTagName);\r\n break;\r\n default:\r\n element = new RRElement(upperTagName);\r\n break;\r\n }\r\n element.ownerDocument = this;\r\n return element;\r\n }\r\n createComment(data) {\r\n const commentNode = new RRComment(data);\r\n commentNode.ownerDocument = this;\r\n return commentNode;\r\n }\r\n createCDATASection(data) {\r\n const sectionNode = new RRCDATASection(data);\r\n sectionNode.ownerDocument = this;\r\n return sectionNode;\r\n }\r\n createTextNode(data) {\r\n const textNode = new RRText(data);\r\n textNode.ownerDocument = this;\r\n return textNode;\r\n }\r\n destroyTree() {\r\n this.childNodes = [];\r\n this.mirror.reset();\r\n }\r\n open() {\r\n super.open();\r\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\r\n }\r\n}\r\nconst RRDocumentType = BaseRRDocumentTypeImpl(BaseRRNode);\r\nclass RRElement extends BaseRRElementImpl(BaseRRNode) {\r\n constructor() {\r\n super(...arguments);\r\n this.inputData = null;\r\n this.scrollData = null;\r\n }\r\n}\r\nclass RRMediaElement extends BaseRRMediaElementImpl(RRElement) {\r\n}\r\nclass RRCanvasElement extends RRElement {\r\n constructor() {\r\n super(...arguments);\r\n this.rr_dataURL = null;\r\n this.canvasMutations = [];\r\n }\r\n getContext() {\r\n return null;\r\n }\r\n}\r\nclass RRStyleElement extends RRElement {\r\n constructor() {\r\n super(...arguments);\r\n this.rules = [];\r\n }\r\n}\r\nclass RRIFrameElement extends RRElement {\r\n constructor(upperTagName, mirror) {\r\n super(upperTagName);\r\n this.contentDocument = new RRDocument();\r\n this.contentDocument.mirror = mirror;\r\n }\r\n}\r\nconst RRText = BaseRRTextImpl(BaseRRNode);\r\nconst RRComment = BaseRRCommentImpl(BaseRRNode);\r\nconst RRCDATASection = BaseRRCDATASectionImpl(BaseRRNode);\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'FORM';\r\n }\r\n return element.tagName.toUpperCase();\r\n}\r\nfunction buildFromNode(node, rrdom, domMirror, parentRRNode) {\r\n let rrNode;\r\n switch (node.nodeType) {\r\n case NodeType.DOCUMENT_NODE:\r\n if (parentRRNode && parentRRNode.nodeName === 'IFRAME')\r\n rrNode = parentRRNode.contentDocument;\r\n else {\r\n rrNode = rrdom;\r\n rrNode.compatMode = node.compatMode;\r\n }\r\n break;\r\n case NodeType.DOCUMENT_TYPE_NODE: {\r\n const documentType = node;\r\n rrNode = rrdom.createDocumentType(documentType.name, documentType.publicId, documentType.systemId);\r\n break;\r\n }\r\n case NodeType.ELEMENT_NODE: {\r\n const elementNode = node;\r\n const tagName = getValidTagName(elementNode);\r\n rrNode = rrdom.createElement(tagName);\r\n const rrElement = rrNode;\r\n for (const { name, value } of Array.from(elementNode.attributes)) {\r\n rrElement.attributes[name] = value;\r\n }\r\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\r\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\r\n break;\r\n }\r\n case NodeType.TEXT_NODE:\r\n rrNode = rrdom.createTextNode(node.textContent || '');\r\n break;\r\n case NodeType.CDATA_SECTION_NODE:\r\n rrNode = rrdom.createCDATASection(node.data);\r\n break;\r\n case NodeType.COMMENT_NODE:\r\n rrNode = rrdom.createComment(node.textContent || '');\r\n break;\r\n case NodeType.DOCUMENT_FRAGMENT_NODE:\r\n rrNode = parentRRNode.attachShadow({ mode: 'open' });\r\n break;\r\n default:\r\n return null;\r\n }\r\n let sn = domMirror.getMeta(node);\r\n if (rrdom instanceof RRDocument) {\r\n if (!sn) {\r\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\r\n domMirror.add(node, sn);\r\n }\r\n rrdom.mirror.add(rrNode, Object.assign({}, sn));\r\n }\r\n return rrNode;\r\n}\r\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\r\n function walk(node, parentRRNode) {\r\n const rrNode = buildFromNode(node, rrdom, domMirror, parentRRNode);\r\n if (rrNode === null)\r\n return;\r\n if ((parentRRNode === null || parentRRNode === void 0 ? void 0 : parentRRNode.nodeName) !== 'IFRAME' &&\r\n node.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE) {\r\n parentRRNode === null || parentRRNode === void 0 ? void 0 : parentRRNode.appendChild(rrNode);\r\n rrNode.parentNode = parentRRNode;\r\n rrNode.parentElement = parentRRNode;\r\n }\r\n if (node.nodeName === 'IFRAME') {\r\n const iframeDoc = node.contentDocument;\r\n iframeDoc && walk(iframeDoc, rrNode);\r\n }\r\n else if (node.nodeType === NodeType.DOCUMENT_NODE ||\r\n node.nodeType === NodeType.ELEMENT_NODE ||\r\n node.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\r\n if (node.nodeType === NodeType.ELEMENT_NODE &&\r\n node.shadowRoot)\r\n walk(node.shadowRoot, rrNode);\r\n node.childNodes.forEach((childNode) => walk(childNode, rrNode));\r\n }\r\n }\r\n walk(dom, null);\r\n return rrdom;\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction getDefaultSN(node, id) {\r\n switch (node.RRNodeType) {\r\n case NodeType$1.Document:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n childNodes: [],\r\n };\r\n case NodeType$1.DocumentType: {\r\n const doctype = node;\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n name: doctype.name,\r\n publicId: doctype.publicId,\r\n systemId: doctype.systemId,\r\n };\r\n }\r\n case NodeType$1.Element:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n tagName: node.tagName.toLowerCase(),\r\n attributes: {},\r\n childNodes: [],\r\n };\r\n case NodeType$1.Text:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: node.textContent || '',\r\n };\r\n case NodeType$1.Comment:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: node.textContent || '',\r\n };\r\n case NodeType$1.CDATA:\r\n return {\r\n id,\r\n type: node.RRNodeType,\r\n textContent: '',\r\n };\r\n }\r\n}\n\nexport { BaseRRCDATASectionImpl, BaseRRCommentImpl, BaseRRDocumentImpl, BaseRRDocumentTypeImpl, BaseRRElementImpl, BaseRRMediaElementImpl, BaseRRNode, BaseRRTextImpl, ClassList, Mirror, NodeType, RRCDATASection, RRCanvasElement, RRComment, RRDocument, RRDocumentType, RRElement, RRIFrameElement, RRMediaElement, BaseRRNode as RRNode, RRStyleElement, RRText, buildFromDom, buildFromNode, createMirror, createOrGetNode, diff, getDefaultSN };\n","import record from './record/index.js';\nexport { default as record } from './record/index.js';\nimport '../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport '../../rrdom/es/rrdom.js';\nimport * as utils from './utils.js';\nexport { utils };\nexport { _mirror as mirror } from './utils.js';\nimport './../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst { addCustomEvent } = record;\r\nconst { freezePage } = record;\n\nexport { addCustomEvent, freezePage };\n","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i)\n ++l[cd[i] - 1];\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i)\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) >> 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p / 8) >> 0) + (p & 7 && 1); };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) >> 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [new u8(0), 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.floor(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e < s) {\n // write full block\n pos = wfblk(w, pos, dat.subarray(i, e));\n }\n else {\n // write final block\n w[i] = lst;\n pos = wfblk(w, pos, dat.subarray(i, s));\n }\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768\n var imod = i & 32767;\n // previous index with this value\n var pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst)\n pos = wfblk(w, pos, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 5552, l);\n for (; i < e; ++i)\n n += d[i], m += n;\n n %= 65521, m %= 65521;\n }\n a = n, b = m;\n },\n d: function () { return ((a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8)) + ((a & 255) << 23) * 2; }\n };\n};\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nfunction zlibSync(data, opts) {\n if (opts === void 0) { opts = {}; }\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nfunction unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nfunction strToU8(str, latin1) {\n var l = str.length;\n if (!latin1 && typeof TextEncoder != 'undefined')\n return new TextEncoder().encode(str);\n var ar = new u8(str.length + (str.length >>> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >>> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >>> 18)), w(128 | ((c >>> 12) & 63)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >>> 12)), w(128 | ((c >>> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nfunction strFromU8(dat, latin1) {\n var r = '';\n if (!latin1 && typeof TextDecoder != 'undefined')\n return new TextDecoder().decode(dat);\n for (var i = 0; i < dat.length;) {\n var c = dat[i++];\n if (c < 128 || latin1)\n r += String.fromCharCode(c);\n else if (c < 224)\n r += String.fromCharCode((c & 31) << 6 | (dat[i++] & 63));\n else if (c < 240)\n r += String.fromCharCode((c & 15) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63));\n else\n c = ((c & 15) << 18 | (dat[i++] & 63) << 12 | (dat[i++] & 63) << 6 | (dat[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n return r;\n}\n\nexport { strFromU8, strToU8, unzlibSync, zlibSync };\n","import { strFromU8, zlibSync, strToU8 } from './../../../../ext/fflate/esm/browser.js';\nimport { MARK } from './base.js';\n\nconst pack = (event) => {\r\n const _e = Object.assign(Object.assign({}, event), { v: MARK });\r\n return strFromU8(zlibSync(strToU8(JSON.stringify(_e))), true);\r\n};\n\nexport { pack };\n","import { strFromU8, unzlibSync, strToU8 } from './../../../../ext/fflate/esm/browser.js';\nimport { MARK } from './base.js';\n\nconst unpack = (raw) => {\r\n if (typeof raw !== 'string') {\r\n return raw;\r\n }\r\n try {\r\n const e = JSON.parse(raw);\r\n if (e.timestamp) {\r\n return e;\r\n }\r\n }\r\n catch (error) {\r\n }\r\n try {\r\n const e = JSON.parse(strFromU8(unzlibSync(strToU8(raw, true))));\r\n if (e.v === MARK) {\r\n return e;\r\n }\r\n throw new Error(`These events were packed with packer ${e.v} which is incompatible with current packer ${MARK}.`);\r\n }\r\n catch (error) {\r\n console.error(error);\r\n throw new Error('Unknown data format.');\r\n }\r\n};\n\nexport { unpack };\n","class StackFrame {\r\n constructor(obj) {\r\n this.fileName = obj.fileName || '';\r\n this.functionName = obj.functionName || '';\r\n this.lineNumber = obj.lineNumber;\r\n this.columnNumber = obj.columnNumber;\r\n }\r\n toString() {\r\n const lineNumber = this.lineNumber || '';\r\n const columnNumber = this.columnNumber || '';\r\n if (this.functionName)\r\n return `${this.functionName} (${this.fileName}:${lineNumber}:${columnNumber})`;\r\n return `${this.fileName}:${lineNumber}:${columnNumber}`;\r\n }\r\n}\r\nconst FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\r\nconst CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\r\nconst SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\r\nconst ErrorStackParser = {\r\n parse: function (error) {\r\n if (!error) {\r\n return [];\r\n }\r\n if (typeof error.stacktrace !== 'undefined' ||\r\n typeof error['opera#sourceloc'] !== 'undefined') {\r\n return this.parseOpera(error);\r\n }\r\n else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\r\n return this.parseV8OrIE(error);\r\n }\r\n else if (error.stack) {\r\n return this.parseFFOrSafari(error);\r\n }\r\n else {\r\n throw new Error('Cannot parse given Error object');\r\n }\r\n },\r\n extractLocation: function (urlLike) {\r\n if (urlLike.indexOf(':') === -1) {\r\n return [urlLike];\r\n }\r\n const regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\r\n const parts = regExp.exec(urlLike.replace(/[()]/g, ''));\r\n if (!parts)\r\n throw new Error(`Cannot parse given url: ${urlLike}`);\r\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\r\n },\r\n parseV8OrIE: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return !!line.match(CHROME_IE_STACK_REGEXP);\r\n }, this);\r\n return filtered.map(function (line) {\r\n if (line.indexOf('(eval ') > -1) {\r\n line = line\r\n .replace(/eval code/g, 'eval')\r\n .replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\r\n }\r\n let sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\r\n const location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\r\n sanitizedLine = location\r\n ? sanitizedLine.replace(location[0], '')\r\n : sanitizedLine;\r\n const tokens = sanitizedLine.split(/\\s+/).slice(1);\r\n const locationParts = this.extractLocation(location ? location[1] : tokens.pop());\r\n const functionName = tokens.join(' ') || undefined;\r\n const fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1\r\n ? undefined\r\n : locationParts[0];\r\n return new StackFrame({\r\n functionName,\r\n fileName,\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }, this);\r\n },\r\n parseFFOrSafari: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\r\n }, this);\r\n return filtered.map(function (line) {\r\n if (line.indexOf(' > eval') > -1) {\r\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\r\n }\r\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\r\n return new StackFrame({\r\n functionName: line,\r\n });\r\n }\r\n else {\r\n const functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\r\n const matches = line.match(functionNameRegex);\r\n const functionName = matches && matches[1] ? matches[1] : undefined;\r\n const locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\r\n return new StackFrame({\r\n functionName,\r\n fileName: locationParts[0],\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }\r\n }, this);\r\n },\r\n parseOpera: function (e) {\r\n if (!e.stacktrace ||\r\n (e.message.indexOf('\\n') > -1 &&\r\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\r\n return this.parseOpera9(e);\r\n }\r\n else if (!e.stack) {\r\n return this.parseOpera10(e);\r\n }\r\n else {\r\n return this.parseOpera11(e);\r\n }\r\n },\r\n parseOpera9: function (e) {\r\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\r\n const lines = e.message.split('\\n');\r\n const result = [];\r\n for (let i = 2, len = lines.length; i < len; i += 2) {\r\n const match = lineRE.exec(lines[i]);\r\n if (match) {\r\n result.push(new StackFrame({\r\n fileName: match[2],\r\n lineNumber: parseFloat(match[1]),\r\n }));\r\n }\r\n }\r\n return result;\r\n },\r\n parseOpera10: function (e) {\r\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\r\n const lines = e.stacktrace.split('\\n');\r\n const result = [];\r\n for (let i = 0, len = lines.length; i < len; i += 2) {\r\n const match = lineRE.exec(lines[i]);\r\n if (match) {\r\n result.push(new StackFrame({\r\n functionName: match[3] || undefined,\r\n fileName: match[2],\r\n lineNumber: parseFloat(match[1]),\r\n }));\r\n }\r\n }\r\n return result;\r\n },\r\n parseOpera11: function (error) {\r\n const filtered = error.stack.split('\\n').filter(function (line) {\r\n return (!!line.match(FIREFOX_SAFARI_STACK_REGEXP) &&\r\n !line.match(/^Error created at/));\r\n }, this);\r\n return filtered.map(function (line) {\r\n const tokens = line.split('@');\r\n const locationParts = this.extractLocation(tokens.pop());\r\n const functionCall = tokens.shift() || '';\r\n const functionName = functionCall\r\n .replace(/<anonymous function(: (\\w+))?>/, '$2')\r\n .replace(/\\([^)]*\\)/g, '') || undefined;\r\n return new StackFrame({\r\n functionName,\r\n fileName: locationParts[0],\r\n lineNumber: locationParts[1],\r\n columnNumber: locationParts[2],\r\n });\r\n }, this);\r\n },\r\n};\n\nexport { ErrorStackParser, StackFrame };\n","function pathToSelector(node) {\r\n if (!node || !node.outerHTML) {\r\n return '';\r\n }\r\n let path = '';\r\n while (node.parentElement) {\r\n let name = node.localName;\r\n if (!name) {\r\n break;\r\n }\r\n name = name.toLowerCase();\r\n const parent = node.parentElement;\r\n const domSiblings = [];\r\n if (parent.children && parent.children.length > 0) {\r\n for (let i = 0; i < parent.children.length; i++) {\r\n const sibling = parent.children[i];\r\n if (sibling.localName && sibling.localName.toLowerCase) {\r\n if (sibling.localName.toLowerCase() === name) {\r\n domSiblings.push(sibling);\r\n }\r\n }\r\n }\r\n }\r\n if (domSiblings.length > 1) {\r\n name += `:eq(${domSiblings.indexOf(node)})`;\r\n }\r\n path = name + (path ? '>' + path : '');\r\n node = parent;\r\n }\r\n return path;\r\n}\r\nfunction isObject(obj) {\r\n return Object.prototype.toString.call(obj) === '[object Object]';\r\n}\r\nfunction isObjTooDeep(obj, limit) {\r\n if (limit === 0) {\r\n return true;\r\n }\r\n const keys = Object.keys(obj);\r\n for (const key of keys) {\r\n if (isObject(obj[key]) &&\r\n isObjTooDeep(obj[key], limit - 1)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction stringify(obj, stringifyOptions) {\r\n const options = {\r\n numOfKeysLimit: 50,\r\n depthOfLimit: 4,\r\n };\r\n Object.assign(options, stringifyOptions);\r\n const stack = [];\r\n const keys = [];\r\n return JSON.stringify(obj, function (key, value) {\r\n if (stack.length > 0) {\r\n const thisPos = stack.indexOf(this);\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n if (~stack.indexOf(value)) {\r\n if (stack[0] === value) {\r\n value = '[Circular ~]';\r\n }\r\n else {\r\n value =\r\n '[Circular ~.' +\r\n keys.slice(0, stack.indexOf(value)).join('.') +\r\n ']';\r\n }\r\n }\r\n }\r\n else {\r\n stack.push(value);\r\n }\r\n if (value === null)\r\n return value;\r\n if (value === undefined)\r\n return 'undefined';\r\n if (shouldIgnore(value)) {\r\n return toString(value);\r\n }\r\n if (value instanceof Event) {\r\n const eventResult = {};\r\n for (const eventKey in value) {\r\n const eventValue = value[eventKey];\r\n if (Array.isArray(eventValue)) {\r\n eventResult[eventKey] = pathToSelector((eventValue.length ? eventValue[0] : null));\r\n }\r\n else {\r\n eventResult[eventKey] = eventValue;\r\n }\r\n }\r\n return eventResult;\r\n }\r\n else if (value instanceof Node) {\r\n if (value instanceof HTMLElement) {\r\n return value ? value.outerHTML : '';\r\n }\r\n return value.nodeName;\r\n }\r\n else if (value instanceof Error) {\r\n return value.stack\r\n ? value.stack + '\\nEnd of stack for Error object'\r\n : value.name + ': ' + value.message;\r\n }\r\n return value;\r\n });\r\n function shouldIgnore(_obj) {\r\n if (isObject(_obj) && Object.keys(_obj).length > options.numOfKeysLimit) {\r\n return true;\r\n }\r\n if (typeof _obj === 'function') {\r\n return true;\r\n }\r\n if (isObject(_obj) &&\r\n isObjTooDeep(_obj, options.depthOfLimit)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n function toString(_obj) {\r\n let str = _obj.toString();\r\n if (options.stringLengthLimit && str.length > options.stringLengthLimit) {\r\n str = `${str.slice(0, options.stringLengthLimit)}...`;\r\n }\r\n return str;\r\n }\r\n}\n\nexport { stringify };\n","import { patch } from '../../../utils.js';\nimport { ErrorStackParser } from './error-stack-parser.js';\nimport { stringify } from './stringify.js';\n\nconst defaultLogOptions = {\r\n level: [\r\n 'assert',\r\n 'clear',\r\n 'count',\r\n 'countReset',\r\n 'debug',\r\n 'dir',\r\n 'dirxml',\r\n 'error',\r\n 'group',\r\n 'groupCollapsed',\r\n 'groupEnd',\r\n 'info',\r\n 'log',\r\n 'table',\r\n 'time',\r\n 'timeEnd',\r\n 'timeLog',\r\n 'trace',\r\n 'warn',\r\n ],\r\n lengthThreshold: 1000,\r\n logger: 'console',\r\n};\r\nfunction initLogObserver(cb, win, options) {\r\n const logOptions = (options\r\n ? Object.assign({}, defaultLogOptions, options)\r\n : defaultLogOptions);\r\n const loggerType = logOptions.logger;\r\n if (!loggerType) {\r\n return () => {\r\n };\r\n }\r\n let logger;\r\n if (typeof loggerType === 'string') {\r\n logger = win[loggerType];\r\n }\r\n else {\r\n logger = loggerType;\r\n }\r\n let logCount = 0;\r\n const cancelHandlers = [];\r\n if (logOptions.level.includes('error')) {\r\n if (window) {\r\n const errorHandler = (event) => {\r\n const message = event.message, error = event.error;\r\n const trace = ErrorStackParser.parse(error).map((stackFrame) => stackFrame.toString());\r\n const payload = [stringify(message, logOptions.stringifyOptions)];\r\n cb({\r\n level: 'error',\r\n trace,\r\n payload,\r\n });\r\n };\r\n window.addEventListener('error', errorHandler);\r\n cancelHandlers.push(() => {\r\n if (window)\r\n window.removeEventListener('error', errorHandler);\r\n });\r\n }\r\n }\r\n for (const levelType of logOptions.level) {\r\n cancelHandlers.push(replace(logger, levelType));\r\n }\r\n return () => {\r\n cancelHandlers.forEach((h) => h());\r\n };\r\n function replace(_logger, level) {\r\n if (!_logger[level]) {\r\n return () => {\r\n };\r\n }\r\n return patch(_logger, level, (original) => {\r\n return (...args) => {\r\n original.apply(this, args);\r\n try {\r\n const trace = ErrorStackParser.parse(new Error())\r\n .map((stackFrame) => stackFrame.toString())\r\n .splice(1);\r\n const payload = args.map((s) => stringify(s, logOptions.stringifyOptions));\r\n logCount++;\r\n if (logCount < logOptions.lengthThreshold) {\r\n cb({\r\n level,\r\n trace,\r\n payload,\r\n });\r\n }\r\n else if (logCount === logOptions.lengthThreshold) {\r\n cb({\r\n level: 'warn',\r\n trace: [],\r\n payload: [\r\n stringify('The number of log records reached the threshold.'),\r\n ],\r\n });\r\n }\r\n }\r\n catch (error) {\r\n original('rrweb logger error:', error, ...args);\r\n }\r\n };\r\n });\r\n }\r\n}\r\nconst PLUGIN_NAME = 'rrweb/console@1';\r\nconst getRecordConsolePlugin = (options) => ({\r\n name: PLUGIN_NAME,\r\n observer: initLogObserver,\r\n options: options,\r\n});\n\nexport { PLUGIN_NAME, getRecordConsolePlugin };\n","import { PLUGIN_NAME } from '../record/index.js';\nimport { EventType, IncrementalSource } from '../../../../../types/dist/types.js';\n\nconst ORIGINAL_ATTRIBUTE_NAME = '__rrweb_original__';\r\nconst defaultLogConfig = {\r\n level: [\r\n 'assert',\r\n 'clear',\r\n 'count',\r\n 'countReset',\r\n 'debug',\r\n 'dir',\r\n 'dirxml',\r\n 'error',\r\n 'group',\r\n 'groupCollapsed',\r\n 'groupEnd',\r\n 'info',\r\n 'log',\r\n 'table',\r\n 'time',\r\n 'timeEnd',\r\n 'timeLog',\r\n 'trace',\r\n 'warn',\r\n ],\r\n replayLogger: undefined,\r\n};\r\nclass LogReplayPlugin {\r\n constructor(config) {\r\n this.config = Object.assign(defaultLogConfig, config);\r\n }\r\n getConsoleLogger() {\r\n const replayLogger = {};\r\n for (const level of this.config.level) {\r\n if (level === 'trace') {\r\n replayLogger[level] = (data) => {\r\n const logger = console.log[ORIGINAL_ATTRIBUTE_NAME]\r\n ? console.log[ORIGINAL_ATTRIBUTE_NAME]\r\n : console.log;\r\n logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));\r\n };\r\n }\r\n else {\r\n replayLogger[level] = (data) => {\r\n const logger = console[level][ORIGINAL_ATTRIBUTE_NAME]\r\n ? console[level][ORIGINAL_ATTRIBUTE_NAME]\r\n : console[level];\r\n logger(...data.payload.map((s) => JSON.parse(s)), this.formatMessage(data));\r\n };\r\n }\r\n }\r\n return replayLogger;\r\n }\r\n formatMessage(data) {\r\n if (data.trace.length === 0) {\r\n return '';\r\n }\r\n const stackPrefix = '\\n\\tat ';\r\n let result = stackPrefix;\r\n result += data.trace.join(stackPrefix);\r\n return result;\r\n }\r\n}\r\nconst getReplayConsolePlugin = (options) => {\r\n const replayLogger = (options === null || options === void 0 ? void 0 : options.replayLogger) || new LogReplayPlugin(options).getConsoleLogger();\r\n return {\r\n handler(event, _isSync, context) {\r\n let logData = null;\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.Log) {\r\n logData = event.data;\r\n }\r\n else if (event.type === EventType.Plugin &&\r\n event.data.plugin === PLUGIN_NAME) {\r\n logData = event.data.payload;\r\n }\r\n if (logData) {\r\n try {\r\n if (typeof replayLogger[logData.level] === 'function') {\r\n replayLogger[logData.level](logData);\r\n }\r\n }\r\n catch (error) {\r\n if (context.replayer.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n }\r\n },\r\n };\r\n};\n\nexport { getReplayConsolePlugin };\n","function mitt(n){return {all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e]);},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]));},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e);}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e);});}}}\n\nexport { mitt as default };\n","function polyfill(w = window, d = document) {\r\n if ('scrollBehavior' in d.documentElement.style &&\r\n w.__forceSmoothScrollPolyfill__ !== true) {\r\n return;\r\n }\r\n const Element = w.HTMLElement || w.Element;\r\n const SCROLL_TIME = 468;\r\n const original = {\r\n scroll: w.scroll || w.scrollTo,\r\n scrollBy: w.scrollBy,\r\n elementScroll: Element.prototype.scroll || scrollElement,\r\n scrollIntoView: Element.prototype.scrollIntoView,\r\n };\r\n const now = w.performance && w.performance.now\r\n ? w.performance.now.bind(w.performance)\r\n : Date.now;\r\n function isMicrosoftBrowser(userAgent) {\r\n const userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\r\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\r\n }\r\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\r\n function scrollElement(x, y) {\r\n this.scrollLeft = x;\r\n this.scrollTop = y;\r\n }\r\n function ease(k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n }\r\n function shouldBailOut(firstArg) {\r\n if (firstArg === null ||\r\n typeof firstArg !== 'object' ||\r\n firstArg.behavior === undefined ||\r\n firstArg.behavior === 'auto' ||\r\n firstArg.behavior === 'instant') {\r\n return true;\r\n }\r\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\r\n return false;\r\n }\r\n throw new TypeError('behavior member of ScrollOptions ' +\r\n firstArg.behavior +\r\n ' is not a valid value for enumeration ScrollBehavior.');\r\n }\r\n function hasScrollableSpace(el, axis) {\r\n if (axis === 'Y') {\r\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\r\n }\r\n if (axis === 'X') {\r\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\r\n }\r\n }\r\n function canOverflow(el, axis) {\r\n const overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\r\n return overflowValue === 'auto' || overflowValue === 'scroll';\r\n }\r\n function isScrollable(el) {\r\n const isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\r\n const isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\r\n return isScrollableY || isScrollableX;\r\n }\r\n function findScrollableParent(el) {\r\n while (el !== d.body && isScrollable(el) === false) {\r\n el = el.parentNode || el.host;\r\n }\r\n return el;\r\n }\r\n function step(context) {\r\n const time = now();\r\n let value;\r\n let currentX;\r\n let currentY;\r\n let elapsed = (time - context.startTime) / SCROLL_TIME;\r\n elapsed = elapsed > 1 ? 1 : elapsed;\r\n value = ease(elapsed);\r\n currentX = context.startX + (context.x - context.startX) * value;\r\n currentY = context.startY + (context.y - context.startY) * value;\r\n context.method.call(context.scrollable, currentX, currentY);\r\n if (currentX !== context.x || currentY !== context.y) {\r\n w.requestAnimationFrame(step.bind(w, context));\r\n }\r\n }\r\n function smoothScroll(el, x, y) {\r\n let scrollable;\r\n let startX;\r\n let startY;\r\n let method;\r\n const startTime = now();\r\n if (el === d.body) {\r\n scrollable = w;\r\n startX = w.scrollX || w.pageXOffset;\r\n startY = w.scrollY || w.pageYOffset;\r\n method = original.scroll;\r\n }\r\n else {\r\n scrollable = el;\r\n startX = el.scrollLeft;\r\n startY = el.scrollTop;\r\n method = scrollElement;\r\n }\r\n step({\r\n scrollable: scrollable,\r\n method: method,\r\n startTime: startTime,\r\n startX: startX,\r\n startY: startY,\r\n x: x,\r\n y: y,\r\n });\r\n }\r\n w.scroll = w.scrollTo = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.scroll.call(w, arguments[0].left !== undefined\r\n ? arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? arguments[0]\r\n : w.scrollX || w.pageXOffset, arguments[0].top !== undefined\r\n ? arguments[0].top\r\n : arguments[1] !== undefined\r\n ? arguments[1]\r\n : w.scrollY || w.pageYOffset);\r\n return;\r\n }\r\n smoothScroll.call(w, d.body, arguments[0].left !== undefined\r\n ? ~~arguments[0].left\r\n : w.scrollX || w.pageXOffset, arguments[0].top !== undefined\r\n ? ~~arguments[0].top\r\n : w.scrollY || w.pageYOffset);\r\n };\r\n w.scrollBy = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0])) {\r\n original.scrollBy.call(w, arguments[0].left !== undefined\r\n ? arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? arguments[0]\r\n : 0, arguments[0].top !== undefined\r\n ? arguments[0].top\r\n : arguments[1] !== undefined\r\n ? arguments[1]\r\n : 0);\r\n return;\r\n }\r\n smoothScroll.call(w, d.body, ~~arguments[0].left + (w.scrollX || w.pageXOffset), ~~arguments[0].top + (w.scrollY || w.pageYOffset));\r\n };\r\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\r\n throw new SyntaxError('Value could not be converted');\r\n }\r\n original.elementScroll.call(this, arguments[0].left !== undefined\r\n ? ~~arguments[0].left\r\n : typeof arguments[0] !== 'object'\r\n ? ~~arguments[0]\r\n : this.scrollLeft, arguments[0].top !== undefined\r\n ? ~~arguments[0].top\r\n : arguments[1] !== undefined\r\n ? ~~arguments[1]\r\n : this.scrollTop);\r\n return;\r\n }\r\n const left = arguments[0].left;\r\n const top = arguments[0].top;\r\n smoothScroll.call(this, this, typeof left === 'undefined' ? this.scrollLeft : ~~left, typeof top === 'undefined' ? this.scrollTop : ~~top);\r\n };\r\n Element.prototype.scrollBy = function () {\r\n if (arguments[0] === undefined) {\r\n return;\r\n }\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.elementScroll.call(this, arguments[0].left !== undefined\r\n ? ~~arguments[0].left + this.scrollLeft\r\n : ~~arguments[0] + this.scrollLeft, arguments[0].top !== undefined\r\n ? ~~arguments[0].top + this.scrollTop\r\n : ~~arguments[1] + this.scrollTop);\r\n return;\r\n }\r\n this.scroll({\r\n left: ~~arguments[0].left + this.scrollLeft,\r\n top: ~~arguments[0].top + this.scrollTop,\r\n behavior: arguments[0].behavior,\r\n });\r\n };\r\n Element.prototype.scrollIntoView = function () {\r\n if (shouldBailOut(arguments[0]) === true) {\r\n original.scrollIntoView.call(this, arguments[0] === undefined ? true : arguments[0]);\r\n return;\r\n }\r\n const scrollableParent = findScrollableParent(this);\r\n const parentRects = scrollableParent.getBoundingClientRect();\r\n const clientRects = this.getBoundingClientRect();\r\n if (scrollableParent !== d.body) {\r\n smoothScroll.call(this, scrollableParent, scrollableParent.scrollLeft + clientRects.left - parentRects.left, scrollableParent.scrollTop + clientRects.top - parentRects.top);\r\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\r\n w.scrollBy({\r\n left: parentRects.left,\r\n top: parentRects.top,\r\n behavior: 'smooth',\r\n });\r\n }\r\n }\r\n else {\r\n w.scrollBy({\r\n left: clientRects.left,\r\n top: clientRects.top,\r\n behavior: 'smooth',\r\n });\r\n }\r\n };\r\n}\n\nexport { polyfill };\n","import { EventType, IncrementalSource } from '../../../types/dist/types.js';\n\nclass Timer {\r\n constructor(actions = [], config) {\r\n this.timeOffset = 0;\r\n this.raf = null;\r\n this.actions = actions;\r\n this.speed = config.speed;\r\n this.liveMode = config.liveMode;\r\n }\r\n addAction(action) {\r\n if (!this.actions.length ||\r\n this.actions[this.actions.length - 1].delay <= action.delay) {\r\n this.actions.push(action);\r\n return;\r\n }\r\n const index = this.findActionIndex(action);\r\n this.actions.splice(index, 0, action);\r\n }\r\n start() {\r\n this.timeOffset = 0;\r\n let lastTimestamp = performance.now();\r\n const check = () => {\r\n const time = performance.now();\r\n this.timeOffset += (time - lastTimestamp) * this.speed;\r\n lastTimestamp = time;\r\n while (this.actions.length) {\r\n const action = this.actions[0];\r\n if (this.timeOffset >= action.delay) {\r\n this.actions.shift();\r\n action.doAction();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (this.actions.length > 0 || this.liveMode) {\r\n this.raf = requestAnimationFrame(check);\r\n }\r\n };\r\n this.raf = requestAnimationFrame(check);\r\n }\r\n clear() {\r\n if (this.raf) {\r\n cancelAnimationFrame(this.raf);\r\n this.raf = null;\r\n }\r\n this.actions.length = 0;\r\n }\r\n setSpeed(speed) {\r\n this.speed = speed;\r\n }\r\n toggleLiveMode(mode) {\r\n this.liveMode = mode;\r\n }\r\n isActive() {\r\n return this.raf !== null;\r\n }\r\n findActionIndex(action) {\r\n let start = 0;\r\n let end = this.actions.length - 1;\r\n while (start <= end) {\r\n const mid = Math.floor((start + end) / 2);\r\n if (this.actions[mid].delay < action.delay) {\r\n start = mid + 1;\r\n }\r\n else if (this.actions[mid].delay > action.delay) {\r\n end = mid - 1;\r\n }\r\n else {\r\n return mid + 1;\r\n }\r\n }\r\n return start;\r\n }\r\n}\r\nfunction addDelay(event, baselineTime) {\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.MouseMove &&\r\n event.data.positions &&\r\n event.data.positions.length) {\r\n const firstOffset = event.data.positions[0].timeOffset;\r\n const firstTimestamp = event.timestamp + firstOffset;\r\n event.delay = firstTimestamp - baselineTime;\r\n return firstTimestamp - baselineTime;\r\n }\r\n event.delay = event.timestamp - baselineTime;\r\n return event.delay;\r\n}\n\nexport { Timer, addDelay };\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value);}catch(t){o={error:t};}finally{try{r&&!r.done&&(e=i.return)&&e.call(i);}finally{if(o)throw o.error}}return a}var n;!function(t){t[t.NotStarted=0]=\"NotStarted\",t[t.Running=1]=\"Running\",t[t.Stopped=2]=\"Stopped\";}(n||(n={}));var e={type:\"xstate.init\"};function r(t){return void 0===t?[]:[].concat(t)}function o(t){return {type:\"xstate.assign\",assignment:t}}function i(t,n){return \"string\"==typeof(t=\"string\"==typeof t&&n&&n[t]?n[t]:t)?{type:t}:\"function\"==typeof t?{type:t.name,exec:t}:t}function a(t){return function(n){return t===n}}function u(t){return \"string\"==typeof t?{type:t}:t}function c(t,n){return {value:t,context:n,actions:[],changed:!1,matches:a(t)}}function f(t,n,e){var r=n,o=!1;return [t.filter((function(t){if(\"xstate.assign\"===t.type){o=!0;var n=Object.assign({},r);return \"function\"==typeof t.assignment?n=t.assignment(r,e):Object.keys(t.assignment).forEach((function(o){n[o]=\"function\"==typeof t.assignment[o]?t.assignment[o](r,e):t.assignment[o];})),r=n,!1}return !0})),r,o]}function s(n,o){void 0===o&&(o={});var s=t(f(r(n.states[n.initial].entry).map((function(t){return i(t,o.actions)})),n.context,e),2),l=s[0],v=s[1],y={config:n,_options:o,initialState:{value:n.initial,actions:l,context:v,matches:a(n.initial)},transition:function(e,o){var s,l,v=\"string\"==typeof e?{value:e,context:n.context}:e,p=v.value,g=v.context,d=u(o),x=n.states[p];if(x.on){var m=r(x.on[d.type]);try{for(var h=function(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return {next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}(m),b=h.next();!b.done;b=h.next()){var S=b.value;if(void 0===S)return c(p,g);var w=\"string\"==typeof S?{target:S}:S,j=w.target,E=w.actions,R=void 0===E?[]:E,N=w.cond,O=void 0===N?function(){return !0}:N,_=void 0===j,k=null!=j?j:p,T=n.states[k];if(O(g,d)){var q=t(f((_?r(R):[].concat(x.exit,R,T.entry).filter((function(t){return t}))).map((function(t){return i(t,y._options.actions)})),g,d),3),z=q[0],A=q[1],B=q[2],C=null!=j?j:p;return {value:C,context:A,actions:z,changed:j!==p||z.length>0||B,matches:a(C)}}}}catch(t){s={error:t};}finally{try{b&&!b.done&&(l=h.return)&&l.call(h);}finally{if(s)throw s.error}}}return c(p,g)}};return y}var l=function(t,n){return t.actions.forEach((function(e){var r=e.exec;return r&&r(t.context,n)}))};function v(t){var r=t.initialState,o=n.NotStarted,i=new Set,c={_machine:t,send:function(e){o===n.Running&&(r=t.transition(r,e),l(r,u(e)),i.forEach((function(t){return t(r)})));},subscribe:function(t){return i.add(t),t(r),{unsubscribe:function(){return i.delete(t)}}},start:function(i){if(i){var u=\"object\"==typeof i?i:{context:t.config.context,value:i};r={value:u.value,actions:[],context:u.context,matches:a(u.value)};}return o=n.Running,l(r,e),c},stop:function(){return o=n.Stopped,i.clear(),c},get state(){return r},get status(){return o}};return c}\n\nexport { n as InterpreterStatus, o as assign, s as createMachine, v as interpret };\n","import { interpret as v, createMachine as s, assign as o } from './../../../../ext/@xstate/fsm/es/index.js';\nimport { EventType, IncrementalSource, ReplayerEvents } from '../../../types/dist/types.js';\nimport { addDelay } from './timer.js';\n\nfunction discardPriorSnapshots(events, baselineTime) {\r\n for (let idx = events.length - 1; idx >= 0; idx--) {\r\n const event = events[idx];\r\n if (event.type === EventType.Meta) {\r\n if (event.timestamp <= baselineTime) {\r\n return events.slice(idx);\r\n }\r\n }\r\n }\r\n return events;\r\n}\r\nfunction createPlayerService(context, { getCastFn, applyEventsSynchronously, emitter }) {\r\n const playerMachine = s({\r\n id: 'player',\r\n context,\r\n initial: 'paused',\r\n states: {\r\n playing: {\r\n on: {\r\n PAUSE: {\r\n target: 'paused',\r\n actions: ['pause'],\r\n },\r\n CAST_EVENT: {\r\n target: 'playing',\r\n actions: 'castEvent',\r\n },\r\n END: {\r\n target: 'paused',\r\n actions: ['resetLastPlayedEvent', 'pause'],\r\n },\r\n ADD_EVENT: {\r\n target: 'playing',\r\n actions: ['addEvent'],\r\n },\r\n },\r\n },\r\n paused: {\r\n on: {\r\n PLAY: {\r\n target: 'playing',\r\n actions: ['recordTimeOffset', 'play'],\r\n },\r\n CAST_EVENT: {\r\n target: 'paused',\r\n actions: 'castEvent',\r\n },\r\n TO_LIVE: {\r\n target: 'live',\r\n actions: ['startLive'],\r\n },\r\n ADD_EVENT: {\r\n target: 'paused',\r\n actions: ['addEvent'],\r\n },\r\n },\r\n },\r\n live: {\r\n on: {\r\n ADD_EVENT: {\r\n target: 'live',\r\n actions: ['addEvent'],\r\n },\r\n CAST_EVENT: {\r\n target: 'live',\r\n actions: ['castEvent'],\r\n },\r\n },\r\n },\r\n },\r\n }, {\r\n actions: {\r\n castEvent: o({\r\n lastPlayedEvent: (ctx, event) => {\r\n if (event.type === 'CAST_EVENT') {\r\n return event.payload.event;\r\n }\r\n return ctx.lastPlayedEvent;\r\n },\r\n }),\r\n recordTimeOffset: o((ctx, event) => {\r\n let timeOffset = ctx.timeOffset;\r\n if ('payload' in event && 'timeOffset' in event.payload) {\r\n timeOffset = event.payload.timeOffset;\r\n }\r\n return Object.assign(Object.assign({}, ctx), { timeOffset, baselineTime: ctx.events[0].timestamp + timeOffset });\r\n }),\r\n play(ctx) {\r\n var _a;\r\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\r\n timer.clear();\r\n for (const event of events) {\r\n addDelay(event, baselineTime);\r\n }\r\n const neededEvents = discardPriorSnapshots(events, baselineTime);\r\n let lastPlayedTimestamp = lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.timestamp;\r\n if ((lastPlayedEvent === null || lastPlayedEvent === void 0 ? void 0 : lastPlayedEvent.type) === EventType.IncrementalSnapshot &&\r\n lastPlayedEvent.data.source === IncrementalSource.MouseMove) {\r\n lastPlayedTimestamp =\r\n lastPlayedEvent.timestamp +\r\n ((_a = lastPlayedEvent.data.positions[0]) === null || _a === void 0 ? void 0 : _a.timeOffset);\r\n }\r\n if (baselineTime < (lastPlayedTimestamp || 0)) {\r\n emitter.emit(ReplayerEvents.PlayBack);\r\n }\r\n const syncEvents = new Array();\r\n for (const event of neededEvents) {\r\n if (lastPlayedTimestamp &&\r\n lastPlayedTimestamp < baselineTime &&\r\n (event.timestamp <= lastPlayedTimestamp ||\r\n event === lastPlayedEvent)) {\r\n continue;\r\n }\r\n if (event.timestamp < baselineTime) {\r\n syncEvents.push(event);\r\n }\r\n else {\r\n const castFn = getCastFn(event, false);\r\n timer.addAction({\r\n doAction: () => {\r\n castFn();\r\n },\r\n delay: event.delay,\r\n });\r\n }\r\n }\r\n applyEventsSynchronously(syncEvents);\r\n emitter.emit(ReplayerEvents.Flush);\r\n timer.start();\r\n },\r\n pause(ctx) {\r\n ctx.timer.clear();\r\n },\r\n resetLastPlayedEvent: o((ctx) => {\r\n return Object.assign(Object.assign({}, ctx), { lastPlayedEvent: null });\r\n }),\r\n startLive: o({\r\n baselineTime: (ctx, event) => {\r\n ctx.timer.toggleLiveMode(true);\r\n ctx.timer.start();\r\n if (event.type === 'TO_LIVE' && event.payload.baselineTime) {\r\n return event.payload.baselineTime;\r\n }\r\n return Date.now();\r\n },\r\n }),\r\n addEvent: o((ctx, machineEvent) => {\r\n const { baselineTime, timer, events } = ctx;\r\n if (machineEvent.type === 'ADD_EVENT') {\r\n const { event } = machineEvent.payload;\r\n addDelay(event, baselineTime);\r\n let end = events.length - 1;\r\n if (!events[end] || events[end].timestamp <= event.timestamp) {\r\n events.push(event);\r\n }\r\n else {\r\n let insertionIndex = -1;\r\n let start = 0;\r\n while (start <= end) {\r\n const mid = Math.floor((start + end) / 2);\r\n if (events[mid].timestamp <= event.timestamp) {\r\n start = mid + 1;\r\n }\r\n else {\r\n end = mid - 1;\r\n }\r\n }\r\n if (insertionIndex === -1) {\r\n insertionIndex = start;\r\n }\r\n events.splice(insertionIndex, 0, event);\r\n }\r\n const isSync = event.timestamp < baselineTime;\r\n const castFn = getCastFn(event, isSync);\r\n if (isSync) {\r\n castFn();\r\n }\r\n else if (timer.isActive()) {\r\n timer.addAction({\r\n doAction: () => {\r\n castFn();\r\n },\r\n delay: event.delay,\r\n });\r\n }\r\n }\r\n return Object.assign(Object.assign({}, ctx), { events });\r\n }),\r\n },\r\n });\r\n return v(playerMachine);\r\n}\r\nfunction createSpeedService(context) {\r\n const speedMachine = s({\r\n id: 'speed',\r\n context,\r\n initial: 'normal',\r\n states: {\r\n normal: {\r\n on: {\r\n FAST_FORWARD: {\r\n target: 'skipping',\r\n actions: ['recordSpeed', 'setSpeed'],\r\n },\r\n SET_SPEED: {\r\n target: 'normal',\r\n actions: ['setSpeed'],\r\n },\r\n },\r\n },\r\n skipping: {\r\n on: {\r\n BACK_TO_NORMAL: {\r\n target: 'normal',\r\n actions: ['restoreSpeed'],\r\n },\r\n SET_SPEED: {\r\n target: 'normal',\r\n actions: ['setSpeed'],\r\n },\r\n },\r\n },\r\n },\r\n }, {\r\n actions: {\r\n setSpeed: (ctx, event) => {\r\n if ('payload' in event) {\r\n ctx.timer.setSpeed(event.payload.speed);\r\n }\r\n },\r\n recordSpeed: o({\r\n normalSpeed: (ctx) => ctx.timer.speed,\r\n }),\r\n restoreSpeed: (ctx) => {\r\n ctx.timer.setSpeed(ctx.normalSpeed);\r\n },\r\n },\r\n });\r\n return v(speedMachine);\r\n}\n\nexport { createPlayerService, createSpeedService, discardPriorSnapshots };\n","const rules = (blockClass) => [\r\n `.${blockClass} { background: currentColor }`,\r\n 'noscript { display: none !important; }',\r\n];\n\nexport { rules as default };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { decode } from './../../../../../ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js';\n\nconst webGLVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = webGLVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n webGLVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nfunction deserializeArg(imageMap, ctx, preload) {\r\n return (arg) => __awaiter(this, void 0, void 0, function* () {\r\n if (arg && typeof arg === 'object' && 'rr_type' in arg) {\r\n if (preload)\r\n preload.isUnchanged = false;\r\n if (arg.rr_type === 'ImageBitmap' && 'args' in arg) {\r\n const args = yield deserializeArg(imageMap, ctx, preload)(arg.args);\r\n return yield createImageBitmap.apply(null, args);\r\n }\r\n else if ('index' in arg) {\r\n if (preload || ctx === null)\r\n return arg;\r\n const { rr_type: name, index } = arg;\r\n return variableListFor(ctx, name)[index];\r\n }\r\n else if ('args' in arg) {\r\n const { rr_type: name, args } = arg;\r\n const ctor = window[name];\r\n return new ctor(...(yield Promise.all(args.map(deserializeArg(imageMap, ctx, preload)))));\r\n }\r\n else if ('base64' in arg) {\r\n return decode(arg.base64);\r\n }\r\n else if ('src' in arg) {\r\n const image = imageMap.get(arg.src);\r\n if (image) {\r\n return image;\r\n }\r\n else {\r\n const image = new Image();\r\n image.src = arg.src;\r\n imageMap.set(arg.src, image);\r\n return image;\r\n }\r\n }\r\n else if ('data' in arg && arg.rr_type === 'Blob') {\r\n const blobContents = yield Promise.all(arg.data.map(deserializeArg(imageMap, ctx, preload)));\r\n const blob = new Blob(blobContents, {\r\n type: arg.type,\r\n });\r\n return blob;\r\n }\r\n }\r\n else if (Array.isArray(arg)) {\r\n const result = yield Promise.all(arg.map(deserializeArg(imageMap, ctx, preload)));\r\n return result;\r\n }\r\n return arg;\r\n });\r\n}\n\nexport { deserializeArg, variableListFor };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../../types/dist/types.js';\nimport { deserializeArg, variableListFor } from './deserialize-args.js';\n\nfunction getContext(target, type) {\r\n try {\r\n if (type === CanvasContext.WebGL) {\r\n return (target.getContext('webgl') || target.getContext('experimental-webgl'));\r\n }\r\n return target.getContext('webgl2');\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n}\r\nconst WebGLVariableConstructorsNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n];\r\nfunction saveToWebGLVarMap(ctx, result) {\r\n if (!(result === null || result === void 0 ? void 0 : result.constructor))\r\n return;\r\n const { name } = result.constructor;\r\n if (!WebGLVariableConstructorsNames.includes(name))\r\n return;\r\n const variables = variableListFor(ctx, name);\r\n if (!variables.includes(result))\r\n variables.push(result);\r\n}\r\nfunction webglMutation({ mutation, target, type, imageMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const ctx = getContext(target, type);\r\n if (!ctx)\r\n return;\r\n if (mutation.setter) {\r\n ctx[mutation.property] = mutation.args[0];\r\n return;\r\n }\r\n const original = ctx[mutation.property];\r\n const args = yield Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\r\n const result = original.apply(ctx, args);\r\n saveToWebGLVarMap(ctx, result);\r\n const debugMode = false;\r\n if (debugMode) ;\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nexport { webglMutation as default };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { deserializeArg } from './deserialize-args.js';\n\nfunction canvasMutation({ event, mutation, target, imageMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const ctx = target.getContext('2d');\r\n if (mutation.setter) {\r\n ctx[mutation.property] =\r\n mutation.args[0];\r\n return;\r\n }\r\n const original = ctx[mutation.property];\r\n if (mutation.property === 'drawImage' &&\r\n typeof mutation.args[0] === 'string') {\r\n imageMap.get(event);\r\n original.apply(ctx, mutation.args);\r\n }\r\n else {\r\n const args = yield Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\r\n original.apply(ctx, args);\r\n }\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nexport { canvasMutation as default };\n","import { __awaiter } from './../../../../../ext/tslib/tslib.es6.js';\nimport { CanvasContext } from '../../../../types/dist/types.js';\nimport webglMutation from './webgl.js';\nimport canvasMutation$1 from './2d.js';\n\nfunction canvasMutation({ event, mutation, target, imageMap, canvasEventMap, errorHandler, }) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n const precomputedMutation = canvasEventMap.get(event) || mutation;\r\n const commands = 'commands' in precomputedMutation\r\n ? precomputedMutation.commands\r\n : [precomputedMutation];\r\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\r\n for (let i = 0; i < commands.length; i++) {\r\n const command = commands[i];\r\n yield webglMutation({\r\n mutation: command,\r\n type: mutation.type,\r\n target,\r\n imageMap,\r\n errorHandler,\r\n });\r\n }\r\n return;\r\n }\r\n for (let i = 0; i < commands.length; i++) {\r\n const command = commands[i];\r\n yield canvasMutation$1({\r\n event,\r\n mutation: command,\r\n target,\r\n imageMap,\r\n errorHandler,\r\n });\r\n }\r\n }\r\n catch (error) {\r\n errorHandler(mutation, error);\r\n }\r\n });\r\n}\n\nexport { canvasMutation as default };\n","import { __awaiter } from './../../../../ext/tslib/tslib.es6.js';\nimport { createCache, createMirror, rebuild, buildNodeWithSN, NodeType } from '../../../rrweb-snapshot/es/rrweb-snapshot.js';\nimport { RRDocument, diff, createOrGetNode, getDefaultSN, buildFromDom, buildFromNode } from '../../../rrdom/es/rrdom.js';\nimport * as mitt$1 from './../../../../ext/mitt/dist/mitt.mjs.js';\nimport mitt$2 from './../../../../ext/mitt/dist/mitt.mjs.js';\nimport { polyfill } from './smoothscroll.js';\nimport { Timer } from './timer.js';\nimport { createPlayerService, createSpeedService } from './machine.js';\nimport { EventType, ReplayerEvents, IncrementalSource, MouseInteractions } from '../../../types/dist/types.js';\nimport { StyleSheetMirror, polyfill as polyfill$1, isSerializedIframe, hasShadowRoot, queueToResolveTrees, iterateResolveTree, uniqueTextMutations, getPositionsAndIndex, getNestedRule, getBaseDimension } from '../utils.js';\nimport rules from './styles/inject-style.js';\nimport canvasMutation from './canvas/index.js';\nimport { deserializeArg } from './canvas/deserialize-args.js';\n\nconst SKIP_TIME_THRESHOLD = 10 * 1000;\r\nconst SKIP_TIME_INTERVAL = 5 * 1000;\r\nconst mitt = mitt$2 || mitt$1;\r\nconst REPLAY_CONSOLE_PREFIX = '[replayer]';\r\nconst defaultMouseTailConfig = {\r\n duration: 500,\r\n lineCap: 'round',\r\n lineWidth: 3,\r\n strokeStyle: 'red',\r\n};\r\nfunction indicatesTouchDevice(e) {\r\n return (e.type == EventType.IncrementalSnapshot &&\r\n (e.data.source == IncrementalSource.TouchMove ||\r\n (e.data.source == IncrementalSource.MouseInteraction &&\r\n e.data.type == MouseInteractions.TouchStart)));\r\n}\r\nclass Replayer {\r\n constructor(events, config) {\r\n this.usingVirtualDom = false;\r\n this.virtualDom = new RRDocument();\r\n this.mouseTail = null;\r\n this.tailPositions = [];\r\n this.emitter = mitt();\r\n this.legacy_missingNodeRetryMap = {};\r\n this.cache = createCache();\r\n this.imageMap = new Map();\r\n this.canvasEventMap = new Map();\r\n this.mirror = createMirror();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.firstFullSnapshot = null;\r\n this.newDocumentQueue = [];\r\n this.mousePos = null;\r\n this.touchActive = null;\r\n this.lastSelectionData = null;\r\n this.constructedStyleMutations = [];\r\n this.adoptedStyleSheets = [];\r\n this.handleResize = (dimension) => {\r\n this.iframe.style.display = 'inherit';\r\n for (const el of [this.mouseTail, this.iframe]) {\r\n if (!el) {\r\n continue;\r\n }\r\n el.setAttribute('width', String(dimension.width));\r\n el.setAttribute('height', String(dimension.height));\r\n }\r\n };\r\n this.applyEventsSynchronously = (events) => {\r\n for (const event of events) {\r\n switch (event.type) {\r\n case EventType.DomContentLoaded:\r\n case EventType.Load:\r\n case EventType.Custom:\r\n continue;\r\n case EventType.FullSnapshot:\r\n case EventType.Meta:\r\n case EventType.Plugin:\r\n case EventType.IncrementalSnapshot:\r\n break;\r\n }\r\n const castFn = this.getCastFn(event, true);\r\n castFn();\r\n }\r\n if (this.touchActive === true) {\r\n this.mouse.classList.add('touch-active');\r\n }\r\n else if (this.touchActive === false) {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n this.touchActive = null;\r\n };\r\n this.getCastFn = (event, isSync = false) => {\r\n let castFn;\r\n switch (event.type) {\r\n case EventType.DomContentLoaded:\r\n case EventType.Load:\r\n break;\r\n case EventType.Custom:\r\n castFn = () => {\r\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\r\n };\r\n break;\r\n case EventType.Meta:\r\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\r\n width: event.data.width,\r\n height: event.data.height,\r\n });\r\n break;\r\n case EventType.FullSnapshot:\r\n castFn = () => {\r\n var _a;\r\n if (this.firstFullSnapshot) {\r\n if (this.firstFullSnapshot === event) {\r\n this.firstFullSnapshot = true;\r\n return;\r\n }\r\n }\r\n else {\r\n this.firstFullSnapshot = true;\r\n }\r\n this.rebuildFullSnapshot(event, isSync);\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo(event.data.initialOffset);\r\n this.styleMirror.reset();\r\n };\r\n break;\r\n case EventType.IncrementalSnapshot:\r\n castFn = () => {\r\n this.applyIncremental(event, isSync);\r\n if (isSync) {\r\n return;\r\n }\r\n if (event === this.nextUserInteractionEvent) {\r\n this.nextUserInteractionEvent = null;\r\n this.backToNormal();\r\n }\r\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\r\n for (const _event of this.service.state.context.events) {\r\n if (_event.timestamp <= event.timestamp) {\r\n continue;\r\n }\r\n if (this.isUserInteraction(_event)) {\r\n if (_event.delay - event.delay >\r\n SKIP_TIME_THRESHOLD *\r\n this.speedService.state.context.timer.speed) {\r\n this.nextUserInteractionEvent = _event;\r\n }\r\n break;\r\n }\r\n }\r\n if (this.nextUserInteractionEvent) {\r\n const skipTime = this.nextUserInteractionEvent.delay - event.delay;\r\n const payload = {\r\n speed: Math.min(Math.round(skipTime / SKIP_TIME_INTERVAL), this.config.maxSpeed),\r\n };\r\n this.speedService.send({ type: 'FAST_FORWARD', payload });\r\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\r\n }\r\n }\r\n };\r\n break;\r\n }\r\n const wrappedCastFn = () => {\r\n if (castFn) {\r\n castFn();\r\n }\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.handler)\r\n plugin.handler(event, isSync, { replayer: this });\r\n }\r\n this.service.send({ type: 'CAST_EVENT', payload: { event } });\r\n const last_index = this.service.state.context.events.length - 1;\r\n if (event === this.service.state.context.events[last_index]) {\r\n const finish = () => {\r\n if (last_index < this.service.state.context.events.length - 1) {\r\n return;\r\n }\r\n this.backToNormal();\r\n this.service.send('END');\r\n this.emitter.emit(ReplayerEvents.Finish);\r\n };\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.MouseMove &&\r\n event.data.positions.length) {\r\n setTimeout(() => {\r\n finish();\r\n }, Math.max(0, -event.data.positions[0].timeOffset + 50));\r\n }\r\n else {\r\n finish();\r\n }\r\n }\r\n this.emitter.emit(ReplayerEvents.EventCast, event);\r\n };\r\n return wrappedCastFn;\r\n };\r\n if (!(config === null || config === void 0 ? void 0 : config.liveMode) && events.length < 2) {\r\n throw new Error('Replayer need at least 2 events.');\r\n }\r\n const defaultConfig = {\r\n speed: 1,\r\n maxSpeed: 360,\r\n root: document.body,\r\n loadTimeout: 0,\r\n skipInactive: false,\r\n showWarning: true,\r\n showDebug: false,\r\n blockClass: 'rr-block',\r\n liveMode: false,\r\n insertStyleRules: [],\r\n triggerFocus: true,\r\n UNSAFE_replayCanvas: false,\r\n pauseAnimation: true,\r\n mouseTail: defaultMouseTailConfig,\r\n useVirtualDom: true,\r\n };\r\n this.config = Object.assign({}, defaultConfig, config);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.getCastFn = this.getCastFn.bind(this);\r\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\r\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\r\n this.setupDom();\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({ nodeMirror: this.mirror });\r\n }\r\n this.emitter.on(ReplayerEvents.Flush, () => {\r\n if (this.usingVirtualDom) {\r\n const replayerHandler = {\r\n mirror: this.mirror,\r\n applyCanvas: (canvasEvent, canvasMutationData, target) => {\r\n void canvasMutation({\r\n event: canvasEvent,\r\n mutation: canvasMutationData,\r\n target,\r\n imageMap: this.imageMap,\r\n canvasEventMap: this.canvasEventMap,\r\n errorHandler: this.warnCanvasMutationFailed.bind(this),\r\n });\r\n },\r\n applyInput: this.applyInput.bind(this),\r\n applyScroll: this.applyScroll.bind(this),\r\n applyStyleSheetMutation: (data, styleSheet) => {\r\n if (data.source === IncrementalSource.StyleSheetRule)\r\n this.applyStyleSheetRule(data, styleSheet);\r\n else if (data.source === IncrementalSource.StyleDeclaration)\r\n this.applyStyleDeclaration(data, styleSheet);\r\n },\r\n };\r\n this.iframe.contentDocument &&\r\n diff(this.iframe.contentDocument, this.virtualDom, replayerHandler, this.virtualDom.mirror);\r\n this.virtualDom.destroyTree();\r\n this.usingVirtualDom = false;\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n for (const key in this.legacy_missingNodeRetryMap) {\r\n try {\r\n const value = this.legacy_missingNodeRetryMap[key];\r\n const realNode = createOrGetNode(value.node, this.mirror, this.virtualDom.mirror);\r\n diff(realNode, value.node, replayerHandler, this.virtualDom.mirror);\r\n value.node = realNode;\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n }\r\n }\r\n this.constructedStyleMutations.forEach((data) => {\r\n this.applyStyleSheetMutation(data);\r\n });\r\n this.constructedStyleMutations = [];\r\n this.adoptedStyleSheets.forEach((data) => {\r\n this.applyAdoptedStyleSheet(data);\r\n });\r\n this.adoptedStyleSheets = [];\r\n }\r\n if (this.mousePos) {\r\n this.moveAndHover(this.mousePos.x, this.mousePos.y, this.mousePos.id, true, this.mousePos.debugData);\r\n this.mousePos = null;\r\n }\r\n if (this.lastSelectionData) {\r\n this.applySelection(this.lastSelectionData);\r\n this.lastSelectionData = null;\r\n }\r\n });\r\n this.emitter.on(ReplayerEvents.PlayBack, () => {\r\n this.firstFullSnapshot = null;\r\n this.mirror.reset();\r\n this.styleMirror.reset();\r\n });\r\n const timer = new Timer([], {\r\n speed: this.config.speed,\r\n liveMode: this.config.liveMode,\r\n });\r\n this.service = createPlayerService({\r\n events: events\r\n .map((e) => {\r\n if (config && config.unpackFn) {\r\n return config.unpackFn(e);\r\n }\r\n return e;\r\n })\r\n .sort((a1, a2) => a1.timestamp - a2.timestamp),\r\n timer,\r\n timeOffset: 0,\r\n baselineTime: 0,\r\n lastPlayedEvent: null,\r\n }, {\r\n getCastFn: this.getCastFn,\r\n applyEventsSynchronously: this.applyEventsSynchronously,\r\n emitter: this.emitter,\r\n });\r\n this.service.start();\r\n this.service.subscribe((state) => {\r\n this.emitter.emit(ReplayerEvents.StateChange, {\r\n player: state,\r\n });\r\n });\r\n this.speedService = createSpeedService({\r\n normalSpeed: -1,\r\n timer,\r\n });\r\n this.speedService.start();\r\n this.speedService.subscribe((state) => {\r\n this.emitter.emit(ReplayerEvents.StateChange, {\r\n speed: state,\r\n });\r\n });\r\n const firstMeta = this.service.state.context.events.find((e) => e.type === EventType.Meta);\r\n const firstFullsnapshot = this.service.state.context.events.find((e) => e.type === EventType.FullSnapshot);\r\n if (firstMeta) {\r\n const { width, height } = firstMeta.data;\r\n setTimeout(() => {\r\n this.emitter.emit(ReplayerEvents.Resize, {\r\n width,\r\n height,\r\n });\r\n }, 0);\r\n }\r\n if (firstFullsnapshot) {\r\n setTimeout(() => {\r\n var _a;\r\n if (this.firstFullSnapshot) {\r\n return;\r\n }\r\n this.firstFullSnapshot = firstFullsnapshot;\r\n this.rebuildFullSnapshot(firstFullsnapshot);\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo(firstFullsnapshot.data.initialOffset);\r\n }, 1);\r\n }\r\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\r\n this.mouse.classList.add('touch-device');\r\n }\r\n }\r\n get timer() {\r\n return this.service.state.context.timer;\r\n }\r\n on(event, handler) {\r\n this.emitter.on(event, handler);\r\n return this;\r\n }\r\n off(event, handler) {\r\n this.emitter.off(event, handler);\r\n return this;\r\n }\r\n setConfig(config) {\r\n Object.keys(config).forEach((key) => {\r\n config[key];\r\n this.config[key] = config[key];\r\n });\r\n if (!this.config.skipInactive) {\r\n this.backToNormal();\r\n }\r\n if (typeof config.speed !== 'undefined') {\r\n this.speedService.send({\r\n type: 'SET_SPEED',\r\n payload: {\r\n speed: config.speed,\r\n },\r\n });\r\n }\r\n if (typeof config.mouseTail !== 'undefined') {\r\n if (config.mouseTail === false) {\r\n if (this.mouseTail) {\r\n this.mouseTail.style.display = 'none';\r\n }\r\n }\r\n else {\r\n if (!this.mouseTail) {\r\n this.mouseTail = document.createElement('canvas');\r\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\r\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\r\n this.mouseTail.classList.add('replayer-mouse-tail');\r\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\r\n }\r\n this.mouseTail.style.display = 'inherit';\r\n }\r\n }\r\n }\r\n getMetaData() {\r\n const firstEvent = this.service.state.context.events[0];\r\n const lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\r\n return {\r\n startTime: firstEvent.timestamp,\r\n endTime: lastEvent.timestamp,\r\n totalTime: lastEvent.timestamp - firstEvent.timestamp,\r\n };\r\n }\r\n getCurrentTime() {\r\n return this.timer.timeOffset + this.getTimeOffset();\r\n }\r\n getTimeOffset() {\r\n const { baselineTime, events } = this.service.state.context;\r\n return baselineTime - events[0].timestamp;\r\n }\r\n getMirror() {\r\n return this.mirror;\r\n }\r\n play(timeOffset = 0) {\r\n var _a, _b;\r\n if (this.service.state.matches('paused')) {\r\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\r\n }\r\n else {\r\n this.service.send({ type: 'PAUSE' });\r\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\r\n }\r\n (_b = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0]) === null || _b === void 0 ? void 0 : _b.classList.remove('rrweb-paused');\r\n this.emitter.emit(ReplayerEvents.Start);\r\n }\r\n pause(timeOffset) {\r\n var _a, _b;\r\n if (timeOffset === undefined && this.service.state.matches('playing')) {\r\n this.service.send({ type: 'PAUSE' });\r\n }\r\n if (typeof timeOffset === 'number') {\r\n this.play(timeOffset);\r\n this.service.send({ type: 'PAUSE' });\r\n }\r\n (_b = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('html')[0]) === null || _b === void 0 ? void 0 : _b.classList.add('rrweb-paused');\r\n this.emitter.emit(ReplayerEvents.Pause);\r\n }\r\n resume(timeOffset = 0) {\r\n console.warn(`The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`);\r\n this.play(timeOffset);\r\n this.emitter.emit(ReplayerEvents.Resume);\r\n }\r\n destroy() {\r\n this.pause();\r\n this.config.root.removeChild(this.wrapper);\r\n this.emitter.emit(ReplayerEvents.Destroy);\r\n }\r\n startLive(baselineTime) {\r\n this.service.send({ type: 'TO_LIVE', payload: { baselineTime } });\r\n }\r\n addEvent(rawEvent) {\r\n const event = this.config.unpackFn\r\n ? this.config.unpackFn(rawEvent)\r\n : rawEvent;\r\n if (indicatesTouchDevice(event)) {\r\n this.mouse.classList.add('touch-device');\r\n }\r\n void Promise.resolve().then(() => this.service.send({ type: 'ADD_EVENT', payload: { event } }));\r\n }\r\n enableInteract() {\r\n this.iframe.setAttribute('scrolling', 'auto');\r\n this.iframe.style.pointerEvents = 'auto';\r\n }\r\n disableInteract() {\r\n this.iframe.setAttribute('scrolling', 'no');\r\n this.iframe.style.pointerEvents = 'none';\r\n }\r\n resetCache() {\r\n this.cache = createCache();\r\n }\r\n setupDom() {\r\n this.wrapper = document.createElement('div');\r\n this.wrapper.classList.add('replayer-wrapper');\r\n this.config.root.appendChild(this.wrapper);\r\n this.mouse = document.createElement('div');\r\n this.mouse.classList.add('replayer-mouse');\r\n this.wrapper.appendChild(this.mouse);\r\n if (this.config.mouseTail !== false) {\r\n this.mouseTail = document.createElement('canvas');\r\n this.mouseTail.classList.add('replayer-mouse-tail');\r\n this.mouseTail.style.display = 'inherit';\r\n this.wrapper.appendChild(this.mouseTail);\r\n }\r\n this.iframe = document.createElement('iframe');\r\n const attributes = ['allow-same-origin'];\r\n if (this.config.UNSAFE_replayCanvas) {\r\n attributes.push('allow-scripts');\r\n }\r\n this.iframe.style.display = 'none';\r\n this.iframe.setAttribute('sandbox', attributes.join(' '));\r\n this.disableInteract();\r\n this.wrapper.appendChild(this.iframe);\r\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\r\n polyfill(this.iframe.contentWindow, this.iframe.contentDocument);\r\n polyfill$1(this.iframe.contentWindow);\r\n }\r\n }\r\n rebuildFullSnapshot(event, isSync = false) {\r\n if (!this.iframe.contentDocument) {\r\n return console.warn('Looks like your replayer has been destroyed.');\r\n }\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n console.warn('Found unresolved missing node map', this.legacy_missingNodeRetryMap);\r\n }\r\n this.legacy_missingNodeRetryMap = {};\r\n const collected = [];\r\n const afterAppend = (builtNode, id) => {\r\n this.collectIframeAndAttachDocument(collected, builtNode);\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(builtNode, {\r\n id,\r\n replayer: this,\r\n });\r\n }\r\n };\r\n rebuild(event.data.node, {\r\n doc: this.iframe.contentDocument,\r\n afterAppend,\r\n cache: this.cache,\r\n mirror: this.mirror,\r\n });\r\n afterAppend(this.iframe.contentDocument, event.data.node.id);\r\n for (const { mutationInQueue, builtNode } of collected) {\r\n this.attachDocumentToIframe(mutationInQueue, builtNode);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n const { documentElement, head } = this.iframe.contentDocument;\r\n this.insertStyleRules(documentElement, head);\r\n if (!this.service.state.matches('playing')) {\r\n this.iframe.contentDocument\r\n .getElementsByTagName('html')[0]\r\n .classList.add('rrweb-paused');\r\n }\r\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\r\n if (!isSync) {\r\n this.waitForStylesheetLoad();\r\n }\r\n if (this.config.UNSAFE_replayCanvas) {\r\n void this.preloadAllImages();\r\n }\r\n }\r\n insertStyleRules(documentElement, head) {\r\n var _a;\r\n const injectStylesRules = rules(this.config.blockClass).concat(this.config.insertStyleRules);\r\n if (this.config.pauseAnimation) {\r\n injectStylesRules.push('html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }');\r\n }\r\n if (this.usingVirtualDom) {\r\n const styleEl = this.virtualDom.createElement('style');\r\n this.virtualDom.mirror.add(styleEl, getDefaultSN(styleEl, this.virtualDom.unserializedId));\r\n documentElement.insertBefore(styleEl, head);\r\n styleEl.rules.push({\r\n source: IncrementalSource.StyleSheetRule,\r\n adds: injectStylesRules.map((cssText, index) => ({\r\n rule: cssText,\r\n index,\r\n })),\r\n });\r\n }\r\n else {\r\n const styleEl = document.createElement('style');\r\n documentElement.insertBefore(styleEl, head);\r\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\r\n (_a = styleEl.sheet) === null || _a === void 0 ? void 0 : _a.insertRule(injectStylesRules[idx], idx);\r\n }\r\n }\r\n }\r\n attachDocumentToIframe(mutation, iframeEl) {\r\n const mirror = this.usingVirtualDom\r\n ? this.virtualDom.mirror\r\n : this.mirror;\r\n const collected = [];\r\n const afterAppend = (builtNode, id) => {\r\n this.collectIframeAndAttachDocument(collected, builtNode);\r\n const sn = mirror.getMeta(builtNode);\r\n if ((sn === null || sn === void 0 ? void 0 : sn.type) === NodeType.Element &&\r\n (sn === null || sn === void 0 ? void 0 : sn.tagName.toUpperCase()) === 'HTML') {\r\n const { documentElement, head } = iframeEl.contentDocument;\r\n this.insertStyleRules(documentElement, head);\r\n }\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(builtNode, {\r\n id,\r\n replayer: this,\r\n });\r\n }\r\n };\r\n buildNodeWithSN(mutation.node, {\r\n doc: iframeEl.contentDocument,\r\n mirror: mirror,\r\n hackCss: true,\r\n skipChild: false,\r\n afterAppend,\r\n cache: this.cache,\r\n });\r\n afterAppend(iframeEl.contentDocument, mutation.node.id);\r\n for (const { mutationInQueue, builtNode } of collected) {\r\n this.attachDocumentToIframe(mutationInQueue, builtNode);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n }\r\n collectIframeAndAttachDocument(collected, builtNode) {\r\n if (isSerializedIframe(builtNode, this.mirror)) {\r\n const mutationInQueue = this.newDocumentQueue.find((m) => m.parentId === this.mirror.getId(builtNode));\r\n if (mutationInQueue) {\r\n collected.push({\r\n mutationInQueue,\r\n builtNode: builtNode,\r\n });\r\n }\r\n }\r\n }\r\n waitForStylesheetLoad() {\r\n var _a;\r\n const head = (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.head;\r\n if (head) {\r\n const unloadSheets = new Set();\r\n let timer;\r\n let beforeLoadState = this.service.state;\r\n const stateHandler = () => {\r\n beforeLoadState = this.service.state;\r\n };\r\n this.emitter.on(ReplayerEvents.Start, stateHandler);\r\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\r\n const unsubscribe = () => {\r\n this.emitter.off(ReplayerEvents.Start, stateHandler);\r\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\r\n };\r\n head\r\n .querySelectorAll('link[rel=\"stylesheet\"]')\r\n .forEach((css) => {\r\n if (!css.sheet) {\r\n unloadSheets.add(css);\r\n css.addEventListener('load', () => {\r\n unloadSheets.delete(css);\r\n if (unloadSheets.size === 0 && timer !== -1) {\r\n if (beforeLoadState.matches('playing')) {\r\n this.play(this.getCurrentTime());\r\n }\r\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n unsubscribe();\r\n }\r\n });\r\n }\r\n });\r\n if (unloadSheets.size > 0) {\r\n this.service.send({ type: 'PAUSE' });\r\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\r\n timer = setTimeout(() => {\r\n if (beforeLoadState.matches('playing')) {\r\n this.play(this.getCurrentTime());\r\n }\r\n timer = -1;\r\n unsubscribe();\r\n }, this.config.loadTimeout);\r\n }\r\n }\r\n }\r\n preloadAllImages() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.service.state;\r\n const stateHandler = () => {\r\n this.service.state;\r\n };\r\n this.emitter.on(ReplayerEvents.Start, stateHandler);\r\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\r\n const promises = [];\r\n for (const event of this.service.state.context.events) {\r\n if (event.type === EventType.IncrementalSnapshot &&\r\n event.data.source === IncrementalSource.CanvasMutation) {\r\n promises.push(this.deserializeAndPreloadCanvasEvents(event.data, event));\r\n const commands = 'commands' in event.data ? event.data.commands : [event.data];\r\n commands.forEach((c) => {\r\n this.preloadImages(c, event);\r\n });\r\n }\r\n }\r\n return Promise.all(promises);\r\n });\r\n }\r\n preloadImages(data, event) {\r\n if (data.property === 'drawImage' &&\r\n typeof data.args[0] === 'string' &&\r\n !this.imageMap.has(event)) {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n const imgd = ctx === null || ctx === void 0 ? void 0 : ctx.createImageData(canvas.width, canvas.height);\r\n imgd === null || imgd === void 0 ? void 0 : imgd.data;\r\n JSON.parse(data.args[0]);\r\n ctx === null || ctx === void 0 ? void 0 : ctx.putImageData(imgd, 0, 0);\r\n }\r\n }\r\n deserializeAndPreloadCanvasEvents(data, event) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.canvasEventMap.has(event)) {\r\n const status = {\r\n isUnchanged: true,\r\n };\r\n if ('commands' in data) {\r\n const commands = yield Promise.all(data.commands.map((c) => __awaiter(this, void 0, void 0, function* () {\r\n const args = yield Promise.all(c.args.map(deserializeArg(this.imageMap, null, status)));\r\n return Object.assign(Object.assign({}, c), { args });\r\n })));\r\n if (status.isUnchanged === false)\r\n this.canvasEventMap.set(event, Object.assign(Object.assign({}, data), { commands }));\r\n }\r\n else {\r\n const args = yield Promise.all(data.args.map(deserializeArg(this.imageMap, null, status)));\r\n if (status.isUnchanged === false)\r\n this.canvasEventMap.set(event, Object.assign(Object.assign({}, data), { args }));\r\n }\r\n }\r\n });\r\n }\r\n applyIncremental(e, isSync) {\r\n var _a, _b, _c;\r\n const { data: d } = e;\r\n switch (d.source) {\r\n case IncrementalSource.Mutation: {\r\n try {\r\n this.applyMutation(d, isSync);\r\n }\r\n catch (error) {\r\n this.warn(`Exception in mutation ${error.message || error}`, d);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Drag:\r\n case IncrementalSource.TouchMove:\r\n case IncrementalSource.MouseMove:\r\n if (isSync) {\r\n const lastPosition = d.positions[d.positions.length - 1];\r\n this.mousePos = {\r\n x: lastPosition.x,\r\n y: lastPosition.y,\r\n id: lastPosition.id,\r\n debugData: d,\r\n };\r\n }\r\n else {\r\n d.positions.forEach((p) => {\r\n const action = {\r\n doAction: () => {\r\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\r\n },\r\n delay: p.timeOffset +\r\n e.timestamp -\r\n this.service.state.context.baselineTime,\r\n };\r\n this.timer.addAction(action);\r\n });\r\n this.timer.addAction({\r\n doAction() {\r\n },\r\n delay: e.delay - ((_a = d.positions[0]) === null || _a === void 0 ? void 0 : _a.timeOffset),\r\n });\r\n }\r\n break;\r\n case IncrementalSource.MouseInteraction: {\r\n if (d.id === -1 || isSync) {\r\n break;\r\n }\r\n const event = new Event(MouseInteractions[d.type].toLowerCase());\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\r\n type: d.type,\r\n target,\r\n });\r\n const { triggerFocus } = this.config;\r\n switch (d.type) {\r\n case MouseInteractions.Blur:\r\n if ('blur' in target) {\r\n target.blur();\r\n }\r\n break;\r\n case MouseInteractions.Focus:\r\n if (triggerFocus && target.focus) {\r\n target.focus({\r\n preventScroll: true,\r\n });\r\n }\r\n break;\r\n case MouseInteractions.Click:\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n if (isSync) {\r\n if (d.type === MouseInteractions.TouchStart) {\r\n this.touchActive = true;\r\n }\r\n else if (d.type === MouseInteractions.TouchEnd) {\r\n this.touchActive = false;\r\n }\r\n this.mousePos = {\r\n x: d.x,\r\n y: d.y,\r\n id: d.id,\r\n debugData: d,\r\n };\r\n }\r\n else {\r\n if (d.type === MouseInteractions.TouchStart) {\r\n this.tailPositions.length = 0;\r\n }\r\n this.moveAndHover(d.x, d.y, d.id, isSync, d);\r\n if (d.type === MouseInteractions.Click) {\r\n this.mouse.classList.remove('active');\r\n void this.mouse.offsetWidth;\r\n this.mouse.classList.add('active');\r\n }\r\n else if (d.type === MouseInteractions.TouchStart) {\r\n void this.mouse.offsetWidth;\r\n this.mouse.classList.add('touch-active');\r\n }\r\n else if (d.type === MouseInteractions.TouchEnd) {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n }\r\n break;\r\n case MouseInteractions.TouchCancel:\r\n if (isSync) {\r\n this.touchActive = false;\r\n }\r\n else {\r\n this.mouse.classList.remove('touch-active');\r\n }\r\n break;\r\n default:\r\n target.dispatchEvent(event);\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Scroll: {\r\n if (d.id === -1) {\r\n break;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.scrollData = d;\r\n break;\r\n }\r\n this.applyScroll(d, isSync);\r\n break;\r\n }\r\n case IncrementalSource.ViewportResize:\r\n this.emitter.emit(ReplayerEvents.Resize, {\r\n width: d.width,\r\n height: d.height,\r\n });\r\n break;\r\n case IncrementalSource.Input: {\r\n if (d.id === -1) {\r\n break;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.inputData = d;\r\n break;\r\n }\r\n this.applyInput(d);\r\n break;\r\n }\r\n case IncrementalSource.MediaInteraction: {\r\n const target = this.usingVirtualDom\r\n ? this.virtualDom.mirror.getNode(d.id)\r\n : this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n const mediaEl = target;\r\n try {\r\n if (d.currentTime) {\r\n mediaEl.currentTime = d.currentTime;\r\n }\r\n if (d.volume) {\r\n mediaEl.volume = d.volume;\r\n }\r\n if (d.muted) {\r\n mediaEl.muted = d.muted;\r\n }\r\n if (d.type === 1) {\r\n mediaEl.pause();\r\n }\r\n if (d.type === 0) {\r\n void mediaEl.play();\r\n }\r\n if (d.type === 4) {\r\n mediaEl.playbackRate = d.playbackRate;\r\n }\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(`Failed to replay media interactions: ${error.message || error}`);\r\n }\r\n }\r\n break;\r\n }\r\n case IncrementalSource.StyleSheetRule:\r\n case IncrementalSource.StyleDeclaration: {\r\n if (this.usingVirtualDom) {\r\n if (d.styleId)\r\n this.constructedStyleMutations.push(d);\r\n else if (d.id)\r\n (_b = this.virtualDom.mirror.getNode(d.id)) === null || _b === void 0 ? void 0 : _b.rules.push(d);\r\n }\r\n else\r\n this.applyStyleSheetMutation(d);\r\n break;\r\n }\r\n case IncrementalSource.CanvasMutation: {\r\n if (!this.config.UNSAFE_replayCanvas) {\r\n return;\r\n }\r\n if (this.usingVirtualDom) {\r\n const target = this.virtualDom.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n target.canvasMutations.push({\r\n event: e,\r\n mutation: d,\r\n });\r\n }\r\n else {\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n void canvasMutation({\r\n event: e,\r\n mutation: d,\r\n target: target,\r\n imageMap: this.imageMap,\r\n canvasEventMap: this.canvasEventMap,\r\n errorHandler: this.warnCanvasMutationFailed.bind(this),\r\n });\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Font: {\r\n try {\r\n const fontFace = new FontFace(d.family, d.buffer\r\n ? new Uint8Array(JSON.parse(d.fontSource))\r\n : d.fontSource, d.descriptors);\r\n (_c = this.iframe.contentDocument) === null || _c === void 0 ? void 0 : _c.fonts.add(fontFace);\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n break;\r\n }\r\n case IncrementalSource.Selection: {\r\n if (isSync) {\r\n this.lastSelectionData = d;\r\n break;\r\n }\r\n this.applySelection(d);\r\n break;\r\n }\r\n case IncrementalSource.AdoptedStyleSheet: {\r\n if (this.usingVirtualDom)\r\n this.adoptedStyleSheets.push(d);\r\n else\r\n this.applyAdoptedStyleSheet(d);\r\n break;\r\n }\r\n }\r\n }\r\n applyMutation(d, isSync) {\r\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\r\n this.usingVirtualDom = true;\r\n buildFromDom(this.iframe.contentDocument, this.mirror, this.virtualDom);\r\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\r\n for (const key in this.legacy_missingNodeRetryMap) {\r\n try {\r\n const value = this.legacy_missingNodeRetryMap[key];\r\n const virtualNode = buildFromNode(value.node, this.virtualDom, this.mirror);\r\n if (virtualNode)\r\n value.node = virtualNode;\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn(error);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const mirror = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\r\n d.removes.forEach((mutation) => {\r\n var _a;\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.parentId)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n let parent = mirror.getNode(mutation.parentId);\r\n if (!parent) {\r\n return this.warnNodeNotFound(d, mutation.parentId);\r\n }\r\n if (mutation.isShadow && hasShadowRoot(parent)) {\r\n parent = parent.shadowRoot;\r\n }\r\n mirror.removeNodeFromMap(target);\r\n if (parent)\r\n try {\r\n parent.removeChild(target);\r\n if (this.usingVirtualDom &&\r\n target.nodeName === '#text' &&\r\n parent.nodeName === 'STYLE' &&\r\n ((_a = parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n }\r\n catch (error) {\r\n if (error instanceof DOMException) {\r\n this.warn('parent could not remove child in mutation', parent, target, d);\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n });\r\n const legacy_missingNodeMap = Object.assign({}, this.legacy_missingNodeRetryMap);\r\n const queue = [];\r\n const nextNotInDOM = (mutation) => {\r\n let next = null;\r\n if (mutation.nextId) {\r\n next = mirror.getNode(mutation.nextId);\r\n }\r\n if (mutation.nextId !== null &&\r\n mutation.nextId !== undefined &&\r\n mutation.nextId !== -1 &&\r\n !next) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n const appendNode = (mutation) => {\r\n var _a;\r\n if (!this.iframe.contentDocument) {\r\n return console.warn('Looks like your replayer has been destroyed.');\r\n }\r\n let parent = mirror.getNode(mutation.parentId);\r\n if (!parent) {\r\n if (mutation.node.type === NodeType.Document) {\r\n return this.newDocumentQueue.push(mutation);\r\n }\r\n return queue.push(mutation);\r\n }\r\n if (mutation.node.isShadow) {\r\n if (!hasShadowRoot(parent)) {\r\n parent.attachShadow({ mode: 'open' });\r\n parent = parent.shadowRoot;\r\n }\r\n else\r\n parent = parent.shadowRoot;\r\n }\r\n let previous = null;\r\n let next = null;\r\n if (mutation.previousId) {\r\n previous = mirror.getNode(mutation.previousId);\r\n }\r\n if (mutation.nextId) {\r\n next = mirror.getNode(mutation.nextId);\r\n }\r\n if (nextNotInDOM(mutation)) {\r\n return queue.push(mutation);\r\n }\r\n if (mutation.node.rootId && !mirror.getNode(mutation.node.rootId)) {\r\n return;\r\n }\r\n const targetDoc = mutation.node.rootId\r\n ? mirror.getNode(mutation.node.rootId)\r\n : this.usingVirtualDom\r\n ? this.virtualDom\r\n : this.iframe.contentDocument;\r\n if (isSerializedIframe(parent, mirror)) {\r\n this.attachDocumentToIframe(mutation, parent);\r\n return;\r\n }\r\n const afterAppend = (node, id) => {\r\n for (const plugin of this.config.plugins || []) {\r\n if (plugin.onBuild)\r\n plugin.onBuild(node, { id, replayer: this });\r\n }\r\n };\r\n const target = buildNodeWithSN(mutation.node, {\r\n doc: targetDoc,\r\n mirror: mirror,\r\n skipChild: true,\r\n hackCss: true,\r\n cache: this.cache,\r\n afterAppend,\r\n });\r\n if (mutation.previousId === -1 || mutation.nextId === -1) {\r\n legacy_missingNodeMap[mutation.node.id] = {\r\n node: target,\r\n mutation,\r\n };\r\n return;\r\n }\r\n const parentSn = mirror.getMeta(parent);\r\n if (parentSn &&\r\n parentSn.type === NodeType.Element &&\r\n parentSn.tagName === 'textarea' &&\r\n mutation.node.type === NodeType.Text) {\r\n const childNodeArray = Array.isArray(parent.childNodes)\r\n ? parent.childNodes\r\n : Array.from(parent.childNodes);\r\n for (const c of childNodeArray) {\r\n if (c.nodeType === parent.TEXT_NODE) {\r\n parent.removeChild(c);\r\n }\r\n }\r\n }\r\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\r\n parent.insertBefore(target, previous.nextSibling);\r\n }\r\n else if (next && next.parentNode) {\r\n parent.contains(next)\r\n ? parent.insertBefore(target, next)\r\n : parent.insertBefore(target, null);\r\n }\r\n else {\r\n if (parent === targetDoc) {\r\n while (targetDoc.firstChild) {\r\n targetDoc.removeChild(targetDoc.firstChild);\r\n }\r\n }\r\n parent.appendChild(target);\r\n }\r\n afterAppend(target, mutation.node.id);\r\n if (this.usingVirtualDom &&\r\n target.nodeName === '#text' &&\r\n parent.nodeName === 'STYLE' &&\r\n ((_a = parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n if (isSerializedIframe(target, this.mirror)) {\r\n const targetId = this.mirror.getId(target);\r\n const mutationInQueue = this.newDocumentQueue.find((m) => m.parentId === targetId);\r\n if (mutationInQueue) {\r\n this.attachDocumentToIframe(mutationInQueue, target);\r\n this.newDocumentQueue = this.newDocumentQueue.filter((m) => m !== mutationInQueue);\r\n }\r\n }\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(legacy_missingNodeMap, parent, target, mutation);\r\n }\r\n };\r\n d.adds.forEach((mutation) => {\r\n appendNode(mutation);\r\n });\r\n const startTime = Date.now();\r\n while (queue.length) {\r\n const resolveTrees = queueToResolveTrees(queue);\r\n queue.length = 0;\r\n if (Date.now() - startTime > 500) {\r\n this.warn('Timeout in the loop, please check the resolve tree data:', resolveTrees);\r\n break;\r\n }\r\n for (const tree of resolveTrees) {\r\n const parent = mirror.getNode(tree.value.parentId);\r\n if (!parent) {\r\n this.debug('Drop resolve tree since there is no parent for the root node.', tree);\r\n }\r\n else {\r\n iterateResolveTree(tree, (mutation) => {\r\n appendNode(mutation);\r\n });\r\n }\r\n }\r\n }\r\n if (Object.keys(legacy_missingNodeMap).length) {\r\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\r\n }\r\n uniqueTextMutations(d.texts).forEach((mutation) => {\r\n var _a;\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.id)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n target.textContent = mutation.value;\r\n if (this.usingVirtualDom) {\r\n const parent = target.parentNode;\r\n if (((_a = parent === null || parent === void 0 ? void 0 : parent.rules) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n parent.rules = [];\r\n }\r\n });\r\n d.attributes.forEach((mutation) => {\r\n const target = mirror.getNode(mutation.id);\r\n if (!target) {\r\n if (d.removes.find((r) => r.id === mutation.id)) {\r\n return;\r\n }\r\n return this.warnNodeNotFound(d, mutation.id);\r\n }\r\n for (const attributeName in mutation.attributes) {\r\n if (typeof attributeName === 'string') {\r\n const value = mutation.attributes[attributeName];\r\n if (value === null) {\r\n target.removeAttribute(attributeName);\r\n }\r\n else if (typeof value === 'string') {\r\n try {\r\n if (attributeName === '_cssText' &&\r\n (target.nodeName === 'LINK' || target.nodeName === 'STYLE')) {\r\n try {\r\n const newSn = mirror.getMeta(target);\r\n Object.assign(newSn.attributes, mutation.attributes);\r\n const newNode = buildNodeWithSN(newSn, {\r\n doc: target.ownerDocument,\r\n mirror: mirror,\r\n skipChild: true,\r\n hackCss: true,\r\n cache: this.cache,\r\n });\r\n const siblingNode = target.nextSibling;\r\n const parentNode = target.parentNode;\r\n if (newNode && parentNode) {\r\n parentNode.removeChild(target);\r\n parentNode.insertBefore(newNode, siblingNode);\r\n mirror.replace(mutation.id, newNode);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n }\r\n target.setAttribute(attributeName, value);\r\n }\r\n catch (error) {\r\n if (this.config.showWarning) {\r\n console.warn('An error occurred may due to the checkout feature.', error);\r\n }\r\n }\r\n }\r\n else if (attributeName === 'style') {\r\n const styleValues = value;\r\n const targetEl = target;\r\n for (const s in styleValues) {\r\n if (styleValues[s] === false) {\r\n targetEl.style.removeProperty(s);\r\n }\r\n else if (styleValues[s] instanceof Array) {\r\n const svp = styleValues[s];\r\n targetEl.style.setProperty(s, svp[0], svp[1]);\r\n }\r\n else {\r\n const svs = styleValues[s];\r\n targetEl.style.setProperty(s, svs);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n applyScroll(d, isSync) {\r\n var _a, _b;\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n const sn = this.mirror.getMeta(target);\r\n if (target === this.iframe.contentDocument) {\r\n (_a = this.iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n else if ((sn === null || sn === void 0 ? void 0 : sn.type) === NodeType.Document) {\r\n (_b = target.defaultView) === null || _b === void 0 ? void 0 : _b.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n else {\r\n try {\r\n target.scrollTo({\r\n top: d.y,\r\n left: d.x,\r\n behavior: isSync ? 'auto' : 'smooth',\r\n });\r\n }\r\n catch (error) {\r\n }\r\n }\r\n }\r\n applyInput(d) {\r\n const target = this.mirror.getNode(d.id);\r\n if (!target) {\r\n return this.debugNodeNotFound(d, d.id);\r\n }\r\n try {\r\n target.checked = d.isChecked;\r\n target.value = d.text;\r\n }\r\n catch (error) {\r\n }\r\n }\r\n applySelection(d) {\r\n try {\r\n const selectionSet = new Set();\r\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\r\n const startContainer = this.mirror.getNode(start);\r\n const endContainer = this.mirror.getNode(end);\r\n if (!startContainer || !endContainer)\r\n return;\r\n const result = new Range();\r\n result.setStart(startContainer, startOffset);\r\n result.setEnd(endContainer, endOffset);\r\n const doc = startContainer.ownerDocument;\r\n const selection = doc === null || doc === void 0 ? void 0 : doc.getSelection();\r\n selection && selectionSet.add(selection);\r\n return {\r\n range: result,\r\n selection,\r\n };\r\n });\r\n selectionSet.forEach((s) => s.removeAllRanges());\r\n ranges.forEach((r) => { var _a; return r && ((_a = r.selection) === null || _a === void 0 ? void 0 : _a.addRange(r.range)); });\r\n }\r\n catch (error) {\r\n }\r\n }\r\n applyStyleSheetMutation(data) {\r\n var _a;\r\n let styleSheet = null;\r\n if (data.styleId)\r\n styleSheet = this.styleMirror.getStyle(data.styleId);\r\n else if (data.id)\r\n styleSheet =\r\n ((_a = this.mirror.getNode(data.id)) === null || _a === void 0 ? void 0 : _a.sheet) || null;\r\n if (!styleSheet)\r\n return;\r\n if (data.source === IncrementalSource.StyleSheetRule)\r\n this.applyStyleSheetRule(data, styleSheet);\r\n else if (data.source === IncrementalSource.StyleDeclaration)\r\n this.applyStyleDeclaration(data, styleSheet);\r\n }\r\n applyStyleSheetRule(data, styleSheet) {\r\n var _a, _b, _c, _d;\r\n (_a = data.adds) === null || _a === void 0 ? void 0 : _a.forEach(({ rule, index: nestedIndex }) => {\r\n try {\r\n if (Array.isArray(nestedIndex)) {\r\n const { positions, index } = getPositionsAndIndex(nestedIndex);\r\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\r\n nestedRule.insertRule(rule, index);\r\n }\r\n else {\r\n const index = nestedIndex === undefined\r\n ? undefined\r\n : Math.min(nestedIndex, styleSheet.cssRules.length);\r\n styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.insertRule(rule, index);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n });\r\n (_b = data.removes) === null || _b === void 0 ? void 0 : _b.forEach(({ index: nestedIndex }) => {\r\n try {\r\n if (Array.isArray(nestedIndex)) {\r\n const { positions, index } = getPositionsAndIndex(nestedIndex);\r\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\r\n nestedRule.deleteRule(index || 0);\r\n }\r\n else {\r\n styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.deleteRule(nestedIndex);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n });\r\n if (data.replace)\r\n try {\r\n void ((_c = styleSheet.replace) === null || _c === void 0 ? void 0 : _c.call(styleSheet, data.replace));\r\n }\r\n catch (e) {\r\n }\r\n if (data.replaceSync)\r\n try {\r\n (_d = styleSheet.replaceSync) === null || _d === void 0 ? void 0 : _d.call(styleSheet, data.replaceSync);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n applyStyleDeclaration(data, styleSheet) {\r\n if (data.set) {\r\n const rule = getNestedRule(styleSheet.rules, data.index);\r\n rule.style.setProperty(data.set.property, data.set.value, data.set.priority);\r\n }\r\n if (data.remove) {\r\n const rule = getNestedRule(styleSheet.rules, data.index);\r\n rule.style.removeProperty(data.remove.property);\r\n }\r\n }\r\n applyAdoptedStyleSheet(data) {\r\n var _a;\r\n const targetHost = this.mirror.getNode(data.id);\r\n if (!targetHost)\r\n return;\r\n (_a = data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n var _a;\r\n let newStyleSheet = null;\r\n let hostWindow = null;\r\n if (hasShadowRoot(targetHost))\r\n hostWindow = ((_a = targetHost.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) || null;\r\n else if (targetHost.nodeName === '#document')\r\n hostWindow = targetHost.defaultView;\r\n if (!hostWindow)\r\n return;\r\n try {\r\n newStyleSheet = new hostWindow.CSSStyleSheet();\r\n this.styleMirror.add(newStyleSheet, style.styleId);\r\n this.applyStyleSheetRule({\r\n source: IncrementalSource.StyleSheetRule,\r\n adds: style.rules,\r\n }, newStyleSheet);\r\n }\r\n catch (e) {\r\n }\r\n });\r\n const MAX_RETRY_TIME = 10;\r\n let count = 0;\r\n const adoptStyleSheets = (targetHost, styleIds) => {\r\n const stylesToAdopt = styleIds\r\n .map((styleId) => this.styleMirror.getStyle(styleId))\r\n .filter((style) => style !== null);\r\n if (hasShadowRoot(targetHost))\r\n targetHost.shadowRoot.adoptedStyleSheets = stylesToAdopt;\r\n else if (targetHost.nodeName === '#document')\r\n targetHost.adoptedStyleSheets = stylesToAdopt;\r\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\r\n setTimeout(() => adoptStyleSheets(targetHost, styleIds), 0 + 100 * count);\r\n count++;\r\n }\r\n };\r\n adoptStyleSheets(targetHost, data.styleIds);\r\n }\r\n legacy_resolveMissingNode(map, parent, target, targetMutation) {\r\n const { previousId, nextId } = targetMutation;\r\n const previousInMap = previousId && map[previousId];\r\n const nextInMap = nextId && map[nextId];\r\n if (previousInMap) {\r\n const { node, mutation } = previousInMap;\r\n parent.insertBefore(node, target);\r\n delete map[mutation.node.id];\r\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(map, parent, node, mutation);\r\n }\r\n }\r\n if (nextInMap) {\r\n const { node, mutation } = nextInMap;\r\n parent.insertBefore(node, target.nextSibling);\r\n delete map[mutation.node.id];\r\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\r\n if (mutation.previousId || mutation.nextId) {\r\n this.legacy_resolveMissingNode(map, parent, node, mutation);\r\n }\r\n }\r\n }\r\n moveAndHover(x, y, id, isSync, debugData) {\r\n const target = this.mirror.getNode(id);\r\n if (!target) {\r\n return this.debugNodeNotFound(debugData, id);\r\n }\r\n const base = getBaseDimension(target, this.iframe);\r\n const _x = x * base.absoluteScale + base.x;\r\n const _y = y * base.absoluteScale + base.y;\r\n this.mouse.style.left = `${_x}px`;\r\n this.mouse.style.top = `${_y}px`;\r\n if (!isSync) {\r\n this.drawMouseTail({ x: _x, y: _y });\r\n }\r\n this.hoverElements(target);\r\n }\r\n drawMouseTail(position) {\r\n if (!this.mouseTail) {\r\n return;\r\n }\r\n const { lineCap, lineWidth, strokeStyle, duration } = this.config.mouseTail === true\r\n ? defaultMouseTailConfig\r\n : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\r\n const draw = () => {\r\n if (!this.mouseTail) {\r\n return;\r\n }\r\n const ctx = this.mouseTail.getContext('2d');\r\n if (!ctx || !this.tailPositions.length) {\r\n return;\r\n }\r\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\r\n ctx.beginPath();\r\n ctx.lineWidth = lineWidth;\r\n ctx.lineCap = lineCap;\r\n ctx.strokeStyle = strokeStyle;\r\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\r\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\r\n ctx.stroke();\r\n };\r\n this.tailPositions.push(position);\r\n draw();\r\n setTimeout(() => {\r\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\r\n draw();\r\n }, duration / this.speedService.state.context.timer.speed);\r\n }\r\n hoverElements(el) {\r\n var _a;\r\n (_a = this.iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.\\\\:hover').forEach((hoveredEl) => {\r\n hoveredEl.classList.remove(':hover');\r\n });\r\n let currentEl = el;\r\n while (currentEl) {\r\n if (currentEl.classList) {\r\n currentEl.classList.add(':hover');\r\n }\r\n currentEl = currentEl.parentElement;\r\n }\r\n }\r\n isUserInteraction(event) {\r\n if (event.type !== EventType.IncrementalSnapshot) {\r\n return false;\r\n }\r\n return (event.data.source > IncrementalSource.Mutation &&\r\n event.data.source <= IncrementalSource.Input);\r\n }\r\n backToNormal() {\r\n this.nextUserInteractionEvent = null;\r\n if (this.speedService.state.matches('normal')) {\r\n return;\r\n }\r\n this.speedService.send({ type: 'BACK_TO_NORMAL' });\r\n this.emitter.emit(ReplayerEvents.SkipEnd, {\r\n speed: this.speedService.state.context.normalSpeed,\r\n });\r\n }\r\n warnNodeNotFound(d, id) {\r\n this.warn(`Node with id '${id}' not found. `, d);\r\n }\r\n warnCanvasMutationFailed(d, error) {\r\n this.warn(`Has error on canvas update`, error, 'canvas mutation:', d);\r\n }\r\n debugNodeNotFound(d, id) {\r\n this.debug(REPLAY_CONSOLE_PREFIX, `Node with id '${id}' not found. `, d);\r\n }\r\n warn(...args) {\r\n if (!this.config.showWarning) {\r\n return;\r\n }\r\n console.warn(REPLAY_CONSOLE_PREFIX, ...args);\r\n }\r\n debug(...args) {\r\n if (!this.config.showDebug) {\r\n return;\r\n }\r\n console.log(REPLAY_CONSOLE_PREFIX, ...args);\r\n }\r\n}\n\nexport { Replayer };\n","export { addCustomEvent, freezePage } from '../index.js';\nexport { pack } from '../packer/pack.js';\nexport { unpack } from '../packer/unpack.js';\nexport { PLUGIN_NAME, getRecordConsolePlugin } from '../plugins/console/record/index.js';\nexport { getReplayConsolePlugin } from '../plugins/console/replay/index.js';\nexport { default as record } from '../record/index.js';\nexport { EventType, IncrementalSource, MouseInteractions, ReplayerEvents } from '../../../types/dist/types.js';\nexport { Replayer } from '../replay/index.js';\nimport * as utils from '../utils.js';\nexport { utils };\nexport { _mirror as mirror } from '../utils.js';\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.4\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.4\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Error codes for PIH SDK errors\n */\nexport type PIHErrorCode =\n | \"NETWORK_ERROR\"\n | \"INVALID_CONFIG\"\n | \"QUEUE_FULL\"\n | \"RATE_LIMITED\"\n | \"INVALID_PAYLOAD\"\n | \"STORAGE_ERROR\"\n | \"SESSION_ERROR\"\n | \"UNKNOWN_ERROR\";\n\n/**\n * Custom error class for PIH SDK\n */\nexport class PIHError extends Error {\n /** Error code for programmatic handling */\n public readonly code: PIHErrorCode;\n /** Additional error details */\n public readonly details?: unknown;\n\n constructor(message: string, code: PIHErrorCode, details?: unknown) {\n super(message);\n this.name = \"PIHError\";\n this.code = code;\n this.details = details;\n\n // Maintains proper stack trace for where error was thrown (V8 only)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, PIHError);\n }\n }\n\n /**\n * Create a network error\n */\n static networkError(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"NETWORK_ERROR\", details);\n }\n\n /**\n * Create an invalid config error\n */\n static invalidConfig(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"INVALID_CONFIG\", details);\n }\n\n /**\n * Create a queue full error\n */\n static queueFull(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"QUEUE_FULL\", details);\n }\n\n /**\n * Create a rate limited error\n */\n static rateLimited(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"RATE_LIMITED\", details);\n }\n\n /**\n * Create an invalid payload error\n */\n static invalidPayload(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"INVALID_PAYLOAD\", details);\n }\n\n /**\n * Create a storage error\n */\n static storageError(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"STORAGE_ERROR\", details);\n }\n\n /**\n * Create a session error\n */\n static sessionError(message: string, details?: unknown): PIHError {\n return new PIHError(message, \"SESSION_ERROR\", details);\n }\n\n /**\n * Convert unknown error to PIHError\n */\n static fromUnknown(error: unknown): PIHError {\n if (error instanceof PIHError) {\n return error;\n }\n if (error instanceof Error) {\n return new PIHError(error.message, \"UNKNOWN_ERROR\", error);\n }\n return new PIHError(String(error), \"UNKNOWN_ERROR\", error);\n }\n}\n","/**\n * Generate a UUID v4\n * Uses crypto.randomUUID if available, otherwise falls back to manual generation\n */\nexport function generateUUID(): string {\n // Use native crypto.randomUUID if available (modern browsers, Node.js 19+)\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n\n // Fallback implementation using crypto.getRandomValues\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto.getRandomValues === \"function\"\n ) {\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n\n // Set version (4) and variant (8, 9, A, or B)\n bytes[6] = (bytes[6]! & 0x0f) | 0x40;\n bytes[8] = (bytes[8]! & 0x3f) | 0x80;\n\n const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, \"0\")).join(\n \"\"\n );\n\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n }\n\n // Last resort fallback using Math.random (less secure but works everywhere)\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Get current timestamp in ISO 8601 UTC format\n */\nexport function getTimestamp(): string {\n return new Date().toISOString();\n}\n\n/**\n * Get timestamp from Date in ISO 8601 UTC format\n */\nexport function dateToTimestamp(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Calculate exponential backoff delay\n * @param attempt - Current attempt number (0-indexed)\n * @param baseDelay - Base delay in milliseconds (default: 1000)\n * @param maxDelay - Maximum delay in milliseconds (default: 16000)\n */\nexport function getBackoffDelay(\n attempt: number,\n baseDelay = 1000,\n maxDelay = 16000\n): number {\n const delay = baseDelay * Math.pow(2, attempt);\n return Math.min(delay, maxDelay);\n}\n\n/**\n * Check if a value is a plain object\n */\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\n/**\n * Deep clone a value using JSON serialization\n * Note: Does not preserve functions, undefined, or special objects\n */\nexport function deepClone<T>(value: T): T {\n return JSON.parse(JSON.stringify(value));\n}\n\n/**\n * Merge two objects, with the second object's values taking precedence\n */\nexport function mergeObjects<T extends Record<string, unknown>>(\n target: T,\n source: Partial<T>\n): T {\n return { ...target, ...source };\n}\n\n/**\n * Create a debounced function\n */\nexport function debounce<T extends (...args: unknown[]) => void>(\n fn: T,\n delay: number\n): T {\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n return ((...args: unknown[]) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n fn(...args);\n timeoutId = null;\n }, delay);\n }) as T;\n}\n\n/**\n * Storage key prefix for all PIH SDK data\n */\nexport const STORAGE_PREFIX = \"pih_\";\n\n/**\n * Storage keys used by the SDK\n */\nexport const STORAGE_KEYS = {\n QUEUE: `${STORAGE_PREFIX}queue`,\n ANONYMOUS_ID: `${STORAGE_PREFIX}anonymous_id`,\n USER_ID: `${STORAGE_PREFIX}user_id`,\n USER_TRAITS: `${STORAGE_PREFIX}user_traits`,\n SESSION_ID: `${STORAGE_PREFIX}session_id`,\n SESSION_LAST_ACTIVITY: `${STORAGE_PREFIX}session_last_activity`,\n SESSION_NUMBER: `${STORAGE_PREFIX}session_number`,\n EVENT_INDEX: `${STORAGE_PREFIX}event_index`,\n FLAGS: `${STORAGE_PREFIX}flags`,\n} as const;\n\n/**\n * Default configuration values\n */\nexport const DEFAULTS = {\n API_URL: \"https://repoingest-production.up.railway.app\",\n FLUSH_INTERVAL: 10000, // 10 seconds\n FLUSH_AT: 25, // events\n MAX_QUEUE_SIZE: 5000, // events\n SESSION_TIMEOUT: 1800000, // 30 minutes\n MAX_BATCH_SIZE: 100, // events per request\n MAX_RETRIES: 5,\n BASE_BACKOFF_DELAY: 1000, // 1 second\n MAX_BACKOFF_DELAY: 16000, // 16 seconds\n} as const;\n","import type { StorageAdapter } from \"./types.js\";\nimport { generateUUID, STORAGE_KEYS } from \"./utils.js\";\n\n/**\n * Identity manager for handling anonymous and user IDs\n */\nexport class IdentityManager {\n private anonymousId: string;\n private userId: string | null = null;\n private userTraits: Record<string, unknown> = {};\n private storage: StorageAdapter | null;\n private debug: boolean;\n\n constructor(storage: StorageAdapter | null, debug = false) {\n this.storage = storage;\n this.debug = debug;\n this.anonymousId = generateUUID();\n }\n\n /**\n * Initialize identity from storage\n */\n async initialize(): Promise<void> {\n if (!this.storage) {\n this.log(\"No storage adapter, using in-memory identity only\");\n return;\n }\n\n try {\n // Load anonymous ID\n const storedAnonymousId = await this.storage.get(\n STORAGE_KEYS.ANONYMOUS_ID\n );\n if (storedAnonymousId) {\n this.anonymousId = storedAnonymousId;\n this.log(\"Loaded anonymous ID from storage:\", this.anonymousId);\n } else {\n // Persist the generated anonymous ID\n await this.storage.set(STORAGE_KEYS.ANONYMOUS_ID, this.anonymousId);\n this.log(\"Generated new anonymous ID:\", this.anonymousId);\n }\n\n // Load user ID\n const storedUserId = await this.storage.get(STORAGE_KEYS.USER_ID);\n if (storedUserId) {\n this.userId = storedUserId;\n this.log(\"Loaded user ID from storage:\", this.userId);\n }\n\n // Load user traits\n const storedTraits = await this.storage.get(STORAGE_KEYS.USER_TRAITS);\n if (storedTraits) {\n try {\n this.userTraits = JSON.parse(storedTraits);\n this.log(\"Loaded user traits from storage:\", this.userTraits);\n } catch {\n this.log(\"Failed to parse stored user traits\");\n }\n }\n } catch (error) {\n this.log(\"Error loading identity from storage:\", error);\n }\n }\n\n /**\n * Get the anonymous ID\n */\n getAnonymousId(): string {\n return this.anonymousId;\n }\n\n /**\n * Get the user ID\n */\n getUserId(): string | null {\n return this.userId;\n }\n\n /**\n * Get user traits\n */\n getUserTraits(): Record<string, unknown> {\n return { ...this.userTraits };\n }\n\n /**\n * Set the user ID (identify the user)\n */\n async setUserId(userId: string): Promise<void> {\n this.userId = userId;\n this.log(\"Set user ID:\", userId);\n\n if (this.storage) {\n try {\n await this.storage.set(STORAGE_KEYS.USER_ID, userId);\n } catch (error) {\n this.log(\"Error persisting user ID:\", error);\n }\n }\n }\n\n /**\n * Set user traits\n */\n async setUserTraits(traits: Record<string, unknown>): Promise<void> {\n this.userTraits = { ...this.userTraits, ...traits };\n this.log(\"Set user traits:\", this.userTraits);\n\n if (this.storage) {\n try {\n await this.storage.set(\n STORAGE_KEYS.USER_TRAITS,\n JSON.stringify(this.userTraits)\n );\n } catch (error) {\n this.log(\"Error persisting user traits:\", error);\n }\n }\n }\n\n /**\n * Reset identity (logout)\n * Generates a new anonymous ID and clears user data\n */\n async reset(): Promise<void> {\n this.anonymousId = generateUUID();\n this.userId = null;\n this.userTraits = {};\n this.log(\"Identity reset, new anonymous ID:\", this.anonymousId);\n\n if (this.storage) {\n try {\n await Promise.all([\n this.storage.set(STORAGE_KEYS.ANONYMOUS_ID, this.anonymousId),\n this.storage.remove(STORAGE_KEYS.USER_ID),\n this.storage.remove(STORAGE_KEYS.USER_TRAITS),\n ]);\n } catch (error) {\n this.log(\"Error resetting identity in storage:\", error);\n }\n }\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n private log(...args: unknown[]): void {\n if (this.debug) {\n console.log(\"[PIH Identity]\", ...args);\n }\n }\n}\n","import { PIHError } from \"./errors.js\";\nimport type { Transport } from \"./transport.js\";\nimport type {\n TrackEvent,\n QueuedEvent,\n StorageAdapter,\n TransportOptions,\n} from \"./types.js\";\nimport { STORAGE_KEYS, DEFAULTS, getBackoffDelay } from \"./utils.js\";\n\n/**\n * Event queue configuration\n */\nexport interface EventQueueConfig {\n /** Events before auto-flush (default: 25) */\n flushAt: number;\n /** Milliseconds between auto-flushes (default: 10000) */\n flushInterval: number;\n /** Max queued events (default: 5000) */\n maxQueueSize: number;\n /** Storage adapter for persistence */\n storage: StorageAdapter | null;\n /** Transport for sending events */\n transport: Transport;\n /** Error callback */\n onError?: (error: PIHError, events: TrackEvent[]) => void;\n /** Debug mode */\n debug?: boolean;\n}\n\n/**\n * Event queue with persistence and retry logic\n */\nexport class EventQueue {\n private queue: QueuedEvent[] = [];\n private isFlushing = false;\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n private retryTimer: ReturnType<typeof setTimeout> | null = null;\n private config: EventQueueConfig;\n private initialized = false;\n\n constructor(config: EventQueueConfig) {\n this.config = {\n flushAt: config.flushAt ?? DEFAULTS.FLUSH_AT,\n flushInterval: config.flushInterval ?? DEFAULTS.FLUSH_INTERVAL,\n maxQueueSize: config.maxQueueSize ?? DEFAULTS.MAX_QUEUE_SIZE,\n storage: config.storage,\n transport: config.transport,\n onError: config.onError,\n debug: config.debug ?? false,\n };\n }\n\n /**\n * Initialize the queue (load persisted events)\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n await this.loadPersistedQueue();\n this.startFlushTimer();\n this.initialized = true;\n\n this.log(\"Queue initialized with\", this.queue.length, \"persisted events\");\n }\n\n /**\n * Add an event to the queue\n */\n async enqueue(event: TrackEvent): Promise<void> {\n // Enforce max queue size (drop oldest when full)\n while (this.queue.length >= this.config.maxQueueSize) {\n const dropped = this.queue.shift();\n if (dropped) {\n this.log(\"Queue full, dropping oldest event:\", dropped.event.event_id);\n this.config.onError?.(\n PIHError.queueFull(\"Queue full, dropped oldest event\", {\n dropped_event_id: dropped.event.event_id,\n }),\n [dropped.event]\n );\n }\n }\n\n // Add event to queue\n const queuedEvent: QueuedEvent = {\n event,\n attempts: 0,\n firstAttempt: Date.now(),\n };\n this.queue.push(queuedEvent);\n\n this.log(\"Enqueued event:\", event.event_id, \"Queue size:\", this.queue.length);\n\n // Persist queue\n await this.persistQueue();\n\n // Check if we should flush\n if (this.queue.length >= this.config.flushAt) {\n this.log(\"Queue reached flushAt threshold, flushing\");\n this.flush();\n }\n }\n\n /**\n * Flush the queue (send all events)\n */\n async flush(options?: TransportOptions): Promise<void> {\n if (this.isFlushing || this.queue.length === 0) {\n return;\n }\n\n this.isFlushing = true;\n this.log(\"Flushing\", this.queue.length, \"events\");\n\n try {\n // Take batch from queue (max 100 per request)\n const batch = this.queue.splice(0, DEFAULTS.MAX_BATCH_SIZE);\n const events = batch.map((q) => q.event);\n\n try {\n const response = await this.config.transport.sendEvents(events, options);\n\n // Handle rejections\n for (const rejection of response.rejected) {\n if (rejection.reason === \"rate_limited\") {\n // Re-queue rate limited events\n const queuedEvent = batch.find(\n (q) => q.event.event_id === rejection.event_id\n );\n if (queuedEvent && queuedEvent.attempts < DEFAULTS.MAX_RETRIES) {\n queuedEvent.attempts++;\n this.queue.unshift(queuedEvent);\n this.log(\n \"Rate limited event re-queued:\",\n rejection.event_id,\n \"attempt:\",\n queuedEvent.attempts\n );\n }\n } else {\n // Other rejections are permanent failures\n this.log(\n \"Event permanently rejected:\",\n rejection.event_id,\n rejection.reason,\n rejection.details\n );\n }\n }\n\n this.log(\n \"Flush complete. Accepted:\",\n response.stats.accepted,\n \"Rejected:\",\n response.stats.rejected\n );\n } catch (error) {\n const pihError = PIHError.fromUnknown(error);\n\n // Network error - re-queue all with backoff\n for (const item of batch) {\n if (item.attempts < DEFAULTS.MAX_RETRIES) {\n item.attempts++;\n this.queue.unshift(item);\n } else {\n this.log(\n \"Event dropped after max retries:\",\n item.event.event_id\n );\n }\n }\n\n // Schedule retry with backoff\n const nextAttempt = batch[0]?.attempts ?? 1;\n const backoff = getBackoffDelay(nextAttempt);\n this.log(\"Network error, scheduling retry in\", backoff, \"ms\");\n\n this.retryTimer = setTimeout(() => {\n this.retryTimer = null;\n this.flush(options);\n }, backoff);\n\n this.config.onError?.(pihError, events);\n }\n\n // Persist updated queue\n await this.persistQueue();\n\n // Continue flushing if there are more events\n if (this.queue.length >= this.config.flushAt) {\n // Use setImmediate/setTimeout to avoid blocking\n setTimeout(() => this.flush(options), 0);\n }\n } finally {\n this.isFlushing = false;\n }\n }\n\n /**\n * Get the current queue length\n */\n getQueueLength(): number {\n return this.queue.length;\n }\n\n /**\n * Check if the queue is empty\n */\n isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n /**\n * Check if queue is currently flushing\n */\n isBusy(): boolean {\n return this.isFlushing;\n }\n\n /**\n * Clear the queue\n */\n async clear(): Promise<void> {\n this.queue = [];\n await this.persistQueue();\n this.log(\"Queue cleared\");\n }\n\n /**\n * Stop the queue (cancel timers)\n */\n destroy(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n if (this.retryTimer) {\n clearTimeout(this.retryTimer);\n this.retryTimer = null;\n }\n this.log(\"Queue destroyed\");\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.config.debug = enabled;\n }\n\n private async persistQueue(): Promise<void> {\n if (!this.config.storage) return;\n\n try {\n await this.config.storage.set(\n STORAGE_KEYS.QUEUE,\n JSON.stringify(this.queue)\n );\n } catch (error) {\n this.log(\"Error persisting queue:\", error);\n }\n }\n\n private async loadPersistedQueue(): Promise<void> {\n if (!this.config.storage) return;\n\n try {\n const stored = await this.config.storage.get(STORAGE_KEYS.QUEUE);\n if (stored) {\n const parsed = JSON.parse(stored) as QueuedEvent[];\n // Validate parsed data\n if (Array.isArray(parsed)) {\n this.queue = parsed.filter(\n (item) =>\n item &&\n typeof item === \"object\" &&\n \"event\" in item &&\n \"attempts\" in item\n );\n }\n }\n } catch (error) {\n this.log(\"Error loading persisted queue:\", error);\n this.queue = [];\n }\n }\n\n private startFlushTimer(): void {\n if (this.flushTimer) return;\n\n this.flushTimer = setInterval(() => {\n if (this.queue.length > 0) {\n this.log(\"Flush timer triggered\");\n this.flush();\n }\n }, this.config.flushInterval);\n }\n\n private log(...args: unknown[]): void {\n if (this.config.debug) {\n console.log(\"[PIH Queue]\", ...args);\n }\n }\n}\n","import type { StorageAdapter } from \"./types.js\";\nimport { generateUUID, STORAGE_KEYS, DEFAULTS } from \"./utils.js\";\n\n/**\n * Callback for session events\n */\nexport interface SessionCallbacks {\n onSessionStart?: (sessionId: string) => void;\n onSessionEnd?: (sessionId: string, duration: number) => void;\n}\n\n/**\n * Session manager for handling session tracking\n */\nexport class SessionManager {\n private sessionId: string | null = null;\n private sessionStartTime: number = 0;\n private lastActivity: number = 0;\n private timeout: number;\n private storage: StorageAdapter | null;\n private callbacks: SessionCallbacks;\n private debug: boolean;\n\n constructor(\n storage: StorageAdapter | null,\n timeout: number = DEFAULTS.SESSION_TIMEOUT,\n callbacks: SessionCallbacks = {},\n debug = false\n ) {\n this.storage = storage;\n this.timeout = timeout;\n this.callbacks = callbacks;\n this.debug = debug;\n }\n\n /**\n * Initialize session from storage\n */\n async initialize(): Promise<void> {\n if (!this.storage) {\n this.log(\"No storage adapter, using in-memory session only\");\n return;\n }\n\n try {\n const storedSessionId = await this.storage.get(STORAGE_KEYS.SESSION_ID);\n const storedLastActivity = await this.storage.get(\n STORAGE_KEYS.SESSION_LAST_ACTIVITY\n );\n\n if (storedSessionId && storedLastActivity) {\n const lastActivity = parseInt(storedLastActivity, 10);\n const now = Date.now();\n\n // Check if session is still valid\n if (now - lastActivity < this.timeout) {\n this.sessionId = storedSessionId;\n this.lastActivity = lastActivity;\n this.sessionStartTime = lastActivity; // Approximate\n this.log(\"Restored session from storage:\", this.sessionId);\n } else {\n // Session expired, clear it\n this.log(\"Stored session expired, will start new session\");\n await this.clearStoredSession();\n }\n }\n } catch (error) {\n this.log(\"Error loading session from storage:\", error);\n }\n }\n\n /**\n * Get the current session ID\n * Creates a new session if needed or if the current one expired\n */\n getSessionId(): string {\n const now = Date.now();\n\n // Check if session expired\n if (this.sessionId && now - this.lastActivity > this.timeout) {\n this.endSession();\n }\n\n // Start new session if needed\n if (!this.sessionId) {\n this.startSession();\n }\n\n // Update last activity\n this.lastActivity = now;\n this.persistLastActivity();\n\n return this.sessionId!;\n }\n\n /**\n * Touch the session to update last activity\n * Call this on each track event\n */\n touch(): void {\n if (this.sessionId) {\n this.lastActivity = Date.now();\n this.persistLastActivity();\n }\n }\n\n /**\n * Check if there's an active session\n */\n hasActiveSession(): boolean {\n if (!this.sessionId) return false;\n return Date.now() - this.lastActivity < this.timeout;\n }\n\n /**\n * Get the current session ID without creating a new one\n */\n getCurrentSessionId(): string | null {\n return this.sessionId;\n }\n\n /**\n * Get session duration in milliseconds\n */\n getSessionDuration(): number {\n if (!this.sessionId) return 0;\n return Date.now() - this.sessionStartTime;\n }\n\n /**\n * Start a new session\n */\n startSession(): void {\n const now = Date.now();\n this.sessionId = generateUUID();\n this.sessionStartTime = now;\n this.lastActivity = now;\n\n this.log(\"Started new session:\", this.sessionId);\n this.persistSession();\n\n // Notify callback\n this.callbacks.onSessionStart?.(this.sessionId);\n }\n\n /**\n * End the current session\n */\n endSession(): void {\n if (!this.sessionId) return;\n\n const duration = this.getSessionDuration();\n const endedSessionId = this.sessionId;\n\n this.log(\"Ended session:\", endedSessionId, \"duration:\", duration);\n\n // Clear session\n this.sessionId = null;\n this.sessionStartTime = 0;\n this.lastActivity = 0;\n this.clearStoredSession();\n\n // Notify callback\n this.callbacks.onSessionEnd?.(endedSessionId, duration);\n }\n\n /**\n * Force end the session (for app background, page hide, etc.)\n */\n forceEndSession(): void {\n if (this.sessionId) {\n this.endSession();\n }\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n /**\n * Set session timeout\n */\n setTimeout(timeout: number): void {\n this.timeout = timeout;\n }\n\n private async persistSession(): Promise<void> {\n if (!this.storage || !this.sessionId) return;\n\n try {\n await Promise.all([\n this.storage.set(STORAGE_KEYS.SESSION_ID, this.sessionId),\n this.storage.set(\n STORAGE_KEYS.SESSION_LAST_ACTIVITY,\n String(this.lastActivity)\n ),\n ]);\n } catch (error) {\n this.log(\"Error persisting session:\", error);\n }\n }\n\n private async persistLastActivity(): Promise<void> {\n if (!this.storage) return;\n\n try {\n await this.storage.set(\n STORAGE_KEYS.SESSION_LAST_ACTIVITY,\n String(this.lastActivity)\n );\n } catch (error) {\n this.log(\"Error persisting last activity:\", error);\n }\n }\n\n private async clearStoredSession(): Promise<void> {\n if (!this.storage) return;\n\n try {\n await Promise.all([\n this.storage.remove(STORAGE_KEYS.SESSION_ID),\n this.storage.remove(STORAGE_KEYS.SESSION_LAST_ACTIVITY),\n ]);\n } catch (error) {\n this.log(\"Error clearing stored session:\", error);\n }\n }\n\n private log(...args: unknown[]): void {\n if (this.debug) {\n console.log(\"[PIH Session]\", ...args);\n }\n }\n}\n","import { PIHError } from \"./errors.js\";\nimport type {\n TrackEvent,\n TrackResponse,\n IdentifyPayload,\n IdentifyResponse,\n TransportOptions,\n SDKMeta,\n FeatureFlags,\n} from \"./types.js\";\n\n/**\n * Transport configuration\n */\nexport interface TransportConfig {\n /** API base URL */\n apiUrl: string;\n /** API key for authentication */\n apiKey: string;\n /** Tenant ID for multi-tenancy */\n tenantId?: string;\n /** Debug mode */\n debug?: boolean;\n /** SDK metadata for headers */\n sdkMeta?: SDKMeta;\n}\n\n/**\n * HTTP transport for sending events to the ingest API\n */\n/**\n * Default SDK metadata\n */\nconst DEFAULT_SDK_META: SDKMeta = {\n name: \"pih-sdk-core\",\n version: \"0.3.0\",\n};\n\nexport class Transport {\n private apiUrl: string;\n private apiKey: string;\n private tenantId?: string;\n private debug: boolean;\n private sdkMeta: SDKMeta;\n\n constructor(config: TransportConfig) {\n this.apiUrl = config.apiUrl.replace(/\\/$/, \"\"); // Remove trailing slash\n this.apiKey = config.apiKey;\n this.tenantId = config.tenantId;\n this.debug = config.debug ?? false;\n this.sdkMeta = config.sdkMeta ?? DEFAULT_SDK_META;\n }\n\n /**\n * Send a batch of events to the track endpoint\n */\n async sendEvents(\n events: TrackEvent[],\n options?: TransportOptions\n ): Promise<TrackResponse> {\n const url = `${this.apiUrl}/v1/track`;\n const apiEvents = events.map((e) => this.toTrackApiPayload(e));\n const body = JSON.stringify({ events: apiEvents });\n\n this.log(\"Sending\", events.length, \"events to\", url);\n\n // Try sendBeacon first if requested (for page hide scenarios)\n if (options?.useBeacon && typeof navigator !== \"undefined\" && typeof navigator.sendBeacon === \"function\") {\n const sent = this.sendViaBeacon(url, body);\n if (sent) {\n this.log(\"Events sent via sendBeacon\");\n // sendBeacon doesn't return response, assume success\n return {\n accepted: events.map((e) => ({\n event_id: e.event_id,\n timestamp: e.timestamp,\n })),\n rejected: [],\n stats: {\n received: events.length,\n accepted: events.length,\n rejected: 0,\n processing_time_ms: 0,\n },\n };\n }\n }\n\n // Standard fetch request\n try {\n const response = await this.fetch(url, {\n method: \"POST\",\n headers: this.getHeaders(),\n body,\n keepalive: options?.useBeacon, // Keep connection alive for page hide\n });\n\n if (!response.ok) {\n if (response.status === 429) {\n throw PIHError.rateLimited(\n `Rate limited: ${response.statusText}`,\n { status: response.status }\n );\n }\n throw PIHError.networkError(\n `HTTP ${response.status}: ${response.statusText}`,\n { status: response.status }\n );\n }\n\n const data = (await response.json()) as TrackResponse;\n this.log(\"Track response:\", data);\n return data;\n } catch (error) {\n if (error instanceof PIHError) {\n throw error;\n }\n throw PIHError.networkError(\n `Failed to send events: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n }\n\n /**\n * Send an identify call\n */\n async sendIdentify(payload: IdentifyPayload): Promise<IdentifyResponse> {\n const url = `${this.apiUrl}/v1/identify`;\n const body = JSON.stringify(this.toIdentifyApiPayload(payload));\n\n this.log(\"Sending identify to\", url, payload);\n\n try {\n const response = await this.fetch(url, {\n method: \"POST\",\n headers: this.getHeaders(),\n body,\n });\n\n if (!response.ok) {\n if (response.status === 429) {\n throw PIHError.rateLimited(\n `Rate limited: ${response.statusText}`,\n { status: response.status }\n );\n }\n throw PIHError.networkError(\n `HTTP ${response.status}: ${response.statusText}`,\n { status: response.status }\n );\n }\n\n const data = (await response.json()) as IdentifyResponse;\n this.log(\"Identify response:\", data);\n return data;\n } catch (error) {\n if (error instanceof PIHError) {\n throw error;\n }\n throw PIHError.networkError(\n `Failed to send identify: ${error instanceof Error ? error.message : String(error)}`,\n error\n );\n }\n }\n\n /**\n * Fetch all flags for the authenticated project/environment\n */\n async fetchFlags(): Promise<FeatureFlags> {\n const url = `${this.apiUrl}/v1/flags`;\n this.log(\"Fetching flags from\", url);\n\n try {\n const response = await this.fetch(url, {\n method: \"GET\",\n headers: this.getHeaders(),\n });\n\n if (!response.ok) {\n throw PIHError.networkError(`HTTP ${response.status}: ${response.statusText}`);\n }\n\n const data = (await response.json()) as { flags: FeatureFlags };\n this.log(\"Flags response:\", data);\n return data.flags;\n } catch (error) {\n if (error instanceof PIHError) throw error;\n throw PIHError.networkError(\n `Failed to fetch flags: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * Evaluate flags for a user context\n */\n async evaluateFlags(context: {\n userId?: string | null;\n anonymousId?: string;\n userTraits?: Record<string, unknown>;\n }): Promise<FeatureFlags> {\n const url = `${this.apiUrl}/v1/flags/evaluate`;\n const body = JSON.stringify({\n userId: context.userId ?? undefined,\n anonymousId: context.anonymousId,\n userTraits: context.userTraits,\n });\n\n this.log(\"Evaluating flags at\", url);\n\n try {\n const response = await this.fetch(url, {\n method: \"POST\",\n headers: this.getHeaders(),\n body,\n });\n\n if (!response.ok) {\n throw PIHError.networkError(`HTTP ${response.status}: ${response.statusText}`);\n }\n\n const data = (await response.json()) as { flags: FeatureFlags };\n this.log(\"Evaluate flags response:\", data);\n return data.flags;\n } catch (error) {\n if (error instanceof PIHError) throw error;\n throw PIHError.networkError(\n `Failed to evaluate flags: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n /**\n * Set tenant ID\n */\n setTenantId(tenantId: string): void {\n this.tenantId = tenantId;\n }\n\n /**\n * Set debug mode\n */\n setDebug(enabled: boolean): void {\n this.debug = enabled;\n }\n\n /**\n * Set SDK metadata (used by platform-specific SDKs)\n */\n setSDKMeta(meta: SDKMeta): void {\n this.sdkMeta = meta;\n }\n\n private getHeaders(): Record<string, string> {\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n \"X-SDK-Name\": this.sdkMeta.name,\n \"X-SDK-Version\": this.sdkMeta.version,\n };\n\n if (this.tenantId) {\n headers[\"X-Tenant-Id\"] = this.tenantId;\n }\n\n return headers;\n }\n\n /**\n * Map internal TrackEvent (snake_case) to API payload (camelCase)\n */\n private toTrackApiPayload(event: TrackEvent): Record<string, unknown> {\n return {\n eventId: event.event_id,\n eventName: event.event_name,\n timestamp: event.timestamp,\n anonymousId: event.anonymous_id,\n userId: event.user_id ?? undefined,\n sessionId: event.session_id ?? undefined,\n properties: event.properties,\n userTraits: event.user_traits,\n context: {\n platform: event.platform,\n appVersion: event.app_version ?? undefined,\n ...(event.context ?? {}),\n },\n };\n }\n\n /**\n * Map internal IdentifyPayload (snake_case) to API payload (camelCase)\n */\n private toIdentifyApiPayload(payload: IdentifyPayload): Record<string, unknown> {\n return {\n userId: payload.user_id,\n anonymousId: payload.anonymous_id,\n traits: payload.traits,\n timestamp: payload.timestamp,\n };\n }\n\n private sendViaBeacon(url: string, body: string): boolean {\n try {\n // Create blob with proper content type\n const blob = new Blob([body], { type: \"application/json\" });\n return navigator.sendBeacon(url, blob);\n } catch (error) {\n this.log(\"sendBeacon failed:\", error);\n return false;\n }\n }\n\n private async fetch(\n url: string,\n options: RequestInit\n ): Promise<Response> {\n // Use native fetch\n if (typeof fetch !== \"undefined\") {\n return fetch(url, options);\n }\n\n // This shouldn't happen in modern environments, but throw a clear error\n throw PIHError.networkError(\n \"fetch is not available in this environment\"\n );\n }\n\n private log(...args: unknown[]): void {\n if (this.debug) {\n console.log(\"[PIH Transport]\", ...args);\n }\n }\n}\n","import { PIHError } from \"./errors.js\";\nimport { IdentityManager } from \"./identity.js\";\nimport { EventQueue } from \"./queue.js\";\nimport { SessionManager } from \"./session.js\";\nimport { Transport } from \"./transport.js\";\nimport type {\n PIHConfig,\n TrackEvent,\n TrackOptions,\n StorageAdapter,\n TransportOptions,\n FeatureFlags,\n} from \"./types.js\";\nimport { generateUUID, getTimestamp, dateToTimestamp, DEFAULTS, STORAGE_KEYS } from \"./utils.js\";\n\n/**\n * Base PIH client class\n * Platform-specific SDKs extend this class\n */\nexport class PIHClient {\n protected config: PIHConfig;\n protected storage: StorageAdapter | null = null;\n protected identity: IdentityManager;\n protected session: SessionManager;\n protected transport: Transport;\n protected queue: EventQueue;\n protected initialized = false;\n protected tenantId: string;\n protected sessionNumber = 0;\n protected eventIndex = 0;\n private lastSessionId: string | null = null;\n private flags: FeatureFlags = {};\n private flagRefreshTimer: ReturnType<typeof setInterval> | null = null;\n\n constructor(config: PIHConfig, storage: StorageAdapter | null = null) {\n this.validateConfig(config);\n\n this.config = {\n apiUrl: DEFAULTS.API_URL,\n debug: false,\n flushInterval: DEFAULTS.FLUSH_INTERVAL,\n flushAt: DEFAULTS.FLUSH_AT,\n maxQueueSize: DEFAULTS.MAX_QUEUE_SIZE,\n sessionTimeout: DEFAULTS.SESSION_TIMEOUT,\n ...config,\n };\n\n this.storage = storage;\n this.tenantId = config.tenantId ?? \"\";\n\n // Initialize identity manager\n this.identity = new IdentityManager(storage, this.config.debug);\n\n // Initialize session manager\n this.session = new SessionManager(\n storage,\n this.config.sessionTimeout,\n {\n onSessionStart: (sessionId) => {\n this.log(\"Session started:\", sessionId);\n // Track session_started event\n this.trackInternal(\"session_started\", { session_id: sessionId });\n },\n onSessionEnd: (sessionId, duration) => {\n this.log(\"Session ended:\", sessionId, \"duration:\", duration);\n // Track session_ended event\n this.trackInternal(\"session_ended\", {\n session_id: sessionId,\n duration_ms: duration,\n });\n },\n },\n this.config.debug\n );\n\n // Initialize transport\n this.transport = new Transport({\n apiUrl: this.config.apiUrl!,\n apiKey: this.config.apiKey,\n tenantId: this.tenantId,\n debug: this.config.debug,\n });\n\n // Initialize queue\n this.queue = new EventQueue({\n flushAt: this.config.flushAt!,\n flushInterval: this.config.flushInterval!,\n maxQueueSize: this.config.maxQueueSize!,\n storage,\n transport: this.transport,\n onError: (error, events) => {\n this.config.onError?.(error);\n this.log(\"Queue error:\", error.message, \"events:\", events.length);\n },\n debug: this.config.debug,\n });\n }\n\n /**\n * Initialize the client (load persisted state)\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n await Promise.all([\n this.identity.initialize(),\n this.session.initialize(),\n this.queue.initialize(),\n ]);\n\n // Load persisted session number and event index\n await this.loadSessionEnrichment();\n\n // Load cached flags from storage\n await this.loadCachedFlags();\n\n this.initialized = true;\n this.log(\"Client initialized\");\n\n // Auto-fetch flags (non-blocking)\n if (this.config.featureFlags?.autoFetch !== false) {\n this.refreshFlags().catch((err) => {\n this.log(\"Auto-fetch flags error:\", err);\n });\n\n // Set up periodic refresh\n const refreshInterval = this.config.featureFlags?.refreshInterval ?? 300000; // 5 min\n if (refreshInterval > 0) {\n this.flagRefreshTimer = setInterval(() => {\n this.refreshFlags().catch((err) => {\n this.log(\"Flag refresh error:\", err);\n });\n }, refreshInterval);\n }\n }\n }\n\n /**\n * Set the tenant ID\n */\n setTenant(tenantId: string): void {\n this.tenantId = tenantId;\n this.transport.setTenantId(tenantId);\n this.log(\"Tenant set:\", tenantId);\n }\n\n /**\n * Identify the user\n */\n async identify(\n userId: string,\n traits?: Record<string, unknown>\n ): Promise<void> {\n await this.ensureInitialized();\n\n await this.identity.setUserId(userId);\n if (traits) {\n await this.identity.setUserTraits(traits);\n }\n\n // Send identify call to server\n try {\n await this.transport.sendIdentify({\n project_id: this.config.projectId,\n environment: this.config.environment,\n tenant_id: this.tenantId,\n anonymous_id: this.identity.getAnonymousId(),\n user_id: userId,\n traits,\n timestamp: getTimestamp(),\n });\n } catch (error) {\n const pihError = PIHError.fromUnknown(error);\n this.config.onError?.(pihError);\n this.log(\"Identify error:\", pihError.message);\n }\n\n // Refresh flags after identify (user context changed)\n if (this.config.featureFlags?.autoFetch !== false) {\n this.refreshFlags().catch((err) => {\n this.log(\"Post-identify flag refresh error:\", err);\n });\n }\n }\n\n /**\n * Set user traits without identifying\n */\n async setUserTraits(traits: Record<string, unknown>): Promise<void> {\n await this.ensureInitialized();\n await this.identity.setUserTraits(traits);\n }\n\n /**\n * Track an event\n */\n async track(\n eventName: string,\n properties?: Record<string, unknown>,\n options?: TrackOptions\n ): Promise<void> {\n await this.ensureInitialized();\n\n const event = this.createEvent(eventName, properties, options);\n\n // Touch session to update last activity\n this.session.touch();\n\n if (options?.immediate) {\n // Send immediately, bypassing queue\n try {\n await this.transport.sendEvents([event]);\n } catch (error) {\n const pihError = PIHError.fromUnknown(error);\n this.config.onError?.(pihError);\n this.log(\"Immediate track error:\", pihError.message);\n }\n } else {\n // Add to queue\n await this.queue.enqueue(event);\n }\n }\n\n /**\n * Flush the event queue\n */\n async flush(options?: TransportOptions): Promise<void> {\n await this.ensureInitialized();\n await this.queue.flush(options);\n }\n\n /**\n * Reset identity (logout)\n */\n async reset(): Promise<void> {\n await this.ensureInitialized();\n\n // End current session\n this.session.forceEndSession();\n\n // Reset identity\n await this.identity.reset();\n\n this.log(\"Client reset\");\n }\n\n /**\n * Enable/disable debug mode\n */\n setDebug(enabled: boolean): void {\n this.config.debug = enabled;\n this.identity.setDebug(enabled);\n this.session.setDebug(enabled);\n this.transport.setDebug(enabled);\n this.queue.setDebug(enabled);\n }\n\n /**\n * Get the anonymous ID\n */\n getAnonymousId(): string {\n return this.identity.getAnonymousId();\n }\n\n /**\n * Get the user ID\n */\n getUserId(): string | null {\n return this.identity.getUserId();\n }\n\n /**\n * Get the session ID\n */\n getSessionId(): string | null {\n return this.session.getCurrentSessionId();\n }\n\n /**\n * Get the queue length\n */\n getQueueLength(): number {\n return this.queue.getQueueLength();\n }\n\n /**\n * Check if a feature flag is enabled\n */\n isFeatureEnabled(key: string, defaultValue = false): boolean {\n return this.flags[key] ?? defaultValue;\n }\n\n /**\n * Get a feature flag value\n */\n getFeatureFlag(key: string, defaultValue = false): boolean {\n return this.flags[key] ?? defaultValue;\n }\n\n /**\n * Get all feature flags\n */\n getFeatureFlags(): FeatureFlags {\n return { ...this.flags };\n }\n\n /**\n * Refresh flags from the server\n */\n async refreshFlags(): Promise<void> {\n try {\n const newFlags = await this.transport.evaluateFlags({\n userId: this.identity.getUserId(),\n anonymousId: this.identity.getAnonymousId(),\n userTraits: this.identity.getUserTraits(),\n });\n\n this.flags = newFlags;\n this.persistFlags();\n this.config.featureFlags?.onFlagsUpdated?.(newFlags);\n this.log(\"Flags refreshed:\", Object.keys(newFlags).length, \"flags\");\n } catch (error) {\n this.log(\"Flag refresh error:\", error);\n }\n }\n\n /**\n * Destroy the client (cleanup)\n */\n destroy(): void {\n if (this.flagRefreshTimer) {\n clearInterval(this.flagRefreshTimer);\n this.flagRefreshTimer = null;\n }\n this.queue.destroy();\n this.log(\"Client destroyed\");\n }\n\n /**\n * Internal track method that doesn't require initialization\n * Used for session events during initialization\n */\n protected trackInternal(\n eventName: string,\n properties?: Record<string, unknown>\n ): void {\n const event = this.createEvent(eventName, properties);\n // Fire and forget - don't await\n this.queue.enqueue(event).catch((error) => {\n this.log(\"Internal track error:\", error);\n });\n }\n\n /**\n * Get additional context to include with every event.\n * Override in platform-specific subclasses to add browser/device context.\n */\n protected getContext(): Record<string, unknown> {\n return {};\n }\n\n /**\n * Create a track event\n */\n protected createEvent(\n eventName: string,\n properties?: Record<string, unknown>,\n options?: TrackOptions\n ): TrackEvent {\n const timestamp = options?.timestamp\n ? dateToTimestamp(options.timestamp)\n : getTimestamp();\n\n // Get session ID first (may create a new session)\n const sessionId = this.session.getSessionId();\n\n // Update session enrichment counters (must happen after getSessionId)\n this.updateSessionEnrichment();\n\n // Build context from subclass + session enrichment\n const context: Record<string, unknown> = {\n ...this.getContext(),\n sessionNumber: this.sessionNumber,\n eventIndex: this.eventIndex,\n };\n\n return {\n event_id: generateUUID(),\n timestamp,\n project_id: this.config.projectId,\n environment: this.config.environment,\n tenant_id: this.tenantId,\n event_name: eventName,\n anonymous_id: this.identity.getAnonymousId(),\n user_id: this.identity.getUserId(),\n session_id: sessionId,\n platform: this.config.platform,\n app_version: this.config.appVersion ?? null,\n properties: properties ?? {},\n user_traits: this.identity.getUserTraits(),\n context,\n };\n }\n\n /**\n * Ensure client is initialized\n */\n protected async ensureInitialized(): Promise<void> {\n if (!this.initialized) {\n await this.initialize();\n }\n }\n\n /**\n * Validate configuration\n */\n protected validateConfig(config: PIHConfig): void {\n if (!config.apiKey) {\n throw PIHError.invalidConfig(\"apiKey is required\");\n }\n if (!config.projectId) {\n throw PIHError.invalidConfig(\"projectId is required\");\n }\n if (!config.environment) {\n throw PIHError.invalidConfig(\"environment is required\");\n }\n if (!config.platform) {\n throw PIHError.invalidConfig(\"platform is required\");\n }\n }\n\n /**\n * Load persisted session enrichment data (sessionNumber, eventIndex)\n */\n private async loadSessionEnrichment(): Promise<void> {\n if (!this.storage) return;\n\n try {\n const storedSessionNumber = await this.storage.get(STORAGE_KEYS.SESSION_NUMBER);\n const storedEventIndex = await this.storage.get(STORAGE_KEYS.EVENT_INDEX);\n\n if (storedSessionNumber) {\n this.sessionNumber = parseInt(storedSessionNumber, 10) || 0;\n }\n if (storedEventIndex) {\n this.eventIndex = parseInt(storedEventIndex, 10) || 0;\n }\n } catch (error) {\n this.log(\"Error loading session enrichment:\", error);\n }\n }\n\n /**\n * Update session enrichment counters.\n * Increments sessionNumber when a new session starts, resets eventIndex.\n * Increments eventIndex for every event.\n */\n private updateSessionEnrichment(): void {\n const currentSessionId = this.session.getCurrentSessionId();\n\n if (currentSessionId && currentSessionId !== this.lastSessionId) {\n // New session detected\n this.sessionNumber++;\n this.eventIndex = 0;\n this.lastSessionId = currentSessionId;\n this.persistSessionEnrichment();\n }\n\n this.eventIndex++;\n this.persistEventIndex();\n }\n\n private persistSessionEnrichment(): void {\n if (!this.storage) return;\n this.storage.set(STORAGE_KEYS.SESSION_NUMBER, String(this.sessionNumber)).catch((error) => {\n this.log(\"Error persisting session number:\", error);\n });\n }\n\n private persistEventIndex(): void {\n if (!this.storage) return;\n this.storage.set(STORAGE_KEYS.EVENT_INDEX, String(this.eventIndex)).catch((error) => {\n this.log(\"Error persisting event index:\", error);\n });\n }\n\n /**\n * Load cached flags from storage\n */\n private async loadCachedFlags(): Promise<void> {\n if (!this.storage) return;\n try {\n const stored = await this.storage.get(STORAGE_KEYS.FLAGS);\n if (stored) {\n this.flags = JSON.parse(stored);\n }\n } catch (error) {\n this.log(\"Error loading cached flags:\", error);\n }\n }\n\n /**\n * Persist current flags to storage\n */\n private persistFlags(): void {\n if (!this.storage) return;\n this.storage.set(STORAGE_KEYS.FLAGS, JSON.stringify(this.flags)).catch((error) => {\n this.log(\"Error persisting flags:\", error);\n });\n }\n\n protected log(...args: unknown[]): void {\n if (this.config.debug) {\n console.log(\"[PIH Client]\", ...args);\n }\n }\n}\n","import type { PIHClient, AutocaptureConfig } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * UTM parameter storage key\n */\nconst UTM_STORAGE_KEY = \"pih_utm_params\";\n\n/**\n * UTM parameter names\n */\nconst UTM_PARAMS = [\n \"utm_source\",\n \"utm_medium\",\n \"utm_campaign\",\n \"utm_term\",\n \"utm_content\",\n] as const;\n\n/**\n * Default attribute prefix for action detection\n */\nconst DEFAULT_ATTRIBUTE_PREFIX = \"data-pih-\";\n\n/**\n * Autocapture manager for web SDK\n */\nexport class Autocapture {\n private client: PIHClient;\n private config: AutocaptureConfig;\n private attributePrefix: string;\n private cachedUtmParams: Record<string, string> | null = null;\n private originalPushState: typeof history.pushState | null = null;\n private originalReplaceState: typeof history.replaceState | null = null;\n private boundHandleClick: (e: MouseEvent) => void;\n private boundHandlePopState: () => void;\n private boundHandleSubmit: (e: SubmitEvent) => void;\n\n constructor(client: PIHClient, config: AutocaptureConfig = {}) {\n this.client = client;\n this.config = {\n pageViews: config.pageViews !== false, // default: true\n clicks: config.clicks ?? false, // default: false\n clickSelector: config.clickSelector ?? \"[data-track]\",\n forms: config.forms ?? false, // default: false\n };\n this.attributePrefix = config.attributePrefix ?? DEFAULT_ATTRIBUTE_PREFIX;\n\n this.boundHandleClick = this.handleClick.bind(this);\n this.boundHandlePopState = this.handlePopState.bind(this);\n this.boundHandleSubmit = this.handleSubmit.bind(this);\n }\n\n /**\n * Start autocapture\n */\n start(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n // Load cached UTM params\n this.loadCachedUtmParams();\n\n // Setup page view tracking\n if (this.config.pageViews) {\n this.setupPageViews();\n // Track initial page view\n this.trackPageView();\n }\n\n // Always setup click tracking for data-pih-action detection\n this.setupClickTracking();\n\n // Setup form tracking\n if (this.config.forms) {\n this.setupFormTracking();\n }\n }\n\n /**\n * Stop autocapture\n */\n stop(): void {\n // Restore original history methods\n if (this.originalPushState) {\n history.pushState = this.originalPushState;\n this.originalPushState = null;\n }\n if (this.originalReplaceState) {\n history.replaceState = this.originalReplaceState;\n this.originalReplaceState = null;\n }\n\n // Remove event listeners\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"popstate\", this.boundHandlePopState);\n }\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\"click\", this.boundHandleClick, true);\n document.removeEventListener(\"submit\", this.boundHandleSubmit, true);\n }\n }\n\n /**\n * Manually track a page view\n */\n trackPageView(): void {\n const url = new URL(window.location.href);\n const utmParams = this.extractUtmParams(url);\n\n // Cache UTM params on first page view with UTM\n if (Object.keys(utmParams).length > 0 && !this.cachedUtmParams) {\n this.cachedUtmParams = utmParams;\n this.persistUtmParams(utmParams);\n }\n\n this.client.track(\"page_viewed\", {\n path: url.pathname,\n search: url.search,\n hash: url.hash,\n referrer: document.referrer || null,\n title: document.title,\n url: window.location.href,\n // Include UTM params (from current URL or cached)\n ...this.getUtmParams(url),\n });\n }\n\n /**\n * Setup page view tracking\n */\n private setupPageViews(): void {\n // Monkey-patch History API for SPA navigation\n this.originalPushState = history.pushState;\n this.originalReplaceState = history.replaceState;\n\n const originalPush = this.originalPushState!;\n const originalReplace = this.originalReplaceState!;\n const onNavigate = () => this.trackPageView();\n\n history.pushState = function (...args) {\n originalPush.apply(history, args);\n // Use setTimeout to ensure URL has been updated\n setTimeout(onNavigate, 0);\n };\n\n history.replaceState = function (...args) {\n originalReplace.apply(history, args);\n // Use setTimeout to ensure URL has been updated\n setTimeout(onNavigate, 0);\n };\n\n // Listen for popstate (back/forward navigation)\n window.addEventListener(\"popstate\", this.boundHandlePopState);\n }\n\n /**\n * Handle popstate event\n */\n private handlePopState(): void {\n this.trackPageView();\n }\n\n /**\n * Setup click tracking\n */\n private setupClickTracking(): void {\n document.addEventListener(\"click\", this.boundHandleClick, true);\n }\n\n /**\n * Collect all data-pih-* attributes from an element as properties.\n * Strips the prefix and converts hyphens to underscores for snake_case keys.\n */\n private collectActionAttributes(element: Element): Record<string, string> {\n const props: Record<string, string> = {};\n const attrs = element.attributes;\n for (let i = 0; i < attrs.length; i++) {\n const attr = attrs[i]!;\n if (attr.name.startsWith(this.attributePrefix) && attr.name !== `${this.attributePrefix}action`) {\n const key = attr.name.slice(this.attributePrefix.length).replace(/-/g, \"_\");\n props[key] = attr.value;\n }\n }\n return props;\n }\n\n /**\n * Walk up the DOM from the target looking for an element with the action attribute.\n */\n private findActionElement(target: Element): Element | null {\n const actionAttr = `${this.attributePrefix}action`;\n let el: Element | null = target;\n while (el) {\n if (el.hasAttribute(actionAttr)) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n }\n\n /**\n * Handle click event\n */\n private handleClick(event: MouseEvent): void {\n const target = event.target as Element | null;\n if (!target) return;\n\n // Check for deprecated data-track attribute\n const dataTrackElement = target.closest(\"[data-track]\");\n if (dataTrackElement) {\n console.warn(\"[PIH] data-track is deprecated. Use data-pih-action instead.\");\n }\n\n // Walk up DOM looking for data-pih-action\n const actionElement = this.findActionElement(target);\n\n if (actionElement) {\n const actionName = actionElement.getAttribute(`${this.attributePrefix}action`)!;\n const actionProps = this.collectActionAttributes(actionElement);\n\n this.client.track(\"$action\", {\n action_name: actionName,\n ...actionProps,\n path: window.location.pathname,\n });\n return;\n }\n\n // Fallback: emit $click if clicks config is enabled\n if (!this.config.clicks) return;\n\n // Get element properties for generic click tracking\n const elementTag = target.tagName.toLowerCase();\n const elementText = (target.textContent || \"\").trim().slice(0, 100);\n const elementId = target.id || null;\n const elementClasses = target.className || null;\n const href =\n target instanceof HTMLAnchorElement ? target.href : null;\n\n this.client.track(\"$click\", {\n element_tag: elementTag,\n element_text: elementText,\n element_id: elementId,\n element_classes: elementClasses,\n href,\n path: window.location.pathname,\n });\n }\n\n /**\n * Setup form submission tracking\n */\n private setupFormTracking(): void {\n document.addEventListener(\"submit\", this.boundHandleSubmit, true);\n }\n\n /**\n * Handle form submit event\n */\n private handleSubmit(event: SubmitEvent): void {\n const form = event.target as HTMLFormElement | null;\n if (!form || !(form instanceof HTMLFormElement)) return;\n\n this.client.track(\"form_submitted\", {\n form_id: form.id || undefined,\n form_action: form.action || undefined,\n form_method: (form.method || \"get\").toUpperCase(),\n field_count: form.elements.length,\n });\n }\n\n /**\n * Extract UTM parameters from URL\n */\n private extractUtmParams(url: URL): Record<string, string> {\n const params: Record<string, string> = {};\n for (const key of UTM_PARAMS) {\n const value = url.searchParams.get(key);\n if (value) {\n params[key] = value;\n }\n }\n return params;\n }\n\n /**\n * Get UTM parameters (current URL or cached)\n */\n private getUtmParams(url: URL): Record<string, string> {\n // First check current URL\n const currentParams = this.extractUtmParams(url);\n if (Object.keys(currentParams).length > 0) {\n return currentParams;\n }\n\n // Fall back to cached params\n return this.cachedUtmParams ?? {};\n }\n\n /**\n * Load cached UTM params from storage\n */\n private loadCachedUtmParams(): void {\n try {\n const stored = localStorage.getItem(UTM_STORAGE_KEY);\n if (stored) {\n this.cachedUtmParams = JSON.parse(stored);\n }\n } catch {\n // Ignore storage errors\n }\n }\n\n /**\n * Persist UTM params to storage\n */\n private persistUtmParams(params: Record<string, string>): void {\n try {\n localStorage.setItem(UTM_STORAGE_KEY, JSON.stringify(params));\n } catch {\n // Ignore storage errors\n }\n }\n}\n","import type { PIHClient } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * Beacon manager for flushing events on page hide\n */\nexport class BeaconManager {\n private client: PIHClient;\n private boundHandleVisibilityChange: () => void;\n private boundHandleBeforeUnload: () => void;\n\n constructor(client: PIHClient) {\n this.client = client;\n this.boundHandleVisibilityChange = this.handleVisibilityChange.bind(this);\n this.boundHandleBeforeUnload = this.handleBeforeUnload.bind(this);\n }\n\n /**\n * Start listening for visibility and unload events\n */\n start(): void {\n if (typeof document !== \"undefined\") {\n document.addEventListener(\n \"visibilitychange\",\n this.boundHandleVisibilityChange\n );\n }\n\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"beforeunload\", this.boundHandleBeforeUnload);\n // Also listen for pagehide which is more reliable on mobile\n window.addEventListener(\"pagehide\", this.boundHandleBeforeUnload);\n }\n }\n\n /**\n * Stop listening for events\n */\n stop(): void {\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\n \"visibilitychange\",\n this.boundHandleVisibilityChange\n );\n }\n\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"beforeunload\", this.boundHandleBeforeUnload);\n window.removeEventListener(\"pagehide\", this.boundHandleBeforeUnload);\n }\n }\n\n /**\n * Handle visibility change\n */\n private handleVisibilityChange(): void {\n if (document.visibilityState === \"hidden\") {\n this.flushWithBeacon();\n }\n }\n\n /**\n * Handle before unload\n */\n private handleBeforeUnload(): void {\n this.flushWithBeacon();\n }\n\n /**\n * Flush events using sendBeacon\n */\n private flushWithBeacon(): void {\n // Use sendBeacon for reliability when page is closing\n this.client.flush({ useBeacon: true }).catch(() => {\n // Ignore errors during page unload\n });\n }\n}\n\n/**\n * Check if sendBeacon is available\n */\nexport function isSendBeaconAvailable(): boolean {\n return (\n typeof navigator !== \"undefined\" &&\n typeof navigator.sendBeacon === \"function\"\n );\n}\n","import type { PIHClient } from \"@product-intelligence-hub/sdk-core\";\n\nexport interface BounceBackConfig {\n enabled?: boolean;\n thresholdSeconds?: number;\n}\n\nconst STORAGE_KEY = \"pih_outbound\";\n\ninterface OutboundRecord {\n url: string;\n timestamp: number;\n pihAttributes: Record<string, string>;\n}\n\nexport class BounceBackDetector {\n private client: PIHClient;\n private thresholdMs: number;\n private boundHandleClick: (e: MouseEvent) => void;\n\n constructor(client: PIHClient, config: BounceBackConfig = {}) {\n this.client = client;\n this.thresholdMs = (config.thresholdSeconds ?? 30) * 1000;\n this.boundHandleClick = this.handleClick.bind(this);\n }\n\n start(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") return;\n\n // Check for bounce-back on page load\n this.checkBounceBack();\n\n // Listen for outbound link clicks\n document.addEventListener(\"click\", this.boundHandleClick, true);\n }\n\n stop(): void {\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\"click\", this.boundHandleClick, true);\n }\n }\n\n private handleClick(event: MouseEvent): void {\n const target = event.target as Element | null;\n if (!target) return;\n\n const anchor = target.closest(\"a\");\n if (!anchor || !anchor.href) return;\n\n // Check if external link\n try {\n const linkUrl = new URL(anchor.href);\n if (linkUrl.origin === window.location.origin) return;\n\n // Collect data-pih-* attributes from the anchor\n const pihAttributes: Record<string, string> = {};\n for (const attr of Array.from(anchor.attributes)) {\n if (attr.name.startsWith(\"data-pih-\")) {\n const key = attr.name.slice(\"data-pih-\".length).replace(/-/g, \"_\");\n pihAttributes[key] = attr.value;\n }\n }\n\n // Store outbound record in sessionStorage\n const record: OutboundRecord = {\n url: anchor.href,\n timestamp: Date.now(),\n pihAttributes,\n };\n\n try {\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(record));\n } catch {\n // Ignore storage errors\n }\n } catch {\n // Invalid URL, ignore\n }\n }\n\n private checkBounceBack(): void {\n try {\n const stored = sessionStorage.getItem(STORAGE_KEY);\n if (!stored) return;\n\n // Clean up immediately\n sessionStorage.removeItem(STORAGE_KEY);\n\n const record: OutboundRecord = JSON.parse(stored);\n const timeAway = Date.now() - record.timestamp;\n\n if (timeAway <= this.thresholdMs) {\n this.client.track(\"$bounce_back\", {\n original_click_url: record.url,\n time_away_seconds: Math.round(timeAway / 1000),\n page_returned_to: window.location.href,\n ...record.pihAttributes,\n });\n }\n } catch {\n // Ignore parse/storage errors\n }\n }\n}\n","/**\n * Browser context auto-detection\n * Collects screen, viewport, locale, timezone, connection, device, and page info\n */\n\n/**\n * Detect device type from user agent and screen dimensions\n */\nfunction detectDeviceType(): string {\n if (typeof navigator === \"undefined\" || typeof window === \"undefined\") {\n return \"unknown\";\n }\n\n const ua = navigator.userAgent.toLowerCase();\n\n // Check for tablets first (they can match mobile patterns)\n if (/ipad|tablet|playbook|silk/.test(ua)) {\n return \"tablet\";\n }\n\n // Check for mobile devices\n if (\n /mobile|iphone|ipod|android.*mobile|windows phone|blackberry|opera mini|opera mobi/.test(\n ua\n )\n ) {\n return \"mobile\";\n }\n\n // Fallback: use screen width heuristic\n const screenWidth = window.screen?.width ?? 0;\n if (screenWidth > 0 && screenWidth < 768) {\n return \"mobile\";\n }\n if (screenWidth >= 768 && screenWidth < 1024) {\n return \"tablet\";\n }\n\n return \"desktop\";\n}\n\n/**\n * Get the effective connection type if available\n */\nfunction getConnectionType(): string | undefined {\n if (typeof navigator === \"undefined\") return undefined;\n\n // navigator.connection is experimental and not in all browsers\n const nav = navigator as unknown as Record<string, unknown>;\n const conn = nav[\"connection\"] as\n | { effectiveType?: string }\n | undefined;\n\n return conn?.effectiveType ?? undefined;\n}\n\n/**\n * Collect browser context data.\n * Returns a Record matching EventContextSchema field names.\n */\nexport function getWebContext(): Record<string, unknown> {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return {};\n }\n\n const context: Record<string, unknown> = {\n // Screen dimensions\n screenWidth: window.screen?.width ?? undefined,\n screenHeight: window.screen?.height ?? undefined,\n\n // Viewport dimensions\n viewportWidth: window.innerWidth ?? undefined,\n viewportHeight: window.innerHeight ?? undefined,\n\n // Locale and timezone\n locale: navigator?.language ?? undefined,\n timezone: getTimezone(),\n\n // Device type\n deviceType: detectDeviceType(),\n\n // Page info\n pageUrl: window.location.href,\n pagePath: window.location.pathname,\n pageTitle: document.title || undefined,\n referrer: document.referrer || undefined,\n };\n\n // Connection type (optional API)\n const connectionType = getConnectionType();\n if (connectionType) {\n context[\"connectionType\"] = connectionType;\n }\n\n // Remove undefined values to keep payload clean\n return Object.fromEntries(\n Object.entries(context).filter(([, v]) => v !== undefined)\n );\n}\n\n/**\n * Safely get timezone from Intl API\n */\nfunction getTimezone(): string | undefined {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n return undefined;\n }\n}\n","/**\n * Engagement tracking for time-on-page and scroll depth.\n * Only activates when `autocapture.engagement: true`.\n */\n\nimport type { PIHClient } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * Scroll depth thresholds to track (percentage)\n */\nconst SCROLL_THRESHOLDS = [25, 50, 75, 100] as const;\n\n/**\n * EngagementTracker tracks visible time-on-page and scroll depth.\n */\nexport class EngagementTracker {\n private client: PIHClient | null = null;\n private started = false;\n\n // Time-on-page tracking\n private visibleStartTime = 0;\n private totalVisibleTime = 0;\n\n // Scroll depth tracking\n private reachedThresholds = new Set<number>();\n\n // Bound event handlers for cleanup\n private boundHandleVisibilityChange: () => void;\n private boundHandleScroll: () => void;\n\n constructor() {\n this.boundHandleVisibilityChange = this.handleVisibilityChange.bind(this);\n this.boundHandleScroll = this.handleScroll.bind(this);\n }\n\n /**\n * Start tracking engagement metrics.\n */\n start(client: PIHClient): void {\n if (this.started) return;\n if (typeof window === \"undefined\" || typeof document === \"undefined\") return;\n\n this.client = client;\n this.started = true;\n\n // Reset state\n this.visibleStartTime = Date.now();\n this.totalVisibleTime = 0;\n this.reachedThresholds.clear();\n\n // Start as visible if page is currently visible\n if (document.visibilityState === \"visible\") {\n this.visibleStartTime = Date.now();\n }\n\n // Listen for visibility changes (time-on-page)\n document.addEventListener(\n \"visibilitychange\",\n this.boundHandleVisibilityChange\n );\n\n // Listen for scroll events (scroll depth)\n window.addEventListener(\"scroll\", this.boundHandleScroll, { passive: true });\n }\n\n /**\n * Stop tracking engagement metrics.\n */\n stop(): void {\n if (!this.started) return;\n\n // Send final page_engaged event if there was visible time\n this.accumulateVisibleTime();\n if (this.totalVisibleTime > 0 && this.client) {\n this.client.track(\"page_engaged\", {\n visible_duration_ms: this.totalVisibleTime,\n page_path: typeof window !== \"undefined\" ? window.location.pathname : undefined,\n });\n }\n\n if (typeof document !== \"undefined\") {\n document.removeEventListener(\n \"visibilitychange\",\n this.boundHandleVisibilityChange\n );\n }\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"scroll\", this.boundHandleScroll);\n }\n\n this.started = false;\n this.client = null;\n }\n\n /**\n * Handle visibility change events\n */\n private handleVisibilityChange(): void {\n if (!this.started || !this.client) return;\n\n if (document.visibilityState === \"hidden\") {\n // Page hidden - accumulate visible time and send event\n this.accumulateVisibleTime();\n\n if (this.totalVisibleTime > 0) {\n this.client.track(\"page_engaged\", {\n visible_duration_ms: this.totalVisibleTime,\n page_path: window.location.pathname,\n });\n\n // Reset for next visible period\n this.totalVisibleTime = 0;\n }\n } else {\n // Page became visible again - restart timer\n this.visibleStartTime = Date.now();\n }\n }\n\n /**\n * Add elapsed visible time to total\n */\n private accumulateVisibleTime(): void {\n if (this.visibleStartTime > 0) {\n this.totalVisibleTime += Date.now() - this.visibleStartTime;\n this.visibleStartTime = Date.now();\n }\n }\n\n /**\n * Handle scroll events for depth tracking\n */\n private handleScroll(): void {\n if (!this.started || !this.client) return;\n\n const scrollPercent = this.getScrollPercent();\n\n for (const threshold of SCROLL_THRESHOLDS) {\n if (scrollPercent >= threshold && !this.reachedThresholds.has(threshold)) {\n this.reachedThresholds.add(threshold);\n this.client.track(\"scroll_depth_reached\", {\n depth_percent: threshold,\n page_path: window.location.pathname,\n });\n }\n }\n }\n\n /**\n * Calculate current scroll depth as a percentage (0-100)\n */\n private getScrollPercent(): number {\n const docHeight = Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight\n );\n const viewportHeight = window.innerHeight;\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\n\n const scrollableHeight = docHeight - viewportHeight;\n if (scrollableHeight <= 0) return 100; // No scrolling needed\n\n return Math.min(100, Math.round((scrollTop / scrollableHeight) * 100));\n }\n}\n","/**\n * Error tracking for uncaught errors and unhandled promise rejections.\n * Only activates when `autocapture.errorTracking: true`.\n * Caps at 10 errors per page load to prevent flooding.\n */\n\nimport type { PIHClient } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * Maximum number of errors to report per page load\n */\nconst MAX_ERRORS_PER_PAGE = 10;\n\n/**\n * ErrorTracker captures uncaught errors and unhandled rejections.\n */\nexport class ErrorTracker {\n private client: PIHClient | null = null;\n private started = false;\n private errorCount = 0;\n\n // Bound event handlers for cleanup\n private boundHandleError: (event: ErrorEvent) => void;\n private boundHandleRejection: (event: PromiseRejectionEvent) => void;\n\n constructor() {\n this.boundHandleError = this.handleError.bind(this);\n this.boundHandleRejection = this.handleRejection.bind(this);\n }\n\n /**\n * Start tracking errors.\n */\n start(client: PIHClient): void {\n if (this.started) return;\n if (typeof window === \"undefined\") return;\n\n this.client = client;\n this.started = true;\n this.errorCount = 0;\n\n window.addEventListener(\"error\", this.boundHandleError);\n window.addEventListener(\n \"unhandledrejection\",\n this.boundHandleRejection\n );\n }\n\n /**\n * Stop tracking errors.\n */\n stop(): void {\n if (!this.started) return;\n\n if (typeof window !== \"undefined\") {\n window.removeEventListener(\"error\", this.boundHandleError);\n window.removeEventListener(\n \"unhandledrejection\",\n this.boundHandleRejection\n );\n }\n\n this.started = false;\n this.client = null;\n }\n\n /**\n * Handle uncaught errors\n */\n private handleError(event: ErrorEvent): void {\n if (!this.started || !this.client) return;\n if (!this.canReport()) return;\n\n this.errorCount++;\n\n this.client.track(\"js_error\", {\n message: event.message || \"Unknown error\",\n filename: event.filename || undefined,\n lineno: event.lineno || undefined,\n colno: event.colno || undefined,\n stack: event.error?.stack || undefined,\n });\n }\n\n /**\n * Handle unhandled promise rejections\n */\n private handleRejection(event: PromiseRejectionEvent): void {\n if (!this.started || !this.client) return;\n if (!this.canReport()) return;\n\n this.errorCount++;\n\n const reason = event.reason;\n const message =\n reason instanceof Error\n ? reason.message\n : typeof reason === \"string\"\n ? reason\n : \"Unhandled promise rejection\";\n const stack = reason instanceof Error ? reason.stack : undefined;\n\n this.client.track(\"js_error\", {\n message,\n filename: undefined,\n lineno: undefined,\n colno: undefined,\n stack,\n });\n }\n\n /**\n * Check if we can still report errors (under the cap)\n */\n private canReport(): boolean {\n return this.errorCount < MAX_ERRORS_PER_PAGE;\n }\n}\n","/**\n * Performance tracking using web-vitals library.\n * Tracks LCP, FID, CLS, INP, TTFB as `web_vital` events.\n * Only activates when `autocapture.performance: true`.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { PIHClient } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * Web Vital metric shape (matches web-vitals library output)\n */\ninterface WebVitalMetric {\n name: string;\n value: number;\n rating: \"good\" | \"needs-improvement\" | \"poor\";\n}\n\n/**\n * Minimal type for the web-vitals module (optional peer dependency)\n */\ninterface WebVitalsModule {\n onLCP?: (cb: (metric: WebVitalMetric) => void) => void;\n onFID?: (cb: (metric: WebVitalMetric) => void) => void;\n onCLS?: (cb: (metric: WebVitalMetric) => void) => void;\n onINP?: (cb: (metric: WebVitalMetric) => void) => void;\n onTTFB?: (cb: (metric: WebVitalMetric) => void) => void;\n}\n\n/**\n * PerformanceTracker captures Web Vitals and sends them as events.\n */\nexport class PerformanceTracker {\n private client: PIHClient | null = null;\n private started = false;\n\n /**\n * Start tracking performance metrics.\n * Attempts to dynamically import web-vitals; silently no-ops if unavailable.\n */\n start(client: PIHClient): void {\n if (this.started) return;\n this.client = client;\n this.started = true;\n\n this.initWebVitals();\n }\n\n /**\n * Stop tracking performance metrics.\n */\n stop(): void {\n this.started = false;\n this.client = null;\n }\n\n private async initWebVitals(): Promise<void> {\n try {\n // Dynamic import so web-vitals is optional.\n // Use variable to prevent TypeScript from resolving the module statically.\n const moduleName = \"web-vitals\";\n const webVitals: WebVitalsModule = await import(/* webpackIgnore: true */ moduleName) as any;\n\n const reportMetric = (metric: WebVitalMetric) => {\n if (!this.started || !this.client) return;\n this.client.track(\"web_vital\", {\n name: metric.name,\n value: metric.value,\n rating: metric.rating,\n });\n };\n\n if (webVitals.onLCP) webVitals.onLCP(reportMetric);\n if (webVitals.onFID) webVitals.onFID(reportMetric);\n if (webVitals.onCLS) webVitals.onCLS(reportMetric);\n if (webVitals.onINP) webVitals.onINP(reportMetric);\n if (webVitals.onTTFB) webVitals.onTTFB(reportMetric);\n } catch {\n // web-vitals not installed - silently skip\n if (typeof console !== \"undefined\") {\n console.debug(\n \"[PIH] web-vitals package not found. Install it to enable performance tracking.\"\n );\n }\n }\n }\n}\n","import type { PIHClient } from \"@product-intelligence-hub/sdk-core\";\n\nimport type { RecordingRule, MaskingConfig } from \"./recording-types.js\";\n\n/**\n * Recording config returned from the ingest API\n */\ninterface RecordingConfig {\n enabled: boolean;\n rules: RecordingRule[];\n maxDurationSeconds: number;\n maskingConfig: MaskingConfig;\n}\n\n/**\n * rrweb event type (loosely typed to avoid hard dependency)\n */\ntype RRWebEvent = Record<string, unknown>;\n\n/**\n * Stop function returned by rrweb record\n */\ntype RRWebStopFn = () => void;\n\n/**\n * Rage click state tracker\n */\ninterface RageClickState {\n clicks: Array<{ x: number; y: number; timestamp: number }>;\n}\n\nconst BUFFER_MAX_EVENTS = 50;\nconst BUFFER_FLUSH_INTERVAL_MS = 5_000;\nconst RAGE_CLICK_THRESHOLD = 3;\nconst RAGE_CLICK_WINDOW_MS = 500;\nconst RAGE_CLICK_RADIUS_PX = 30;\n\n/**\n * RecordingManager handles session recording via rrweb.\n * - Fetches recording config from the ingest API\n * - Evaluates rules client-side\n * - Dynamically imports rrweb and starts recording\n * - Buffers events and flushes to the ingest API\n * - Enforces duration cap\n * - Detects rage clicks\n */\nexport class RecordingManager {\n private client: PIHClient;\n private apiUrl: string;\n private apiKey: string;\n private config: RecordingConfig | null = null;\n private buffer: RRWebEvent[] = [];\n private sequence = 0;\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n private durationTimer: ReturnType<typeof setTimeout> | null = null;\n private rrwebStop: RRWebStopFn | null = null;\n private sessionId: string | null = null;\n private recording = false;\n private rageClickState: RageClickState = { clicks: [] };\n private debug: boolean;\n private matchedRule: string | null = null;\n\n constructor(client: PIHClient, apiUrl: string, apiKey: string, debug = false) {\n this.client = client;\n this.apiUrl = apiUrl.replace(/\\/$/, \"\");\n this.apiKey = apiKey;\n this.debug = debug;\n }\n\n /**\n * Start the recording manager: fetch config, evaluate rules, begin recording if matched\n */\n async start(): Promise<void> {\n try {\n await this.fetchConfig();\n\n if (!this.config || !this.config.enabled) {\n this.log(\"Recording not enabled\");\n return;\n }\n\n const matchedRule = this.evaluateRules(this.config.rules);\n if (!matchedRule) {\n this.log(\"No recording rule matched\");\n return;\n }\n\n this.matchedRule = matchedRule.type;\n\n // Check sample rate\n if (Math.random() > matchedRule.sampleRate) {\n this.log(\"Sampled out by rule\", matchedRule.type);\n return;\n }\n\n await this.startRecording();\n } catch (error) {\n this.log(\"Failed to start recording:\", error);\n }\n }\n\n /**\n * Stop recording and flush remaining events\n */\n stop(): void {\n if (this.rrwebStop) {\n this.rrwebStop();\n this.rrwebStop = null;\n }\n\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n\n if (this.durationTimer) {\n clearTimeout(this.durationTimer);\n this.durationTimer = null;\n }\n\n // Flush remaining events\n if (this.buffer.length > 0) {\n this.flush().catch((err) => this.log(\"Final flush error:\", err));\n }\n\n this.recording = false;\n this.removeRageClickListener();\n this.log(\"Recording stopped\");\n }\n\n /**\n * Check if currently recording\n */\n isRecording(): boolean {\n return this.recording;\n }\n\n // ===============================\n // Private methods\n // ===============================\n\n private async fetchConfig(): Promise<void> {\n const url = `${this.apiUrl}/v1/recording-config`;\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch recording config: ${response.status}`);\n }\n\n const data = (await response.json()) as { config: RecordingConfig };\n this.config = data.config;\n this.log(\"Fetched recording config:\", this.config);\n }\n\n private evaluateRules(rules: RecordingRule[]): RecordingRule | null {\n const currentUrl = window.location.href;\n\n for (const rule of rules) {\n switch (rule.type) {\n case \"all_sessions\":\n return rule;\n\n case \"url_match\":\n if (rule.pattern) {\n try {\n const regex = new RegExp(rule.pattern);\n if (regex.test(currentUrl)) {\n return rule;\n }\n } catch {\n this.log(\"Invalid URL regex pattern:\", rule.pattern);\n }\n }\n break;\n\n case \"event_match\":\n // Event match rules are evaluated reactively when events are tracked.\n // For initial evaluation, skip — the SDK will check when events fire.\n break;\n\n case \"rage_click\":\n // Rage click detection is passive; always enable if rule exists.\n return rule;\n }\n }\n\n return null;\n }\n\n private async startRecording(): Promise<void> {\n if (this.recording) return;\n\n this.sessionId = this.client.getSessionId();\n if (!this.sessionId) {\n this.log(\"No session ID available, skipping recording\");\n return;\n }\n\n try {\n // Dynamically import rrweb\n // @ts-expect-error rrweb is a peer dependency, installed separately\n const rrweb = await import(\"rrweb\");\n\n const maskingConfig = this.config?.maskingConfig ?? {\n maskAllInputs: true,\n maskAllText: false,\n maskSelectors: [],\n unmaskSelectors: [],\n blockSelectors: [],\n };\n\n this.rrwebStop = rrweb.record({\n emit: (event: RRWebEvent) => {\n this.onEvent(event);\n },\n maskAllInputs: maskingConfig.maskAllInputs,\n maskTextSelector: maskingConfig.maskAllText ? \"*\" : undefined,\n maskInputOptions: {\n password: true,\n email: maskingConfig.maskAllInputs,\n },\n blockSelector: maskingConfig.blockSelectors.length > 0\n ? maskingConfig.blockSelectors.join(\", \")\n : undefined,\n });\n\n this.recording = true;\n\n // Set up buffer flush interval\n this.flushTimer = setInterval(() => {\n if (this.buffer.length > 0) {\n this.flush().catch((err) => this.log(\"Flush error:\", err));\n }\n }, BUFFER_FLUSH_INTERVAL_MS);\n\n // Set up duration cap\n const maxDuration = (this.config?.maxDurationSeconds ?? 600) * 1000;\n this.durationTimer = setTimeout(() => {\n this.log(\"Duration cap reached, stopping recording\");\n this.stop();\n }, maxDuration);\n\n // Set up rage click detection\n this.setupRageClickDetection();\n\n this.log(\"Recording started for session:\", this.sessionId);\n } catch (error) {\n this.log(\"Failed to import rrweb or start recording:\", error);\n }\n }\n\n private onEvent(event: RRWebEvent): void {\n this.buffer.push(event);\n\n if (this.buffer.length >= BUFFER_MAX_EVENTS) {\n this.flush().catch((err) => this.log(\"Buffer flush error:\", err));\n }\n }\n\n private async flush(): Promise<void> {\n if (this.buffer.length === 0 || !this.sessionId) return;\n\n const events = [...this.buffer];\n this.buffer = [];\n const currentSequence = this.sequence++;\n\n try {\n const url = `${this.apiUrl}/v1/recordings`;\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n sessionId: this.sessionId,\n sequence: currentSequence,\n events,\n pageUrl: window.location.href,\n triggerRule: this.matchedRule ?? undefined,\n }),\n });\n\n if (!response.ok) {\n this.log(\"Failed to upload recording chunk:\", response.status);\n // Re-add events to buffer on failure\n this.buffer.unshift(...events);\n } else {\n this.log(\"Uploaded chunk\", currentSequence, \"with\", events.length, \"events\");\n }\n } catch (error) {\n this.log(\"Failed to upload recording chunk:\", error);\n // Re-add events to buffer on failure\n this.buffer.unshift(...events);\n }\n }\n\n // ===============================\n // Rage click detection\n // ===============================\n\n private boundHandleClick: ((e: MouseEvent) => void) | null = null;\n\n private setupRageClickDetection(): void {\n this.boundHandleClick = this.handleClickForRageDetection.bind(this);\n document.addEventListener(\"click\", this.boundHandleClick, true);\n }\n\n private removeRageClickListener(): void {\n if (this.boundHandleClick) {\n document.removeEventListener(\"click\", this.boundHandleClick, true);\n this.boundHandleClick = null;\n }\n }\n\n private handleClickForRageDetection(event: MouseEvent): void {\n const now = Date.now();\n const { clientX: x, clientY: y } = event;\n\n // Remove old clicks outside the time window\n this.rageClickState.clicks = this.rageClickState.clicks.filter(\n (click) => now - click.timestamp < RAGE_CLICK_WINDOW_MS\n );\n\n this.rageClickState.clicks.push({ x, y, timestamp: now });\n\n // Check if we have enough clicks in the same area\n if (this.rageClickState.clicks.length >= RAGE_CLICK_THRESHOLD) {\n const recentClicks = this.rageClickState.clicks;\n const firstClick = recentClicks[0]!;\n\n const allNearby = recentClicks.every(\n (click) =>\n Math.abs(click.x - firstClick.x) <= RAGE_CLICK_RADIUS_PX &&\n Math.abs(click.y - firstClick.y) <= RAGE_CLICK_RADIUS_PX\n );\n\n if (allNearby) {\n this.client.track(\"rage_click\", {\n x: firstClick.x,\n y: firstClick.y,\n click_count: recentClicks.length,\n page_url: window.location.href,\n });\n\n // Reset to avoid repeated triggers\n this.rageClickState.clicks = [];\n }\n }\n }\n\n private log(...args: unknown[]): void {\n if (this.debug) {\n console.log(\"[PIH Recording]\", ...args);\n }\n }\n}\n","import type { StorageAdapter } from \"@product-intelligence-hub/sdk-core\";\n\n/**\n * In-memory storage fallback when localStorage is unavailable\n */\nclass MemoryStorage implements StorageAdapter {\n private data = new Map<string, string>();\n\n async get(key: string): Promise<string | null> {\n return this.data.get(key) ?? null;\n }\n\n async set(key: string, value: string): Promise<void> {\n this.data.set(key, value);\n }\n\n async remove(key: string): Promise<void> {\n this.data.delete(key);\n }\n}\n\n/**\n * Check if localStorage is available\n */\nfunction isLocalStorageAvailable(): boolean {\n try {\n const testKey = \"__pih_test__\";\n localStorage.setItem(testKey, testKey);\n localStorage.removeItem(testKey);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * localStorage adapter with fallback to in-memory storage\n */\nclass LocalStorageAdapter implements StorageAdapter {\n private fallback: MemoryStorage | null = null;\n private useLocalStorage: boolean;\n\n constructor() {\n this.useLocalStorage = isLocalStorageAvailable();\n if (!this.useLocalStorage) {\n this.fallback = new MemoryStorage();\n console.warn(\n \"[PIH] localStorage unavailable, using in-memory storage. Data will not persist across page loads.\"\n );\n }\n }\n\n async get(key: string): Promise<string | null> {\n if (this.fallback) {\n return this.fallback.get(key);\n }\n\n try {\n return localStorage.getItem(key);\n } catch {\n // localStorage access might fail in some contexts\n if (!this.fallback) {\n this.fallback = new MemoryStorage();\n }\n return this.fallback.get(key);\n }\n }\n\n async set(key: string, value: string): Promise<void> {\n if (this.fallback) {\n return this.fallback.set(key, value);\n }\n\n try {\n localStorage.setItem(key, value);\n } catch (error) {\n // Handle quota exceeded or other errors\n if (!this.fallback) {\n this.fallback = new MemoryStorage();\n console.warn(\n \"[PIH] localStorage write failed, falling back to in-memory storage:\",\n error\n );\n }\n return this.fallback.set(key, value);\n }\n }\n\n async remove(key: string): Promise<void> {\n if (this.fallback) {\n return this.fallback.remove(key);\n }\n\n try {\n localStorage.removeItem(key);\n } catch {\n // Ignore removal errors\n }\n }\n}\n\n/**\n * Create the web storage adapter\n */\nexport function createWebStorage(): StorageAdapter {\n return new LocalStorageAdapter();\n}\n\n/**\n * Export the storage adapter singleton\n */\nexport const webStorage = createWebStorage();\n","import { useSyncExternalStore, useCallback } from \"react\";\n\nimport { getInstance } from \"./index.js\";\n\ntype Listener = () => void;\n\n// Simple pub/sub for flag changes\nconst listeners = new Set<Listener>();\n\nfunction subscribe(listener: Listener): () => void {\n listeners.add(listener);\n return () => listeners.delete(listener);\n}\n\n/**\n * Notify all subscribers of flag changes.\n * Call this after refreshFlags() completes.\n */\nexport function notifyFlagListeners(): void {\n for (const listener of listeners) {\n listener();\n }\n}\n\n/**\n * React hook to check if a feature flag is enabled.\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * const isEnabled = useFeatureFlag(\"enable_ai_chat\");\n * if (!isEnabled) return null;\n * return <AIChatWidget />;\n * }\n * ```\n */\nexport function useFeatureFlag(key: string, defaultValue = false): boolean {\n const getSnapshot = useCallback(() => {\n const client = getInstance();\n return client?.isFeatureEnabled(key, defaultValue) ?? defaultValue;\n }, [key, defaultValue]);\n\n return useSyncExternalStore(subscribe, getSnapshot, () => defaultValue);\n}\n\n/**\n * React hook to get all feature flags.\n *\n * @example\n * ```tsx\n * function FlagDebugPanel() {\n * const flags = useFeatureFlags();\n * return <pre>{JSON.stringify(flags, null, 2)}</pre>;\n * }\n * ```\n */\nexport function useFeatureFlags(): Record<string, boolean> {\n const getSnapshot = useCallback(() => {\n const client = getInstance();\n return client?.getFeatureFlags() ?? {};\n }, []);\n\n // Return stable reference via JSON comparison\n return useSyncExternalStore(\n subscribe,\n getSnapshot,\n () => ({})\n );\n}\n","import {\n PIHClient,\n type PIHConfig,\n type StorageAdapter,\n} from \"@product-intelligence-hub/sdk-core\";\n\nimport { Autocapture } from \"./autocapture.js\";\nimport { BeaconManager } from \"./beacon.js\";\nimport { BounceBackDetector } from \"./bounce-back.js\";\nimport { getWebContext } from \"./context.js\";\nimport { EngagementTracker } from \"./engagement.js\";\nimport { ErrorTracker } from \"./error-tracker.js\";\nimport { PerformanceTracker } from \"./performance.js\";\nimport { RecordingManager } from \"./recording.js\";\nimport { createWebStorage } from \"./storage.js\";\n\n/**\n * Web-specific PIH configuration\n */\nexport interface WebPIHConfig extends Omit<PIHConfig, \"platform\"> {\n /** Platform is always \"web\" for web SDK */\n platform?: \"web\";\n}\n\n/**\n * Web PIH Client\n * Extends the base client with web-specific features\n */\nexport class WebPIHClient extends PIHClient {\n private autocapture: Autocapture | null = null;\n private beacon: BeaconManager;\n private performanceTracker: PerformanceTracker | null = null;\n private engagementTracker: EngagementTracker | null = null;\n private errorTracker: ErrorTracker | null = null;\n private bounceBackDetector: BounceBackDetector | null = null;\n private recordingManager: RecordingManager | null = null;\n\n constructor(config: WebPIHConfig, storage?: StorageAdapter) {\n // Ensure platform is set to \"web\"\n const webConfig: PIHConfig = {\n ...config,\n platform: \"web\",\n };\n\n // Use provided storage or create web storage\n super(webConfig, storage ?? createWebStorage());\n\n // Set SDK metadata for transport headers\n this.transport.setSDKMeta({\n name: \"pih-sdk-web\",\n version: \"0.4.0\",\n });\n\n // Setup beacon manager for flush on page hide\n this.beacon = new BeaconManager(this);\n }\n\n /**\n * Return browser context for every event\n */\n protected override getContext(): Record<string, unknown> {\n return getWebContext();\n }\n\n /**\n * Initialize the web client\n */\n override async initialize(): Promise<void> {\n await super.initialize();\n\n // Start beacon manager\n this.beacon.start();\n\n // Setup autocapture if configured\n if (this.config.autocapture) {\n this.autocapture = new Autocapture(this, this.config.autocapture);\n this.autocapture.start();\n\n // Setup performance tracking (opt-in)\n if (this.config.autocapture.performance) {\n this.performanceTracker = new PerformanceTracker();\n this.performanceTracker.start(this);\n }\n\n // Setup engagement tracking (opt-in)\n if (this.config.autocapture.engagement) {\n this.engagementTracker = new EngagementTracker();\n this.engagementTracker.start(this);\n }\n\n // Setup error tracking (opt-in)\n if (this.config.autocapture.errorTracking) {\n this.errorTracker = new ErrorTracker();\n this.errorTracker.start(this);\n }\n }\n\n // Setup bounce-back detection (opt-in)\n if (this.config.bounceBack?.enabled) {\n this.bounceBackDetector = new BounceBackDetector(this, this.config.bounceBack);\n this.bounceBackDetector.start();\n }\n\n // Setup session recording (opt-in)\n if (this.config.recording?.enabled) {\n this.recordingManager = new RecordingManager(\n this,\n this.config.apiUrl ?? \"https://repoingest-production.up.railway.app\",\n this.config.apiKey,\n this.config.debug\n );\n this.recordingManager.start().catch((error) => {\n this.log(\"Failed to start recording:\", error);\n });\n }\n\n this.log(\"Web client initialized\");\n }\n\n /**\n * Enable autocapture after initialization\n */\n enableAutocapture(config?: PIHConfig[\"autocapture\"]): void {\n if (this.autocapture) {\n this.autocapture.stop();\n }\n this.autocapture = new Autocapture(this, config);\n this.autocapture.start();\n }\n\n /**\n * Disable autocapture\n */\n disableAutocapture(): void {\n if (this.autocapture) {\n this.autocapture.stop();\n this.autocapture = null;\n }\n }\n\n /**\n * Manually track a page view\n */\n trackPageView(): void {\n if (this.autocapture) {\n this.autocapture.trackPageView();\n } else {\n // Track page view without autocapture\n const url = new URL(window.location.href);\n this.track(\"page_viewed\", {\n path: url.pathname,\n search: url.search,\n hash: url.hash,\n referrer: document.referrer || null,\n title: document.title,\n url: window.location.href,\n });\n }\n }\n\n /**\n * Destroy the client\n */\n override destroy(): void {\n this.beacon.stop();\n\n if (this.autocapture) {\n this.autocapture.stop();\n }\n if (this.performanceTracker) {\n this.performanceTracker.stop();\n this.performanceTracker = null;\n }\n if (this.engagementTracker) {\n this.engagementTracker.stop();\n this.engagementTracker = null;\n }\n if (this.errorTracker) {\n this.errorTracker.stop();\n this.errorTracker = null;\n }\n if (this.bounceBackDetector) {\n this.bounceBackDetector.stop();\n this.bounceBackDetector = null;\n }\n if (this.recordingManager) {\n this.recordingManager.stop();\n this.recordingManager = null;\n }\n\n super.destroy();\n }\n\n protected override log(...args: unknown[]): void {\n if (this.config.debug) {\n console.log(\"[PIH Web]\", ...args);\n }\n }\n}\n\n/**\n * Singleton instance\n */\nlet instance: WebPIHClient | null = null;\n\n/**\n * Initialize the PIH Web SDK\n */\nfunction init(config: WebPIHConfig): WebPIHClient {\n if (instance) {\n console.warn(\"[PIH] SDK already initialized. Returning existing instance.\");\n return instance;\n }\n\n instance = new WebPIHClient(config);\n\n // Auto-initialize\n instance.initialize().catch((error) => {\n console.error(\"[PIH] Failed to initialize:\", error);\n });\n\n return instance;\n}\n\n/**\n * Get the current instance\n */\nfunction getInstance(): WebPIHClient | null {\n return instance;\n}\n\n/**\n * Reset the singleton (for testing)\n */\nfunction resetInstance(): void {\n if (instance) {\n instance.destroy();\n instance = null;\n }\n}\n\n// Default export for UMD/IIFE\nconst PIH = {\n init,\n getInstance,\n resetInstance,\n WebPIHClient,\n};\n\nexport default PIH;\nexport { init, getInstance, resetInstance };\n\n// React hooks for feature flags\nexport { useFeatureFlag, useFeatureFlags, notifyFlagListeners } from \"./hooks.js\";\n\n// Re-export types from core\nexport type {\n PIHConfig,\n TrackEvent,\n TrackOptions,\n TransportOptions,\n AutocaptureConfig,\n FeatureFlags,\n FeatureFlagConfig,\n PIHError,\n PIHErrorCode,\n} from \"@product-intelligence-hub/sdk-core\";\n"]}
|