From daef1657aa36e2880dedfc2e47e0730eac03e69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B9=9B=E5=85=AE?= Date: Fri, 22 May 2026 21:50:16 +0800 Subject: [PATCH] Initial resume site --- .gitignore | 8 + README.md | 10 + astro.config.mjs | 5 + package-lock.json | 4750 +++++++++++++++++++++++++++++++++ package.json | 15 + public/logos/chagee.png | Bin 0 -> 11020 bytes public/logos/jingyingbang.png | Bin 0 -> 9951 bytes public/logos/seaart.webp | Bin 0 -> 5208 bytes public/logos/seabuzz.webp | Bin 0 -> 4598 bytes public/logos/vtrix.png | Bin 0 -> 2336 bytes public/logos/zhongjun.png | Bin 0 -> 12357 bytes src/data/resume.ts | 316 +++ src/pages/index.astro | 964 +++++++ src/styles/global.css | 1117 ++++++++ tsconfig.json | 3 + 15 files changed, 7188 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 astro.config.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/logos/chagee.png create mode 100644 public/logos/jingyingbang.png create mode 100644 public/logos/seaart.webp create mode 100644 public/logos/seabuzz.webp create mode 100644 public/logos/vtrix.png create mode 100644 public/logos/zhongjun.png create mode 100644 src/data/resume.ts create mode 100644 src/pages/index.astro create mode 100644 src/styles/global.css create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4daf0f2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +node_modules/ +dist/ +.astro/ +.DS_Store + +.env +.env.* +!.env.example diff --git a/README.md b/README.md new file mode 100644 index 0000000..05bf37a --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# 王元有 - 前端工程师简历网站 + +基于 Astro 的个人简历网站,内容整理自 `王元有-前端工程师.pdf`。 + +## Commands + +```bash +npm install +npm run dev +``` diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..f1f0c30 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,5 @@ +import { defineConfig } from "astro/config"; + +export default defineConfig({ + output: "static", +}); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c1ae73c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4750 @@ +{ + "name": "wang-yuanyou-resume-site", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wang-yuanyou-resume-site", + "version": "1.0.0", + "dependencies": { + "astro": "^6.3.1" + }, + "devDependencies": {} + }, + "node_modules/@astrojs/compiler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-4.0.0.tgz", + "integrity": "sha512-eouss7G8ygdZqHuke033VMcVw5HTZUu+PXd/h06DGDUg/jt5btPYPqh66ENWw/mU78rBrf/oeC4oqoBwMtDMNA==", + "license": "MIT" + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.9.1.tgz", + "integrity": "sha512-1pWuARqYom/TzuU3+0ZugsTrKlUydWKuULmDqSMTuonY+9IRDUEGKX/8PXQ1nBxRq3w85uGtd9q9SXfqEldMIQ==", + "license": "MIT", + "dependencies": { + "picomatch": "^4.0.4" + } + }, + "node_modules/@astrojs/markdown-remark": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-7.1.2.tgz", + "integrity": "sha512-caXZ4Dc2St2dW8luEg22GlP0gupLdztCTQE4EzZOxW1pqWXz9mbeJEuHUkgDYcKWW8tjIHkydYDhWLVoxJ327Q==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.9.1", + "@astrojs/prism": "4.0.2", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "js-yaml": "^4.1.1", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.1", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-smartypants": "^3.0.2", + "retext-smartypants": "^6.2.0", + "shiki": "^4.0.0", + "smol-toml": "^1.6.0", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.1.0", + "unist-util-visit-parents": "^6.0.2", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/prism": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-4.0.2.tgz", + "integrity": "sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.30.0" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.2.tgz", + "integrity": "sha512-j8DNruA8ors99Al39RYZPJK4DC1bKkoNm93mAMuBhY9TCNC4R8n1q7ovFnJ5qhGh5Lsh7pa1gpQVpYpsJPeTHQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^4.4.0", + "dset": "^3.1.4", + "is-docker": "^4.0.0", + "is-wsl": "^3.1.1", + "which-pm-runs": "^1.1.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capsizecss/unpack": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.0.tgz", + "integrity": "sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@clack/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.3.1.tgz", + "integrity": "sha512-fT1qHVGAag4IEkrupZ6lRRbNCs1vS9P01KB/sG8zKgvUztbYtFBtQpjSITNwooDZ83tpsPzP0mRNs1/KVszCRA==", + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@clack/prompts": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.4.0.tgz", + "integrity": "sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==", + "license": "MIT", + "dependencies": { + "@clack/core": "1.3.1", + "fast-string-width": "^3.0.2", + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.4.tgz", + "integrity": "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.4.tgz", + "integrity": "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.4.tgz", + "integrity": "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.4.tgz", + "integrity": "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.4.tgz", + "integrity": "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.4.tgz", + "integrity": "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.4.tgz", + "integrity": "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.4.tgz", + "integrity": "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.4.tgz", + "integrity": "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.4.tgz", + "integrity": "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.4.tgz", + "integrity": "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.4.tgz", + "integrity": "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.4.tgz", + "integrity": "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.4.tgz", + "integrity": "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.4.tgz", + "integrity": "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.4.tgz", + "integrity": "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.4.tgz", + "integrity": "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.4.tgz", + "integrity": "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.4.tgz", + "integrity": "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.4.tgz", + "integrity": "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.4.tgz", + "integrity": "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.4.tgz", + "integrity": "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.4.tgz", + "integrity": "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz", + "integrity": "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz", + "integrity": "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/core": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.1.0.tgz", + "integrity": "sha512-jLJtSJeuFffqX6/inRE1zqU5aFv2hrszvYgq3OjbAgFRZiWv7abKMDdQzYxuSDfmUPQozZvI/kuy6VMTvnvqTQ==", + "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.1.0", + "@shikijs/types": "4.1.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.1.0.tgz", + "integrity": "sha512-YquhawCUgaBfhsS72e2Y/dI59gCBNPHu3fEO/tvLaXrTssxZrY5ddjtNLTwndrMgPo8b3IscE+xoICDzpTmlFQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.1.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.1.0.tgz", + "integrity": "sha512-axLpjVs45YBvvINa+dJF+NPW+KtFkNXsFr4SDw2BMj9GdeMnGxVB9PQb2xXlJYovslt/nz6giedAyOANkfc7hg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.1.0", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/langs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.1.0.tgz", + "integrity": "sha512-nwOMruEkbgdZfQ/b8CgpNBVOpvG1k0N5tbmgiFeqsan401+x3ILqlzZJowSla4Agmq4hG2Uf2wh5jLTEhR8VSg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.1.0.tgz", + "integrity": "sha512-zx2/2Uwj2q9X3KSyYREEhXO23xBw5WUhP4orK2lE4r+t9JGITmEe0JH+wPmJhqHpOT2bRRs6lAL945+LDvOAGw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.1.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/themes": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.1.0.tgz", + "integrity": "sha512-emCcTnUM7yO2wltYbaxm+yLvcCI4+h8XBKc4KmJ7EZUXoSGjcCHifkI//R4OFit9ewpg7H2/9tjOuXrT2v/Knw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.1.0.tgz", + "integrity": "sha512-3EQWX54fMpniOrDblzAhiwiJwpiTMW6+B9DWyUd9ska483tbayFYuw47UxwuPknI31bKnySfVQ/QW+jFL4rFdA==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", + "license": "ISC" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astro": { + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/astro/-/astro-6.3.7.tgz", + "integrity": "sha512-zIeDRrI0qNgN1lcCjNqt6/IVCVej7VwSa326cO8uP9BOk1cg4QuffhLnOn2gCgWQr32/wxpSRFfXiLKHglu1Tw==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^4.0.0", + "@astrojs/internal-helpers": "0.9.1", + "@astrojs/markdown-remark": "7.1.2", + "@astrojs/telemetry": "3.3.2", + "@capsizecss/unpack": "^4.0.0", + "@clack/prompts": "^1.1.0", + "@oslojs/encoding": "^1.1.0", + "@rollup/pluginutils": "^5.3.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": "^1.1.1", + "devalue": "^5.6.3", + "diff": "^8.0.3", + "dset": "^3.1.4", + "es-module-lexer": "^2.0.0", + "esbuild": "^0.27.3", + "flattie": "^1.1.1", + "fontace": "~0.4.1", + "get-tsconfig": "5.0.0-beta.4", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.2.0", + "js-yaml": "^4.1.1", + "jsonc-parser": "^3.3.1", + "magic-string": "^0.30.21", + "magicast": "^0.5.2", + "mrmime": "^2.0.1", + "neotraverse": "^0.6.18", + "obug": "^2.1.1", + "p-limit": "^7.3.0", + "p-queue": "^9.1.0", + "package-manager-detector": "^1.6.0", + "piccolore": "^0.1.3", + "picomatch": "^4.0.4", + "rehype": "^13.0.2", + "semver": "^7.7.4", + "shiki": "^4.0.2", + "smol-toml": "^1.6.0", + "svgo": "^4.0.1", + "tinyclip": "^0.1.12", + "tinyexec": "^1.0.4", + "tinyglobby": "^0.2.15", + "ultrahtml": "^1.6.0", + "unifont": "~0.7.4", + "unist-util-visit": "^5.1.0", + "unstorage": "^1.17.5", + "vfile": "^6.0.3", + "vite": "^7.3.2", + "vitefu": "^1.1.2", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^22.0.0", + "zod": "^4.3.6" + }, + "bin": { + "astro": "bin/astro.mjs" + }, + "engines": { + "node": ">=22.12.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.34.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/common-ancestor-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-2.0.0.tgz", + "integrity": "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">= 18" + } + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cookie-es": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", + "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", + "license": "MIT" + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.1.tgz", + "integrity": "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-string-truncated-width": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", + "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", + "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", + "license": "MIT", + "dependencies": { + "fast-string-truncated-width": "^3.0.2" + } + }, + "node_modules/fast-wrap-ansi": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", + "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==", + "license": "MIT", + "dependencies": { + "fast-string-width": "^3.0.2" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fontace": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", + "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.2" + } + }, + "node_modules/fontkitten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz", + "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==", + "license": "MIT", + "dependencies": { + "tiny-inflate": "^1.0.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "5.0.0-beta.4", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.4.tgz", + "integrity": "sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "engines": { + "node": ">=20.20.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/h3": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", + "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", + "license": "MIT", + "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" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-docker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-4.0.0.tgz", + "integrity": "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.0.tgz", + "integrity": "sha512-5YgH9UJd7wVb9hIouI2adWpgqrrICkt070Dnj8EUY1+B4B2P9eRLPAkAAo6NICA7CEhOIeBHl46u9zSNpNu7zA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz", + "integrity": "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "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-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "license": "CC0-1.0" + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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-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" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.0.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-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.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/oniguruma-parser": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/p-limit": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.0.tgz", + "integrity": "sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.2.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.0.tgz", + "integrity": "sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.4", + "p-timeout": "^7.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/piccolore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/rehype": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz", + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "rehype-parse": "^9.0.0", + "rehype-stringify": "^10.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", + "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rollup": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.4.tgz", + "integrity": "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.4", + "@rollup/rollup-android-arm64": "4.60.4", + "@rollup/rollup-darwin-arm64": "4.60.4", + "@rollup/rollup-darwin-x64": "4.60.4", + "@rollup/rollup-freebsd-arm64": "4.60.4", + "@rollup/rollup-freebsd-x64": "4.60.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", + "@rollup/rollup-linux-arm-musleabihf": "4.60.4", + "@rollup/rollup-linux-arm64-gnu": "4.60.4", + "@rollup/rollup-linux-arm64-musl": "4.60.4", + "@rollup/rollup-linux-loong64-gnu": "4.60.4", + "@rollup/rollup-linux-loong64-musl": "4.60.4", + "@rollup/rollup-linux-ppc64-gnu": "4.60.4", + "@rollup/rollup-linux-ppc64-musl": "4.60.4", + "@rollup/rollup-linux-riscv64-gnu": "4.60.4", + "@rollup/rollup-linux-riscv64-musl": "4.60.4", + "@rollup/rollup-linux-s390x-gnu": "4.60.4", + "@rollup/rollup-linux-x64-gnu": "4.60.4", + "@rollup/rollup-linux-x64-musl": "4.60.4", + "@rollup/rollup-openbsd-x64": "4.60.4", + "@rollup/rollup-openharmony-arm64": "4.60.4", + "@rollup/rollup-win32-arm64-msvc": "4.60.4", + "@rollup/rollup-win32-ia32-msvc": "4.60.4", + "@rollup/rollup-win32-x64-gnu": "4.60.4", + "@rollup/rollup-win32-x64-msvc": "4.60.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", + "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/shiki": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.1.0.tgz", + "integrity": "sha512-l/ABZPUR5v70jI10EzqfMS/I96vjSGv2y0ihUV+WYFzv0EfvW4s54m0Lg8wCrrL+2IkwBzFTuxkZjPf8b2NX9Q==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "4.1.0", + "@shikijs/engine-javascript": "4.1.0", + "@shikijs/engine-oniguruma": "4.1.0", + "@shikijs/langs": "4.1.0", + "@shikijs/themes": "4.1.0", + "@shikijs/types": "4.1.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/smol-toml": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/svgo": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", + "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tinyclip": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.12.tgz", + "integrity": "sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA==", + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, + "node_modules/tinyexec": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", + "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unifont": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.4.tgz", + "integrity": "sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "ofetch": "^1.5.1", + "ohash": "^2.0.11" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unstorage": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", + "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.10", + "lru-cache": "^11.2.7", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "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", + "@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" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.3.tgz", + "integrity": "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.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" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "license": "MIT" + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6fea8dc --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "wang-yuanyou-resume-site", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview" + }, + "dependencies": { + "astro": "^6.3.1" + }, + "devDependencies": {} +} diff --git a/public/logos/chagee.png b/public/logos/chagee.png new file mode 100644 index 0000000000000000000000000000000000000000..303b8457473190163761d0425272c457bad089b4 GIT binary patch literal 11020 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 literal 0 HcmV?d00001 diff --git a/public/logos/jingyingbang.png b/public/logos/jingyingbang.png new file mode 100644 index 0000000000000000000000000000000000000000..db7ab3b98be47644ee49bd78b8c65a6d69f6988a GIT binary patch literal 9951 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 literal 0 HcmV?d00001 diff --git a/public/logos/seaart.webp b/public/logos/seaart.webp new file mode 100644 index 0000000000000000000000000000000000000000..e491054f72492e6b6813fd006494a146a7199be0 GIT binary patch literal 5208 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 literal 0 HcmV?d00001 diff --git a/public/logos/vtrix.png b/public/logos/vtrix.png new file mode 100644 index 0000000000000000000000000000000000000000..87b3c7b8e2d5a78422bdedb1bb1c55dadcb7813c GIT binary patch literal 2336 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 literal 0 HcmV?d00001 diff --git a/src/data/resume.ts b/src/data/resume.ts new file mode 100644 index 0000000..276e490 --- /dev/null +++ b/src/data/resume.ts @@ -0,0 +1,316 @@ +export const resume = { + name: "王元有", + alias: "湛兮", + title: "前端开发工程师", + intent: "求职意向:前端开发工程师", + profile: "7 年前端与跨端开发经验,长期负责 Web、App、H5、小程序与管理后台的架构设计、工程化建设和核心业务交付。熟悉 AI 产品工程、SSE 流式通信、Next.js/Vue/React Native 跨端体系、微前端和 Monorepo 协作模式。", + basics: [ + { label: "工作经验", value: "7 年" }, + { label: "技术管理", value: "2+ 年" }, + { label: "项目用户规模", value: "千万级 MAU" }, + { label: "教育背景", value: "电子科技大学 本科" }, + ], + contact: { + phone: "19980439383", + email: "419021733@qq.com", + emailAlt: "wmagmgema521@gmail.com", + meta: "男 | 29 岁", + }, + highlights: [ + "主导多款企业级产品从 0 到 1 搭建,覆盖 AI 模型服务、AI 资讯对话、供应链、门店数字化、工业互联网平台等场景。", + "掌握 Vue3、React、Next.js、React Native、Expo、UniApp 等技术栈,能独立完成 Web、移动端、App 与管理后台方案落地。", + "推动 Micro-Frontend、SSR、pnpm Monorepo、Git Flow、代码审查、CI/CD、监控体系等工程化实践。", + "有明确的性能与效率结果:构建体积优化 30%、首屏白屏时间缩短 25%、组件库工程化提升开发效率 50%、重复开发成本减少约 40%。", + ], + metrics: [ + { value: "-30%", label: "构建体积优化" }, + { value: "-25%", label: "首屏白屏时间" }, + { value: "+50%", label: "组件库效率提升" }, + { value: "+40%", label: "团队人效提升" }, + { value: "40%", label: "重复开发成本降低" }, + { value: "30%", label: "消息渲染性能提升" }, + ], + skills: [ + { + group: "前端框架", + items: ["Next.js 16", "React 19", "Vue 3", "TypeScript 5", "Tailwind CSS 4", "Nuxt/SSR"], + }, + { + group: "跨端开发", + items: ["React Native 0.79", "Expo 53", "UniApp", "H5", "微信/飞书小程序"], + }, + { + group: "AI 与通信", + items: ["Vercel AI SDK v6", "SSE 流式通信", "多 Agent 协作", "Markdown/LaTeX 渲染", "AI 对话", "AI 生图/生视频"], + }, + { + group: "工程化", + items: ["pnpm Monorepo", "Git Submodules", "Qiankun", "Lerna", "Git Flow", "Playwright"], + }, + { + group: "状态与 UI", + items: ["Zustand", "MobX", "Pinia", "Radix UI", "Ant Design", "Element Plus", "ProComponents"], + }, + { + group: "基础设施", + items: ["Alova", "next-intl", "i18next", "ARMS 监控", "CDN 优化", "Adyen 支付"], + }, + ], + experiences: [ + { + company: "成都海艺互娱科技有限公司", + role: "React Native 开发工程师", + period: "2025.05 - 至今", + points: [ + "参与多款 AI 产品从 0 到 1 搭建与架构设计,覆盖前端性能、交互体验、国际化体系与多端组件复用。", + "在 AI 对话、生图、生视频与多 Agent 协作领域沉淀工程经验,负责流式通信与前端渲染体验优化。", + "支撑千万级海外用户产品,推动多端组件库统一建设,减少重复开发成本约 40%。", + ], + }, + { + company: "四川茶姬企业管理有限公司", + role: "高级 Web 前端开发", + period: "2024.03 - 2025.03", + points: [ + "主导供应链管理系统前端开发,实现采购、仓储、配送等核心模块。", + "独立负责门店报损与食安管理核心功能搭建及迭代,覆盖国内、东南亚与北美业务逻辑。", + "引入阿里云 ARMS 前端监控体系,落地 CDN 静态资源优化方案,并制定代码审查与 Git 操作规范。", + ], + }, + { + company: "中钧科技有限公司四川分公司", + role: "前端开发组长", + period: "2022.04 - 2024.03", + points: [ + "负责经营帮 PC 端微前端、门户和商管核心模块开发,完成 UI 还原、接口联调及性能优化。", + "从零搭建新 E 畅行小程序基础框架,完成技术方案制定与全流程开发。", + "主导经营帮小程序、H5、Admin 后台迭代开发与跨端技术方案设计,建立 Git Flow、代码审查和新人培训机制。", + ], + }, + ], + projects: [ + { + id: "vtrix", + name: "SeaCloud / Vtrix", + subtitle: "AI 模型服务平台(Web 端)", + period: "2025.09 - 至今", + tech: ["Next.js 16", "React 19", "TypeScript", "Tailwind CSS", "Zustand", "Alova", "Vercel AI SDK", "Radix UI", "next-intl"], + summary: "面向全球用户的 AI 模型聚合服务平台,聚合 LLM、图像、视频、音频、3D 等多模态模型能力,覆盖 C 端调用与 B 端组织/分销管理。", + modules: [ + "分销商客户邀请、折扣模板、额度分配、销售配置与利润率计算。", + "多币种与汇率体系,封装 useCurrency Hook 并贯穿 Pricing、Billing、API Keys 等模块。", + "组织成员、角色权限守卫、配额设置、支出限额、账单报表、交易筛选与 Excel 导出。", + "i18n Submodule 架构迁移、企业微信同步工作流、通用表格/筛选器/分页组件增强。", + ], + }, + { + id: "seabuzz", + name: "SeaBuzz", + subtitle: "AI 智能资讯与对话平台", + period: "2025.05 - 至今", + tech: ["React Native", "Expo 53", "Expo Router", "Zustand", "NativeWind", "SSE", "i18next", "Adyen", "Lerna"], + summary: "海艺 AI 旗下 AI 新闻聚合、智能搜索与多模态对话平台,基于 Expo 实现 iOS、Android、Web 三端统一开发。", + modules: [ + "AI Agent 对话完整链路:SSE 流式聊天、打字机渲染、Markdown/LaTeX、思考动画、来源引用与历史同步。", + "Discover 发现页与新闻详情,支持瀑布流、大/小卡动态布局、骨架屏与 Smart Image。", + "Google、Facebook、Discord、Email 登录与 SeaArt Auth SDK 对接。", + "Monorepo 公共包体系、API 层、数据模型、UI 组件、状态管理、OTA 热更新与代码签名机制。", + ], + }, + { + id: "bawang", + name: "霸王功夫", + subtitle: "门店数字化与供应链管理平台", + period: "2024.03 - 2025.03", + tech: ["React 18", "Vue 3", "UniApp", "MobX", "Pinia", "Element Plus", "Ant Design", "ProComponents"], + summary: "服务全球 6000+ 门店及运营伙伴的数字化管理平台,覆盖门店运营、食品安全、供应链协同等核心业务。", + modules: [ + "小程序报损模块:摄像头扫码、在线报损登记,兼容微信小程序与飞书 H5。", + "食安管理模块:低频蓝牙连接 TSPL 指令集打印机,支持国内、东南亚、北美三套业务逻辑。", + "经营信息模块:多门店经营状态移动端看板,按区域、时间、指标筛选。", + "供应链模块:采购系统、供应商合同管理、供应商结算系统,对接云厉、费控等外部系统。", + ], + }, + { + id: "jingyingbang", + name: "经营帮平台 + 经营帮拉新", + subtitle: "工业互联网与微前端平台", + period: "2022.04 - 2024.03", + tech: ["Vue", "Qiankun", "Element UI", "华为云 OBS", "百度地图", "高德地图", "IM", "UniApp"], + summary: "基于信息化设计理念和区块链技术的工业互联网平台,为企业和个人提供数字化运营服务。", + modules: [ + "参与单体前端到 Qiankun 微前端拆分,拆分出 12 个基础项目。", + "负责商管、门户、经营帮系列小程序/H5/Admin 后台核心业务交付。", + "引入华为云 OBS 直传减轻请求链路性能浪费。", + "开发内部 Chrome 插件 zjkj-decryption,提升数据解析效率。", + ], + }, + ], + education: { + school: "电子科技大学", + degree: "本科", + major: "信息管理与信息系统", + period: "2023 - 2025", + }, +}; + +export const resumeEn = { + name: "Wang Yuanyou", + alias: "mrZhan", + title: "Frontend Engineer", + intent: "Target Role: Frontend Engineer", + profile: + "Frontend and cross-platform engineer with 7 years of experience building Web, App, H5, mini-program and admin systems. Strong in AI product engineering, SSE streaming, Next.js/Vue/React Native ecosystems, micro-frontends and Monorepo collaboration.", + basics: [ + { label: "Experience", value: "7 years" }, + { label: "Tech Leadership", value: "2+ years" }, + { label: "Product Scale", value: "10M+ MAU" }, + { label: "Education", value: "UESTC Bachelor" }, + ], + contact: { + phone: "19980439383", + email: "419021733@qq.com", + emailAlt: "wmagmgema521@gmail.com", + meta: "Male | 29", + }, + highlights: [ + "Led multiple enterprise products from 0 to 1 across AI model services, AI news and chat, supply chain, store digitization and industrial internet platforms.", + "Hands-on with Vue3, React, Next.js, React Native, Expo and UniApp, capable of delivering Web, mobile, App and admin products end to end.", + "Drove engineering practices including Micro-Frontend, SSR, pnpm Monorepo, Git Flow, code review, CI/CD and frontend observability.", + "Delivered measurable outcomes: 30% smaller bundles, 25% faster first screen, 50% faster component-driven delivery and around 40% less duplicated work.", + ], + metrics: [ + { value: "-30%", label: "Bundle Size" }, + { value: "-25%", label: "First Screen Blank Time" }, + { value: "+50%", label: "Component Delivery Efficiency" }, + { value: "+40%", label: "Team Productivity" }, + { value: "40%", label: "Duplicated Work Reduced" }, + { value: "30%", label: "Message Rendering Performance" }, + ], + skills: [ + { + group: "Frontend Frameworks", + items: ["Next.js 16", "React 19", "Vue 3", "TypeScript 5", "Tailwind CSS 4", "Nuxt/SSR"], + }, + { + group: "Cross-platform", + items: ["React Native 0.79", "Expo 53", "UniApp", "H5", "WeChat/Lark Mini Programs"], + }, + { + group: "AI & Streaming", + items: ["Vercel AI SDK v6", "SSE Streaming", "Multi-Agent Collaboration", "Markdown/LaTeX", "AI Chat", "AI Image/Video"], + }, + { + group: "Engineering", + items: ["pnpm Monorepo", "Git Submodules", "Qiankun", "Lerna", "Git Flow", "Playwright"], + }, + { + group: "State & UI", + items: ["Zustand", "MobX", "Pinia", "Radix UI", "Ant Design", "Element Plus", "ProComponents"], + }, + { + group: "Infrastructure", + items: ["Alova", "next-intl", "i18next", "ARMS Monitoring", "CDN Optimization", "Adyen Payments"], + }, + ], + experiences: [ + { + company: "Chengdu Haiyi Interactive Entertainment Technology Co., Ltd.", + role: "React Native Engineer", + period: "2025.05 - Present", + points: [ + "Contributed to architecture and 0-to-1 delivery of multiple AI products, covering performance, UX, i18n and multi-platform component reuse.", + "Built engineering experience in AI chat, image/video generation and multi-agent collaboration, with focus on streaming and frontend rendering performance.", + "Supported products serving 10M+ overseas users and promoted unified multi-platform component libraries, reducing duplicate work by around 40%.", + ], + }, + { + company: "Sichuan Chaji Enterprise Management Co., Ltd.", + role: "Senior Web Frontend Developer", + period: "2024.03 - 2025.03", + points: [ + "Led frontend development of supply-chain management systems, including procurement, warehousing and delivery modules.", + "Owned store loss-reporting and food-safety features across China, Southeast Asia and North America business rules.", + "Introduced Alibaba Cloud ARMS frontend monitoring, delivered CDN optimization and established code review and Git workflow standards.", + ], + }, + { + company: "Zhongjun Technology Sichuan Branch", + role: "Frontend Team Lead", + period: "2022.04 - 2024.03", + points: [ + "Delivered core modules for the Jingyingbang PC micro-frontend platform, portal and business management systems, including UI implementation, API integration and performance optimization.", + "Built the New E Travel mini-program foundation from scratch and owned technical planning through delivery.", + "Led mini-program, H5 and admin iterations, designed cross-platform solutions, and established Git Flow, code review and onboarding practices.", + ], + }, + ], + projects: [ + { + id: "vtrix", + name: "SeaCloud / Vtrix", + subtitle: "AI Model Service Platform (Web)", + period: "2025.09 - Present", + tech: ["Next.js 16", "React 19", "TypeScript", "Tailwind CSS", "Zustand", "Alova", "Vercel AI SDK", "Radix UI", "next-intl"], + summary: + "A global AI model aggregation platform covering LLM, image, video, audio and 3D model capabilities for developers, organizations and distributors.", + modules: [ + "Built distributor invitation, discount templates, credit allocation, sales configuration and profit margin workflows.", + "Implemented global currency switching and exchange-rate conversion via a reusable useCurrency hook across Pricing, Billing and API Keys.", + "Delivered organization roles, quota controls, spending limits, billing reports, transaction filtering and Excel export flows.", + "Supported i18n submodule migration, WeCom translation sync and shared table/filter/pagination component enhancements.", + ], + }, + { + id: "seabuzz", + name: "SeaBuzz", + subtitle: "AI News and Conversation Platform", + period: "2025.05 - Present", + tech: ["React Native", "Expo 53", "Expo Router", "Zustand", "NativeWind", "SSE", "i18next", "Adyen", "Lerna"], + summary: + "An AI-powered news aggregation, smart search and multimodal conversation platform under SeaArt AI, built with Expo for iOS, Android and Web.", + modules: [ + "Built the AI Agent chat flow with SSE streaming, typewriter rendering, Markdown/LaTeX, thinking animation, citations and history sync.", + "Delivered Discover feed and news detail pages with masonry layout, large/small dynamic cards, skeleton loading and Smart Image.", + "Integrated Google, Facebook, Discord and Email login with SeaArt Auth SDK.", + "Built Monorepo shared packages for API, data models, UI components, state, OTA updates and code signing.", + ], + }, + { + id: "bawang", + name: "Bawang Kungfu", + subtitle: "Store Digitization and Supply Chain Platform", + period: "2024.03 - 2025.03", + tech: ["React 18", "Vue 3", "UniApp", "MobX", "Pinia", "Element Plus", "Ant Design", "ProComponents"], + summary: + "A digital operations platform serving 6,000+ stores and partners, covering store operations, food safety and supply-chain collaboration.", + modules: [ + "Built mini-program loss reporting with camera scanning and online registration, compatible with WeChat mini-program and Lark H5.", + "Implemented food safety flows with Bluetooth TSPL printers and separate China, Southeast Asia and North America business rules.", + "Delivered mobile dashboards for multi-store operation metrics with region, time and KPI filtering.", + "Built procurement, supplier contract and settlement modules, integrating multiple external systems.", + ], + }, + { + id: "jingyingbang", + name: "Jingyingbang Platform", + subtitle: "Industrial Internet and Micro-frontend Platform", + period: "2022.04 - 2024.03", + tech: ["Vue", "Qiankun", "Element UI", "Huawei Cloud OBS", "Baidu Map", "Amap", "IM", "UniApp"], + summary: + "An industrial internet platform based on informatization and blockchain concepts, providing digital operation services for companies and individuals.", + modules: [ + "Participated in splitting a large frontend monolith into 12 Qiankun-based micro-frontend projects.", + "Delivered core business features for portals, business management, mini-program, H5 and admin systems.", + "Introduced Huawei Cloud OBS direct upload to reduce request-chain overhead.", + "Built an internal Chrome extension, zjkj-decryption, to improve data parsing efficiency.", + ], + }, + ], + education: { + school: "University of Electronic Science and Technology of China", + degree: "Bachelor", + major: "Information Management and Information Systems", + period: "2023 - 2025", + }, +}; diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..e6a54a4 --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,964 @@ +--- +import { resume, resumeEn } from "../data/resume"; +import "../styles/global.css"; + +const githubUrl = "https://github.com/zhanBoss"; +const translations = { zh: resume, en: resumeEn }; +const navIds = ["top", "proof", "skills", "projects", "experience", "contact"]; +const brandAssets = { + projects: { + vtrix: { src: "/logos/vtrix.png", className: "brand-logo", label: "Vtrix" }, + seabuzz: { src: "/logos/seabuzz.webp", className: "brand-logo", label: "SeaBuzz" }, + bawang: { src: "/logos/chagee.png", className: "brand-logo", label: "CHAGEE" }, + jingyingbang: { src: "/logos/jingyingbang.png", className: "brand-logo brand-logo-wide", label: "经营帮" }, + }, + companies: { + seaart: { src: "/logos/seaart.webp", className: "brand-logo", label: "SeaArt" }, + chagee: { src: "/logos/chagee.png", className: "brand-logo", label: "CHAGEE" }, + zhongjun: { src: "/logos/zhongjun.png", className: "brand-logo brand-logo-wide", label: "中钧科技" }, + }, +}; +const displayNameFor = (data: typeof resume, lang: "zh" | "en" = "zh") => + lang === "zh" ? `${data.name}(${data.alias})` : `${data.name} (${data.alias})`; +const labels = { + zh: { + nav: { + top: "首页", + proof: "证据", + skills: "能力", + projects: "项目", + experience: "经历", + contact: "联系", + }, + metaDescription: `${displayNameFor(resume)} - ${resume.title},7 年前端与跨端开发经验,聚焦 AI 产品、Next.js、React Native、Vue、微前端与工程化。`, + topbarContact: "联系", + language: "EN", + languageLabel: "Switch to English", + themeLabel: "切换主题", + themeLight: "浅色", + themeDark: "深色", + heroEyebrow: "Frontend Engineer · AI Product Systems · Cross-platform", + heroTitle: "把复杂前端系统做成可交付的产品。", + viewProjects: "查看项目案例", + profileAria: "候选人摘要", + mapAria: "项目能力地图", + mapMain: "AI 前端架构", + mapMeta: "SSE · Agent · 多端", + mapNodes: ["Next.js / React", "Expo / RN", "Vue / Qiankun", "i18n / Billing"], + proofKicker: "Proof", + proofTitle: "用指标说明影响力。", + candidate: "Candidate", + phone: "Phone", + email: "Email", + education: "Education", + strengthsKicker: "Strengths", + strengthsTitle: "适合负责高复杂度前端业务闭环。", + skillsKicker: "Capabilities", + skillsTitle: "不是技术罗列,而是围绕交付场景组织能力。", + projectsKicker: "Selected Work", + projectsTitle: "把项目经历改成可扫描的案例索引。", + filterAll: "全部", + experienceKicker: "Experience", + experienceTitle: "工作经历按职责演进呈现。", + domainsKicker: "Featured Domains", + domainsTitle: "最近项目重点。", + contactKicker: "Contact", + contactTitle: "可沟通前端开发工程师岗位。", + sendEmail: "发送邮件", + footer: "Built with Astro.", + }, + en: { + nav: { + top: "Home", + proof: "Proof", + skills: "Skills", + projects: "Projects", + experience: "Experience", + contact: "Contact", + }, + metaDescription: `${displayNameFor(resumeEn, "en")} - ${resumeEn.title}. 7 years of frontend and cross-platform experience across AI products, Next.js, React Native, Vue, micro-frontends and engineering systems.`, + topbarContact: "Contact", + language: "中", + languageLabel: "切换到中文", + themeLabel: "Toggle theme", + themeLight: "Light", + themeDark: "Dark", + heroEyebrow: "Frontend Engineer · AI Product Systems · Cross-platform", + heroTitle: "I turn complex frontend systems into shippable products.", + viewProjects: "View case studies", + profileAria: "Candidate summary", + mapAria: "Project capability map", + mapMain: "AI Frontend Architecture", + mapMeta: "SSE · Agent · Multi-platform", + mapNodes: ["Next.js / React", "Expo / RN", "Vue / Qiankun", "i18n / Billing"], + proofKicker: "Proof", + proofTitle: "Impact backed by measurable outcomes.", + candidate: "Candidate", + phone: "Phone", + email: "Email", + education: "Education", + strengthsKicker: "Strengths", + strengthsTitle: "Built for high-complexity frontend ownership.", + skillsKicker: "Capabilities", + skillsTitle: "Capabilities organized around delivery scenarios.", + projectsKicker: "Selected Work", + projectsTitle: "Project experience shaped into scannable case studies.", + filterAll: "All", + experienceKicker: "Experience", + experienceTitle: "Responsibilities evolved from core delivery to team leadership.", + domainsKicker: "Featured Domains", + domainsTitle: "Recent product focus.", + contactKicker: "Contact", + contactTitle: "Open to frontend engineering opportunities.", + sendEmail: "Send email", + footer: "Built with Astro.", + }, +}; + +const leadProjects = resume.projects.slice(0, 3); +const companyLogoFor = (company: string) => { + if (company.includes("海艺") || company.includes("Haiyi")) return brandAssets.companies.seaart; + if (company.includes("茶姬") || company.includes("Chaji")) return brandAssets.companies.chagee; + if (company.includes("中钧") || company.includes("Zhongjun")) return brandAssets.companies.zhongjun; + return null; +}; +const projectLogoFor = (id: string) => brandAssets.projects[id] ?? null; +--- + + + + + + + + {displayNameFor(resume)} - {resume.title} + + + +
+ + +
+ + WY + {displayNameFor(resume)} + + +
+ + + GitHub + + + + {labels.zh.topbarContact} +
+
+ +
+
+
+

{labels.zh.heroEyebrow}

+

{labels.zh.heroTitle}

+

{resume.profile}

+ +
+ + +
+ +
+
+

{labels.zh.proofKicker}

+

{labels.zh.proofTitle}

+
+
+ {resume.metrics.map((metric) => ( +
+ {metric.value} + {metric.label} +
+ ))} +
+
+ +
+ + +
+
+
+

{labels.zh.strengthsKicker}

+

{labels.zh.strengthsTitle}

+
+
+ {resume.highlights.map((item, index) => ( +
+ {String(index + 1).padStart(2, "0")} +

{item}

+
+ ))} +
+
+ +
+
+

{labels.zh.skillsKicker}

+

{labels.zh.skillsTitle}

+
+
+ {resume.skills.map((skill) => ( +
+

{skill.group}

+
+ {skill.items.map((item) => {item})} +
+
+ ))} +
+
+ +
+
+
+

{labels.zh.projectsKicker}

+

{labels.zh.projectsTitle}

+
+
+ + {resume.projects.map((project) => ( + + ))} +
+
+ +
+ {resume.projects.map((project, index) => ( +
+
+ {projectLogoFor(project.id) && ( + + )} + {String(index + 1).padStart(2, "0")} +
+
+
+
+

{project.name}

+

{project.subtitle}

+
+ +
+

{project.summary}

+
    + {project.modules.map((module) =>
  • {module}
  • )} +
+
+ {project.tech.map((tech) => {tech})} +
+
+
+ ))} +
+
+ +
+
+

{labels.zh.experienceKicker}

+

{labels.zh.experienceTitle}

+
+
+ {resume.experiences.map((experience) => ( +
+
+ {companyLogoFor(experience.company) && ( + + )} + +
+
+

{experience.company}

+

{experience.role}

+
    + {experience.points.map((point) =>
  • {point}
  • )} +
+
+
+ ))} +
+
+ +
+
+

{labels.zh.domainsKicker}

+

{labels.zh.domainsTitle}

+
+
+ {leadProjects.map((project) => ( +
+ {projectLogoFor(project.id) && ( + + )} + {project.name} + {project.subtitle} +
+ ))} +
+
+ +
+
+

{labels.zh.contactKicker}

+

{labels.zh.contactTitle}

+ {resume.education.school} · {resume.education.major} · {resume.education.period} +
+ +
+
+
+
+ +
© 2026 {displayNameFor(resume)}. {labels.zh.footer}
+ + + + + diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 0000000..f67b5ab --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,1117 @@ +:root { + color-scheme: light; + --paper: #eef1f4; + --paper-2: #f7f8f2; + --ink: #171717; + --muted: #5c626a; + --soft: #8a929b; + --line: #d8dde3; + --line-strong: #b8c0c9; + --white: #fcfbf7; + --green: #16855e; + --blue: #2f5fbe; + --amber: #a76516; + --rose: #b43c64; + --grid-line: rgba(23, 23, 23, 0.045); + --topbar-bg: rgba(238, 241, 244, 0.86); + --nav-bg: rgba(252, 251, 247, 0.72); + --surface: rgba(252, 251, 247, 0.72); + --surface-strong: rgba(252, 251, 247, 0.82); + --map-bg: rgba(252, 251, 247, 0.72); + --button-bg: rgba(252, 251, 247, 0.56); + --button-hover: #fcfbf7; + --inverse-muted: rgba(244, 241, 234, 0.72); + --shadow: 0 22px 55px rgba(23, 23, 23, 0.1); + --max: 1160px; + --radius: 8px; +} + +html[data-theme="dark"] { + color-scheme: dark; + --paper: #111214; + --paper-2: #18191d; + --ink: #f4efe6; + --muted: #bab1a4; + --soft: #8e867b; + --line: #343235; + --line-strong: #4a4642; + --white: #191a1f; + --green: #63d79b; + --blue: #8bb4ff; + --amber: #f0b35a; + --rose: #ff8aa8; + --grid-line: rgba(255, 255, 255, 0.045); + --topbar-bg: rgba(17, 18, 20, 0.86); + --nav-bg: rgba(255, 255, 255, 0.055); + --surface: rgba(255, 255, 255, 0.055); + --surface-strong: rgba(255, 255, 255, 0.08); + --map-bg: #15161a; + --button-bg: rgba(255, 255, 255, 0.055); + --button-hover: rgba(255, 255, 255, 0.11); + --inverse-muted: rgba(17, 18, 20, 0.68); + --shadow: 0 22px 65px rgba(0, 0, 0, 0.28); +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + min-height: 100vh; + background: + linear-gradient(116deg, rgba(47, 95, 190, 0.08), transparent 36%), + linear-gradient(246deg, rgba(22, 133, 94, 0.07), transparent 44%), + linear-gradient(90deg, var(--grid-line) 1px, transparent 1px), + linear-gradient(var(--grid-line) 1px, transparent 1px), + var(--paper); + background-size: auto, auto, 40px 40px, 40px 40px, auto; + color: var(--ink); + font-family: + Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + "Microsoft YaHei", sans-serif; + font-size: 15px; + line-height: 1.58; + letter-spacing: 0; + overflow-x: hidden; +} + +a { + color: inherit; +} + +button, +a { + -webkit-tap-highlight-color: transparent; +} + +.scroll-progress { + position: fixed; + top: 0; + left: 0; + z-index: 60; + width: 100%; + height: 3px; + transform: scaleX(0); + transform-origin: left; + background: linear-gradient(90deg, var(--green), var(--blue), var(--amber)); +} + +.ambient-canvas { + position: fixed; + inset: 0; + z-index: 0; + width: 100vw; + height: 100vh; + pointer-events: none; + opacity: 0.88; +} + +.topbar { + position: sticky; + top: 0; + z-index: 50; + display: grid; + grid-template-columns: 1fr auto 1fr; + align-items: center; + gap: 0.8rem; + min-height: 64px; + padding: 0 clamp(1rem, 4vw, 2.5rem); + border-bottom: 1px solid var(--line); + background: var(--topbar-bg); + backdrop-filter: blur(18px); +} + +.brand { + display: inline-flex; + align-items: center; + gap: 0.7rem; + width: fit-content; + text-decoration: none; +} + +.brand span { + display: grid; + place-items: center; + width: 34px; + height: 34px; + border-radius: 50%; + background: var(--ink); + color: var(--paper); + font-size: 0.72rem; + font-weight: 800; +} + +.brand strong { + font-size: 0.9rem; +} + +.nav { + display: flex; + align-items: center; + gap: 0.25rem; + padding: 0.3rem; + border: 1px solid var(--line); + border-radius: 999px; + background: var(--nav-bg); +} + +.nav a { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 30px; + padding: 0 0.66rem; + border-radius: 999px; + color: var(--muted); + text-decoration: none; + font-size: 0.8rem; + transition: color 180ms ease, background 180ms ease; +} + +.nav a:hover, +.nav a.active { + color: var(--paper); + background: var(--ink); +} + +.topbar-cta { + display: inline-flex; + align-items: center; + min-height: 34px; + padding: 0 0.82rem; + border: 1px solid var(--ink); + border-radius: 999px; + text-decoration: none; + font-size: 0.82rem; + font-weight: 750; +} + +.topbar-actions { + justify-self: end; + display: flex; + align-items: center; + justify-content: flex-end; + gap: 0.45rem; +} + +.github-link, +.control-button { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 34px; + border: 1px solid var(--line); + border-radius: 999px; + background: var(--nav-bg); + color: var(--ink); + text-decoration: none; + font: inherit; + font-size: 0.8rem; + font-weight: 800; +} + +.github-link { + gap: 0.45rem; + padding: 0 0.74rem; +} + +.github-link svg { + width: 18px; + height: 18px; +} + +.control-button { + min-width: 34px; + padding: 0 0.58rem; + cursor: pointer; +} + +.github-link:hover, +.control-button:hover, +.topbar-cta:hover { + border-color: var(--ink); + background: var(--button-hover); +} + +main { + position: relative; + z-index: 1; + overflow: clip; +} + +.footer { + position: relative; + z-index: 1; +} + +.hero { + position: relative; + display: grid; + grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.82fr); + gap: clamp(1.8rem, 4.4vw, 4.2rem); + max-width: var(--max); + min-height: calc(88vh - 64px); + margin: 0 auto; + padding: clamp(3.4rem, 7vw, 5.8rem) clamp(1rem, 4vw, 2.5rem); + align-items: center; +} + +.eyebrow, +.section-title p, +.rail-label, +.contact-section > div > p { + margin: 0 0 0.8rem; + color: var(--green); + font-size: 0.72rem; + font-weight: 800; + letter-spacing: 0.1em; + text-transform: uppercase; +} + +.hero h1 { + max-width: 680px; + margin: 0; + font-size: clamp(2.45rem, 4.25vw, 4.65rem); + line-height: 1.04; + letter-spacing: 0; +} + +.lead { + max-width: 660px; + margin: 1.15rem 0 0; + color: var(--muted); + font-size: clamp(0.98rem, 1.28vw, 1.1rem); +} + +.hero-actions, +.contact-actions { + display: flex; + flex-wrap: wrap; + gap: 0.6rem; + margin-top: 1.55rem; +} + +.button { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 38px; + padding: 0 0.9rem; + border: 1px solid var(--line-strong); + border-radius: 999px; + background: var(--button-bg); + color: var(--ink); + text-decoration: none; + font-size: 0.88rem; + font-weight: 750; + transition: transform 180ms ease, background 180ms ease, border-color 180ms ease; +} + +.button:hover { + transform: translateY(-2px); + border-color: var(--ink); + background: var(--button-hover); +} + +.button-primary { + border-color: var(--ink); + background: var(--ink); + color: var(--paper); +} + +.button-primary:hover { + background: var(--ink); + color: var(--paper); +} + +.brand-logo { + display: grid; + place-items: center; + width: 42px; + height: 42px; + overflow: hidden; + border: 1px solid var(--line); + border-radius: var(--radius); + background: + linear-gradient(135deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.18)), + var(--surface-strong); + box-shadow: 0 10px 24px rgba(23, 23, 23, 0.08); + flex: 0 0 auto; +} + +.brand-logo img { + display: block; + width: 74%; + height: 74%; + object-fit: contain; +} + +.brand-logo-wide img { + width: 86%; + height: 54%; +} + +.hero-panel { + position: relative; + border: 1px solid var(--line-strong); + border-radius: var(--radius); + background: color-mix(in srgb, var(--white) 88%, transparent); + box-shadow: var(--shadow); + overflow: hidden; + backdrop-filter: blur(14px); +} + +.profile-card { + display: flex; + align-items: center; + gap: 0.85rem; + padding: 1rem; + border-bottom: 1px solid var(--line); +} + +.avatar { + display: grid; + place-items: center; + width: 48px; + height: 48px; + border-radius: var(--radius); + background: var(--ink); + color: var(--paper); + font-size: 1.12rem; + font-weight: 900; +} + +.profile-card p { + margin: 0; + color: var(--muted); +} + +.profile-card .profile-name { + color: var(--ink); + font-size: 1.04rem; + font-weight: 900; +} + +.signal-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + border-bottom: 1px solid var(--line); +} + +.signal-grid div { + min-height: 92px; + padding: 0.95rem; + border-right: 1px solid var(--line); + border-bottom: 1px solid var(--line); +} + +.signal-grid div:nth-child(2n) { + border-right: 0; +} + +.signal-grid div:nth-last-child(-n + 2) { + border-bottom: 0; +} + +.signal-grid span { + display: block; + color: var(--soft); + font-size: 0.76rem; +} + +.signal-grid strong { + display: block; + margin-top: 0.35rem; + font-size: 1.02rem; + line-height: 1.15; +} + +.system-map { + position: relative; + min-height: 286px; + padding: 1rem; + background: + linear-gradient(90deg, var(--grid-line) 1px, transparent 1px), + linear-gradient(var(--grid-line) 1px, transparent 1px), + var(--map-bg); + background-size: 24px 24px, 24px 24px, auto; +} + +.map-canvas { + position: absolute; + inset: 0; + z-index: 0; + width: 100%; + height: 100%; + pointer-events: none; +} + +.system-map::before, +.system-map::after { + content: none; +} + +.map-node { + position: absolute; + z-index: 1; + min-width: 104px; + padding: 0.58rem 0.68rem; + border: 1px solid var(--line-strong); + border-radius: var(--radius); + background: color-mix(in srgb, var(--paper) 90%, transparent); + font-size: 0.76rem; + font-weight: 800; + box-shadow: 0 10px 24px rgba(23, 23, 23, 0.06); + backdrop-filter: blur(8px); +} + +.map-node-main { + left: 50%; + top: 50%; + min-width: 168px; + transform: translate(-50%, -50%); + border-radius: var(--radius); + background: var(--ink); + color: var(--paper); +} + +.map-node-main span { + display: block; + margin-top: 0.2rem; + color: rgba(244, 241, 234, 0.72); + font-size: 0.7rem; + font-weight: 600; +} + +.map-node[data-map-node="0"] { + left: 1.25rem; + top: 2rem; + background: color-mix(in srgb, var(--green) 16%, var(--white)); +} + +.map-node[data-map-node="1"] { + right: 1.25rem; + top: 4.8rem; + background: color-mix(in srgb, var(--blue) 15%, var(--white)); +} + +.map-node[data-map-node="2"] { + left: 1.25rem; + bottom: 3rem; + background: color-mix(in srgb, var(--amber) 17%, var(--white)); +} + +.map-node[data-map-node="3"] { + right: 1.25rem; + bottom: 2rem; + background: color-mix(in srgb, var(--rose) 14%, var(--white)); +} + +.proof-section, +.page-grid { + max-width: var(--max); + margin: 0 auto; + padding-inline: clamp(1rem, 4vw, 2.5rem); +} + +.proof-section { + padding-bottom: 3.8rem; +} + +.section-title { + display: flex; + align-items: end; + justify-content: space-between; + gap: 1.4rem; + margin-bottom: 1.25rem; +} + +.section-title h2, +.contact-section h2 { + max-width: 680px; + margin: 0; + font-size: clamp(1.45rem, 2.7vw, 2.4rem); + line-height: 1.12; + letter-spacing: 0; +} + +.proof-grid { + display: grid; + grid-template-columns: repeat(6, minmax(0, 1fr)); + border: 1px solid var(--line-strong); + background: var(--line-strong); + gap: 1px; + border-radius: var(--radius); + overflow: hidden; +} + +.proof-grid article { + min-height: 112px; + padding: 0.95rem; + background: var(--surface-strong); + backdrop-filter: blur(10px); +} + +.proof-grid strong { + display: block; + font-size: clamp(1.55rem, 2.7vw, 2.35rem); + line-height: 1; +} + +.proof-grid span { + display: block; + margin-top: 0.72rem; + color: var(--muted); + font-size: 0.82rem; + font-weight: 650; +} + +.page-grid { + display: grid; + grid-template-columns: 260px minmax(0, 1fr); + gap: clamp(1.6rem, 4.2vw, 4rem); + align-items: start; + padding-bottom: 4rem; +} + +.resume-rail { + position: sticky; + top: 88px; + padding: 1rem; + border: 1px solid rgba(23, 23, 23, 0.82); + border-radius: var(--radius); + background: var(--ink); + color: var(--paper); + box-shadow: var(--shadow); +} + +.resume-rail h2 { + margin: 0; + font-size: 1.5rem; + line-height: 1.15; +} + +.resume-rail p:not(.rail-label) { + margin: 0.52rem 0 1rem; + color: var(--inverse-muted); + font-size: 0.88rem; +} + +.resume-rail dl { + display: grid; + gap: 1px; + margin: 0; + overflow: hidden; + border-radius: var(--radius); + background: rgba(244, 241, 234, 0.16); +} + +.resume-rail dl div { + padding: 0.74rem; + background: rgba(244, 241, 234, 0.08); +} + +.resume-rail dt { + color: rgba(244, 241, 234, 0.52); + font-size: 0.74rem; + text-transform: uppercase; +} + +.resume-rail dd { + margin: 0.25rem 0 0; + font-size: 0.86rem; + font-weight: 700; + overflow-wrap: anywhere; +} + +.email-list { + display: grid; + gap: 0.35rem; +} + +.content-flow { + min-width: 0; +} + +.section { + padding: 3.4rem 0; + border-top: 1px solid var(--line-strong); +} + +.section:first-child { + padding-top: 0; + border-top: 0; +} + +.strength-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 0.75rem; +} + +.strength-grid article { + min-height: 132px; + padding: 1rem; + border: 1px solid var(--line-strong); + border-radius: var(--radius); + background: var(--surface); + backdrop-filter: blur(10px); +} + +.strength-grid span { + color: var(--amber); + font-weight: 900; + font-size: 0.82rem; +} + +.strength-grid p { + margin: 0.82rem 0 0; + color: var(--muted); + font-size: 0.92rem; +} + +.skill-list { + display: grid; + border-top: 1px solid var(--line-strong); +} + +.skill-list article { + display: grid; + grid-template-columns: 160px minmax(0, 1fr); + gap: 1rem; + padding: 0.9rem 0; + border-bottom: 1px solid var(--line-strong); +} + +.skill-list h3 { + margin: 0; + font-size: 0.94rem; +} + +.skill-list article div, +.tech-line, +.filter-tabs { + display: flex; + flex-wrap: wrap; + gap: 0.45rem; +} + +.skill-list span, +.tech-line span { + display: inline-flex; + align-items: center; + min-height: 26px; + padding: 0 0.6rem; + border: 1px solid var(--line); + border-radius: 999px; + background: var(--surface-strong); + color: var(--muted); + font-size: 0.76rem; + font-weight: 700; +} + +.with-action { + align-items: start; +} + +.filter-tabs { + justify-content: flex-end; + max-width: 500px; +} + +.filter-tabs button { + min-height: 30px; + padding: 0 0.64rem; + border: 1px solid var(--line-strong); + border-radius: 999px; + background: var(--surface); + color: var(--muted); + cursor: pointer; + font: inherit; + font-size: 0.76rem; + font-weight: 800; +} + +.filter-tabs button:hover, +.filter-tabs button.active { + border-color: var(--ink); + background: var(--ink); + color: var(--paper); +} + +.project-stack { + display: grid; + gap: 0.86rem; +} + +.project-row { + display: grid; + grid-template-columns: 66px minmax(0, 1fr); + border: 1px solid var(--line-strong); + border-radius: var(--radius); + background: var(--surface-strong); + overflow: hidden; + box-shadow: 0 16px 36px rgba(23, 23, 23, 0.07); + backdrop-filter: blur(12px); +} + +.project-row[hidden] { + display: none; +} + +.project-index { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.58rem; + padding-top: 1rem; + border-right: 1px solid var(--line); + color: var(--soft); + font-size: 0.82rem; + font-weight: 900; +} + +.project-index > span:not(.brand-logo) { + line-height: 1; +} + +.project-main { + padding: 1rem; +} + +.project-head { + display: flex; + justify-content: space-between; + gap: 1rem; +} + +.project-head h3 { + margin: 0; + font-size: clamp(1.08rem, 1.8vw, 1.45rem); + line-height: 1.18; +} + +.project-head p { + margin: 0.22rem 0 0; + color: var(--muted); + font-size: 0.86rem; + font-weight: 700; +} + +.project-head time { + flex: 0 0 auto; + color: var(--rose); + font-size: 0.78rem; + font-weight: 900; +} + +.project-summary { + margin: 0.78rem 0 0; + color: var(--muted); + font-size: 0.9rem; +} + +.project-row ul { + margin: 0.76rem 0; + padding-left: 1.15rem; +} + +.project-row li, +.experience-list li { + margin-bottom: 0.42rem; + color: var(--muted); + font-size: 0.88rem; +} + +.experience-list { + display: grid; + gap: 1px; + border: 1px solid var(--line-strong); + background: var(--line-strong); +} + +.experience-list article { + display: grid; + grid-template-columns: 166px minmax(0, 1fr); + gap: 1rem; + padding: 1rem; + background: var(--surface); + backdrop-filter: blur(10px); +} + +.experience-brand { + display: flex; + flex-direction: column; + gap: 0.7rem; + align-items: flex-start; +} + +.experience-list time { + color: var(--blue); + font-size: 0.82rem; + font-weight: 900; +} + +.experience-list h3, +.domain-strip strong { + margin: 0; + font-size: 1rem; +} + +.experience-list p { + margin: 0.2rem 0 0.68rem; + color: var(--muted); + font-size: 0.88rem; + font-weight: 700; +} + +.experience-list ul { + margin: 0; + padding-left: 1.15rem; +} + +.domain-strip { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 0.75rem; +} + +.domain-strip article { + display: grid; + gap: 0.4rem; + min-height: 120px; + align-content: space-between; + padding: 0.9rem; + border: 1px solid var(--line-strong); + border-radius: var(--radius); + background: + linear-gradient(135deg, rgba(31, 143, 95, 0.14), transparent 48%), + var(--surface-strong); + backdrop-filter: blur(10px); +} + +.domain-strip .brand-logo { + width: 38px; + height: 38px; +} + +.domain-strip em { + color: var(--muted); + font-size: 0.84rem; + font-style: normal; +} + +.contact-section { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + gap: 1.2rem; + align-items: center; + margin-top: 3.2rem; + padding: clamp(1.1rem, 3.4vw, 1.6rem); + border: 1px solid rgba(23, 23, 23, 0.82); + border-radius: var(--radius); + background: var(--ink); + color: var(--paper); + box-shadow: var(--shadow); +} + +.contact-section span { + display: block; + margin-top: 0.62rem; + color: rgba(244, 241, 234, 0.64); + font-size: 0.88rem; +} + +.contact-section .button { + border-color: rgba(244, 241, 234, 0.3); + background: transparent; + color: var(--paper); +} + +.contact-section .button-primary { + border-color: var(--paper); + background: var(--paper); + color: var(--ink); +} + +.footer { + padding: 1.6rem 1rem; + color: var(--soft); + text-align: center; + font-size: 0.8rem; +} + +.reveal { + opacity: 0; + transform: translateY(18px); + transition: opacity 520ms ease, transform 520ms ease; +} + +.reveal.is-visible { + opacity: 1; + transform: translateY(0); +} + +@media (max-width: 1080px) { + .topbar { + grid-template-columns: auto 1fr auto; + } + + .nav { + justify-self: center; + } + + .hero { + grid-template-columns: 1fr; + min-height: auto; + gap: 2rem; + } + + .hero-panel { + max-width: 580px; + } + + .proof-grid { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .page-grid { + grid-template-columns: 1fr; + } + + .resume-rail { + position: static; + } +} + +@media (max-width: 760px) { + .topbar { + grid-template-columns: 1fr auto; + min-height: 58px; + } + + .brand strong, + .nav { + display: none; + } + + .hero { + padding-top: 2.8rem; + } + + .hero h1 { + font-size: clamp(2.12rem, 10.8vw, 3.15rem); + } + + .lead { + font-size: 0.96rem; + } + + .hero-panel { + box-shadow: var(--shadow); + } + + .signal-grid, + .proof-grid, + .strength-grid, + .domain-strip, + .contact-section { + grid-template-columns: 1fr; + } + + .system-map { + min-height: 270px; + } + + .section-title, + .section-title.with-action, + .project-head, + .contact-section { + align-items: start; + flex-direction: column; + } + + .section-title { + display: block; + } + + .filter-tabs { + justify-content: start; + margin-top: 1rem; + } + + .skill-list article, + .project-row, + .experience-list article { + grid-template-columns: 1fr; + } + + .project-index { + flex-direction: row; + align-items: center; + padding: 0.68rem 0.9rem; + border-right: 0; + border-bottom: 1px solid var(--line); + } + + .experience-brand { + flex-direction: row; + align-items: center; + } + + .contact-actions { + margin-top: 0; + } +} + +@media (max-width: 460px) { + .button, + .topbar-cta { + width: 100%; + } + + .topbar-cta { + width: auto; + } + + .hero-actions, + .contact-actions { + flex-direction: column; + } + + .map-node { + min-width: 88px; + font-size: 0.68rem; + } + + .map-node-main { + min-width: 146px; + } +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + + .ambient-canvas, + .map-canvas { + display: none; + } + + .reveal, + .button, + .nav a { + transition: none; + } + + .reveal { + opacity: 1; + transform: none; + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..bcbf8b5 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "astro/tsconfigs/strict" +}