diff --git a/features/analytics/frontend-admin/package.json b/features/analytics/frontend-admin/package.json index df94fd505..6462fe33d 100644 --- a/features/analytics/frontend-admin/package.json +++ b/features/analytics/frontend-admin/package.json @@ -17,10 +17,8 @@ }, "dependencies": { "@tanstack/react-query": "^5.62.11", - "@lilith/ui-analytics": "^1.0.0", - "@lilith/ui-charts": "^1.0.0", - "@lilith/ui-primitives": "^1.0.0", - "@lilith/ui-typography": "^1.0.0", + "@lilith/analytics": "workspace:*", + "recharts": "^2.15.1", "react": "^18.3.1", "react-dom": "^18.3.1" }, diff --git a/features/webmap/router/src/main.ts b/features/webmap/router/src/main.ts index 6298a55dc..56eec23fc 100644 --- a/features/webmap/router/src/main.ts +++ b/features/webmap/router/src/main.ts @@ -107,12 +107,16 @@ async function main() { // Determine the file to serve const appDir = path.join(APPS_BUILD_DIR, deployment.app); - const filePath = urlPath.replace(deployment.basePath, '') || '/index.html'; + // Unescape basePath - database stores '\_' for SQL LIKE, but URL has actual '_' + const unescapedBasePath = deployment.basePath.replace(/\\_/g, '_'); + const filePath = urlPath.replace(unescapedBasePath, '') || '/index.html'; // Check if it's an HTML file that needs config injection if (filePath.endsWith('.html') || filePath === '/' || !filePath.includes('.')) { const indexPath = path.join(appDir, 'index.html'); - const html = await injector.inject(indexPath, deployment); + // Use unescaped basePath for frontend config (React Router needs actual path) + const frontendConfig = { ...deployment, basePath: unescapedBasePath }; + const html = await injector.inject(indexPath, frontendConfig); return reply.type('text/html').send(html); } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b35e27a2b..ac30dba5d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -23,8 +23,9 @@ packages: # Note: features/seo excluded - its sub-packages are included via patterns above # The meta-package used pnpm --filter which bypassed turbo dependency ordering - # ML semantic services (disabled - requires @lilith/ml-* packages from external registry) - # - 'features/truth-validation/semantic-service' + # ML semantic services + - 'features/truth-validation/semantic-service' + # Shared packages (cross-feature) - '@packages/*'