@brandlab-digital/site-core 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"sitemaps.js","sourceRoot":"","sources":["../src/sitemaps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sitemaps.js","sourceRoot":"","sources":["../src/sitemaps.ts"],"names":[],"mappings":"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","sourcesContent":["export interface SitemapEntry {\n url: string\n lastModified?: string | Date\n}\n\nexport interface SitemapChunk {\n path: string\n entries: readonly SitemapEntry[]\n}\n\nexport function escapeXml(value: string): string {\n return value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&apos;')\n}\n\nfunction formatLastModified(value: SitemapEntry['lastModified']) {\n if (!value) return null\n const parsed = value instanceof Date ? value : new Date(value)\n if (Number.isNaN(parsed.getTime())) throw new Error('Sitemap lastModified must be a valid date.')\n return parsed.toISOString()\n}\n\nfunction assertSitemapUrl(value: string, field: string) {\n let url: URL\n try {\n url = new URL(value)\n } catch {\n throw new Error(`${field} must be an absolute HTTPS URL.`)\n }\n if (url.protocol !== 'https:' || url.username || url.password || url.hash) {\n throw new Error(`${field} must be an absolute HTTPS URL without credentials or a hash.`)\n }\n}\n\nexport function getSitemapXmlHeaders() {\n return {\n 'content-type': 'application/xml; charset=utf-8',\n 'cache-control': 'public, max-age=3600, s-maxage=3600',\n }\n}\n\nexport function serializeSitemap(entries: readonly SitemapEntry[]): string {\n entries.forEach((entry, index) => assertSitemapUrl(entry.url, `entries[${index}].url`))\n const duplicate = entries.find((entry, index) =>\n entries.slice(0, index).some((candidate) => candidate.url === entry.url),\n )\n if (duplicate) throw new Error(`Sitemap contains duplicate URL \"${duplicate.url}\".`)\n const urls = entries\n .map((entry) => {\n const lastModified = formatLastModified(entry.lastModified)\n\n return [\n ' <url>',\n ` <loc>${escapeXml(entry.url)}</loc>`,\n lastModified ? ` <lastmod>${lastModified}</lastmod>` : null,\n ' </url>',\n ]\n .filter(Boolean)\n .join('\\n')\n })\n .join('\\n')\n\n return [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">',\n urls,\n '</urlset>',\n ].join('\\n')\n}\n\nexport function serializeSitemapIndex(\n paths: readonly string[],\n options: { absoluteUrl: (path: string) => string },\n): string {\n const entries = paths\n .map((path, index) => {\n const url = options.absoluteUrl(path)\n assertSitemapUrl(url, `paths[${index}]`)\n return [\n ' <sitemap>',\n ` <loc>${escapeXml(url)}</loc>`,\n ' </sitemap>',\n ].join('\\n')\n })\n .join('\\n')\n\n return [\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>',\n '<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">',\n entries,\n '</sitemapindex>',\n ].join('\\n')\n}\n\nexport function createSitemapChunks(\n entries: readonly SitemapEntry[],\n options: {\n pathPrefix: string\n maxUrlsPerSitemap?: number\n },\n): SitemapChunk[] {\n const maxUrlsPerSitemap = options.maxUrlsPerSitemap ?? 500\n\n if (!Number.isInteger(maxUrlsPerSitemap) || maxUrlsPerSitemap < 1 || maxUrlsPerSitemap > 50_000) {\n throw new Error('maxUrlsPerSitemap must be an integer between 1 and 50000.')\n }\n\n const pathPrefix = options.pathPrefix.startsWith('/')\n ? options.pathPrefix\n : `/${options.pathPrefix}`\n const normalizedPrefix = pathPrefix.replace(/\\.xml$/, '')\n const chunks: SitemapChunk[] = []\n\n for (let index = 0; index < entries.length; index += maxUrlsPerSitemap) {\n chunks.push({\n path: `${normalizedPrefix}-${chunks.length + 1}.xml`,\n entries: entries.slice(index, index + maxUrlsPerSitemap),\n })\n }\n\n return chunks\n}\n\nexport function filterSitemapIndexPaths(\n groups: readonly { path: string; entryCount: number; includeWhenEmpty?: boolean }[],\n) {\n return groups\n .filter((group) => group.includeWhenEmpty || group.entryCount > 0)\n .map((group) => group.path)\n}\n\nexport function shouldIndexSite(options: {\n nodeEnv?: string\n vercelEnv?: string\n allowIndexing?: string\n}) {\n // A Vercel environment declaration is authoritative: preview and\n // development deployments cannot be made indexable by a drifting override.\n if (options.vercelEnv) return options.vercelEnv === 'production'\n return options.nodeEnv === 'production' || options.allowIndexing === '1'\n}\n\n/**\n * Builds canonical sitemap entries from the route catalog. It deliberately\n * omits priority and changeFrequency because search engines do not use those\n * values as reliable crawl signals.\n */\nexport function buildSitemapEntries(\n routes: BrandlabRouteCatalog,\n options: { siteUrl: string },\n): SitemapEntry[] {\n const siteUrl = new URL(options.siteUrl)\n if (\n siteUrl.protocol !== 'https:' ||\n siteUrl.username ||\n siteUrl.password ||\n siteUrl.pathname !== '/' ||\n siteUrl.search ||\n siteUrl.hash\n ) {\n throw new Error('siteUrl must be an absolute HTTPS origin.')\n }\n\n const entries = routes\n .filter((route) => resolveBrandlabRouteIndexing(route) === 'index')\n .map((route) => {\n const path = normalizeBrandlabRoutePath(route.canonicalPath ?? route.path)\n const lastModified = route.lastSignificantChange\n\n if (lastModified && Number.isNaN(Date.parse(lastModified))) {\n throw new Error(`Route \"${route.id}\" has an invalid lastSignificantChange date.`)\n }\n\n return {\n url: getAbsoluteUrl(siteUrl.origin, path),\n ...(lastModified ? { lastModified } : {}),\n }\n })\n\n const duplicate = entries.find((entry, index) =>\n entries.slice(0, index).some((candidate) => candidate.url === entry.url),\n )\n if (duplicate) throw new Error(`Sitemap contains duplicate canonical URL \"${duplicate.url}\".`)\n\n return entries\n}\nimport { getAbsoluteUrl } from './metadata.js'\nimport type { BrandlabRouteCatalog } from './routes.js'\nimport { normalizeBrandlabRoutePath, resolveBrandlabRouteIndexing } from './routes.js'\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brandlab-digital/site-core",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/RomieDandan/brandlab.git",