SYMBOL INDEX (1364 symbols across 563 files) FILE: cypress/support/index.d.ts type Chainable (line 5) | interface Chainable { FILE: db/clickhouse/migrations/02_add_visit_id.sql type umami (line 1) | CREATE TABLE umami.website_event_join type umami (line 21) | CREATE TABLE umami.website_event_new FILE: db/clickhouse/migrations/03_session_data.sql type umami (line 1) | CREATE TABLE umami.event_data_new type umami (line 35) | CREATE TABLE umami.session_data FILE: db/clickhouse/migrations/05_add_utm_clid.sql type umami (line 2) | CREATE TABLE umami.website_event_new type umami (line 52) | CREATE TABLE umami.website_event_stats_hourly_new FILE: db/clickhouse/migrations/08_update_hostname_view.sql type umami (line 2) | CREATE TABLE umami.website_event_stats_hourly_new FILE: db/clickhouse/schema.sql type umami (line 2) | CREATE TABLE umami.website_event type umami (line 51) | CREATE TABLE umami.event_data type umami (line 70) | CREATE TABLE umami.session_data type umami (line 88) | CREATE TABLE umami.website_event_stats_hourly type umami (line 251) | CREATE TABLE umami.website_revenue FILE: docker/middleware.ts constant TRACKER_PATH (line 7) | const TRACKER_PATH = '/script.js'; constant COLLECT_PATH (line 8) | const COLLECT_PATH = '/api/send'; constant LOGIN_PATH (line 9) | const LOGIN_PATH = '/login'; function customCollectEndpoint (line 24) | function customCollectEndpoint(request: NextRequest) { function customScriptName (line 37) | function customScriptName(request: NextRequest) { function customScriptUrl (line 51) | function customScriptUrl(request: NextRequest) { function disableLogin (line 59) | function disableLogin(request: NextRequest) { function middleware (line 67) | function middleware(req: NextRequest) { FILE: next.config.ts constant TRACKER_SCRIPT (line 4) | const TRACKER_SCRIPT = '/script.js'; method headers (line 183) | async headers() { method rewrites (line 186) | async rewrites() { method redirects (line 199) | async redirects() { FILE: prisma/migrations/01_init/migration.sql type "user" (line 5) | CREATE TABLE "user" ( type "session" (line 18) | CREATE TABLE "session" ( type "website" (line 37) | CREATE TABLE "website" ( type "website_event" (line 52) | CREATE TABLE "website_event" ( type "event_data" (line 70) | CREATE TABLE "event_data" ( type "team" (line 85) | CREATE TABLE "team" ( type "team_user" (line 96) | CREATE TABLE "team_user" ( type "team_website" (line 108) | CREATE TABLE "team_website" ( type "user" (line 118) | CREATE UNIQUE INDEX "user_user_id_key" ON "user"("user_id") type "user" (line 121) | CREATE UNIQUE INDEX "user_username_key" ON "user"("username") type "session" (line 124) | CREATE UNIQUE INDEX "session_session_id_key" ON "session"("session_id") type "session" (line 127) | CREATE INDEX "session_created_at_idx" ON "session"("created_at") type "session" (line 130) | CREATE INDEX "session_website_id_idx" ON "session"("website_id") type "website" (line 133) | CREATE UNIQUE INDEX "website_website_id_key" ON "website"("website_id") type "website" (line 136) | CREATE UNIQUE INDEX "website_share_id_key" ON "website"("share_id") type "website" (line 139) | CREATE INDEX "website_user_id_idx" ON "website"("user_id") type "website" (line 142) | CREATE INDEX "website_created_at_idx" ON "website"("created_at") type "website" (line 145) | CREATE INDEX "website_share_id_idx" ON "website"("share_id") type "website_event" (line 148) | CREATE INDEX "website_event_created_at_idx" ON "website_event"("created_... type "website_event" (line 151) | CREATE INDEX "website_event_session_id_idx" ON "website_event"("session_... type "website_event" (line 154) | CREATE INDEX "website_event_website_id_idx" ON "website_event"("website_... type "website_event" (line 157) | CREATE INDEX "website_event_website_id_created_at_idx" ON "website_event... type "website_event" (line 160) | CREATE INDEX "website_event_website_id_session_id_created_at_idx" ON "we... type "event_data" (line 163) | CREATE INDEX "event_data_created_at_idx" ON "event_data"("created_at") type "event_data" (line 166) | CREATE INDEX "event_data_website_id_idx" ON "event_data"("website_id") type "event_data" (line 169) | CREATE INDEX "event_data_website_event_id_idx" ON "event_data"("website_... type "team" (line 172) | CREATE UNIQUE INDEX "team_team_id_key" ON "team"("team_id") type "team" (line 175) | CREATE UNIQUE INDEX "team_access_code_key" ON "team"("access_code") type "team" (line 178) | CREATE INDEX "team_access_code_idx" ON "team"("access_code") type "team_user" (line 181) | CREATE UNIQUE INDEX "team_user_team_user_id_key" ON "team_user"("team_us... type "team_user" (line 184) | CREATE INDEX "team_user_team_id_idx" ON "team_user"("team_id") type "team_user" (line 187) | CREATE INDEX "team_user_user_id_idx" ON "team_user"("user_id") type "team_website" (line 190) | CREATE UNIQUE INDEX "team_website_team_website_id_key" ON "team_website"... type "team_website" (line 193) | CREATE INDEX "team_website_team_id_idx" ON "team_website"("team_id") type "team_website" (line 196) | CREATE INDEX "team_website_website_id_idx" ON "team_website"("website_id") FILE: prisma/migrations/02_report_schema_session_data/migration.sql type "session_data" (line 9) | CREATE TABLE "session_data" ( type "report" (line 25) | CREATE TABLE "report" ( type "session_data" (line 40) | CREATE INDEX "session_data_created_at_idx" ON "session_data"("created_at") type "session_data" (line 43) | CREATE INDEX "session_data_website_id_idx" ON "session_data"("website_id") type "session_data" (line 46) | CREATE INDEX "session_data_session_id_idx" ON "session_data"("session_id") type "report" (line 49) | CREATE UNIQUE INDEX "report_report_id_key" ON "report"("report_id") type "report" (line 52) | CREATE INDEX "report_user_id_idx" ON "report"("user_id") type "report" (line 55) | CREATE INDEX "report_website_id_idx" ON "report"("website_id") type "report" (line 58) | CREATE INDEX "report_type_idx" ON "report"("type") type "report" (line 61) | CREATE INDEX "report_name_idx" ON "report"("name") FILE: prisma/migrations/03_metric_performance_index/migration.sql type "event_data" (line 2) | CREATE INDEX "event_data_website_id_created_at_idx" ON "event_data"("web... type "event_data" (line 5) | CREATE INDEX "event_data_website_id_created_at_event_key_idx" ON "event_... type "session" (line 8) | CREATE INDEX "session_website_id_created_at_idx" ON "session"("website_i... type "session" (line 11) | CREATE INDEX "session_website_id_created_at_hostname_idx" ON "session"("... type "session" (line 14) | CREATE INDEX "session_website_id_created_at_browser_idx" ON "session"("w... type "session" (line 17) | CREATE INDEX "session_website_id_created_at_os_idx" ON "session"("websit... type "session" (line 20) | CREATE INDEX "session_website_id_created_at_device_idx" ON "session"("we... type "session" (line 23) | CREATE INDEX "session_website_id_created_at_screen_idx" ON "session"("we... type "session" (line 26) | CREATE INDEX "session_website_id_created_at_language_idx" ON "session"("... type "session" (line 29) | CREATE INDEX "session_website_id_created_at_country_idx" ON "session"("w... type "session" (line 32) | CREATE INDEX "session_website_id_created_at_subdivision1_idx" ON "sessio... type "session" (line 35) | CREATE INDEX "session_website_id_created_at_city_idx" ON "session"("webs... type "website_event" (line 38) | CREATE INDEX "website_event_website_id_created_at_url_path_idx" ON "webs... type "website_event" (line 41) | CREATE INDEX "website_event_website_id_created_at_url_query_idx" ON "web... type "website_event" (line 44) | CREATE INDEX "website_event_website_id_created_at_referrer_domain_idx" O... type "website_event" (line 47) | CREATE INDEX "website_event_website_id_created_at_page_title_idx" ON "we... type "website_event" (line 50) | CREATE INDEX "website_event_website_id_created_at_event_name_idx" ON "we... FILE: prisma/migrations/04_team_redesign/migration.sql type "website" (line 26) | CREATE INDEX "website_team_id_idx" ON "website"("team_id") type "website" (line 29) | CREATE INDEX "website_created_by_idx" ON "website"("created_by") FILE: prisma/migrations/05_add_visit_id/migration.sql type "website_event" (line 19) | CREATE INDEX "website_event_visit_id_idx" ON "website_event"("visit_id") type "website_event" (line 22) | CREATE INDEX "website_event_website_id_visit_id_created_at_idx" ON "webs... FILE: prisma/migrations/06_session_data/migration.sql type "event_data" (line 12) | CREATE INDEX "event_data_website_id_created_at_data_key_idx" ON "event_d... type "session_data" (line 15) | CREATE INDEX "session_data_session_id_created_at_idx" ON "session_data"(... type "session_data" (line 18) | CREATE INDEX "session_data_website_id_created_at_data_key_idx" ON "sessi... FILE: prisma/migrations/07_add_tag/migration.sql type "website_event" (line 5) | CREATE INDEX "website_event_website_id_created_at_tag_idx" ON "website_e... FILE: prisma/migrations/09_update_hostname_region/migration.sql type "website_event" (line 21) | CREATE INDEX "website_event_website_id_created_at_hostname_idx" ON "webs... type "session" (line 22) | CREATE INDEX "session_website_id_created_at_region_idx" ON "session"("we... FILE: prisma/migrations/11_add_segment/migration.sql type "segment" (line 2) | CREATE TABLE "segment" ( type "segment" (line 15) | CREATE UNIQUE INDEX "segment_segment_id_key" ON "segment"("segment_id") type "segment" (line 18) | CREATE INDEX "segment_website_id_idx" ON "segment"("website_id") FILE: prisma/migrations/13_add_revenue/migration.sql type "revenue" (line 2) | CREATE TABLE "revenue" ( type "revenue" (line 16) | CREATE UNIQUE INDEX "revenue_revenue_id_key" ON "revenue"("revenue_id") type "revenue" (line 19) | CREATE INDEX "revenue_website_id_idx" ON "revenue"("website_id") type "revenue" (line 22) | CREATE INDEX "revenue_session_id_idx" ON "revenue"("session_id") type "revenue" (line 25) | CREATE INDEX "revenue_website_id_created_at_idx" ON "revenue"("website_i... type "revenue" (line 28) | CREATE INDEX "revenue_website_id_session_id_created_at_idx" ON "revenue"... FILE: prisma/migrations/14_add_link_and_pixel/migration.sql type "link" (line 11) | CREATE TABLE "link" ( type "pixel" (line 26) | CREATE TABLE "pixel" ( type "link" (line 40) | CREATE UNIQUE INDEX "link_link_id_key" ON "link"("link_id") type "link" (line 43) | CREATE UNIQUE INDEX "link_slug_key" ON "link"("slug") type "link" (line 46) | CREATE INDEX "link_slug_idx" ON "link"("slug") type "link" (line 49) | CREATE INDEX "link_user_id_idx" ON "link"("user_id") type "link" (line 52) | CREATE INDEX "link_team_id_idx" ON "link"("team_id") type "link" (line 55) | CREATE INDEX "link_created_at_idx" ON "link"("created_at") type "pixel" (line 58) | CREATE UNIQUE INDEX "pixel_pixel_id_key" ON "pixel"("pixel_id") type "pixel" (line 61) | CREATE UNIQUE INDEX "pixel_slug_key" ON "pixel"("slug") type "pixel" (line 64) | CREATE INDEX "pixel_slug_idx" ON "pixel"("slug") type "pixel" (line 67) | CREATE INDEX "pixel_user_id_idx" ON "pixel"("user_id") type "pixel" (line 70) | CREATE INDEX "pixel_team_id_idx" ON "pixel"("team_id") type "pixel" (line 73) | CREATE INDEX "pixel_created_at_idx" ON "pixel"("created_at") FILE: scripts/check-db.js constant MIN_VERSION (line 9) | const MIN_VERSION = '9.4.0'; function success (line 25) | function success(msg) { function error (line 29) | function error(msg) { function checkEnv (line 33) | async function checkEnv() { function checkConnection (line 45) | async function checkConnection() { function checkDatabaseVersion (line 55) | async function checkDatabaseVersion() { function applyMigration (line 68) | async function applyMigration() { FILE: scripts/check-env.js function checkMissing (line 4) | function checkMissing(vars) { FILE: scripts/format-lang.js function run (line 17) | async function run() { FILE: scripts/postbuild.js function run (line 4) | async function run() { FILE: scripts/seed-data.ts function parseArgs (line 21) | function parseArgs(): SeedConfig { function printHelp (line 59) | function printHelp(): void { function checkEnvironment (line 90) | function checkEnvironment(): void { function main (line 106) | async function main(): Promise { FILE: scripts/seed/distributions/devices.ts type DeviceType (line 3) | type DeviceType = 'desktop' | 'mobile' | 'tablet'; type DeviceInfo (line 66) | interface DeviceInfo { function getRandomDevice (line 73) | function getRandomDevice(): DeviceInfo { FILE: scripts/seed/distributions/geographic.ts type GeoLocation (line 3) | interface GeoLocation { function getRandomGeo (line 110) | function getRandomGeo(): GeoLocation { function getRandomLanguage (line 142) | function getRandomLanguage(): string { FILE: scripts/seed/distributions/referrers.ts type ReferrerType (line 3) | type ReferrerType = 'direct' | 'organic' | 'social' | 'paid' | 'referral'; type ReferrerInfo (line 5) | interface ReferrerInfo { type PaidCampaign (line 54) | interface PaidCampaign { function generateClickId (line 77) | function generateClickId(): string { function getRandomReferrer (line 86) | function getRandomReferrer(): ReferrerInfo { FILE: scripts/seed/distributions/temporal.ts function getWeightedHour (line 40) | function getWeightedHour(): number { function getDayOfWeekMultiplier (line 44) | function getDayOfWeekMultiplier(dayOfWeek: number): number { function generateTimestampForDay (line 49) | function generateTimestampForDay(day: Date): Date { function getSessionCountForDay (line 61) | function getSessionCountForDay(baseCount: number, day: Date): number { FILE: scripts/seed/generators/events.ts constant EVENT_TYPE (line 5) | const EVENT_TYPE = { type PageConfig (line 10) | interface PageConfig { type CustomEventConfig (line 17) | interface CustomEventConfig { type JourneyConfig (line 24) | interface JourneyConfig { type EventData (line 29) | interface EventData { type EventDataEntry (line 53) | interface EventDataEntry { type SiteConfig (line 65) | interface SiteConfig { function getPageTitle (line 72) | function getPageTitle(pages: PageConfig[], path: string): string | null { function getPageTimeOnPage (line 77) | function getPageTimeOnPage(pages: PageConfig[], path: string): number { function generateEventsForSession (line 82) | function generateEventsForSession( FILE: scripts/seed/generators/revenue.ts type RevenueConfig (line 4) | interface RevenueConfig { type RevenueData (line 12) | interface RevenueData { function generateRevenue (line 23) | function generateRevenue(event: EventData, config: RevenueConfig): Reven... function generateRevenueForEvents (line 46) | function generateRevenueForEvents( FILE: scripts/seed/generators/sessions.ts type SessionData (line 6) | interface SessionData { function createSession (line 20) | function createSession(websiteId: string, day: Date): SessionData { function createSessions (line 41) | function createSessions(websiteId: string, day: Date, count: number): Se... FILE: scripts/seed/index.ts constant BATCH_SIZE (line 34) | const BATCH_SIZE = 1000; type SessionCreateInput (line 36) | type SessionCreateInput = Prisma.SessionCreateManyInput; type WebsiteEventCreateInput (line 37) | type WebsiteEventCreateInput = Prisma.WebsiteEventCreateManyInput; type EventDataCreateInput (line 38) | type EventDataCreateInput = Prisma.EventDataCreateManyInput; type RevenueCreateInput (line 39) | type RevenueCreateInput = Prisma.RevenueCreateManyInput; type SeedConfig (line 41) | interface SeedConfig { type SeedResult (line 47) | interface SeedResult { function batchInsertSessions (line 55) | async function batchInsertSessions( function batchInsertEvents (line 71) | async function batchInsertEvents( function batchInsertEventData (line 87) | async function batchInsertEventData( function batchInsertRevenue (line 103) | async function batchInsertRevenue( function findAdminUser (line 119) | async function findAdminUser(prisma: PrismaClient): Promise { function createWebsite (line 136) | async function createWebsite( function clearDemoData (line 157) | async function clearDemoData(prisma: PrismaClient): Promise { type SiteGeneratorConfig (line 189) | interface SiteGeneratorConfig { function generateSiteData (line 198) | async function generateSiteData( function createPrismaClient (line 272) | function createPrismaClient(): PrismaClient { function seed (line 302) | async function seed(config: SeedConfig): Promise { FILE: scripts/seed/sites/blog.ts constant BLOG_WEBSITE_NAME (line 9) | const BLOG_WEBSITE_NAME = 'Demo Blog'; constant BLOG_WEBSITE_DOMAIN (line 10) | const BLOG_WEBSITE_DOMAIN = 'blog.example.com'; function getBlogSiteConfig (line 90) | function getBlogSiteConfig(): SiteConfig { function getBlogJourney (line 99) | function getBlogJourney(): string[] { constant BLOG_SESSIONS_PER_DAY (line 108) | const BLOG_SESSIONS_PER_DAY = 3; FILE: scripts/seed/sites/saas.ts constant SAAS_WEBSITE_NAME (line 10) | const SAAS_WEBSITE_NAME = 'Demo SaaS'; constant SAAS_WEBSITE_DOMAIN (line 11) | const SAAS_WEBSITE_DOMAIN = 'app.example.com'; function getSaasSiteConfig (line 167) | function getSaasSiteConfig(): SiteConfig { function getSaasJourney (line 176) | function getSaasJourney(): string[] { constant SAAS_SESSIONS_PER_DAY (line 185) | const SAAS_SESSIONS_PER_DAY = 500; FILE: scripts/seed/utils.ts type WeightedOption (line 3) | interface WeightedOption { function weightedRandom (line 8) | function weightedRandom(options: WeightedOption[]): T { function randomInt (line 22) | function randomInt(min: number, max: number): number { function randomFloat (line 26) | function randomFloat(min: number, max: number): number { function pickRandom (line 30) | function pickRandom(array: T[]): T { function shuffleArray (line 34) | function shuffleArray(array: T[]): T[] { function uuid (line 43) | function uuid(): string { function generateDatesBetween (line 47) | function generateDatesBetween(startDate: Date, endDate: Date): Date[] { function addHours (line 60) | function addHours(date: Date, hours: number): Date { function addMinutes (line 64) | function addMinutes(date: Date, minutes: number): Date { function addSeconds (line 68) | function addSeconds(date: Date, seconds: number): Date { function subDays (line 72) | function subDays(date: Date, days: number): Date { function formatNumber (line 76) | function formatNumber(num: number): string { function progressBar (line 80) | function progressBar(current: number, total: number, width = 30): string { FILE: scripts/telemetry.js function sendTelemetry (line 11) | async function sendTelemetry(type) { FILE: src/app/(collect)/p/[slug]/route.ts function GET (line 12) | async function GET(request: Request, { params }: { params: Promise<{ slu... FILE: src/app/(collect)/q/[slug]/route.ts function GET (line 10) | async function GET(request: Request, { params }: { params: Promise<{ slu... FILE: src/app/(main)/App.tsx function App (line 12) | function App({ children }) { FILE: src/app/(main)/MobileNav.tsx function MobileNav (line 12) | function MobileNav() { FILE: src/app/(main)/SideNav.tsx function SideNav (line 19) | function SideNav(props: SidebarProps) { FILE: src/app/(main)/TopNav.tsx function TopNav (line 5) | function TopNav() { FILE: src/app/(main)/UpdateNotice.tsx function UpdateNotice (line 9) | function UpdateNotice({ user, config }) { FILE: src/app/(main)/admin/AdminLayout.tsx function AdminLayout (line 8) | function AdminLayout({ children }: { children: ReactNode }) { FILE: src/app/(main)/admin/AdminNav.tsx function AdminNav (line 5) | function AdminNav({ onItemClick }: { onItemClick?: () => void }) { FILE: src/app/(main)/admin/teams/AdminTeamsDataTable.tsx function AdminTeamsDataTable (line 6) | function AdminTeamsDataTable({ FILE: src/app/(main)/admin/teams/AdminTeamsPage.tsx function AdminTeamsPage (line 8) | function AdminTeamsPage() { FILE: src/app/(main)/admin/teams/AdminTeamsTable.tsx function AdminTeamsTable (line 10) | function AdminTeamsTable({ FILE: src/app/(main)/admin/teams/[teamId]/AdminTeamPage.tsx function AdminTeamPage (line 5) | function AdminTeamPage({ teamId }: { teamId: string }) { FILE: src/app/(main)/admin/users/UserAddButton.tsx function UserAddButton (line 6) | function UserAddButton({ onSave }: { onSave?: () => void }) { FILE: src/app/(main)/admin/users/UserAddForm.tsx function UserAddForm (line 15) | function UserAddForm({ onSave, onClose }) { FILE: src/app/(main)/admin/users/UserDeleteButton.tsx function UserDeleteButton (line 6) | function UserDeleteButton({ FILE: src/app/(main)/admin/users/UserDeleteForm.tsx function UserDeleteForm (line 4) | function UserDeleteForm({ FILE: src/app/(main)/admin/users/UsersDataTable.tsx function UsersDataTable (line 6) | function UsersDataTable({ showActions }: { showActions?: boolean; childr... FILE: src/app/(main)/admin/users/UsersPage.tsx function UsersPage (line 9) | function UsersPage() { FILE: src/app/(main)/admin/users/UsersTable.tsx function UsersTable (line 11) | function UsersTable({ FILE: src/app/(main)/admin/users/[userId]/UserEditForm.tsx function UserEditForm (line 14) | function UserEditForm({ userId, onSave }: { userId: string; onSave?: () ... FILE: src/app/(main)/admin/users/[userId]/UserHeader.tsx function UserHeader (line 5) | function UserHeader() { FILE: src/app/(main)/admin/users/[userId]/UserPage.tsx function UserPage (line 8) | function UserPage({ userId }: { userId: string }) { FILE: src/app/(main)/admin/users/[userId]/UserProvider.tsx function UserProvider (line 8) | function UserProvider({ userId, children }: { userId: string; children: ... FILE: src/app/(main)/admin/users/[userId]/UserSettings.tsx function UserSettings (line 6) | function UserSettings({ userId }: { userId: string }) { FILE: src/app/(main)/admin/users/[userId]/UserWebsites.tsx function UserWebsites (line 5) | function UserWebsites({ userId }) { FILE: src/app/(main)/admin/websites/AdminWebsitesDataTable.tsx function AdminWebsitesDataTable (line 5) | function AdminWebsitesDataTable() { FILE: src/app/(main)/admin/websites/AdminWebsitesPage.tsx function AdminWebsitesPage (line 8) | function AdminWebsitesPage() { FILE: src/app/(main)/admin/websites/AdminWebsitesTable.tsx function AdminWebsitesTable (line 10) | function AdminWebsitesTable({ data = [] }: { data: any[] }) { FILE: src/app/(main)/admin/websites/[websiteId]/AdminWebsitePage.tsx function AdminWebsitePage (line 6) | function AdminWebsitePage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/boards/BoardAddButton.tsx function BoardAddButton (line 6) | function BoardAddButton() { FILE: src/app/(main)/boards/BoardAddForm.tsx function BoardAddForm (line 5) | function BoardAddForm({ FILE: src/app/(main)/boards/BoardsPage.tsx function BoardsPage (line 7) | function BoardsPage() { FILE: src/app/(main)/boards/[boardId]/Board.tsx function Board (line 3) | function Board({ boardId }: { boardId: string }) { FILE: src/app/(main)/console/[websiteId]/TestConsolePage.tsx function TestConsolePage (line 12) | function TestConsolePage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/console/[websiteId]/page.tsx function getEnabled (line 4) | async function getEnabled() { FILE: src/app/(main)/dashboard/DashboardPage.tsx function DashboardPage (line 7) | function DashboardPage() { FILE: src/app/(main)/links/LinkAddButton.tsx function LinkAddButton (line 6) | function LinkAddButton({ teamId }: { teamId?: string }) { FILE: src/app/(main)/links/LinkDeleteButton.tsx function LinkDeleteButton (line 7) | function LinkDeleteButton({ FILE: src/app/(main)/links/LinkEditButton.tsx function LinkEditButton (line 6) | function LinkEditButton({ linkId }: { linkId: string }) { FILE: src/app/(main)/links/LinkEditForm.tsx function LinkEditForm (line 23) | function LinkEditForm({ FILE: src/app/(main)/links/LinkProvider.tsx function LinkProvider (line 9) | function LinkProvider({ linkId, children }: { linkId?: string; children:... FILE: src/app/(main)/links/LinksDataTable.tsx function LinksDataTable (line 5) | function LinksDataTable() { FILE: src/app/(main)/links/LinksPage.tsx function LinksPage (line 10) | function LinksPage() { FILE: src/app/(main)/links/LinksTable.tsx function LinksTable (line 9) | function LinksTable(props: DataTableProps) { FILE: src/app/(main)/links/[linkId]/LinkControls.tsx function LinkControls (line 8) | function LinkControls({ FILE: src/app/(main)/links/[linkId]/LinkHeader.tsx function LinkHeader (line 7) | function LinkHeader() { FILE: src/app/(main)/links/[linkId]/LinkMetricsBar.tsx function LinkMetricsBar (line 8) | function LinkMetricsBar({ FILE: src/app/(main)/links/[linkId]/LinkPage.tsx function LinkPage (line 15) | function LinkPage({ linkId }: { linkId: string }) { FILE: src/app/(main)/links/[linkId]/LinkPanels.tsx function LinkPanels (line 8) | function LinkPanels({ linkId }: { linkId: string }) { FILE: src/app/(main)/pixels/PixelAddButton.tsx function PixelAddButton (line 6) | function PixelAddButton({ teamId }: { teamId?: string }) { FILE: src/app/(main)/pixels/PixelDeleteButton.tsx function PixelDeleteButton (line 7) | function PixelDeleteButton({ FILE: src/app/(main)/pixels/PixelEditButton.tsx function PixelEditButton (line 6) | function PixelEditButton({ pixelId }: { pixelId: string }) { FILE: src/app/(main)/pixels/PixelEditForm.tsx function PixelEditForm (line 22) | function PixelEditForm({ FILE: src/app/(main)/pixels/PixelProvider.tsx function PixelProvider (line 9) | function PixelProvider({ pixelId, children }: { pixelId?: string; childr... FILE: src/app/(main)/pixels/PixelsDataTable.tsx function PixelsDataTable (line 5) | function PixelsDataTable() { FILE: src/app/(main)/pixels/PixelsPage.tsx function PixelsPage (line 10) | function PixelsPage() { FILE: src/app/(main)/pixels/PixelsTable.tsx function PixelsTable (line 9) | function PixelsTable(props: DataTableProps) { FILE: src/app/(main)/pixels/[pixelId]/PixelControls.tsx function PixelControls (line 8) | function PixelControls({ FILE: src/app/(main)/pixels/[pixelId]/PixelHeader.tsx function PixelHeader (line 7) | function PixelHeader() { FILE: src/app/(main)/pixels/[pixelId]/PixelMetricsBar.tsx function PixelMetricsBar (line 8) | function PixelMetricsBar({ FILE: src/app/(main)/pixels/[pixelId]/PixelPage.tsx function PixelPage (line 15) | function PixelPage({ pixelId }: { pixelId: string }) { FILE: src/app/(main)/pixels/[pixelId]/PixelPanels.tsx function PixelPanels (line 8) | function PixelPanels({ pixelId }: { pixelId: string }) { FILE: src/app/(main)/settings/SettingsLayout.tsx function SettingsLayout (line 7) | function SettingsLayout({ children }: { children: ReactNode }) { FILE: src/app/(main)/settings/SettingsNav.tsx function SettingsNav (line 5) | function SettingsNav({ onItemClick }: { onItemClick?: () => void }) { FILE: src/app/(main)/settings/preferences/DateRangeSetting.tsx function DateRangeSetting (line 8) | function DateRangeSetting() { FILE: src/app/(main)/settings/preferences/LanguageSetting.tsx function LanguageSetting (line 7) | function LanguageSetting() { FILE: src/app/(main)/settings/preferences/PreferenceSettings.tsx function PreferenceSettings (line 8) | function PreferenceSettings() { FILE: src/app/(main)/settings/preferences/PreferencesPage.tsx function PreferencesPage (line 9) | function PreferencesPage() { FILE: src/app/(main)/settings/preferences/ThemeSetting.tsx function ThemeSetting (line 4) | function ThemeSetting() { FILE: src/app/(main)/settings/preferences/TimezoneSetting.tsx function TimezoneSetting (line 8) | function TimezoneSetting() { FILE: src/app/(main)/settings/profile/PasswordChangeButton.tsx function PasswordChangeButton (line 6) | function PasswordChangeButton() { FILE: src/app/(main)/settings/profile/PasswordEditForm.tsx function PasswordEditForm (line 11) | function PasswordEditForm({ onSave, onClose }) { FILE: src/app/(main)/settings/profile/ProfileHeader.tsx function ProfileHeader (line 4) | function ProfileHeader() { FILE: src/app/(main)/settings/profile/ProfilePage.tsx function ProfilePage (line 9) | function ProfilePage() { FILE: src/app/(main)/settings/profile/ProfileSettings.tsx function ProfileSettings (line 6) | function ProfileSettings() { FILE: src/app/(main)/settings/teams/TeamsSettingsPage.tsx function TeamsSettingsPage (line 7) | function TeamsSettingsPage() { FILE: src/app/(main)/settings/teams/[teamId]/TeamSettingsPage.tsx function TeamSettingsPage (line 5) | function TeamSettingsPage({ teamId }: { teamId: string }) { FILE: src/app/(main)/settings/websites/WebsitesSettingsPage.tsx function WebsitesSettingsPage (line 7) | function WebsitesSettingsPage({ teamId }: { teamId: string }) { FILE: src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx function WebsiteSettingsPage (line 7) | function WebsiteSettingsPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/teams/TeamAddForm.tsx function TeamAddForm (line 11) | function TeamAddForm({ onSave, onClose }: { onSave: () => void; onClose:... FILE: src/app/(main)/teams/TeamJoinForm.tsx function TeamJoinForm (line 11) | function TeamJoinForm({ onSave, onClose }: { onSave: () => void; onClose... FILE: src/app/(main)/teams/TeamLeaveButton.tsx function TeamLeaveButton (line 7) | function TeamLeaveButton({ teamId, teamName }: { teamId: string; teamNam... FILE: src/app/(main)/teams/TeamLeaveForm.tsx function TeamLeaveForm (line 4) | function TeamLeaveForm({ FILE: src/app/(main)/teams/TeamProvider.tsx function TeamProvider (line 9) | function TeamProvider({ teamId, children }: { teamId?: string; children:... FILE: src/app/(main)/teams/TeamsAddButton.tsx function TeamsAddButton (line 7) | function TeamsAddButton({ onSave }: { onSave?: () => void }) { FILE: src/app/(main)/teams/TeamsDataTable.tsx function TeamsDataTable (line 6) | function TeamsDataTable() { FILE: src/app/(main)/teams/TeamsHeader.tsx function TeamsHeader (line 8) | function TeamsHeader({ FILE: src/app/(main)/teams/TeamsJoinButton.tsx function TeamsJoinButton (line 6) | function TeamsJoinButton() { FILE: src/app/(main)/teams/TeamsPage.tsx function TeamsPage (line 8) | function TeamsPage() { FILE: src/app/(main)/teams/TeamsTable.tsx type TeamsTableProps (line 6) | interface TeamsTableProps extends DataTableProps { function TeamsTable (line 10) | function TeamsTable({ renderLink, ...props }: TeamsTableProps) { FILE: src/app/(main)/teams/[teamId]/TeamDeleteForm.tsx constant CONFIRM_VALUE (line 4) | const CONFIRM_VALUE = 'DELETE'; function TeamDeleteForm (line 6) | function TeamDeleteForm({ FILE: src/app/(main)/teams/[teamId]/TeamEditForm.tsx function TeamEditForm (line 17) | function TeamEditForm({ FILE: src/app/(main)/teams/[teamId]/TeamManage.tsx function TeamManage (line 7) | function TeamManage({ teamId }: { teamId: string }) { FILE: src/app/(main)/teams/[teamId]/TeamMemberEditButton.tsx function TeamMemberEditButton (line 7) | function TeamMemberEditButton({ FILE: src/app/(main)/teams/[teamId]/TeamMemberEditForm.tsx function TeamMemberEditForm (line 13) | function TeamMemberEditForm({ FILE: src/app/(main)/teams/[teamId]/TeamMemberRemoveButton.tsx function TeamMemberRemoveButton (line 7) | function TeamMemberRemoveButton({ FILE: src/app/(main)/teams/[teamId]/TeamMembersDataTable.tsx function TeamMembersDataTable (line 5) | function TeamMembersDataTable({ FILE: src/app/(main)/teams/[teamId]/TeamMembersTable.tsx function TeamMembersTable (line 7) | function TeamMembersTable({ FILE: src/app/(main)/teams/[teamId]/TeamSettings.tsx function TeamSettings (line 12) | function TeamSettings({ teamId }: { teamId: string }) { FILE: src/app/(main)/teams/[teamId]/TeamWebsiteRemoveButton.tsx function TeamWebsiteRemoveButton (line 5) | function TeamWebsiteRemoveButton({ teamId, websiteId, onSave }) { FILE: src/app/(main)/teams/[teamId]/TeamWebsitesDataTable.tsx function TeamWebsitesDataTable (line 5) | function TeamWebsitesDataTable({ FILE: src/app/(main)/teams/[teamId]/TeamWebsitesTable.tsx function TeamWebsitesTable (line 8) | function TeamWebsitesTable({ FILE: src/app/(main)/websites/WebsiteAddButton.tsx function WebsiteAddButton (line 7) | function WebsiteAddButton({ teamId, onSave }: { teamId: string; onSave?:... FILE: src/app/(main)/websites/WebsiteAddForm.tsx function WebsiteAddForm (line 5) | function WebsiteAddForm({ FILE: src/app/(main)/websites/WebsiteProvider.tsx function WebsiteProvider (line 9) | function WebsiteProvider({ FILE: src/app/(main)/websites/WebsitesDataTable.tsx function WebsitesDataTable (line 8) | function WebsitesDataTable({ FILE: src/app/(main)/websites/WebsitesHeader.tsx type WebsitesHeaderProps (line 5) | interface WebsitesHeaderProps { function WebsitesHeader (line 9) | function WebsitesHeader({ allowCreate = true }: WebsitesHeaderProps) { FILE: src/app/(main)/websites/WebsitesPage.tsx function WebsitesPage (line 10) | function WebsitesPage() { FILE: src/app/(main)/websites/WebsitesTable.tsx type WebsitesTableProps (line 7) | interface WebsitesTableProps extends DataTableProps { function WebsitesTable (line 14) | function WebsitesTable({ showActions, renderLink, ...props }: WebsitesTa... FILE: src/app/(main)/websites/[websiteId]/(reports)/attribution/Attribution.tsx type AttributionProps (line 12) | interface AttributionProps { function Attribution (line 22) | function Attribution({ FILE: src/app/(main)/websites/[websiteId]/(reports)/attribution/AttributionPage.tsx function AttributionPage (line 8) | function AttributionPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/breakdown/Breakdown.tsx type BreakdownProps (line 6) | interface BreakdownProps { function Breakdown (line 13) | function Breakdown({ websiteId, selectedFields = [], startDate, endDate ... FILE: src/app/(main)/websites/[websiteId]/(reports)/breakdown/BreakdownPage.tsx function BreakdownPage (line 12) | function BreakdownPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/breakdown/FieldSelectForm.tsx function FieldSelectForm (line 5) | function FieldSelectForm({ FILE: src/app/(main)/websites/[websiteId]/(reports)/funnels/Funnel.tsx type FunnelResult (line 11) | type FunnelResult = { function Funnel (line 21) | function Funnel({ id, name, type, parameters, websiteId }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/funnels/FunnelAddButton.tsx function FunnelAddButton (line 6) | function FunnelAddButton({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/funnels/FunnelEditForm.tsx constant FUNNEL_STEPS_MAX (line 21) | const FUNNEL_STEPS_MAX = 8; function FunnelEditForm (line 23) | function FunnelEditForm({ FILE: src/app/(main)/websites/[websiteId]/(reports)/funnels/FunnelsPage.tsx function FunnelsPage (line 11) | function FunnelsPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/goals/Goal.tsx type GoalProps (line 10) | interface GoalProps { type GoalData (line 24) | type GoalData = { num: number; total: number }; function Goal (line 26) | function Goal({ id, name, type, parameters, websiteId, startDate, endDat... FILE: src/app/(main)/websites/[websiteId]/(reports)/goals/GoalAddButton.tsx function GoalAddButton (line 6) | function GoalAddButton({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/goals/GoalEditForm.tsx function GoalEditForm (line 17) | function GoalEditForm({ FILE: src/app/(main)/websites/[websiteId]/(reports)/goals/GoalsPage.tsx function GoalsPage (line 11) | function GoalsPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/journeys/Journey.tsx constant NODE_HEIGHT (line 13) | const NODE_HEIGHT = 60; constant NODE_GAP (line 14) | const NODE_GAP = 10; constant LINE_WIDTH (line 15) | const LINE_WIDTH = 3; type JourneyProps (line 17) | interface JourneyProps { function Journey (line 26) | function Journey({ websiteId, steps, startStep, endStep }: JourneyProps) { FILE: src/app/(main)/websites/[websiteId]/(reports)/journeys/JourneysPage.tsx constant JOURNEY_STEPS (line 9) | const JOURNEY_STEPS = [2, 3, 4, 5, 6, 7]; constant DEFAULT_STEP (line 10) | const DEFAULT_STEP = 3; function JourneysPage (line 12) | function JourneysPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/retention/Retention.tsx constant DAYS (line 10) | const DAYS = [1, 2, 3, 4, 5, 6, 7, 14, 21, 28]; type RetentionProps (line 12) | interface RetentionProps { function Retention (line 19) | function Retention({ websiteId, days = DAYS, startDate, endDate }: Reten... FILE: src/app/(main)/websites/[websiteId]/(reports)/retention/RetentionPage.tsx function RetentionPage (line 8) | function RetentionPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/revenue/Revenue.tsx type RevenueProps (line 19) | interface RevenueProps { function Revenue (line 26) | function Revenue({ websiteId, startDate, endDate, unit }: RevenueProps) { FILE: src/app/(main)/websites/[websiteId]/(reports)/revenue/RevenuePage.tsx function RevenuePage (line 7) | function RevenuePage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/revenue/RevenueTable.tsx function RevenueTable (line 5) | function RevenueTable({ data = [] }) { FILE: src/app/(main)/websites/[websiteId]/(reports)/utm/UTM.tsx type UTMProps (line 9) | interface UTMProps { function UTM (line 15) | function UTM({ websiteId, startDate, endDate }: UTMProps) { FILE: src/app/(main)/websites/[websiteId]/(reports)/utm/UTMPage.tsx function UTMPage (line 7) | function UTMPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/ExpandedViewModal.tsx function ExpandedViewModal (line 5) | function ExpandedViewModal({ FILE: src/app/(main)/websites/[websiteId]/WebsiteChart.tsx function WebsiteChart (line 7) | function WebsiteChart({ FILE: src/app/(main)/websites/[websiteId]/WebsiteControls.tsx function WebsiteControls (line 8) | function WebsiteControls({ FILE: src/app/(main)/websites/[websiteId]/WebsiteExpandedMenu.tsx function WebsiteExpandedMenu (line 25) | function WebsiteExpandedMenu({ FILE: src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx function WebsiteExpandedView (line 7) | function WebsiteExpandedView({ FILE: src/app/(main)/websites/[websiteId]/WebsiteHeader.tsx function WebsiteHeader (line 11) | function WebsiteHeader({ showActions }: { showActions?: boolean }) { FILE: src/app/(main)/websites/[websiteId]/WebsiteLayout.tsx function WebsiteLayout (line 9) | function WebsiteLayout({ websiteId, children }: { websiteId: string; chi... FILE: src/app/(main)/websites/[websiteId]/WebsiteMenu.tsx function WebsiteMenu (line 15) | function WebsiteMenu({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/WebsiteMetricsBar.tsx function WebsiteMetricsBar (line 8) | function WebsiteMetricsBar({ FILE: src/app/(main)/websites/[websiteId]/WebsiteNav.tsx function WebsiteNav (line 17) | function WebsiteNav({ FILE: src/app/(main)/websites/[websiteId]/WebsitePage.tsx function WebsitePage (line 10) | function WebsitePage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/WebsitePanels.tsx function WebsitePanels (line 10) | function WebsitePanels({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/WebsiteTabs.tsx function WebsiteTabs (line 6) | function WebsiteTabs() { FILE: src/app/(main)/websites/[websiteId]/cohorts/CohortAddButton.tsx function CohortAddButton (line 6) | function CohortAddButton({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/cohorts/CohortDeleteButton.tsx function CohortDeleteButton (line 7) | function CohortDeleteButton({ FILE: src/app/(main)/websites/[websiteId]/cohorts/CohortEditButton.tsx function CohortEditButton (line 7) | function CohortEditButton({ FILE: src/app/(main)/websites/[websiteId]/cohorts/CohortEditForm.tsx function CohortEditForm (line 19) | function CohortEditForm({ FILE: src/app/(main)/websites/[websiteId]/cohorts/CohortsDataTable.tsx function CohortsDataTable (line 6) | function CohortsDataTable({ websiteId }: { websiteId?: string }) { FILE: src/app/(main)/websites/[websiteId]/cohorts/CohortsPage.tsx function CohortsPage (line 7) | function CohortsPage({ websiteId }) { FILE: src/app/(main)/websites/[websiteId]/cohorts/CohortsTable.tsx function CohortsTable (line 9) | function CohortsTable(props: DataTableProps) { FILE: src/app/(main)/websites/[websiteId]/compare/ComparePage.tsx function ComparePage (line 9) | function ComparePage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/compare/CompareTables.tsx function CompareTables (line 10) | function CompareTables({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/events/EventProperties.tsx function EventProperties (line 13) | function EventProperties({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/events/EventsDataTable.tsx function EventsDataTable (line 7) | function EventsDataTable({ FILE: src/app/(main)/websites/[websiteId]/events/EventsMetricsBar.tsx function EventsMetricsBar (line 8) | function EventsMetricsBar({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/events/EventsPage.tsx constant KEY_NAME (line 14) | const KEY_NAME = 'umami.events.tab'; function EventsPage (line 16) | function EventsPage({ websiteId }) { FILE: src/app/(main)/websites/[websiteId]/events/EventsTable.tsx function EventsTable (line 23) | function EventsTable(props: DataTableProps) { FILE: src/app/(main)/websites/[websiteId]/realtime/RealtimeCountries.tsx function RealtimeCountries (line 7) | function RealtimeCountries({ data }) { FILE: src/app/(main)/websites/[websiteId]/realtime/RealtimeHeader.tsx function RealtimeHeader (line 5) | function RealtimeHeader({ data }: { data: any }) { FILE: src/app/(main)/websites/[websiteId]/realtime/RealtimeLog.tsx constant TYPE_ALL (line 23) | const TYPE_ALL = 'all'; constant TYPE_PAGEVIEW (line 24) | const TYPE_PAGEVIEW = 'pageview'; constant TYPE_SESSION (line 25) | const TYPE_SESSION = 'session'; constant TYPE_EVENT (line 26) | const TYPE_EVENT = 'event'; function RealtimeLog (line 34) | function RealtimeLog({ data }: { data: any }) { FILE: src/app/(main)/websites/[websiteId]/realtime/RealtimePage.tsx function RealtimePage (line 17) | function RealtimePage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/realtime/RealtimePaths.tsx function RealtimePaths (line 6) | function RealtimePaths({ data }: { data: any }) { FILE: src/app/(main)/websites/[websiteId]/realtime/RealtimeReferrers.tsx function RealtimeReferrers (line 6) | function RealtimeReferrers({ data }: { data: any }) { FILE: src/app/(main)/websites/[websiteId]/segments/SegmentAddButton.tsx function SegmentAddButton (line 6) | function SegmentAddButton({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/segments/SegmentDeleteButton.tsx function SegmentDeleteButton (line 7) | function SegmentDeleteButton({ FILE: src/app/(main)/websites/[websiteId]/segments/SegmentEditButton.tsx function SegmentEditButton (line 7) | function SegmentEditButton({ FILE: src/app/(main)/websites/[websiteId]/segments/SegmentEditForm.tsx function SegmentEditForm (line 15) | function SegmentEditForm({ FILE: src/app/(main)/websites/[websiteId]/segments/SegmentsDataTable.tsx function SegmentsDataTable (line 6) | function SegmentsDataTable({ websiteId }: { websiteId?: string }) { FILE: src/app/(main)/websites/[websiteId]/segments/SegmentsPage.tsx function SegmentsPage (line 7) | function SegmentsPage({ websiteId }) { FILE: src/app/(main)/websites/[websiteId]/segments/SegmentsTable.tsx function SegmentsTable (line 8) | function SegmentsTable(props: DataTableProps) { FILE: src/app/(main)/websites/[websiteId]/sessions/SessionActivity.tsx function SessionActivity (line 20) | function SessionActivity({ FILE: src/app/(main)/websites/[websiteId]/sessions/SessionData.tsx function SessionData (line 7) | function SessionData({ websiteId, sessionId }: { websiteId: string; sess... FILE: src/app/(main)/websites/[websiteId]/sessions/SessionInfo.tsx function SessionInfo (line 8) | function SessionInfo({ data }) { FILE: src/app/(main)/websites/[websiteId]/sessions/SessionModal.tsx type SessionModalProps (line 5) | interface SessionModalProps extends ModalProps { function SessionModal (line 9) | function SessionModal({ websiteId, ...props }: SessionModalProps) { FILE: src/app/(main)/websites/[websiteId]/sessions/SessionProfile.tsx function SessionProfile (line 21) | function SessionProfile({ FILE: src/app/(main)/websites/[websiteId]/sessions/SessionProperties.tsx function SessionProperties (line 13) | function SessionProperties({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/sessions/SessionStats.tsx function SessionStats (line 6) | function SessionStats({ data }) { FILE: src/app/(main)/websites/[websiteId]/sessions/SessionsDataTable.tsx function SessionsDataTable (line 5) | function SessionsDataTable({ websiteId }: { websiteId?: string; teamId?:... FILE: src/app/(main)/websites/[websiteId]/sessions/SessionsMetricsBar.tsx function SessionsMetricsBar (line 8) | function SessionsMetricsBar({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/sessions/SessionsPage.tsx constant KEY_NAME (line 12) | const KEY_NAME = 'umami.sessions.tab'; function SessionsPage (line 14) | function SessionsPage({ websiteId }) { FILE: src/app/(main)/websites/[websiteId]/sessions/SessionsTable.tsx function SessionsTable (line 8) | function SessionsTable(props: DataTableProps) { FILE: src/app/(main)/websites/[websiteId]/settings/SettingsPage.tsx function SettingsPage (line 4) | function SettingsPage({ websiteId }: { websiteId: string }) { FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteData.tsx function WebsiteData (line 15) | function WebsiteData({ websiteId, onSave }: { websiteId: string; onSave?... FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteDeleteForm.tsx constant CONFIRM_VALUE (line 4) | const CONFIRM_VALUE = 'DELETE'; function WebsiteDeleteForm (line 6) | function WebsiteDeleteForm({ FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteEditForm.tsx function WebsiteEditForm (line 5) | function WebsiteEditForm({ websiteId, onSave }: { websiteId: string; onS... FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteResetForm.tsx constant CONFIRM_VALUE (line 4) | const CONFIRM_VALUE = 'RESET'; function WebsiteResetForm (line 6) | function WebsiteResetForm({ FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteSettings.tsx function WebsiteSettings (line 9) | function WebsiteSettings({ websiteId }: { websiteId: string; openExterna... FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteSettingsHeader.tsx function WebsiteSettingsHeader (line 7) | function WebsiteSettingsHeader() { FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteShareForm.tsx type WebsiteShareFormProps (line 20) | interface WebsiteShareFormProps { function WebsiteShareForm (line 27) | function WebsiteShareForm({ websiteId, shareId, onSave, onClose }: Websi... FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteTrackingCode.tsx constant SCRIPT_NAME (line 4) | const SCRIPT_NAME = 'script.js'; function WebsiteTrackingCode (line 6) | function WebsiteTrackingCode({ FILE: src/app/(main)/websites/[websiteId]/settings/WebsiteTransferForm.tsx function WebsiteTransferForm (line 22) | function WebsiteTransferForm({ FILE: src/app/Providers.tsx function MessagesProvider (line 21) | function MessagesProvider({ children }) { function Providers (line 36) | function Providers({ children }) { FILE: src/app/api/admin/teams/route.ts function GET (line 8) | async function GET(request: Request) { FILE: src/app/api/admin/users/route.ts function GET (line 8) | async function GET(request: Request) { FILE: src/app/api/admin/websites/route.ts function GET (line 9) | async function GET(request: Request) { FILE: src/app/api/auth/login/route.ts function POST (line 12) | async function POST(request: Request) { FILE: src/app/api/auth/logout/route.ts function POST (line 4) | async function POST(request: Request) { FILE: src/app/api/auth/sso/route.ts function POST (line 6) | async function POST(request: Request) { FILE: src/app/api/auth/verify/route.ts function POST (line 5) | async function POST(request: Request) { FILE: src/app/api/batch/route.ts function POST (line 9) | async function POST(request: Request) { FILE: src/app/api/config/route.ts function GET (line 4) | async function GET(request: Request) { FILE: src/app/api/heartbeat/route.ts function GET (line 1) | async function GET() { FILE: src/app/api/links/[linkId]/route.ts function GET (line 7) | async function GET(request: Request, { params }: { params: Promise<{ lin... function POST (line 25) | async function POST(request: Request, { params }: { params: Promise<{ li... function DELETE (line 58) | async function DELETE( FILE: src/app/api/links/route.ts function GET (line 9) | async function GET(request: Request) { function POST (line 28) | async function POST(request: Request) { FILE: src/app/api/me/password/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/me/route.ts function GET (line 4) | async function GET(request: Request) { FILE: src/app/api/me/teams/route.ts function GET (line 7) | async function GET(request: Request) { FILE: src/app/api/me/websites/route.ts function GET (line 7) | async function GET(request: Request) { FILE: src/app/api/pixels/[pixelId]/route.ts function GET (line 7) | async function GET(request: Request, { params }: { params: Promise<{ pix... function POST (line 25) | async function POST(request: Request, { params }: { params: Promise<{ pi... function DELETE (line 57) | async function DELETE( FILE: src/app/api/pixels/route.ts function GET (line 9) | async function GET(request: Request) { function POST (line 28) | async function POST(request: Request) { FILE: src/app/api/realtime/[websiteId]/route.ts function GET (line 8) | async function GET( FILE: src/app/api/reports/[reportId]/route.ts function GET (line 7) | async function GET(request: Request, { params }: { params: Promise<{ rep... function POST (line 25) | async function POST( function DELETE (line 60) | async function DELETE( FILE: src/app/api/reports/attribution/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/reports/breakdown/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/reports/funnel/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/reports/goal/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/reports/journey/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/reports/retention/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/reports/revenue/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/reports/route.ts function GET (line 9) | async function GET(request: Request) { function POST (line 49) | async function POST(request: Request) { FILE: src/app/api/reports/utm/route.ts function POST (line 8) | async function POST(request: Request) { FILE: src/app/api/scripts/telemetry/route.ts function GET (line 3) | async function GET() { FILE: src/app/api/send/route.ts type Cache (line 17) | interface Cache { function POST (line 61) | async function POST(request: Request) { FILE: src/app/api/share/[shareId]/route.ts function GET (line 6) | async function GET(_request: Request, { params }: { params: Promise<{ sh... FILE: src/app/api/teams/[teamId]/links/route.ts function GET (line 8) | async function GET(request: Request, { params }: { params: Promise<{ tea... FILE: src/app/api/teams/[teamId]/pixels/route.ts function GET (line 8) | async function GET(request: Request, { params }: { params: Promise<{ tea... FILE: src/app/api/teams/[teamId]/route.ts function GET (line 7) | async function GET(request: Request, { params }: { params: Promise<{ tea... function POST (line 29) | async function POST(request: Request, { params }: { params: Promise<{ te... function DELETE (line 52) | async function DELETE( FILE: src/app/api/teams/[teamId]/users/[userId]/route.ts function GET (line 8) | async function GET( function POST (line 29) | async function POST( function DELETE (line 60) | async function DELETE( FILE: src/app/api/teams/[teamId]/users/route.ts function GET (line 8) | async function GET(request: Request, { params }: { params: Promise<{ tea... function POST (line 54) | async function POST(request: Request, { params }: { params: Promise<{ te... FILE: src/app/api/teams/[teamId]/websites/route.ts function GET (line 8) | async function GET(request: Request, { params }: { params: Promise<{ tea... FILE: src/app/api/teams/join/route.ts function POST (line 7) | async function POST(request: Request) { FILE: src/app/api/teams/route.ts function GET (line 10) | async function GET(request: Request) { function POST (line 28) | async function POST(request: Request) { FILE: src/app/api/users/[userId]/route.ts function GET (line 9) | async function GET(request: Request, { params }: { params: Promise<{ use... function POST (line 27) | async function POST(request: Request, { params }: { params: Promise<{ us... function DELETE (line 79) | async function DELETE( FILE: src/app/api/users/[userId]/teams/route.ts function GET (line 7) | async function GET(request: Request, { params }: { params: Promise<{ use... FILE: src/app/api/users/[userId]/websites/route.ts function GET (line 7) | async function GET(request: Request, { params }: { params: Promise<{ use... FILE: src/app/api/users/route.ts function POST (line 10) | async function POST(request: Request) { FILE: src/app/api/websites/[websiteId]/active/route.ts function GET (line 6) | async function GET( FILE: src/app/api/websites/[websiteId]/daterange/route.ts function GET (line 6) | async function GET( FILE: src/app/api/websites/[websiteId]/event-data/[eventId]/route.ts function GET (line 6) | async function GET( FILE: src/app/api/websites/[websiteId]/event-data/events/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/event-data/fields/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/event-data/properties/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/event-data/stats/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/event-data/values/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/events/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/events/series/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/export/route.ts function GET (line 10) | async function GET( FILE: src/app/api/websites/[websiteId]/metrics/expanded/route.ts function GET (line 14) | async function GET( FILE: src/app/api/websites/[websiteId]/metrics/route.ts function GET (line 14) | async function GET( FILE: src/app/api/websites/[websiteId]/pageviews/route.ts function GET (line 9) | async function GET( FILE: src/app/api/websites/[websiteId]/reports/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/reset/route.ts function POST (line 6) | async function POST( FILE: src/app/api/websites/[websiteId]/route.ts function GET (line 8) | async function GET( function POST (line 29) | async function POST( function DELETE (line 65) | async function DELETE( FILE: src/app/api/websites/[websiteId]/segments/[segmentId]/route.ts function GET (line 8) | async function GET( function POST (line 29) | async function POST( function DELETE (line 67) | async function DELETE( FILE: src/app/api/websites/[websiteId]/segments/route.ts function GET (line 9) | async function GET( function POST (line 38) | async function POST( FILE: src/app/api/websites/[websiteId]/session-data/properties/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/session-data/values/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/sessions/[sessionId]/activity/route.ts function GET (line 7) | async function GET( FILE: src/app/api/websites/[websiteId]/sessions/[sessionId]/properties/route.ts function GET (line 6) | async function GET( FILE: src/app/api/websites/[websiteId]/sessions/[sessionId]/route.ts function GET (line 6) | async function GET( FILE: src/app/api/websites/[websiteId]/sessions/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/sessions/stats/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/sessions/weekly/route.ts function GET (line 8) | async function GET( FILE: src/app/api/websites/[websiteId]/stats/route.ts function GET (line 9) | async function GET( FILE: src/app/api/websites/[websiteId]/transfer/route.ts function POST (line 7) | async function POST( FILE: src/app/api/websites/[websiteId]/values/route.ts function GET (line 10) | async function GET( FILE: src/app/api/websites/route.ts constant CLOUD_WEBSITE_LIMIT (line 11) | const CLOUD_WEBSITE_LIMIT = 3; function GET (line 13) | async function GET(request: Request) { function POST (line 37) | async function POST(request: Request) { FILE: src/app/login/LoginForm.tsx function LoginForm (line 18) | function LoginForm() { FILE: src/app/login/LoginPage.tsx function LoginPage (line 5) | function LoginPage() { FILE: src/app/logout/LogoutPage.tsx function LogoutPage (line 8) | function LogoutPage() { FILE: src/app/page.tsx function RootPage (line 7) | function RootPage() { FILE: src/app/share/[...shareId]/Footer.tsx function Footer (line 4) | function Footer() { FILE: src/app/share/[...shareId]/Header.tsx function Header (line 6) | function Header() { FILE: src/app/share/[...shareId]/SharePage.tsx function SharePage (line 12) | function SharePage({ shareId }) { FILE: src/app/sso/SSOPage.tsx function SSOPage (line 7) | function SSOPage() { FILE: src/components/boards/Board.tsx type BoardProps (line 3) | interface BoardProps { function Board (line 7) | function Board({ children }: BoardProps) { FILE: src/components/charts/BarChart.tsx type BarChartProps (line 23) | interface BarChartProps extends ChartProps { function BarChart (line 35) | function BarChart({ FILE: src/components/charts/BubbleChart.tsx type BubbleChartProps (line 5) | interface BubbleChartProps extends ChartProps { function BubbleChart (line 9) | function BubbleChart({ type = 'bubble', ...props }: BubbleChartProps) { FILE: src/components/charts/Chart.tsx type ChartProps (line 14) | interface ChartProps extends BoxProps { function Chart (line 23) | function Chart({ FILE: src/components/charts/ChartTooltip.tsx function ChartTooltip (line 4) | function ChartTooltip({ FILE: src/components/charts/PieChart.tsx type PieChartProps (line 5) | interface PieChartProps extends ChartProps { function PieChart (line 9) | function PieChart({ type = 'pie', ...props }: PieChartProps) { FILE: src/components/common/ActionForm.tsx function ActionForm (line 3) | function ActionForm({ label, description, children }) { FILE: src/components/common/Avatar.tsx function Avatar (line 8) | function Avatar({ seed, size = 128, ...props }: { seed: string; size?: n... FILE: src/components/common/ConfirmationForm.tsx type ConfirmationFormProps (line 5) | interface ConfirmationFormProps { function ConfirmationForm (line 15) | function ConfirmationForm({ FILE: src/components/common/DataGrid.tsx constant DEFAULT_SEARCH_DELAY (line 17) | const DEFAULT_SEARCH_DELAY = 600; type DataGridProps (line 19) | interface DataGridProps { function DataGrid (line 30) | function DataGrid({ FILE: src/components/common/DateDisplay.tsx function DateDisplay (line 7) | function DateDisplay({ startDate, endDate }) { FILE: src/components/common/DateDistance.tsx function DateDistance (line 6) | function DateDistance({ date }: { date: Date }) { FILE: src/components/common/Empty.tsx type EmptyProps (line 4) | interface EmptyProps { function Empty (line 8) | function Empty({ message }: EmptyProps) { FILE: src/components/common/EmptyPlaceholder.tsx type EmptyPlaceholderProps (line 4) | interface EmptyPlaceholderProps { function EmptyPlaceholder (line 11) | function EmptyPlaceholder({ title, description, icon, children }: EmptyP... FILE: src/components/common/ErrorBoundary.tsx function ErrorBoundary (line 11) | function ErrorBoundary({ children }: { children: ReactNode }) { FILE: src/components/common/ErrorMessage.tsx function ErrorMessage (line 5) | function ErrorMessage() { FILE: src/components/common/ExternalLink.tsx function ExternalLink (line 6) | function ExternalLink({ FILE: src/components/common/Favicon.tsx function getHostName (line 4) | function getHostName(url: string) { function Favicon (line 9) | function Favicon({ domain, ...props }) { FILE: src/components/common/FilterLink.tsx type FilterLinkProps (line 7) | interface FilterLinkProps extends HTMLAttributes { function FilterLink (line 15) | function FilterLink({ type, value, label, externalUrl, icon }: FilterLin... FILE: src/components/common/FilterRecord.tsx type FilterRecordProps (line 8) | interface FilterRecordProps { function FilterRecord (line 21) | function FilterRecord({ FILE: src/components/common/GridRow.tsx constant LAYOUTS (line 3) | const LAYOUTS = { function GridRow (line 21) | function GridRow(props: { FILE: src/components/common/LinkButton.tsx type LinkButtonProps (line 6) | interface LinkButtonProps extends ButtonProps { function LinkButton (line 16) | function LinkButton({ FILE: src/components/common/LoadingPanel.tsx type LoadingPanelProps (line 6) | interface LoadingPanelProps extends ColumnProps { function LoadingPanel (line 18) | function LoadingPanel({ function checkEmpty (line 59) | function checkEmpty(data: any) { FILE: src/components/common/PageBody.tsx constant DEFAULT_WIDTH (line 6) | const DEFAULT_WIDTH = '1320px'; function PageBody (line 8) | function PageBody({ FILE: src/components/common/PageHeader.tsx function PageHeader (line 5) | function PageHeader({ FILE: src/components/common/Pager.tsx type PagerProps (line 5) | interface PagerProps { function Pager (line 13) | function Pager({ page, pageSize, count, onPageChange }: PagerProps) { FILE: src/components/common/Panel.tsx type PanelProps (line 15) | interface PanelProps extends ColumnProps { function Panel (line 30) | function Panel({ title, allowFullscreen, style, children, ...props }: Pa... FILE: src/components/common/SectionHeader.tsx function SectionHeader (line 4) | function SectionHeader({ FILE: src/components/common/SideMenu.tsx type SideMenuData (line 13) | interface SideMenuData { type SideMenuItems (line 20) | interface SideMenuItems { type SideMenuProps (line 25) | interface SideMenuProps extends NavMenuProps { function SideMenu (line 32) | function SideMenu({ FILE: src/components/common/TypeConfirmationForm.tsx function TypeConfirmationForm (line 11) | function TypeConfirmationForm({ FILE: src/components/common/TypeIcon.tsx function TypeIcon (line 4) | function TypeIcon({ FILE: src/components/hooks/context/useLink.ts function useLink (line 4) | function useLink() { FILE: src/components/hooks/context/usePixel.ts function usePixel (line 4) | function usePixel() { FILE: src/components/hooks/context/useTeam.ts function useTeam (line 4) | function useTeam() { FILE: src/components/hooks/context/useUser.ts function useUser (line 4) | function useUser() { FILE: src/components/hooks/context/useWebsite.ts function useWebsite (line 4) | function useWebsite() { FILE: src/components/hooks/queries/useActiveUsersQuery.ts function useActyiveUsersQuery (line 4) | function useActyiveUsersQuery(websiteId: string, options?: ReactQueryOpt... FILE: src/components/hooks/queries/useDateRangeQuery.ts type DateRange (line 4) | type DateRange = { function useDateRangeQuery (line 9) | function useDateRangeQuery(websiteId: string, options?: ReactQueryOption... FILE: src/components/hooks/queries/useDeleteQuery.ts function useDeleteQuery (line 4) | function useDeleteQuery(path: string, params?: Record) { FILE: src/components/hooks/queries/useEventDataEventsQuery.ts function useEventDataEventsQuery (line 6) | function useEventDataEventsQuery(websiteId: string, options?: ReactQuery... FILE: src/components/hooks/queries/useEventDataPropertiesQuery.ts function useEventDataPropertiesQuery (line 6) | function useEventDataPropertiesQuery(websiteId: string, options?: ReactQ... FILE: src/components/hooks/queries/useEventDataQuery.ts function useEventDataQuery (line 6) | function useEventDataQuery(websiteId: string, eventId: string, options?:... FILE: src/components/hooks/queries/useEventDataValuesQuery.ts function useEventDataValuesQuery (line 6) | function useEventDataValuesQuery( FILE: src/components/hooks/queries/useLinkQuery.ts function useLinkQuery (line 4) | function useLinkQuery(linkId: string) { FILE: src/components/hooks/queries/useLinksQuery.ts function useLinksQuery (line 6) | function useLinksQuery({ teamId }: { teamId?: string }, options?: ReactQ... FILE: src/components/hooks/queries/useLoginQuery.ts function useLoginQuery (line 6) | function useLoginQuery() { FILE: src/components/hooks/queries/usePixelQuery.ts function usePixelQuery (line 4) | function usePixelQuery(pixelId: string) { FILE: src/components/hooks/queries/usePixelsQuery.ts function usePixelsQuery (line 6) | function usePixelsQuery({ teamId }: { teamId?: string }, options?: React... FILE: src/components/hooks/queries/useRealtimeQuery.ts function useRealtimeQuery (line 5) | function useRealtimeQuery(websiteId: string) { FILE: src/components/hooks/queries/useReportQuery.ts function useReportQuery (line 4) | function useReportQuery(reportId: string) { FILE: src/components/hooks/queries/useReportsQuery.ts function useReportsQuery (line 6) | function useReportsQuery( FILE: src/components/hooks/queries/useResultQuery.ts function useResultQuery (line 6) | function useResultQuery( FILE: src/components/hooks/queries/useSessionActivityQuery.ts function useSessionActivityQuery (line 3) | function useSessionActivityQuery( FILE: src/components/hooks/queries/useSessionDataPropertiesQuery.ts function useSessionDataPropertiesQuery (line 6) | function useSessionDataPropertiesQuery(websiteId: string, options?: Reac... FILE: src/components/hooks/queries/useSessionDataQuery.ts function useSessionDataQuery (line 3) | function useSessionDataQuery(websiteId: string, sessionId: string) { FILE: src/components/hooks/queries/useSessionDataValuesQuery.ts function useSessionDataValuesQuery (line 6) | function useSessionDataValuesQuery( FILE: src/components/hooks/queries/useShareTokenQuery.ts function useShareTokenQuery (line 6) | function useShareTokenQuery(shareId: string): { FILE: src/components/hooks/queries/useTeamMembersQuery.ts function useTeamMembersQuery (line 5) | function useTeamMembersQuery(teamId: string) { FILE: src/components/hooks/queries/useTeamQuery.ts function useTeamQuery (line 6) | function useTeamQuery(teamId: string, options?: ReactQueryOptions) { FILE: src/components/hooks/queries/useTeamWebsitesQuery.ts function useTeamWebsitesQuery (line 5) | function useTeamWebsitesQuery(teamId: string) { FILE: src/components/hooks/queries/useTeamsQuery.ts function useTeamsQuery (line 6) | function useTeamsQuery(params?: Record, options?: ReactQuer... FILE: src/components/hooks/queries/useUpdateQuery.ts function useUpdateQuery (line 6) | function useUpdateQuery(path: string, params?: Record) { FILE: src/components/hooks/queries/useUserQuery.ts function useUserQuery (line 6) | function useUserQuery(userId: string, options?: ReactQueryOptions) { FILE: src/components/hooks/queries/useUserTeamsQuery.ts function useUserTeamsQuery (line 4) | function useUserTeamsQuery(userId: string) { FILE: src/components/hooks/queries/useUserWebsitesQuery.ts function useUserWebsitesQuery (line 6) | function useUserWebsitesQuery( FILE: src/components/hooks/queries/useUsersQuery.ts function useUsersQuery (line 5) | function useUsersQuery() { FILE: src/components/hooks/queries/useWebsiteCohortQuery.ts function useWebsiteCohortQuery (line 6) | function useWebsiteCohortQuery( FILE: src/components/hooks/queries/useWebsiteCohortsQuery.ts function useWebsiteCohortsQuery (line 7) | function useWebsiteCohortsQuery( FILE: src/components/hooks/queries/useWebsiteEventsQuery.ts constant EVENT_TYPES (line 7) | const EVENT_TYPES = { function useWebsiteEventsQuery (line 12) | function useWebsiteEventsQuery( FILE: src/components/hooks/queries/useWebsiteEventsSeriesQuery.ts function useWebsiteEventsSeriesQuery (line 6) | function useWebsiteEventsSeriesQuery(websiteId: string, options?: ReactQ... FILE: src/components/hooks/queries/useWebsiteExpandedMetricsQuery.ts type WebsiteExpandedMetricsData (line 7) | type WebsiteExpandedMetricsData = { function useWebsiteExpandedMetricsQuery (line 16) | function useWebsiteExpandedMetricsQuery( FILE: src/components/hooks/queries/useWebsiteMetricsQuery.ts type WebsiteMetricsData (line 7) | type WebsiteMetricsData = { function useWebsiteMetricsQuery (line 12) | function useWebsiteMetricsQuery( FILE: src/components/hooks/queries/useWebsitePageviewsQuery.ts type WebsitePageviewsData (line 6) | interface WebsitePageviewsData { function useWebsitePageviewsQuery (line 11) | function useWebsitePageviewsQuery( FILE: src/components/hooks/queries/useWebsiteQuery.ts function useWebsiteQuery (line 6) | function useWebsiteQuery(websiteId: string, options?: ReactQueryOptions) { FILE: src/components/hooks/queries/useWebsiteSegmentQuery.ts function useWebsiteSegmentQuery (line 6) | function useWebsiteSegmentQuery( FILE: src/components/hooks/queries/useWebsiteSegmentsQuery.ts function useWebsiteSegmentsQuery (line 7) | function useWebsiteSegmentsQuery( FILE: src/components/hooks/queries/useWebsiteSessionQuery.ts function useWebsiteSessionQuery (line 3) | function useWebsiteSessionQuery(websiteId: string, sessionId: string) { FILE: src/components/hooks/queries/useWebsiteSessionStatsQuery.ts function useWebsiteSessionStatsQuery (line 5) | function useWebsiteSessionStatsQuery(websiteId: string, options?: Record... FILE: src/components/hooks/queries/useWebsiteSessionsQuery.ts function useWebsiteSessionsQuery (line 7) | function useWebsiteSessionsQuery( FILE: src/components/hooks/queries/useWebsiteStatsQuery.ts type WebsiteStatsData (line 6) | interface WebsiteStatsData { function useWebsiteStatsQuery (line 21) | function useWebsiteStatsQuery( FILE: src/components/hooks/queries/useWebsiteValuesQuery.ts function useWebsiteValuesQuery (line 6) | function useWebsiteValuesQuery({ FILE: src/components/hooks/queries/useWebsitesQuery.ts function useWebsitesQuery (line 6) | function useWebsitesQuery(params?: Record, options?: ReactQ... FILE: src/components/hooks/queries/useWeeklyTrafficQuery.ts function useWeeklyTrafficQuery (line 6) | function useWeeklyTrafficQuery(websiteId: string, params?: Record { function useApi (line 19) | function useApi() { FILE: src/components/hooks/useConfig.ts type Config (line 5) | type Config = { function useConfig (line 16) | function useConfig(): Config { FILE: src/components/hooks/useCountryNames.ts function useCountryNames (line 9) | function useCountryNames(locale: string) { FILE: src/components/hooks/useDateParameters.ts function useDateParameters (line 4) | function useDateParameters() { FILE: src/components/hooks/useDateRange.ts function useDateRange (line 8) | function useDateRange(options: { ignoreOffset?: boolean; timezone?: stri... FILE: src/components/hooks/useDocumentClick.ts function useDocumentClick (line 3) | function useDocumentClick(handler: (event: MouseEvent) => any) { FILE: src/components/hooks/useEscapeKey.ts function useEscapeKey (line 3) | function useEscapeKey(handler: (event: KeyboardEvent) => void) { FILE: src/components/hooks/useFields.ts function useFields (line 3) | function useFields() { FILE: src/components/hooks/useFilterParameters.ts function useFilterParameters (line 4) | function useFilterParameters() { FILE: src/components/hooks/useFilters.ts function useFilters (line 7) | function useFilters() { FILE: src/components/hooks/useForceUpdate.ts function useForceUpdate (line 3) | function useForceUpdate() { FILE: src/components/hooks/useFormat.ts function useFormat (line 8) | function useFormat() { FILE: src/components/hooks/useLanguageNames.ts function useLanguageNames (line 9) | function useLanguageNames(locale) { FILE: src/components/hooks/useLocale.ts function useLocale (line 16) | function useLocale() { FILE: src/components/hooks/useMessages.ts type FormatMessage (line 5) | type FormatMessage = ( type UseMessages (line 11) | interface UseMessages { function useMessages (line 20) | function useMessages(): UseMessages { FILE: src/components/hooks/useMobile.ts function useMobile (line 3) | function useMobile() { FILE: src/components/hooks/useModified.ts function touch (line 5) | function touch(key: string) { function useModified (line 9) | function useModified(key?: string) { FILE: src/components/hooks/useNavigation.ts function useNavigation (line 5) | function useNavigation() { FILE: src/components/hooks/usePageParameters.ts function usePageParameters (line 4) | function usePageParameters() { FILE: src/components/hooks/usePagedQuery.ts function usePagedQuery (line 6) | function usePagedQuery({ FILE: src/components/hooks/useRegionNames.ts function useRegionNames (line 4) | function useRegionNames(locale: string) { FILE: src/components/hooks/useSlug.ts function useSlug (line 4) | function useSlug(type: 'link' | 'pixel') { FILE: src/components/hooks/useSticky.ts function useSticky (line 3) | function useSticky({ enabled = true, threshold = 1 }) { FILE: src/components/hooks/useTimezone.ts function useTimezone (line 10) | function useTimezone() { FILE: src/components/input/ActionSelect.tsx type ActionSelectProps (line 4) | interface ActionSelectProps { function ActionSelect (line 9) | function ActionSelect({ value = 'path', onChange }: ActionSelectProps) { FILE: src/components/input/CurrencySelect.tsx function CurrencySelect (line 6) | function CurrencySelect({ value, onChange }) { FILE: src/components/input/DateFilter.tsx type DateFilterProps (line 9) | interface DateFilterProps extends SelectProps { function DateFilter (line 17) | function DateFilter({ FILE: src/components/input/DialogButton.tsx type DialogButtonProps (line 13) | interface DialogButtonProps extends Omit { function DialogButton (line 24) | function DialogButton({ FILE: src/components/input/DownloadButton.tsx function DownloadButton (line 6) | function DownloadButton({ function downloadCsv (line 32) | function downloadCsv(filename: string, data: any) { FILE: src/components/input/ExportButton.tsx function ExportButton (line 9) | function ExportButton({ websiteId }: { websiteId: string }) { function loadZip (line 49) | async function loadZip(zip: string) { FILE: src/components/input/FieldFilters.tsx type FieldFiltersProps (line 21) | interface FieldFiltersProps { function FieldFilters (line 28) | function FieldFilters({ websiteId, value, exclude = [], onChange }: Fiel... FILE: src/components/input/FilterBar.tsx function FilterBar (line 23) | function FilterBar({ websiteId }: { websiteId: string }) { FILE: src/components/input/FilterButtons.tsx type FilterButtonsProps (line 4) | interface FilterButtonsProps { function FilterButtons (line 10) | function FilterButtons({ items, value, onChange }: FilterButtonsProps) { FILE: src/components/input/FilterEditForm.tsx type FilterEditFormProps (line 7) | interface FilterEditFormProps { function FilterEditForm (line 13) | function FilterEditForm({ websiteId, onChange, onClose }: FilterEditForm... FILE: src/components/input/LanguageButton.tsx function LanguageButton (line 6) | function LanguageButton() { FILE: src/components/input/LookupField.tsx type LookupFieldProps (line 7) | interface LookupFieldProps extends ComboBoxProps { function LookupField (line 14) | function LookupField({ websiteId, type, value, onChange, ...props }: Loo... FILE: src/components/input/MenuButton.tsx function MenuButton (line 5) | function MenuButton({ FILE: src/components/input/MobileMenuButton.tsx function MobileMenuButton (line 4) | function MobileMenuButton(props: DialogProps) { FILE: src/components/input/MonthFilter.tsx function MonthFilter (line 5) | function MonthFilter() { FILE: src/components/input/MonthSelect.tsx function MonthSelect (line 5) | function MonthSelect({ date = new Date(), onChange }) { FILE: src/components/input/NavButton.tsx type TeamsButtonProps (line 40) | interface TeamsButtonProps { function NavButton (line 45) | function NavButton({ showText = true }: TeamsButtonProps) { FILE: src/components/input/PanelButton.tsx function PanelButton (line 5) | function PanelButton(props: ButtonProps) { FILE: src/components/input/PreferencesButton.tsx function PreferencesButton (line 8) | function PreferencesButton() { FILE: src/components/input/ProfileButton.tsx function ProfileButton (line 17) | function ProfileButton() { FILE: src/components/input/RefreshButton.tsx function RefreshButton (line 6) | function RefreshButton({ FILE: src/components/input/ReportEditButton.tsx function ReportEditButton (line 18) | function ReportEditButton({ FILE: src/components/input/SegmentFilters.tsx type SegmentFiltersProps (line 7) | interface SegmentFiltersProps { function SegmentFilters (line 14) | function SegmentFilters({ FILE: src/components/input/SegmentSaveButton.tsx function SegmentSaveButton (line 6) | function SegmentSaveButton({ websiteId }: { websiteId: string }) { FILE: src/components/input/SettingsButton.tsx function SettingsButton (line 24) | function SettingsButton() { FILE: src/components/input/WebsiteDateFilter.tsx type WebsiteDateFilterProps (line 9) | interface WebsiteDateFilterProps { function WebsiteDateFilter (line 17) | function WebsiteDateFilter({ FILE: src/components/input/WebsiteFilterButton.tsx function WebsiteFilterButton (line 7) | function WebsiteFilterButton({ FILE: src/components/input/WebsiteSelect.tsx function WebsiteSelect (line 11) | function WebsiteSelect({ FILE: src/components/metrics/ActiveUsers.tsx function ActiveUsers (line 6) | function ActiveUsers({ FILE: src/components/metrics/ChangeLabel.tsx constant STYLES (line 5) | const STYLES = { function ChangeLabel (line 20) | function ChangeLabel({ FILE: src/components/metrics/DatePickerForm.tsx constant FILTER_DAY (line 6) | const FILTER_DAY = 'filter-day'; constant FILTER_RANGE (line 7) | const FILTER_RANGE = 'filter-range'; function DatePickerForm (line 9) | function DatePickerForm({ FILE: src/components/metrics/EventData.tsx function EventData (line 5) | function EventData({ websiteId, eventId }: { websiteId: string; eventId:... FILE: src/components/metrics/EventsChart.tsx type EventsChartProps (line 15) | interface EventsChartProps extends BarChartProps { function EventsChart (line 20) | function EventsChart({ websiteId, focusLabel }: EventsChartProps) { FILE: src/components/metrics/Legend.tsx function Legend (line 5) | function Legend({ FILE: src/components/metrics/ListTable.tsx constant ITEM_SIZE (line 10) | const ITEM_SIZE = 30; type ListData (line 12) | interface ListData { type ListTableProps (line 18) | interface ListTableProps { function ListTable (line 32) | function ListTable({ FILE: src/components/metrics/MetricCard.tsx type MetricCardProps (line 7) | interface MetricCardProps { FILE: src/components/metrics/MetricLabel.tsx type MetricLabelProps (line 14) | interface MetricLabelProps { function MetricLabel (line 20) | function MetricLabel({ type, data }: MetricLabelProps) { FILE: src/components/metrics/MetricsBar.tsx type MetricsBarProps (line 4) | interface MetricsBarProps extends GridProps { function MetricsBar (line 8) | function MetricsBar({ children, ...props }: MetricsBarProps) { FILE: src/components/metrics/MetricsExpandedTable.tsx type MetricsExpandedTableProps (line 11) | interface MetricsExpandedTableProps { function MetricsExpandedTable (line 25) | function MetricsExpandedTable({ FILE: src/components/metrics/MetricsTable.tsx type MetricsTableProps (line 11) | interface MetricsTableProps extends ListTableProps { function MetricsTable (line 22) | function MetricsTable({ FILE: src/components/metrics/PageviewsChart.tsx type PageviewsChartProps (line 9) | interface PageviewsChartProps extends BarChartProps { function PageviewsChart (line 21) | function PageviewsChart({ data, unit, minDate, maxDate, ...props }: Page... FILE: src/components/metrics/RealtimeChart.tsx type RealtimeChartProps (line 8) | interface RealtimeChartProps { function RealtimeChart (line 14) | function RealtimeChart({ data, unit, ...props }: RealtimeChartProps) { FILE: src/components/metrics/WeeklyTraffic.tsx function WeeklyTraffic (line 7) | function WeeklyTraffic({ websiteId }: { websiteId: string }) { FILE: src/components/metrics/WorldMap.tsx type WorldMapProps (line 16) | interface WorldMapProps extends ColumnProps { function WorldMap (line 21) | function WorldMap({ websiteId, data, ...props }: WorldMapProps) { FILE: src/lib/__tests__/detect.test.ts constant BAD_IP (line 4) | const BAD_IP = '127.127.127.127'; FILE: src/lib/auth.ts function getBearerToken (line 12) | function getBearerToken(request: Request) { function checkAuth (line 18) | async function checkAuth(request: Request) { function saveAuth (line 55) | async function saveAuth(data: any, expire = 0) { function hasPermission (line 69) | async function hasPermission(role: string, permission: string | string[]) { function parseShareToken (line 73) | function parseShareToken(request: Request) { FILE: src/lib/charts.ts function renderNumberLabels (line 4) | function renderNumberLabels(label: string) { function renderDateLabels (line 8) | function renderDateLabels(unit: string, locale: string) { FILE: src/lib/clickhouse.ts constant CLICKHOUSE_DATE_FORMATS (line 9) | const CLICKHOUSE_DATE_FORMATS = { function getClient (line 24) | function getClient() { function getUTCString (line 50) | function getUTCString(date?: Date | string | number) { function getDateStringSQL (line 54) | function getDateStringSQL(data: any, unit: string = 'utc', timezone?: st... function getDateSQL (line 62) | function getDateSQL(field: string, unit: string, timezone?: string) { function getSearchSQL (line 69) | function getSearchSQL(column: string, param: string = 'search'): string { function mapFilter (line 73) | function mapFilter(column: string, operator: string, name: string, type:... function getFilterQuery (line 90) | function getFilterQuery(filters: Record, options: QueryOpti... function getCohortQuery (line 116) | function getCohortQuery(filters: Record) { function getDateQuery (line 134) | function getDateQuery(filters: Record) { function getQueryParams (line 154) | function getQueryParams(filters: Record) { function parseFilters (line 167) | function parseFilters(filters: Record, options?: QueryOptio... function pagedRawQuery (line 180) | async function pagedRawQuery( function rawQuery (line 207) | async function rawQuery( function insert (line 231) | async function insert(table: string, values: any[]) { function findUnique (line 237) | async function findUnique(data: any[]) { function findFirst (line 245) | async function findFirst(data: any[]) { function connect (line 249) | async function connect() { FILE: src/lib/client.ts function getClientAuthToken (line 4) | function getClientAuthToken() { function setClientAuthToken (line 8) | function setClientAuthToken(token: string) { function removeClientAuthToken (line 12) | function removeClientAuthToken() { FILE: src/lib/colors.ts function hex6 (line 4) | function hex6(str: string) { function clamp (line 18) | function clamp(num: number, min: number, max: number) { function hex2RGB (line 22) | function hex2RGB(color: string, min: number = 0, max: number = 255) { function rgb2Hex (line 37) | function rgb2Hex(r: number, g: number, b: number, prefix = '') { function getPastel (line 41) | function getPastel(color: string, factor: number = 0.5, prefix = '') { function getColor (line 51) | function getColor(seed: string, min: number = 0, max: number = 255) { function getThemeColors (line 58) | function getThemeColors(theme: string) { FILE: src/lib/constants.ts constant CURRENT_VERSION (line 1) | const CURRENT_VERSION = process.env.currentVersion; constant AUTH_TOKEN (line 2) | const AUTH_TOKEN = 'umami.auth'; constant LOCALE_CONFIG (line 3) | const LOCALE_CONFIG = 'umami.locale'; constant TIMEZONE_CONFIG (line 4) | const TIMEZONE_CONFIG = 'umami.timezone'; constant DATE_RANGE_CONFIG (line 5) | const DATE_RANGE_CONFIG = 'umami.date-range'; constant THEME_CONFIG (line 6) | const THEME_CONFIG = 'umami.theme'; constant DASHBOARD_CONFIG (line 7) | const DASHBOARD_CONFIG = 'umami.dashboard'; constant LAST_TEAM_CONFIG (line 8) | const LAST_TEAM_CONFIG = 'umami.last-team'; constant VERSION_CHECK (line 9) | const VERSION_CHECK = 'umami.version-check'; constant SHARE_TOKEN_HEADER (line 10) | const SHARE_TOKEN_HEADER = 'x-umami-share-token'; constant HOMEPAGE_URL (line 11) | const HOMEPAGE_URL = 'https://umami.is'; constant DOCS_URL (line 12) | const DOCS_URL = 'https://umami.is/docs'; constant REPO_URL (line 13) | const REPO_URL = 'https://github.com/umami-software/umami'; constant UPDATES_URL (line 14) | const UPDATES_URL = 'https://api.umami.is/v1/updates'; constant TELEMETRY_PIXEL (line 15) | const TELEMETRY_PIXEL = 'https://i.umami.is/a.png'; constant FAVICON_URL (line 16) | const FAVICON_URL = 'https://icons.duckduckgo.com/ip3/{{domain}}.ico'; constant LINKS_URL (line 17) | const LINKS_URL = `${globalThis?.location?.origin}/q`; constant PIXELS_URL (line 18) | const PIXELS_URL = `${globalThis?.location?.origin}/p`; constant DEFAULT_LOCALE (line 20) | const DEFAULT_LOCALE = 'en-US'; constant DEFAULT_THEME (line 21) | const DEFAULT_THEME = 'light'; constant DEFAULT_ANIMATION_DURATION (line 22) | const DEFAULT_ANIMATION_DURATION = 300; constant DEFAULT_DATE_RANGE_VALUE (line 23) | const DEFAULT_DATE_RANGE_VALUE = '24hour'; constant DEFAULT_WEBSITE_LIMIT (line 24) | const DEFAULT_WEBSITE_LIMIT = 10; constant DEFAULT_RESET_DATE (line 25) | const DEFAULT_RESET_DATE = '2000-01-01'; constant DEFAULT_PAGE_SIZE (line 26) | const DEFAULT_PAGE_SIZE = 20; constant DEFAULT_DATE_COMPARE (line 27) | const DEFAULT_DATE_COMPARE = 'prev'; constant REALTIME_RANGE (line 29) | const REALTIME_RANGE = 30; constant REALTIME_INTERVAL (line 30) | const REALTIME_INTERVAL = 10000; constant UNIT_TYPES (line 32) | const UNIT_TYPES = ['year', 'month', 'hour', 'day', 'minute']; constant EVENT_COLUMNS (line 34) | const EVENT_COLUMNS = [ constant SESSION_COLUMNS (line 47) | const SESSION_COLUMNS = [ constant SEGMENT_TYPES (line 58) | const SEGMENT_TYPES = { constant FILTER_COLUMNS (line 63) | const FILTER_COLUMNS = { constant COLLECTION_TYPE (line 84) | const COLLECTION_TYPE = { constant EVENT_TYPE (line 89) | const EVENT_TYPE = { constant DATA_TYPE (line 96) | const DATA_TYPE = { constant OPERATORS (line 104) | const OPERATORS = { constant DATA_TYPES (line 121) | const DATA_TYPES = { constant ROLES (line 129) | const ROLES = { constant PERMISSIONS (line 139) | const PERMISSIONS = { constant ROLE_PERMISSIONS (line 151) | const ROLE_PERMISSIONS = { constant THEME_COLORS (line 184) | const THEME_COLORS = { constant CHART_COLORS (line 199) | const CHART_COLORS = [ constant DOMAIN_REGEX (line 214) | const DOMAIN_REGEX = constant SHARE_ID_REGEX (line 216) | const SHARE_ID_REGEX = /^[a-zA-Z0-9]{8,50}$/; constant DATETIME_REGEX (line 217) | const DATETIME_REGEX = constant URL_LENGTH (line 220) | const URL_LENGTH = 500; constant PAGE_TITLE_LENGTH (line 221) | const PAGE_TITLE_LENGTH = 500; constant EVENT_NAME_LENGTH (line 222) | const EVENT_NAME_LENGTH = 50; constant UTM_PARAMS (line 224) | const UTM_PARAMS = ['utm_campaign', 'utm_content', 'utm_medium', 'utm_so... constant OS_NAMES (line 226) | const OS_NAMES = { constant BROWSERS (line 234) | const BROWSERS = { constant SOCIAL_DOMAINS (line 265) | const SOCIAL_DOMAINS = [ constant SEARCH_DOMAINS (line 283) | const SEARCH_DOMAINS = [ constant SHOPPING_DOMAINS (line 296) | const SHOPPING_DOMAINS = [ constant EMAIL_DOMAINS (line 308) | const EMAIL_DOMAINS = [ constant VIDEO_DOMAINS (line 317) | const VIDEO_DOMAINS = ['twitch.', 'youtube.']; constant PAID_AD_PARAMS (line 319) | const PAID_AD_PARAMS = [ constant GROUPED_DOMAINS (line 340) | const GROUPED_DOMAINS = [ constant MAP_FILE (line 360) | const MAP_FILE = '/datamaps.world.json'; constant ISO_COUNTRIES (line 362) | const ISO_COUNTRIES = { constant CURRENCIES (line 610) | const CURRENCIES = [ constant TIMEZONE_LEGACY (line 663) | const TIMEZONE_LEGACY: Record = { FILE: src/lib/crypto.ts constant ALGORITHM (line 4) | const ALGORITHM = 'aes-256-gcm'; constant IV_LENGTH (line 5) | const IV_LENGTH = 16; constant SALT_LENGTH (line 6) | const SALT_LENGTH = 64; constant TAG_LENGTH (line 7) | const TAG_LENGTH = 16; constant TAG_POSITION (line 8) | const TAG_POSITION = SALT_LENGTH + IV_LENGTH; constant ENC_POSITION (line 9) | const ENC_POSITION = TAG_POSITION + TAG_LENGTH; constant HASH_ALGO (line 11) | const HASH_ALGO = 'sha512'; constant HASH_ENCODING (line 12) | const HASH_ENCODING = 'hex'; function encrypt (line 17) | function encrypt(value: any, secret: any) { function decrypt (line 31) | function decrypt(value: any, secret: any) { function hash (line 47) | function hash(...args: string[]) { function md5 (line 51) | function md5(...args: string[]) { function secret (line 55) | function secret() { function uuid (line 59) | function uuid(...args: any) { FILE: src/lib/data.ts function flattenJSON (line 4) | function flattenJSON( function isValidDateValue (line 27) | function isValidDateValue(value: string) { function getDataType (line 31) | function getDataType(value: any): string { function getStringValue (line 41) | function getStringValue(value: string, dataType: number) { function createKey (line 53) | function createKey(key: string, value: string, acc: { keyValues: any[]; ... function getKeyName (line 84) | function getKeyName(key: string, parentKey: string) { function objectToArray (line 92) | function objectToArray(obj: object) { FILE: src/lib/date.ts constant TIME_UNIT (line 44) | const TIME_UNIT = { constant DATE_FUNCTIONS (line 53) | const DATE_FUNCTIONS = { constant DATE_FORMATS (line 98) | const DATE_FORMATS = { constant TIMEZONE_MAPPINGS (line 107) | const TIMEZONE_MAPPINGS: Record = { function normalizeTimezone (line 111) | function normalizeTimezone(timezone: string): string { function isValidTimezone (line 115) | function isValidTimezone(timezone: string) { function getTimezone (line 125) | function getTimezone() { function parseDateValue (line 129) | function parseDateValue(value: string) { function parseDateRange (line 139) | function parseDateRange(value: string, locale = 'en-US', timezone?: stri... function getOffsetDateRange (line 216) | function getOffsetDateRange(dateRange: DateRange, offset: number) { function getAllowedUnits (line 268) | function getAllowedUnits(startDate: Date, endDate: Date) { function getMinimumUnit (line 276) | function getMinimumUnit(startDate: number | Date, endDate: number | Date) { function maxDate (line 290) | function maxDate(...args: Date[]) { function minDate (line 294) | function minDate(...args: any[]) { function getCompareDate (line 298) | function getCompareDate(compare: string, startDate: Date, endDate: Date) { function getDayOfWeekAsDate (line 312) | function getDayOfWeekAsDate(dayOfWeek: number) { function formatDate (line 325) | function formatDate( function generateTimeSeries (line 335) | function generateTimeSeries( function getDateRangeValue (line 365) | function getDateRangeValue(startDate: Date, endDate: Date) { function getMonthDateRangeValue (line 369) | function getMonthDateRangeValue(date: Date) { function isInvalidDate (line 373) | function isInvalidDate(date: any) { FILE: src/lib/db.ts constant PRISMA (line 1) | const PRISMA = 'prisma'; constant POSTGRESQL (line 2) | const POSTGRESQL = 'postgresql'; constant CLICKHOUSE (line 3) | const CLICKHOUSE = 'clickhouse'; constant KAFKA (line 4) | const KAFKA = 'kafka'; constant KAFKA_PRODUCER (line 5) | const KAFKA_PRODUCER = 'kafka-producer'; function getDatabaseType (line 12) | function getDatabaseType(url = process.env.DATABASE_URL) { function runQuery (line 22) | async function runQuery(queries: any) { function notImplemented (line 38) | function notImplemented() { FILE: src/lib/detect.ts constant MAXMIND (line 10) | const MAXMIND = 'maxmind'; constant PROVIDER_HEADERS (line 12) | const PROVIDER_HEADERS = [ function getDevice (line 33) | function getDevice(userAgent: string, screen: string = '') { function getRegionCode (line 47) | function getRegionCode(country: string, region: string) { function decodeHeader (line 55) | function decodeHeader(s: string | undefined | null): string | undefined ... function getLocation (line 63) | async function getLocation(ip: string = '', headers: Headers, hasPayload... function getClientInfo (line 110) | async function getClientInfo(request: Request, payload: Record { function sendMessage (line 66) | async function sendMessage( function connect (line 93) | async function connect(): Promise { FILE: src/lib/lang.ts function getDateLocale (line 105) | function getDateLocale(locale: string) { function getTextDirection (line 109) | function getTextDirection(locale: string) { FILE: src/lib/load.ts function fetchWebsite (line 6) | async function fetchWebsite(websiteId: string): Promise { function fetchSession (line 22) | async function fetchSession(websiteId: string, sessionId: string): Promi... FILE: src/lib/params.ts function parseFilterValue (line 4) | function parseFilterValue(param: any) { function isEqualsOperator (line 18) | function isEqualsOperator(operator: any) { function isSearchOperator (line 22) | function isSearchOperator(operator: any) { function filtersObjectToArray (line 26) | function filtersObjectToArray(filters: QueryFilters, options: QueryOptio... function filtersArrayToObject (line 54) | function filtersArrayToObject(filters: Filter[]) { FILE: src/lib/password.ts constant SALT_ROUNDS (line 3) | const SALT_ROUNDS = 10; function hashPassword (line 5) | function hashPassword(password: string, rounds = SALT_ROUNDS) { function checkPassword (line 9) | function checkPassword(password: string, passwordHash: string) { FILE: src/lib/prisma.ts constant PRISMA (line 11) | const PRISMA = 'prisma'; constant PRISMA_LOG_OPTIONS (line 13) | const PRISMA_LOG_OPTIONS = { constant DATE_FORMATS (line 22) | const DATE_FORMATS = { constant DATE_FORMATS_UTC (line 30) | const DATE_FORMATS_UTC = { function getAddIntervalQuery (line 38) | function getAddIntervalQuery(field: string, interval: string): string { function getDayDiffQuery (line 42) | function getDayDiffQuery(field1: string, field2: string): string { function getCastColumnQuery (line 46) | function getCastColumnQuery(field: string, type: string): string { function getDateSQL (line 50) | function getDateSQL(field: string, unit: string, timezone?: string): str... function getDateWeeklySQL (line 58) | function getDateWeeklySQL(field: string, timezone?: string) { function getTimestampSQL (line 62) | function getTimestampSQL(field: string) { function getTimestampDiffSQL (line 66) | function getTimestampDiffSQL(field1: string, field2: string): string { function getSearchSQL (line 70) | function getSearchSQL(column: string, param: string = 'search'): string { function mapFilter (line 74) | function mapFilter(column: string, operator: string, name: string, type:... function getFilterQuery (line 91) | function getFilterQuery(filters: Record, options: QueryOpti... function getCohortQuery (line 118) | function getCohortQuery(filters: QueryFilters = {}) { function getDateQuery (line 138) | function getDateQuery(filters: Record) { function getQueryParams (line 152) | function getQueryParams(filters: Record) { function parseFilters (line 165) | function parseFilters(filters: Record, options?: QueryOptio... function rawQuery (line 186) | async function rawQuery(sql: string, data: Record, name?: s... function pagedQuery (line 216) | async function pagedQuery(model: string, criteria: T, filters?: Query... function pagedRawQuery (line 239) | async function pagedRawQuery( function getSearchParameters (line 266) | function getSearchParameters(query: string, filters: Record... function transaction (line 292) | function transaction(input: any, options?: any) { function getSchema (line 296) | function getSchema() { function getClient (line 302) | function getClient() { FILE: src/lib/react.ts function getFragmentChildren (line 11) | function getFragmentChildren(children: ReactNode) { function isValidChild (line 17) | function isValidChild(child: ReactElement, types: FC | FC[]) { function mapChildren (line 24) | function mapChildren( function cloneChildren (line 36) | function cloneChildren( function renderChildren (line 62) | function renderChildren( function countChildren (line 75) | function countChildren(children: ReactNode): number { FILE: src/lib/redis.ts constant REDIS (line 3) | const REDIS = 'redis'; function getClient (line 6) | function getClient() { FILE: src/lib/request.ts function parseRequest (line 11) | async function parseRequest( function getJsonBody (line 46) | async function getJsonBody(request: Request) { function getRequestDateRange (line 54) | function getRequestDateRange(query: Record) { function getRequestFilters (line 70) | function getRequestFilters(query: Record) { function setWebsiteDate (line 83) | async function setWebsiteDate(websiteId: string, data: Record = {}) { function badRequest (line 9) | function badRequest(error?: Record) { function unauthorized (line 18) | function unauthorized(error?: Record) { function forbidden (line 32) | function forbidden(error?: Record) { function notFound (line 39) | function notFound(error?: Record) { function serverError (line 46) | function serverError(error?: Record) { FILE: src/lib/storage.ts function setItem (line 1) | function setItem(key: string, data: any, session?: boolean) { function getItem (line 7) | function getItem(key: string, session?: boolean): any { function removeItem (line 21) | function removeItem(key: string, session?: boolean) { FILE: src/lib/types.ts type ObjectValues (line 5) | type ObjectValues = T[keyof T]; type ReactQueryOptions (line 7) | type ReactQueryOptions = Omit, 'qu... type TimeUnit (line 9) | type TimeUnit = ObjectValues; type Role (line 10) | type Role = ObjectValues; type DynamicDataType (line 11) | type DynamicDataType = ObjectValues; type Operator (line 12) | type Operator = (typeof OPERATORS)[keyof typeof OPERATORS]; type Auth (line 14) | interface Auth { type Filter (line 26) | interface Filter { type DateRange (line 35) | interface DateRange { type DynamicData (line 44) | interface DynamicData { type QueryOptions (line 48) | interface QueryOptions { type QueryFilters (line 56) | interface QueryFilters type DateParams (line 65) | interface DateParams { type FilterParams (line 73) | interface FilterParams { type SortParams (line 95) | interface SortParams { type PageParams (line 100) | interface PageParams { type SegmentParams (line 105) | interface SegmentParams { type PageResult (line 110) | interface PageResult { type RealtimeData (line 120) | interface RealtimeData { type ApiError (line 140) | interface ApiError extends Error { FILE: src/lib/url.ts function getQueryString (line 1) | function getQueryString(params: object = {}): string { function buildPath (line 13) | function buildPath(path: string, params: object = {}): string { function safeDecodeURI (line 18) | function safeDecodeURI(s: string | undefined | null): string | undefined... function safeDecodeURIComponent (line 30) | function safeDecodeURIComponent(s: string | undefined | null): string | ... function isValidUrl (line 42) | function isValidUrl(url: string) { FILE: src/lib/utils.ts function hook (line 1) | function hook( function sleep (line 15) | function sleep(ms: number | undefined) { function shuffleArray (line 19) | function shuffleArray(a) { function chunkArray (line 30) | function chunkArray(arr: any[], size: number) { function ensureArray (line 42) | function ensureArray(arr?: any) { FILE: src/permissions/link.ts function canViewLink (line 6) | async function canViewLink({ user }: Auth, linkId: string) { function canUpdateLink (line 26) | async function canUpdateLink({ user }: Auth, linkId: string) { function canDeleteLink (line 46) | async function canDeleteLink({ user }: Auth, linkId: string) { FILE: src/permissions/pixel.ts function canViewPixel (line 6) | async function canViewPixel({ user }: Auth, pixelId: string) { function canUpdatePixel (line 26) | async function canUpdatePixel({ user }: Auth, pixelId: string) { function canDeletePixel (line 46) | async function canDeletePixel({ user }: Auth, pixelId: string) { FILE: src/permissions/report.ts function canViewReport (line 5) | async function canViewReport(auth: Auth, report: Report) { function canUpdateReport (line 17) | async function canUpdateReport({ user }: Auth, report: Report) { function canDeleteReport (line 25) | async function canDeleteReport(auth: Auth, report: Report) { FILE: src/permissions/team.ts function canViewTeam (line 6) | async function canViewTeam({ user }: Auth, teamId: string) { function canCreateTeam (line 14) | async function canCreateTeam({ user }: Auth) { function canUpdateTeam (line 22) | async function canUpdateTeam({ user }: Auth, teamId: string) { function canDeleteTeam (line 32) | async function canDeleteTeam({ user }: Auth, teamId: string) { function canDeleteTeamUser (line 42) | async function canDeleteTeamUser({ user }: Auth, teamId: string, removeU... function canCreateTeamWebsite (line 56) | async function canCreateTeamWebsite({ user }: Auth, teamId: string) { function canViewAllTeams (line 66) | async function canViewAllTeams({ user }: Auth) { FILE: src/permissions/user.ts function canCreateUser (line 3) | async function canCreateUser({ user }: Auth) { function canViewUser (line 7) | async function canViewUser({ user }: Auth, viewedUserId: string) { function canViewUsers (line 15) | async function canViewUsers({ user }: Auth) { function canUpdateUser (line 19) | async function canUpdateUser({ user }: Auth, viewedUserId: string) { function canDeleteUser (line 27) | async function canDeleteUser({ user }: Auth) { FILE: src/permissions/website.ts function canViewWebsite (line 6) | async function canViewWebsite({ user, shareToken }: Auth, websiteId: str... function canViewAllWebsites (line 38) | async function canViewAllWebsites({ user }: Auth) { function canCreateWebsite (line 42) | async function canCreateWebsite({ user }: Auth) { function canUpdateWebsite (line 50) | async function canUpdateWebsite({ user }: Auth, websiteId: string) { function canDeleteWebsite (line 74) | async function canDeleteWebsite({ user }: Auth, websiteId: string) { function canTransferWebsiteToUser (line 98) | async function canTransferWebsiteToUser({ user }: Auth, websiteId: strin... function canTransferWebsiteToTeam (line 114) | async function canTransferWebsiteToTeam({ user }: Auth, websiteId: strin... FILE: src/queries/prisma/link.ts function findLink (line 5) | async function findLink(criteria: Prisma.LinkFindUniqueArgs) { function getLink (line 9) | async function getLink(linkId: string) { function getLinks (line 17) | async function getLinks(criteria: Prisma.LinkFindManyArgs, filters: Quer... function getUserLinks (line 33) | async function getUserLinks(userId: string, filters?: QueryFilters) { function getTeamLinks (line 45) | async function getTeamLinks(teamId: string, filters?: QueryFilters) { function createLink (line 56) | async function createLink(data: Prisma.LinkUncheckedCreateInput) { function updateLink (line 60) | async function updateLink(linkId: string, data: any) { function deleteLink (line 64) | async function deleteLink(linkId: string) { FILE: src/queries/prisma/pixel.ts function findPixel (line 5) | async function findPixel(criteria: Prisma.PixelFindUniqueArgs) { function getPixel (line 9) | async function getPixel(pixelId: string) { function getPixels (line 17) | async function getPixels(criteria: Prisma.PixelFindManyArgs, filters: Qu... function getUserPixels (line 28) | async function getUserPixels(userId: string, filters?: QueryFilters) { function getTeamPixels (line 39) | async function getTeamPixels(teamId: string, filters?: QueryFilters) { function createPixel (line 50) | async function createPixel(data: Prisma.PixelUncheckedCreateInput) { function updatePixel (line 54) | async function updatePixel(pixelId: string, data: any) { function deletePixel (line 58) | async function deletePixel(pixelId: string) { FILE: src/queries/prisma/report.ts function findReport (line 7) | async function findReport(criteria: Prisma.ReportFindUniqueArgs) { function getReport (line 11) | async function getReport(reportId: string) { function getReports (line 19) | async function getReports(criteria: ReportFindManyArgs, filters: QueryFi... function getUserReports (line 49) | async function getUserReports(userId: string, filters?: QueryFilters) { function getWebsiteReports (line 68) | async function getWebsiteReports(websiteId: string, filters: QueryFilter... function createReport (line 79) | async function createReport(data: Prisma.ReportUncheckedCreateInput) { function updateReport (line 83) | async function updateReport(reportId: string, data: any) { function deleteReport (line 87) | async function deleteReport(reportId: string) { FILE: src/queries/prisma/segment.ts function findSegment (line 5) | async function findSegment(criteria: Prisma.SegmentFindUniqueArgs) { function getSegment (line 9) | async function getSegment(segmentId: string) { function getSegments (line 17) | async function getSegments(criteria: Prisma.SegmentFindManyArgs, filters... function getWebsiteSegment (line 33) | async function getWebsiteSegment(websiteId: string, segmentId: string) { function getWebsiteSegments (line 39) | async function getWebsiteSegments(websiteId: string, type: string, filte... function createSegment (line 51) | async function createSegment(data: Prisma.SegmentUncheckedCreateInput) { function updateSegment (line 55) | async function updateSegment(SegmentId: string, data: Prisma.SegmentUpda... function deleteSegment (line 59) | async function deleteSegment(SegmentId: string) { FILE: src/queries/prisma/team.ts function findTeam (line 9) | async function findTeam(criteria: Prisma.TeamFindUniqueArgs): Promise { FILE: src/queries/sql/getChannelExpandedMetrics.ts constant FUNCTION_NAME (line 14) | const FUNCTION_NAME = 'getChannelExpandedMetrics'; type ChannelExpandedMetricsParameters (line 16) | interface ChannelExpandedMetricsParameters { type ChannelExpandedMetricsData (line 21) | interface ChannelExpandedMetricsData { function getChannelExpandedMetrics (line 30) | async function getChannelExpandedMetrics( function relationalQuery (line 39) | async function relationalQuery( function clickhouseQuery (line 117) | async function clickhouseQuery( function toClickHouseStringArray (line 184) | function toClickHouseStringArray(arr: string[]): string { function toPostgresPositionClause (line 188) | function toPostgresPositionClause(column: string, arr: string[]) { FILE: src/queries/sql/getChannelMetrics.ts constant FUNCTION_NAME (line 14) | const FUNCTION_NAME = 'getChannelMetrics'; function getChannelMetrics (line 16) | async function getChannelMetrics(...args: [websiteId: string, filters?: ... function relationalQuery (line 23) | async function relationalQuery(websiteId: string, filters: QueryFilters) { function clickhouseQuery (line 79) | async function clickhouseQuery( function toClickHouseStringArray (line 136) | function toClickHouseStringArray(arr: string[]): string { function toPostgresLikeClause (line 140) | function toPostgresLikeClause(column: string, arr: string[]) { FILE: src/queries/sql/getRealtimeActivity.ts constant FUNCTION_NAME (line 6) | const FUNCTION_NAME = 'getRealtimeActivity'; function getRealtimeActivity (line 8) | async function getRealtimeActivity(...args: [websiteId: string, filters:... function relationalQuery (line 15) | async function relationalQuery(websiteId: string, filters: QueryFilters) { function clickhouseQuery (line 50) | async function clickhouseQuery(websiteId: string, filters: QueryFilters)... FILE: src/queries/sql/getRealtimeData.ts function increment (line 6) | function increment(data: object, key: string) { function getRealtimeData (line 16) | async function getRealtimeData(websiteId: string, filters: QueryFilters) { FILE: src/queries/sql/getValues.ts constant FUNCTION_NAME (line 6) | const FUNCTION_NAME = 'getValues'; function getValues (line 8) | async function getValues( function relationalQuery (line 17) | async function relationalQuery(websiteId: string, column: string, filter... function clickhouseQuery (line 74) | async function clickhouseQuery(websiteId: string, column: string, filter... FILE: src/queries/sql/getWebsiteDateRange.ts function getWebsiteDateRange (line 6) | async function getWebsiteDateRange(...args: [websiteId: string]) { function relationalQuery (line 13) | async function relationalQuery(websiteId: string) { function clickhouseQuery (line 35) | async function clickhouseQuery(websiteId: string) { FILE: src/queries/sql/getWebsiteStats.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getWebsiteStats'; type WebsiteStatsData (line 9) | interface WebsiteStatsData { function getWebsiteStats (line 17) | async function getWebsiteStats( function relationalQuery (line 26) | async function relationalQuery( function clickhouseQuery (line 66) | async function clickhouseQuery( FILE: src/queries/sql/getWeeklyTraffic.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getWeeklyTraffic'; function getWeeklyTraffic (line 9) | async function getWeeklyTraffic(...args: [websiteId: string, filters: Qu... function relationalQuery (line 16) | async function relationalQuery(websiteId: string, filters: QueryFilters) { function clickhouseQuery (line 43) | async function clickhouseQuery(websiteId: string, filters: QueryFilters) { function formatResults (line 81) | function formatResults(data: any) { FILE: src/queries/sql/pageviews/getPageviewExpandedMetrics.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getPageviewExpandedMetrics'; type PageviewExpandedMetricsParameters (line 9) | interface PageviewExpandedMetricsParameters { type PageviewExpandedMetricsData (line 15) | interface PageviewExpandedMetricsData { function getPageviewExpandedMetrics (line 24) | async function getPageviewExpandedMetrics( function relationalQuery (line 33) | async function relationalQuery( function clickhouseQuery (line 117) | async function clickhouseQuery( function toClickHouseGroupedReferrer (line 193) | function toClickHouseGroupedReferrer( function toPostgresGroupedReferrer (line 209) | function toPostgresGroupedReferrer( function toPostgresLikeClause (line 225) | function toPostgresLikeClause(column: string, arr: string[]) { FILE: src/queries/sql/pageviews/getPageviewMetrics.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getPageviewMetrics'; type PageviewMetricsParameters (line 9) | interface PageviewMetricsParameters { type PageviewMetricsData (line 15) | interface PageviewMetricsData { function getPageviewMetrics (line 20) | async function getPageviewMetrics( function relationalQuery (line 29) | async function relationalQuery( function clickhouseQuery (line 95) | async function clickhouseQuery( FILE: src/queries/sql/pageviews/getPageviewStats.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getPageviewStats'; function getPageviewStats (line 9) | async function getPageviewStats(...args: [websiteId: string, filters: Qu... function relationalQuery (line 16) | async function relationalQuery(websiteId: string, filters: QueryFilters) { function clickhouseQuery (line 44) | async function clickhouseQuery( FILE: src/queries/sql/reports/getAttribution.ts type AttributionParameters (line 7) | interface AttributionParameters { type AttributionResult (line 16) | interface AttributionResult { function getAttribution (line 27) | async function getAttribution( function relationalQuery (line 36) | async function relationalQuery( function clickhouseQuery (line 262) | async function clickhouseQuery( FILE: src/queries/sql/reports/getBreakdown.ts type BreakdownParameters (line 7) | interface BreakdownParameters { type BreakdownData (line 13) | interface BreakdownData { function getBreakdown (line 18) | async function getBreakdown( function relationalQuery (line 27) | async function relationalQuery( function clickhouseQuery (line 81) | async function clickhouseQuery( function parseFields (line 129) | function parseFields(fields: string[]) { function parseFieldsByName (line 133) | function parseFieldsByName(fields: string[]) { FILE: src/queries/sql/reports/getFunnel.ts type FunnelParameters (line 6) | interface FunnelParameters { type FunnelResult (line 13) | interface FunnelResult { function getFunnel (line 19) | async function getFunnel( function relationalQuery (line 28) | async function relationalQuery( function clickhouseQuery (line 124) | async function clickhouseQuery( FILE: src/queries/sql/reports/getGoal.ts type GoalParameters (line 7) | interface GoalParameters { function getGoal (line 16) | async function getGoal( function relationalQuery (line 25) | async function relationalQuery( function clickhouseQuery (line 67) | async function clickhouseQuery( FILE: src/queries/sql/reports/getJourney.ts type JourneyParameters (line 6) | interface JourneyParameters { type JourneyResult (line 14) | interface JourneyResult { function getJourney (line 25) | async function getJourney( function relationalQuery (line 34) | async function relationalQuery( function clickhouseQuery (line 146) | async function clickhouseQuery( function combineSequentialDuplicates (line 256) | function combineSequentialDuplicates(array: any) { function parseResult (line 270) | function parseResult(data: any) { FILE: src/queries/sql/reports/getRetention.ts type RetentionParameters (line 6) | interface RetentionParameters { type RetentionResult (line 12) | interface RetentionResult { function getRetention (line 20) | async function getRetention( function relationalQuery (line 29) | async function relationalQuery( function clickhouseQuery (line 103) | async function clickhouseQuery( FILE: src/queries/sql/reports/getRevenue.ts type RevenuParameters (line 6) | interface RevenuParameters { type RevenueResult (line 14) | interface RevenueResult { function getRevenue (line 20) | async function getRevenue( function relationalQuery (line 29) | async function relationalQuery( function clickhouseQuery (line 116) | async function clickhouseQuery( FILE: src/queries/sql/reports/getUTM.ts type UTMParameters (line 7) | interface UTMParameters { function getUTM (line 13) | async function getUTM( function relationalQuery (line 22) | async function relationalQuery( function clickhouseQuery (line 55) | async function clickhouseQuery( FILE: src/queries/sql/sessions/createSession.ts constant FUNCTION_NAME (line 4) | const FUNCTION_NAME = 'createSession'; function createSession (line 6) | async function createSession(data: Prisma.SessionCreateInput) { FILE: src/queries/sql/sessions/getSessionActivity.ts constant FUNCTION_NAME (line 6) | const FUNCTION_NAME = 'getSessionActivity'; function getSessionActivity (line 8) | async function getSessionActivity( function relationalQuery (line 17) | async function relationalQuery(websiteId: string, sessionId: string, fil... function clickhouseQuery (line 48) | async function clickhouseQuery(websiteId: string, sessionId: string, fil... FILE: src/queries/sql/sessions/getSessionData.ts constant FUNCTION_NAME (line 5) | const FUNCTION_NAME = 'getSessionData'; function getSessionData (line 7) | async function getSessionData(...args: [websiteId: string, sessionId: st... function relationalQuery (line 14) | async function relationalQuery(websiteId: string, sessionId: string) { function clickhouseQuery (line 38) | async function clickhouseQuery(websiteId: string, sessionId: string) { FILE: src/queries/sql/sessions/getSessionDataProperties.ts constant FUNCTION_NAME (line 6) | const FUNCTION_NAME = 'getSessionDataProperties'; function getSessionDataProperties (line 8) | async function getSessionDataProperties( function relationalQuery (line 17) | async function relationalQuery(websiteId: string, filters: QueryFilters) { function clickhouseQuery (line 47) | async function clickhouseQuery( FILE: src/queries/sql/sessions/getSessionDataValues.ts constant FUNCTION_NAME (line 6) | const FUNCTION_NAME = 'getSessionDataValues'; function getSessionDataValues (line 8) | async function getSessionDataValues( function relationalQuery (line 17) | async function relationalQuery( function clickhouseQuery (line 55) | async function clickhouseQuery( FILE: src/queries/sql/sessions/getSessionExpandedMetrics.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getSessionExpandedMetrics'; type SessionExpandedMetricsParameters (line 9) | interface SessionExpandedMetricsParameters { type SessionExpandedMetricsData (line 15) | interface SessionExpandedMetricsData { function getSessionExpandedMetrics (line 24) | async function getSessionExpandedMetrics( function relationalQuery (line 33) | async function relationalQuery( function clickhouseQuery (line 96) | async function clickhouseQuery( FILE: src/queries/sql/sessions/getSessionMetrics.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getSessionMetrics'; type SessionMetricsParameters (line 9) | interface SessionMetricsParameters { function getSessionMetrics (line 15) | async function getSessionMetrics( function relationalQuery (line 24) | async function relationalQuery( function clickhouseQuery (line 71) | async function clickhouseQuery( FILE: src/queries/sql/sessions/getSessionStats.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getSessionStats'; function getSessionStats (line 9) | async function getSessionStats(...args: [websiteId: string, filters: Que... function relationalQuery (line 16) | async function relationalQuery(websiteId: string, filters: QueryFilters) { function clickhouseQuery (line 44) | async function clickhouseQuery( FILE: src/queries/sql/sessions/getWebsiteSession.ts constant FUNCTION_NAME (line 5) | const FUNCTION_NAME = 'getWebsiteSession'; function getWebsiteSession (line 7) | async function getWebsiteSession(...args: [websiteId: string, sessionId:... function relationalQuery (line 14) | async function relationalQuery(websiteId: string, sessionId: string) { function clickhouseQuery (line 65) | async function clickhouseQuery(websiteId: string, sessionId: string) { FILE: src/queries/sql/sessions/getWebsiteSessionStats.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getWebsiteSessionStats'; type WebsiteSessionStatsData (line 9) | interface WebsiteSessionStatsData { function getWebsiteSessionStats (line 17) | async function getWebsiteSessionStats( function relationalQuery (line 26) | async function relationalQuery( function clickhouseQuery (line 57) | async function clickhouseQuery( FILE: src/queries/sql/sessions/getWebsiteSessions.ts constant FUNCTION_NAME (line 7) | const FUNCTION_NAME = 'getWebsiteSessions'; function getWebsiteSessions (line 9) | async function getWebsiteSessions(...args: [websiteId: string, filters: ... function relationalQuery (line 16) | async function relationalQuery(websiteId: string, filters: QueryFilters) { function clickhouseQuery (line 79) | async function clickhouseQuery(websiteId: string, filters: QueryFilters) { FILE: src/queries/sql/sessions/saveSessionData.ts type SaveSessionDataArgs (line 10) | interface SaveSessionDataArgs { function saveSessionData (line 18) | async function saveSessionData(data: SaveSessionDataArgs) { function relationalQuery (line 25) | async function relationalQuery({ function clickhouseQuery (line 81) | async function clickhouseQuery({ FILE: src/store/app.ts function setTimezone (line 26) | function setTimezone(timezone: string) { function setLocale (line 30) | function setLocale(locale: string) { function setShareToken (line 34) | function setShareToken(shareToken: string) { function setUser (line 38) | function setUser(user: object) { function setConfig (line 42) | function setConfig(config: object) { function setDateRangeValue (line 46) | function setDateRangeValue(dateRangeValue: string) { FILE: src/store/cache.ts function setValue (line 5) | function setValue(key: string, value: any) { FILE: src/store/dashboard.ts function saveDashboard (line 16) | function saveDashboard(settings) { FILE: src/store/version.ts function checkVersion (line 17) | async function checkVersion() { FILE: src/store/websites.ts function setWebsiteDateRange (line 7) | function setWebsiteDateRange(websiteId: string, dateRange: DateRange) { function setWebsiteDateCompare (line 21) | function setWebsiteDateCompare(websiteId: string, dateCompare: string) { FILE: src/tracker/index.d.ts type TrackedProperties (line 1) | type TrackedProperties = { type WithRequired (line 58) | type WithRequired = T & { [P in K]-?: T[P] }; type EventData (line 68) | interface EventData { type EventProperties (line 72) | type EventProperties = { type PageViewProperties (line 79) | type PageViewProperties = WithRequired; type CustomEventFunction (line 80) | type CustomEventFunction = ( type UmamiTracker (line 84) | type UmamiTracker = { type Window (line 151) | interface Window { FILE: tsup.config.js method esbuildOptions (line 12) | esbuildOptions(options) {