{"version":3,"sources":["../src/docs/fonts.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport path from \"node:path\";\n\nexport interface FarmDocsPublicFontAsset {\n  family: \"Geist Sans\" | \"Geist Mono\";\n  url: string;\n}\n\nexport interface FarmDocsFontAsset extends FarmDocsPublicFontAsset {\n  sourcePath: string;\n}\n\nconst FARM_DOCS_FONT_SOURCES = [\n  {\n    family: \"Geist Sans\",\n    packagePath: \"geist/dist/fonts/geist-sans/Geist-Variable.woff2\",\n  },\n  {\n    family: \"Geist Mono\",\n    packagePath: \"geist/dist/fonts/geist-mono/GeistMono-Variable.woff2\",\n  },\n] as const;\n\nexport function resolveFarmDocsFontAssets(root: string): FarmDocsFontAsset[] {\n  return FARM_DOCS_FONT_SOURCES.flatMap(({ family, packagePath }) => {\n    const sourcePath = path.join(root, \"node_modules\", packagePath);\n    if (!existsSync(sourcePath)) return [];\n\n    const source = readFileSync(sourcePath);\n    const fingerprint = createHash(\"sha256\").update(source).digest(\"hex\").slice(0, 12);\n    const extension = path.extname(packagePath);\n    const baseName = path.basename(packagePath, extension);\n\n    return [\n      {\n        family,\n        sourcePath,\n        url: `/assets/fonts/${baseName}-h${fingerprint}${extension}`,\n      },\n    ];\n  });\n}\n\nexport function toFarmDocsPublicFontAssets(\n  assets: readonly FarmDocsFontAsset[],\n): FarmDocsPublicFontAsset[] {\n  return assets.map(({ family, url }) => ({ family, url }));\n}\n"],"mappings":";;;;;AAAA,SAAS,kBAAkB;AAC3B,SAAS,YAAY,oBAAoB;AACzC,OAAO,UAAU;AAWjB,IAAM,yBAAyB;AAAA,EAC7B;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AACF;AAEO,SAAS,0BAA0B,MAAmC;AAC3E,SAAO,uBAAuB,QAAQ,CAAC,EAAE,QAAQ,YAAY,MAAM;AACjE,UAAM,aAAa,KAAK,KAAK,MAAM,gBAAgB,WAAW;AAC9D,QAAI,CAAC,WAAW,UAAU,EAAG,QAAO,CAAC;AAErC,UAAM,SAAS,aAAa,UAAU;AACtC,UAAM,cAAc,WAAW,QAAQ,EAAE,OAAO,MAAM,EAAE,OAAO,KAAK,EAAE,MAAM,GAAG,EAAE;AACjF,UAAM,YAAY,KAAK,QAAQ,WAAW;AAC1C,UAAM,WAAW,KAAK,SAAS,aAAa,SAAS;AAErD,WAAO;AAAA,MACL;AAAA,QACE;AAAA,QACA;AAAA,QACA,KAAK,iBAAiB,QAAQ,KAAK,WAAW,GAAG,SAAS;AAAA,MAC5D;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAlBgB;AAoBT,SAAS,2BACd,QAC2B;AAC3B,SAAO,OAAO,IAAI,CAAC,EAAE,QAAQ,IAAI,OAAO,EAAE,QAAQ,IAAI,EAAE;AAC1D;AAJgB;","names":[]}