> e-tib-nextjs@2.4.40 lint /Volumes/Alpha SSD/Coding/e-tib.com > eslint . --format json [{"filePath":"/Volumes/Alpha SSD/Coding/e-tib.com/app/[locale]/[slug]/opengraph-image.tsx","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[]},{"filePath":"/Volumes/Alpha SSD/Coding/e-tib.com/app/[locale]/[slug]/page.tsx","messages":[{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'redirect' is defined but never used.","line":1,"column":20,"nodeType":"Identifier","messageId":"unusedVar","endLine":1,"endColumn":28,"suggestions":[{"messageId":"removeUnusedVar","data":{"varName":"redirect"},"fix":{"range":[17,27],"text":""},"desc":"Remove unused variable \"redirect\"."}]},{"ruleId":"@typescript-eslint/no-unused-vars","severity":1,"message":"'e' is defined but never used.","line":64,"column":16,"nodeType":"Identifier","messageId":"unusedVar","endLine":64,"endColumn":17},{"ruleId":"no-empty","severity":2,"message":"Empty block statement.","line":64,"column":19,"nodeType":"BlockStatement","messageId":"unexpected","endLine":64,"endColumn":21,"suggestions":[{"messageId":"suggestComment","data":{"type":"block"},"fix":{"range":[2772,2772],"text":" /* empty */ "},"desc":"Add comment inside empty block statement."}]},{"ruleId":"@next/next/no-img-element","severity":1,"message":"Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element","line":75,"column":7,"nodeType":"JSXOpeningElement","endLine":75,"endColumn":102},{"ruleId":"@next/next/no-img-element","severity":1,"message":"Using `` could result in slower LCP and higher bandwidth. Consider using `` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element","line":95,"column":24,"nodeType":"JSXOpeningElement","endLine":95,"endColumn":127}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"import { notFound, redirect } from 'next/navigation';\nimport { getImageProps } from 'next/image';\nimport { Container, Badge, Heading } from '@/components/ui';\nimport { getTranslations, setRequestLocale } from 'next-intl/server';\nimport { Metadata } from 'next';\nimport { getPageBySlug } from '@/lib/pages';\nimport { mapSlugToFileSlug, mapFileSlugToTranslated } from '@/lib/slugs';\nimport { MDXRemote } from 'next-mdx-remote/rsc';\nimport { SITE_URL } from '@/lib/schema';\nimport TrackedLink from '@/components/analytics/TrackedLink';\nimport { getButtonClasses, ButtonOverlay } from '@/components/ui/Button';\nimport { getAllReferences } from '@/lib/references';\nimport { defaultLocations, minorLocations } from '@/lib/map-data';\n// Import components used in MDX\nimport { HeroVideo as HomeHero } from '@/components/blocks/HeroVideo';\nimport { SubCompanyTiles as HomeSubCompanyTiles } from '@/components/blocks/SubCompanyTiles';\nimport { CompetenceBentoGrid as HomeCompetenceBentoGrid } from '@/components/blocks/CompetenceBentoGrid';\nimport { ReferencesSlider as HomeReferencesSlider } from '@/components/blocks/ReferencesSlider';\nimport { CompanyTimeline } from '@/components/blocks/CompanyTimeline';\nimport { JobListingBlock } from '@/components/blocks/JobListingBlock';\nimport { ServiceDetailGrid } from '@/components/blocks/ServiceDetailGrid';\nimport { BenefitGrid } from '@/components/blocks/BenefitGrid';\nimport { InteractiveGermanyMap } from '@/components/blocks/InteractiveGermanyMap';\nimport { FaqBlock } from '@/components/blocks/FaqBlock';\nimport { CertificatesBlock } from '@/components/blocks/CertificatesBlock';\nimport { HeroSection } from '@/components/blocks/HeroSection';\nimport { TeamGrid } from '@/components/blocks/TeamGrid';\nimport { DeepDrillAnimation } from '@/components/blocks/DeepDrillAnimation';\nimport { DataGridPulse } from '@/components/blocks/DataGridPulse';\nimport { GrowthChart } from '@/components/blocks/GrowthChart';\nimport JsonLd from '@/components/JsonLd';\nimport { Button } from '@/components/ui/Button';\nimport { AnimatedCounter } from '@/components/ui';\n\n\nconst mdxComponents = {\n HomeHero,\n HomeSubCompanyTiles,\n HomeCompetenceBentoGrid,\n HomeReferencesSlider,\n CompanyTimeline,\n JobListingBlock,\n ServiceDetailGrid,\n BenefitGrid,\n InteractiveGermanyMap,\n FaqBlock,\n CertificatesBlock,\n HeroSection,\n TeamGrid,\n JsonLd,\n Button,\n Badge,\n Heading,\n AnimatedCounter,\n GrowthChart,\n DeepDrillAnimation,\n DataGridPulse,\n ResponsiveImage: (props: any) => {\n let src = props.src;\n if (typeof src === 'string' && src.startsWith('/_next/image')) {\n try {\n const urlParam = new URLSearchParams(src.split('?')[1]).get('url');\n if (urlParam) src = decodeURIComponent(urlParam);\n } catch (e) {}\n }\n const { props: { srcSet, src: finalSrc, sizes } } = getImageProps({\n src,\n alt: props.alt || '',\n width: 1920,\n height: 1080,\n sizes: '(max-width: 768px) 100vw, (max-width: 1200px) 75vw, 50vw',\n quality: 80,\n });\n return (\n \n );\n },\n // Standard HTML element mapping for consistent E-TIB typography\n h1: (props: any) => , // Hidden because Hero handles H1\n h2: (props: any) => ,\n h3: (props: any) => ,\n h4: (props: any) => ,\n p: (props: any) =>

,\n ul: (props: any) =>