import { H as SeoConfiguration, x as BreadcrumbCrumb, z as ReviewSource, F as FaqSource, y as BlogMeta, T as ResolvedPageSeo, N as SeoSchemaConfig, G as GlobalSeoConfig, L as SeoOpenGraphConfig, M as SeoTwitterConfig } from './vitepressTransform-CZ_IB3dq.js'; /** * Framework-agnostic SEO head-tag resolution. * * This module is the single source of truth for turning a * (`pageSlug`, `pagePath`, `SeoConfiguration`) triple into a plain, * serialisable description of the `
` tags a page should carry: * resolved title, meta[], link[], and JSON-LD script[]. * * It is consumed by: * - `useSEO` (runtime, via `@unhead/vue`) — see `../composables/useSEO.ts` * - `dcsSeoPlugin`'s build-time static-HTML emitter — see * `../plugins/dcsSeoPlugin.ts` * * Keeping the resolution here (rather than inside the Vue composable) means * the runtime and the build-time emitter produce byte-identical tags from the * same `seo.yaml`, with no Vue/unhead dependency required at build time. * * Runtime behaviour is intentionally identical to the previous in-composable * logic **except** for one corrected bug: `og:title` now falls back to the * fully-resolved (template-applied) page title instead of the raw, untemplated * `page.title`. Previously `og:title` could diverge from the `