import { readFile } from 'node:fs/promises'; import { test } from 'node:test'; import assert from 'node:assert/strict'; /** * Structural checks for the feature landing pages: canonical URLs, the * SoftwareApplication + FAQPage + BreadcrumbList structured data, links to * the download hub and a setup guide, the hub's coverage, and sitemap entries. */ const distRoot = new URL('../../dist/apps/website/', import.meta.url); const SITE = 'https://4gray.github.io/iptvnator'; const FEATURES = ['m3u-player', 'xtream-codes-player', 'stalker-portal-player', 'epg', 'remote-control']; const readDist = (relativePath) => readFile(new URL(relativePath, distRoot), 'utf8'); function extractJsonLd(html) { const blocks = [...html.matchAll(/