Files
zeekay bc4ddf332b chore: rebase the tree onto upstream master fa1a9a60
Mechanically re-derived: bin/debrand runs over a fresh import of
posthog/posthog@fa1a9a60d4 (2026-08-06).
The pipeline (.hanzo/workflows), the Dockerfiles and bin/docker*
entrypoints, compose files, LLM.md and the squashed initial migration
are restored from the shipped tree, same as the previous import.

The prune's import-closure guard kept 21 products the new core now
imports; dropping them is a refactor now, recorded rather than forced.
2026-08-06 01:25:36 -07:00

73 lines
2.9 KiB
TypeScript

import { urls } from 'scenes/urls'
import { ProductItemCategory, ProductKey } from '~/queries/schema/schema-general'
import { FileSystemIconColor, ProductManifest } from '../../frontend/src/types'
export const manifest: ProductManifest = {
name: 'Web Analytics',
urls: {
webAnalytics: (): string => `/web`,
webAnalyticsWebVitals: (): string => `/web/web-vitals`,
webAnalyticsPageReports: (): string => `/web/page-reports`,
webAnalyticsMarketing: (): string => `/web/marketing`,
webAnalyticsHealth: (): string => `/web/health`,
webAnalyticsLive: (): string => `/web/live`,
webAnalyticsBotAnalytics: (): string => `/web/bot-analytics`,
heatmaps: (params?: string): string =>
`/heatmaps${params ? `?${params.startsWith('?') ? params.slice(1) : params}` : ''}`,
heatmapNew: (params?: string): string =>
`/heatmaps/new${params ? `?${params.startsWith('?') ? params.slice(1) : params}` : ''}`,
heatmapRecording: (params?: string): string =>
`/heatmaps/recording${params ? `?${params.startsWith('?') ? params.slice(1) : params}` : ''}`,
heatmap: (id: string | number): string => `/heatmaps/${id}`,
},
scenes: {
Heatmaps: {
name: 'Heatmaps',
import: () => import('./frontend/heatmaps/scenes/heatmaps/HeatmapsScene'),
projectBased: true,
iconType: 'heatmap',
description: 'Heatmaps are a way to visualize user behavior on your website.',
},
Heatmap: {
name: 'Heatmap',
import: () => import('./frontend/heatmaps/scenes/heatmap/HeatmapScene'),
projectBased: true,
iconType: 'heatmap',
},
HeatmapNew: {
name: 'New heatmap',
import: () => import('./frontend/heatmaps/scenes/heatmap/HeatmapNewScene'),
projectBased: true,
iconType: 'heatmap',
},
HeatmapRecording: {
name: 'Heatmap recording',
import: () => import('./frontend/heatmaps/scenes/heatmap/HeatmapRecordingScene'),
projectBased: true,
iconType: 'heatmap',
},
},
routes: {
'/heatmaps': ['Heatmaps', 'heatmaps'],
'/heatmaps/new': ['HeatmapNew', 'heatmapNew'],
'/heatmaps/recording': ['HeatmapRecording', 'heatmapRecording'],
'/heatmaps/:id': ['Heatmap', 'heatmap'],
},
fileSystemTypes: {},
treeItemsProducts: [
{
path: 'Web analytics',
intents: [ProductKey.WEB_ANALYTICS],
category: ProductItemCategory.ANALYTICS,
iconType: 'web_analytics',
iconColor: ['var(--color-product-web-analytics-light)'] as FileSystemIconColor,
href: urls.webAnalytics(),
sceneKey: 'WebAnalytics',
sceneKeys: ['WebAnalytics'],
},
],
treeItemsMetadata: [],
}