From f2dd76a7a678c36cd92e25445678d422d359d781 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Mon, 26 Jan 2026 02:30:19 +0100 Subject: [PATCH] build --- lib/services/analytics/umami-analytics-service.ts | 3 ++- lib/services/create-services.server.ts | 2 -- lib/services/create-services.ts | 7 +++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/services/analytics/umami-analytics-service.ts b/lib/services/analytics/umami-analytics-service.ts index 6724cc95..72ffb335 100644 --- a/lib/services/analytics/umami-analytics-service.ts +++ b/lib/services/analytics/umami-analytics-service.ts @@ -1,5 +1,4 @@ import type { AnalyticsEventProperties, AnalyticsService } from './analytics-service'; -import { getServerAppServices } from '../create-services.server'; /** * Type definition for the Umami global object. @@ -75,6 +74,7 @@ export class UmamiAnalyticsService implements AnalyticsService { // Server-side tracking via proxy if (typeof window === 'undefined') { + const { getServerAppServices } = require('../create-services.server'); const websiteId = process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID; const umamiUrl = process.env.NEXT_PUBLIC_UMAMI_SCRIPT_URL?.replace('/script.js', '') || 'https://analytics.infra.mintel.me'; @@ -122,6 +122,7 @@ export class UmamiAnalyticsService implements AnalyticsService { // Server-side tracking via proxy if (typeof window === 'undefined') { + const { getServerAppServices } = require('../create-services.server'); const websiteId = process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID; const umamiUrl = process.env.NEXT_PUBLIC_UMAMI_SCRIPT_URL?.replace('/script.js', '') || 'https://analytics.infra.mintel.me'; diff --git a/lib/services/create-services.server.ts b/lib/services/create-services.server.ts index cc323d0c..90162109 100644 --- a/lib/services/create-services.server.ts +++ b/lib/services/create-services.server.ts @@ -1,5 +1,3 @@ -import 'server-only'; - import { AppServices } from './app-services'; import { NoopAnalyticsService } from './analytics/noop-analytics-service'; import { UmamiAnalyticsService } from './analytics/umami-analytics-service'; diff --git a/lib/services/create-services.ts b/lib/services/create-services.ts index 85399138..39ed75f8 100644 --- a/lib/services/create-services.ts +++ b/lib/services/create-services.ts @@ -1,6 +1,5 @@ import { AppServices } from './app-services'; import { NoopAnalyticsService } from './analytics/noop-analytics-service'; -import { UmamiAnalyticsService } from './analytics/umami-analytics-service'; import { MemoryCacheService } from './cache/memory-cache-service'; import { GlitchtipErrorReportingService } from './errors/glitchtip-error-reporting-service'; import { NoopErrorReportingService } from './errors/noop-error-reporting-service'; @@ -75,8 +74,12 @@ export function getAppServices(): AppServices { const sentryServerEnabled = Boolean(process.env.SENTRY_DSN); // Create analytics service (Umami or no-op) + // Use dynamic import to avoid importing server-only code in client components const analytics = umamiEnabled - ? new UmamiAnalyticsService({ enabled: true }) + ? (() => { + const { UmamiAnalyticsService } = require('./analytics/umami-analytics-service'); + return new UmamiAnalyticsService({ enabled: true }); + })() : new NoopAnalyticsService(); // Create error reporting service (GlitchTip/Sentry or no-op)