From 814eefdf6dae90f8a1783c61e123b3b45cfc7ce5 Mon Sep 17 00:00:00 2001 From: Zhafron Date: Wed, 4 Nov 2026 08:27:16 +0700 Subject: [PATCH 1/2] feat(site): add marketing landing page and generated docs site Zhafron asked for a site that sells the outcome instead of reading like a spec, with a living memory animation. The landing uses benefit-led copy, a lazy canvas memory constellation, and real web UI screenshots. Docs are generated from README.md and .github/i18n at build time; the build fails when a README heading or config option is not mapped. Proof: local build plus check-dist pass; Lighthouse mobile on landing, docs index and a config page scores 100 in all four categories with landing LCP 0.90 s and docs LCP 0.75 s. The npm files field is unchanged and the Pages workflow only triggers on site paths, so releases and the package stay as is. --- .github/workflows/site.yml | 78 + .prettierignore | 3 + eslint.config.js | 3 + site/.gitignore | 7 + site/astro.config.mjs | 51 + site/bun.lock | 724 ++++++++ site/docs-map.json | 150 ++ site/package.json | 18 + site/public/CNAME | 1 + site/public/og.png | Bin 0 -> 85572 bytes site/public/robots.txt | 4 + site/scripts/build-docs.mjs | 239 +++ site/scripts/build-tokens.mjs | 33 + site/scripts/check-dist.mjs | 57 + site/scripts/fetch-numbers.mjs | 47 + site/src/assets/brain.svg | 1 + site/src/assets/ui/ui-profile-dark.png | Bin 0 -> 81505 bytes site/src/assets/ui/ui-profile-light.png | Bin 0 -> 89617 bytes site/src/assets/ui/ui-project-dark.png | Bin 0 -> 95071 bytes site/src/assets/ui/ui-project-light.png | Bin 0 -> 105682 bytes site/src/assets/ui/ui-skills-dark.png | Bin 0 -> 60254 bytes site/src/assets/ui/ui-skills-light.png | Bin 0 -> 66255 bytes site/src/assets/ui/ui-stats-dark.png | Bin 0 -> 83088 bytes site/src/assets/ui/ui-stats-light.png | Bin 0 -> 91274 bytes site/src/components/docs/Head.astro | 7 + site/src/components/docs/SiteTitle.astro | 31 + site/src/components/landing/Closing.astro | 36 + site/src/components/landing/CodeBlock.astro | 20 + site/src/components/landing/Contrast.astro | 48 + site/src/components/landing/Dream.astro | 34 + site/src/components/landing/Faq.astro | 25 + site/src/components/landing/Features.astro | 35 + site/src/components/landing/GraphSvg.astro | 42 + site/src/components/landing/Hero.astro | 61 + site/src/components/landing/HowItWorks.astro | 106 ++ site/src/components/landing/Nav.astro | 50 + site/src/components/landing/Nested.astro | 36 + site/src/components/landing/Privacy.astro | 25 + site/src/components/landing/Proof.astro | 36 + site/src/components/landing/Showcase.astro | 81 + site/src/content.config.ts | 7 + site/src/data/numbers.json | 12 + site/src/i18n/en.ts | 252 +++ site/src/layouts/Landing.astro | 61 + site/src/lib/constellation.ts | 159 ++ site/src/pages/index.astro | 37 + site/src/scripts/landing.ts | 63 + site/src/scripts/memory-field.ts | 524 ++++++ site/src/styles/docs.css | 60 + site/src/styles/fonts.css | 29 + site/src/styles/landing.css | 1550 ++++++++++++++++++ 51 files changed, 4843 insertions(+) create mode 100644 .github/workflows/site.yml create mode 100644 site/.gitignore create mode 100644 site/astro.config.mjs create mode 100644 site/bun.lock create mode 100644 site/docs-map.json create mode 100644 site/package.json create mode 100644 site/public/CNAME create mode 100644 site/public/og.png create mode 100644 site/public/robots.txt create mode 100644 site/scripts/build-docs.mjs create mode 100644 site/scripts/build-tokens.mjs create mode 100644 site/scripts/check-dist.mjs create mode 100644 site/scripts/fetch-numbers.mjs create mode 100644 site/src/assets/brain.svg create mode 100644 site/src/assets/ui/ui-profile-dark.png create mode 100644 site/src/assets/ui/ui-profile-light.png create mode 100644 site/src/assets/ui/ui-project-dark.png create mode 100644 site/src/assets/ui/ui-project-light.png create mode 100644 site/src/assets/ui/ui-skills-dark.png create mode 100644 site/src/assets/ui/ui-skills-light.png create mode 100644 site/src/assets/ui/ui-stats-dark.png create mode 100644 site/src/assets/ui/ui-stats-light.png create mode 100644 site/src/components/docs/Head.astro create mode 100644 site/src/components/docs/SiteTitle.astro create mode 100644 site/src/components/landing/Closing.astro create mode 100644 site/src/components/landing/CodeBlock.astro create mode 100644 site/src/components/landing/Contrast.astro create mode 100644 site/src/components/landing/Dream.astro create mode 100644 site/src/components/landing/Faq.astro create mode 100644 site/src/components/landing/Features.astro create mode 100644 site/src/components/landing/GraphSvg.astro create mode 100644 site/src/components/landing/Hero.astro create mode 100644 site/src/components/landing/HowItWorks.astro create mode 100644 site/src/components/landing/Nav.astro create mode 100644 site/src/components/landing/Nested.astro create mode 100644 site/src/components/landing/Privacy.astro create mode 100644 site/src/components/landing/Proof.astro create mode 100644 site/src/components/landing/Showcase.astro create mode 100644 site/src/content.config.ts create mode 100644 site/src/data/numbers.json create mode 100644 site/src/i18n/en.ts create mode 100644 site/src/layouts/Landing.astro create mode 100644 site/src/lib/constellation.ts create mode 100644 site/src/pages/index.astro create mode 100644 site/src/scripts/landing.ts create mode 100644 site/src/scripts/memory-field.ts create mode 100644 site/src/styles/docs.css create mode 100644 site/src/styles/fonts.css create mode 100644 site/src/styles/landing.css diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml new file mode 100644 index 00000000..b85d31d1 --- /dev/null +++ b/.github/workflows/site.yml @@ -0,0 +1,78 @@ +name: Site + +on: + push: + branches: + - main + paths: + - "site/**" + - "README.md" + - ".github/i18n/**" + - "web/src/app.css" + - "web/public/favicon.*" + - ".github/workflows/site.yml" + pull_request: + paths: + - "site/**" + - "README.md" + - ".github/i18n/**" + - "web/src/app.css" + - "web/public/favicon.*" + - ".github/workflows/site.yml" + schedule: + - cron: "17 3 * * *" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: site-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: build + runs-on: ubuntu-26.04 + steps: + - uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - uses: oven-sh/setup-bun@v2 + + - name: Install site dependencies + working-directory: site + run: bun install --frozen-lockfile + + - name: Build site + working-directory: site + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: bun run build + + - name: Check build output + working-directory: site + run: node scripts/check-dist.mjs + + - uses: actions/upload-pages-artifact@v5 + with: + path: site/dist + + deploy: + name: deploy + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' && github.repository == 'tickernelz/opencode-mem' + needs: build + runs-on: ubuntu-26.04 + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + concurrency: + group: pages + cancel-in-progress: false + steps: + - id: deployment + uses: actions/deploy-pages@v5 diff --git a/.prettierignore b/.prettierignore index baf94ba2..5ac02d1b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,3 +10,6 @@ yarn.lock .github *.min.js *.min.css +site/.astro +site/src/content/docs +site/src/generated diff --git a/eslint.config.js b/eslint.config.js index 7368140f..4015e109 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -10,6 +10,9 @@ export default ts.config( "dist/**", "node_modules/**", "out/**", + "site/.astro/**", + "site/dist/**", + "site/node_modules/**", "web/dist/**", "web/node_modules/**", ], diff --git a/site/.gitignore b/site/.gitignore new file mode 100644 index 00000000..157667e6 --- /dev/null +++ b/site/.gitignore @@ -0,0 +1,7 @@ +node_modules +dist +.astro +src/generated +src/content/docs +public/favicon.svg +public/favicon.ico diff --git a/site/astro.config.mjs b/site/astro.config.mjs new file mode 100644 index 00000000..4913ea28 --- /dev/null +++ b/site/astro.config.mjs @@ -0,0 +1,51 @@ +import { readFileSync } from "node:fs"; +import starlight from "@astrojs/starlight"; +import { defineConfig } from "astro/config"; + +const map = JSON.parse(readFileSync(new URL("./docs-map.json", import.meta.url), "utf8")); +const groups = [...new Set(map.pages.map((page) => page.group))]; +const sidebar = groups.map((label) => ({ + label, + items: map.pages + .filter((page) => page.group === label) + .map((page) => ({ slug: page.slug ? `docs/${page.slug}` : "docs" })), +})); + +export default defineConfig({ + site: "https://opencode-mem.zhafron.my.id", + base: "/", + trailingSlash: "always", + integrations: [ + starlight({ + title: "opencode-mem", + description: + "Long-term memory for OpenCode agents. Docs generated from the opencode-mem README.", + logo: { src: "./src/assets/brain.svg", alt: "" }, + favicon: "/favicon.svg", + social: [{ icon: "github", label: "GitHub", href: map.repository }], + defaultLocale: "root", + locales: { + root: { label: "English", lang: "en" }, + de: { label: "Deutsch", lang: "de" }, + zh: { label: "简体中文", lang: "zh-CN" }, + ar: { label: "العربية", lang: "ar", dir: "rtl" }, + tr: { label: "Türkçe", lang: "tr" }, + nl: { label: "Nederlands", lang: "nl" }, + }, + sidebar, + lastUpdated: true, + customCss: ["./src/generated/tokens.css", "./src/styles/fonts.css", "./src/styles/docs.css"], + components: { + Head: "./src/components/docs/Head.astro", + SiteTitle: "./src/components/docs/SiteTitle.astro", + }, + head: [ + { tag: "link", attrs: { rel: "icon", href: "/favicon.ico", sizes: "32x32" } }, + { + tag: "meta", + attrs: { property: "og:image", content: "https://opencode-mem.zhafron.my.id/og.png" }, + }, + ], + }), + ], +}); diff --git a/site/bun.lock b/site/bun.lock new file mode 100644 index 00000000..3e4dfa69 --- /dev/null +++ b/site/bun.lock @@ -0,0 +1,724 @@ +{ + "lockfileVersion": 2, + "configVersion": 1, + "workspaces": { + "": { + "name": "opencode-mem-site", + "dependencies": { + "@astrojs/starlight": "0.42.8", + "@fontsource-variable/bricolage-grotesque": "5.3.0", + "@fontsource-variable/jetbrains-mono": "5.3.0", + "astro": "7.4.5", + "github-slugger": "2.0.0", + "sharp": "0.35.5", + }, + }, + }, + "packages": { + "@astrojs/compiler-binding": ["@astrojs/compiler-binding@0.5.2", "", { "optionalDependencies": { "@astrojs/compiler-binding-android-arm64": "0.5.2", "@astrojs/compiler-binding-darwin-arm64": "0.5.2", "@astrojs/compiler-binding-darwin-x64": "0.5.2", "@astrojs/compiler-binding-linux-arm64-gnu": "0.5.2", "@astrojs/compiler-binding-linux-arm64-musl": "0.5.2", "@astrojs/compiler-binding-linux-x64-gnu": "0.5.2", "@astrojs/compiler-binding-linux-x64-musl": "0.5.2", "@astrojs/compiler-binding-wasm32-wasi": "0.5.2", "@astrojs/compiler-binding-win32-arm64-msvc": "0.5.2", "@astrojs/compiler-binding-win32-x64-msvc": "0.5.2" } }, "sha512-lEn76+0JcMQ5RDXU0wSMWJg2ZppiZvSULpghC29cfv4o9bhvWFDbQjsCtvjjXN9iVLFQ7fL3wTR2L2UU13mP8g=="], + + "@astrojs/compiler-binding-android-arm64": ["@astrojs/compiler-binding-android-arm64@0.5.2", "", { "os": "android", "cpu": "arm64" }, "sha512-kckIxon6Rm/Bxzh9mGPYpRRqUbToUQoHptCmpMmE+Yt0Xumq8CqrKUidyYhrBsrHVO7bxuRzzWUUqvpf+iYceQ=="], + + "@astrojs/compiler-binding-darwin-arm64": ["@astrojs/compiler-binding-darwin-arm64@0.5.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-1ZG5Ar3dD8HtodX9XH1mRmE0qBXZlvjYXSFfpgFwocqfWnvhFuqtGUNseL8wgfImiRMztIjpQqlogQFQQtgiag=="], + + "@astrojs/compiler-binding-darwin-x64": ["@astrojs/compiler-binding-darwin-x64@0.5.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-+kl35S7hiHJ2cb7eujwEsPFYYuSgE11uEE2Z20lAJ+undpgulMcW+weQqFPOSSZccEKHOiLIY+kQHkb4e4092w=="], + + "@astrojs/compiler-binding-linux-arm64-gnu": ["@astrojs/compiler-binding-linux-arm64-gnu@0.5.2", "", { "os": "linux", "cpu": "arm64", "libc": "glibc" }, "sha512-BqlR0EHNQLPLwgL9+xogjsAc7zGf0cHho2CPdhv0P1yqbVMwGVaGAqrANP6VYAXCqSC43AF4Czcxc2n+oqdesg=="], + + "@astrojs/compiler-binding-linux-arm64-musl": ["@astrojs/compiler-binding-linux-arm64-musl@0.5.2", "", { "os": "linux", "cpu": "arm64", "libc": "musl" }, "sha512-GRGyby3AZWw5d6JQzidyxPyvGgHWsSusrpgKyFVpDTKctABF7L3Pd5V1cRJbV36/rcu+Eh292/wL7pF7MkmGkQ=="], + + "@astrojs/compiler-binding-linux-x64-gnu": ["@astrojs/compiler-binding-linux-x64-gnu@0.5.2", "", { "os": "linux", "cpu": "x64", "libc": "glibc" }, "sha512-9XAqGTMQAtIslMsjK3xdyY6OI9d59OZqcLBB6pvD/DcoR0daYswfrKx2azdDERDY4AqAnWPC7odVM1BmxYv3Vw=="], + + "@astrojs/compiler-binding-linux-x64-musl": ["@astrojs/compiler-binding-linux-x64-musl@0.5.2", "", { "os": "linux", "cpu": "x64", "libc": "musl" }, "sha512-jOViewGeTh9bSfS8vK72ECxoy2yvmA+Pd/ZcEvBI5c7+7IcfHwZ5qA4L9fRYuOhSrAifvQ2dV4vm1XAtloaWBw=="], + + "@astrojs/compiler-binding-wasm32-wasi": ["@astrojs/compiler-binding-wasm32-wasi@0.5.2", "", { "dependencies": { "@emnapi/core": "1.11.3", "@emnapi/runtime": "1.11.3", "@napi-rs/wasm-runtime": "^1.2.5" }, "cpu": "none" }, "sha512-Z7p64doar1uvR5C9Xs6j1CV9lGlPVQX7OQ2aAtZ/xKC5aGS6GB13nyc2UfQXTQLvZrvVwsyaflTQy6ziY5Bekw=="], + + "@astrojs/compiler-binding-win32-arm64-msvc": ["@astrojs/compiler-binding-win32-arm64-msvc@0.5.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Tr13bh+ahTWsjXjzctK7pFpWV+dUU4FtBfETlR7gO+ueex0F+RDch7eRr0YfKysaRhk9tWm14lsCJ5uWyFPNHQ=="], + + "@astrojs/compiler-binding-win32-x64-msvc": ["@astrojs/compiler-binding-win32-x64-msvc@0.5.2", "", { "os": "win32", "cpu": "x64" }, "sha512-SfKkI+jOQYLh6wojPvVPV0lFfQnxisweN9B+qCzRvZp7DHAuGif8Y0WcC5PUgN4jb8VKy57LggQDtggR46Du1g=="], + + "@astrojs/compiler-rs": ["@astrojs/compiler-rs@0.5.2", "", { "dependencies": { "@astrojs/compiler-binding": "0.5.2" } }, "sha512-IvwYLB8t1M86rKO4oPdBi9GP4gzXcgrVlNgocjwos1jeeUuEIV8d9Crn1PvYD/5IKteWOxpIHomf7e8iYlkE+Q=="], + + "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.13.0", "", { "dependencies": { "@types/hast": "^3.0.5", "@types/mdast": "^4.0.4", "picomatch": "^4.0.7", "retext-smartypants": "^6.2.0", "shiki": "^4.5.0", "smol-toml": "^1.9.1", "unified": "^11.0.5", "yaml": "^2.9.1" } }, "sha512-20jxQqnSmpskcGyad7N5l6Xf1gz0UCa6lNde44bEBdaXGpncEYfAZJ142r2ZgzBaG4dUyzGmhqZWv1INU2eiHQ=="], + + "@astrojs/markdown-satteri": ["@astrojs/markdown-satteri@0.4.6", "", { "dependencies": { "@astrojs/internal-helpers": "0.13.0", "@astrojs/prism": "4.1.2", "github-slugger": "^2.0.0", "satteri": "^0.10.5" } }, "sha512-6biKp2lEAYycF3jhv91br+Otyf4EgDFkF1oRL9ks0u/m/YRGmI7XkGQ2MgaM35DslT03f7NtozKtlqfBNkp6bw=="], + + "@astrojs/mdx": ["@astrojs/mdx@8.1.2", "", { "dependencies": { "@astrojs/internal-helpers": "0.13.0", "@astrojs/markdown-satteri": "0.4.6", "es-module-lexer": "^3.0.3" }, "peerDependencies": { "@astrojs/markdown-remark": "^7.3.0", "astro": "^7.2.10" }, "optionalPeers": ["@astrojs/markdown-remark"] }, "sha512-ZIUVfosVtK4SKcFrGOH+1+HwG0encjxQOxu76M9VuTqeQNZWQ//2eY2Iz+W1eq87AOT5JD4wOHyZ8xFwlcFteg=="], + + "@astrojs/prism": ["@astrojs/prism@4.1.2", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-jMrUEpFDarDO1KWPvVc9eSa8DSfwBlwEOHwX+8zvZQpiqXRGDxFnOXHsYqV6DP7w+0qIgTr98gS1GdQlm8ypWg=="], + + "@astrojs/sitemap": ["@astrojs/sitemap@3.7.4", "", { "dependencies": { "sitemap": "^9.0.0", "zod": "^4.3.6" } }, "sha512-LbKNC24bdUWcQf/pThB6qLlSqHojxGjZDURIzFocY8rlWnAn2t74nnhnK6S5x0NHriHoAduLEpVjRykmeGiVvA=="], + + "@astrojs/starlight": ["@astrojs/starlight@0.42.8", "", { "dependencies": { "@astrojs/markdown-satteri": "^0.4.0", "@astrojs/mdx": "^8.0.0", "@astrojs/sitemap": "^3.7.3", "@pagefind/default-ui": "^1.3.0", "@types/hast": "^3.0.5", "@types/js-yaml": "^4.0.9", "@types/mdast": "^4.0.4", "astro-expressive-code": "^0.44.0", "bcp-47": "^2.1.0", "hast-util-format": "^1.1.0", "hast-util-select": "^6.0.4", "hast-util-to-html": "^9.0.5", "hast-util-to-string": "^3.0.1", "hastscript": "^9.0.1", "i18next": "^26.0.7", "js-yaml": "^4.1.1", "klona": "^2.0.6", "magic-string": "^1.2.3", "mdast-util-directive": "^3.1.0", "mdast-util-to-markdown": "^2.1.2", "mdast-util-to-string": "^4.0.0", "pagefind": "^1.5.2", "remark-directive": "^4.0.0", "satteri": "^0.10.3", "ultrahtml": "^1.6.0", "unified": "^11.0.5", "unist-util-visit": "^5.1.0", "vfile": "^6.0.3" }, "peerDependencies": { "@astrojs/markdown-remark": "^7.3.0", "astro": "^7.2.10" }, "optionalPeers": ["@astrojs/markdown-remark"] }, "sha512-BGP8bmTbdky4OFCV9BNWZedLuzONyUtz754q+hie+li/2TQ5XJ6nvfO8fhRhIMcCpUEsA5Ynf4qTTFf/ft/3Pg=="], + + "@astrojs/telemetry": ["@astrojs/telemetry@3.4.2", "", { "dependencies": { "ci-info": "^4.4.0", "dset": "^3.1.4", "is-docker": "^4.0.0", "package-manager-detector": "^1.9.0" } }, "sha512-2JOMRUxJrBSfiVDfeKLv1wBmvSIx1Y6u2YEO8awZ9qSq3u/rNAiUyFdOYi8dHv91kHrmYEQX7pRDw0J4xyj3UA=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.11", "", {}, "sha512-snZbO7MEDOof+hvNa97EjEY7qD7h2kwvQr5AJC3ZhQudKW5dnej6k3kP9NQV88hJwaS8vDqRLFo9rivLEhle2g=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + + "@babel/parser": ["@babel/parser@7.29.12", "", { "dependencies": { "@babel/types": "^7.29.11" }, "bin": "./bin/babel-parser.js" }, "sha512-WJ7JBp/Q4+z/ImydtI7jS6NVco5++632ExBemSX+Ysb+G1lCwQ5BVo3SY+jGGOcZXI4ZccbZSUSJLNBW6eEpJg=="], + + "@babel/types": ["@babel/types@7.29.11", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.11", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ=="], + + "@bruits/satteri-darwin-arm64": ["@bruits/satteri-darwin-arm64@0.10.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-27KTVl4TJkVahMy/ohyA7qd4938G5UNneFUz/PsScYfpIhj0IVAS23mpcJXdPF44sa6nva198lmV/cKIb2YPyA=="], + + "@bruits/satteri-darwin-x64": ["@bruits/satteri-darwin-x64@0.10.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-IjnLe3nKspq6qaeqGgjT7MT8VrTV74yWRlaag7ZdNsI8TDAYZ0iPxMCo+9KQZHUk5EyVB+reBI/PFWL5KuFw9Q=="], + + "@bruits/satteri-linux-arm64-gnu": ["@bruits/satteri-linux-arm64-gnu@0.10.5", "", { "os": "linux", "cpu": "arm64", "libc": "glibc" }, "sha512-glkYXZCJywjP13v67eAyAMSJdF+ncvEbYvgi/wOtffL9tQ27lr/zsyzUfgs+ovjJ9d8JNQKiXeiArJcX8PJL9w=="], + + "@bruits/satteri-linux-arm64-musl": ["@bruits/satteri-linux-arm64-musl@0.10.5", "", { "os": "linux", "cpu": "arm64", "libc": "musl" }, "sha512-yWdgG1g17Nh2QyGVlFUxGRa3FEFwiMcpZEyMNWkbM3deC94cmVc+/i9OuyFpdKuWo3GkgoCtYVOoxk1uCnCZIA=="], + + "@bruits/satteri-linux-x64-gnu": ["@bruits/satteri-linux-x64-gnu@0.10.5", "", { "os": "linux", "cpu": "x64", "libc": "glibc" }, "sha512-FVaLoPT1fBgGl0J+AYebyyXJYBachGl8Oyyrf1lye4RTqCB4S0Gwkj1uM9RJyThUOvx5VUmAT1CnNh1SFHA+kw=="], + + "@bruits/satteri-linux-x64-musl": ["@bruits/satteri-linux-x64-musl@0.10.5", "", { "os": "linux", "cpu": "x64", "libc": "musl" }, "sha512-EHpVAx2bqW3GINHTKkljtxVfQmVDGWIuwOYOP5YghTj+0PkBa2o8oKPRtQ9Kbsr1Fye8jtUcDjhwj2jMNugZKg=="], + + "@bruits/satteri-wasm32-wasi": ["@bruits/satteri-wasm32-wasi@0.10.5", "", { "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.2.3" }, "cpu": "none" }, "sha512-ypz8c/Zmipxp4IoeDa228Gstv6TLzVmNs3yC6wKCoNSOjx1iwpgzu87Y3hTkXFdwChVGU85qeUDuOIarGUZQLw=="], + + "@bruits/satteri-win32-arm64-msvc": ["@bruits/satteri-win32-arm64-msvc@0.10.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-siTV88nb0LRqNpkL2gXboqCwVdq95sLtzMHS1/3eONV2gLbB3NAK46wmSMvCO/yquBvI2lvaFIfd8P12ecsxBw=="], + + "@bruits/satteri-win32-x64-msvc": ["@bruits/satteri-win32-x64-msvc@0.10.5", "", { "os": "win32", "cpu": "x64" }, "sha512-C3IfPvfvMXmlzBxaMPKFS1XiuV9pu2mC7YqkPk7PSvTgPZ8gbdASIpHpztDLvTTQjqZ0z1Ol8tK5X+V6XXC0wQ=="], + + "@capsizecss/unpack": ["@capsizecss/unpack@4.0.1", "", { "dependencies": { "fontkitten": "^1.0.3" } }, "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ=="], + + "@clack/core": ["@clack/core@1.5.1", "", { "dependencies": { "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-iHTrHA8MtVuLl2TfZySmcKv1qO2PoyC9Z7pfSDozEuV5vtY3/wcOPKJXlqJ5Oq2Cx5DDGQGAMVx6HZfRRoVEbQ=="], + + "@clack/prompts": ["@clack/prompts@1.8.1", "", { "dependencies": { "@clack/core": "1.5.1", "fast-string-width": "^3.0.2", "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ=="], + + "@ctrl/tinycolor": ["@ctrl/tinycolor@4.2.2", "", {}, "sha512-9rQHijqB2Rq6qOEC/xHaA6aPlsKGi5kmCQW50O1asn9g63XFeD5NmBwysriistW5Xx0JPafyD/TA7yk2S3pXGQ=="], + + "@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], + + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], + + "@expressive-code/core": ["@expressive-code/core@0.44.3", "", { "dependencies": { "@ctrl/tinycolor": "^4.0.4", "hast-util-select": "^6.0.2", "hast-util-to-html": "^9.0.1", "hast-util-to-text": "^4.0.1", "hastscript": "^9.0.0", "postcss": "^8.4.38", "postcss-nested": "^7.0.2", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1" } }, "sha512-pffktF0TJoxC08dgNcutl/0LcSnTrjF6vXR39qVpwZ0EyxpwO9zjI7dbni6sO7w3yHpRBO0voLFvhzB+EPJRsA=="], + + "@expressive-code/plugin-frames": ["@expressive-code/plugin-frames@0.44.3", "", { "dependencies": { "@expressive-code/core": "^0.44.3" } }, "sha512-ysW4VXk9vXEliA99Ur6ApUepVtx74sPolp6o/j45BRjZQoL5O6kXKMhSP4koQLih8HbC5B3ImIvO+HKKhkv/oA=="], + + "@expressive-code/plugin-shiki": ["@expressive-code/plugin-shiki@0.44.3", "", { "dependencies": { "@expressive-code/core": "^0.44.3", "shiki": "^4.0.2" } }, "sha512-jAibAZPG7lDmi61EFJADZjoSZzjHiwZZdbbgR/mTlWXM4ON/Pyo/9tB2vrqQNKylsci6jqtCi6idrwqQXF53xA=="], + + "@expressive-code/plugin-text-markers": ["@expressive-code/plugin-text-markers@0.44.3", "", { "dependencies": { "@expressive-code/core": "^0.44.3" } }, "sha512-4Ae2xRSDV5kdWPsi40xWbOtoihbzM0zLVjQKkDAnD5KzFXl+6/kd+VhuWOlTRVaJ5cqGk++vCbAaf0MR1XbZlw=="], + + "@fontsource-variable/bricolage-grotesque": ["@fontsource-variable/bricolage-grotesque@5.3.0", "", {}, "sha512-TLi9Q4hJjS2UvoTMRSS2nHu6c4R56lAw60NR9QYtVRCHn0XtsFpiEhNffZ8Glsoxu6wEEwLKBP8lb94J52PNBA=="], + + "@fontsource-variable/jetbrains-mono": ["@fontsource-variable/jetbrains-mono@5.3.0", "", {}, "sha512-F32xpS2NsGYoQi2ADSkKTgpJj7ozajsGgDJ8woTnqjmIB+dxDIqImjl4pXZVEExu8UFZ2ndhmX18EBS/hdz3Lw=="], + + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.3.4" }, "os": "darwin", "cpu": "x64" }, "sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw=="], + + "@img/sharp-freebsd-wasm32": ["@img/sharp-freebsd-wasm32@0.35.5", "", { "dependencies": { "@img/sharp-wasm32": "0.35.5" }, "os": "freebsd" }, "sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.3.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.3.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.3.4", "", { "os": "linux", "cpu": "arm", "libc": "glibc" }, "sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.3.4", "", { "os": "linux", "cpu": "arm64", "libc": "glibc" }, "sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.3.4", "", { "os": "linux", "cpu": "ppc64", "libc": "glibc" }, "sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.3.4", "", { "os": "linux", "cpu": "none", "libc": "glibc" }, "sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.3.4", "", { "os": "linux", "cpu": "s390x", "libc": "glibc" }, "sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.3.4", "", { "os": "linux", "cpu": "x64", "libc": "glibc" }, "sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.3.4", "", { "os": "linux", "cpu": "arm64", "libc": "musl" }, "sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.3.4", "", { "os": "linux", "cpu": "x64", "libc": "musl" }, "sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.3.4" }, "os": "linux", "cpu": "arm", "libc": "glibc" }, "sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.3.4" }, "os": "linux", "cpu": "arm64", "libc": "glibc" }, "sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.3.4" }, "os": "linux", "cpu": "ppc64", "libc": "glibc" }, "sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.3.4" }, "os": "linux", "cpu": "none", "libc": "glibc" }, "sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.3.4" }, "os": "linux", "cpu": "s390x", "libc": "glibc" }, "sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.3.4" }, "os": "linux", "cpu": "x64", "libc": "glibc" }, "sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.3.4" }, "os": "linux", "cpu": "arm64", "libc": "musl" }, "sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.35.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.3.4" }, "os": "linux", "cpu": "x64", "libc": "musl" }, "sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.35.5", "", { "dependencies": { "@emnapi/runtime": "^1.11.3" } }, "sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ=="], + + "@img/sharp-webcontainers-wasm32": ["@img/sharp-webcontainers-wasm32@0.35.5", "", { "dependencies": { "@img/sharp-wasm32": "0.35.5" }, "cpu": "none" }, "sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.35.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.35.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.35.5", "", { "os": "win32", "cpu": "x64" }, "sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.6.0", "", {}, "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="], + + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.7", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || 2.0.0-beta.2 || 2.0.0-beta.3", "@emnapi/runtime": "^1.7.1 || 2.0.0-beta.2 || 2.0.0-beta.3" } }, "sha512-zJccwplOAbgfZju95IUHazLnx9RAPtPN2YGJXI6UbrgeaR9QfPjGrQL6ERkSAtnVCA4Q+83ApGyaX5zdpCaKkQ=="], + + "@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="], + + "@oxc-project/types": ["@oxc-project/types@0.156.0", "", {}, "sha512-1Duyg48TdJNdyhEB8Xn1L36bT9Pv6GUtlKjHxOys8xkaF/rQq3XJE+bAurSK/AgIz5mGFsb77cn9Pb20+WCScw=="], + + "@pagefind/darwin-arm64": ["@pagefind/darwin-arm64@1.6.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-611gl64aqN12UcMyKPtZ8+vRWBKlJFSh2JgO8uScxa1Eyjo1dXz9r4wZuRno0yCUE/KN0FauEoKZ3KEwUYHCCg=="], + + "@pagefind/darwin-x64": ["@pagefind/darwin-x64@1.6.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-rd3ZbtuxyYqjASKZAPuIV7eeQQHJ7VYpoNKKG8CvglaD3g30eT5Nb7XGNLYwVReBsCccpkURwrGwWjSwr8nyQQ=="], + + "@pagefind/default-ui": ["@pagefind/default-ui@1.6.0", "", {}, "sha512-Wj93IzlLnaYYrMpOYrsqUerzA7+Vrs5Ri1U78hBh3zuKHNVkcjApNo5DUM99MzAam6f437VGG64jDenAObIt+w=="], + + "@pagefind/freebsd-x64": ["@pagefind/freebsd-x64@1.6.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-d+sXqsaThszmPWGVDSRKqIz9GpZcj/bAksNZfg19asSxU0ogNPOMND4kV4giQvOjPFMsltUFf6hQJfoHQ6+hSQ=="], + + "@pagefind/linux-arm64": ["@pagefind/linux-arm64@1.6.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-SLB2I+XqCZma8NvIGIH8nyKblgKIxw5PmqsVtofWOKxNHhEtOEsddbqU+hsrNcT3EV0faM6UmKDHVIxcPYq29w=="], + + "@pagefind/linux-x64": ["@pagefind/linux-x64@1.6.0", "", { "os": "linux", "cpu": "x64" }, "sha512-IbMSx/+Vr/Xk0TTBlLkjgK+rvnbOXGmmb2/MKxQu99AR5DsqQoV3NKEA9PQz2tAhuCZjeD5xJBp4w5N5DHIC7Q=="], + + "@pagefind/windows-arm64": ["@pagefind/windows-arm64@1.6.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-wUrniW3REr7VWJHz6xE6F/p/AQgHDFpGZiY9sbWT71KfEijDE5Jnc37V8zc7cilV9h/QkwJGXoEP2+ZLwDmhtw=="], + + "@pagefind/windows-x64": ["@pagefind/windows-x64@1.6.0", "", { "os": "win32", "cpu": "x64" }, "sha512-cUA2+yXfbymdJllyMjY5YTBwuOgh0/H53Pn5fYKjDnDjk154Ft4U5RVj3TenWySPL/jG6zJfARUWSlyUyXHlZw=="], + + "@rolldown/binding-android-arm-eabi": ["@rolldown/binding-android-arm-eabi@1.2.16", "", { "os": "android", "cpu": "arm" }, "sha512-ia3DwAs0OsMGS7+IConptSiyk9pEXkOx/AbJ2n/lAGxH3QkWQus1t8d7gnAT38FCU2sQu8lUbeR6AiZFv4JxaA=="], + + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.16", "", { "os": "android", "cpu": "arm64" }, "sha512-kx5wBiMB6E7TEvpl2B9gjLU004BkvEm2Dr941BFjx/SontPwSzNuQUIoVKxHHoSjpFIfHMmcguyLOtyn0hObRg=="], + + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.16", "", { "os": "darwin", "cpu": "arm64" }, "sha512-qslZrXnKJU4cUpjoAmtAo/KQM9e2IRMlmpig6Zpwj+8KWxW8v+nkAf9216Bsek9lOC1jvg2yCjygCFo2f83msQ=="], + + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.16", "", { "os": "darwin", "cpu": "x64" }, "sha512-FdF+y48ND13eAyM2mQn+85kvAqNlvRWROy2rhgA463X/0Gv4vGtazZtfaF1mRBLscYvtOlh4QnLjOWiFzX69OQ=="], + + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.16", "", { "os": "freebsd", "cpu": "x64" }, "sha512-ddjqFM5e95AgLbUPtKIS7V1KTVlA0RUgCVr5mn+/IEhsdy3pr+Vuj/HZ7nlMN2FyxIwUktOH1LEPIQXO1v9y1Q=="], + + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.16", "", { "os": "linux", "cpu": "arm" }, "sha512-tHdKWbFkFBI687iim3LIyIvyL7j66VvQYkDPss5Stn/qyE2tWkR1YD0dXmXPFKKqT/o5ZEJVsaRsWS2meQwGOA=="], + + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.16", "", { "os": "linux", "cpu": "arm64", "libc": "glibc" }, "sha512-FJiLGAblPBMlBEdbOqw6kW6QcXDWAf/oJu7gYs9ZJZwmg+K+/zjFLxPTIY9izJUzxzc24FHvmseyA0IvJSl17w=="], + + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.16", "", { "os": "linux", "cpu": "arm64", "libc": "musl" }, "sha512-hrJpblMsrQ58U9veWpbXzkhV5zStunds6HWLprqq1qauvgBr1E6P+24kLj6lSLI9vjRn/RYpjprhkHQPKGWpNg=="], + + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.16", "", { "os": "linux", "cpu": "ppc64", "libc": "glibc" }, "sha512-qJd/dC6j6CwLG9/s/RP2nb1RZ0GIgj7Ioj7x/SYa3RzjVrlzrmH0fhIOpfvqQDeIsdP0loi+kHaMhJzY1PBIaA=="], + + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.16", "", { "os": "linux", "cpu": "s390x", "libc": "glibc" }, "sha512-Vx7Xg5uUJuNcujJjI70OICaH0EYj80BtOLZTSN7uOYg8QOLlyKnaG0IW7Fn/J0IpJsaKzmDKMhOQv1JBM9m9vg=="], + + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.16", "", { "os": "linux", "cpu": "x64", "libc": "glibc" }, "sha512-TNKhgE3uJTsTzatUSSYt0Kgo+Oa2uSlSjz4r1aEIea7HX6ULBym4fAlYUhG1i6pjNf2njfCUAfKwr6C3E9Xg1w=="], + + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.16", "", { "os": "linux", "cpu": "x64", "libc": "musl" }, "sha512-7chXdpjXZ8qG0+mIxECN3cT9kvhZ3/oZhMX6Pp876P7CDrIy8nJswva6Mq357JR7eYXfuskwZxMeV1SzoZdHrA=="], + + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.16", "", { "os": "none", "cpu": "arm64" }, "sha512-Kwjt+7uNTJK5/MDkGWGVO2KQPnj8yAV75dMpfwyHZrJSXWHrniOB0aUEWlVYf3H1hOqFLIStLdM5QXq6bnKmOQ=="], + + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.16", "", { "os": "win32", "cpu": "arm64" }, "sha512-/LH6WfjDRXXJz/p5xl4TmU+jpcnwcxbKEQBW/GZE0JHfN0lGIyTtsUEGaQ/q/GikkGJ2yLKe6pwm7AnEWO8pdw=="], + + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.16", "", { "os": "win32", "cpu": "x64" }, "sha512-1lv1KvX0Z871zfk7vw+dnXMMnHNyDwMzWG8Kv3HxDXMOhzCX4SHc7HK319fInP0i+0p9D8brkfzL7pJOaGl+tw=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], + + "@shikijs/core": ["@shikijs/core@4.6.0", "", { "dependencies": { "@shikijs/primitive": "4.6.0", "@shikijs/types": "4.6.0", "@shikijs/vscode-textmate": "^10.1.0", "@types/hast": "^3.0.5", "hast-util-to-html": "^9.0.6" } }, "sha512-bfd4OKgvoyXYiYmMRuleA656P4V7M/Du9lcTl38Ngm6KszMj7bq4J1IGZwSYR4c95Tv5UQALtYNWUwaI9UT3xw=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.6.0", "", { "dependencies": { "@shikijs/types": "4.6.0", "@shikijs/vscode-textmate": "^10.1.0", "oniguruma-to-es": "^4.3.6" } }, "sha512-K0oqxFoL+kEMdz89mHLFO15Tsbv3kFZ6WR1cXZKMvLSc+oqaM00A6pyga1qSeXB22dP0tTiSApRcGBaKWsEccg=="], + + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.6.0", "", { "dependencies": { "@shikijs/types": "4.6.0", "@shikijs/vscode-textmate": "^10.1.0" } }, "sha512-aggd6Q7SuJOXNnsUbfG2XesxBJKBMAw/PDTUo9PyRjMaaJJ2dNrI+q0C+25ARXAK9yLHAlwxc9oRT2u68YKZ7w=="], + + "@shikijs/langs": ["@shikijs/langs@4.6.0", "", { "dependencies": { "@shikijs/types": "4.6.0" } }, "sha512-1yMEX3oCVV54LUq/ovfpRkDQoYDkcvjSWFFa/YLUDMiSoRzMi2uxLJYbv41ahT8Lu9lFMaa7hecd3Q39trqUyg=="], + + "@shikijs/primitive": ["@shikijs/primitive@4.6.0", "", { "dependencies": { "@shikijs/types": "4.6.0", "@shikijs/vscode-textmate": "^10.1.0", "@types/hast": "^3.0.5" } }, "sha512-c54+TQEo9ToqgfL/AU8FpjnV09+GA9Oa7M5ROkkXteZfp5XzpAJGXjjvZQFQioJOwm/w/6Z3lIzQstAkl8coag=="], + + "@shikijs/themes": ["@shikijs/themes@4.6.0", "", { "dependencies": { "@shikijs/types": "4.6.0" } }, "sha512-qHAVAs80RiGD+IRuH9G+JPDOEc9A/kHsng4EzCUCwB9bLzW6Z0y9WETh2YyCcADJBmfrIaJ1Jp7KBNP6FHkgtQ=="], + + "@shikijs/types": ["@shikijs/types@4.6.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.1.0", "@types/hast": "^3.0.5" } }, "sha512-+ENG1adsKt/X7cRYw1Nl7BEpBmPOjmQ7bR/eGmHuMlT8gtOFf3KEi5l31DJYyAWhW6Y6bjP1plU7FmaxWGENFw=="], + + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.1.0", "", {}, "sha512-cVBuhDQjBZaNMTwBquYfPydrUP+E3hE6oYGasx8h6ZrODIM7/r+gxLDXdd66oszbrggZHEntdE6j+5gYIVyMWQ=="], + + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.4", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A=="], + + "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], + + "@types/estree": ["@types/estree@1.0.10", "", {}, "sha512-lTyOMnOcmRBzdCv6/4zUZCrEhV0xrqQiUZBZtVcbmLHBXKLnN8q89v/wKRF/Q0HbwVsqbIG3o5HDoFl9sduM+g=="], + + "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + + "@types/hast": ["@types/hast@3.0.5", "", { "dependencies": { "@types/unist": "*" } }, "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g=="], + + "@types/js-yaml": ["@types/js-yaml@4.0.9", "", {}, "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + + "@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="], + + "@types/node": ["@types/node@24.19.2", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-93d49wCWJkCyN87MxLpNN6KXPCwFw7bVUg79mGUV1OS40JGWwVCr8n61DXCSqz7CV6/VfPkb7xec7uP2M+QHWQ=="], + + "@types/sax": ["@types/sax@1.2.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A=="], + + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@ungap/structured-clone": ["@ungap/structured-clone@1.4.0", "", {}, "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ=="], + + "am-i-vibing": ["am-i-vibing@0.5.0", "", { "dependencies": { "process-ancestry": "^0.1.0" }, "bin": { "am-i-vibing": "dist/cli.mjs" } }, "sha512-KLcsDhqf1XRrJmJr+9I/C0EX2K+sGrAGZFgkmd84c8TJO9zJBu+/kFInjazu1KfJWFhWDKdRWkpBzEs7s35DVA=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + + "astro": ["astro@7.4.5", "", { "dependencies": { "@astrojs/compiler-rs": "^0.5.1", "@astrojs/internal-helpers": "0.13.0", "@astrojs/markdown-satteri": "0.4.6", "@astrojs/telemetry": "3.4.2", "@capsizecss/unpack": "^4.0.1", "@clack/prompts": "^1.8.1", "@oslojs/encoding": "^1.1.0", "am-i-vibing": "^0.5.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^2.0.1", "devalue": "^6.0.2", "diff": "^9.0.0", "dset": "^3.1.4", "es-module-lexer": "^3.0.3", "flattie": "^1.1.1", "fontace": "~0.4.1", "get-tsconfig": "5.0.0-beta.6", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.3.0", "jsonc-parser": "^3.3.1", "magic-string": "^1.4.3", "magicast": "^0.5.5", "mrmime": "^2.0.1", "neotraverse": "^1.0.1", "obug": "^3.0.0", "p-limit": "^7.3.3", "p-queue": "^9.3.5", "package-manager-detector": "^1.9.0", "piccolore": "^0.1.3", "picomatch": "^4.0.7", "rolldown": "^1.2.14", "shiki": "^4.5.0", "smol-toml": "^1.9.1", "svgo": "^4.1.0", "tinyclip": "^1.0.3", "tinyexec": "^1.3.1", "tinyglobby": "^0.2.17", "tinyps": "^0.5.0", "ultrahtml": "^1.7.0", "unifont": "^1.0.3", "unstorage": "^1.17.5", "verkit": "^0.5.0", "vite": "^8.3.5", "vitefu": "^1.1.3", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.6.6" }, "optionalDependencies": { "sharp": "^0.35.4" }, "peerDependencies": { "@astrojs/markdown-remark": "^7.3.0" }, "optionalPeers": ["@astrojs/markdown-remark"], "bin": { "astro": "./bin/astro.mjs" } }, "sha512-n5lET11/qnrOWn4wNpXxD9g2VKkTIa162hHgrkMPChMQC5q/xh2lY2OerK5mpsEAFCNmXsYA7NISE+9Uo7Cxxg=="], + + "astro-expressive-code": ["astro-expressive-code@0.44.3", "", { "dependencies": { "rehype-expressive-code": "^0.44.3", "url-extras": "^0.1.0" }, "peerDependencies": { "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta || ^7.0.0" } }, "sha512-LUpQmmvzr90JXP5QIAopgdjlOKLuT3x0wlPAUpc4OZtPtFS8sbflPcGPpL/lG3pQuUCQV2CXUFgYNBYNu9tphA=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + + "bcp-47": ["bcp-47@2.1.2", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-wsv86UuNFuPnVieKLyECTT+CP1WSAHeoIg5P3xu2kA9Z+7fVPoKt7dxzSeEhtJel0AI+NW3fIW3KtTKQKUCngg=="], + + "bcp-47-match": ["bcp-47-match@2.0.3", "", {}, "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ=="], + + "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], + + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="], + + "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], + + "ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + + "commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], + + "common-ancestor-path": ["common-ancestor-path@2.0.0", "", {}, "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng=="], + + "cookie": ["cookie@2.0.1", "", {}, "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w=="], + + "cookie-es": ["cookie-es@1.2.3", "", {}, "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw=="], + + "crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="], + + "css-select": ["css-select@6.0.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^7.0.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "nth-check": "^2.1.1" } }, "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw=="], + + "css-selector-parser": ["css-selector-parser@3.3.0", "", {}, "sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g=="], + + "css-tree": ["css-tree@3.2.1", "", { "dependencies": { "mdn-data": "2.27.1", "source-map-js": "^1.2.1" } }, "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA=="], + + "css-what": ["css-what@7.0.0", "", {}, "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ=="], + + "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], + + "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="], + + "defu": ["defu@6.1.7", "", {}, "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "devalue": ["devalue@6.0.3", "", {}, "sha512-3woMEITftG1wKeO/4d/QXH1DVKctTSZg3jNGPpjp9hNr5Hos8MCFF5McTML5ZtgKDObm2R591B0spRp2IVernA=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "diff": ["diff@9.0.0", "", {}, "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw=="], + + "direction": ["direction@2.0.1", "", { "bin": { "direction": "cli.js" } }, "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA=="], + + "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], + + "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], + + "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], + + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], + + "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], + + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "es-module-lexer": ["es-module-lexer@3.0.4", "", {}, "sha512-BldNY5mwkVu+cQ5Ymn3e6hB9Sx8XHx4ZevWbiUyZbfKxJxYO27Hf0wfzkxIaD5CAJMaGl3YspKELj0ff/7nCMA=="], + + "eventemitter3": ["eventemitter3@5.0.4", "", {}, "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw=="], + + "expressive-code": ["expressive-code@0.44.3", "", { "dependencies": { "@expressive-code/core": "^0.44.3", "@expressive-code/plugin-frames": "^0.44.3", "@expressive-code/plugin-shiki": "^0.44.3", "@expressive-code/plugin-text-markers": "^0.44.3" } }, "sha512-7RGslhJTNt01pdn5I3QmVh5C8ZIiSm0A+ORQ9j9r39oOgJVKjn/7dXl9rMT/SqmFLE6pJkTYI7UjW0BxJnW7OQ=="], + + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "fast-string-truncated-width": ["fast-string-truncated-width@3.0.3", "", {}, "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g=="], + + "fast-string-width": ["fast-string-width@3.0.2", "", { "dependencies": { "fast-string-truncated-width": "^3.0.2" } }, "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg=="], + + "fast-wrap-ansi": ["fast-wrap-ansi@0.2.2", "", { "dependencies": { "fast-string-width": "^3.0.2" } }, "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="], + + "fnv1a-64": ["fnv1a-64@0.1.2", "", {}, "sha512-mJbcILTPybAR1jdOwt/lVv8N2cffeJFFP+gVbSAwLEx1ujXH27RpPd8Rokec/KX9c76UYIB6Co+H4lQzxPnJfA=="], + + "fontace": ["fontace@0.4.1", "", { "dependencies": { "fontkitten": "^1.0.2" } }, "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw=="], + + "fontkitten": ["fontkitten@1.0.3", "", { "dependencies": { "tiny-inflate": "^1.0.3" } }, "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin", "hasInstallScript": true }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "get-tsconfig": ["get-tsconfig@5.0.0-beta.6", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw=="], + + "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], + + "h3": ["h3@1.15.11", "", { "dependencies": { "cookie-es": "^1.2.3", "crossws": "^0.3.5", "defu": "^6.1.6", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.4", "radix3": "^1.1.2", "ufo": "^1.6.3", "uncrypto": "^0.1.3" } }, "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg=="], + + "hast-util-embedded": ["hast-util-embedded@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-is-element": "^3.0.0" } }, "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA=="], + + "hast-util-format": ["hast-util-format@1.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-minify-whitespace": "^1.0.0", "hast-util-phrasing": "^3.0.0", "hast-util-whitespace": "^3.0.0", "html-whitespace-sensitive-tag-names": "^3.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA=="], + + "hast-util-has-property": ["hast-util-has-property@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA=="], + + "hast-util-is-body-ok-link": ["hast-util-is-body-ok-link@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ=="], + + "hast-util-is-element": ["hast-util-is-element@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g=="], + + "hast-util-minify-whitespace": ["hast-util-minify-whitespace@1.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-is-element": "^3.0.0", "hast-util-whitespace": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw=="], + + "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], + + "hast-util-phrasing": ["hast-util-phrasing@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-has-property": "^3.0.0", "hast-util-is-body-ok-link": "^3.0.0", "hast-util-is-element": "^3.0.0" } }, "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ=="], + + "hast-util-select": ["hast-util-select@6.0.4", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "bcp-47-match": "^2.0.0", "comma-separated-tokens": "^2.0.0", "css-selector-parser": "^3.0.0", "devlop": "^1.0.0", "direction": "^2.0.0", "hast-util-has-property": "^3.0.0", "hast-util-to-string": "^3.0.0", "hast-util-whitespace": "^3.0.0", "nth-check": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.6", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-1SZUxCN3TtJAE7e2BQN2MBHsoZ1gnmi9GoCP5Di59CSWptIezSAW09yDZyVbanb78V9eCwrKqdQsjtfVTxYHWA=="], + + "hast-util-to-string": ["hast-util-to-string@3.0.1", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A=="], + + "hast-util-to-text": ["hast-util-to-text@4.0.3", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-5yrlWOvGFs6CqHriUpSsNrjzT/Tdo+IOQudbznxOn8K5qblp18MJyzOg8IgDOKQ8MYgQcJA7SusuCjSpDr8mSA=="], + + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "hastscript": ["hastscript@9.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-1ALZXSmCGmW3h8AMz4R4+QKSKFi7sNgXLVwmwB8FYVtl1CwQ3WDkSAEY/d5tp1g/vbQgq2s1WlHgfO3jbw1TsA=="], + + "html-escaper": ["html-escaper@3.0.3", "", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="], + + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + + "html-whitespace-sensitive-tag-names": ["html-whitespace-sensitive-tag-names@3.0.1", "", {}, "sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA=="], + + "http-cache-semantics": ["http-cache-semantics@4.3.0", "", {}, "sha512-M5t5LlJpS1UHMjvwRQVdFHvPISGeLAxNcrWuJkeGh0KxsqCHZ1O3NXZU/8x7cD0BDcGW8kapxMKTvwlqrNkHkA=="], + + "i18next": ["i18next@26.7.1", "", { "peerDependencies": { "typescript": "^5 || ^6 || ^7" }, "optionalPeers": ["typescript"] }, "sha512-cX+3RRVczel/V2kCMTACckSGSpqgtWYEA6beXNYVms7dOQiHojdPYHD26lT4IKimNeoGWrLvtPgjftbRvmZJVw=="], + + "iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], + + "is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="], + + "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="], + + "is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="], + + "is-docker": ["is-docker@4.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA=="], + + "is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + + "js-yaml": ["js-yaml@4.3.2", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA=="], + + "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], + + "klona": ["klona@2.0.6", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="], + + "lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64", "libc": "glibc" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64", "libc": "musl" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64", "libc": "glibc" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64", "libc": "musl" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="], + + "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], + + "lru-cache": ["lru-cache@11.5.3", "", {}, "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg=="], + + "magic-string": ["magic-string@1.4.5", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.6.0" } }, "sha512-oLLC2+YvQUfAa+vxoufE/yc1icb87M9iXIRqAoR/2EhE/8cb3SF/+Gi0c2By1B+5Vz2e2vQtUvHiu1+63Znh+w=="], + + "magicast": ["magicast@0.5.5", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "source-map-js": "^1.2.1" } }, "sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA=="], + + "mdast-util-directive": ["mdast-util-directive@3.2.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.2.0", "micromark-util-character": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0" } }, "sha512-Yxq+hH4pBEmtaLIJyMVcNbtBiCIKzdOK3HvDeM+JAqC8XVAT1e5PUYbHBpwFvQLIJuJfO2zCu7aNUXWoyZLmhw=="], + + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-KRLgmPaP2H1ul2bpoJkOS+9pAcDAAj9Nu1mqLnh8NLeJG5tlvj42TH80PIGBpROWlRXLk0lDrWNuZCFy/tsB4A=="], + + "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="], + + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], + + "mdast-util-to-markdown": ["mdast-util-to-markdown@2.2.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-character": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-ELNT5jYDUdx0B/hlUSSAiAEtvqkY3Oriwkp1KEYseF1Ccu4MnKkmE5yK3oE3WGT/Pq8VTE+XwP0GLL5pafY8yA=="], + + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], + + "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], + + "micromark": ["micromark@4.0.3", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-edit-map": "^1.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw=="], + + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.4", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.1.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-edit-map": "^1.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.3" } }, "sha512-wxEeE8v8XVvOrxn1TZj74qYhAtTQsSqufHVS3uNVyT1MupXxhyaHk8/9xDNPh9BmL77QNDgWTkZ3RsYHB2ry7w=="], + + "micromark-extension-directive": ["micromark-extension-directive@4.0.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "parse-entities": "^4.0.0" } }, "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg=="], + + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], + + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], + + "micromark-factory-space": ["micromark-factory-space@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-fS8hnLIjnjvdQIj39Geug8wWsR0HrYZ43KShKxNfwT7t2LOHo/LbWZEzEaSOjwtjdCsjoE6syHhonEzW0zv0+Q=="], + + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], + + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], + + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], + + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], + + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], + + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], + + "micromark-util-edit-map": ["micromark-util-edit-map@1.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-Pa2ljlsEL6sVwFaYeyrOLSYbQt73JvGbPOYFq+9AElXiSnfI5Q4465RRZ1sHv7lDjDOnGRDDaqPXqClqWK/q1Q=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], + + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], + + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.3", "", {}, "sha512-oxB2Ik03hI0gv+VNn9tnh1t1YEe9MDPptViAEgfdf3YQHsn0pzGTgCdlSCJXcwhqm8phaEuM7zeEu3QQzVBrPg=="], + + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.20", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ=="], + + "neotraverse": ["neotraverse@1.0.1", "", {}, "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w=="], + + "nlcst-to-string": ["nlcst-to-string@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="], + + "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], + + "node-mock-http": ["node-mock-http@1.0.5", "", {}, "sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + + "obug": ["obug@3.0.0", "", {}, "sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw=="], + + "ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="], + + "oniguruma-parser": ["oniguruma-parser@0.12.2", "", {}, "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw=="], + + "oniguruma-to-es": ["oniguruma-to-es@4.3.6", "", { "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA=="], + + "p-limit": ["p-limit@7.3.3", "", { "dependencies": { "yocto-queue": "^1.2.1" } }, "sha512-SKgVvDU5TNIxQ4r30U75BNLC6a+6GOEjngrk/ysM5+Zu3oJuk1SC5ApzIzY/7PjCEjoVPMWJ0zho/4QUiEB7TQ=="], + + "p-queue": ["p-queue@9.3.5", "", { "dependencies": { "eventemitter3": "^5.0.4", "p-timeout": "^7.0.0" } }, "sha512-Lki/zhXFVmDhesBUn/yHRLW9Bte7mE7xoFHzTR8sIomV7a2z+LxYAPkGvdfidNiu4fKSfjtawixxSHcZci5QcQ=="], + + "p-timeout": ["p-timeout@7.0.2", "", {}, "sha512-prbX4Z3YszrFNgH+MW5Zoeq3baXrMtP/MQnFeET90UB/GtGcGDQ5Usg9OCy6ETjTTntOw1SL2z9fMPUppN3Guw=="], + + "package-manager-detector": ["package-manager-detector@1.9.0", "", {}, "sha512-zAMfbta9nPA8AKkA4WdmNAT8R8s6Dk0/xwPsqNnRidMFcLo1YkLuPDTgs2f64XdzS8vbLNnoJ+uUIkgbz7oRHA=="], + + "pagefind": ["pagefind@1.6.0", "", { "optionalDependencies": { "@pagefind/darwin-arm64": "1.6.0", "@pagefind/darwin-x64": "1.6.0", "@pagefind/freebsd-x64": "1.6.0", "@pagefind/linux-arm64": "1.6.0", "@pagefind/linux-x64": "1.6.0", "@pagefind/windows-arm64": "1.6.0", "@pagefind/windows-x64": "1.6.0" }, "bin": { "pagefind": "lib/runner/bin.cjs" } }, "sha512-yeOd9EA0TUE1PUfbQIluBxzPadBG5/0BV48FAxwMVLkhZcOvwCz6TX4/a/Ofz97pF9/FwwT7CVbTC97BfmI+LQ=="], + + "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="], + + "piccolore": ["piccolore@0.1.3", "", {}, "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.7", "", {}, "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA=="], + + "postcss": ["postcss@8.5.32", "", { "dependencies": { "nanoid": "^3.3.20", "picocolors": "^1.1.1", "source-map-js": "^1.2.2" } }, "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g=="], + + "postcss-nested": ["postcss-nested@7.0.2", "", { "dependencies": { "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw=="], + + "postcss-selector-parser": ["postcss-selector-parser@7.1.7", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g=="], + + "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], + + "process-ancestry": ["process-ancestry@0.1.0", "", {}, "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg=="], + + "property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + + "radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], + + "readdirp": ["readdirp@5.1.1", "", {}, "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA=="], + + "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], + + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + + "rehype-expressive-code": ["rehype-expressive-code@0.44.3", "", { "dependencies": { "expressive-code": "^0.44.3" } }, "sha512-vaVuQPobFXvmtcHXQ5uqXZlzuuPnLyIuZcX/03sX1U/Qfj9fZrPYI9w66OSr/PUx6alzRYmreEwgYBbsVx8HsA=="], + + "remark-directive": ["remark-directive@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", "micromark-extension-directive": "^4.0.0", "unified": "^11.0.0" } }, "sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA=="], + + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + + "retext-smartypants": ["retext-smartypants@6.2.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ=="], + + "rolldown": ["rolldown@1.2.16", "", { "dependencies": { "@oxc-project/types": "=0.156.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm-eabi": "1.2.16", "@rolldown/binding-android-arm64": "1.2.16", "@rolldown/binding-darwin-arm64": "1.2.16", "@rolldown/binding-darwin-x64": "1.2.16", "@rolldown/binding-freebsd-x64": "1.2.16", "@rolldown/binding-linux-arm-gnueabihf": "1.2.16", "@rolldown/binding-linux-arm64-gnu": "1.2.16", "@rolldown/binding-linux-arm64-musl": "1.2.16", "@rolldown/binding-linux-ppc64-gnu": "1.2.16", "@rolldown/binding-linux-s390x-gnu": "1.2.16", "@rolldown/binding-linux-x64-gnu": "1.2.16", "@rolldown/binding-linux-x64-musl": "1.2.16", "@rolldown/binding-openharmony-arm64": "1.2.16", "@rolldown/binding-win32-arm64-msvc": "1.2.16", "@rolldown/binding-win32-x64-msvc": "1.2.16" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-bWvlMpFKiTfDKfnK7FC2MPgPeWCf/Kpwsq49ApdW+FQaBZb6O6dZ4MAPbPUjp7hYQrw/RobqCzn64BRrQecGHw=="], + + "satteri": ["satteri@0.10.5", "", { "dependencies": { "@types/estree-jsx": "^1.0.5", "@types/hast": "^3.0.5", "@types/mdast": "^4.0.4", "@types/unist": "^3.0.3" }, "optionalDependencies": { "@bruits/satteri-darwin-arm64": "0.10.5", "@bruits/satteri-darwin-x64": "0.10.5", "@bruits/satteri-linux-arm64-gnu": "0.10.5", "@bruits/satteri-linux-arm64-musl": "0.10.5", "@bruits/satteri-linux-x64-gnu": "0.10.5", "@bruits/satteri-linux-x64-musl": "0.10.5", "@bruits/satteri-wasm32-wasi": "0.10.5", "@bruits/satteri-win32-arm64-msvc": "0.10.5", "@bruits/satteri-win32-x64-msvc": "0.10.5" } }, "sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ=="], + + "sax": ["sax@1.6.1", "", {}, "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q=="], + + "semver": ["semver@7.8.6", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-9lpSSU4Mly3mrtruwLs1eLK6+gzbzqeBFwRNjIjE+9LuDpWdYctrQlQ3ej1Ilgi7gknpsTRnPoLP8DpCHqHIJw=="], + + "sharp": ["sharp@0.35.5", "", { "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", "semver": "^7.8.5" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.35.5", "@img/sharp-darwin-x64": "0.35.5", "@img/sharp-freebsd-wasm32": "0.35.5", "@img/sharp-libvips-darwin-arm64": "1.3.4", "@img/sharp-libvips-darwin-x64": "1.3.4", "@img/sharp-libvips-linux-arm": "1.3.4", "@img/sharp-libvips-linux-arm64": "1.3.4", "@img/sharp-libvips-linux-ppc64": "1.3.4", "@img/sharp-libvips-linux-riscv64": "1.3.4", "@img/sharp-libvips-linux-s390x": "1.3.4", "@img/sharp-libvips-linux-x64": "1.3.4", "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", "@img/sharp-libvips-linuxmusl-x64": "1.3.4", "@img/sharp-linux-arm": "0.35.5", "@img/sharp-linux-arm64": "0.35.5", "@img/sharp-linux-ppc64": "0.35.5", "@img/sharp-linux-riscv64": "0.35.5", "@img/sharp-linux-s390x": "0.35.5", "@img/sharp-linux-x64": "0.35.5", "@img/sharp-linuxmusl-arm64": "0.35.5", "@img/sharp-linuxmusl-x64": "0.35.5", "@img/sharp-webcontainers-wasm32": "0.35.5", "@img/sharp-win32-arm64": "0.35.5", "@img/sharp-win32-ia32": "0.35.5", "@img/sharp-win32-x64": "0.35.5" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g=="], + + "shiki": ["shiki@4.6.0", "", { "dependencies": { "@shikijs/core": "4.6.0", "@shikijs/engine-javascript": "4.6.0", "@shikijs/engine-oniguruma": "4.6.0", "@shikijs/langs": "4.6.0", "@shikijs/themes": "4.6.0", "@shikijs/types": "4.6.0", "@shikijs/vscode-textmate": "^10.1.0", "@types/hast": "^3.0.5" } }, "sha512-imjLsVHgPuWhvpU3P+zOekvMYqnel7QmKsFC4Sn0fCuAvaaalBsxwKEsrU8Ko5BdFnZA6Go/8a0RzahS634UgA=="], + + "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], + + "sitemap": ["sitemap@9.0.1", "", { "dependencies": { "@types/node": "^24.9.2", "@types/sax": "^1.2.1", "arg": "^5.0.0", "sax": "^1.4.1" }, "bin": { "sitemap": "dist/esm/cli.js" } }, "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ=="], + + "smol-toml": ["smol-toml@1.9.1", "", {}, "sha512-j7WyPdf0CJoutMzMoPLF/bVXHtKZIT9Rb4eGeEbWw8X2t5oirjPgpL+OpaENZrILYaXqYwnVH+qgUwVbl+pUJQ=="], + + "source-map-js": ["source-map-js@1.2.2", "", {}, "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw=="], + + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + + "std-env": ["std-env@4.3.0", "", {}, "sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag=="], + + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + + "svgo": ["svgo@4.1.0", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^6.0.0", "css-tree": "^3.0.1", "css-what": "^7.0.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "1.6.1" }, "bin": { "svgo": "bin/svgo.js" } }, "sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q=="], + + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], + + "tinyclip": ["tinyclip@1.0.3", "", {}, "sha512-nTv2raKFMzGG6JJp0lpNDsRPdfFE6UHlu2rVEjXo8vkx1ZS3LW2CVXqIaLu8xZlu+6tbFs9V58Qc/Jmk/Ii7wA=="], + + "tinyexec": ["tinyexec@1.3.1", "", {}, "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA=="], + + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "tinyps": ["tinyps@0.5.1", "", {}, "sha512-B6Ykif5HflC3AdDkS4Zst/2muYVfeXoVMy+KorqH80s/1x4vunIORpNySH681X7fjj+dFM9MDKD6/Hsccjb87Q=="], + + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + + "tslib": ["tslib@2.9.1", "", {}, "sha512-a4Ux9VKuIMHsOS7ENbEq6hK2ZGYIT27Rtl0E4eD9KqwxhKiQeMZE/9xb3IdYwWaSOyIBQLExhQgXDTYoiCxnWA=="], + + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], + + "ultrahtml": ["ultrahtml@1.7.0", "", {}, "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g=="], + + "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], + + "undici": ["undici@8.12.3", "", {}, "sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw=="], + + "undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], + + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + + "unifont": ["unifont@1.0.3", "", { "dependencies": { "css-tree": "^3.1.0", "fnv1a-64": "^0.1.2", "std-env": "^4.2.0", "undici": "^8.0.0" } }, "sha512-XGnEwj5sWdCbiBX01mWLSBncS0yMRjnLygau3IfdOlfjMacNIQvTGW4VH7pWBq+gGWArfSef/CensMLjMmIr/A=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.2.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.1.0" } }, "sha512-fpsYs/VVoZxfGY9/j3FQpZmN8wdLJaV1Pt38AaJNZu9uKIHcFU3halCdBveEq1HGKO1OEfJY65w1zvoFV1b3qQ=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-vKXxz6O38sKDj1mtx/k2cWvkkFBuYGx6uGrlzBkVeWCRF/F8sdI0j3Wbkz/5rVNRRuVc8UrgRdbCxNhmYXgP3w=="], + + "unstorage": ["unstorage@1.17.6", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^5.0.0", "destr": "^2.0.5", "h3": "^1.15.11", "lru-cache": "^11.5.3", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.4" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6 || ^7 || ^8", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 || ^11.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1 || ^2 || ^3", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-gjKtcmn/KwZuJZO9o2sc0esAQnhmTw0LviDHwevTXbJMYs0dRTp8ZEEWXHU0vTpzbN3cA0yxlTeyXssMp3zDqw=="], + + "url-extras": ["url-extras@0.1.0", "", {}, "sha512-8tzwTeXFPuX/5PHuCDQE5Dd9Ts4rwoq2t9aIT+HS4iAVpmj5l4Ao7Q+BuuFjvWRqrLswBhQDk8O96ZicgCqQqw=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "verkit": ["verkit@0.5.0", "", {}, "sha512-u4J1hr6Y+C/hit34GwL3eIcUf3wngT8TlYUjK7tk0jxydKLAq3sYvifjdTDA6U3KCKRcQCQDGf/srjxfZF3l7g=="], + + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + + "vite": ["vite@8.3.5", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", "postcss": "^8.5.30", "rolldown": "~1.2.14", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.7.1 || ^0.8.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ=="], + + "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], + + "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], + + "yaml": ["yaml@2.9.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw=="], + + "yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="], + + "yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="], + + "zod": ["zod@4.6.7", "", {}, "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@astrojs/compiler-binding-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.3", "tslib": "^2.4.0" } }, "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg=="], + + "@astrojs/compiler-binding-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], + + "@img/sharp-wasm32/@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], + + "anymatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], + + "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], + + "@astrojs/compiler-binding-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g=="], + + "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], + } +} diff --git a/site/docs-map.json b/site/docs-map.json new file mode 100644 index 00000000..fb4a2e36 --- /dev/null +++ b/site/docs-map.json @@ -0,0 +1,150 @@ +{ + "repository": "https://github.com/tickernelz/opencode-mem", + "source": "README.md", + "translations": { + "de": ".github/i18n/README.de.md", + "zh": ".github/i18n/README.zh.md", + "ar": ".github/i18n/README.ar.md", + "tr": ".github/i18n/README.tr.md", + "nl": ".github/i18n/README.nl.md" + }, + "untranslated": { + "Memory credential redaction": ["de", "zh", "ar", "tr", "nl"] + }, + "dropLines": ["^\\[!\\[", "^!\\[", "README\\.[a-z]{2}\\.md\\)"], + "configPages": ["configure/"], + "configSources": ["opencode-mem.example.jsonc", "src/config.ts"], + "pages": [ + { + "slug": "", + "group": "Start", + "title": "Overview", + "sections": ["OpenCode Memory", "Core Features"] + }, + { + "slug": "start/prerequisites", + "group": "Start", + "sections": ["Prerequisites", "Hardware / resource expectations"] + }, + { + "slug": "start/getting-started", + "group": "Start", + "sections": ["Getting Started", "Automatic memory context on OpenCode v2"] + }, + { + "slug": "start/local-checkout", + "group": "Start", + "sections": ["Using a local checkout"] + }, + { + "slug": "start/encryption", + "group": "Start", + "sections": ["Optional database encryption at rest"] + }, + { + "slug": "use/day-to-day", + "group": "Use", + "sections": ["How to use day-to-day", "Typical daily flow", "Automatic vs manual memory"] + }, + { + "slug": "use/memory-agents-skills", + "group": "Use", + "sections": ["Memory vs AGENTS.md vs Skills", "Shared Skills (V2)"] + }, + { + "slug": "use/auto-capture-and-profile", + "group": "Use", + "sections": ["Intelligent prompt-based memory extraction", "User profile"] + }, + { + "slug": "use/web-ui", + "group": "Use", + "sections": ["Web UI", "Health stats"] + }, + { + "slug": "use/examples", + "group": "Use", + "sections": ["Usage Examples"] + }, + { + "slug": "configure", + "group": "Configure", + "sections": ["Configuration Essentials"] + }, + { + "slug": "configure/auto-capture-provider", + "group": "Configure", + "sections": ["Auto-Capture AI Provider"] + }, + { + "slug": "configure/embeddings", + "group": "Configure", + "sections": ["Choosing / configuring embeddings"] + }, + { + "slug": "configure/markdown-vault", + "group": "Configure", + "sections": ["Markdown vault backend (`memoryBackend`)"] + }, + { + "slug": "configure/chat-message", + "group": "Configure", + "sections": ["Chat message capture and injection (`chatMessage`)"] + }, + { + "slug": "configure/update-on-capture", + "group": "Configure", + "sections": ["Update-on-capture (optional)"] + }, + { + "slug": "configure/dreaming", + "group": "Configure", + "sections": ["Dreaming (optional memory consolidation)"] + }, + { + "slug": "configure/memory-scope", + "group": "Configure", + "sections": ["Memory Scope"] + }, + { + "slug": "configure/web-ui-auth", + "group": "Configure", + "sections": ["Web UI HTTP Basic Auth"] + }, + { + "slug": "operate/credential-redaction", + "group": "Operate", + "sections": ["Memory credential redaction"] + }, + { + "slug": "operate/legacy-sqlite", + "group": "Operate", + "sections": ["Upgrading from legacy SQLite shards"] + }, + { + "slug": "operate/schema-migrations", + "group": "Operate", + "sections": ["Schema migrations"] + }, + { + "slug": "operate/nested-repos", + "group": "Operate", + "sections": ["Sharing One Project Memory Across Nested Repos"] + }, + { + "slug": "operate/moving-recovering", + "group": "Operate", + "sections": ["Moving or Recovering Project Memories"] + }, + { + "slug": "reference/subpath-exports", + "group": "Reference", + "sections": ["Public Subpath Exports", "`opencode-mem/tags`"] + }, + { + "slug": "reference/contributing", + "group": "Reference", + "sections": ["Development & Contribution", "License & Links"] + } + ] +} diff --git a/site/package.json b/site/package.json new file mode 100644 index 00000000..07c561a1 --- /dev/null +++ b/site/package.json @@ -0,0 +1,18 @@ +{ + "name": "opencode-mem-site", + "private": true, + "type": "module", + "scripts": { + "build": "node scripts/build-tokens.mjs && node scripts/build-docs.mjs && node scripts/fetch-numbers.mjs && astro build", + "dev": "node scripts/build-tokens.mjs && node scripts/build-docs.mjs && astro dev", + "preview": "astro preview" + }, + "dependencies": { + "@astrojs/starlight": "0.42.8", + "@fontsource-variable/bricolage-grotesque": "5.3.0", + "@fontsource-variable/jetbrains-mono": "5.3.0", + "astro": "7.4.5", + "github-slugger": "2.0.0", + "sharp": "0.35.5" + } +} diff --git a/site/public/CNAME b/site/public/CNAME new file mode 100644 index 00000000..664cd7ce --- /dev/null +++ b/site/public/CNAME @@ -0,0 +1 @@ +opencode-mem.zhafron.my.id diff --git a/site/public/og.png b/site/public/og.png new file mode 100644 index 0000000000000000000000000000000000000000..d56a4d51f766f53fd458d8e365211eabec62c7ec GIT binary patch literal 85572 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

IU~%f@;!PVc`;X)z3E!}{$HrZ#^m3v7AG(X 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 { + const marker = line.match(/^\s*(`{3,}|~{3,})/); + if (marker) { + if (!fence) fence = marker[1]; + else if (marker[1][0] === fence[0] && marker[1].length >= fence.length) fence = null; + return; + } + if (fence) return; + const heading = line.match(/^(#{1,6})\s+(.+?)\s*#*\s*$/); + if (heading) headings.push({ level: heading[1].length, text: heading[2], line: index }); + }); + const slugger = new GithubSlugger(); + for (const [i, heading] of headings.entries()) { + heading.anchor = slugger.slug(heading.text); + const end = i + 1 < headings.length ? headings[i + 1].line : lines.length; + heading.body = lines.slice(heading.line + 1, end); + } + return headings; +} + +function lastChange(file) { + try { + return execFileSync("git", ["log", "-1", "--format=%cI", "--", file], { + cwd: repo, + encoding: "utf8", + }).trim(); + } catch { + return ""; + } +} + +const english = parse(await readFile(resolve(repo, map.source), "utf8")); +const claimed = new Map(); +for (const page of map.pages) { + for (const section of page.sections) { + if (!english.some((h) => h.text === section)) + failures.push(`docs-map.json: "${section}" is not a heading in ${map.source}`); + if (claimed.has(section)) failures.push(`docs-map.json: "${section}" is mapped twice`); + claimed.set(section, page); + } +} +for (const heading of english) { + if (!claimed.has(heading.text)) { + failures.push( + `${map.source}:${heading.line + 1}: heading "${heading.text}" is not mapped in site/docs-map.json` + ); + } +} + +function alignTranslation(lang, translated) { + const expected = english.filter((h) => !(map.untranslated[h.text] ?? []).includes(lang)); + if (expected.length !== translated.length) { + failures.push( + `${map.translations[lang]}: ${translated.length} headings, expected ${expected.length} (README has ${english.length}; list untranslated sections in docs-map.json "untranslated")` + ); + return null; + } + const byEnglish = new Map(); + expected.forEach((heading, i) => { + if (heading.level !== translated[i].level) { + failures.push( + `${map.translations[lang]}:${translated[i].line + 1}: "${translated[i].text}" is h${translated[i].level}, README "${heading.text}" is h${heading.level}` + ); + } + byEnglish.set(heading.text, translated[i]); + }); + return byEnglish; +} + +const languages = [ + { lang: "", file: map.source, sections: new Map(english.map((h) => [h.text, h])) }, +]; +for (const [lang, file] of Object.entries(map.translations)) { + const aligned = alignTranslation(lang, parse(await readFile(resolve(repo, file), "utf8"))); + if (aligned) languages.push({ lang, file, sections: aligned }); +} + +function route(lang, slug) { + return `/${[lang, "docs", slug].filter(Boolean).join("/")}/`; +} + +function anchorTargets(sections, lang) { + const targets = new Map(); + for (const page of map.pages) { + const pageSlugger = new GithubSlugger(); + page.sections.forEach((name, i) => { + const heading = sections.get(name); + if (!heading) return; + const href = route(lang, page.slug); + targets.set(heading.anchor, i === 0 ? href : `${href}#${pageSlugger.slug(heading.text)}`); + }); + } + return targets; +} + +const englishTargets = anchorTargets(languages[0].sections, ""); +const dropLines = map.dropLines.map((pattern) => new RegExp(pattern)); + +function rewriteLinks(text, file, targets, lang, slug) { + return text.replace(/(!?)\[([^\]]*)\]\(([^)\s]+)\)/g, (whole, bang, label, href) => { + if (/^[a-z]+:/i.test(href) || href.startsWith("//")) return whole; + if (href.startsWith("#")) { + const target = + targets.get(href.slice(1)) ?? (lang ? englishTargets.get(href.slice(1)) : undefined); + if (!target) { + failures.push( + `${file}: link "${href}" (docs page ${route(lang, slug)}) has no matching heading` + ); + return whole; + } + return `${bang}[${label}](${target})`; + } + const path = posix.normalize(posix.join(posix.dirname(file), href.split("#")[0])); + const kind = bang ? "raw" : "blob"; + const hash = href.includes("#") ? href.slice(href.indexOf("#")) : ""; + return `${bang}[${label}](${map.repository}/${kind}/main/${path}${hash})`; + }); +} + +function demote(lines, shift) { + let fence = null; + return lines.map((line) => { + const marker = line.match(/^\s*(`{3,}|~{3,})/); + if (marker) { + if (!fence) fence = marker[1]; + else if (marker[1][0] === fence[0] && marker[1].length >= fence.length) fence = null; + return line; + } + if (fence) return line; + return line.replace( + /^(#{1,6})(\s)/, + (_, hashes, space) => `${"#".repeat(Math.max(2, Math.min(6, hashes.length - shift)))}${space}` + ); + }); +} + +function yaml(value) { + return JSON.stringify(value); +} + +function configKeys(body) { + const keys = []; + for (const line of body.split("\n")) { + const cell = line.match(/^\|\s*([^|]+?)\s*\|/); + if (!cell || /^[-:\s]+$/.test(cell[1])) continue; + for (const [, key] of cell[1].matchAll(/`([A-Za-z][A-Za-z0-9]*(?:\.[A-Za-z][A-Za-z0-9]*)*)`/g)) + keys.push(key); + } + return keys; +} + +const configSource = ( + await Promise.all(map.configSources.map((f) => readFile(resolve(repo, f), "utf8"))) +).join("\n"); + +await rm(outRoot, { recursive: true, force: true }); +let written = 0; +for (const { lang, file, sections } of languages) { + const targets = anchorTargets(sections, lang); + const updated = lastChange(file); + for (const page of map.pages) { + const present = page.sections.map((name) => sections.get(name)).filter(Boolean); + if (present.length === 0) continue; + if (lang && present.length !== page.sections.length) continue; + const [first, ...rest] = present; + const title = lang || !page.title ? first.text.replace(/`/g, "") : page.title; + const firstBody = first.body.filter((line) => !dropLines.some((re) => re.test(line))); + const parts = [firstBody.join("\n")]; + for (const heading of rest) { + const level = Math.max(2, heading.level - first.level + 1); + parts.push( + demote( + [`${"#".repeat(level)} ${heading.text}`, ...heading.body], + heading.level - level + ).join("\n") + ); + } + let body = parts + .join("\n\n") + .replace(/\n{3,}/g, "\n\n") + .trim(); + body = rewriteLinks(body, file, targets, lang, page.slug); + if (!lang && map.configPages.some((prefix) => `${page.slug}/`.startsWith(prefix))) { + for (const key of configKeys(body)) { + const leaf = key.split(".").at(-1); + if (!new RegExp(`\\b${leaf}\\b`).test(configSource)) { + failures.push( + `docs page ${route("", page.slug)}: option \`${key}\` is not in ${map.configSources.join(" or ")}` + ); + } + } + } + const description = body + .split("\n\n") + .find((p) => p && !/^[#|`<>\-*!\d]/.test(p.trim())) + ?.replace(/\s+/g, " ") + .replace(/`|\*\*/g, "") + .slice(0, 180); + const frontmatter = [ + "---", + `title: ${yaml(title)}`, + description ? `description: ${yaml(description)}` : null, + `editUrl: ${yaml(`${map.repository}/edit/main/${file}`)}`, + updated ? `lastUpdated: ${updated}` : null, + "sidebar:", + ` order: ${map.pages.indexOf(page)}`, + "---", + ].filter(Boolean); + const isIndex = page.slug === "" || map.pages.some((p) => p.slug.startsWith(`${page.slug}/`)); + const path = isIndex + ? resolve(outRoot, lang, "docs", page.slug, "index.md") + : resolve(outRoot, lang, "docs", `${page.slug}.md`); + await mkdir(dirname(path), { recursive: true }); + await writeFile(path, `${frontmatter.join("\n")}\n\n${body}\n`); + written++; + } +} + +if (failures.length > 0) { + console.error(`docs: ${failures.length} problem(s)\n- ${failures.join("\n- ")}`); + process.exit(1); +} +console.log(`docs: ${written} pages from ${languages.length} README files`); diff --git a/site/scripts/build-tokens.mjs b/site/scripts/build-tokens.mjs new file mode 100644 index 00000000..35b9ff6e --- /dev/null +++ b/site/scripts/build-tokens.mjs @@ -0,0 +1,33 @@ +import { copyFile, mkdir, readFile, writeFile } from "node:fs/promises"; +import { dirname, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const site = resolve(dirname(fileURLToPath(import.meta.url)), ".."); +const repo = resolve(site, ".."); +const source = resolve(repo, "web/src/app.css"); + +function block(css, selector) { + const start = css.indexOf(`${selector} {`); + if (start === -1) throw new Error(`web/src/app.css: missing "${selector}" token block`); + const end = css.indexOf("}", start); + const declarations = [...css.slice(start, end).matchAll(/--([a-z0-9-]+):\s*([^;]+);/g)]; + if (declarations.length === 0) throw new Error(`web/src/app.css: "${selector}" has no tokens`); + return declarations.map(([, name, value]) => ` --om-${name}: ${value.trim()};`).join("\n"); +} + +const css = await readFile(source, "utf8"); +const light = block(css, ":root"); +const dark = block(css, ".dark"); +const out = [ + "/* generated by site/scripts/build-tokens.mjs from web/src/app.css */", + `:root,\n:root[data-theme="light"] {\n${light}\n color-scheme: light;\n}`, + `:root[data-theme="dark"] {\n${dark}\n color-scheme: dark;\n}`, + "", +].join("\n"); + +await mkdir(resolve(site, "src/generated"), { recursive: true }); +await writeFile(resolve(site, "src/generated/tokens.css"), out); +await mkdir(resolve(site, "public"), { recursive: true }); +await copyFile(resolve(repo, "web/public/favicon.svg"), resolve(site, "public/favicon.svg")); +await copyFile(resolve(repo, "web/public/favicon.ico"), resolve(site, "public/favicon.ico")); +console.log("tokens: web/src/app.css -> src/generated/tokens.css"); diff --git a/site/scripts/check-dist.mjs b/site/scripts/check-dist.mjs new file mode 100644 index 00000000..89cef574 --- /dev/null +++ b/site/scripts/check-dist.mjs @@ -0,0 +1,57 @@ +import { readFile, readdir, stat } from "node:fs/promises"; +import { dirname, join, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const site = resolve(dirname(fileURLToPath(import.meta.url)), ".."); +const dist = join(site, "dist"); +const map = JSON.parse(await readFile(join(site, "docs-map.json"), "utf8")); +const failures = []; + +async function exists(path) { + try { + await stat(path); + return true; + } catch { + return false; + } +} + +if ((await readFile(join(dist, "CNAME"), "utf8")).trim() !== "opencode-mem.zhafron.my.id") { + failures.push("dist/CNAME must contain opencode-mem.zhafron.my.id"); +} +for (const page of map.pages) { + const file = join(dist, "docs", page.slug, "index.html"); + if (!(await exists(file))) failures.push(`missing docs page ${file}`); +} +for (const required of [ + "index.html", + "404.html", + "pagefind/pagefind.js", + "sitemap-index.xml", + "og.png", +]) { + if (!(await exists(join(dist, required)))) failures.push(`missing dist/${required}`); +} + +const landing = await readFile(join(dist, "index.html"), "utf8"); +const scripts = [...landing.matchAll(/]*src="([^"]+)"/g)].map((m) => m[1]); +let eagerJs = 0; +for (const src of scripts) eagerJs += (await stat(join(dist, src))).size; +const inline = [...landing.matchAll(/]*src=)[^>]*>([\s\S]*?)<\/script>/g)].reduce( + (n, m) => n + m[1].length, + 0 +); +const lazy = (await readdir(join(dist, "_astro"))).filter((f) => f.startsWith("memory-field")); +console.log( + `landing: ${scripts.length} external script(s) ${eagerJs} B, inline ${inline} B, lazy chunk(s): ${lazy.join(", ")}` +); +if (eagerJs + inline > 12000) + failures.push(`landing eager JS ${eagerJs + inline} B exceeds 12000 B budget`); + +if (failures.length > 0) { + console.error(failures.join("\n")); + process.exit(1); +} +console.log( + `site: ${map.pages.length} English docs pages, CNAME, 404, search index, sitemap, og image present` +); diff --git a/site/scripts/fetch-numbers.mjs b/site/scripts/fetch-numbers.mjs new file mode 100644 index 00000000..a12b5422 --- /dev/null +++ b/site/scripts/fetch-numbers.mjs @@ -0,0 +1,47 @@ +import { readFile, writeFile } from "node:fs/promises"; +import { dirname, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const target = resolve(dirname(fileURLToPath(import.meta.url)), "../src/data/numbers.json"); +const repo = "tickernelz/opencode-mem"; +const pkg = "opencode-mem"; + +async function json(url, headers = {}) { + const response = await fetch(url, { headers, signal: AbortSignal.timeout(15000) }); + if (!response.ok) throw new Error(`${url} -> HTTP ${response.status}`); + return response.json(); +} + +const github = { accept: "application/vnd.github+json", "user-agent": "opencode-mem-site" }; +if (process.env.GITHUB_TOKEN) github.authorization = `Bearer ${process.env.GITHUB_TOKEN}`; + +try { + const [repository, year, month, registry] = await Promise.all([ + json(`https://api.github.com/repos/${repo}`, github), + json(`https://api.npmjs.org/downloads/point/last-year/${pkg}`), + json(`https://api.npmjs.org/downloads/point/last-month/${pkg}`), + json(`https://registry.npmjs.org/${pkg}`, { accept: "application/vnd.npm.install-v1+json" }), + ]); + const numbers = { + fetchedAt: new Date().toISOString().slice(0, 10), + stars: repository.stargazers_count, + forks: repository.forks_count, + license: repository.license?.spdx_id ?? "MIT", + version: registry["dist-tags"].latest, + releases: Object.keys(registry.versions).length, + downloadsYear: year.downloads, + downloadsYearRange: `${year.start}..${year.end}`, + downloadsMonth: month.downloads, + downloadsMonthRange: `${month.start}..${month.end}`, + }; + for (const [key, value] of Object.entries(numbers)) { + if (value === undefined || value === null || Number.isNaN(value)) { + throw new Error(`numbers: ${key} missing from API response`); + } + } + await writeFile(target, `${JSON.stringify(numbers, null, 2)}\n`); + console.log(`numbers: refreshed (${numbers.fetchedAt})`); +} catch (error) { + const kept = JSON.parse(await readFile(target, "utf8")); + console.warn(`numbers: fetch failed (${error.message}); keeping snapshot from ${kept.fetchedAt}`); +} diff --git a/site/src/assets/brain.svg b/site/src/assets/brain.svg new file mode 100644 index 00000000..6f50e127 --- /dev/null +++ b/site/src/assets/brain.svg @@ -0,0 +1 @@ + diff --git a/site/src/assets/ui/ui-profile-dark.png b/site/src/assets/ui/ui-profile-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..9501b522df9be9120efbd03a87efb13530e07853 GIT binary patch literal 81505 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 z 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�s&(_5LHo#oJ!{cnHiw0`E#Jk;bpZ`L;` zz(PsjO#4H>fb{*to9+46`t3x1ywCqh!dh*#WX=A&s~Qd%l7A6%DrivX+w7@b#OA6C zvZpVsDDX`)o3sd**aHbc!S2q**>B&Z#CB+XcIMmNhlsDew|hlxcz3$LsxIn(Gm*;t z8_a?3ad26wd?B$^{8uYYwc_h{4|@@IQBkwqcWLQ~X1}hi9G)G~2)Zk2O-5viRiqS_ zJa(<&vp%IHJhd$&fMSn0q+#J+XXvK;^}> zz07oiCTvE$w^wmXtXhtQrs9GB)ORUSHdh8qt+jpMG80y+Hy`^Y&EguE@ql+jn+iB`DVfl#TNue{AZjnHm{v9McB-=cgO_z9o_g^WDk&UA{L;QxStvTDQl;4xl;>SAzx zy+_CZ+{$*s!o1tnuZ(1584Cv|CMM?IZ5djRt*Uaen|#`s+xbq|M};%_82&x|+qT0k zJ}G5h_emLZcX*THOsw$ue(PK1SDcubHp;#>V8kr`XP&f8&VAkNEHHDDnx4z3up#09 z=Juu$>r~Dl2jDRN$w)SqI<-tw-QHZ?*g`}=)~@V7=TubWq!g+>PL~p8Vc_4mD|S1f zq3xaVq9fR2xvtJq2!hL47Vd9Q!W%0>$-@l3;YQQb*ppo$K2Og7#?7l)!muszlF*8aXI&JkYL=E8SfKix-fHS)K(i+ZibVqP(P|{Op{}I1Ed#N@> z&%`9WBdc)c>mH?A49rEma`D>o)^+w%x^46Rrs0Ma8}k9qUOg4?0O1ki9}Rxn85|!T z!uOD0IAtBIhv_qIXKPu+#wRAgPzOmCb?#{IV?E>MvNOM0YAE2}0X-@f~q(SooBP*qhW7{btq0UESLTissj z%$dK~4**^EXGjx}Ie=6Bhoz++Z|}ZJ=GWESyLV}EG3fVqFAtBWCnwBJl1D;fV%Ohs zG&9uG(aGcyJyY!Jup<6oj57U$;Ja?2_Lon`tF%`%?28rVBX1?Vnc@G}> zS#Lcsa7Zlhu$;^#POyY9wjr&z}d!<_AC`LgVzae)nha z>SiVbKeuME$++A!f+q?gjZYvb!1II&LO(=rmf*PKK|&e!2ZBi+sbtfdeTHt(Yyuas0s`US}mQjXZiT~hr#ZxI=d9)?(Xj6GYv$Sh$j!E$~mY! zTsqh|V_OaXKh--HKg$iWv+uke`}xQ4`q3*{S(mbst(Ljc9co{94a_^2HUIjq+ppiI z;!|&JVp4Pd(74Xa$Wi$%GSf@xX=xD>x_8<#GT^smK&-e@0*%7kwbaPtEhAK0}xPr!rA?B?49D4aiJ-RfeX%6 zZa)y3^sE`|m1n^Oz=i=RGyr1lPu*!LP>_(XKw$@F^OmRK-(qf)5ADO|1+zl3kIF+b zg*$kfEIS_Hwj59!Mj9Qy)!5W50!}WckhQ8Z-7kVhkN`UTpt_Ys?&1c{gLe;H&De6| z+NH!aZLJ6=zYqh`GY_(AIh$)Lmo9OCR;apK@Z`B|d{VKPi_Rr}t#w!yXlnWS``ZA> ze#4!-G5dTJ{Yu6M@cNTH4`j-YfhvBw0(%bFc<4+63l`5<_@=G3wY39*U$+0`-V-41 zK)kPD;0~u3Mz7ea!j}d72<`iESJIoodDyngCjCoNdJ6h!_Esbjm{q+6hxjKAHMQn6 z$l=}9A!h`OUaZsG9WXVZ;{Hyp`!f$;#_r=>nn^&otLk_E0)unq&%~N?&Fn01zuUXK z4zNCUa&nC|LK-;v?OS_%0`M&BV~r+B=fa{5j+hyKoqYP`2HV2GHCx-3U zvUz!_EgySY>giFfPlm|AtG|+&>=l;s>N#OjG5q~|LeeL!Bxo`oJDtw(M)M7AjH9es zv2M@UHX>V?KySv=bNS0%#pgRiS0)dyaL&v>VxDl#piy?1<~T$?e)i{N`Zs>Yz+)fE zr8L98Awx|`^UiQK%u?>1XA?u6Iybj+VpANaC-x`FAT=x3=*H#kjor`FxupdKwa1QK z>Zos6YCCe+X}k)r7oh9@u^5Tpw{PD@uNo}hAT;cv6@fgy1x_}h@+*N@dcwMBO!Mo+ zmBWGqNVquLKw~3i9U(qN_?Xq>ka~%JKx~%U;&j;2+hGIvWb`D6D^gPe}^m4PZW z2bO>T{Mq_rqH~s)`S5)tyZb?jDE(b%Rpvf7!*es^xFn<#@LIB4-v3&C6$~kHck||i zJ_T_L{DEUby6t)uX!W4^cxOA~c7+3tjAfm7I4+QFOfJ)F(>v)e8$#I}-9of?|D4@@+`y-2^c%l^iyou4JrHPYU&1)#s+`B&PIve?;Z(wt z^_FI>76ZPnD=N*VNRYJ2TPuWC}(JaQYhWe()SbYpjR+ z@Ic{SwbWsVq!_{eX$(e_%q;8n=0$_F|F8fd8Ad1BRd^_`s<^atZ)I{)(z(Zb1GNOn#Po$c}jA3_c@0+!~F$pI6DAto@A&&ESrEXI1xZHKR(Fj31)` zV`JJ|eXi{}<&99DvSUAbfJsQA4jz01YD7jz@yLji6D|n#^5xfpxF{7 zEARWM9&x-BK^stSoia~=hEY8m`k~)C3%U_17_VG|qLQLueaEEMmNpi`chGP z`84;oD)-N&mX?3!>skLLCI|92Fj{W9e&Da9sudF{EXpJ(WFXOa4MQtA2$o5qzPr^y zO$VE^YRoqnQZ8qSuLj)cW{IQOnoiD$piVA#&y@eY*O{rj5!E~Wr<~aFfwe+U%XwSd zAWw-Z5-k&{Tlx9=pEuU6V~zW#Pd!8djsQuN?ZB&Oz&KAzPoQJ}q@%}Oc4bjZq}uKBr+jLZ`uhIY>3b-tvymLt4D3Za(A&XJd?f(;^=T>tJO z@00L_m-T$l(Nxkqa9~@cXYH$3`{xql;tY+9SR&KwW*^!Q=4J&oH#7*!%F4>iKh}w7 zXMMhK&Jpdke+X){XtCx7PLvxnGc%5jaT>p2F*Loh)kt}0VnXbriqGH+oGIF>foIO} z_m`tl1?AES4xKv(<5{J$@vksGtU%6)KBJ6`44Oh7F7sI`XB z4=`duG$s00{{D|pKd_eiJT!EE1+Yi6an}`m`Cx{CCE-Q;`1r@O z@&?2V|NC{?_;u)YFl%GyIN-;i*<{}n;0XyH+L>a1@rjCxI-GxS!}*9&S088+k!n5x zSsU$Rf)auL1e)Rk(aoDFF3PU}jqjZJg=X&B+Y=TV8yjPf*D2_9SuO}x&Uggnweyji zg|okY$tj+ygIf62tDU^OHJ404CAB-!!q|wX)7Xf#mD%}f@Ne|6(9a8kRuGmDNI)-; zg%hn+hAW(EXM+)uX2%|DjfTPO5pU)|ZrziEIy#gAC;it%=Gh;32a_gq@^%>4=A`Nw z7;G`WkH0?JoC@7eS4#_a(`!mKaG#Oa{op)=Kt?p?c=)BHI(mEA#&j$!So!D+{i`l+ zp<6lLQ%ts%UD}BRzW>hr(aM0yaX{L&My$L1ViFTsw7Td&>T+>$=~J%VHOWDVe6)!R zB41Pz!k1C36k8!gfBh9yul7~F@*$QbQs%2Pk|#bJBFo&jJ^@FJnFm@#HI)e$FYbXZ z6hU`?WK2SW>gj17hl^OT-XE(~+I$_9ah;bKH_7*4#Ze@uftsoDf{}y6TJ^OcKLK)Q zA529@t+);(95P+>Rf`X->h|4W^``aVoK*oL18NsGHnzqozQ5`#Fz5Qwm1TAph6c!4 zF1}%4Vq${j9yRrtj*H8V>ac%>aEGtIzt$$(^pyILkdS=^uSGLu6u{VZJAOPdb0-`o z{ywz;>ABFpQo~H(9}sCGr7@ZiR|mX@y=_=H^BjBuhojH)WPcLiPOH7T23F#G8nLm@ zSMD94cpICCXigv8F}fJD06ZsC?rx<>`CcUuZUvP0?v2t+#Dy#b)RY->1ufQlhk@4b&L7ou+_VP z*WKDO6TM_0pV>$ka9@6W(0?)_)zH31WKmDD*k5$EzClXK^wjRXV$>{# zJnR*h?$VZ&0+4#7CL*YRL$Fx{=EPE3!I1xc$on^aT0a8f02_w>w+zC1$%et1*L zi$~Ofqnn9hKAG*l`$^g}eFewZvRQ5RwY(tpH;<9+q<$3s?aiCkCRN$J1!7qo&UTON*)sNDZ~ns1&gR3A%zWb1DV!QCf}2h2 z{nzfy276Nr2s)`Z>eWzeg?>VD~UNYv}{ox^#L{2qty zR(3h)!?gU2g)8jJwzHC^HxBJ8UB`8Ot4RlkqTdMIWWKa!z;I9?c4KV>f`<%wD`;-K z4XGlg0Mu0%r|WupdT_v_1PR2Ui2uny{9ph%MF&!gc%d7?glXj>WUqZ7vq23;l+B<+ z=@}X_xy;C~dU88`>d@uZHvNb^3H(2(huQ}rbG!0DisuyR$NIDf>%~r=8!xbe{Xn2Wu{4{)}b{{LoEERvg)=Zyr#6>hyb{lj}IMnv4fzjAS@2EP|HCV zu5@P36EF)rnA1{NZX(TtaENyEX7B}XG?=9_`Zxhe95)dg?CUg zRDdI z4Zx8|BS#`|W5hnxymN5q1;YDAbl1)H8QbudjvI zOQL`2%g52s%8nDRN5>+~@H!D*MqeRSO$@$;>B6XaIhL;(_4= z-uXuR8b}*(p3Qs*ZEOyR1OFk7*B8of!Bwf&=VL73O5}I+bsUNAkUS8WnuEh9Fk&Rz zusWwcRFq~kymOPabTJx$8)T9Yg_458JCG|uo@|_Qs0a=T!S{rD2j&>3)!=uB4!$^# z%F;oeAvB#$O*JBL_4qIw8j>VL1y{y&+}%a#*G zEQo}&reII1lc~W@lVG=vA`6+8TY{jS)rd}tdRbRG1izWk>(4DhX(n|GcL2b0-;V8s zBPJXyfMyX^-*8(7Q;1JVD&vQ1Rv@L!2e1WibEMzF4o~3NO=lS08arGaalv+z!ie>%1LE_dqDdG$ia!MruH?j**C3wV z7NXh#9la8aYVm(K-zdOCb}U9XLiiZQ25D(-wtD22+$0HL4haf?8&yBbpPHc}|6u{t zG`w_gXnU6+0oB!BT6yqS#PlwYZ7BHq;X~&iv|N!`0f_JqWpk1ODBV{Tc*4ysZze){ zHA(7i@+ZF)sb6`1n^s_^kMF*=Hw9*z&SPHsEsDf;NNOsIW8kE!JGR+?+rLFOiBzDR z>Y)-h<<5KKJhb*s!+l<#OjqsZ{qVbwRQj`l@QEGEcmhaKE^3NK-iY-d=T{cmLW7{H zLHI!2xoUGUdZET}fLPsURIFY%Cr5^G1CzV zDt`ta5_7g_;_joXXJ)p;HE)eWF!eTNz3OOxnVi9-@jS_&%zHq>dl*3m}^+KHb*;^bR z!%o2J4c2b&0dO+xc6z?eB=>E9b;uq`Ng_JVRcZ$J!OF41wpsc}l%r2=gVPZYcPEg3G65EeO|t78XE1zFF5wV>d47^O~1PA<`@% zsQ3w&#<9r6MEWJ zKUP_eUs>6P^}A;fZUaH(`^V>MN=oc9b3KlU_5#iQN^$lBBm4(YC?;G165dzlad=M5 zl4+KAhu$tfj+&}!!aHOzsfk2)94b&^Q z6$k~R?mTxs#h(XOWd;df&>JD`ft@=1M|e<7#f_u4A)8?i7CS5hiINV?BeUDQz^t@? z6Ji{&twHcaJ4F93B@a2BVfXwpPb^F|2cMAnHklf!L_A<>rTLR?*{V#Q@QQMW%4nTK z=^i(pr&AxFui!|Cu3Cd@?vZeY8*ku$=LWn`s!gw6r{( z0W5HS9BPycd4|+fRO;l_!nDZf8h=+kqTq{MJbSxPFSim`~zRy14jt__II%PJYW9x_>0=>jE!4 zc-c?$78v;JfTQo~%IH&Gg?_Lsy6=4asf?8N$enf0RH_H9PMR}btLZ>;h4v4OZ?(ou zAyQ41!kGf_7-k^)`G=i*CSei+uj=RN9|Ail-e2z6wnS*o&amm5bs64JeTK7P-s;6E z?d01WwLWTQ!`z9NqFB4t;{ysok z^DQQz0~M}Vw?uyD_~E004K+1nChbTqC>Sjhalj8Hve^D^q}LY_2v+2=eev7q;K576 zzUkgT5sq_f6BlMb%It`ZSXZO{aPkDcG|nUh*%IE%e0Sb4-k=OnG;NLG}jR32m z1^Sklh_+N*u$b7&Zi&G8>07|vU|$QYXxHDH>hM>up4q+^t+qF4$%KZ6QgEk#LVy{` z*MKPR*YvanULhKR7|4N^p`-F=Tv0ryqO`R1EZRR>HgAyZ0RM)#1FNQO#OlvwN{jn> zdBUxYu-P;d?ZmrHp!R~H73)o;jz~P7`VL1{iSXaG#xKP&P>o1;^ypDw==jCVp9RFl z4KsH0iCWFy19c`LCWcXv%62nqfYm}aFYnIR(roFIXCG&h95(YTddjA2xd&D?xpiEt z;hmDqbUv4W2^&a)&bkz%Ih?k^m6Wbt@C~G1nB2#^9IVpnIsf@1DwXCdTl{E$K8MUJ zQpbhjXYj*h_qe zb%uRE^#k^t_(g~va_=mi$Ule!GGeGBO;10mRvE2f;gpdVcrP%CxS-zguE)fl_sqI9=Q|umHjVx~>ZiTU=Vm0~ z@D<-y+&<=yI$+C!&<$yhZQCwiyB6n0PNs`=d`23G+q@G){Z<_MvvYIiSu)~Ag-P)1 z^p<{)NNrETIWK&QY$35rSy%9qOnNYOg-#@FW?k=FibvIaQe*A6>hRh| zpUw)L7&SXFY(*L=VSlGsYb@8$&|ohBwr*N?XV{jwifP|X#6>5MCJ5&K3OJ$Z90VLDcKsXL;~cME*E^Y< zWwv~goRyW36Us)Rmq%;p-IrmDc@f8uwZW$%iP5IgziED_6LmTbb@3KLB~KR-J=9!-kCZkh;XlPW9?6sRN?Y_!xb zJ(6k|YET}$Kum*4cDp$Y*&I@WG1vu5gMQ6|#K3tFh4~z0mslLIon@^6i2?GZ5$p5} zN?LZFzl7)3(a6ZifUoVmXDId(=Mvt4-7!nczbOYf6nn}}o}@X@t>feryV%HSX-O6! zuQB)d$(u(kEmLVCv0%%B>j1a^mTyb(+~2I$K@{PEhl>-z@DDTu9OpF=_mecR8eP#i zz)4!>6i!5Pbk0vRx}2j&N>+`!ELs`Ig&YKLimbJpDfob7pxG=}n@SwLs=*f3f<_;T z%gWNegzyY9L_W=C|M*|SC~tb#9p`Wtr^o&!4~E=1ayuKo{yesZDQ-UO`5&ej|Gv-s zhotFqA>Oj8fkW@Y?oqKeYml zUgXtEN=mWP$7{nkL0g|7oQT0Q<&dVB>_DMQ&;S4dd?gI%A%)x-+l#YQb?K++kGj;> zYZj#043USuyGFv#qUuI2K)}-3(oH(RSZ84|7y!rr?EoiEtv5 zdC(6|PaO7`g0&}jzL-Zex9Zt5wS|!scw!N3oopK&pyY$Ze7n;(0{J)-~UO?jsfAXz+S>7ChBV1U3*Z(}8AAGNm zppL}VRfD&J0D(MM^VTk!hRCKKWT?_;t$?s3Bp`qX^BLB2`;CltXNjR1h^EkEfRJ!< zgxm-C=Yx)|Z#4^z;TVO32Ney5LvTZi!umSgw(7K$P9Icpzyt|{aEphU3Au=O1oANQ zX?Pf6mFSonU6rRTdV2iXuWbW>#N5z4N3xZ)!_Is3*LFas+oc>RKL4l)k*xd=3&3^Z z=9S?2KNH7Ge`!0b7f2~KC!?dLXMommshzc{zUV!|L=0#^j}yIEVhodj2G|G|`#{-B zts7C`t*Q?e{nGIb&_w{I@1e6wJ)wqz7g5K87bFr^&k<5GNvoavEjU8KKpD8u`mHzs zBll$hvt9R(a9m~Wx7f+L>G1{RmsJ5o8z>_sK%B|%Kb)`t^e~kL5%FIIse7>r9Hfy9tEg*L#VOE9V|o7NO9|?h z-{(<@(X&ZYaBRqF2$!U9JP|DymUeET{sw)(CHy3jMumpW9%+@2d?_%kaxVU9=*rpP zkc#s1YtVTSwm+1jm#!1Ad9y0|E_v7XPP#h&2sLp55PH|>MgsK^aN|}INnJn8iYh{i zIt&rFP4zF0ib?EEQT4KO*;Hecs=t7^-CVChbH16nQ*KK<=gY`ovW^#!d}H%&Ogb2%W4~|8CmUB!zJi^>w?Wcd z7Gv>pl=rPav`tiu$tC>>$T;G31|l+BD^Gl(Gtez0OVQ`KqM?YEZ3jlcP{kyQ*Nwz# zZl4Fh%=b%jfwWKJS-6yAC0d{_Up`b#-e~Wqcei-?;rbK%cJsWX4R@}oY%qTjRF`Kg zkdyv$c^cSQ4pV9kHGHG9pg;V(?w+Yxae8)fT*UB|A-c$Vu83kv5B2-IJaxsz=V%ub znLBaDCUf`x_DOCzaEU`^bJp;3%sr02?PKe@WZqPA8Y!tuM=z0ClR5SQK{qo?{g(KQ zee?Xsm1UMQEbF(oR((rUQs(3Pbp6yojVCMt?4NS9k(;x0acPEs2zb7}?Vxw42P><_ zx;KKu8(1nrO)Sdk?WB^w+fyceuos~6j{Cx(Pd(=qZqw65c&XHHd#in)_hWu^`;wUC4T8^6SA;+Z@gh; z!G3?ncVXLQ_Td_;hc1%ZkJeqyV2G@VyLIafEQy5kMp%<#22CwigbNsEZk{#0d$E|D znI))sn~S6HY=?Q`$qVmi;X3KowQXCA7x^vL#=K%)xir;Va@Zn+9ecl`T?S^6k=NSc;b)m*RM$^6Ef{4h(xecNS1CI}upgCJO z?F#ILD$Xt`U0%N@Yew(@(p-(Tyx$9*Nv7n?3zUC3s*Jn7go ziRMrY+lvx7`;qfTllmbVeP}ZBar@wuS(YE)l~F+YFC*&&81CBT@aK#C7aTxHGNbz? z$q@NxBQs+xZ7=s^f!knOzi?-}{9l0c9HH$kEn-Sa@5||%>6zw)l~YxPDPfkx5ODL{ z)cZ2Ad#W@N4`fX!Hf*@X{0GTFqY6%vSS78%m=fw=lzt4BwoN~#1%tPpOqRSRf8meK zgYJvh2E)*=`HMZ7M0fMY`vIR_zD$ji-C)~b=n>C$^+JA{ zlMgs4Pck-}$Wr0miay*uaGHE7dyGSH+xtGa%<`aVP9g+ zElWS6D*;Azu|}E+?{d=9^MZbTbtgXP`#HMQocN%&w6tW>NSaT&vJ-8}ni?FQ zX)^qfW2E^y>~;Lic;8;;79BTOA}Grw{eE`1mo?|b{l4+P4Xn7UJVS!ozE?HUXKN_W z{EsVN_KIAI9Hk7+nlGqVJ`)r~@NketTwX%{Im06KH2Id@1_uqvl!%XP2`vd<}noZ*}8lGh~ilg8^5WHW;Qi9OCQx%yuZs{;kU*J-%Azcm)8aM z{8$Z|Z1M*v;_9e2n3Le_Y>xT`?T%_xQVX`&Ltn;AX#Q;@%h>XXb;X2q zOeBQ5R0cIc@*#p7H);&`ZFk-j|2hixW4=E>qK{y2?&DJoXkAprp3G@$o)U4Q-!%!0 zIlq2?IVzJKucp$YVCX&SjGWClB;$j59feh5yxOH499!8(SVpPeheN0;RU6Da(%8-y z??%q8EB4Uu4*kvRmH~E)NSad*r3h}lwEsIR2c=GLjP|w#klph99j)BfUFpwT+_`B_ zt0#{PrlrOuBPaUe_OVgb6ohh<+r^3YA2C?rvV@AVa&b#jfr+tKgL{d`56R$O9zv#%!FW`vKH!5a{l7u6gaY3hvt zW0<@{b*kr;egDZ~PG26$^I*`>%2|t$77MITan5Im%a}MB!1#{2I zha6S2&0@W}SNpiKhVlLk#9mx*+z2m$A#{vmXgdH(;_16`-^Deh3)(BpQ1I`r5N_3S zaNzrF{F=OrzVTXLQpMz#4OxOeLOphfFJ_ZyrK!Sgq#tHV+Fz*RAyH@^qzJ|VerWmN z-1q*ASLSni$~>+}vp)WePIEG~y@!JrQc13%eboV!g@RcA|kGU4hfd zzEF!)oQI~tY0jQuch#Tq0`&AaGk5!bxRIH8&t}3~Tuf}UTpjrJ5kvm|vI@W>`cAK_ zry%n9*jPdyvh$fRXn#uKE{9Ufa%hZ6w`?+i8ZHFtB!{g(eVeTL5*j3|YVH&bo0{zw z=3_9g0j|WFtnRsp2HR8SVccY_!Rxv(T}L0`Ts#jxf_i+sOYrbAju_Zt{Wf;P>Y7kn zS)gyu{jeik>gEX0q;yG4f~(M$+hsIML^8Np_Tog@tC~Ga*c`gcs;LP(5P}FZV$#-C zqYCGB<_hi=Kt!6JrZ|k=ERmFW4{X&>^i$TzMh?VDW`iT$3Ia9o; zAZ^%}63Pj@W)R`Y=X_G^8SYm7>as?qSnJcBj!N(2qJk8;1$mE3amT}< z_UprT|Bn}5%M>m?Us}u30QZezAy;k}ls$y8jxFuuc{DvbTtUp9H_&*062w|($>0<_ zmfCkxqPIC_ec$n^?Fp0oK;AR&$%qoYWSi(CPQqGk@>=7ma&i5wA>Nmh*%P(th&tAF4V zV_G3F_`1Gz+tIB+Lu-v#hx7e5ljRGHAKZT@Cy5O7S6$o?P7x-V>Sa1hYPA=Kf38G%^7CXuLUX|Y7z&T@|s5+>r~Y}rAF=c1kOkjS?fMS!w=8SoWiZ3(Dg@y3Y;4d>vC40Tf?}6i=GY$ ze$6j1LhQ;nz{Rr|p?0xX!I9u8P;mO`VH^jT0BCe+39y1D?RX*2L47d#xrUmWnte3Y z%;BW8G(iLXj7+xG)h8NCeTFhh+yuVSfs6CLymP$>Ywjrfk~Df55-@_Uflgc|^` zK_G};dv})|&^N^a3#JNvgRFYE?$HG7hc(q<1?Cfs<Z~2>i#+7p?qBLF=w@BV z#bbq_nnXjf*~^o)6FmX&SO_%&2vc@hQYjbm7Ts}*V^=Wj`9!aEG$le!e{oYBCT`&I z>Iv+RJmu#%j@BW1TFALD>Ly8ahoGRy6kiD^5^FSj;oc}bEAd<=OwF~Grdow_`}UdK zN?Zwg^~pxj2mB0`*O+xxEj%b0!b7ZCR3$mPT?J`5mMok)=^rsguJU1M-+&u?#wev4Yg#O}|1=39)vU z0dgP}lRZ6c2j`8S^*7$&ZEZuY+CH6ienxj%C{l~uSKwd^Ug|G6YxU3Wtf$3UCi8j^ zwY<#y3G*PZFnQjC*l&;^lhfh$$ZDrw6SNloSUgAxh@Qzpc+#4_z(o7tPqK}ds2;6r z=}W*{J6yq=7m*Z)MCA*bRVcZ^;M0?8-y$|89}C{N>S-1{z$u-E(eK{}z}|Oa6K;YN zo95m|IE#}%`s3izuDXaGr^Ds;x82<=VG|RDBf} z6%~D%p}%imU2yYvpf&WcxORF3KQXHPgt+cFYcMlUNxd5j*#93xKE(*Ne;gR#vgHB& zNB0KohY2WKhA@hA*4)8g^Lta{TcX`E;uK8G`a>_kJnP7X8Tf=VOqdRkQ++(ptF|`S zE$>mjwv@U?1U1=)LuB6r&TCS2YNCouvINI-0ececywu~9AcQzu;Jsr(3ed1^jAf9O zJ2n1}5I8npS8d;VocEV{pM+H+mJOrVP4Ak0t(~Z3pVXxfXB;%lq;8%|ym)bMUeq8D z^dX4WBq}pXP$4IAY(Oiq4*AOtZY>7Mvx}$g%ggsJ%N>(tXIj82kWte%%)@$*UWaC* z-!-=IxW*94<5-`wf&`pA!2t>UzCJz-k*Cehp0qQ=LIdYeHwkSJ+CmDpTMp+q)vkv0 zuI>DA=6x^DUs^|dHRu^J1?d9L@1P*15}Lqc>BkBEdw-nJ^zIgJ5a9*d8lKWSM@ zHuB!#GRZ*HW6?7E1ZEc)v^b~0N3pXTMBBz>f&V?6o=+o@!kR?5*TzV%dEa_AFeAY7 zd3yD#HJ-SX52EI%wM5l)Euz-!$%rf0*l-dJrzpe?6>+*!=GP->V6Y&1v?E10K()BQ zx-9TD5?B!ZxLR!mTELvpyZVqm9!0)LHGybRB#rVTD!F_b&(T_{&mAYAR? z7d0n#M;mO|5{uan5bkg)`cWuG9DSf0WpL*nZ~{oAh>{A)4$L1$Z&Nn4wMjq`H6UIJ zOr2_jWEQ?hguDutpWynwnxYL#%g`{p^;3$A=VgXQyCiak5%I>|Q^w&@QGI=V(BJ-q zdt&YM2SFzWsvR)>10SaiBXo<*J(L##v_;Zma_zUc4fP|faato3j*Xm9Pan)Wc_Fxd z_TT!~7rl>XZP0>56SlDV0Mv4FPz4}8QE!Fj_z6xybYgI35iOb>+!{-XOzH!h;g*MO zeyHO536tUsjb@&W~6-1GCesaXWzsqwRtoa-%`H&(QkIuUqx}!p#Wz{A^|_2*K!&z5DNy zV@wDMd^WWR56`;zAK9`1=9&!p{D4wi4!w=*#XK;oE%7*tMO8S!TLaukOoz^WbU9sG zPG&XRa;gYU<89V8D0uye4MfiNrWBzWIehC)+$U&o>Ny=ysyn;5Ky+!P$eiu)nudrK zjA@4^{T)(w7n~vSx;?8V#+$cGj={ zN-b*H-4pyYT5QI5T_RVP%dCJ0gT2bT3(55QT}_R~T3*g9lgb6*SnWMR@WKvGAcj6e@%HbF9A#F}iN~$ivS0?n(KQ0C z6tda1)IF~U&joWIH+$5b3nOJZxwyEOSs?-ZcYQR*-cIaPt6yst5EAl`Wp`O+=Yze2 z;>6h7qQ6083vpLr4~V}qG*t7~clEEDBpVyhi0$7^!M$~#)16BxDPEqQ$htd{Gc!e3 zpH(zgebgkp@7~sUP6|NH3?ItLqos;5nj#S-a;^3SUZ1+FsRIZ~th&^MoP_)Z#bnYmM;i z*x21{|Hi)a{a+=dT)309Pe~9_WvzZl<7>k~i7)*B`eu2&@@ocnN*1o*8jn7BQd;^? z$Ev7rWYp~@YgHuw!xmJu+CTVRCEj>DkR&Kwr~7CCMGm^xU;nk`EB3zN?b9{cpV#T0 zx&^PXwwd^T^Lf?T>1jRbe?BPN-m($7+?6%C98{iAURhv@sg`+DL&F9#U0BF1C|rqK zy?6r?D=YR|Ip4&808l8 ze{0}2OutSlT`w&yE!HHKX-u#gHDOnckLV7P0xUO8POUAGOw6;d$68wbTDC)2Hu;^X zVtL|cA`1#U0IaS0J7Z5YP-_!nyUzYNNO}GzM^lJcyJmIt>_I1M#$F;u-fYCI=eJ}3 zlyx!cWEZ5hEa-`aTmvPojEw2p8~;yrwyFTfBLM05pP3G$uzKNyrD)gh4=mZSn>vme z7{soAC7ZhGNY31o4zrRn--G$zIz^w_d{0PDPD{JrX3*iP?dqcAH2&#ikclxG!ALd# zY2%d0*B%QqjbFS@!rU(QLvivl@}?~JyIsGQ`t5nzXHK=JtXZRI?xD$UpGW)NIUh0H zpV%s{Ct`n6j*8eR$eY(n>^#1Fr<`No?7q0?&>iSLs@KG{P5CWFO_ceKw8HKNmspNt zR-t>Y2JE7X$@p{e7+c3eqGDkI&5+7}3$vM1H|<_U&a(qf+l>t4+sC!YvU=_v910V< zbnq8nK}OEAoI@%<%GMDfWmKccyzl+{_pCR`CA5dW`d7Aw9xJnYRy}xS!)nfyw$I!B z7yqt=j*QBuY*r@acI!JxX|i5P*S$_1&Rxx-`0NQc5RYsd5W#uk^d$B4 z^_xf};owTLpl4h;wN#_&Aam{zSleveaK zIoa?hed{v@P<0LUQuhSMQZp`v&c+m@O_rSs*R+a?iaWWvKYAY$*W*NxP2r~_VOxFe zW8~gY>#OO8`;0#N80QB)Rb1#>GVRuNa{8{Pr(gOlW8Fg~l^y;v&zRWdE;3`VDzy{R z62u$e2Cu!=L5+4Ws#m>n&GfX;7)cN;7;ap<_5s-wgvp~5q^`X=bPp9y%|njX^?Gi0 z;ekfhF0Uh;A2%gF90`k23Q0PWp)f09h1(NlK(K9XHIyMo5|Pfm4v4iZD7>MeD=5Bp z*_2NMHT}Bq-s1t0R1V`${UN9f5c@JPOrxISeX@)i>~)sPMf;)888V<hM2(o|mcn<`%Q2DHpdb zN%TTq)h2rS=VyL<1H&BMcbf*dIkGyP-=G`81s`Rb-(T@d8-5(#1U{EzIv@(fQ%6sT zjWmpegoJ{_Y%yE6AN+&!=g)t|P|o+Li={?T5Y23ndI`uF=b_e71WhCn$(`tI>FtI- z>dH>*%bA(6{^U_L`2PV)Y|);4)&A9};LivB?$?R(AwP%04Zh2L^ZH2L@>i3Y$Z$rl z!PQjyj1I7&-v`h#gUJ&;d@`WV0#c@JM8P&ch%qTL4)xK