@jillen/analytics
Version:
Lightweight human-visit and Web Vitals analytics for React apps. Framework-agnostic core with a Next.js adapter.
1 lines • 98.7 kB
Source Map (JSON)
{"version":3,"sources":["../src/analytics-host-utils.ts","../src/resource-classification.ts","../src/performance-collector.ts","../package.json","../src/version.ts","../src/send.ts","../src/storage-utils.ts","../src/visitor-tracker.tsx"],"names":["window","classifyResourcePhase","now"],"mappings":"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","file":"index.mjs","sourcesContent":["export function getSiteIdWithFallback(host: string | null): string {\n if (host && host !== 'unknown') {\n return host;\n }\n \n return 'unknown';\n} ","/**\n * Centralized resource classification utilities\n * Single source of truth for resource type mapping and classification logic\n */\n\n// Performance API initiator types to semantic categories mapping\nexport const RESOURCE_TYPE_MAPPING = {\n // Static assets (initial rendering)\n script: 'JavaScript',\n link: 'CSS Stylesheets', // CSS files and preloaded resources\n css: 'Web Fonts', // Fonts loaded via CSS\n img: 'Images',\n navigation: 'Navigation',\n\n // Dynamic resources (post-load)\n fetch: 'API Calls',\n xmlhttprequest: 'API Calls',\n\n // Fallback\n other: 'Other Resources'\n} as const;\n\n// Category names to Performance API types (for filtering)\nexport const CATEGORY_TO_TYPE_MAPPING = {\n 'CSS Stylesheets': 'link', // CSS files appear as 'link' type in Performance API\n 'Sync JavaScript': 'script', // JavaScript files appear as 'script'\n 'Web Fonts': 'css', // Web fonts appear as 'css' type when loaded via CSS\n 'Critical Images': 'img', // Images appear as 'img'\n 'Navigation': 'navigation', // Main document appears as 'navigation'\n 'API Calls': 'fetch', // API calls appear as 'fetch'\n 'JavaScript': 'script', // Dynamic table label\n 'Stylesheets': 'link', // Dynamic table label\n 'Images': 'img', // Dynamic table label\n 'Other Resources': 'other' // Dynamic table label\n} as const;\n\n/**\n * Check if a resource is a static asset based on URL patterns\n */\nexport function isStaticAsset(url: string): boolean {\n // Static file extensions\n const staticExtensions = [\n '.js', '.css', '.woff2', '.woff', '.ttf',\n '.png', '.jpg', '.jpeg', '.svg', '.webp',\n '.ico', '.gif', '.bmp'\n ];\n \n // Static asset patterns\n const staticPatterns = [\n '/_next/static/',\n '/static/',\n '/assets/',\n '/public/'\n ];\n \n // Check file extensions\n if (staticExtensions.some(ext => url.endsWith(ext))) {\n return true;\n }\n \n // Check URL patterns\n if (staticPatterns.some(pattern => url.includes(pattern))) {\n return true;\n }\n \n return false;\n}\n\n/**\n * Check if a URL represents a dynamic endpoint (API, analytics, auth, etc.)\n */\nexport function isDynamicEndpoint(url: string): boolean {\n // Static assets are never dynamic endpoints\n if (isStaticAsset(url)) {\n return false;\n }\n \n // Dynamic endpoint patterns\n const dynamicPatterns = [\n '/api/',\n '/v1/',\n '/log/',\n '/analytics/',\n '/auth/',\n '/sign'\n ];\n \n // Dashboard/admin endpoints (excluding static files)\n if (url.includes('/dashboard') && !isStaticAsset(url)) {\n return true;\n }\n \n return dynamicPatterns.some(pattern => url.includes(pattern));\n}\n\nexport type ResourceKind =\n | 'api'\n | 'script'\n | 'stylesheet'\n | 'font'\n | 'image'\n | 'navigation'\n | 'other';\n\nexport type ResourceConfidence = 'high' | 'medium' | 'low';\n\nexport interface ResourceTypeClassification {\n kind: ResourceKind;\n confidence: ResourceConfidence;\n source?: string;\n}\n\nconst scriptExtensions = /\\.(js|mjs|cjs|jsx|ts|tsx)(\\?|$)/i;\nconst styleExtensions = /\\.(css|scss|sass|less)(\\?|$)/i;\nconst fontExtensions = /\\.(woff2?|ttf|eot|otf)(\\?|$)/i;\nconst imageExtensions = /\\.(jpg|jpeg|png|gif|svg|webp|avif|bmp|ico)(\\?|$)/i;\n\nfunction classifyFromInitiatorType(type: string | undefined): ResourceKind | undefined {\n if (!type) return undefined;\n const normalized = type.toLowerCase();\n\n if (normalized === 'fetch' || normalized === 'xmlhttprequest') return 'api';\n if (normalized === 'script') return 'script';\n if (normalized === 'img' || normalized === 'image') return 'image';\n if (normalized === 'navigation') return 'navigation';\n if (normalized === 'stylesheet') return 'stylesheet';\n if (normalized === 'css') return 'font'; // Fonts often surface as CSS\n if (normalized === 'link') return undefined; // Needs further inspection\n\n return undefined;\n}\n\nfunction classifyFromUrl(url: string): ResourceTypeClassification | undefined {\n if (scriptExtensions.test(url)) return { kind: 'script', confidence: 'medium' };\n if (styleExtensions.test(url)) return { kind: 'stylesheet', confidence: 'medium' };\n if (fontExtensions.test(url)) return { kind: 'font', confidence: 'medium' };\n if (imageExtensions.test(url)) return { kind: 'image', confidence: 'medium' };\n\n if (url.includes('fonts.googleapis.com')) {\n return { kind: 'font', confidence: 'medium', source: 'Google Fonts' };\n }\n if (url.includes('typekit.net') || url.includes('fonts.com')) {\n return { kind: 'font', confidence: 'medium', source: 'External CDN' };\n }\n\n return undefined;\n}\n\n/**\n * Classify a resource into a semantic type with confidence scoring.\n * Used by both initial rendering and dynamic loading views to stay consistent.\n */\nexport function classifyResourceType(resource: {\n name: string;\n initiator_type?: string;\n}): ResourceTypeClassification {\n const initiatorKind = classifyFromInitiatorType(resource.initiator_type);\n\n if (initiatorKind) {\n return { kind: initiatorKind, confidence: 'high' };\n }\n\n // Special handling for link initiators (preloads) and CSS-triggered fonts\n const type = resource.initiator_type?.toLowerCase();\n if (type === 'link') {\n if (styleExtensions.test(resource.name) || resource.name.includes('_next/static/css')) {\n return { kind: 'stylesheet', confidence: 'high' };\n }\n if (scriptExtensions.test(resource.name) || resource.name.includes('_next/static/chunks')) {\n return { kind: 'script', confidence: 'medium', source: 'Link preload script' };\n }\n if (fontExtensions.test(resource.name)) {\n return { kind: 'font', confidence: 'medium', source: 'Link preload font' };\n }\n }\n\n if (type === 'css') {\n const fromUrl = classifyFromUrl(resource.name);\n if (fromUrl) return fromUrl;\n\n return { kind: 'font', confidence: 'medium', source: 'CSS-triggered font' };\n }\n\n const urlClassification = classifyFromUrl(resource.name);\n if (urlClassification) return urlClassification;\n\n if (isDynamicEndpoint(resource.name)) {\n return { kind: 'api', confidence: 'low', source: 'Dynamic endpoint heuristic' };\n }\n\n return {\n kind: 'other',\n confidence: 'low',\n source: resource.initiator_type ? `Unknown initiator: ${resource.initiator_type}` : 'Unknown initiator'\n };\n}\n\n/**\n * Classify a resource as initial rendering or dynamic loading phase\n */\nexport function classifyResourcePhase(resource: {\n initiator_type: string;\n name: string;\n duplicate_count?: number;\n initial_requests?: number;\n dynamic_requests?: number;\n}): 'initial' | 'dynamic' {\n const totalRequests = (resource.initial_requests || 0) + (resource.dynamic_requests || 0);\n \n // API endpoints with multiple hits are dynamic\n if ((resource.initiator_type === 'fetch' || resource.initiator_type === 'xmlhttprequest')) {\n if (totalRequests > 1 || isDynamicEndpoint(resource.name)) {\n return 'dynamic';\n }\n }\n \n // Resources with more dynamic than initial requests\n if ((resource.dynamic_requests || 0) > (resource.initial_requests || 0)) {\n return 'dynamic';\n }\n \n // Dynamic endpoints regardless of timing\n if (isDynamicEndpoint(resource.name) && (resource.dynamic_requests || 0) > 0) {\n return 'dynamic';\n }\n \n // Default to initial for static assets\n return 'initial';\n}\n\n/**\n * Get the semantic category name for a Performance API initiator type\n */\nexport function getSemanticCategory(initiatorType: string): string {\n return RESOURCE_TYPE_MAPPING[initiatorType as keyof typeof RESOURCE_TYPE_MAPPING] || 'Other Resources';\n}\n\n/**\n * Map category name to Performance API type for filtering\n */\nexport function mapCategoryToFilterType(categoryName: string): string {\n return CATEGORY_TO_TYPE_MAPPING[categoryName as keyof typeof CATEGORY_TO_TYPE_MAPPING] || 'all';\n}\n\n/**\n * Get the phase color for UI display\n */\nexport function getPhaseColor(phase: 'initial' | 'dynamic'): string {\n return phase === 'initial' ? 'text-chart-1' : 'text-chart-4';\n}\n\n/**\n * Get the phase text for UI display\n */\nexport function getPhaseText(phase: 'initial' | 'dynamic'): string {\n return phase === 'initial' ? 'INITIAL' : 'DYNAMIC';\n}\n","import { onLCP, onCLS, onINP, Metric } from 'web-vitals';\nimport { classifyResourcePhase as centralClassifyResourcePhase } from './resource-classification';\n\nexport interface FlattenedPageMetrics {\n page: string;\n dns_lookup?: number;\n tcp_connect?: number;\n ttfb?: number;\n html_response?: number;\n frontend_render?: number;\n total_page_load?: number;\n lcp?: number;\n cls?: number;\n inp?: number;\n num_requests: number;\n total_size_kb: number;\n performance_grade: 'good' | 'needs work' | 'poor';\n top_resources: Array<{\n name: string;\n initiator_type: string;\n duration: number;\n duplicate_count?: number;\n initial_hits?: number;\n dynamic_hits?: number;\n transfer_size?: number;\n decoded_body_size?: number;\n domain?: string;\n time_since_load?: number;\n is_async?: boolean;\n }>;\n // Timeline positioning (relative to page load completion)\n async_timeline_start?: number;\n async_timeline_end?: number;\n async_timeline_window?: number;\n \n // API timeline and analysis\n async_api_end?: number;\n async_api_count?: number;\n async_api_parallelism?: number;\n async_api_domains?: Record<string, { count: number; totalDuration: number }>;\n async_api_slowest_endpoints?: Array<{ url: string; duration: number; count: number }>;\n async_api_slowest?: { url: string; duration: number; domain: string };\n \n // Asset analysis (non-API resources)\n async_asset_duration?: number;\n async_asset_count?: number;\n async_asset_by_type?: Record<string, { count: number; totalDuration: number }>;\n async_asset_slowest?: Array<{ name: string; initiator_type: string; duration: number }>;\n timestamp: string;\n}\n\nconst globalWebVitals: { lcp?: number; cls?: number; inp?: number } = {};\nlet webVitalsInitialized = false;\n\nfunction roundCLS(value: number): number {\n return Math.round(value * 1000) / 1000;\n}\n\nfunction sendMetricsToAnalytics(metric: Metric) {\n if (metric.name === 'LCP') globalWebVitals.lcp = Math.round(metric.value);\n if (metric.name === 'CLS') globalWebVitals.cls = roundCLS(metric.value);\n if (metric.name === 'INP') globalWebVitals.inp = Math.round(metric.value);\n}\n\nfunction initializeWebVitals() {\n if (webVitalsInitialized || typeof window === 'undefined') return;\n webVitalsInitialized = true;\n\n onLCP(sendMetricsToAnalytics, { reportAllChanges: true });\n onCLS(sendMetricsToAnalytics, { reportAllChanges: true });\n onINP(sendMetricsToAnalytics, { reportAllChanges: true });\n}\n\nif (typeof window !== 'undefined') {\n initializeWebVitals();\n}\n\nfunction calculatePerformanceGrade(m: {\n total_page_load?: number;\n lcp?: number;\n cls?: number;\n inp?: number;\n}): 'good' | 'needs work' | 'poor' {\n let score = 0;\n let maxScore = 3;\n\n if (m.total_page_load !== undefined && m.total_page_load <= 2500) score++;\n if (m.lcp !== undefined && m.lcp <= 2500) score++;\n if (m.cls !== undefined && m.cls <= 0.1) score++;\n\n if (m.inp !== undefined) {\n maxScore++;\n if (m.inp <= 200) score++;\n }\n\n if (score / maxScore >= 0.75) return 'good';\n if (score / maxScore >= 0.5) return 'needs work';\n return 'poor';\n}\n\nfunction calculateAsyncWindow(\n resources: PerformanceResourceTiming[], \n loadEventEnd: number,\n maxWindowMs: number = 60000 // Default to 60 seconds for page-scoped analytics\n) {\n // Filter resources to on