From 043d1afb0b5cf6d6083903072934d78960519f09 Mon Sep 17 00:00:00 2001 From: Jared Wray Date: Thu, 9 Apr 2026 16:50:06 -0700 Subject: [PATCH 1/2] chore: upgrading docual to 1.12.0 --- package.json | 1 + packages/website/package.json | 3 +- packages/website/site/.gitignore | 1 + packages/website/site/docula.config.mjs | 8 - packages/website/site/docula.config.ts | 11 + packages/website/site/logo.svg | 2 +- packages/website/site/{ => public}/symbol.svg | 0 packages/website/site/variables.css | 76 +-- packages/website/src/docs.ts | 11 +- pnpm-lock.yaml | 468 +++++++++++------- 10 files changed, 345 insertions(+), 236 deletions(-) create mode 100644 packages/website/site/.gitignore delete mode 100644 packages/website/site/docula.config.mjs create mode 100644 packages/website/site/docula.config.ts rename packages/website/site/{ => public}/symbol.svg (100%) diff --git a/package.json b/package.json index c4674c10..26c6b07a 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "test:services:stop": "docker compose down", "website:build": "pnpm recursive --filter @cacheable/website run website:build", "website:serve": "pnpm recursive --filter @cacheable/website run website:serve", + "website:dev": "pnpm recursive --filter @cacheable/website run website:dev", "build": "pnpm -r build", "build:list": "pnpm recursive run build", "clean": "pnpm recursive run clean" diff --git a/packages/website/package.json b/packages/website/package.json index 53716a00..5715896f 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -10,10 +10,11 @@ "generate-docs": "npx tsx ./src/docs.ts", "website:build": "rimraf ./site/docs && pnpm generate-docs && docula build", "website:serve": "rimraf ./site/docs && pnpm generate-docs && docula serve", + "website:dev": "rimraf ./site/docs && pnpm generate-docs && docula dev", "clean": "rimraf ./dist" }, "devDependencies": { - "docula": "0.40.0", + "docula": "^1.12.0", "tsx": "4.21.0" } } diff --git a/packages/website/site/.gitignore b/packages/website/site/.gitignore new file mode 100644 index 00000000..16d3c4db --- /dev/null +++ b/packages/website/site/.gitignore @@ -0,0 +1 @@ +.cache diff --git a/packages/website/site/docula.config.mjs b/packages/website/site/docula.config.mjs deleted file mode 100644 index a33e9a03..00000000 --- a/packages/website/site/docula.config.mjs +++ /dev/null @@ -1,8 +0,0 @@ -export const options = { - githubPath: 'jaredwray/cacheable', - siteTitle: 'Cacheable', - siteDescription: 'Caching for Node.js', - siteUrl: 'https://cacheable.org', - sections: [ - ], -}; diff --git a/packages/website/site/docula.config.ts b/packages/website/site/docula.config.ts new file mode 100644 index 00000000..fdb0453c --- /dev/null +++ b/packages/website/site/docula.config.ts @@ -0,0 +1,11 @@ +import type { DoculaOptions } from "docula"; + +export const options: Partial = { + githubPath: "jaredwray/cacheable", + siteTitle: "Cacheable", + siteDescription: "Caching for Node.js", + siteUrl: "https://cacheable.org", + template: "modern", + output: "./dist", + sections: [], +}; diff --git a/packages/website/site/logo.svg b/packages/website/site/logo.svg index ca9c0803..59e8ba68 100644 --- a/packages/website/site/logo.svg +++ b/packages/website/site/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/website/site/symbol.svg b/packages/website/site/public/symbol.svg similarity index 100% rename from packages/website/site/symbol.svg rename to packages/website/site/public/symbol.svg diff --git a/packages/website/site/variables.css b/packages/website/site/variables.css index f4f2ba5c..19248f21 100644 --- a/packages/website/site/variables.css +++ b/packages/website/site/variables.css @@ -1,30 +1,48 @@ +@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap'); + +body { + font-family: 'Open Sans', sans-serif; +} + +/* Dark theme (default in Modern) — brand orange for links on dark backgrounds */ :root { - --font-family: 'Open Sans', sans-serif; - - --color-primary: #fa3c32; - --color-secondary: #ff7800; - --color-secondary-dark: #322d28; - --color-text: #322d28; - - --background: #ffffff; - --home-background: #ffffff; - --header-background: #ffffff; - - --sidebar-background: #ffffff; - --sidebar-text: #322d28; - --sidebar-text-active: #ff7800; - - --border: rgba(238,238,245,1); - - --background-search-highlight: var(--color-secondary-dark); - --color-search-highlight: #ffffff; - --search-input-background: var(--header-background); - - --code: rgba(238,238,245,1); - - --pagefind-ui-text: var(--color-text) !important; - --pagefind-ui-font: var(--font-family) !important; - --pagefind-ui-background: var(--background) !important; - --pagefind-ui-border: var(--border) !important; - --pagefind-ui-scale: .9 !important; - } \ No newline at end of file + --bg: #322d28; + --fg: #ffffff; + --border: rgba(255, 255, 255, 0.1); + --border-strong: rgba(255, 255, 255, 0.2); + --border-hover: rgba(255, 120, 0, 0.5); + --surface: #3d3832; + --surface-hover: rgba(255, 255, 255, 0.08); + --muted: #c5cdd3; + --muted-fg: rgba(255, 255, 255, 0.65); + --code-bg: rgba(255, 255, 255, 0.08); + --pre-bg: rgba(255, 255, 255, 0.05); + --link: #ff7800; + --scrollbar: rgba(255, 255, 255, 0.2); +} + +/* Light theme — brand red for links, cream-white background, dark-brown text */ +[data-theme="light"] { + --bg: #ffffff; + --fg: #322d28; + --border: rgba(238, 238, 245, 1); + --border-strong: rgba(50, 45, 40, 0.15); + --border-hover: rgba(250, 60, 50, 0.4); + --surface: #f7f7fa; + --surface-hover: rgba(50, 45, 40, 0.05); + --muted: #6b6560; + --muted-fg: rgba(50, 45, 40, 0.5); + --code-bg: rgba(238, 238, 245, 1); + --pre-bg: rgba(238, 238, 245, 0.6); + --link: #fa3c32; + --scrollbar: rgba(50, 45, 40, 0.2); +} + +/* Pagefind search UI — library-owned variables, kept from v0.40.0 config */ +:root { + --pagefind-ui-text: var(--fg) !important; + --pagefind-ui-font: 'Open Sans', sans-serif !important; + --pagefind-ui-background: var(--bg) !important; + --pagefind-ui-border: var(--border) !important; + --pagefind-ui-scale: 0.9 !important; +} diff --git a/packages/website/src/docs.ts b/packages/website/src/docs.ts index b489b2b8..3b85121d 100644 --- a/packages/website/src/docs.ts +++ b/packages/website/src/docs.ts @@ -1,5 +1,5 @@ import { existsSync } from "node:fs"; -import { readdir, readFile, writeFile, mkdir, copyFile } from "node:fs/promises"; +import { readdir, readFile, writeFile, mkdir } from "node:fs/promises"; async function main() { @@ -7,7 +7,6 @@ async function main() { await copyPackages(); await copyGettingStarted(); - await copyCacheableSymbol(); }; async function copyPackages() { @@ -23,14 +22,6 @@ async function copyPackages() { }; } -async function copyCacheableSymbol() { - const rootPath = getRelativeRootPath(); - const packagesPath = getRelativePackagePath(); - const outputPath = `${packagesPath}/website/dist`; - await mkdir(`${outputPath}`, { recursive: true }); - await copyFile(`${packagesPath}/website/site/symbol.svg`, `${outputPath}/symbol.svg`); -} - async function copyGettingStarted() { console.log("Adding Getting Started"); const rootPath = getRelativeRootPath(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3cc4cc4..b7161fbe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,7 +28,7 @@ importers: version: 6.1.3 vitest: specifier: ^4.1.3 - version: 4.1.3(@types/node@25.5.2)(@vitest/coverage-v8@4.1.3)(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0)) + version: 4.1.3(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.3)(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0)) wrangler: specifier: ^4.81.0 version: 4.81.0 @@ -310,14 +310,48 @@ importers: packages/website: devDependencies: docula: - specifier: 0.40.0 - version: 0.40.0(chokidar@3.6.0) + specifier: ^1.12.0 + version: 1.12.0(chokidar@3.6.0)(zod@4.3.6) tsx: specifier: 4.21.0 version: 4.21.0 packages: + '@ai-sdk/anthropic@3.0.68': + resolution: {integrity: sha512-BAd+fmgYoJMmGw0/uV+jRlXX60PyGxelA6Clp4cK/NI0dsyv9jOOwzQmKNaz2nwb+Jz7HqI7I70KK4XtU5EcXQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/gateway@3.0.93': + resolution: {integrity: sha512-8D6C9eEvDq6IgrdlWzpbniahDkoLiieTCrpzH8p/Hw63/0iPnZJ1uZcqxHrDIVDW/+aaGhBXqmx5C7HSd2eMmQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/google@3.0.60': + resolution: {integrity: sha512-ye/hG0LeO24VmjLbfgkFZV8V8k/l4nVBODutpJQkFPyUiGOCbFtFUTgxSeC7+njrk5+HhgyHrzJay4zmhwMH+w==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai@3.0.52': + resolution: {integrity: sha512-4Rr8NCGmfWTz6DCUvixn9UmyZcMatiHn0zWoMzI3JCUe9R1P/vsPOpCBALKoSzVYOjyJnhtnVIbfUKujcS39uw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@4.0.23': + resolution: {integrity: sha512-z8GlDaCmRSDlqkMF2f4/RFgWxdarvIbyuk+m6WXT1LYgsnGiXRJGTD2Z1+SDl3LqtFuRtGX1aghYvQLoHL/9pg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider@3.0.8': + resolution: {integrity: sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==} + engines: {node: '>=18'} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -405,17 +439,17 @@ packages: ioredis: optional: true - '@cacheable/memory@2.0.7': - resolution: {integrity: sha512-RbxnxAMf89Tp1dLhXMS7ceft/PGsDl1Ip7T20z5nZ+pwIAsQ1p2izPjVG69oCLv/jfQ7HDPHTWK0c9rcAWXN3A==} + '@cacheable/memory@2.0.8': + resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==} - '@cacheable/net@2.0.5': - resolution: {integrity: sha512-6csYZIIyzyt37kiqhzM4p9Mx2FuarVRpg0KXWxPPMaBDwiSPDDU+D2lkSNR27a7xRKKrV6QhgIf8p7jm0NRExg==} + '@cacheable/net@2.0.7': + resolution: {integrity: sha512-yItascYmXnV324/43u+t8/DaljXV0dxfwC/4BfXm38SiKWBONgBehNa6FskfRL4HnogmeUrWKiU+J6CXGZ4eLw==} '@cacheable/node-cache@1.5.6': resolution: {integrity: sha512-1sLMrvrWoxrqiVKW1BFDjYrBGSG32miOJfNyPUaWwisvbsu+V2wgYqPyLiw0qpprxtjVZT02omsGgQut+DKw8Q==} - '@cacheable/utils@2.3.3': - resolution: {integrity: sha512-JsXDL70gQ+1Vc2W/KUFfkAJzgb4puKwwKehNLuB+HrNKWf91O736kGfxn4KujXCCSuh6mRRL4XEB0PkAFjWS0A==} + '@cacheable/utils@2.4.1': + resolution: {integrity: sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==} '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} @@ -1252,8 +1286,8 @@ packages: '@iovalkey/commands@0.1.0': resolution: {integrity: sha512-/B9W4qKSSITDii5nkBCHyPkIkAi+ealUtr1oqBJsLxjSRLka4pxun2VvMNSmcwgAMxgXtQfl0qRv7TE+udPJzg==} - '@jaredwray/fumanchu@4.5.1': - resolution: {integrity: sha512-gNUugpldx0lS8yFE7LRmERNcbuvx5+rugCmMtORHGtPWVkv8X2Wbbg84Bd7Urj55krXcyDMApkYTxgo/5Mlg9A==} + '@jaredwray/fumanchu@4.6.1': + resolution: {integrity: sha512-BvEOr8ItuG4yNLeOiIfk4psJ5W6nXiGA9aKiGip0eqhRx5hTDxzQwvcvYAOyHBKgHwrazIXLl2k/yCNZ9sm2aQ==} '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1326,6 +1360,10 @@ packages: engines: {node: '>=10'} deprecated: This functionality has been moved to @npmcli/fs + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + '@paralleldrive/cuid2@2.2.2': resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} @@ -1821,6 +1859,10 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@vercel/oidc@3.1.0': + resolution: {integrity: sha512-Fw28YZpRnA3cAHHDlkt7xQHiJ0fcL+NRcIqsocZQUSmbzeIKRpwttJjik5ZGanXP+vlA4SbTg+AbA3bP363l+w==} + engines: {node: '>= 20'} + '@vitest/coverage-v8@4.1.3': resolution: {integrity: sha512-/MBdrkA8t6hbdCWFKs09dPik774xvs4Z6L4bycdCxYNLHM8oZuRyosumQMG19LUlBsB6GeVpL1q4kFFazvyKGA==} peerDependencies: @@ -1901,6 +1943,12 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} + ai@6.0.152: + resolution: {integrity: sha512-+MKmC+cAzB7vZ4UiNRPDhynx2571H39ahL5fpF0UaD2CJSl0XZgTeDIqHNoDRo9SfJOz/usKFc8/a7CpjfS3mw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -2028,9 +2076,6 @@ packages: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@8.0.1: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} @@ -2089,8 +2134,8 @@ packages: cacheable@1.10.0: resolution: {integrity: sha512-SSgQTAnhd7WlJXnGlIi4jJJOiHzgnM5wRMEPaXAU4kECTAMpBoYKoZ9i5zHmclIEZbxcu3j7yY/CF8DTmwIsHg==} - cacheable@2.3.2: - resolution: {integrity: sha512-w+ZuRNmex9c1TR9RcsxbfTKCjSL0rh1WA5SABbrWprIHeNBdmyQLSYonlDy9gpD+63XT8DgZ/wNh1Smvc9WnJA==} + cacheable@2.3.4: + resolution: {integrity: sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==} call-bind-apply-helpers@1.0.1: resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} @@ -2146,13 +2191,6 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.2.0: - resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} - engines: {node: '>=20.18.1'} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -2196,6 +2234,9 @@ packages: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -2268,15 +2309,8 @@ packages: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} - - dayjs@1.11.19: - resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -2331,8 +2365,8 @@ packages: doctypes@1.1.0: resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} - docula@0.40.0: - resolution: {integrity: sha512-uSw9ZvCxMe06blaOOkjv7vQbHHBi3M2vvHdCGnr2H1Dw63z7WvCKgMSkFO8ORi/kH8ulcbCqamMhCPllsShf8w==} + docula@1.12.0: + resolution: {integrity: sha512-YKd/9ueNZYFWyTKSrZRfBP6L/4x9zMz1r0OzrYMQO7zvETR/XInMqAwW+RAnzNO+LINTJkZE9bWcup2MfEiENA==} engines: {node: '>=20'} hasBin: true @@ -2357,8 +2391,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - ecto@4.8.1: - resolution: {integrity: sha512-Y+Rxaz3VQqSD1LPrd5DHxGkLAuykUdiYPNkpD4qh3v1ZO7yXiaP5hjKWJ5Ejmrey9WH8350xv3wQ/jmUYXMCeg==} + ecto@4.8.3: + resolution: {integrity: sha512-I+JcYTrxYTytYfcVnVjElZV691TYUi0sW/BXIAGCEzNaygpWGkzV8sPmEb8nL1MUHjfrPqu1rR7OOh1vaxt0ZQ==} ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -2384,9 +2418,6 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - encoding-sniffer@0.2.1: - resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -2485,6 +2516,10 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + engines: {node: '>=18.0.0'} + expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -2627,8 +2662,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + handlebars@4.7.9: + resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} engines: {node: '>=0.4.7'} hasBin: true @@ -2676,9 +2711,15 @@ packages: hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + hast-util-to-html@9.0.5: resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} + hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} @@ -2691,10 +2732,6 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - highlight.js@11.11.1: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} @@ -2708,14 +2745,14 @@ packages: hookified@2.1.0: resolution: {integrity: sha512-ootKng4eaxNxa7rx6FJv2YKef3DuhqbEj3l70oGXwddPQEEnISm50TEZQclqiLTAtilT2nu7TErtCO523hHkyg==} - html-dom-parser@5.1.7: - resolution: {integrity: sha512-Sn+6S3Z8P3P12qqUm4+9wnchC3Bjc4DHp60fgnUdgeiy6e3EbECFWdrmyTBuphxJA5Is7V400+v7ct/Ix2pJFw==} + html-dom-parser@5.1.8: + resolution: {integrity: sha512-MCIUng//mF2qTtGHXJWr6OLfHWmg3Pm8ezpfiltF83tizPWY17JxT4dRLE8lykJ5bChJELoY3onQKPbufJHxYA==} html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-react-parser@5.2.16: - resolution: {integrity: sha512-1S6KLse1hKWOXYL/PSnZhsARJBE6eIO93CjPlDKMneO0wz8YTnzTfc9Yw4mWsCk2kcB9IrU+R0W6Rdi4N7YfJw==} + html-react-parser@5.2.17: + resolution: {integrity: sha512-m+K/7Moq1jodAB4VL0RXSOmtwLUYoAsikZhwd+hGQe5Vtw2dbWfpFd60poxojMU0Tsh9w59mN1QLEcoHz0Dx9w==} peerDependencies: '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 react: 0.14 || 15 || 16 || 17 || 18 || 19 @@ -2932,6 +2969,9 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + jstransformer@1.0.0: resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} @@ -3243,12 +3283,12 @@ packages: resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==} engines: {node: 18 || 20 || >=22} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@3.1.3: resolution: {integrity: sha512-M2GCs7Vk83NxkUyQV1bkABc4yxgz9kILhHImZiBPAZ9ybuvCb0/H7lEl5XvIg3g+9d4eNotkZA5IWwYl0tibaA==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@5.1.7: resolution: {integrity: sha512-FjiwU9HaHW6YB3H4a1sFudnv93lvydNjz2lmyUXR6IwKhGI+bgL3SOZrBGn6kvvX2pJvhEkGSGjyTHN47O4rqA==} engines: {node: '>=10'} @@ -3366,9 +3406,6 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This package is no longer supported. - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nunjucks@3.2.4: resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==} engines: {node: '>= 6.9.0'} @@ -3423,12 +3460,6 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse5-htmlparser2-tree-adapter@7.1.0: - resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} - - parse5-parser-stream@7.1.2: - resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} - parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -3604,10 +3635,6 @@ packages: resolution: {integrity: sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==} engines: {node: '>=12.20'} - qified@0.6.0: - resolution: {integrity: sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==} - engines: {node: '>=20'} - qified@0.9.0: resolution: {integrity: sha512-4q61YgkHbY6gmwkqm0BsxyLDO3UYdrdiJTJ7JiaZb3xpW1duxn135SB7KqUEkCiuu5O4W+TtwEWP2VjmSRanvA==} engines: {node: '>=20'} @@ -3699,6 +3726,9 @@ packages: rehype-katex@7.0.1: resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} @@ -3716,6 +3746,10 @@ packages: resolution: {integrity: sha512-0w0u3/wjBEK555yzm5UUnDCWO38Qk60laA5FvJrnES+YA/+r3hvvLgE/5SpMjaVpPOpVzunXk9caob1NTheM0g==} engines: {node: '>=16'} + remark-github-blockquote-alert@2.1.0: + resolution: {integrity: sha512-J392jmIP684d7iGsENN0uguL10IGbRdc8bTUSrd/jOLzdWkwg721Fj3JPQGN8tF6fTIrE5HHOIA3nBuwuaeuPQ==} + engines: {node: '>=16'} + remark-math@6.0.0: resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} @@ -3822,8 +3856,8 @@ packages: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} - serve-handler@6.1.6: - resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} + serve-handler@6.1.7: + resolution: {integrity: sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==} serve-static@2.2.0: resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} @@ -4315,15 +4349,6 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - when-exit@2.1.5: resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} @@ -4373,8 +4398,12 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - writr@5.0.3: - resolution: {integrity: sha512-EoBXqdSVx2nN0BPylQTHL2f5iSW6Ea5pzw1j3FFF+tC1FQ12XIjDKpIyRHPR0gj7wwIekOUdPKVOYCk7tk1eTw==} + writr@5.0.4: + resolution: {integrity: sha512-d7cZN3wxUdco+7eXK37putjHW+OdntciM0Kh+tTbkz6DCtshXFft3w5LMX3qeOqSWBRmoLfhZi3ztahchBnVvg==} + engines: {node: '>=20'} + + writr@6.1.1: + resolution: {integrity: sha512-nVqUIiWmOLM2UeHM6Ix34fV1jCJwVrcYwlCohF8Gl7g57yHMq36ueO1+3wlvsaYTP6RWj5OWYEZWNOXy8MCE2g==} engines: {node: '>=20'} ws@8.18.0: @@ -4411,11 +4440,50 @@ packages: youch@4.1.0-beta.10: resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: + '@ai-sdk/anthropic@3.0.68(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.3.6) + zod: 4.3.6 + + '@ai-sdk/gateway@3.0.93(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.3.6) + '@vercel/oidc': 3.1.0 + zod: 4.3.6 + + '@ai-sdk/google@3.0.60(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.3.6) + zod: 4.3.6 + + '@ai-sdk/openai@3.0.52(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.3.6) + zod: 4.3.6 + + '@ai-sdk/provider-utils@4.0.23(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 3.0.8 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.0.6 + zod: 4.3.6 + + '@ai-sdk/provider@3.0.8': + dependencies: + json-schema: 0.4.0 + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.28.5': {} @@ -4472,16 +4540,16 @@ snapshots: '@poppinss/utils': 6.9.4 object-hash: 3.0.0 - '@cacheable/memory@2.0.7': + '@cacheable/memory@2.0.8': dependencies: - '@cacheable/utils': 2.3.3 + '@cacheable/utils': 2.4.1 '@keyv/bigmap': 1.3.1(keyv@5.6.0) hookified: 1.15.1 keyv: 5.6.0 - '@cacheable/net@2.0.5': + '@cacheable/net@2.0.7': dependencies: - cacheable: 2.3.2 + cacheable: 2.3.4 hookified: 1.15.1 http-cache-semantics: 4.2.0 undici: 7.24.5 @@ -4492,7 +4560,7 @@ snapshots: hookified: 1.15.1 keyv: 5.5.5 - '@cacheable/utils@2.3.3': + '@cacheable/utils@2.4.1': dependencies: hashery: 1.5.1 keyv: 5.6.0 @@ -4943,12 +5011,13 @@ snapshots: '@iovalkey/commands@0.1.0': {} - '@jaredwray/fumanchu@4.5.1': + '@jaredwray/fumanchu@4.6.1': dependencies: + '@cacheable/memory': 2.0.8 chrono-node: 2.9.0 - dayjs: 1.11.19 + dayjs: 1.11.20 ent: 2.2.2 - handlebars: 4.7.8 + handlebars: 4.7.9 html-tag: 2.0.0 is-glob: 4.0.3 kind-of: 6.0.3 @@ -5044,6 +5113,8 @@ snapshots: rimraf: 3.0.2 optional: true + '@opentelemetry/api@1.9.0': {} + '@paralleldrive/cuid2@2.2.2': dependencies: '@noble/hashes': 1.8.0 @@ -5410,6 +5481,8 @@ snapshots: '@ungap/structured-clone@1.3.0': {} + '@vercel/oidc@3.1.0': {} + '@vitest/coverage-v8@4.1.3(vitest@4.1.3)': dependencies: '@bcoe/v8-coverage': 1.0.2 @@ -5422,7 +5495,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.1.3(@types/node@25.5.2)(@vitest/coverage-v8@4.1.3)(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0)) + vitest: 4.1.3(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.3)(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0)) '@vitest/expect@4.1.3': dependencies: @@ -5475,16 +5548,15 @@ snapshots: mime-types: 3.0.1 negotiator: 1.0.0 - acorn-jsx@5.3.2(acorn@8.15.0): + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn@7.4.1: {} acorn@8.15.0: {} - acorn@8.16.0: - optional: true + acorn@8.16.0: {} agent-base@6.0.2: dependencies: @@ -5504,6 +5576,14 @@ snapshots: indent-string: 4.0.0 optional: true + ai@6.0.152(zod@4.3.6): + dependencies: + '@ai-sdk/gateway': 3.0.93(zod@4.3.6) + '@ai-sdk/provider': 3.0.8 + '@ai-sdk/provider-utils': 4.0.23(zod@4.3.6) + '@opentelemetry/api': 1.9.0 + zod: 4.3.6 + ansi-align@3.0.1: dependencies: string-width: 4.2.3 @@ -5620,8 +5700,6 @@ snapshots: transitivePeerDependencies: - supports-color - boolbase@1.0.0: {} - boxen@8.0.1: dependencies: ansi-align: 3.0.1 @@ -5716,13 +5794,13 @@ snapshots: hookified: 1.15.1 keyv: 5.6.0 - cacheable@2.3.2: + cacheable@2.3.4: dependencies: - '@cacheable/memory': 2.0.7 - '@cacheable/utils': 2.3.3 + '@cacheable/memory': 2.0.8 + '@cacheable/utils': 2.4.1 hookified: 1.15.1 keyv: 5.6.0 - qified: 0.6.0 + qified: 0.9.0 call-bind-apply-helpers@1.0.1: dependencies: @@ -5768,29 +5846,6 @@ snapshots: character-reference-invalid@2.0.1: {} - cheerio-select@2.1.0: - dependencies: - boolbase: 1.0.0 - css-select: 5.2.2 - css-what: 6.2.2 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - - cheerio@1.2.0: - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.2.2 - encoding-sniffer: 0.2.1 - htmlparser2: 10.1.0 - parse5: 7.3.0 - parse5-htmlparser2-tree-adapter: 7.1.0 - parse5-parser-stream: 7.1.2 - undici: 7.24.5 - whatwg-mimetype: 4.0.0 - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -5831,6 +5886,8 @@ snapshots: color-support@1.1.3: optional: true + colorette@2.0.20: {} + comma-separated-tokens@2.0.3: {} commander@10.0.1: {} @@ -5886,17 +5943,7 @@ snapshots: cookie@1.1.1: {} - css-select@5.2.2: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - - css-what@6.2.2: {} - - dayjs@1.11.19: {} + dayjs@1.11.20: {} debug@4.4.3: dependencies: @@ -5936,21 +5983,26 @@ snapshots: doctypes@1.1.0: {} - docula@0.40.0(chokidar@3.6.0): + docula@1.12.0(chokidar@3.6.0)(zod@4.3.6): dependencies: - '@cacheable/net': 2.0.5 - cheerio: 1.2.0 - ecto: 4.8.1(chokidar@3.6.0) + '@ai-sdk/anthropic': 3.0.68(zod@4.3.6) + '@ai-sdk/google': 3.0.60(zod@4.3.6) + '@ai-sdk/openai': 3.0.52(zod@4.3.6) + '@cacheable/net': 2.0.7 + ai: 6.0.152(zod@4.3.6) + colorette: 2.0.20 + ecto: 4.8.3(chokidar@3.6.0) feed: 5.2.0 - he: 1.2.0 + hashery: 1.5.1 jiti: 2.6.1 - serve-handler: 6.1.6 + serve-handler: 6.1.7 update-notifier: 7.3.1 - writr: 5.0.3 + writr: 6.1.1 transitivePeerDependencies: - '@types/react' - chokidar - supports-color + - zod dom-serializer@2.0.0: dependencies: @@ -5980,17 +6032,17 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - ecto@4.8.1(chokidar@3.6.0): + ecto@4.8.3(chokidar@3.6.0): dependencies: - '@jaredwray/fumanchu': 4.5.1 - cacheable: 2.3.2 + '@jaredwray/fumanchu': 4.6.1 + cacheable: 2.3.4 ejs: 4.0.1 ent: 2.2.2 hookified: 1.15.1 liquidjs: 10.24.0 nunjucks: 3.2.4(chokidar@3.6.0) pug: 3.0.3 - writr: 5.0.3 + writr: 5.0.4 transitivePeerDependencies: - '@types/react' - chokidar @@ -6012,11 +6064,6 @@ snapshots: encodeurl@2.0.0: {} - encoding-sniffer@0.2.1: - dependencies: - iconv-lite: 0.6.3 - whatwg-encoding: 3.1.1 - encoding@0.1.13: dependencies: iconv-lite: 0.6.3 @@ -6197,6 +6244,8 @@ snapshots: eventemitter3@5.0.1: {} + eventsource-parser@3.0.6: {} + expand-template@2.0.3: {} expect-type@1.3.0: {} @@ -6384,7 +6433,7 @@ snapshots: graceful-fs@4.2.11: {} - handlebars@4.7.8: + handlebars@4.7.9: dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -6457,6 +6506,22 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.1 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.1.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.4 @@ -6471,6 +6536,16 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 + hast-util-to-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + hast-util-to-string@3.0.1: dependencies: '@types/hast': 3.0.4 @@ -6494,8 +6569,6 @@ snapshots: property-information: 7.1.0 space-separated-tokens: 2.0.2 - he@1.2.0: {} - highlight.js@11.11.1: {} hookified@1.15.0: {} @@ -6504,17 +6577,17 @@ snapshots: hookified@2.1.0: {} - html-dom-parser@5.1.7: + html-dom-parser@5.1.8: dependencies: domhandler: 5.0.3 htmlparser2: 10.1.0 html-escaper@2.0.2: {} - html-react-parser@5.2.16(react@19.2.4): + html-react-parser@5.2.17(react@19.2.4): dependencies: domhandler: 5.0.3 - html-dom-parser: 5.1.7 + html-dom-parser: 5.1.8 react: 19.2.4 react-property: 2.0.2 style-to-js: 1.1.21 @@ -6576,6 +6649,7 @@ snapshots: iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 + optional: true iconv-lite@0.7.0: dependencies: @@ -6735,6 +6809,8 @@ snapshots: jsbn@1.1.0: optional: true + json-schema@0.4.0: {} + jstransformer@1.0.0: dependencies: is-promise: 2.2.2 @@ -7160,8 +7236,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) micromark-extension-mdx-expression: 3.0.1 micromark-extension-mdx-jsx: 3.0.2 micromark-extension-mdx-md: 2.0.0 @@ -7342,14 +7418,14 @@ snapshots: dependencies: brace-expansion: 5.0.3 - minimatch@3.1.2: + minimatch@3.1.3: dependencies: brace-expansion: 1.1.12 + optional: true - minimatch@3.1.3: + minimatch@3.1.5: dependencies: brace-expansion: 1.1.12 - optional: true minimatch@5.1.7: dependencies: @@ -7481,10 +7557,6 @@ snapshots: set-blocking: 2.0.0 optional: true - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - nunjucks@3.2.4(chokidar@3.6.0): dependencies: a-sync-waterfall: 1.0.1 @@ -7537,15 +7609,6 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse5-htmlparser2-tree-adapter@7.1.0: - dependencies: - domhandler: 5.0.3 - parse5: 7.3.0 - - parse5-parser-stream@7.1.2: - dependencies: - parse5: 7.3.0 - parse5@7.3.0: dependencies: entities: 6.0.1 @@ -7744,10 +7807,6 @@ snapshots: dependencies: escape-goat: 4.0.0 - qified@0.6.0: - dependencies: - hookified: 1.15.1 - qified@0.9.0: dependencies: hookified: 2.1.0 @@ -7854,6 +7913,12 @@ snapshots: unist-util-visit-parents: 6.0.2 vfile: 6.0.3 + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + rehype-slug@6.0.0: dependencies: '@types/hast': 3.0.4 @@ -7891,6 +7956,10 @@ snapshots: dependencies: unist-util-visit: 5.1.0 + remark-github-blockquote-alert@2.1.0: + dependencies: + unist-util-visit: 5.1.0 + remark-math@6.0.0: dependencies: '@types/mdast': 4.0.4 @@ -8078,12 +8147,12 @@ snapshots: transitivePeerDependencies: - supports-color - serve-handler@6.1.6: + serve-handler@6.1.7: dependencies: bytes: 3.0.0 content-disposition: 0.5.2 mime-types: 2.1.18 - minimatch: 3.1.2 + minimatch: 3.1.5 path-is-inside: 1.0.2 path-to-regexp: 3.3.0 range-parser: 1.2.0 @@ -8589,7 +8658,7 @@ snapshots: tsx: 4.21.0 yaml: 2.5.0 - vitest@4.1.3(@types/node@25.5.2)(@vitest/coverage-v8@4.1.3)(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0)): + vitest@4.1.3(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.3)(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0)): dependencies: '@vitest/expect': 4.1.3 '@vitest/mocker': 4.1.3(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0)) @@ -8612,6 +8681,7 @@ snapshots: vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(terser@5.31.3)(tsx@4.21.0)(yaml@2.5.0) why-is-node-running: 2.3.0 optionalDependencies: + '@opentelemetry/api': 1.9.0 '@types/node': 25.5.2 '@vitest/coverage-v8': 4.1.3(vitest@4.1.3) transitivePeerDependencies: @@ -8621,12 +8691,6 @@ snapshots: web-namespaces@2.0.1: {} - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - - whatwg-mimetype@4.0.0: {} - when-exit@2.1.5: {} which@2.0.2: @@ -8689,12 +8753,12 @@ snapshots: wrappy@1.0.2: {} - writr@5.0.3: + writr@5.0.4: dependencies: - cacheable: 2.3.2 + cacheable: 2.3.4 hashery: 1.5.1 hookified: 1.15.1 - html-react-parser: 5.2.16(react@19.2.4) + html-react-parser: 5.2.17(react@19.2.4) js-yaml: 4.1.1 react: 19.2.4 rehype-highlight: 7.0.2 @@ -8714,6 +8778,34 @@ snapshots: - '@types/react' - supports-color + writr@6.1.1: + dependencies: + ai: 6.0.152(zod@4.3.6) + cacheable: 2.3.4 + hashery: 1.5.1 + hookified: 2.1.0 + html-react-parser: 5.2.17(react@19.2.4) + js-yaml: 4.1.1 + react: 19.2.4 + rehype-highlight: 7.0.2 + rehype-katex: 7.0.1 + rehype-raw: 7.0.0 + rehype-slug: 6.0.0 + rehype-stringify: 10.0.1 + remark-emoji: 5.0.2 + remark-gfm: 4.0.1 + remark-github-blockquote-alert: 2.1.0 + remark-math: 6.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-toc: 9.0.0 + unified: 11.0.5 + zod: 4.3.6 + transitivePeerDependencies: + - '@types/react' + - supports-color + ws@8.18.0: {} xdg-basedir@5.1.0: {} @@ -8740,4 +8832,6 @@ snapshots: cookie: 1.1.1 youch-core: 0.3.3 + zod@4.3.6: {} + zwitch@2.0.4: {} From 7768cc0bacde59a24b81d7a11d828369394a93e1 Mon Sep 17 00:00:00 2001 From: Jared Wray Date: Thu, 9 Apr 2026 17:28:31 -0700 Subject: [PATCH 2/2] adding defaults --- .github/workflows/deploy-website.yml | 2 +- packages/website/package.json | 2 +- packages/website/site/docula.config.ts | 4 +-- packages/website/site/logo.svg | 2 +- packages/website/site/variables.css | 48 -------------------------- 5 files changed, 4 insertions(+), 54 deletions(-) delete mode 100644 packages/website/site/variables.css diff --git a/.github/workflows/deploy-website.yml b/.github/workflows/deploy-website.yml index f3480424..8250b047 100644 --- a/.github/workflows/deploy-website.yml +++ b/.github/workflows/deploy-website.yml @@ -36,4 +36,4 @@ jobs: uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - command: pages deploy packages/website/dist --project-name=cacheableorg --branch=main + command: pages deploy packages/website/site/dist --project-name=cacheableorg --branch=main diff --git a/packages/website/package.json b/packages/website/package.json index 5715896f..beaaf0cb 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -7,7 +7,7 @@ "license": "MIT", "private": true, "scripts": { - "generate-docs": "npx tsx ./src/docs.ts", + "generate-docs": "tsx ./src/docs.ts", "website:build": "rimraf ./site/docs && pnpm generate-docs && docula build", "website:serve": "rimraf ./site/docs && pnpm generate-docs && docula serve", "website:dev": "rimraf ./site/docs && pnpm generate-docs && docula dev", diff --git a/packages/website/site/docula.config.ts b/packages/website/site/docula.config.ts index fdb0453c..b38e6e05 100644 --- a/packages/website/site/docula.config.ts +++ b/packages/website/site/docula.config.ts @@ -5,7 +5,5 @@ export const options: Partial = { siteTitle: "Cacheable", siteDescription: "Caching for Node.js", siteUrl: "https://cacheable.org", - template: "modern", - output: "./dist", - sections: [], + themeMode: "light", }; diff --git a/packages/website/site/logo.svg b/packages/website/site/logo.svg index 59e8ba68..ca9c0803 100644 --- a/packages/website/site/logo.svg +++ b/packages/website/site/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/website/site/variables.css b/packages/website/site/variables.css deleted file mode 100644 index 19248f21..00000000 --- a/packages/website/site/variables.css +++ /dev/null @@ -1,48 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap'); - -body { - font-family: 'Open Sans', sans-serif; -} - -/* Dark theme (default in Modern) — brand orange for links on dark backgrounds */ -:root { - --bg: #322d28; - --fg: #ffffff; - --border: rgba(255, 255, 255, 0.1); - --border-strong: rgba(255, 255, 255, 0.2); - --border-hover: rgba(255, 120, 0, 0.5); - --surface: #3d3832; - --surface-hover: rgba(255, 255, 255, 0.08); - --muted: #c5cdd3; - --muted-fg: rgba(255, 255, 255, 0.65); - --code-bg: rgba(255, 255, 255, 0.08); - --pre-bg: rgba(255, 255, 255, 0.05); - --link: #ff7800; - --scrollbar: rgba(255, 255, 255, 0.2); -} - -/* Light theme — brand red for links, cream-white background, dark-brown text */ -[data-theme="light"] { - --bg: #ffffff; - --fg: #322d28; - --border: rgba(238, 238, 245, 1); - --border-strong: rgba(50, 45, 40, 0.15); - --border-hover: rgba(250, 60, 50, 0.4); - --surface: #f7f7fa; - --surface-hover: rgba(50, 45, 40, 0.05); - --muted: #6b6560; - --muted-fg: rgba(50, 45, 40, 0.5); - --code-bg: rgba(238, 238, 245, 1); - --pre-bg: rgba(238, 238, 245, 0.6); - --link: #fa3c32; - --scrollbar: rgba(50, 45, 40, 0.2); -} - -/* Pagefind search UI — library-owned variables, kept from v0.40.0 config */ -:root { - --pagefind-ui-text: var(--fg) !important; - --pagefind-ui-font: 'Open Sans', sans-serif !important; - --pagefind-ui-background: var(--bg) !important; - --pagefind-ui-border: var(--border) !important; - --pagefind-ui-scale: 0.9 !important; -}