@@ -59,7 +59,8 @@ const GetWebAnalyticsSchema = z.object({
5959 ] )
6060 . optional ( ) ,
6161 includeInternal : z . boolean ( ) . optional ( ) ,
62- groupBy : z . number ( ) . optional ( )
62+ groupBy : z . number ( ) . optional ( ) ,
63+ selectedDomain : z . string ( ) . optional ( )
6364} ) ;
6465
6566const TableRequestSchema = GetWebAnalyticsSchema . extend ( {
@@ -144,10 +145,12 @@ class AnalyticsQueryHandler {
144145 private supabaseCache : CachedAnalytics | null | undefined = undefined ;
145146 private docsUrl : string ;
146147 private dateRange : DateRangeOptions ;
148+ private selectedDomain : string | undefined ;
147149
148- constructor ( docsUrl : string , dateRange : DateRangeOptions ) {
150+ constructor ( docsUrl : string , dateRange : DateRangeOptions , selectedDomain ?: string ) {
149151 this . docsUrl = docsUrl ;
150152 this . dateRange = dateRange ;
153+ this . selectedDomain = selectedDomain ;
151154 }
152155
153156 async getSupabaseCache ( ) : Promise < CachedAnalytics | null > {
@@ -161,7 +164,8 @@ class AnalyticsQueryHandler {
161164 return null ;
162165 }
163166
164- const docsSiteKey = getDocsSiteKey ( this . docsUrl ) ;
167+ // Use selectedDomain if provided, otherwise extract from docsUrl
168+ const docsSiteKey = this . selectedDomain || getDocsSiteKey ( this . docsUrl ) ;
165169 const startTime = Date . now ( ) ;
166170 this . supabaseCache = await getCachedAnalytics ( {
167171 docsSite : docsSiteKey ,
@@ -180,11 +184,11 @@ class AnalyticsQueryHandler {
180184
181185const handlerCache = new Map < string , AnalyticsQueryHandler > ( ) ;
182186
183- function getHandler ( docsUrl : string , dateRange : DateRangeOptions ) : AnalyticsQueryHandler {
184- const key = `${ docsUrl } :${ JSON . stringify ( dateRange ) } ` ;
187+ function getHandler ( docsUrl : string , dateRange : DateRangeOptions , selectedDomain ?: string ) : AnalyticsQueryHandler {
188+ const key = `${ docsUrl } :${ JSON . stringify ( dateRange ) } : ${ selectedDomain || "" } ` ;
185189 let handler = handlerCache . get ( key ) ;
186190 if ( ! handler ) {
187- handler = new AnalyticsQueryHandler ( docsUrl , dateRange ) ;
191+ handler = new AnalyticsQueryHandler ( docsUrl , dateRange , selectedDomain ) ;
188192 handlerCache . set ( key , handler ) ;
189193 setTimeout ( ( ) => handlerCache . delete ( key ) , 60000 ) ;
190194 }
@@ -211,9 +215,10 @@ async function getLiveAnalytics(docsUrl: string) {
211215export async function getWebAnalytics ( request : GetWebAnalyticsRequest ) : Promise < GetWebAnalyticsResponse > {
212216 const validated = GetWebAnalyticsSchema . parse ( request ) ;
213217 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
214- const baseDomain = getBaseDomain ( validated . docsUrl ) ;
218+ // Use selectedDomain if provided, otherwise extract from docsUrl
219+ const baseDomain = validated . selectedDomain || getBaseDomain ( validated . docsUrl ) ;
215220
216- const handler = getHandler ( validated . docsUrl , dateRange ) ;
221+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
217222 const supabaseCache = await handler . getSupabaseCache ( ) ;
218223
219224 if ( supabaseCache ) {
@@ -256,9 +261,10 @@ export async function getWebAnalytics(request: GetWebAnalyticsRequest): Promise<
256261export async function getAllAnalytics ( request : GetWebAnalyticsRequest ) : Promise < AllAnalyticsResponse > {
257262 const validated = GetWebAnalyticsSchema . parse ( request ) ;
258263 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
259- const baseDomain = getBaseDomain ( validated . docsUrl ) ;
264+ // Use selectedDomain if provided, otherwise extract from docsUrl
265+ const baseDomain = validated . selectedDomain || getBaseDomain ( validated . docsUrl ) ;
260266
261- const handler = getHandler ( validated . docsUrl , dateRange ) ;
267+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
262268 const supabaseCache = await handler . getSupabaseCache ( ) ;
263269
264270 if ( supabaseCache && ! validated . groupBy ) {
@@ -395,7 +401,7 @@ export async function getPageViewsByDay(
395401 const validated = GetWebAnalyticsSchema . parse ( request ) ;
396402 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
397403
398- const handler = getHandler ( validated . docsUrl , dateRange ) ;
404+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
399405 const supabaseCache = await handler . getSupabaseCache ( ) ;
400406
401407 if ( supabaseCache && ! validated . groupBy ) {
@@ -425,7 +431,7 @@ export async function getVisitorsByDay(
425431 const validated = GetWebAnalyticsSchema . parse ( request ) ;
426432 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
427433
428- const handler = getHandler ( validated . docsUrl , dateRange ) ;
434+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
429435 const supabaseCache = await handler . getSupabaseCache ( ) ;
430436
431437 if ( supabaseCache && ! validated . groupBy ) {
@@ -458,7 +464,7 @@ export async function getTopPages(
458464 const orderBy = validated . orderBy || "views" ;
459465 const order = validated . order || "desc" ;
460466
461- const handler = getHandler ( validated . docsUrl , dateRange ) ;
467+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
462468 const supabaseCache = await handler . getSupabaseCache ( ) ;
463469
464470 if ( supabaseCache ) {
@@ -494,7 +500,7 @@ export async function getTopCountries(request: TableRequest): Promise<{
494500 const orderBy = validated . orderBy || "visitors" ;
495501 const order = validated . order || "desc" ;
496502
497- const handler = getHandler ( validated . docsUrl , dateRange ) ;
503+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
498504 const supabaseCache = await handler . getSupabaseCache ( ) ;
499505
500506 if ( supabaseCache ) {
@@ -533,7 +539,7 @@ export async function getLLMFileViews(request: LLMFileViewsRequest): Promise<{
533539 const validated = LLMFileViewsRequestSchema . parse ( request ) ;
534540 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
535541
536- const handler = getHandler ( validated . docsUrl , dateRange ) ;
542+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
537543 const supabaseCache = await handler . getSupabaseCache ( ) ;
538544
539545 if ( supabaseCache ) {
@@ -562,7 +568,7 @@ export async function getChannels(request: TableRequest): Promise<{
562568 const validated = TableRequestSchema . parse ( request ) ;
563569 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
564570
565- const handler = getHandler ( validated . docsUrl , dateRange ) ;
571+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
566572 const supabaseCache = await handler . getSupabaseCache ( ) ;
567573
568574 if ( supabaseCache ) {
@@ -591,7 +597,7 @@ export async function getDeviceTypes(request: TableRequest): Promise<{
591597 const validated = TableRequestSchema . parse ( request ) ;
592598 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
593599
594- const handler = getHandler ( validated . docsUrl , dateRange ) ;
600+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
595601 const supabaseCache = await handler . getSupabaseCache ( ) ;
596602
597603 if ( supabaseCache ) {
@@ -620,7 +626,7 @@ export async function getReferringDomains(request: TableRequest): Promise<{
620626 const validated = TableRequestSchema . parse ( request ) ;
621627 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
622628
623- const handler = getHandler ( validated . docsUrl , dateRange ) ;
629+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
624630 const supabaseCache = await handler . getSupabaseCache ( ) ;
625631
626632 if ( supabaseCache ) {
@@ -672,7 +678,7 @@ export async function getAPIExplorerRequests(request: TableRequest): Promise<{
672678 const validated = TableRequestSchema . parse ( request ) ;
673679 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
674680
675- const handler = getHandler ( validated . docsUrl , dateRange ) ;
681+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
676682 const supabaseCache = await handler . getSupabaseCache ( ) ;
677683
678684 if ( supabaseCache ) {
@@ -705,7 +711,7 @@ export async function getLLMBotTrafficByProvider(request: TableRequest): Promise
705711 const validated = TableRequestSchema . parse ( request ) ;
706712 const dateRange = validated . dateRange || DEFAULT_DATE_RANGE ;
707713
708- const handler = getHandler ( validated . docsUrl , dateRange ) ;
714+ const handler = getHandler ( validated . docsUrl , dateRange , validated . selectedDomain ) ;
709715 const supabaseCache = await handler . getSupabaseCache ( ) ;
710716
711717 if ( supabaseCache ) {
0 commit comments