1<!DOCTYPE html><html lang="en" data-overlayscrollbars-initialize="true"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/assets/index-DZOkdHhq.css" data-precedence="default"/><link rel="preload" href="/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><title>Sign in - InsightFlare</title><meta name="description" content="InsightFlare analytics dashboard"/><link rel="modulepreload" href="/assets/index-CpLR-jxX.js"/><link rel="modulepreload" href="/assets/rolldown-runtime-B0Z9INg1.js"/><link rel="modulepreload" href="/assets/jsx-runtime-Ciaf_P-h.js"/><link rel="modulepreload" href="/assets/react-dom-U4kpXZKZ.js"/><link rel="modulepreload" href="/assets/useNavigate-Dip1SQb9.js"/><link rel="modulepreload" href="/assets/lazyRouteComponent-DVYnU-CZ.js"/><link rel="modulepreload" href="/assets/not-found-i5RsCZif.js"/><link rel="modulepreload" href="/assets/root-DLTE-HSj.js"/><link rel="modulepreload" href="/assets/ClientOnly-Cx_LEO50.js"/><link rel="modulepreload" href="/assets/useStore-BqjczHJa.js"/><link rel="modulepreload" href="/assets/utils-DojpP95n.js"/><link rel="modulepreload" href="/assets/dist-BdfrwR4q.js"/><link rel="modulepreload" href="/assets/constants-CVdNkz4z.js"/><link rel="modulepreload" href="/assets/_locale-CGwffMk6.js"/><link rel="modulepreload" href="/assets/_locale.login-XwXLWTNT.js"/><link rel="modulepreload" href="/assets/label-DwahxUi4.js"/><link rel="modulepreload" href="/assets/auto-transition-DvraAOa0.js"/><link rel="modulepreload" href="/assets/spinner-MmMqBpVw.js"/><link rel="modulepreload" href="/assets/input-CrRQ7D3M.js"/><link rel="modulepreload" href="/assets/dialog-B8D2mxQq.js"/><link rel="modulepreload" href="/assets/auth-page-actions-CpmkcrJy.js"/><link rel="icon" href="/favicon.ico"/><link rel="manifest" href="/site.webmanifest"/></head><body class="antialiased font-mono" data-overlayscrollbars-initialize="true">
1<script>(function(){try{var k='insightflare-theme';var t=localStorage.getItem(k)||'system';var d=t==='dark'||(t==='system'&&matchMedia('(prefers-color-scheme: dark)').matches);document.documentElement.classList.toggle('dark',d);document.documentElement.style.colorScheme=d?'dark':'light'}catch(e){}})();document.currentScript.remove()</script>
1<script>(function(){if(typeof globalThis.__name!=="function"){globalThis.__name=function(target){return target}}})();document.currentScript.remove()</script>
1<!--$--><main class="grid min-h-svh place-items-center p-4"><div data-slot="card" data-size="default" class="group/card flex flex-col gap-4 overflow-hidden rounded-none bg-card py-4 text-xs/relaxed text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[[data-slot=chart]]:overflow-visible has-[>img:first-child]:pt-0 data-[size=sm]:gap-2 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-none *:[img:last-child]:rounded-none w-full max-w-md"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-none px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 space-y-2"><div class="flex w-full items-center justify-center py-8 text-4xl text-primary"><a href="https://github.com/RavelloH/InsightFlare" target="_blank">InsightFlare</a></div><div class="flex items-center justify-between gap-2"><div data-slot="card-title" class="font-medium group-data-[size=sm]/card:text-sm inline-flex items-center gap-2 text-xl"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon size-5"><path d="M4 15H6V20H18V4H6V9H4V3C4 2.44772 4.44772 2 5 2H19C19.5523 2 20 2.44772 20 3V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V15ZM10 11V8L15 12L10 16V13H2V11H10Z"></path></svg>Sign in</div><div class="flex shrink-0 flex-nowrap items-center justify-end gap-2"><button data-slot="dropdown-menu-trigger" data-variant="outline" data-size="default" class="group/button shrink-0 items-center justify-center rounded-none border bg-clip-padding text-xs font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 inline-flex gap-2 bg-background" type="button" aria-label="Theme" id="radix-_R_39ap6_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon size-4 text-muted-foreground"><path d="M12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16ZM11 1H13V4H11V1ZM11 20H13V23H11V20ZM3.51472 4.92893L4.92893 3.51472L7.05025 5.63604L5.63604 7.05025L3.51472 4.92893ZM16.9497 18.364L18.364 16.9497L20.4853 19.0711L19.0711 20.4853L16.9497 18.364ZM19.0711 3.51472L20.4853 4.92893L18.364 7.05025L16.9497 5.63604L19.0711 3.51472ZM5.63604 16.9497L7.05025 18.364L4.92893 20.4853L3.51472 19.0711L5.63604 16.9497ZM23 11V13H20V11H23ZM4 11V13H1V11H4Z"></path></svg><span>Theme</span><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon size-4 text-muted-foreground"><path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path></svg></button><button data-slot="dropdown-menu-trigger" data-variant="outline" data-size="default" class="group/button shrink-0 items-center justify-center rounded-none border bg-clip-padding text-xs font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='
1size-'])]:size-4 border-border hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 inline-flex gap-2 bg-background" type="button" aria-label="Language" id="radix-_R_59ap6_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon size-4 text-muted-foreground"><path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM9.71002 19.6674C8.74743 17.6259 8.15732 15.3742 8.02731 13H4.06189C4.458 16.1765 6.71639 18.7747 9.71002 19.6674ZM10.0307 13C10.1811 15.4388 10.8778 17.7297 12 19.752C13.1222 17.7297 13.8189 15.4388 13.9693 13H10.0307ZM19.9381 13H15.9727C15.8427 15.3742 15.2526 17.6259 14.29 19.6674C17.2836 18.7747 19.542 16.1765 19.9381 13ZM4.06189 11H8.02731C8.15732 8.62577 8.74743 6.37407 9.71002 4.33256C6.71639 5.22533 4.458 7.8235 4.06189 11ZM10.0307 11H13.9693C13.8189 8.56122 13.1222 6.27025 12 4.24799C10.8778 6.27025 10.1811 8.56122 10.0307 11ZM14.29 4.33256C15.2526 6.37407 15.8427 8.62577 15.9727 11H19.9381C19.542 7.8235 17.2836 5.22533 14.29 4.33256Z"></path></svg><span>Language</span><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon size-4 text-muted-foreground"><path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path></svg></button></div></div><div data-slot="card-description" class="text-xs/relaxed text-muted-foreground">Use your InsightFlare account.</div></div><div data-slot="card-content" class="px-4 group-data-[size=sm]/card:px-3 pb-8"><form class="space-y-4" action="/api/public/session" method="post"><input type="hidden" name="next" value="/en/app"/><div class="space-y-2"><label data-slot="label" class="flex items-center gap-2 text-xs leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50" for="username">Username or Email</label><input type="text" data-slot="input" class="h-8 w-full min-w-0 rounded-none border border-input bg-transparent px-2.5 py-1 text-xs transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 md:text-xs dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40" id="username" autoComplete="username" required="" name="username" value=""/></div><div class="space-y-2"><label data-slot="label" class="flex items-center gap-2 text-xs leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50" for="password">Password</label><input type="password" data-slot="input" class="h-8 w-full min-w-0 rounded-none border border-input bg-transparent px-2.5 py-1 text-xs transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 md:text-xs dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40" id="password" autoComplete="current-password" required="" name="password" value=""/></div><button data-slot="button" data-variant="default" data-size="default" class="group/button inline-flex shrink-0 items-center justify-center rounded-none border border-transparent bg-clip-padding text-xs font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='
1size-'])]:size-4 bg-primary text-primary-foreground [a]:hover:bg-primary/80 h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 w-full" type="submit"><div class="inline-flex items-center gap-2" style="opacity:0"><span class="inline-flex items-center gap-2"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="remixicon size-4"><path d="M4 15H6V20H18V4H6V9H4V3C4 2.44772 4.44772 2 5 2H19C19.5523 2 20 2.44772 20 3V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V15ZM10 11V8L15 12L10 16V13H2V11H10Z"></path></svg>Sign in</span></div></button></form></div></div></main><!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false" data-react-aria-top-layer="true"></section>
1<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-CpLR-jxX.js","/assets/rolldown-runtime-B0Z9INg1.js","/assets/jsx-runtime-Ciaf_P-h.js","/assets/react-dom-U4kpXZKZ.js","/assets/useNavigate-Dip1SQb9.js","/assets/lazyRouteComponent-DVYnU-CZ.js","/assets/not-found-i5RsCZif.js","/assets/root-DLTE-HSj.js","/assets/ClientOnly-Cx_LEO50.js","/assets/useStore-BqjczHJa.js","/assets/utils-DojpP95n.js","/assets/dist-BdfrwR4q.js","/assets/constants-CVdNkz4z.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-CpLR-jxX.js"}}],css:$R[8]=["/assets/index-DZOkdHhq.css"]},"/$locale":$R[9]={preloads:$R[10]=["/assets/_locale-CGwffMk6.js"]},"/$locale/login":$R[11]={preloads:$R[12]=["/assets/_locale.login-XwXLWTNT.js","/assets/label-DwahxUi4.js","/assets/auto-transition-DvraAOa0.js","/assets/spinner-MmMqBpVw.js","/assets/input-CrRQ7D3M.js","/assets/dialog-B8D2mxQq.js","/assets/auth-page-actions-CpmkcrJy.js"]}}}
1,matches:$R[13]=[$R[14]={i:"__root__�",u:1791014884643,s:"success",ssr:!0},$R[15]={i:"�$locale�en",u:1791014884643,s:"success",b:$R[16]={locale:"en",messages:$R[17]={appName:"InsightFlare",navigation:$R[18]={overview:"Overview",realtime:"Real-time",pages:"Pages",referrers:"Referrers",sessions:"Sessions",events:"Events",funnels:"Funnels",campaigns:"Campaigns",visitors:"Visitors",retention:"Retention",geo:"Location",devices:"Devices",browsers:"Browsers",performance:"Performance",settings:"Settings"},common:$R[19]={deviceLabels:$R[20]={desktop:"Desktop",mobile:"Mobile",tablet:"Tablet"},timeRelativePair:"{absolute} ({relative})",id:"ID",views:"Views",sessions:"Sessions",visitors:"Visitors",bounceRate:"Bounce Rate",avgDuration:"Avg. Duration",path:"Path",title:"Title",hostname:"Hostname",referrerHost:"Referrer Host",entryPage:"Entry Page",exitPage:"Exit Page",referrer:"Referrer",startedAt:"Started",event:"Event",location:"Location",browser:"Browser",operatingSystem:"Operating System",deviceType:"Device Type",country:"Country",region:"Region",regionCode:"Region Code",city:"City",continent:"Continent",latitude:"Latitude",longitude:"Longitude",continentLabels:$R[21]={AF:"Africa",AN:"Antarctica",AS:"Asia",EU:"Europe",NA:"North America",OC:"Oceania",SA:"South America",AFRICA:"Africa",ANTARCTICA:"Antarctica",ASIA:"Asia",EUROPE:"Europe","NORTH AMERICA":"North America",OCEANIA:"Oceania","SOUTH AMERICA":"South America"},timezone:"Time zone",organization:"Organization",screenSize:"Screen Size",loading:"Loading",noData:"No data",unknown:"Unknown",lastUpdated:"Last updated",site:"Site",team:"Team",management:"Management",backToTeam:"Back to Team",system:"System",account:"Account",theme:"Theme",language:"Language",role:"Role",admin:"Admin",user:"User",search:"Search",open:"Open",sortBy:"Sort by {label}",tableExport:$R[22]={action:"Export",title:"Export CSV",description:"Download table data as a CSV file.",scopeLabel:"Scope",currentTab:"Current tab",allTabs:"All tabs",rowsLabel:"Data",currentView:"Current displayed data",rawRows:"Original data",fileNameLabel:"File name",download:"Export CSV",empty:"No rows available to export."},tableColumns:$R[23]={action:"Columns",title:"Configure columns",description:"Choose which columns to show and drag to reorder them.",visible:"Visible columns",required:"Required",reset:"Reset to default",dragHint:"Drag to reorder",close:"Close"},time:"Time",cycle:"Cycle",close:"Close",sitesFiltered:"{active} / {total} sites filtered",cumulativeTraffic:"Cumulative traffic",cumulativeEvents:"Cumulative events"},ranges:$R[24]={last30m:"30m",last1h:"1h",today:"Today",yesterday:"Yesterday",thisWeek:"This Week",thisMonth:"This Month",thisYear:"This Year",last24h:"Last 24 hours",last7d:"Last 7 days",last30d:"Last 30 days",last90d:"Last 90 days",last6m:"Last 6 months",last12m:"Last 12 months",allTime:"All Time",custom:"Custom Range"},intervals:$R[25]={minute:"Minute",hour:"Hour",day:"Day",week:"Week",month:"Month"},dashboardHeader:$R[26]={range:"Time Range",interval:"Interval",filters:"Filters",filterButton:"Filter",filterButtonEvent:"Filter (Event)",filterButtonSession:"Filter (Session)",filterButtonVisitor:"Filter (Visitor)",customRange:"Select Custom Range",customHint:"Please select a start and end date.",customPendingEnd:"Start date selected. Please pick an end date.",customApply:"Apply date range",rangeGroupQuick:"Quick Ranges",rangeGroupCalendar:"Calendar Periods",rangeGroupRolling:"Rolling Windows",rangeGroupAdvanced:"Advanced",intervalDisabledMinute:"Minute interval is only available within 1 hour.",intervalDisabledHour:"Hour interval is only available within 7 days.",intervalDisabledDay:"Day interval is only available within the last 90 days.",intervalDisabledWeek:"Week interval is only available within the last 12 months.",filterTitle:"Filters",filterSubtitle:"Create and save filters, or use your personal and team saved filters.",filterDisabledRealtime:"Filtering is unavailable on the real-time page.",previousPeriod:"Previous period",nextPeriod:"Next period",customSelectionSummary:"Selected range: {from} to {to} ({days} days)"},filters:$R[27]={country:"Country",device:"Device",browser:"Browser",all:"All",clear:"Clear"},conditionDescription:$R[28]={and:"and",or:"or",not:"not ({description})",emptyConditions:"No conditions",emptyFilter:"No filter conditions",filterEquals:"{field} equals {value}",filterNotEquals:"{field} does not equal {value}",filterAnyOf:"{field} is one of {values}",filterNoneOf:"{field} is none of {values}",filterBetween:"{field} is between {from} and {to}",filterStartsWith:"{field} starts with {value}",filterEndsWith:"{field} ends with {value}"},filterBuilder:$R[29]={fieldGroups:$R[30]={page:"Page",session:"Session",referrer:"Sources & channels",campaign:"Campaign",client:"Client",geography:"Geography",event:"Event"},fieldLabels:$R[31]={"page.path":"Page path","page.title":"Page title","page.hostname":"Page hostname","page.query":"Query string","page.hash":"Hash fragment","session.entryPath":"Entry page","session.exitPath":"Exit page","referrer.domain":"Referrer domain","referrer.url":"Referrer URL","traffic.channel":"Traffic channel","utm.source":"Campaign source","utm.medium":"Campaign medium","utm.campaign":"Campaign name","utm.term":"Campaign term","utm.content":"Campaign content","client.browser":"Browser","client.browserVersion":"Browser version","client.browserEngine":"Browser engine","client.os":"Operating system","client.osVersion":"Operating system version","client.deviceType":"Device type","client.language":"Language","client.screenSize":"Screen size","geo.country":"Country","geo.region":"Region","geo.city":"City","geo.continent":"Continent","geo.timeZone":"Time zone","geo.organization":"Organization","event.name":"Event name","event.payload":"Event payload"},operatorLabels:$R[32]={eq:"Equals",neq:"Does not equal",in:"Is one of",notIn:"Is not one of",contains:"Contains",startsWith:"Starts with",endsWith:"Ends with",gt:"Greater than",gte:"Greater than or equal to",lt:"Less than",lte:"Less than or equal to",between:"Between",exists:"Exists",notExists:"Does not exist",isNull:"Is null",notNull:"Is not null",isEmpty:"Is empty",notEmpty:"Is not empty"},valueType:"Value type",valueKinds:$R[33]={string:"Text",enum:"Option",number:"Number",boolean:"Boolean",date:"Date",datetime:"Date and time","json-scalar":"JSON scalar"},booleanTrue:"True",booleanFalse:"False",valueUnset:"(Not set)",valueLoading:"Loading values",valueSearchPlaceholder:"Search or enter a value",valueListPlaceholder:"Search or enter a value, then press Enter",removeValue:"Remove filter value \"{value}\"",rangeStartPlaceholder:"Lower bound",rangeEndPlaceholder:"Upper bound",jsonPointer:"JSON Pointer",jsonPointerPlaceholder:"Search or enter a JSON pointer",match:"Match",expression:"Filter expression",expressionPlaceholder:"Filter expression...",naturalLanguageDescription:"Natural-language description",expressionInvalid:"Invalid expression. Click to view syntax help.",expressionHelpTitle:"Filter expression syntax",expressionHelpDescription:"Available fields and operators are generated from the active filter contract.",expressionHelpSyntax:"Syntax",expressionHelpLogicDescription:"AND binds more tightly than OR. Use parentheses for nesting; AND(...) and OR(...) preserve an explicit one-condition group.",expressionHelpValues:"Values",expressionHelpValuesDescription:"Strings use JSON double quotes. Numbers and booleans are unquoted. Use [value, value] for sets and exactly two ordered values with between.",expressionHelpOperators:"Available operators",expressionHelpUnaryOperators:"Operators without a value",expressionHelpFields:"Available fields",expressionHelpFieldType:"Type",expressionHelpFieldOperators:"Operators",expressionHelpOtherFields:"Other",savedFiltersLoading:"Loading saved filters...",noSavedFilter:"Do not use a saved filter",systemPresets:"System presets",systemPresetItems:$R[34]={directTraffic:$R[35]={name:"Direct traffic",description:"Visits with no external referrer."},externalReferrals:$R[36]={name:"External referrals",description:"Visits that arrived from an external referrer."},organicSearchDiscovery:$R[37]={name:"Organic search discovery",description:"Search-engine referrals without campaign tags."},organicSocialDiscovery:$R[38]={name:"Organic social discovery",description:"Social-network referrals without campaign tags."},campaignTaggedTraffic:$R[39]={name:"Campaign-tagged traffic",description:"Visits carrying a campaign source, medium, or name."},mobileTraffic:$R[40]={name:"Mobile traffic",description:"Visits from mobile devices."},desktopTraffic:$R[41]={name:"Desktop traffic",description:"Visits from desktop devices."},campaignTaggedExternalAcquisition:$R[42]={name:"Tagged external acquisition",description:"Externally referred visits carrying campaign tags."},campaignTaggedDirectEntry:$R[43]={name:"Tagged direct entry",description:"Direct visits carrying campaign tags."},untaggedExternalReferrals:$R[44]={name:"Untagged external referrals",description:"Externally referred visits without campaign tags."},mobileAcquiredTraffic:$R[45]={name:"Mobile campaign acquisition",description:"Mobile visits from external, campaign-tagged acquisition."},mobileOrganicDiscovery:$R[46]={name:"Mobile organic discovery",description:"Untagged mobile visits discovered through search or social."},desktopDirectAudience:$R[47]={name:"Desktop direct audience",description:"Untagged direct visits from desktop devices."},geographicAttributionGap:$R[48]={name:"Geographic attribution gap",description:"Externally referred visits without a recorded country."},tabletTraffic:$R[49]={name:"Tablet traffic",description:"Visits from tablet devices."}},savedFiltersPersonal:"Personal filters",savedFiltersTeam:"Team filters",savedFiltersAuthor:"Author: {name}",savedFiltersPrivate:"Personal",savedFiltersTeamShared:"Shared with team",saveThisFilter:"Save this filter",saveAsThisFilter:"Save as this filter",manageThisFilter:"Manage this filter",finishEditingFilter:"Finish editing",createSavedFilter:"Save filter",manageSavedFilter:"Manage filter",savedFilterName:"Name",savedFilterDescription:"Notes",scopeLabel:"Filter scope",scopeAuto:"Automatically choose based on the current page",scopeEvent:"Filter events matching these conditions",scopeSession:"Filter sessions containing these events",scopeVisitor:"Filter visitors containing these events",savedFilterVisibility:"Visibility",savedFilterVisibilityPrivate:"Only me",savedFilterVisibilityTeam:"Share with team",savedFilterCreateDescription:"Save the current filter expression to apply it again later.",savedFilterManageDescription:"Update this filter's details or start editing its conditions.",editSavedFilter:"Edit this filter",deleteSavedFilter:"Delete this filter",deleteSavedFilterTitle:"Delete this filter?",deleteSavedFilterDescription:"This cannot be undone, and team members will no longer be able to use it.",savedFilterCancel:"Cancel",savedFilterSave:"Save",savedFilterSaving:"Saving...",savedFilterDelete:"Delete",savedFilterDeleting:"Deleting...",savedFilterOperationFailed:"The operation failed. Please try again.",apply:"Apply Filters",allConditions:"All conditions",anyCondition:"Any condition",condition:"Condition {index}",group:"Group {index}",invertCondition:"Invert this condition",exclude:"Exclude",addGroup:"Add group",invali
1d:"Complete each filter condition before applying."},realtime:$R[50]={title:"Real-time",subtitle:"View traffic from the last 30 minutes.",logTitleSeparator:":",activeNow:"Active now",liveMetrics:"Active now / Visitors in last 30m / Views in last 30m",connected:"Connected",connecting:"Connecting",reconnecting:"Reconnecting",failed:"Failed",recentEvents:"Recent live events",enterPage:"Enter page",leavePage:"Exit page",viewPage:"View page",customEvent:"Custom event",detailsTitle:"Event details",detailsSection:"Information",browsingSection:"Browsing",geographySection:"Geography",sourceSection:"Source",statusLabels:$R[51]={active:"Active",completed:"Completed",open:"Open",complete:"Complete",hidden_pending:"Pending hidden"},visibilityStateLabels:$R[52]={visible:"Visible",hidden:"Hidden"},visibilityVisible:"Page became visible",visibilityHidden:"Page became hidden",visibilityChange:"Page visibility changed",visitorHistorySection:"Visitor activity",visitorHistorySubtitle:"All records for this visitor in the current realtime window.",visitorHistoryRange:"Activity range",visitorHistoryEmpty:"No additional records are available for this visitor yet.",visitorMapSection:"Visitor location",visitorMapSubtitle:"Approximate location inferred from this event's coordinates.",visitorMapUnavailable:"This event does not include usable coordinates.",visitorId:"Visitor ID",sessionId:"Session ID",visitId:"Visit ID",eventType:"Event type",eventTime:"Event time",eventKind:"Event kind",eventName:"Event name",eventId:"Event ID",siteId:"Site ID",traceId:"Trace ID",sequence:"Sequence",receivedAt:"Received at",startedAt:"Started at",previousVisitId:"Previous visit ID",previousVisitStartedAt:"Previous visit started at",userId:"User ID",userName:"User name",isEU:"EU visitor",queryString:"Query string",utmSource:"UTM source",utmMedium:"UTM medium",utmCampaign:"UTM campaign",utmTerm:"UTM term",utmC
1ontent:"UTM content",browserVersion:"Browser version",osVersion:"OS version",userAgent:"User agent",screenWidth:"Screen width",screenHeight:"Screen height",postalCode:"Postal code",metroCode:"Metro code",status:"Status",visibilityState:"Visibility state",hiddenAt:"Hidden at",endedAt:"Ended at",finalizedAt:"Finalized at",duration:"Duration",durationSource:"Duration source",exitReason:"Exit reason",leaveAt:"Left at",performanceVisitId:"Performance visit ID"},overview:$R[53]={title:"Traffic Overview",subtitle:"Monitor high-level performance and audience behavior.",trendTitle:"Traffic Trend",sourceTab:"Source",sourceDomainColumn:"Source (Domain)",sourceLinkTab:"Source Link",sourceLinkColumn:"Source Link",channelTab:"Channel",channelColumn:"Channel",direct:"Direct",channelLabels:$R[54]={direct:"Direct",organic_search:"Organic search",social:"Social",paid_search:"Paid search",paid_social:"Paid social",display:"Display ads",email:"Email",affiliate:"Affiliate",referral:"Referral",campaign:"Campaign",other:"Other"},searchInTab:"Search {tab}"},pages:$R[55]={title:"Pages",subtitle:"Most visited paths in the selected range.",pagesPerSession:"Pages / Session",untitled:"Untitled Page",empty:"No page data matches the current filters.",loadError:"Failed to load page data. Please try again later.",loadMoreError:"Failed to load more pages.",retry:"Retry",trendTitle:"Page Traffic Trend",otherPages:"Other Pages",hashTab:"Anchor",noHash:"No Anchor",queryTab:"Query Params",noQuery:"No Query Params",eventTab:"Events",eventsMetric:"Event count",viewDetails:"View details"},referrers:$R[56]={title:"Referrers",subtitle:"Where traffic comes from.",summaryTitle:"Source Summary",splitTitle:"Traffic Split",chartTitle:"Source Mix",radarTitle:"Top 24 Source Radar",radarSubtitle:"Compare the leading referrers across behavioral metrics.",radarDuration:"Duration",radarEngagement:"Engagement",radarDepth:"Depth",radarLoyalty:"Loyalty",radarFrequency:"Frequency",radarTraffic:"Traffic",directSourceNote:"This traffic arrived without an external referring website.",breakdownTitle:"Source Breakdown",directViews:"Direct Views",uniqueDomains:"Unique Domains",uniqueLinks:"Unique Links",topSource:"Primary External Source",topSourceShare:"Share of Views",noExternalSource:"No external source",externalLabel:"External",nextSources:"Other 4 Sources",longTail:"Long Tail",channelLongTail:"Other channels"},campaigns:$R[57]={title:"Campaigns",subtitle:"UTM campaign performance and traffic attribution.",tabSource:"Source",tabMedium:"Medium",tabCampaign:"Campaign",tabTerm:"Term",tabContent:"Content",breakdownTitle:"UTM Breakdown",notSet:"Not set",noTaggedTraffic:"No tagged campaign traffic in the selected range."},sessions:$R[58]={title:"Sessions",subtitle:"Session-level detail for quality analysis.",search:"Search sessions...",started:"Start Time",sessionId:"Session ID",visitor:"Visitor",anonymous:"Anonymous",entryPage:"Entry Page",exitPage:"Exit Page",duration:"Duration",referrer:"Referrer",location:"Location",os:"OS",browser:"Browser",device:"Device",pageViews:"Page Views",customEvents:"Custom Events",screenSize:"Screen Size",exitTime:"Exit Time",loadError:"Unable to load sessions.",empty:"No sessions in this time range."},sessionDetail:$R[59]={anonymous:"Anonymous",back:"Back to sessions",missing:"Missing sessionId.",notFound:"Session not found.",loadError:"Unable to load session detail.",active:"Active",inactive:"Ended",status:"Status",duration:"Duration",screenViews:"Page Views",events:"Events",bounce:"Bounced?",entryPath:"Entry Path",exitPath:"Exit Path",referrerName:"Referrer Name",os:"OS",browser:"Browser",device:"Device",screen:"Screen",yes:"Yes",no:"No",uniquePages:"Unique Pages",firstEvent:"First Event",lastEvent:"Last Event",sessionStarted:"Session started",pageview:"Pageview",exitPage:"Exit page",customEvent:"Custom event",eventTitleSeparator:": ",visitDetailsTitle:"Visit details",visitDetailsSubtitle:"Session start, pageviews, exits, and custom events in the order they happened.",location:"Location",visitorId:"Visitor ID",sessionId:"Session ID",referrerUrl:"Referrer URL",emptyEvents:"No events recorded.",emptyCustomEvents:"No custom events.",sincePrevious:"Since previous",geoLocationTitle:"Geo location",performanceTitle:"Current session performance",range:"Range"},events:$R[60]={title:"Custom Events",subtitle:"Review event volume, context, payload fields, and raw trigger records.",detailTitle:"Event Detail",detailSubtitle:"Inspect a single event with its context and payload.",typeDetailSubtitle:"Review this event's trend, context distribution, payload schema, and trigger records.",backToEvents:"Back to Events",totalEvents:"Total Events",eventTypes:"Event Types",sessions:"Triggered sessions",visitors:"Triggered visitors",avgEventsPerSession:"Avg Events / Session",shareOfAllEvents:"Share of All Events",triggerCount:"Triggers",triggerVisitors:"Triggered visitors",trendTitle:"Event Trend",topEvents:"Top Events",recordsTitle:"Event Records",fieldsTitle:"Payload Fields",fieldsSubtitle:"Select a field to inspect its values and metadata.",fieldValuesTitle:"Field Values",fieldValuesSubtitle:"Records and occurrence counts for the selected field. Click a row to filter.",fieldValuesEmpty:"No values recorded for this field.",payloadFilter:"Filter",payloadFilterTitle:"Payload Filters",payloadFilterSubtitle:"Add one condition per line. Combine filters with == or !=.",payloadFilterPlaceholder:"path.value == \"a\"\nlevel != 0",payloadFilterApply:"Apply Filters",payloadFilterClear:"Clear Filters",payloadFilterInvalid:"Unable to parse the filter conditions. Check the field path, operator, and value.",expandField:"Expand field",collapseField:"Collapse field",breakdownTitle:"Context Breakdown",search:"Search event name, IDs, visitor, session, page...",eventName:"Event Name",eventId:"Event ID",occurredAt:"Occurred",receivedAt:"Received",page:"Page",context:"Context",visitor:"Visitor",visit:"Visit",referrer:"Referrer",location:"Location",browser:"Browser",os:"OS",device:"Device",payload:"Payload",nodeCount:"Node Count",payloadFields:"Payload Fields",values:"V
1alues",nodes:"Nodes",occurrences:"Occurrences",openVisitor:"Open Visitor",openSession:"Open Session",integratingEvent:"Integrating event ({seconds}s)",copyJson:"Copy JSON",copiedJson:"JSON copied.",copyJsonFailed:"Unable to copy JSON.",copyValue:"Copy value",copiedValue:"Value copied.",copyValueFailed:"Failed to copy value.",loadError:"Unable to load event data.",detailNotFound:"This event record was not found.",empty:"No custom events in this range.",emptyFields:"No payload fields for this event.",noEventName:"Missing event name.",loading:"Loading",other:"Other"},funnels:$R[61]={title:"Funnels",subtitle:"Measure conversion through multi-step user journeys.",listTitle:"Funnel definitions",listSubtitle:"Build a reusable sequence, then inspect conversion for the current dashboard window.",create:"New funnel",createTitle:"Create funnel",createDescription:"Define at least two ordered pageview or custom event steps.",nameLabel:"Name",namePlaceholder:"Signup activation",stepsLabel:"Steps",addStep:"Add step",removeStep:"Remove step",stepTypePageview:"Pageview",stepTypeEvent:"Event",stepValueLabel:"Value",pageviewPlaceholder:"/pricing",eventPlaceholder:"signup_started",save:"Create",creating:"Creating...",cancel:"Cancel",delete:"Delete",deleteTitle:"Delete funnel",deleteDescription:"This removes the saved funnel definition. Historical analytics data is not deleted.",deleteConfirm:"Delete funnel",deleting:"Deleting...",empty:"No funnels yet.",emptyHint:"Create a funnel from pageviews and custom events to track conversion.",loadError:"Unable to load funnels.",detailLoadError:"Unable to load funnel analysis.",invalidFunnel:"Add a name and at least two complete steps.",created:"Funnel created.",createFailed:"Unable to create funnel.",deleted:"Funnel deleted.",deleteFailed:"Unable to delete funnel.",overallConversion:"Overall conversion",startedSessions:"Started sessions",convertedSessions:"Converted sessions",convertedVisitors:"Converted visitors",largestDropOff:"Largest drop-off",noDropOff:"No drop-off",step:"Step",sessions:"Sessions",visitors:"Visitors",conversion:"Conversion",stepConversion:"Step conversion rate",dropOff:"Drop-off",updated:"Updated"},visitors:$R[62]={title:"Visitors",subtitle:"Visitor-level breakdown and recency.",search:"Search visitors...",visitor:"Visitor",sessionId:"Session ID",anonymous:"Anonymous",referrer:"Referrer",location:"Location",os:"OS",browser:"Browser",device:"Device",firstSeen:"First Visit",lastSeen:"Last Visit",pageViews:"Page Views",sessions:"Sessions",customEvents:"Custom Events",screenSize:"Screen Size",loadError:"Unable to load visitors.",empty:"No visitors in this time range."},visitorDetail:$R[63]={anonymous:"Anonymous",back:"Back to visitors",missing:"Missing visitorId.",notFound:"Visitor not found.",loadError:"Unable to load visitor detail.",totalDuration:"Total Duration",events:"Events",views:"Pageviews",uniquePages:"Unique Pages",avgPagesPerSession:"Avg Pages/Session",avgEventsPerSession:"Avg Events/Session",avgStay:"Avg. Visit Duration",firstSeen:"First visit",lastSeen:"Last visit",daysActive:"Days Active",avgTimeBetweenSessions:"Avg Time Between Sessions",activity:"Activity",sessionRecords:"Session records",started:"Start Time",visitor:"Visitor",duration:"Duration",referrer:"Referrer",pageViews:"Page Views",visitDetailsTitle:"Visit details",visitDetailsSubtitle:"Session starts, pageviews, exits, and custom events for this visitor in the order they happened.",customEvents:"Custom events",emptyEvents:"No events recorded.",emptyCustomEvents:"No custom events.",emptySessions:"No sessions recorded.",visitorId:"Visitor ID",sessionId:"Session ID",referrerName:"Referrer Name",referrerUrl:"Referrer URL",location:"Location",browser:"Browser",os:"OS",device:"Device",screen:"Screen",entryPath:"Entry Path",exitPath:"Exit Path",sessionStarted:"Session started",pageview:"Pageview",exitPage:"Exit page",customEvent:"Custom event",eventTitleSeparator:": ",sincePrevious:"Since previous",geoLocationTitle:"Geo location",performanceTitle:"Current visitor performance",range:"Range"},retention:$R[64]={title:"Retention",subtitle:"Cohort-based visitor return analysis.",cohortDate:"Cohort date",cohortSize:"Cohort size",periodLabel:"Period {n}",matrixTitle:"Retention Matrix",matrixSubtitle:"Each row is a first-seen cohort; each column shows the share that returned in a later period.",cohortsMetric:"Cohorts",visitorsMetric:"Cohort Visitors",periodOneMetric:"First Return",averageReturnMetric:"Average Return",strongestCohortMetric:"Best Cohort",eligibleVisitors:"Eligible visitors",periodsAnalyzed:"Perio
1ds analyzed",noEligibleCohorts:"No eligible cohorts",overallRetention:"Overall retention",legendLow:"Low",legendHigh:"High",periodZero:"Initial",empty:"Not enough return data in this time range.",emptyHint:"Use a wider range or choose a coarser interval from the top selector to reveal the retention shape sooner.",loadError:"Unable to load retention data.",unavailableCell:"This cohort has not reached this period yet.",visitorsDetail:"Visitors",rateDetail:"Retention",cohortDetail:"Cohort date",sizeDetail:"Cohort size"},geo:$R[65]={title:"Location Analysis",subtitle:"Analyze traffic performance by location.",mapTitle:"Request Geo Distribution",countryLabel:"Country",regionLabel:"Region",cityLabel:"City",back:"Back",viewOnWikipedia:"View on Wikipedia",investigationNotice:"This data comes from the web and may contain errors.",timezoneDeltaVsLocal:"Difference from local time: {delta}",visitorCoordinates:"Visitor Coordinates",ipNotice:"Estimated location via IP. Coordinates are approximate and do not pinpoint a precise address.",multipleNotice:"Estimated locations via IP. Multi-session journeys may span multiple cities.",investigation:$R[66]={countryScopedLabel:"Country's {label}",capital:"Capital",population:"Population",gdp:"GDP",gdpPerCapita:"GDP per capita",marketPenetration:"Market Penetration",region:"Region",currency:"Currency",phonecode:"Phone code",timezone:"Time zone",type:"Type",iso:"ISO",coordinates:"Coordinates",unavailable:"N/A",gdpValue:"{value} million USD",gdpPerCapitaValue:"{value} USD/person",gdpPerCapitaNearAverage:"{value} USD/person (near the world average)",gdpPerCapitaAboveAverage:"{value} USD/person ({percent}% above average)",gdpPerCapitaBelowAverage:"{value} USD/person ({percent}% below average)",marketPenetrationWindow:"{label} ({days} days)",timezoneCount:"{count} time zones",typeLabels:$R[67]={country:"Country",state:"State",province:"Province",prefecture:"Prefecture",city:"City",county:"County",district:"District",town:"Town",village:"Village",municipality:"Municipality",territory:"Territory",section:"Section",adm1:"Admin Level 1",adm2:"Admin Level 2",adm3:"Admin Level 3",adm4:"Admin Level 4",adm5:"Admin Level 5"}}},devices:$R[68]={title:"Devices",subtitle:"Understand visitors by device type, operating system, and screen size.",deviceShareTitle:"Device Type Share",osShareTitle:"Operating System Share",deviceTrendTitle:"Device Type Trend",osTrendTitle:"Operating System Trend",screenDistributionTitle:"Screen Size Distribution",screenDistributionSubtitle:"Surface the most common viewports and responsive breakpoints.",screenBucketTitle:"Breakpoint Buckets",screenPreviewTitle:"Screen Preview",selectedViewportLabel:"Selected viewport",openSiteLabel:"Open site",previewUnavailableLabel:"No previewable screen sizes are available right now.",browserByDeviceTitle:"Device Type à Browser",osByDeviceTitle:"Device Type à Operating System",otherLabel:"Other",screenBucketLabels:$R[69]={phoneCompact:"Compact Phone",phone:"Phone",tablet:"Tablet",laptop:"Laptop",desktopWide:"Wide Desktop",unclassified:"Unclassified"}},browsers:$R[70]={title:"Browsers",subtitle:"Browser distribution and share.",trendTitle:"Browser Share Trend",engineTrendTitle:"Engine Share Trend",versionBreakdownTitle:"Browser Version Breakdown",osBreakdownTitle:"Browser à Operating System",deviceTypeBreakdownTitle:"Browser à Device Type",otherLabel:"Other",browserShareTitle:"Browser Share",engineShareTitle:"Engine Share",caniuseTitle:"Feature Compatibility",caniuseSubtitle:"Check browser support for web features based on your site's visitor data.",caniuseSearchPlaceholder:"Search web features...",caniuseHotFeatures:"Popular Features",caniuseTrendingFeatures:"Recently Changed",caniuseSiteSupport:"Your Site",caniuseGlobalSupport:"Global",caniuseClearSelection:"Clear",caniuseNoMatch:"No matching features found.",caniuseFullSupport:"Full Support",caniusePartialSupport:"Partial Support",caniuseNoSupport:"No Support",radarTitle:"Browser Performance Radar",radarSubtitle:"Compare top browsers across behavioral metrics.",radarDuration:"Duration",radarEngagement:"Engagement",radarDepth:"Depth",radarLoyalty:"Loyalty",radarFrequency:"Frequency",radarTraffic:"Traffic"},performance:$R[71]={title:"Performance",subtitle:"Review real visitor performance by metric, trend, and path.",chartTitle:"Performance Trend",avgLabel:"Average",samplesLabel:"Samples",p50Label:"P50",p75Label:"P75",p95Label:"P95",ttfb:"Time to First Byte",fcp:"First Contentful Paint",lcp:"Largest Contentful Paint",cls:"Cumulative Layout Shift",inp:"Interaction to Next Paint",ttfbDescription:"Measures how long the browser waits before receiving the first byte from the server. It reflects backend latency, network delay, and cache effectiveness.",fcpDescription:"Measures when the first text or image is painted. It reflects how quickly visitors see that the page is starting to load.",lcpDescription:"Measures when the largest visible content element finishes rendering. It is the main loading speed signal for perceived page readiness.",clsDescription:"Measures unexpected layout movement during the page lifecycle. Lower values mean the page is visually stable.",inpDescription:"Measures the latency of user interactions before the next paint. It reflects how responsive the page feels after loading.",msUnit:"ms",secondsUnit:"s",clsUnit:"score",score:"Experience Score",scoreDescription:"Combines P75 loading, stability, and interaction metrics into a 0 to 100 experience score. Higher is better.",great:"Great",needsImprovement:"Needs Improvement",poor:"Poor",datasetTitle:"Dataset Overview",interpretationTitle:"Current Reading",currentReading:"{metric} P75 is {value}, with an experience score of {score} across {samples} samples. Current status: {status}.",metricThresholdText:"Great: {good} or lower; needs improvement: {good} to {poor}; poor: above {poor}.",scoreThresholdText:"Great: above 90; needs improvement: 50 to 90; poor: below 50.",countryHealthTitle:"Country Health",countryHealthSubtitle:"Boundary fill shows {metric} health by country or region.",pathsTitle:"Path Performance",pathsAnalyzedLabel:"Paths analyzed",metricValueColumn:"P75 value",statusColumn:"Status"},share:$R[72]={},siteSettings:$R[73]={title:"Site Settings",subtitle:"Configure this site's basic information and lifecycle.",sections:$R[74]={basic:$R[75]={title:"Basic Information",description:"Manage site identity and public sharing."},tracking:$R[76]={title:"Tracking Settings",description:"Configure how the tracker captures visits and performance data."},blocking:$R[77]={title:"Blocking Rules",description:"Filter collection by request context before events reach storage."},protection:$R[78]={title:"Request Protection",description:"Control how detected bots and hosting or proxy traffic are handled before requests enter analytics."},danger:$R[79]={title:"Danger Zone",description:"Destructive actions and operationally sensitive settings."}},editTitle:"Update Site Info",editSubtitle:"Keep display name and domain up to date.",nameLabel:"Site Name",domainLabel:"Domain",publicSharingTitle:"Public Sharing",publicSharingSubtitle:"Configure this site's public access link. When enabled, anyone with the link can view anal
1ytics data.",publicEnabledLabel:"Enable Public Access",publicSlugLabel:"Public Slug",publicSlugPlaceholder:"e.g. my-site",publicSlugHint:"Customize the URL path identifier. Leave blank to generate one.",publicLinkLabel:"Public Link",publicLinkHint:"Share analytics data with this link after public access is enabled.",publicDisabledHint:"The sharing link appears after public access is enabled.",copiedLink:"Link copied",trackingStrengthGroupTitle:"Tracking Strength",trackingStrengthDescription:"Choose how aggressively the tracker identifies visitors.",trackingStrengthLabel:"Tracking Strength Mode",trackingStrengthStrong:"Strong",trackingStrengthSmart:"Smart",trackingStrengthWeak:"Weak",trackingStrengthStrongDescription:"Always use high-precision visitor tracking. This may conflict with privacy regulations such as GDPR in some regions.",trackingStrengthSmartDescription:"Automatically switch tracking strength based on the visitor's country.",trackingStrengthWeakDescription:"Always reduce tracking precision. This can count the same visitor multiple times across visits and make retention impossible.",botProtectionEnabledLabel:"Block detected bots",botProtectionEnabledHint:"High-confidence bot requests are blocked when this is enabled; otherwise they remain included in statistics.",hostingProxyBlockingEnabledLabel:"Block hosting and proxy traffic",hostingProxyBlockingEnabledHint:"Block suspected bot requests from hosting or proxy networks. This is disabled by default.",queryHashGroupTitle:"Query and Hash Tracking",queryHashGroupDescription:"Control how query strings, URL hashes, and Do Not Track are handled.",trackQueryParamsLabel:"Track Query Parameters",trackHashLabel:"Track URL Hash",blockingRulesSave:"Save Blocking Rules",blockingRulesSaving:"Saving Blocking Rules...",blockingRulesDialogs:$R[80]={testButton:"Test",helpButton:"Help",searchButton:"Search",searchTitle:"Search locations",searchDescription:"Search by name or code, then select a result to add it to this card.",searchInputLabel:"Search",searchInputPlaceholder:"Search by name or code",searchCountryLabel:"Country / region",searchRegionLabel:"State / province",searchBack:"Change country",searchLoading:"Loading locations...",searchNoResults:"No matching locations.",searchLoadError:"Locations could not be loaded. Try again later.",searchClose:"Close",helpTitle:"Rule Syntax",helpDescription:"Review the syntax, examples, and precedence for this field.",syntaxTitle:"Syntax",examplesTitle:"Example configuration",actionsTitle:"Rule actions",actionsDescription:"A normal line blocks a match. Prefix a rule with - to allow it. If multiple lines match, the last matching line wins.",actionBlock:"Blocks when {example} matches",actionAllow:"Allows when {example} matches",statusEmpty:"No blocking rules are currently set for {field}.",statusValid:"The current rules are valid.",statusInvalid:"The current rules are invalid. Click Help on the right for details.",errorInvalidRule:"Invalid rule.",errorInvalidLines:"Rules for {field} must be provided one per line.",errorInvalidLine:"Line {line} is not a valid text rule.",errorLineTooLong:"Line {line} is too long.",errorTooManyLines:"Too many rule lines.",errorInvalidPattern:"Line {line} has an invalid rule pattern.",testTitle:"Test Rules",testDescription:"Enter a request value to evaluate the current contents of this card. Unsaved edits are included.",testRun:"Run Test",testClose:"Close",testInvalidRules:"Fix invalid rules before testing.",testInvalidRule:"Invalid rule.",testBlocked:"Blocked",testAllowed:"Allowed",testNoMatch:"No rule matched; this field allows the value.",testMatchedRules:"Matched rules",testActionBlock:"blocks",testActionAllow:"allows",testLine:"Line"},blockingRulesFields:$R[81]={domains:$R[82]={title:"Domains",label:"Domain rules (one per line)",placeholder:"*\n-example.com\n-*.example.com\nadmin.example.com\n",hint:"Matches the page hostname. Use * with -domain.com for an allowlist.",syntax:"Each line: [ - ] hostname-glob\nLines starting with # are treated as comments and ignored.\nUse * as a wildcard. A leading - creates an allow rule.\nMatching is case-insensitive and uses the page hostname.\n",examples:$R[83]=["*","-example.com","-*.example.com","admin.example.com"],exampleDescription:"This configuration first blocks every domain, then allows example.com and its subdomains, and finally blocks the exact admin.example.com domain again.",testLabel:"Hostname",testPlaceholder:"www.example.com",testHint:"Enter the page hostname without a scheme or path."},paths:$R[84]={title:"Paths",label:"Path rules (one per line)",placeholder:"/admin/*\n/checkout/*/confirm\n-/admin/health\n",hint:"Matches normalized URL paths with glob syntax.",syntax:"Each line: [ - ] /path-glob\nLines starting with # are treated as comments and ignored.\nPaths start with / and * matches any characters.\nMatching is case-sensitive after URL path normalization.\n",examples:$R[85
1]=["/admin/*","/checkout/*/confirm","-/admin/health"],exampleDescription:"This configuration blocks paths under /admin/ and paths matching /checkout/*/confirm, while allowing /admin/health.",testLabel:"URL path",testPlaceholder:"/admin/settings",testHint:"Enter the pathname only, including its leading slash."},queryParameters:$R[86]={title:"Query Parameters",label:"Query rules (one per line)",placeholder:"utm_*\nutm_source=*\n-utm_source=trusted\n",hint:"Use key or key=value patterns; * is supported in keys and values.",syntax:"Each line: [ - ] key-glob[=value-glob]\nLines starting with # are treated as comments and ignored.\nOmitting = matches any value for the key.\nMatching is case-sensitive and supports * in keys and values.\n",examples:$R[87]=["utm_*","utm_source=*","-utm_source=trusted"],exampleDescription:"This configuration blocks keys beginning with utm_ and any value of utm_source, while allowing utm_source=trusted.",testLabel:"Query string",testPlaceholder:"utm_source=internal&utm_campaign=spring",testHint:"Enter a query string with or without the leading ?."},referrers:$R[88]={title:"Referrers",label:"Referrer rules (one per line)",placeholder:"*.example.com\nsocial.example.com\n-trusted.example.com\n",hint:"Matches the referrer hostname.",syntax:"Each line: [ - ] hostname-glob\nLines starting with # are treated as comments and ignored.\nA URL is reduced to its hostname before matching.\nMatching is case-insensitive and supports *.\n",examples:$R[89]=["*.example.com","social.example.com","-trusted.example.com"],exampleDescription:"This configuration blocks example.com referrers and social.example.com, while allowing trusted.example.com.",testLabel:"Referrer",testPlaceholder:"https://social.example.com/article",testHint:"Enter a referrer URL or hostname."},userAgents:$R[90]={title:"User Agents",label:"User-agent rules (one per line)",placeholder:"*bot*\nMozilla/*\n-Googlebot\n",hint:"Case-insensitive glob matching against the request User-Agent.",syntax:"Each line: [ - ] text-glob\nLines starting with # are treated as comments and ignored.\n* matches any characters in the request User-Agent.\nMatching is case-insensitive.\n",examples:$R[91]=["*bot*","Mozilla/*","-Googlebot"],exampleDescription:"This configuration blocks User-Agent values containing bot and values beginning with Mozilla/, while allowing Googlebot.",testLabel:"User-Agent",testPlaceholder:"Mozilla/5.0 (compatible; ExampleBot/1.0)",testHint:"Enter the complete or partial request User-Agent."},ips:$R[92]={title:"IP Addresses",label:"IP rules (one per line)",placeholder:"203.0.113.15\n2001:db8::1\n203.0.113.0/24\n2001:db8::/32\n-203.0.113.10..203.0.113.20\n",hint:"Supports IPv4/IPv6 addresses, CIDR ranges, and start..end ranges.",syntax:"Each line: [ - ] address | CIDR | start..end\nLines starting with # are treated as comments and ignored.\nIPv4 and IPv6 addresses are supported.\nRanges must use the same address family and be ordered.\n",examples:$R[93]=["203.0.113.15","2001:db8::1","203.0.113.0/24","2001:db8::/32","-203.0.113.10..203.0.113.20"],exampleDescription:"This configuration demonstrates individual IPv4/IPv6 addresses, CIDR ranges, and start..end ranges; the prefixed range is allowed.",testLabel:"IP address",testPlaceholder:"203.0.113.15",testHint:"Enter one IPv4 or IPv6 address to test."},asns:$R[94]={title:"ASNs",label:"ASN rules (one per line)",placeholder:"64500\n*\n-64501\n",hint:"Match the numeric autonomous system number from Cloudflare metadata.",syntax:"Each line: [ - ] ASN-number\nLines starting with # are treated as comments and ignored.\nUse * to match any ASN.\nThe optional AS prefix is accepted when testing metadata values.\n",examples:$R[95]=["64500","*","-64501"],exampleDescription:"This configuration blocks ASN 64500 and any ASN, while the final rule allows ASN 64501.",testLabel:"ASN",testPlaceholder:"64500",testHint:"Enter the numeric autonomous system number."},countries:$R[96]={title:"Countries / Regions",label:"Country rules (one per line)",placeholder:"DE\n*\n-US\n",hint:"Use ISO 3166-1 alpha-2 country codes.",syntax:"Each line: [ - ] ISO-3166-alpha-2\nLines starting with # are treated as comments and ignored.\nUse * to match any country.\nCountry codes are matched case-insensitively.\n",examples:$R[97]=["DE","*","-US"],exampleDescription:"This configuration blocks DE and any country, while the final rule allows US.",testLabel:"Country code",testPlaceholder:"DE",testHint:"Enter an ISO 3166-1 alpha-2 country code."},regions:$R[98]={title:"States / Provinces",label:"Region rules (one per line)",placeholder:"DE-BE\n*\n-US-CA\n",hint:"Use COUNTRY-REGION_CODE values from Cloudflare metadata.",syntax:"Each line: [ - ] COUNTRY-REGION_CODE\nLines starting with # are treated as comments and ignored.\nUse * to match any region.\nRegion values are matched case-insensitively.\n",examples:$R[99]=["DE-BE","*","-US-CA"],exampleDescription:"This configuration blocks DE-BE and any region, while the final rule allows US-CA.",testLabel:"Region code",testPlaceholder:"US-CA",testHint:"Enter the COUNTRY-REGION_CODE value from metadata."}},ignoreDoNotTrackLabel:"Ignore Browser Do Not Track",autoTrackGroupTitle:"Auto Tracking",autoTrackGroupDescription:"Control automatic event capture behavior.",autoTrackOutboundLinksLabel:"Auto-track outbound link clicks",autoTrackOutboundLinksHint:"When enabled, clicking links to external domains automatically reports outbound_click events.",performanceGroupTitle:"Performance Tracking",performanceGroupDescription:"Control Web performance metric collection with a sampling rate.",performanceSampleRateLabel:"Performance Sample Rate (%)",performanceSampleRateHint:"A sampled visit records TTFB, FCP, LCP, CLS, and INP on leave. Use 0 to disable sampling or 100 for full coverage.",booleanOn:"On",booleanOff:"Off",loadingSettings:"Loading script settings...",saveTracking:"Save Tracking Settings",savingTracking:"Saving Tracking Settings...",save:"Save Changes",saving:"Saving...",transferTitle:"Transfer to Another Team",transferSubtitle:"Move this site to another team you can manage.",transferTeamLabel:"Target Team",transfer:"Transfer Site",transferring:"Transferring...",scriptTitle:"Install Tracking Script",scriptSubtitle:"Add this script to your website to start collecting analytics.",scriptHint:"Recommended before \x3C/head>; if needed you can place it before \x3C/body>, but ensure it's loaded once per page.",copyScript:"Copy Script",copiedScript:"Script copied.",loadingScript:"Loading script...",scriptUnavailable:"Script is currently unavailable.",deleteTitle:"Delete Site",deleteSubtitle:"This action will remove the site from this team.",delete:"Delete Site",deleting:"Deleting...",deleteConfirm:"This action cannot be undone. Continue?",toasts:$R[100]={saved:"Site settings saved.",saveFailed:"Failed to save site settings.",transferred:"Site transferred.",transferFailed:"Failed to transfer site.",scriptLoadFailed:"Failed to load script snippet.",settingsLoadFailed:"Failed to load script settings.",settingsPropagationHint:"Global propagation to edge nodes may take up to 1 hour.",deleted:"Site deleted.",deleteFailed:"Failed to delete site.",invalidInput:"Please provide a valid site name and domain."}},accountSettings:$R[101]={title:"Account Settings",subtitle:"Manage your personal details, login password, and dashboard t
1ime zone.",profileTitle:"Personal Details",profileDescription:"Update your display name, username, and email.",nicknameLabel:"Display name",nicknamePlaceholder:"e.g. Product Analyst",usernameLabel:"Username",usernamePlaceholder:"e.g. alex",usernameDescription:"Username can also be used to sign in.",emailLabel:"Email",emailPlaceholder:"[email protected]",invalidProfile:"Enter a valid username and email.",profileSave:"Save details",profileSaving:"Saving...",profileSaved:"Personal details saved.",profileSaveFailed:"Failed to save personal details.",passwordTitle:"Login Password",passwordDescription:"Change the password for your current account.",currentPasswordLabel:"Current password",newPasswordLabel:"New password",confirmPasswordLabel:"Confirm new password",currentPasswordRequired:"Enter your current password.",passwordTooShort:"New password must be at least 8 characters.",passwordMismatch:"New passwords do not match.",passwordSave:"Change password",passwordSaving:"Changing...",passwordSaved:"Password changed.",passwordSaveFailed:"Failed to change password.",preferredLanguageTitle:"Notification Language",preferredLanguageDescription:"Choose the language used for scheduled notification emails.",preferredLanguageLabel:"Email language",preferredLanguageDefault:"Default",preferredLanguageEnglish:"English",preferredLanguageChinese:"Chinese",preferredLanguageJapanese:"Japanese",preferredLanguageSaved:"Notification language saved.",preferredLanguageSaveFailed:"Failed to save notification language.",timeZoneTitle:"Reporting Time Zone",timeZoneDescription:"Calendar ranges and aggregation buckets use this time zone across the dashboard.",activeTimeZone:"Active time zone",browserTimeZone:"Browser time zone",browserUnavailable:"Not detected",browserSource:"Browser",manualSource:"Manual",preferenceLabel:"Time zone preference",preferenceDescription:"Browser mode follows this device. Manual mode keeps the same time zone on every device.",useBrowser:"Use browser time zone",useCustom:"Choose a time zone",customTimeZoneLabel:"Time zone",customTimeZoneDescription:"Choose from supported IANA time zones.",invalidTimeZone:"Please choose a valid IANA time zone.",save:"Save preference",saving:"Saving...",saved:"Time zone preference saved.",saveFailed:"Failed to save time zone preference."},notificationCenter:$R[102]={title:"Notification Center",subtitle:"Review all of your notifications and reports.",empty:"No notifications yet.",loading:"Loading notifications",markRead:"Mark read",markAllRead:"Mark all as read",refresh:"Refresh",attention:"Attention",loadFailed:"Failed to load notifications.",markReadFailed:"Failed to mark notification as read.",markAllReadSuccess:"Notifications marked as read.",markAllReadFailed:"Failed to mark notifications as read.",ruleFilterActive:"Viewing notifications created by this rule.",ruleFilterClear:"Clear rule filter",sections:$R[103]={importantTitle:"Important Notifications",importantDescription:"{count} unread attention items.",importantEmpty:"No important notifications right now.",reportsTitle:"Reports",reportsDescription:"Review recurring reports generated by notification rules.",reportsEmpty:"No reports right now."},tabs:$R[104]={all:"All",unread:"Unread",attention:"Attention",report:"Reports"},tabDescriptions:$R[105]={all:"Total messages",unread:"Waiting for review",attention:"Needs attention",report:"Recurring reports"},messageTypes:$R[106]={report:"Report",milestone:"Milestone",threshold:"Threshold",change:"Change",health:"Health",system:"System",test:"Test"},severities:$R[107]={info:"Info",success:"Success",warning:"Warning",critical:"Critical"},deliveryStatuses:$R[108]={created:"Created",sending:"Sending",sent:"Sent",partial:"Partial",failed:"Failed",skipped:"Skipped"},channels:$R[109]={inApp:"In-app",email:"Email"},channelStatuses:$R[110]={sent:"sent",skipped:"skipped",failed:"failed",created:"created"},emailSkipReasons:$R[111]={user_preference_disabled:"email disabled by user preference",system_email_unconfigured:"system email is not configured",recipient_email_invalid:"recipient email is invalid",secret_decryption_failed:"saved email credentials cannot be decrypted",provider_failed:"provider rejected the message",network_failed:"unable to reach email provider",unknown:"unknown reason"},emailAttempts:"Attempts: {count}",emailRetryCount:"Retries: {count}",emailDuration:"{duration} ms",typeFilterLabel:"Type",severityFilterLabel:"Severity",allTypes:"All types",allSeverities:"All severities",preferencesTitle:"Notification preferences",preferencesDescription:"These settings control email delivery and which messages remain unread for attention.",emailNotificationsLabel:"Email notifications",emailNotificationsDescription:"Send email when a rule triggers.",reportsUnreadLabel:"Reports unread",reportsUnreadDescription:"Keep reports unread after creation.",milestonesUnreadLabel:"Milestones unread",milestonesUnreadDescription:"Reserve unread state for milestones.",alertsUnreadLabel:"Alerts unread",alertsUnreadDescription:"Keep threshold and health alerts unread.",preferencesSaved:"Notification preferences saved.",preferencesSaveFailed:"Failed to save notification preferences.",detailFields:$R[112]={}}
1,notificationEmail:$R[113]={common:$R[114]={brand:"InsightFlare",date:"Date",coreMetrics:"Core metrics",topPages:"Top pages",topReferrers:"Top referrers",views:"views",visitors:"visitors",sessions:"sessions",visits:"visits",viewsUnit:"views",direct:"Direct",metric:"Metric",window:"Window",currentValue:"Current value",previousValue:"Previous value",threshold:"Threshold",milestone:"Milestone",change:"Change",mode:"Mode",lastSeen:"Last seen",never:"Never",noPageData:"No page data yet.",noReferrerData:"No referrer data yet.",footer:"This email was sent by the InsightFlare notification system.",fallbackSubject:"InsightFlare notification",trackingHint:"Check whether the tracking script is installed correctly or whether the site still has traffic.",severity:$R[115]={info:"Info",success:"Success",warning:"Warning",critical:"Critical"}},test:$R[116]={subject:"InsightFlare notification test",title:"InsightFlare notification test",summary:"This is a test notification from InsightFlare.",body:"This is a test notification from InsightFlare. If email is configured and enabled, it also verifies Resend delivery."},report:$R[117]={subject:"{site} {periodLabel} traffic report",title:"{site} {periodLabel} traffic report",summary:"{date}: {visitors} visitors and {views} views.",periodLabels:$R[118]={daily:"daily",weekly:"weekly",monthly:"monthly",quarterly:"quarterly",yearly:"yearly"}},milestone:$R[119]={subject:"{site} reached {bucket} {metric}",title:"{site} reached {bucket} {metric}",summary:"Traffic milestone reached: {bucket} {metric}."},threshold:$R[120]={subject:"{site} traffic threshold reached",title:"{site} traffic threshold reached",summary:"{metric} for {window} is {value}, matching threshold {operator} {target}.",metricLabels:$R[121]={views:"views",visitors:"visitors",sessions:"sessions"},windows:$R[122]={last_1h:"Last 1 hour",last_24h:"Last 24 hours",yesterday:"Yesterday"}},health:$R[123]={subject:"{site} has not received traffic data for {hours} hours",title:"{site} has not received traffic data for {hours} hours",noHistory:"No historical traffic data is available. Check whether the tracking script is installed correctly."},change:$R[124]={subject:"{site} traffic change alert",title:"{site} traffic change alert",summary:"{metric} for {window} changed by {change}."}},runtimeConfigError:$R[125]={title:"Runtime configuration required",eyebrow:"Deployment paused",heading:"InsightFlare needs one runtime secret before the dashboard can load.",description:"The app has started, but the current runtime environment could not read the required root secret, so dashboard access is temporarily blocked.",requiredTitle:"Required runtime secret",requiredDescription:"Set at least one of the following values in your Cloudflare runtime secrets.",secretHint:"MAIN_SECRET is recommended. Existing deployments can continue using DAILY_SALT_SECRET.",commandTitle:"Cloudflare command",commandDescription:"Use the project helper command to write the recommended secret, then redeploy.",quickStartHint:"Or see the Quick Start section in the GitHub README to configure this variable.",docsLabel:"Open GitHub",homeLabel:"Retry dashboard"},login:$R[126]={title:"Sign in",subtitle:"Use your InsightFlare account.",username:"Username or Email",password:"Password",signIn:"Sign in",invalidCredentials:"Invalid username or password."},accountLinks:$R[127]={noSites:"No site is available under this team.",siteNotFound:"Team or site not found.",invite:$R[128]={title:"Team invitation",subtitle:"Accept the invitation to join this team.",loading:"Loading invitation...",missingToken:"Invitation token is missing.",loadFailed:"Failed to load invitation.",accept:"Accept invitation",accepting:"Accepting...",accepted:"Invitation accepted.",acceptFailed:"Failed to accept invitation.",signIn:"Sign in to accept",signedInNotice:"You are signed in. Accepting will add your account to this team.",teamLabel:"Team",roleLabel:"Role",emailLabel:"Invite email",accountEmailLabel:"Account email",anyEmail:"Any email address",expiresLabel:"Expires",usernameLabel:"Username",nameLabel:"Display name",passwordLabel:"Password",roles:$R[129]={admin:"Admin",member:"Member"}},resetPassword:$R[130]={title:"Reset password",subtitle:"Set a new password for this account.",loading:"Loading reset link...",missingToken:"Reset token is missing.",loadFailed:"Failed to load reset link.",reset:"Reset password",resetting:"Resetting...",resetDone:"Password reset. Sign in with the new password.",resetFailed:"Failed to reset password.",signIn:"Back to sign in",accountLabel:"Account",emailLabel:"Email",expiresLabel:"Expires",passwordLabel:"New password",confirmPasswordLabel:"Confirm password",passwordTooShort:"Password must be at least 8 characters.",passwordMismatch:"Passwords do not match."}},empty:$R[131]={noTeams:"No team available yet.",noSites:"No site is available under this team.",siteNotFound:"Team or site not found."},errorPage:$R[132]={notFoundEyebrow:"Page not found",notFoundTitle:"We couldn't find that page",notFoundDescription:"The address may be incorrect, or the page may have moved.",errorEyebrow:"Application error",errorTitle:"Something went wrong",errorDescription:"InsightFlare couldn't complete this request. The diagnostic details below can help us investigate.",statusLabel:"Status",reasonLabel:"Reason",requestLabel:"Request path",timestampLabel:"Timestamp",diagnosticIdLabel:"Diagnostic ID",errorTypeLabel:"Error type",errorMessageLabel:"Error message",notFoundReason:"route_not_found",unexpectedReason:"unexpected_application_error",homeAction:"Return home",reportAction:"Report on GitHub",reportHint:"The report opens a pre-filled GitHub issue. Review it before submitting."},actions:$R[133]={logout:"Logout",switchToEnglish:"English",switchToChinese:"䏿",switchToJa
1panese:"æ¥æ¬èª",switchToLight:"Light",switchToDark:"Dark"},teamSelect:$R[134]={groupLabel:"Team",groups:$R[135]={created:"Created teams",managed:"Managed teams",member:"Member teams",system:"System teams"},createHint:"Create team",createTitle:"Create Team",createDescription:"You will be switched to the new team after creation.",nameLabel:"Team Name",namePlaceholder:"e.g. Growth Team",slugLabel:"Team Slug (optional)",slugPlaceholder:"e.g. growth-team",create:"Create",creating:"Creating...",cancel:"Cancel",invalidName:"Team name must be at least 2 characters.",createFailed:"Failed to create team. Please try again.",createSuccess:"Team created."},teamManagement:$R[136]={stats:$R[137]={sites:"Sites",members:"Members"},toasts:$R[138]={teamSaved:"Team settings saved.",teamSaveFailed:"Failed to save team settings.",teamDeleted:"Team deleted.",teamDeleteFailed:"Failed to delete team.",memberRemoved:"Member removed.",memberRemoveFailed:"Failed to remove member.",roleChanged:"Member role updated.",roleChangeFailed:"Failed to update member role.",siteAccessChanged:"Member site access updated.",siteAccessChangeFailed:"Failed to update site access.",invalidTeamName:"Team name must be at least 2 characters.",inviteCreated:"Invite link created.",inviteCreateFailed:"Failed to create invite link.",inviteRevoked:"Invite revoked.",inviteRevokeFailed:"Failed to revoke invite.",inviteCopied:"Invite link copied.",inviteCopyFailed:"Failed to copy invite link.",invalidInviteEmail:"Please provide a valid invite email.",invalidInviteExpiry:"Invite expiry must be at least 1 hour.",ownerTransferred:"Ownership transferred.",ownerTransferFailed:"Failed to transfer ownership.",invalidTransferTarget:"Please choose a new owner."},sites:$R[139]={title:"Site Dashboard",subtitle:"Aggregated traffic view across all sites in this team.",aggregateTitle:"Total Visits",pagesPerSession:"Pages / Session",noSites:"No site is available under this team.",openAnalytics:"Open analytics"},widgets:$R[140]={title:"Widgets",subtitle:"Widget functionality is being built.",underConstruction:"Under construction"},notifications:$R[141]={title:"Notification Rules",subtitle:"Manage notification rules for this team.",empty:"This team has no notification rules yet.",forbiddenTitle:"Notification rules are managed by team admins",forbiddenDescription:"You can still view your own notifications and update your personal notification preferences.",rulesTitle:"Notification Rules",enabledCount:"{count} enabled rules in this team.",loadingRules:"Loading notification rules",deliveryTestTitle:"Delivery Test",deliveryTestDescription:"Creates one in-app notification for you and attempts email when available.",inAppTestHint:"We will send you an in-app notification.",emailTestConfiguredHint:"We will send you a test email.",emailTestUnconfiguredHint:"Email sending is not configured for this system. Contact an administrator to add it.",sendTestNotification:"Send test notification",loadRulesFailed:"Failed to load notification rules.",testNotificationSent:"Test notification sent.",sendTestNotificationFailed:"Failed to send test notification.",createRule:"Create rule",editRule:"Edit rule",dialogDescription:"Configure a basic notification rule for this team.",ruleInfoSection:"Rule info",scheduleSection:"Schedule",sendScheduleSection:"Send time",checkSection:"Check frequency",conditionSection:"Conditions",deliverySection:"Delivery",summarySection:"Summary",liveSummaryDescription:"Confirm how this rule will run.",nameLabel:"Name",siteLabel:"Site",chooseSite:"Choose site",ruleTypeLabel:"Rule type",recipientLabel:"Recipient",enabledLabel:"Enabled",enabledHint:"Run this rule",scheduleLabel:"Schedule",timeLabel:"Time",timezoneLabel:"Time zone",intervalLabel:"Interval",dayLabel:"Day",dayOfMonthLabel:"Day of month",monthLabel:"Month",reportPeriodLabel:"Report period",milestoneEveryLabel:"Every milestone",matchLabel:"Match",matchAll:"All",matchAny:"Any",changeValueLabel:"Change value",changeModeLabel:"Change mode",changeModePercent:"Percent",changeModeAbsolute:"Absolute",addCondition:"Add condition",removeCondition:"Remove",conditionItemTitle:"Condition {index}",metricLabel:"Metric",windowLabel:"Window",operatorLabel:"Operator",valueLabel:"Value",cooldownLabel:"Cooldown",cooldownDescription:"Notifications will not be sent again during this cooldown window.",noDataHoursLabel:"No data hours",pleaseChooseSite:"Please choose a site.",pleaseChooseRecipients:"Please choose at least one recipient.",ruleCreated:"Rule created.",ruleUpdated:"Rule updated.",createRuleFailed:"Failed to create rule.",updateRuleFailed:"Failed to update rule.",deleteConfirm:"Delete \"{name}\"?",ruleDeleted:"Rule deleted.",deleteRuleFailed:"Failed to delete rule.",lastChecked:"Last checked",actions:"Actions",edit:"Edit",enable:"Enable",disable:"Disable",delete:"Delete",saveRule:"Save rule",emailPreview:"Email preview",preview:"Preview",runNow:"Run now",previewFailed:"Failed to preview rule.",runFailed:"Failed to run rule.",runResultToast:"Created {messages} messages. Email sent {sent}, failed {failed}.",previewDialogTitle:"Rule preview",previewDialogDescription:"Evaluate this rule without creating messages or sending email.",coolingDownUntil:"Cooling down until {time}",scheduleDaily:"Daily {time}",scheduleWeekly:"Weekly {day} {time}",scheduleMonthly:"Monthly day {day} {time}",scheduleQuarterly:"Quarterly day {day} {time}",scheduleYearly:"Yearly {month}/{day} {time}",scheduleInterval:"Every {minutes} min",scheduleCustom:"Custom",conditionReport:"{period} report",conditionMilestone:"{metric} every {step}",conditionThreshold:"{window} {metric} {operator} {value}",conditionChange:"{window} {metric} change {operator} {value}",conditionHealth:"No data for {hours}h",summaryWhenConditions:"When {combinator} of the following conditions match, send a {type} notification:",summaryWhenSingleCondition:"When this condition matches, send a {type} notification:",summaryConditionThreshold:"{window} {metric} {operator} {value}",summaryConditionChange:"{window} {metric} {mode} change {operator} {value}
1",summaryReportSchedule:"{period}: {schedule}",summaryMilestoneCondition:"{metric} reaches every {step}",summaryHealthCondition:"No data for {hours} hours",defaultNames:$R[142]={report:"{site} daily report",milestone:"{site} traffic milestone",threshold:"{site} traffic threshold",change:"{site} traffic change",health:"{site} health check"},columns:$R[143]={name:"Name",type:"Type",site:"Site",recipient:"Recipient",schedule:"Schedule",condition:"Condition",nextRun:"Next Run",status:"Status"},status:$R[144]={enabled:"Enabled",disabled:"Disabled"},nextRunStates:$R[145]={disabled:"Disabled",coolingDown:"Cooling down",dueNow:"Due now"},previewFields:$R[146]={status:"Status",summary:"Summary",title:"Title",htmlPreview:"HTML preview",bodyText:"Body text",data:"Data",createdAt:"Created at",updatedAt:"Updated at",loadingContent:"Loading evaluated report content",noHtmlPreview:"This preview has no HTML content."},ruleTypes:$R[147]={report:"Report",milestone:"Milestone",threshold:"Threshold",change:"Change",health:"Health",test:"Test"},ruleTypeDescriptions:$R[148]={report:"Send a site overview on a schedule",milestone:"Notify when a metric reaches each step",threshold:"Notify when a metric crosses a limit",change:"Notify on period-over-period movement",health:"Notify when tracking goes quiet"},recipientModes:$R[149]={creator:"Creator",team_admins:"Team admins",all_team_members:"All members",users:"Selected users"},recipientKindLabel:"Recipient type",recipientPresetLabel:"Preset",customRecipientsEmpty:"No recipients selected",noTeamMembers:"No team members available.",recipientKinds:$R[150]={preset:"Preset",custom:"Custom"},scheduleKinds:$R[151]={daily:"Daily",weekly:"Weekly",monthly:"Monthly",quarterly:"Quarterly",yearly:"Yearly",interval:"Interval"},reportPeriods:$R[152]={daily:"Daily report",weekly:"Weekly report",monthly:"Monthly report",quarterly:"Quarterly report",yearly:"Yearly report"},cooldownUnits:$R[153]={minutes:"minutes",hours:"hours",days:"days"},intervalOptions:$R[154]={every30Minutes:"Every 30 minutes",everyHour:"Every hour",every6Hours:"Every 6 hours",every12Hours:"Every 12 hours",everyDay:"Every day",every7Days:"Every 7 days",every30Days:"Every 30 days"},weekDays:$R[155]=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],metrics:$R[156]={views:"Views",visitors:"Visitors",sessions:"Sessions"},windows:$R[157]={last_1h:"Last 1h",last_24h:"Last 24h",yesterday:"Yesterday"},emailPreviewPage:$R[158]={title:"Notification email preview",subtitle:"Render notification emails without creating messages or sending through Resend.",typeLabel:"Preview type",localeLabel:"Preview locale",formatLabel:"Preview format",html:"HTML",text:"Plain text",json:"JSON",refresh:"Preview",loading:"Rendering preview...",loadFailed:"Failed to render email preview.",subject:"Subject"}},publicLinks:$R[159]={title:"Public Links",subtitle:"Manage publicly accessible sharing links for this team.",enabled:"Enabled",disabled:"Disabled",disabledHint:"Public access is disabled. Open site settings to enable it.",viewSettings:"View Settings",copyLink:"Copy Link",linkCopied:"Link copied",noSites:"This team has no sites yet.",columns:$R[160]={site:"Site",domain:"Domain",publicUrl:"Public Link",status:"Status",action:"Action"}},apiKeys:$R[161]={title:"API Keys",subtitle:"Manage API access keys for this team.",empty:"This team has no API keys yet.",create:"Create key",creating:"Creating...",createTitle:"Create API key",createSubtitle:"Choose the least privileges this integration needs.",nameLabel:"Key name",namePlaceholder:"Production sync",scopesTitle:"Permissions",scopesDescription:"API keys can never manage members, users, ownership, or other keys.",siteScopeTitle:"Site access",siteScopeDescription:"No selection means every current and future site in this team.",allSites:"All sites",expirationLabel:"Expires",expiration30:"30 days",expiration90:"90 days",expiration180:"180 days",expiration365:"365 days",expirationNever:"Never",oneTimeSecretTitle:"Copy this key now",oneTimeSecretDescription:"This full key is shown once. Store it before closing this dialog.",copySecret:"Copy key",revoke:"Revoke",rotate:"Rotate",revokeConfirm:"Revoke this API key immediately?",rotateConfirm:"Rotate this API key? The old key will be revoked immediately.",neverExpires:"Never expires",notUsed:"Not used",loading:"Loading API keys...",loadFailed:"Failed to load API keys.",invalidInput:"Enter a name and choose at least one permission.",createFailed:"Failed to create API key.",revokeFailed:"Failed to revoke API key.",rotateFailed:"Failed to rotate API key.",copied:"Copied",status:$R[162]={active:"Active",expired:"Expired",revoked:"Revoked"},scopes:$R[163]={analyticsRead:"Analytics read",analysisRead:"Analysis definitions read",analysisWrite:"Analysis definitions write",siteRead:"Site read",siteWrite:"Site write",siteConfigRead:"Config read",siteConfigWrite:"Config write"},scopeDescriptions:$R[164]={analyticsRead:"View visits, visitors, page views, and other analytics data",analysisRead:"View shared saved filters and funnel definitions",analysisWrite:"Create, update, or delete funnel definitions",siteRead:"View site list and site details",siteWrite:"Create, update, or delete sites",siteConfigRead:"View site settings like tracking code and domain whitelist",siteConfigWrite:"Modify site settings like tracking strength and path blacklist"}
1,scopeGroups:$R[165]={analytics:"Analytics",analysis:"Analysis definitions",site:"Site",siteConfig:"Site Configuration"},columns:$R[166]={name:"Name",scopes:"Permissions",sites:"Sites",expires:"Expires",lastUsed:"Last used",status:"Status",action:"Action"}},settings:$R[167]={title:"Settings",subtitle:"Update this team's display name and slug.",nameLabel:"Team Display Name",slugLabel:"Team Slug",save:"Save settings",saving:"Saving...",delete:"Delete team",deleting:"Deleting...",deleteConfirm:"Delete this team and all its data? This action cannot be undone.",transferTitle:"Transfer Ownership",transferSubtitle:"Transfer team ownership to another member. The current owner will be demoted to admin.",transferTargetLabel:"New Owner",transferTargetPlaceholder:"Choose a team member",transfer:"Transfer ownership",transferring:"Transferring...",transferConfirm:"This action cannot be undone. You will lose ownership but keep admin access. Continue?",noTransferableMembers:"No other members are available to transfer to. Add a member first."},members:$R[168]={title:"Members",subtitle:"Invite members or remove existing members.",remove:"Remove member",removeMemberAction:"Remove member \"{target}\"",removeMemberConfirm:"Remove \"{target}\" from this team? They will lose access immediately.",noMembers:"No members found for this team.",invitesTitle:"Create invite link",invitesSubtitle:"Users join this team only after accepting an invite.",inviteEmailLabel:"Email restriction (optional)",inviteEmailPlaceholder:"[email protected]",inviteExpiresLabel:"Expires in hours",createInvite:"Create invite link",creatingInvite:"Creating...",copyInvite:"Copy invite link",inviteLinksTitle:"Invite links",inviteLinksSubtitle:"Review invite status and revoke active links.",noInvites:"This team has no invite links yet.",anyEmail:"Any email",revokeInvite:"Revoke invite",revokeInviteAction:"Revoke invite for \"{target}\"",revokeInviteConfirm:"Revoke the invite for \"{target}\"? The link will stop working.",siteAccessLabel:"Site access",siteAccessAll:"All sites",siteAccessRestricted:"Restricted",siteAccessSelected:"Selected {count} sites",siteAccessDescription:"Leave this set to all sites, or choose the specific sites this member can access.",siteAccessAdmins:"Admins can access every site in this team.",siteAccessDialogTitle:"Edit site access",saveSiteAccess:"Save access",cancelSiteAccess:"Cancel",noSitesForAccess:"This team has no sites yet.",inviteStatuses:$R[169]={active:"Active",used:"Used",revoked:"Revoked",expired:"Expired"},columns:$R[170]={name:"Name",username:"Username",email:"Email",inviteCode:"Invite token",role:"Role",siteAccess:"Site access",joinedAt:"Joined",createdAt:"Created",expiresAt:"Expires",usedAt:"Used",status:"Status",action:"Action"},roleLabels:$R[171]={owner:"Owner",admin:"Admin",member:"Member"}}},managementNav:$R[172]={users:"User Management",sites:"Site Management",teams:"Team Management",versionUpdates:"Version Updates",scheduledTasks:"Scheduled Tasks",requestObservation:"Request Observability",systemPerformance:"System Performance",systemSettings:"System Settings"},managementPages:$R[173]={versionUpdates:$R[174]={subtitle:"Review published InsightFlare releases and the running build.",empty:"No version update records yet.",currentVersion:"Current version",latestVersion:"Latest release",currentCommit:"Current commit",releaseCount:"Releases",publishedAt:"Published",author:"Author",commit:"Commit",statusStable:"Stable",statusPrerelease:"Prerelease",statusDraft:"Draft",currentVersionBadge:"Current version",releaseNotes:"Release notes",openRelease:"Open release",viewDetails:"View detailed changes",detailsTitle:"Detailed changes",detailsDescription:"Commits included in {range}.",detailsLoading:"Loading detailed changes...",detailsEmpty:"No previous release is available for this version yet.",detailsFailed:"Failed to load detailed changes.",currentCommitBadge:"Current deployment",openCompare:"Open compare",openCommit:"Open commit",commitCount:"Commits",source:"Data source",loadFailed:"Failed to load the release index.",unknown:"Unknown"},scheduledTasks:$R[175]={subtitle:"View and manage system scheduled tasks.",empty:"No scheduled tasks yet.",refresh:"Refresh",loadFailed:"Failed to load scheduled tasks.",allStatuses:"All statuses",runs24h:"Runs in 24h",successRate24h:"Success rate in 24h",successRateDescription:"Counts only successful runs.",problemRuns24h:"Problematic runs",retentionPrefix:"Retained for",days:"days",failed:"Failed",partial:"Partial",lastRun:"Last run",staleRunning:"Long-running unfinished runs",noStaleRunning:"No long-running unfinished runs",taskListTitle:"Tasks",taskListDescription:"Registered scheduled tasks and 30-day health status.",task:"Task",schedule:"Schedule",enabled:"State",enabledYes:"Enabled",enabledNo:"Disabled",taskStateSaved:"Task state updated.",taskStateSaveFailed:"Failed to update task state.",lastStatus:"Last status",runs30d:"30d runs",successRate30d:"30d success rate",avgDuration:"Avg duration",runHistoryTitle:"Run history",nextRun:"Next run",runHistoryDescription:"Task runs retained over the last 30 days.",noRuns:"No runs yet.",scheduledAt:"Scheduled",startedAt:"Started",finishedAt:"Finished",trigger:"Trigger",tasks:"Tasks",taskCount:"Tasks",subtaskCount:"Subtasks",taskResult:"Task result",statusLabel:"Status",duration:"Duration",sites:"Sites",hours:"Hours",rows:"Rows",rulesScanned:"Rules",messagesCreated:"Messages",emailFailed:"Email failed",logs:"Logs",viewLogs:"View logs",logTitle:"Run logs",noRunSelected:"Select a run to inspect logs.",noLogs:"No logs for this run.",loadMore:"Load more",error:"Error",status:$R[176]={running:"Running",success:"Success",partial:"Partial",failed:"Failed",skipped:"Skipped"},taskDefinitions:$R[177]={visit_hourly_rollup:$R[178]={name:"Hourly visit aggregation",description:"Aggregates closed visit rows into hourly rollups for dashboard counters and trends.",schedule:"Every hour"},notification_tick:$R[179]={name:"Notification dispatch",description:"Evaluates notification rules and dispatches messages.",sc
1hedule:"Every 30 minutes"},database_maintenance:$R[180]={name:"Database maintenance",description:"Removes expired operational records and optimizes D1.",schedule:"Every day"}}}},adminUsers:$R[181]={title:"User Management",subtitle:"Only system admins can create and manage dashboard users.",createTitle:"Create User",createTeamNotice:"Creating a user here will also create a new Team owned by that user. To add someone to an existing team, create an invite link from that team's settings.",username:"Username",email:"Email",name:"Display Name (optional)",password:"Password (min 8 chars)",role:"System Role",teamName:"Team Name",teamSlug:"Team Slug (optional)",defaultTeamName:"{name}'s team",create:"Create User",creating:"Creating...",delete:"Delete",deleting:"Deleting...",deleteConfirm:"Delete this user account?",deleteSuccess:"User deleted.",deleteFailed:"Failed to delete user.",generateResetLink:"Generate password reset link",resetLinkCreated:"Password reset link generated.",resetLinkCreateFailed:"Failed to generate password reset link.",resetLinkCopied:"Password reset link copied.",resetLinkCopyFailed:"Failed to copy password reset link.",copyResetLink:"Copy link",resetLinkExpiresAt:"Expires",listTitle:"Users",listSubtitle:"All users in the system.",noData:"No users found.",loadFailed:"Failed to load users.",createSuccess:"User created.",createFailed:"Failed to create user.",invalidInput:"Please provide valid username, email and password.",columns:$R[182]={name:"Name",username:"Username",email:"Email",role:"Role",teams:"Teams",created:"Created",action:"Action"}},adminSites:$R[183]={title:"Site Management",subtitle:"Manage sites under the current team.",team:"Team",createTitle:"Create Site",createSubtitle:"The new site can be opened immediately.",name:"Site Name",domain:"Domain",publicSlug:"Public Slug (optional)",create:"Create Site",creating:"Creating...",listTitle:"Sites",listSubtitle:"All sites under the current team.",noData:"No site found.",loadFailed:"Failed to load sites.",createSuccess:"Site created.",createFailed:"Failed to create site.",invalidInput:"Please provide a valid site name and domain.",open:"Open analytics",columns:$R[184]={name:"Name",domain:"Domain",slug:"Slug",created:"Created",action:"Action"}},adminTeams:$R[185]={title:"Team Management",subtitle:"Only system admins can create and view all teams.",createTitle:"Create Team",createSubtitle:"After creation, you can manage settings and members.",name:"Team Name",slug:"Team Slug (optional)",create:"Create Team",creating:"Creating...",listTitle:"Teams",listSubtitle:"All teams in the system.",noData:"No teams found.",loadFailed:"Failed to load teams.",createSuccess:"Team created.",createFailed:"Failed to create team.",invalidInput:"Team name must be at least 2 characters.",open:"Open team",settings:"Settings",columns:$R[186]={name:"Name",slug:"Slug",sites:"Sites",members:"Members",created:"Created",action:"Action"}},requestObservation:$R[187]={title:"Request Observability",subtitle:"Monitor total requests, anomaly routing, and the normal collection pipeline from Analytics Engine.",tabs:$R[188]={overview:"Overview",abnormal:"Blocked Requests",normal:"Included Requests",blocked:"Blocked Requests",included:"Included Requests"},refresh:"Refresh",loadFailed:"Failed to load request observability data.",samplingNotice:"Counts are corrected for Analytics Engine sampling; detailed rows are representative samples and distinct values are approximate.",notConfiguredTitle:"Analytics Engine reader is not configured",notConfiguredDescription:"Add a Cloudflare Account ID and API token in System Settings to read the request-observation Analytics Engine datasets.",analyticsEngineDisabledTitle:"Analytics Engine is not enabled",analyticsEngineDisabledDescription:"This deployment was published without the Analytics Engine binding because the Cloudflare account has not enabled Analytics Engine. Enable it in Cloudflare, then redeploy to collect request-observation data.",openAnalyticsEngine:"Open Analytics Engine",openSettings:"Open settings",highThreatBots:"Bot Requests",botRequests:"Bot Requests",suspectedBotRequests:"Suspected Bot Requests",blockedRequests:"Blocked Requests",includedRequests:"Included Requests",customBlockedRequests:"Custom-blocked Requests",affectedSites:"Affected Sites",uniqueCountries:"Countries",noData:"No request data in this window.",trendTitle:"Routing Trend",trendDescription:"Request categories, dispositions, and ratios by interval.",recentTitle:"Recent Blocked Requests",recentDescription:"Detailed records read from the unified Request Analytics Engine dataset.",recentLoadedAll:"All records loaded",detailTitle:"Request Detail",detailSubtitle:"Inspect detection signals, network context, and client data for this abnormal request.",client:"Client",edge:"Edge",identifiers:"Identifiers",fullUserAgent:"Full User-Agent",id:"ID",metadata:"Metadata",time:"Time",site:"Site",location:"Location",network:"Network",reason:"Reason",request:"Request",ip:"IP",userAgent:"User agent",category:"Category",blocked:"Blocked",included:"Included in statistics",disposition:"Disposition",highThreatRequests:"High-threat Requests",emptyValue:"Unknown",kind:"Type",botScore:"Bot Score",botScoreBucket:"Bot Score Bucket",verifiedBotCategory:"Verified Bot Category",hostname:"Hostname",pathname:"Path",origin:"Origin",asOrganization:"ASN Organization",asn:"ASN",country:"Country",regi
1on:"Region",city:"City",colo:"Colo",userAgentLengthBucket:"User-Agent Length",userAgentLength:"User-Agent Length (exact)",ipPrefix:"IP Prefix",botReasonLabels:$R[189]={missing_ua:"Missing User-Agent",ua_too_long:"User-Agent too long",ua_isbot:"User-Agent matches bot",script_ua:"Script client User-Agent",cf_bot_score_low:"Low Cloudflare Bot Score",cf_verified_bot_category:"Cloudflare verified bot category",hosting_asn:"Hosting ASN",network_service_asn:"Network service ASN",transit_asn:"Transit ASN",access_asn:"Access ASN",missing_browser_provenance:"Missing browser provenance",origin_hostname_mismatch:"Origin and hostname mismatch",custom_block:"Custom block rule matched",blocked_domains:"Blocked domains",blocked_paths:"Blocked paths",blocked_query_parameters:"Blocked query parameters",blocked_referrers:"Blocked referrers",blocked_user_agents:"Blocked User-Agents",blocked_ips:"Blocked IPs",blocked_asns:"Blocked ASNs",blocked_countries:"Blocked countries",blocked_regions:"Blocked regions"},requestKindLabels:$R[190]={pageview:"Pageview",custom_event:"Custom Event",request:"Request",visibility:"Visibility",leave:"Leave",identify:"Identify"},overviewLabels:$R[191]={totalRequests:"Total requests",includedRequests:"Included requests",blockedRequests:"Blocked requests",normalRequests:"Normal requests",suspectedBotRequests:"Suspected bot requests",botRequests:"Bot requests",customBlockedRequests:"Custom-blocked requests",botRequestRatio:"Bot request ratio",blockedRequestRatio:"Blocked request ratio",abnormalRequests:"Blocked requests",abnormalRatio:"Blocked request ratio",p50Latency:"P50 Worker processing time",p75Latency:"P75 Worker processing time",p99Latency:"P99 Worker processing time",p95Latency:"P95 Worker processing time",avgLatency:"Average Worker processing time",pageviews:"Pageviews",customEvents:"Custom events",overviewTrendTitle:"Request routing trend",overviewTrendDescription:"Request categories and blocked ratio bucketed by the top-bar interval.",trafficCompositionTitle:"Business request composition",trafficCompositionDescription:"Counts normal collection events by type over time, including pageviews, leaves, visibility changes, custom events, and identifications.",categoryShareTitle:"Request category breakdown",normalTrafficShare:"Normal traffic",suspectedBotTraffic:"Suspected bot traffic",botTraffic:"Bot traffic",mediumThreatTraffic:"Suspected bot traffic",highThreatTraffic:"Bot traffic",customBlockedTraffic:"Custom-blocked traffic",latencyTitle:"Worker processing time trend",latencyDescription:"P50 / P75 / P95 / P99 Worker processing time recorded when normal requests are written to AE.",abnormalSubtitle:"Focus on blocked requests. Category labels retain the detection result for each request.",normalSubtitle:"Focus on requests included in statistics. This can include normal and suspected bot traffic.",blockedSubtitle:"Focus on requests that were blocked by custom rules or protection settings.",includedSubtitle:"Focus on requests included in statistics, including normal and suspected bot traffic.",requests:"Requests",windowDays:"Last {days} days",latencyMilliseconds:"{value} ms"},normalDetail:$R[192]={title:"Normal Request Detail",subtitle:"Inspect pipeline, location, and Worker processing time fields recorded for a normal request in AE.",requestMethod:"Request method",edgeLatency:"Worker processing time",eventAt:"Event time",receivedAt:"Received at",continent:"Continent",coordinates:"Coordinates"},recentNormal:$R[193]={title:"Recent Normal Requests",description:"Detailed records read from the unified Request Analytics Engine dataset."}},systemSettings:$R[194]={title:"System Settings",subtitle:"Manage instance-wide configuration for this InsightFlare deployment.",guide:"Guide",analyticsEngineTitle:"Analytics Engine",analyticsEngineDescription:"Configure the Cloudflare credentials used to read Analytics Engine data for request observation and future traffic and event analytics.",analyticsEngineAccountIdLabel:"Cloudflare Account ID",analyticsEngineApiTokenLabel:"Cloudflare API token",analyticsEngineApiTokenPlaceholder:"View the guide to get a Cloudflare API token",analyticsEngineSaved:"Analytics Engine configuration saved.",analyticsEngineSaveFailed:"Failed to save Analytics Engine configuration.",analyticsEngineDeleted:"Analytics Engine configuration deleted.",analyticsEngineDeleteFailed:"Failed to delete Analytics Engine configuration.",analyticsEngineDeleteConfirm:"Delete the Analytics Engine read credentials? Features that depend on Analytics Engine will show configuration required until the credentials are restored.",analyticsEngineDisabledTitle:"Analytics Engine is not enabled",analyticsEngineDisabledDescription:"This deployment automatically disabled the Analytics Engine binding because the Cloudflare account has not enabled Analytics Engine. Enable Analytics Engine in Cloudflare, then redeploy InsightFlare to activate related analysis features.",analyticsEngineDisabledHint:"Analytics Engine settings are locked until Analytics Engine is enabled and the Worker is redeployed.",analyticsEngineOpenCloudflare:"Open Cloudflare Analytics Engine",anal
1yticsEngineGuideTitle:"Get Analytics Engine credentials",analyticsEngineGuideDescription:"Analytics Engine needs Cloudflare account details and an API token that can read Analytics Engine data.",analyticsEngineGuideSteps:$R[195]=["Open the Cloudflare Dashboard, enter the target account, and copy the Account ID.","Enable Analytics Engine under Workers & Pages; the Request, Traffic, and Event datasets are created and bound automatically during deployment.","Go to My Profile â API Tokens and create a Custom token.","Grant the token Account Analytics read access and scope it to the current account.","Copy the token, then enter the Account ID and API token here."],notificationEmailTitle:"Email Notifications",notificationEmailDescription:"Configure the email service used for reports, alerts, and test messages.",notificationEmailGuideTitle:"Get Resend email settings",notificationEmailGuideDescription:"To send system email through Resend, prepare a verified sender domain and an API key.",notificationEmailGuideSteps:$R[196]=["Open the Resend Dashboard and confirm the sender domain has passed DNS verification.","Create a new API key from the API Keys page.","Choose the permissions required to send email, then copy the generated API key.","Enter the sender name, sender email, Reply-To, and Resend API key here.","Save the configuration, then send a test email to confirm delivery works."],retentionTitle:"Operational data retention",retentionDescription:"Configure how long task runs, task logs, and notification messages remain available. Changes affect new records only.",scheduledTaskLogsDaysLabel:"Scheduled task logs and runs (days)",notificationTestDaysLabel:"Test notifications (days)",notificationAttentionDaysLabel:"Warning and critical notifications (days)",notificationDefaultDaysLabel:"Other notifications (days)",retentionRangeHint:"Enter an integer from 1 to 3650 days.",retentionSave:"Save retention settings",retentionSaving:"Saving...",retentionSaved:"Retention settings saved.",retentionSaveFailed:"Failed to save retention settings.",loginTurnstileTitle:"Login Turnstile Protection",loginTurnstileDescription:"When enabled, the login page runs Cloudflare Turnstile Invisible verification in the background and the server enforces it during sign-in.",loginTurnstileEnabledLabel:"Enable login protection",loginTurnstileSiteKeyLabel:"Site Key",loginTurnstileSecretKeyLabel:"Secret Key",loginTurnstileSecretKeyPlaceholder:"View the guide to get a Turnstile Secret Key",loginTurnstileModeLabel:"Verification mode",loginTurnstileModeInvisible:"Invisible",loginTurnstileTest:"Test configuration",loginTurnstileTesting:"Verifying...",loginTurnstileTestPassed:"Verification passed",loginTurnstileTestRequired:"New Secret Key must be tested first",loginTurnstileTestMissing:"Enter both Site Key and Secret Key first.",loginTurnstileTestFailed:"Verification failed. Check the Site Key and Secret Key.",loginTurnstileSaved:"Login Turnstile configuration saved.",loginTurnstileSaveFailed:"Failed to save login Turnstile configuration.",loginTurnstileDeleted:"Login Turnstile configuration deleted.",loginTurnstileDeleteFailed:"Failed to delete login Turnstile configuration.",loginTurnstileDeleteConfirm:"Delete the login Turnstile configuration? Login protection will be disabled.",loginTurnstileLoadFailed:"Failed to load login Turnstile configuration.",loginTurnstilePrivacyNotice:"Create an Invisible widget in the Cloudflare Turnstile console. For self-hosted deployments, confirm your privacy policy matches Cloudflare Turnstile requirements.",loginTurnstileGuideTitle:"Get Turnstile credentials",loginTurnstileGuideDescription:"Login protection needs a Cloudflare Turnstile Site Key and Secret Key.",loginTurnstileGuideSteps:$R[197]=["Open the Cloudflare Dashboard and go to Turnstile.","Create a new widget and choose Invisible mode.","Add the current InsightFlare login domain to the allowed hostnames.","Copy the Site Key and Secret Key after the widget is created.","Enter the Site Key and Secret Key here, run the verification test, then save the configuration."],enabledLabel:"Enable email sending",enabledOn:"Enabled",enabledOff:"Disabled",providerLabel:"Email service",providerResend:"Resend",fromNameLabel:"Sender name",fromEmailLabel:"Sender email",replyToLabel:"Reply-To email",replyToPlaceholder:"Optional, defaults to sender email",resendApiKeyLabel:"Resend API Key",resendApiKeyPlaceholder:"View the guide to get a Resend API key",testRecipientLabel:"Test recipient",save:"Save configuration",saving:"Saving...",test:"Send test email",testing:"Sending...",saved:"Email configuration saved.",saveFailed:"Failed to save email configuration.",delete:"Delete configuration",deleting:"Deleting...",cancel:"Cancel",deleted:"Email configuration deleted.",deleteFailed:"Failed to delete email configuration.",deleteConfirm:"Delete the email notification configuration? The system will treat email as unconfigured and disabled.",testSent:"Test email sent.",testFailed:"Failed to send test email.",loadFailed:"Failed to load email configuration."},systemPerformance:$R[198]={title:"System Performance",subtitle:"Monitor InsightFlare collection, buffering, and write health from existing analytics rows.",refresh:"Refresh",loadFailed:"Failed to load system performance data.",n
1oData:"No system performance data in this window.",range15m:"Last 15 minutes",range1h:"Last 1 hour",range6h:"Last 6 hours",range24h:"Last 24 hours",totalEvents:"Accepted Events",p95Latency:"P95 Estimated Delay",p50Latency:"P50",p75Latency:"P75",p50Label:"P50",p75Label:"P75",p95Label:"P95",dataFreshness:"Data Freshness",noRecentWrite:"No recent write",clockAnomalies:"Clock / Delay Anomalies",delayed:"Delayed",future:"Future timestamps",latencyPercentileTrend:"Latency Percentile Trend",latencyPercentileTrendDescription:"View estimated P50, P75, and P95 delay for received events.",throughputTrend:"Accepted Event Throughput",throughputTrendDescription:"View the throughput of received events.",visits:"Visits",customEvents:"Custom Events",anomalyBucket:"Anomaly bucket",openVisitHealth:"Open Visit Backlog",openVisitHealthDescription:"Open rows that have not been closed by leave, route change, or timeout finalization.",open:"Open",stale:"Stale",timedOut:"Timed out",oldestOpen:"Oldest open",latestActivity:"Latest activity",latencySampleHealth:"Latency Sample Health",latencySampleHealthDescription:"View the delay of trusted events.",trustedSamples:"Trusted samples",topSitesTitle:"Top Sites by System Load",topSitesDescription:"Sites receiving the most events in the current view.",events:"Events",avgLatency:"Avg delay",slowestEventsTitle:"Slowest Estimated Events",slowestEventsDescription:"Highest positive write-time minus event-time gaps in the selected window.",eventTime:"Event time",serverTime:"Server write time",estimatedDelay:"Estimated delay",doDiagnosticTitle:"DO Buffer Diagnostic",doDiagnosticDescription:"Diagnoses data stagnation in each site's dedicated Durable Object.",doDiagnosticLoadFailed:"Failed to load DO diagnostic data.",doDiagnosticLoading:"Fetching DO state per siteâ¦",doDiagnosticRun:"Run DO diagnostic",doDiagnosticEmpty:"No DO state available.",doDiagnosticUnreachable:"Some DOs unreachable",doDiagnosticReachableSites:"Reachable DOs",doDiagnosticTotalSites:"Total sites",doDiagnosticActiveAlarms:"Active alarms",doDiagnosticBufferedVisits:"Buffered visits",doDiagnosticOpenVisits:"Buffered open rows",doDiagnosticOpenStale:"Open idle >30m",doDiagnosticOpenTimedOut:"Open idle >12h",doDiagnosticOpenHardAged:"Started >36h ago",doDiagnosticOpenFutureSkew:"Future timestamps",doDiagnosticStuckDirty:"Stuck unflushed",doDiagnosticMaxFlushAttempts:"Max retry attempts",doDiagnosticBufferedCustomEvents:"Buffered custom events",doDiagnosticOldestOpen:"Oldest open started_at",doDiagnosticFutureMaxActivity:"Latest future activity time",doDiagnosticSiteList:"Top risk sites",doDiagnosticSiteListDescription:"Top 20 sites by risk score, snapshotted from per-DO buffered state.",doDiagnosticSiteFailed:"Unreachable",doDiagnosticSiteOpen:"Open",doDiagnosticSiteStuck:"Stuck",doDiagnosticSiteFuture:"Future timestamps",doDiagnosticSiteHardAged:"Over 36h old",doDiagnosticSiteAlarm:"Alarm",doDiagnosticSiteAlarmNone:"None",doDiagnosticSiteAlarmDue:"Due",doDiagnosticSiteNextDue:"Next due",doDiagnosticSiteNextDueFlush:"Flush",doDiagnosticSiteNextDueHidden:"Hidden fallback",doDiagnosticSiteNextDueTimeout:"
1Visit timeout",doDiagnosticSiteResponseMs:"Response time",doDiagnosticThresholdsHint:"Thresholds â stale {stale}, timeout {timeout}, hardAged {hardAged}, stuck flush_attempts ⥠{stuck}",doDiagnosticHealthy:"No abnormal buffered rows detected."},loginForm:$R[199]={signingIn:"Signing in...",verifyingSecurity:"Verifying security...",securityVerificationTitle:"Security verification failed",securityVerificationFailed:"Security verification failed. Please try again.",retrySecurityVerification:"Retry verification",redirecting:"Redirecting...",failed:"Sign in failed. Please try again."},logoutAction:$R[200]={pending:"Signing out...",success:"Signed out.",failed:"Failed to sign out. Please try again."},sidebarFooter:$R[201]={loggingOut:"Signing out...",logoutSuccess:"Signed out.",logoutFailed:"Failed to sign out. Please try again."},teamEntry:$R[202]={title:"Choose a Team",description:"You have access to multiple teams. Choose where to continue."}}},ssr:!0},$R[203]={i:"�$locale�login�en�login",u:1791014884643,s:"success",ssr:!0}]})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
1<script type="module" async="" src="/assets/index-CpLR-jxX.js"></script>
1</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.