diff --git a/.circleci/config.yml b/.circleci/config.yml index 6323d97..a35f708 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,22 +10,32 @@ commands: description: Install dependencies and build the project steps: - run: - name: Use NVM + name: Setup NVM command: | - echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV - echo ' [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $BASH_ENV + echo 'export NVM_DIR="/opt/circleci/.nvm"' >> "$BASH_ENV" + echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> "$BASH_ENV" + echo 'nvm use >/dev/null 2>&1 || true' >> "$BASH_ENV" + + - run: + name: Install Node + command: | + nvm install + nvm use + - run: - name: Use Node LTS + name: Install Yarn command: | - nvm install 'lts/*' - nvm use 'lts/*' - nvm alias default 'lts/*' + npm install -g yarn + - run: name: Install exact dependencies - command: npm ci + command: | + yarn install --frozen-lockfile + - run: name: Build the website - command: npm run build + command: | + yarn build jobs: build-and-test: diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index c339c18..6a16129 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -28,14 +28,33 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: "22" + node-version-file: ".nvmrc" + cache: "yarn" + - name: Cache Node modules + id: yarn-cache + uses: actions/cache@v4 + with: + path: node_modules + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Cache Astro Build Cache + uses: actions/cache@v4 + with: + path: | + .astro + node_modules/.cache + key: ${{ runner.os }}-astro-build-${{ hashFiles('**/yarn.lock') }}-${{ github.run_id }} + restore-keys: | + ${{ runner.os }}-astro-build-${{ hashFiles('**/yarn.lock') }}- + ${{ runner.os }}-astro-build- - name: Setup Pages id: pages uses: actions/configure-pages@v5 - name: Install dependencies - run: npm ci + run: yarn install --frozen-lockfile --prefer-offline --non-interactive - name: Build with Astro - run: npm run build:ghpages + run: yarn build:ghpages - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: diff --git a/.gitignore b/.gitignore index d4b17e6..16c73ae 100644 --- a/.gitignore +++ b/.gitignore @@ -46,7 +46,8 @@ yarn-error.log .vscode .firebase/ -yarn.lock - tmp artifacts + +# Generated OpenAPI schema +public/openapi.yml diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..8fdd954 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22 \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index e52bb29..3b7fd8f 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,8 +1,14 @@ { + "printWidth": 120, "semi": true, - "singleQuote": true, + "singleQuote": false, "trailingComma": "es5", - "tabWidth": 4, + "tabWidth": 2, "bracketSpacing": false, - "arrowParens": "avoid" + "arrowParens": "always", + "plugins": [ + "prettier-plugin-astro", + "prettier-plugin-tailwindcss", + "prettier-plugin-css-order" + ] } diff --git a/LICENSE.rst b/LICENSE.rst index 6fc7bdf..d718f23 100644 --- a/LICENSE.rst +++ b/LICENSE.rst @@ -1,4 +1,4 @@ -Copyright (c) 2014–2019 Paul Hallett and PokéAPI contributors. +Copyright (c) 2014-2026 the PokéAPI contributors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/alerts.json b/alerts.json deleted file mode 100644 index 2710d49..0000000 --- a/alerts.json +++ /dev/null @@ -1,27 +0,0 @@ -[ - { - "active": false, - "message": "", - "comment": "Inactive alerts will not be shown. You can use markdown, like _this_, **this**, or [this](https://pokeapi.co). Possible levels are 'info', 'important' and 'success'. The default is 'info'. Important alerts are sticky and stay on-screen until dismissed by the user." - }, - { - "level": "success", - "active": false, - "message": "Data from last year's **Sword and Shield** games (generation 8) is currently **being added** to PokéAPI. While waiting for an upstream project ([Veekun](https://github.com/veekun/pokedex)) for verified data we decided to allow our community to bring in new data from various different sources. If you want to participate to this update project [read more on GitHub](https://github.com/PokeAPI/pokeapi/issues/520)." - }, - { - "level": "success", - "active": false, - "message": "PokeAPI proudly announces Beta support for GraphQL. Access our free console at [beta.pokeapi.co/graphql/console](https://beta.pokeapi.co/graphql/console/) and take a look at the [documentation](/docs/graphql)" - }, - { - "level": "info", - "active": false, - "message": "**Sword and Shield** data might be inaccurate and lacking in various aspects due to the fact that it is not taken directly from Nintendo's Pokemon ROMs. If you spot any mistake, please report it [here](https://github.com/PokeAPI/pokedex/issues)" - }, - { - "level": "success", - "active": false, - "message": "PokeAPI turned 10 on December 4th! Discover the entire source code over at [PokeAPI/pokeapi](https://github.com/PokeAPI/pokeapi)!" - } -] diff --git a/astro.config.mjs b/astro.config.mjs index da4e69c..ae81142 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,61 +1,140 @@ -import { defineConfig } from 'astro/config' -import starlight from '@astrojs/starlight' -import starlightOpenAPI, { openAPISidebarGroups } from 'starlight-openapi' -import tailwindcss from '@tailwindcss/vite' +import {defineConfig} from "astro/config"; +import starlight from "@astrojs/starlight"; +import starlightOpenAPI, {openAPISidebarGroups} from "starlight-openapi"; +import tailwindcss from "@tailwindcss/vite"; +import {stringify} from "yaml"; +import {bundle} from "@readme/openapi-parser"; +import {mkdir, writeFile} from "node:fs/promises"; +import {resolve} from "node:path"; + +async function processOpenAPISchema(schemaUrl) { + const schema = await bundle(schemaUrl); + + for (const operations of Object.values(schema.paths ?? {})) { + for (const operation of Object.values(operations)) { + if (operation && typeof operation === "object") { + delete operation.security; + } + } + } + + const publicDir = resolve("./public"); + await mkdir(publicDir, {recursive: true}); + await writeFile(resolve(publicDir, "openapi.yml"), stringify(schema), "utf-8"); + + return "./public/openapi.yml"; +} + +const LOGO_URL = "https://raw.githubusercontent.com/PokeAPI/media/master/logo/pokeapi_256.png"; +const FAVICON_URL = "https://raw.githubusercontent.com/PokeAPI/media/master/logo/pokeapi_64_min.png"; + +async function fetchRemoteAssets() { + const publicDir = resolve("./public"); + await mkdir(publicDir, {recursive: true}); + + const [logoRes, faviconRes] = await Promise.all([fetch(LOGO_URL), fetch(FAVICON_URL)]); + if (logoRes.ok) { + await writeFile(resolve(publicDir, "pokeapi_256.png"), Buffer.from(await logoRes.arrayBuffer())); + } + if (faviconRes.ok) { + await writeFile(resolve(publicDir, "favicon.png"), Buffer.from(await faviconRes.arrayBuffer())); + } +} + +await fetchRemoteAssets(); + +console.log("SITE_URL:", process.env.SITE_URL); +console.log("BASE_URL:", process.env.BASE_URL); export default defineConfig({ - site: 'https://pokeapi.co', - base: '', - // trailingSlash: 'always', + site: process.env.SITE_URL || "https://pokeapi.co", + base: process.env.BASE_URL || "/", + trailingSlash: "always", integrations: [ starlight({ - title: 'PokéAPI', + title: "PokéAPI", + favicon: "/favicon.png", + tableOfContents: { + maxHeadingLevel: 4, + }, + routeMiddleware: "./src/routeData.ts", components: { - Footer: './src/components/PokeFooter.astro', - Header: './src/components/PokeHeader.astro', + Footer: "./src/components/footer/PokeFooter.astro", + Header: "./src/components/header/PokeHeader.astro", + SocialIcons: "./src/components/header/SocialIcons.astro", + ThemeSelect: "./src/components/header/ThemeToggle.astro", + MarkdownContent: "./src/components/markdown/PokeMarkdownContent.astro", }, - customCss: [ - './src/styles/global.css', - ], + customCss: ["./src/styles/global.css"], logo: { - src: './src/assets/pokeapi_256.png', + src: "./public/pokeapi_256.png", replacesTitle: true, }, social: [ - { icon: 'github', label: 'Github', href: 'https://github.com/pokeapi/pokeapi' }, - { icon: 'slack', label: 'Slack', href: 'https://pokeapi.slack.com/' }, + { + icon: "github", + label: "Github", + href: "https://github.com/pokeapi/pokeapi", + }, ], plugins: [ starlightOpenAPI([ { base: `/v2/openapi`, - label: 'OpenAPI', - schema: 'https://raw.githubusercontent.com/PokeAPI/pokeapi/master/openapi.yml', + label: "OpenAPI", + schema: await processOpenAPISchema( + "https://raw.githubusercontent.com/FallenDeity/pokeapi/refs/heads/metadata-api-schema/openapi.yml" + ), + sidebar: { + tags: { + sort: "alphabetical", + }, + }, + snippets: { + operation: { + clients: { + go: ["nethttp"], + java: ["okhttp", "nethttp"], + javascript: ["fetch", "axios"], + rust: ["reqwest"], + shell: ["curl", "wget"], + }, + default: { + target: "javascript", + client: "fetch", + }, + }, + }, }, ]), ], sidebar: [ { - label: 'About', - link: 'about', + label: "About", + link: "about", }, { - label: 'API', + label: "API", items: [ { - label: 'V2', - link: 'v2', + label: "V2", + link: "v2", }, ...openAPISidebarGroups, ], }, { - label: 'GraphQL', - link: 'graphql', - badge: 'v1beta', + label: "GraphQL", + link: "graphql", + badge: "v1beta", + }, + { + label: "How-To Guides", + collapsed: true, + items: [{autogenerate: {directory: "how-tos"}}], }, ], }), ], - vite: { plugins: [tailwindcss()] }, -}) + vite: {plugins: [tailwindcss()]}, +}); diff --git a/ec.config.mjs b/ec.config.mjs new file mode 100644 index 0000000..4879c10 --- /dev/null +++ b/ec.config.mjs @@ -0,0 +1,27 @@ +import {pluginLineNumbers} from "@expressive-code/plugin-line-numbers"; + +/** @type {import('@astrojs/starlight/expressive-code').StarlightExpressiveCodeOptions} */ +export default { + plugins: [ + pluginLineNumbers(), + { + name: "force-terminal-frames", + hooks: { + preprocessMetadata: ({codeBlock}) => { + if (codeBlock.language === "json") { + codeBlock.props.frame = "terminal"; + } + }, + }, + }, + ], + defaultProps: { + showLineNumbers: true, + }, + styleOverrides: { + frame: { + copyIcon: + 'url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWNvcHktaWNvbiBsdWNpZGUtY29weSI+PHJlY3Qgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB4PSI4IiB5PSI4IiByeD0iMiIgcnk9IjIiLz48cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIi8+PC9zdmc+")', + }, + }, +}; diff --git a/package-lock.json b/package-lock.json index 56de537..b1c173b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,13 +7,35 @@ "name": "pokeapi.co", "license": "MIT", "dependencies": { - "@astrojs/starlight": "^0.37.6", - "@astrojs/starlight-tailwind": "^4.0.2", - "@tailwindcss/vite": "^4.0.3", - "astro": "^5.17.1", - "marked": "^17.0.1", - "starlight-openapi": "^0.22.0", - "tailwindcss": "^4.0.3" + "@alenaksu/json-viewer": "^2.1.2", + "@astrojs/starlight": "^0.42.0", + "@astrojs/starlight-tailwind": "^5.0.0", + "@codemirror/lang-json": "^6.0.2", + "@expressive-code/plugin-line-numbers": "^0.44.2", + "@lucide/astro": "1.41.0", + "@tailwindcss/vite": "^4.3.3", + "astro": "^7.3.1", + "codemirror": "^6.0.2", + "marked": "^18.0.11", + "starlight-openapi": "^0.26.2", + "tailwindcss": "^4.3.3", + "yaml": "^2.9.0" + }, + "devDependencies": { + "cross-env": "^10.1.0", + "prettier": "^3.9.5", + "prettier-plugin-astro": "^0.14.1", + "prettier-plugin-css-order": "^2.2.0", + "prettier-plugin-tailwindcss": "^0.8.1" + } + }, + "node_modules/@alenaksu/json-viewer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@alenaksu/json-viewer/-/json-viewer-2.1.2.tgz", + "integrity": "sha512-hyR5EUc0GZMTjlSULJZlMzEYB896ICbCf1+5YLQRSAczGRWy42UWac5PcXM4spuyTkrEHHlOZBTVEq34f9+JVQ==", + "license": "MIT", + "dependencies": { + "lit": "^3.2.0" } }, "node_modules/@apidevtools/json-schema-ref-parser": { @@ -36,167 +58,358 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz", "integrity": "sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==", + "dev": true, "license": "MIT" }, + "node_modules/@astrojs/compiler-binding": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding/-/compiler-binding-0.4.0.tgz", + "integrity": "sha512-x2RjDUuWfwLNtc3mjAdSRInwqh/rqbLar9cm/5FOMbHvmYZB7yfKewzSclAxWjIZsypJDXv1lhaP2WG+P8TK3g==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@astrojs/compiler-binding-darwin-arm64": "0.4.0", + "@astrojs/compiler-binding-darwin-x64": "0.4.0", + "@astrojs/compiler-binding-linux-arm64-gnu": "0.4.0", + "@astrojs/compiler-binding-linux-arm64-musl": "0.4.0", + "@astrojs/compiler-binding-linux-x64-gnu": "0.4.0", + "@astrojs/compiler-binding-linux-x64-musl": "0.4.0", + "@astrojs/compiler-binding-wasm32-wasi": "0.4.0", + "@astrojs/compiler-binding-win32-arm64-msvc": "0.4.0", + "@astrojs/compiler-binding-win32-x64-msvc": "0.4.0" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-arm64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-arm64/-/compiler-binding-darwin-arm64-0.4.0.tgz", + "integrity": "sha512-ZVUwHundaQyFNjE6uoa0usaC0WOCitDCLS/4mdb4rOiJXwVUuKJBMxI5WMzXLWmamsXtK/Z//ifLXvV5Yeh4Hw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-x64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-x64/-/compiler-binding-darwin-x64-0.4.0.tgz", + "integrity": "sha512-FI6G8AY8u6fR1SI/QRR5yGMwtvZwP34CDmZpZ5HwJGa50UM1VISTLhqkhV4a476pmgd25X1Aur2dqw6hUnrlKA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-gnu": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-gnu/-/compiler-binding-linux-arm64-gnu-0.4.0.tgz", + "integrity": "sha512-lB9gLFJK7m82EnjaU8nlRBEfcwGNeHidW3sSjODTUjMNaoewVuUz9fwwdY5M4jiSXIqWLH3yl6TX8FTDKA74Sw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-musl": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-musl/-/compiler-binding-linux-arm64-musl-0.4.0.tgz", + "integrity": "sha512-HPbvWqbxFxyaoQJhLxCaSjtYBx9KBo7JGVzEFZCmMl968a2PsSH0UfiODYgYPXofTOIsIH2aoCcrHXML0IA3ig==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-gnu": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-gnu/-/compiler-binding-linux-x64-gnu-0.4.0.tgz", + "integrity": "sha512-tQKolMxoJ/+0AmLWm1PmJ/i+z3i10ZU1bNuVjEDulCf48azEMtUNjTZgHJ5MPtpYRNc7dlETr8QujUfduzoC7Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-musl": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-musl/-/compiler-binding-linux-x64-musl-0.4.0.tgz", + "integrity": "sha512-5v5YymudsxMHp3NBLCS8BUlu5CRqeLtWD9cKS/4nIhIEHCbpz9okmVV6I0HWqmBAPhWYcDa3vw/vltYPrOQCTA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-wasm32-wasi": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-wasm32-wasi/-/compiler-binding-wasm32-wasi-0.4.0.tgz", + "integrity": "sha512-m/phuH3x3PREvv1OnkM44NoPh4MatUadix1fB1u5SvMLCyDTUZykDJbKnWf1cjnYmHdlB8HcjTjl6JrCqAIXcw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.2.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@astrojs/compiler-binding-win32-arm64-msvc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-arm64-msvc/-/compiler-binding-win32-arm64-msvc-0.4.0.tgz", + "integrity": "sha512-B9zYf3okEY83kM8gydlpH2BHP00w4ifxPqlYlWrgTwuD6wnkrJDCwBlgy1q31cERjCJRXN1lrE2VmkLvFjv/6g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-win32-x64-msvc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-x64-msvc/-/compiler-binding-win32-x64-msvc-0.4.0.tgz", + "integrity": "sha512-zB0Nrv0dGc0zZWPGDRmmETTPhDRqyZjAjk+gWMlVrJX5U89obpB3VUUE1ZiHxOCN5LQojeLK6O8L/dnoHolvNQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-rs": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-rs/-/compiler-rs-0.4.0.tgz", + "integrity": "sha512-koVikeon1kreEy+/JzLQRy3vzHHQVOjycs4degg4vFufKApZOwMZvSSAEztYNhmcQVfNVsVZZI4cEge3cexAbQ==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-binding": "0.4.0" + }, + "engines": { + "node": ">=22.12.0" + } + }, "node_modules/@astrojs/internal-helpers": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.6.1.tgz", - "integrity": "sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==", - "license": "MIT" + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.11.0.tgz", + "integrity": "sha512-3rzxJ+xbo0+8YyqOzLziIN32wmsHdCjEVz2sGOpRxJ+Ben/KiLph4ItxBy1abEL+E8fkRzqjg0rfXmaHJGw9JA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4", + "@types/mdast": "^4.0.4", + "js-yaml": "^4.3.0", + "picomatch": "^4.0.4", + "retext-smartypants": "^6.2.0", + "shiki": "^4.0.2", + "smol-toml": "^1.6.0", + "unified": "^11.0.5" + } + }, + "node_modules/@astrojs/internal-helpers/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "node_modules/@astrojs/markdown-remark": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.1.tgz", - "integrity": "sha512-c5F5gGrkczUaTVgmMW9g1YMJGzOtRvjjhw6IfGuxarM6ct09MpwysP10US729dy07gg8y+ofVifezvP3BNsWZg==", + "node_modules/@astrojs/markdown-satteri": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.4.0.tgz", + "integrity": "sha512-wykOOW9KsUVcZweOpY/CeXpdKcCKZy6fQbdcteWFuI75+sQCiqxYM7VKsGa5b+aGl3cYQscFY37rsbbyal5MRw==", "license": "MIT", "dependencies": { - "@astrojs/internal-helpers": "0.6.1", - "@astrojs/prism": "3.2.0", + "@astrojs/internal-helpers": "0.11.0", + "@astrojs/prism": "4.0.2", "github-slugger": "^2.0.0", - "hast-util-from-html": "^2.0.3", - "hast-util-to-text": "^4.0.2", - "import-meta-resolve": "^4.1.0", - "js-yaml": "^4.1.0", - "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.1", - "remark-smartypants": "^3.0.2", - "shiki": "^3.0.0", - "smol-toml": "^1.3.1", - "unified": "^11.0.5", - "unist-util-remove-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "unist-util-visit-parents": "^6.0.1", - "vfile": "^6.0.3" + "satteri": "^0.10.3" } }, "node_modules/@astrojs/mdx": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-4.2.4.tgz", - "integrity": "sha512-c832AWpiMCcuPY8j+yr5T+hOf8n5RlKLFHlNTt15xxkOk3zjFJP81TIYKrMrbhD5rMzJ09Ixi+xM0m68w2Q0DQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-8.0.0.tgz", + "integrity": "sha512-4I/z+VgUO0B9I/+yhzIEpLyBYQZNJsInmrtqClP4lqX9yvUpbuV72zfRTZ8VqJLKABETUE5CYOl+23va8nqxZg==", "license": "MIT", "dependencies": { - "@astrojs/markdown-remark": "6.3.1", - "@mdx-js/mdx": "^3.1.0", - "acorn": "^8.14.1", - "es-module-lexer": "^1.6.0", - "estree-util-visit": "^2.0.0", - "hast-util-to-html": "^9.0.5", - "kleur": "^4.1.5", - "rehype-raw": "^7.0.0", - "remark-gfm": "^4.0.1", - "remark-smartypants": "^3.0.2", - "source-map": "^0.7.4", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.3" + "@astrojs/internal-helpers": "0.11.0", + "@astrojs/markdown-satteri": "0.4.0", + "es-module-lexer": "^2.0.0" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + "node": ">=22.12.0" }, "peerDependencies": { - "astro": "^5.0.0" + "@astrojs/markdown-remark": "^7.3.0", + "@astrojs/markdown-satteri": "^0.4.0", + "astro": "^7.2.6" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } } }, "node_modules/@astrojs/prism": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.2.0.tgz", - "integrity": "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==", + "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.29.0" + "prismjs": "^1.30.0" }, "engines": { - "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + "node": ">=22.12.0" } }, "node_modules/@astrojs/sitemap": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.3.0.tgz", - "integrity": "sha512-nYE4lKQtk+Kbrw/w0G0TTgT724co0jUsU4tPlHY9au5HmTBKbwiCLwO/15b1/y13aZ4Kr9ZbMeMHlXuwn0ty4Q==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.3.tgz", + "integrity": "sha512-f8euLVsyeAmAkSm/1M2Kb8sL8byQmfgbvBNaHFItCheTj/IpiJYSEWVcqDHZ/yEHxiS7+w87mQkzwZaPHmk5GA==", "license": "MIT", "dependencies": { - "sitemap": "^8.0.0", + "sitemap": "^9.0.0", "stream-replace-string": "^2.0.0", - "zod": "^3.24.2" + "zod": "^4.3.6" } }, "node_modules/@astrojs/starlight": { - "version": "0.37.6", - "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.37.6.tgz", - "integrity": "sha512-wQrKwH431q+8FsLBnNQeG+R36TMtEGxTQ2AuiVpcx9APcazvL3n7wVW8mMmYyxX0POjTnxlcWPkdMGR3Yj1L+w==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.42.0.tgz", + "integrity": "sha512-EVsGnyGJ6rRNwGRZFYmGABo0qTQ55F7OSmfSL0VK+5lsqD+u6GWcB8tFqXETcUvP8kyn90W+QBLSL2aer9jNJQ==", "license": "MIT", "dependencies": { - "@astrojs/markdown-remark": "^6.3.1", - "@astrojs/mdx": "^4.2.3", - "@astrojs/sitemap": "^3.3.0", + "@astrojs/markdown-satteri": "^0.4.0", + "@astrojs/mdx": "^8.0.0", + "@astrojs/sitemap": "^3.7.3", "@pagefind/default-ui": "^1.3.0", - "@types/hast": "^3.0.4", + "@types/hast": "^3.0.5", "@types/js-yaml": "^4.0.9", "@types/mdast": "^4.0.4", - "astro-expressive-code": "^0.41.1", + "astro-expressive-code": "^0.44.0", "bcp-47": "^2.1.0", - "hast-util-from-html": "^2.0.1", - "hast-util-select": "^6.0.2", - "hast-util-to-string": "^3.0.0", - "hastscript": "^9.0.0", - "i18next": "^23.11.5", - "js-yaml": "^4.1.0", + "hast-util-format": "^1.1.0", + "hast-util-select": "^6.0.4", + "hast-util-to-html": "^9.0.5", + "hast-util-to-string": "^3.0.1", + "hastscript": "^9.0.1", + "i18next": "^26.0.7", + "js-yaml": "^4.1.1", "klona": "^2.0.6", - "magic-string": "^0.30.17", - "mdast-util-directive": "^3.0.0", - "mdast-util-to-markdown": "^2.1.0", + "magic-string": "^1.2.3", + "mdast-util-directive": "^3.1.0", + "mdast-util-to-markdown": "^2.1.2", "mdast-util-to-string": "^4.0.0", - "pagefind": "^1.3.0", - "rehype": "^13.0.1", - "rehype-format": "^5.0.0", - "remark-directive": "^3.0.0", + "pagefind": "^1.5.2", + "remark-directive": "^4.0.0", + "satteri": "^0.10.3", "ultrahtml": "^1.6.0", "unified": "^11.0.5", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.2" + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" }, "peerDependencies": { - "astro": "^5.5.0" + "@astrojs/markdown-remark": "^7.3.0", + "astro": "^7.2.10" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } } }, "node_modules/@astrojs/starlight-tailwind": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@astrojs/starlight-tailwind/-/starlight-tailwind-4.0.2.tgz", - "integrity": "sha512-SYN/6zq6hJO5tWqbQ2tWT9/jd8ubUkzkBCcF94vByC/ZJ20Mi5GPjFvAh89Yky/aIM+jXxT6W5q4p6l58GKHiQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@astrojs/starlight-tailwind/-/starlight-tailwind-5.0.0.tgz", + "integrity": "sha512-VivF+bWg++4ma/ffr5sgHsd/ONtGdVJIKAaRZ6jmL4yqxy7bviu59MGNi5aW3nd8psP9i/aivBTrpwGxRM1XyA==", "license": "MIT", "peerDependencies": { - "@astrojs/starlight": ">=0.34.0", + "@astrojs/starlight": ">=0.38.0", "tailwindcss": "^4.0.0" } }, + "node_modules/@astrojs/starlight/node_modules/magic-string": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.2.3.tgz", + "integrity": "sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/@astrojs/telemetry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.0.tgz", - "integrity": "sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.3.tgz", + "integrity": "sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ==", "license": "MIT", "dependencies": { - "ci-info": "^4.2.0", - "debug": "^4.4.0", - "dlv": "^1.1.3", + "ci-info": "^4.4.0", "dset": "^3.1.4", - "is-docker": "^3.0.0", - "is-wsl": "^3.1.0", - "which-pm-runs": "^1.1.0" + "is-docker": "^4.0.0", + "package-manager-detector": "^1.6.0" }, "engines": { "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -204,31 +417,37 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/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/@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==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "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==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -238,9 +457,7 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", - "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", + "version": "7.23.6", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -250,165 +467,465 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "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/@ctrl/tinycolor": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.1.0.tgz", - "integrity": "sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "node_modules/@bruits/satteri-darwin-arm64": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.10.5.tgz", + "integrity": "sha512-27KTVl4TJkVahMy/ohyA7qd4938G5UNneFUz/PsScYfpIhj0IVAS23mpcJXdPF44sa6nva198lmV/cKIb2YPyA==", + "cpu": [ + "arm64" + ], "license": "MIT", "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } + "os": [ + "darwin" + ] }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", - "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "node_modules/@bruits/satteri-darwin-x64": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.10.5.tgz", + "integrity": "sha512-IjnLe3nKspq6qaeqGgjT7MT8VrTV74yWRlaag7ZdNsI8TDAYZ0iPxMCo+9KQZHUk5EyVB+reBI/PFWL5KuFw9Q==", "cpu": [ - "ppc64" + "x64" ], "license": "MIT", "optional": true, "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } + "darwin" + ] }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", - "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "node_modules/@bruits/satteri-linux-arm64-gnu": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.10.5.tgz", + "integrity": "sha512-glkYXZCJywjP13v67eAyAMSJdF+ncvEbYvgi/wOtffL9tQ27lr/zsyzUfgs+ovjJ9d8JNQKiXeiArJcX8PJL9w==", "cpu": [ - "arm" + "arm64" ], "license": "MIT", "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=18" - } + "linux" + ] }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", - "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "node_modules/@bruits/satteri-linux-arm64-musl": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.10.5.tgz", + "integrity": "sha512-yWdgG1g17Nh2QyGVlFUxGRa3FEFwiMcpZEyMNWkbM3deC94cmVc+/i9OuyFpdKuWo3GkgoCtYVOoxk1uCnCZIA==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=18" - } + "linux" + ] }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", - "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "node_modules/@bruits/satteri-linux-x64-gnu": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.10.5.tgz", + "integrity": "sha512-FVaLoPT1fBgGl0J+AYebyyXJYBachGl8Oyyrf1lye4RTqCB4S0Gwkj1uM9RJyThUOvx5VUmAT1CnNh1SFHA+kw==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ - "android" - ], - "engines": { - "node": ">=18" - } + "linux" + ] }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", - "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "node_modules/@bruits/satteri-linux-x64-musl": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.10.5.tgz", + "integrity": "sha512-EHpVAx2bqW3GINHTKkljtxVfQmVDGWIuwOYOP5YghTj+0PkBa2o8oKPRtQ9Kbsr1Fye8jtUcDjhwj2jMNugZKg==", "cpu": [ - "arm64" + "x64" ], "license": "MIT", "optional": true, "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } + "linux" + ] }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", - "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "node_modules/@bruits/satteri-wasm32-wasi": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.10.5.tgz", + "integrity": "sha512-ypz8c/Zmipxp4IoeDa228Gstv6TLzVmNs3yC6wKCoNSOjx1iwpgzu87Y3hTkXFdwChVGU85qeUDuOIarGUZQLw==", "cpu": [ - "x64" + "wasm32" ], "license": "MIT", "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.2.3" + }, "engines": { - "node": ">=18" + "node": ">=14.0.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", - "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", - "cpu": [ - "arm64" - ], + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", "license": "MIT", "optional": true, - "os": [ - "freebsd" + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-win32-arm64-msvc": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.10.5.tgz", + "integrity": "sha512-siTV88nb0LRqNpkL2gXboqCwVdq95sLtzMHS1/3eONV2gLbB3NAK46wmSMvCO/yquBvI2lvaFIfd8P12ecsxBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@bruits/satteri-win32-x64-msvc": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.10.5.tgz", + "integrity": "sha512-C3IfPvfvMXmlzBxaMPKFS1XiuV9pu2mC7YqkPk7PSvTgPZ8gbdASIpHpztDLvTTQjqZ0z1Ol8tK5X+V6XXC0wQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@capsizecss/unpack": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz", + "integrity": "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@clack/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.3.tgz", + "integrity": "sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==", + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@clack/prompts": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.7.0.tgz", + "integrity": "sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==", + "license": "MIT", + "dependencies": { + "@clack/core": "1.4.3", + "fast-string-width": "^3.0.2", + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.20.3", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.3.tgz", + "integrity": "sha512-tlosUqb+3BbxCxZdu4tKeRghPFC+QM7q4X5YhKV2eCmPG+1r2F3f4AaSz5sCrFqUtX4Jh20VFTKecl16MgiV9g==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.11.0.tgz", + "integrity": "sha512-/K4Rl5BN0OtTiPWmJCdqODu38XnDMsDxKY5rgrPnCkutPTJf2wVbkoixLfealF5Kwse/s8P8M5jAiURiwSwnFA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.7.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-json": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.2.tgz", + "integrity": "sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/json": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.4.tgz", + "integrity": "sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.7.tgz", + "integrity": "sha512-28/+iWLYxKxsvGYhSYL7zaCZqLz5+FFFDq9tVsvGv9kv8RY4fFAchJ5WX9M3YrrRlTIsECjsXPqeNgnSmNP2dg==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.42.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/search": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.7.1.tgz", + "integrity": "sha512-uMe5UO6PamJtSHrXhhHOzSX3ReWtiJrva6GnPMwSOrZtiExb5X5eExhr2OUZQVvdxPsKpY3Ro2mFbQadpPWmHA==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.37.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.7.1.tgz", + "integrity": "sha512-9QzNDgE4EYDnAHfrTlR2lwiPciiOymLtwKK+8yHQzCc7GXhAP9xdEbEJFy2IWB1j9UGUl9BsgMmTo/ImA02T7A==", + "license": "MIT", + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.43.9", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.43.9.tgz", + "integrity": "sha512-sTuUzTpPMFebRhg6dawChoKKgndIwfjmJgKVxBefPElcU2NwQ6AFroupk0SFqEerQyZOGRfDNnSN8Dw/lMAsXw==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.7.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz", + "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", + "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", - "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", "cpu": [ "x64" ], @@ -422,9 +939,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", - "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", "cpu": [ "arm" ], @@ -438,9 +955,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", - "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", "cpu": [ "arm64" ], @@ -454,9 +971,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", - "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", "cpu": [ "ia32" ], @@ -470,9 +987,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", - "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", "cpu": [ "loong64" ], @@ -486,9 +1003,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", - "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", "cpu": [ "mips64el" ], @@ -502,9 +1019,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", - "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", "cpu": [ "ppc64" ], @@ -518,9 +1035,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", - "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", "cpu": [ "riscv64" ], @@ -534,9 +1051,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", - "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", "cpu": [ "s390x" ], @@ -550,9 +1067,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", - "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", "cpu": [ "x64" ], @@ -566,9 +1083,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", - "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", "cpu": [ "arm64" ], @@ -582,9 +1099,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", - "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", "cpu": [ "x64" ], @@ -598,9 +1115,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", - "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", "cpu": [ "arm64" ], @@ -614,9 +1131,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", - "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", "cpu": [ "x64" ], @@ -629,10 +1146,26 @@ "node": ">=18" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", - "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", "cpu": [ "x64" ], @@ -646,9 +1179,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", - "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", "cpu": [ "arm64" ], @@ -662,9 +1195,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", - "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", "cpu": [ "ia32" ], @@ -678,9 +1211,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", - "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", "cpu": [ "x64" ], @@ -694,9 +1227,9 @@ } }, "node_modules/@expressive-code/core": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.41.1.tgz", - "integrity": "sha512-mG2IrN4t/NGPmEeeswmttsW7W7c96sz3ASjo1psQnOqU5QWAF61HpnBu3lPxHI8iQJyZI8wfAroo9FFpwlkvAQ==", + "version": "0.44.2", + "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.44.2.tgz", + "integrity": "sha512-Yw5KonQCD1HoOO2P89y4wifqS9qrJcGVY0LkVMUsVZjhi++bhz4WwQ37inenKFNOEVo50P7cjoVsCdaVnUbq8w==", "license": "MIT", "dependencies": { "@ctrl/tinycolor": "^4.0.4", @@ -710,47 +1243,115 @@ "unist-util-visit-parents": "^6.0.1" } }, - "node_modules/@expressive-code/plugin-frames": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.41.1.tgz", - "integrity": "sha512-cwUUWMr2jNpKpgiepEzM9BGnU60WepE5/Ar3H2aOn8IzcDa4Eeuk0JqQB1Vvpo0bu+VRIxaTA2njoAIeQuMN5w==", - "license": "MIT", - "dependencies": { - "@expressive-code/core": "^0.41.1" - } - }, - "node_modules/@expressive-code/plugin-shiki": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@expressive-code/plugin-shiki/-/plugin-shiki-0.41.1.tgz", - "integrity": "sha512-xJHk89ECxQpvf7ftTmtEfAKoApYYr5Um7d6fiE6GuY7+WuXN02+ZHH8r5pSJpxlQMfAmavqbNPd3dEJ9v/zHnQ==", - "license": "MIT", - "dependencies": { - "@expressive-code/core": "^0.41.1", - "shiki": "^3.2.2" - } + "node_modules/@expressive-code/core/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/@expressive-code/plugin-text-markers": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/@expressive-code/plugin-text-markers/-/plugin-text-markers-0.41.1.tgz", - "integrity": "sha512-PFvk91yY+H8KVEcyZSrktLoWzBgLVpowvMxOJooFn74roGxnU4TEBJpWcRnJFtMEwTLzWNnk10MSOApOccvSKg==", + "node_modules/@expressive-code/core/node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "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": { - "@expressive-code/core": "^0.41.1" + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "node_modules/@humanwhocodes/momoa": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", - "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", - "license": "Apache-2.0", + "node_modules/@expressive-code/core/node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/@expressive-code/plugin-frames": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.44.1.tgz", + "integrity": "sha512-HC/bdRao9225ApcgO/e3jn8ZOhldKO7ob1O/Tcipvtv7Vb5nMphZhMtD9uuywpvxkPYBHJi3504WhrKg05Dwqg==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.1" + } + }, + "node_modules/@expressive-code/plugin-line-numbers": { + "version": "0.44.2", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-line-numbers/-/plugin-line-numbers-0.44.2.tgz", + "integrity": "sha512-WvJV+Wv+dazle+IQoKH8rL5GpzwvRTSJ2IMrtufvnJy+aT+GGm73PoM19CN5HauCIc0tl/fGDtrm3iI9SjZNGQ==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.2" + } + }, + "node_modules/@expressive-code/plugin-shiki": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-shiki/-/plugin-shiki-0.44.1.tgz", + "integrity": "sha512-YApiZt3buUzBwL5tqj8G+sYC5NjMjRCHgQwr9bmGl69rtcHy6fE9dooWUeKYB978fJT2BuxT5FeHcF47rA3SEg==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.1", + "shiki": "^4.0.2" + } + }, + "node_modules/@expressive-code/plugin-text-markers": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-text-markers/-/plugin-text-markers-0.44.1.tgz", + "integrity": "sha512-B3BsJoJ8CFMlcIX9f+X9tcI3C4zPDO601+YuLi9GheSTNro7ZfqSjLptMQKBHOWZvxnAtY5zvIX7iO/qtBhNBg==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.1" + } + }, + "node_modules/@humanwhocodes/momoa": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", + "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", + "license": "Apache-2.0", "engines": { "node": ">=10.10.0" } }, "node_modules/@img/colour": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", - "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "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": { @@ -758,9 +1359,9 @@ } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz", + "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==", "cpu": [ "arm64" ], @@ -770,19 +1371,19 @@ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" + "@img/sharp-libvips-darwin-arm64": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz", + "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==", "cpu": [ "x64" ], @@ -792,19 +1393,38 @@ "darwin" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" + "@img/sharp-libvips-darwin-x64": "1.3.3" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz", + "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.4" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz", + "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==", "cpu": [ "arm64" ], @@ -818,9 +1438,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz", + "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==", "cpu": [ "x64" ], @@ -834,9 +1454,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz", + "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==", "cpu": [ "arm" ], @@ -850,9 +1470,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz", + "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==", "cpu": [ "arm64" ], @@ -866,9 +1486,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz", + "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==", "cpu": [ "ppc64" ], @@ -882,9 +1502,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz", + "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==", "cpu": [ "riscv64" ], @@ -898,9 +1518,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz", + "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==", "cpu": [ "s390x" ], @@ -914,9 +1534,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz", + "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==", "cpu": [ "x64" ], @@ -930,9 +1550,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz", + "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==", "cpu": [ "arm64" ], @@ -946,9 +1566,9 @@ } }, "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==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz", + "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==", "cpu": [ "x64" ], @@ -962,9 +1582,9 @@ } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz", + "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==", "cpu": [ "arm" ], @@ -974,19 +1594,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" + "@img/sharp-libvips-linux-arm": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz", + "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==", "cpu": [ "arm64" ], @@ -996,19 +1616,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" + "@img/sharp-libvips-linux-arm64": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz", + "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==", "cpu": [ "ppc64" ], @@ -1018,19 +1638,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" + "@img/sharp-libvips-linux-ppc64": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz", + "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==", "cpu": [ "riscv64" ], @@ -1040,19 +1660,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" + "@img/sharp-libvips-linux-riscv64": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz", + "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==", "cpu": [ "s390x" ], @@ -1062,19 +1682,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" + "@img/sharp-libvips-linux-s390x": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz", + "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==", "cpu": [ "x64" ], @@ -1084,19 +1704,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" + "@img/sharp-libvips-linux-x64": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz", + "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==", "cpu": [ "arm64" ], @@ -1106,19 +1726,19 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz", + "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==", "cpu": [ "x64" ], @@ -1128,38 +1748,54 @@ "linux" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + "@img/sharp-libvips-linuxmusl-x64": "1.3.3" } }, "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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz", + "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz", + "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==", "cpu": [ "wasm32" ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "license": "Apache-2.0", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.7.0" + "@img/sharp-wasm32": "0.35.4" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz", + "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==", "cpu": [ "arm64" ], @@ -1169,16 +1805,16 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz", + "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==", "cpu": [ "ia32" ], @@ -1188,16 +1824,16 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": "^20.9.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==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz", + "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==", "cpu": [ "x64" ], @@ -1207,52 +1843,153 @@ "win32" ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "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==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "license": "MIT" }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.2.tgz", + "integrity": "sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ==", + "license": "MIT" + }, + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", + "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.3.0" + } + }, + "node_modules/@lezer/json": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz", + "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.10.tgz", + "integrity": "sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.6.0.tgz", + "integrity": "sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@lit/reactive-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0" + } + }, + "node_modules/@lucide/astro": { + "version": "1.41.0", + "resolved": "https://registry.npmjs.org/@lucide/astro/-/astro-1.41.0.tgz", + "integrity": "sha512-B6i+gssCkaI9o2mTGLslHOSNyFUv5i6bqxATozpFepdT5XH/n3gjcH4jQ6efqMRGIrqaKsFr5TRwgfKEMqlHiQ==", + "license": "ISC", + "peerDependencies": { + "astro": "^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.4.tgz", + "integrity": "sha512-Wy0V7+SGUjnF9/TkiM1hKVDPj7jKXduPNboMVtHTA8dySMURWqfg/JZ9E2Sq8JgSJmkl7k7Qe9FLeMSrSraWmQ==", + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz", + "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, "node_modules/@oslojs/encoding": { @@ -1261,10 +1998,19 @@ "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", "license": "MIT" }, + "node_modules/@oxc-project/types": { + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.147.0.tgz", + "integrity": "sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, "node_modules/@pagefind/darwin-arm64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.3.0.tgz", - "integrity": "sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz", + "integrity": "sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==", "cpu": [ "arm64" ], @@ -1275,9 +2021,9 @@ ] }, "node_modules/@pagefind/darwin-x64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.3.0.tgz", - "integrity": "sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz", + "integrity": "sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw==", "cpu": [ "x64" ], @@ -1288,15 +2034,28 @@ ] }, "node_modules/@pagefind/default-ui": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.3.0.tgz", - "integrity": "sha512-CGKT9ccd3+oRK6STXGgfH+m0DbOKayX6QGlq38TfE1ZfUcPc5+ulTuzDbZUnMo+bubsEOIypm4Pl2iEyzZ1cNg==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.5.2.tgz", + "integrity": "sha512-pm1LMnQg8N2B3n2TnjKlhaFihpz6zTiA4HiGQ6/slKO/+8K9CAU5kcjdSSPgpuk1PMuuN4hxLipUIifnrkl3Sg==", "license": "MIT" }, + "node_modules/@pagefind/freebsd-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz", + "integrity": "sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@pagefind/linux-arm64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.3.0.tgz", - "integrity": "sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz", + "integrity": "sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw==", "cpu": [ "arm64" ], @@ -1307,9 +2066,9 @@ ] }, "node_modules/@pagefind/linux-x64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.3.0.tgz", - "integrity": "sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz", + "integrity": "sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA==", "cpu": [ "x64" ], @@ -1319,12 +2078,12 @@ "linux" ] }, - "node_modules/@pagefind/windows-x64": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.3.0.tgz", - "integrity": "sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==", + "node_modules/@pagefind/windows-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz", + "integrity": "sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g==", "cpu": [ - "x64" + "arm64" ], "license": "MIT", "optional": true, @@ -1332,100 +2091,59 @@ "win32" ] }, - "node_modules/@readme/better-ajv-errors": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@readme/better-ajv-errors/-/better-ajv-errors-2.4.0.tgz", - "integrity": "sha512-9WODaOAKSl/mU+MYNZ2aHCrkoRSvmQ+1YkLj589OEqqjOAhbn8j7Z+ilYoiTu/he6X63/clsxxAB4qny9/dDzg==", - "license": "Apache-2.0", - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/runtime": "^7.22.5", - "@humanwhocodes/momoa": "^2.0.3", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "ajv": "4.11.8 - 8" - } - }, - "node_modules/@readme/openapi-parser": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@readme/openapi-parser/-/openapi-parser-4.1.2.tgz", - "integrity": "sha512-lAFH88r/CHs5VZDUocEda0OSMSQsr6801sziIjOKyVA+0hSFN+BPuelPF5XvkMROHecnPd+XEJN1iNQqCgER/g==", - "license": "MIT", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^13.0.5", - "@readme/better-ajv-errors": "^2.3.2", - "@readme/openapi-schemas": "^3.1.0", - "@types/json-schema": "^7.0.15", - "ajv": "^8.12.0", - "ajv-draft-04": "^1.0.0" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@readme/openapi-schemas": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz", - "integrity": "sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==", + "node_modules/@pagefind/windows-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz", + "integrity": "sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg==", + "cpu": [ + "x64" + ], "license": "MIT", - "engines": { - "node": ">=18" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@rollup/pluginutils": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "node_modules/@parcel/watcher": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.6.0.tgz", + "integrity": "sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==", + "hasInstallScript": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.4" }, "engines": { - "node": ">=14.0.0" + "node": ">= 10.0.0" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils/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/@rollup/rollup-android-arm-eabi": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz", - "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz", - "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==", + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.6.0", + "@parcel/watcher-darwin-arm64": "2.6.0", + "@parcel/watcher-darwin-x64": "2.6.0", + "@parcel/watcher-freebsd-x64": "2.6.0", + "@parcel/watcher-linux-arm-glibc": "2.6.0", + "@parcel/watcher-linux-arm-musl": "2.6.0", + "@parcel/watcher-linux-arm64-glibc": "2.6.0", + "@parcel/watcher-linux-arm64-musl": "2.6.0", + "@parcel/watcher-linux-x64-glibc": "2.6.0", + "@parcel/watcher-linux-x64-musl": "2.6.0", + "@parcel/watcher-win32-arm64": "2.6.0", + "@parcel/watcher-win32-x64": "2.6.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz", + "integrity": "sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==", "cpu": [ "arm64" ], @@ -1433,12 +2151,20 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz", - "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==", + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz", + "integrity": "sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==", "cpu": [ "arm64" ], @@ -1446,12 +2172,20 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz", - "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==", + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz", + "integrity": "sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==", "cpu": [ "x64" ], @@ -1459,25 +2193,20 @@ "optional": true, "os": [ "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz", - "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==", - "cpu": [ - "arm64" ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz", - "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==", + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz", + "integrity": "sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==", "cpu": [ "x64" ], @@ -1485,12 +2214,20 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz", - "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==", + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz", + "integrity": "sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==", "cpu": [ "arm" ], @@ -1498,12 +2235,20 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz", - "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==", + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz", + "integrity": "sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==", "cpu": [ "arm" ], @@ -1511,25 +2256,20 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz", - "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==", - "cpu": [ - "arm64" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz", - "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==", + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz", + "integrity": "sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==", "cpu": [ "arm64" ], @@ -1537,77 +2277,62 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz", - "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==", - "cpu": [ - "loong64" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz", - "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==", + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz", + "integrity": "sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==", "cpu": [ - "ppc64" + "arm64" ], "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz", - "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==", - "cpu": [ - "riscv64" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz", - "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==", + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz", + "integrity": "sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==", "cpu": [ - "riscv64" + "x64" ], "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz", - "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==", - "cpu": [ - "s390x" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz", - "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==", + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz", + "integrity": "sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==", "cpu": [ "x64" ], @@ -1615,25 +2340,20 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz", - "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==", - "cpu": [ - "x64" ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz", - "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==", + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz", + "integrity": "sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==", "cpu": [ "arm64" ], @@ -1641,25 +2361,20 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz", - "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==", - "cpu": [ - "ia32" ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz", - "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==", + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz", + "integrity": "sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==", "cpu": [ "x64" ], @@ -1667,114 +2382,105 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@shikijs/core": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.22.0.tgz", - "integrity": "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.22.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.5" - } - }, - "node_modules/@shikijs/engine-javascript": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.22.0.tgz", - "integrity": "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.22.0", - "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.3.4" + ], + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.22.0.tgz", - "integrity": "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==", + "node_modules/@parcel/watcher/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", - "dependencies": { - "@shikijs/types": "3.22.0", - "@shikijs/vscode-textmate": "^10.0.2" + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@shikijs/langs": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.22.0.tgz", - "integrity": "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==", - "license": "MIT", + "node_modules/@readme/better-ajv-errors": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@readme/better-ajv-errors/-/better-ajv-errors-2.4.0.tgz", + "integrity": "sha512-9WODaOAKSl/mU+MYNZ2aHCrkoRSvmQ+1YkLj589OEqqjOAhbn8j7Z+ilYoiTu/he6X63/clsxxAB4qny9/dDzg==", + "license": "Apache-2.0", "dependencies": { - "@shikijs/types": "3.22.0" + "@babel/code-frame": "^7.22.5", + "@babel/runtime": "^7.22.5", + "@humanwhocodes/momoa": "^2.0.3", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "ajv": "4.11.8 - 8" } }, - "node_modules/@shikijs/themes": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.22.0.tgz", - "integrity": "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==", - "license": "MIT", - "dependencies": { - "@shikijs/types": "3.22.0" - } + "node_modules/@readme/better-ajv-errors/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/@shikijs/types": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.22.0.tgz", - "integrity": "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==", + "node_modules/@readme/openapi-parser": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@readme/openapi-parser/-/openapi-parser-4.1.2.tgz", + "integrity": "sha512-lAFH88r/CHs5VZDUocEda0OSMSQsr6801sziIjOKyVA+0hSFN+BPuelPF5XvkMROHecnPd+XEJN1iNQqCgER/g==", "license": "MIT", "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" + "@apidevtools/json-schema-ref-parser": "^13.0.5", + "@readme/better-ajv-errors": "^2.3.2", + "@readme/openapi-schemas": "^3.1.0", + "@types/json-schema": "^7.0.15", + "ajv": "^8.12.0", + "ajv-draft-04": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "openapi-types": ">=7" } }, - "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/@tailwindcss/node": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.0.3.tgz", - "integrity": "sha512-QsVJokOl0pJ4AbJV33D2npvLcHGPWi5MOSZtrtE0GT3tSx+3D0JE2lokLA8yHS1x3oCY/3IyRyy7XX6tmzid7A==", + "node_modules/@readme/openapi-parser/node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", "license": "MIT", - "dependencies": { - "enhanced-resolve": "^5.18.0", - "jiti": "^2.4.2", - "tailwindcss": "4.0.3" + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/@tailwindcss/oxide": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.0.3.tgz", - "integrity": "sha512-FFcp3VNvRjjmFA39ORM27g2mbflMQljhvM7gxBAujHxUy4LXlKa6yMF9wbHdTbPqTONiCyyOYxccvJyVyI/XBg==", + "node_modules/@readme/openapi-schemas": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz", + "integrity": "sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw==", "license": "MIT", "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.0.3", - "@tailwindcss/oxide-darwin-arm64": "4.0.3", - "@tailwindcss/oxide-darwin-x64": "4.0.3", - "@tailwindcss/oxide-freebsd-x64": "4.0.3", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.0.3", - "@tailwindcss/oxide-linux-arm64-gnu": "4.0.3", - "@tailwindcss/oxide-linux-arm64-musl": "4.0.3", - "@tailwindcss/oxide-linux-x64-gnu": "4.0.3", - "@tailwindcss/oxide-linux-x64-musl": "4.0.3", - "@tailwindcss/oxide-win32-arm64-msvc": "4.0.3", - "@tailwindcss/oxide-win32-x64-msvc": "4.0.3" + "node": ">=18" } }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.3.tgz", - "integrity": "sha512-S8XOTQuMnpijZRlPm5HBzPJjZ28quB+40LSRHjRnQF6rRYKsvpr1qkY7dfwsetNdd+kMLOMDsvmuT8WnqqETvg==", + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.6.tgz", + "integrity": "sha512-b+jTcARdTiFLI6jB4a5XjTm0RWd6KcRfQj/I2356fxUZemiho9zQLxo0RtCuMDAyKcLo6cEltkgbQp6d1+sjjQ==", "cpu": [ - "arm64" + "arm" ], "license": "MIT", "optional": true, @@ -1782,29 +2488,45 @@ "android" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.3.tgz", - "integrity": "sha512-smrY2DpzhXvgDhZtQlYAl8+vxJ04lv2/64C1eiRxvsRT2nkw/q+zA1/eAYKvUHat6cIuwqDku3QucmrUT6pCeg==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.6.tgz", + "integrity": "sha512-lkWU8ZJaRk9q3CIEY1Tc7vIFALp3Xw5NfGJo2hQg5oIqNgxWi1zI+IiDEK3r70BF5Dzol1tcXsnzsRc8NLhG+Q==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ - "darwin" + "android" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.3.tgz", - "integrity": "sha512-NTz8x/LcGUjpZAWUxz0ZuzHao90Wj9spoQgomwB+/hgceh5gcJDfvaBYqxLFpKzVglpnbDSq1Fg0p0zI4oa5Pg==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.6.tgz", + "integrity": "sha512-dgR56NYnvAszm7Ob1B2/Vn0e8bUQYZH2UjVaMMtMVOCKFSfjhfLmuA/9+O+F+ajUdG6B/bSssrKW6JJYASa8jA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.6.tgz", + "integrity": "sha512-vpVxFvUCFioJqug7OTvqptkc4yb8UX0AwfDmJpaR/0sWz+BUmqSVAf7c8JkUgnN8YLspb4a/N6NhTyMAmdyQ7Q==", "cpu": [ "x64" ], @@ -1814,13 +2536,13 @@ "darwin" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.3.tgz", - "integrity": "sha512-yQc9Q0JCOp3kkAV8gKgDctXO60IkQhHpqGB+KgOccDtD5UmN6Q5+gd+lcsDyQ7N8dRuK1fAud51xQpZJgKfm7g==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.6.tgz", + "integrity": "sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA==", "cpu": [ "x64" ], @@ -1830,13 +2552,13 @@ "freebsd" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.3.tgz", - "integrity": "sha512-e1ivVMLSnxTOU1O3npnxN16FEyWM/g3SuH2pP6udxXwa0/SnSAijRwcAYRpqIlhVKujr158S8UeHxQjC4fGl4w==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.6.tgz", + "integrity": "sha512-tbCiqub0q2MVWJKgF5PoAlNWCtQydiOYSLIkd8sByqK/6MMYLJRcSXSYodqYtd0O+Fw7QaVmKKlS4oL94YRZ0w==", "cpu": [ "arm" ], @@ -1846,13 +2568,13 @@ "linux" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.3.tgz", - "integrity": "sha512-PLrToqQqX6sdJ9DmMi8IxZWWrfjc9pdi9AEEPTrtMts3Jm9HBi1WqEeF1VwZZ2aW9TXloE5OwA35zuuq1Bhb/Q==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.6.tgz", + "integrity": "sha512-oxK9+baEBPhZG5HB4URY+uU04zJWeZlH6Tb9rB5DK4DF9XR1uXNLXt5Q5ZsugTKayNCNLhkcwz/ye74hRI98dg==", "cpu": [ "arm64" ], @@ -1862,13 +2584,13 @@ "linux" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.3.tgz", - "integrity": "sha512-YlzRxx7N1ampfgSKzEDw0iwDkJXUInR4cgNEqmR4TzHkU2Vhg59CGPJrTI7dxOBofD8+O35R13Nk9Ytyv0JUFg==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.6.tgz", + "integrity": "sha512-muWCk27FVBEZtv0MsK8gnfSmgczA8KQ0uRVJbTABKhkRfQc38aUrcb7fhi3BNiyseFmgcRsoMfQsSNJ+DbZdSw==", "cpu": [ "arm64" ], @@ -1878,15 +2600,15 @@ "linux" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.3.tgz", - "integrity": "sha512-Xfc3z/li6XkuD7Hs+Uk6pjyCXnfnd9zuQTKOyDTZJ544xc2yoMKUkuDw6Et9wb31MzU2/c0CIUpTDa71lL9KHw==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.6.tgz", + "integrity": "sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ==", "cpu": [ - "x64" + "ppc64" ], "license": "MIT", "optional": true, @@ -1894,15 +2616,15 @@ "linux" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.3.tgz", - "integrity": "sha512-ugKVqKzwa/cjmqSQG17aS9DYrEcQ/a5NITcgmOr3JLW4Iz64C37eoDlkC8tIepD3S/Td/ywKAolTQ8fKbjEL4g==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.6.tgz", + "integrity": "sha512-2bWNjRSIayvupRKxXUY2tWG9fYdoUlTqWywHRvE8Eq3GvuQ+f2HeIkve697fIt+IQs/PV8yFsdWuhp1aJ1PdnA==", "cpu": [ - "x64" + "s390x" ], "license": "MIT", "optional": true, @@ -1910,496 +2632,1147 @@ "linux" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.3.tgz", - "integrity": "sha512-qHPDMl+UUwsk1RMJMgAXvhraWqUUT+LR/tkXix5RA39UGxtTrHwsLIN1AhNxI5i2RFXAXfmFXDqZCdyQ4dWmAQ==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.6.tgz", + "integrity": "sha512-KekI0gS0wLxe1UBSQSjenBVwou/JkcQPDzBPICGZjxUv9k3RteHDPBQaiOicZUFKRIH2wKEimGwVpnJsbPzu7w==", "cpu": [ - "arm64" + "x64" ], "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "engines": { - "node": ">= 10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.3.tgz", - "integrity": "sha512-+ujwN4phBGyOsPyLgGgeCyUm4Mul+gqWVCIGuSXWgrx9xVUnf6LVXrw0BDBc9Aq1S2qMyOTX4OkCGbZeoIo8Qw==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.6.tgz", + "integrity": "sha512-TvtPnfVr+HtyGiDmPK4VWmlNm7QhNNAcK5Q9A7aOXsI8545yCyaoMaicXrFZ72JzeYjaUVk7yT243zT0jzjFKQ==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/vite": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.0.3.tgz", - "integrity": "sha512-Qj6rSO+EvXnNDymloKZ11D54JJTnDrkRWJBzNHENDxjt0HtrCZJbSLIrcJ/WdaoU4othrel/oFqHpO/doxIS/Q==", - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "^4.0.3", - "@tailwindcss/oxide": "^4.0.3", - "lightningcss": "^1.29.1", - "tailwindcss": "4.0.3" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.6.tgz", + "integrity": "sha512-iOo0VEay2XFhaCcH0sps5XIimkSuOnNaZrf6+ZkoSOQBJPKNU48RkmJv0/lSpipexu5P+ouFgafe5IGr/DiQfg==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@types/ms": "*" + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.6.tgz", + "integrity": "sha512-y5NTmmasMS455JlOCO4ZM9krIchv3Mvm1crL1iUPGOPgEzSkves9n0SdC5Sjz6+qWDFhd8/JpfWMH8NSWNHe+A==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@types/estree": "*" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "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==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.6.tgz", + "integrity": "sha512-np8iZSLfXlAD4kWhiyq/u0Yt8oZDtRQ8lGhQaCXo2rl37KNjeU0GjJuwr4P3oeZ++ROfofsKNBqR5LTO8aXyWQ==", + "cpu": [ + "x64" + ], "license": "MIT", - "dependencies": { - "@types/unist": "*" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@types/js-yaml": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", - "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "license": "MIT" }, - "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==", + "node_modules/@shikijs/core": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.4.3.tgz", + "integrity": "sha512-QCR4q2ZO/ILJEuwiBMel4wdcTDb1JGwfjKTxPDF6x8ixOaluPrVqIn06C99AcRPhmYlBR56d/Fb+GN58GzExpg==", "license": "MIT", "dependencies": { - "@types/unist": "*" + "@shikijs/primitive": "4.4.3", + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" } }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "license": "MIT" - }, - "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==", + "node_modules/@shikijs/engine-javascript": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.4.3.tgz", + "integrity": "sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ==", "license": "MIT", "dependencies": { - "@types/unist": "*" + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.6" + }, + "engines": { + "node": ">=20" } }, - "node_modules/@types/node": { - "version": "22.13.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz", - "integrity": "sha512-jK8uzQlrvXqEU91UxiK5J7pKHyzgnI1Qnl0QDHIgVGuolJhRb9EEl28Cj9b3rGR8B2lhFCtvIm5os8lFnO/1Ew==", + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.4.3.tgz", + "integrity": "sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w==", "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" } }, - "node_modules/@types/sax": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "node_modules/@shikijs/langs": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.4.3.tgz", + "integrity": "sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A==", "license": "MIT", "dependencies": { - "@types/node": "*" - } - }, - "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.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "@shikijs/types": "4.4.3" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": ">=20" } }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "node_modules/@shikijs/primitive": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.3.tgz", + "integrity": "sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "@shikijs/types": "4.4.3", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=20" } }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "node_modules/@shikijs/themes": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.4.3.tgz", + "integrity": "sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw==", "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "license": "ISC", "dependencies": { - "string-width": "^4.1.0" + "@shikijs/types": "4.4.3" + }, + "engines": { + "node": ">=20" } }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@shikijs/types": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.4.3.tgz", + "integrity": "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==", "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.5" + }, "engines": { - "node": ">=8" + "node": ">=20" } }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "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/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@tailwindcss/node": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.3" } }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/@tailwindcss/node/node_modules/enhanced-resolve": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" }, "engines": { - "node": ">=8" + "node": ">=10.13.0" } }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/@tailwindcss/node/node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=6" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/@tailwindcss/oxide": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 20" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, - "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==", + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "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/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "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/node": { + "version": "26.4.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.0.tgz", + "integrity": "sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.4.0.tgz", + "integrity": "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==", + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/am-i-vibing": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.4.0.tgz", + "integrity": "sha512-MxT4XZL7pzLHpuvhDKdMaQHMGGkJDLluKBLsbstn+8wv9sWcFT6h+0ve9qkml95amVTZtZV83gQe2hY+ojgHLg==", + "license": "MIT", + "dependencies": { + "process-ancestry": "^0.1.0" + }, + "bin": { + "am-i-vibing": "dist/cli.mjs" + } + }, + "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" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "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/astro": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/astro/-/astro-7.3.1.tgz", + "integrity": "sha512-A/bJYHtc6n0UAdROY9W948fW6lX0pnUA+JWKW+IGCXRyDIGN2MsXC0OlS8onZGJjr+sv8htemwOc9W5PBRXCkw==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-rs": "^0.4.0", + "@astrojs/internal-helpers": "0.11.0", + "@astrojs/markdown-satteri": "0.4.0", + "@astrojs/telemetry": "3.3.3", + "@capsizecss/unpack": "^4.0.0", + "@clack/prompts": "^1.1.0", + "@oslojs/encoding": "^1.1.0", + "am-i-vibing": "^0.4.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "ci-info": "^4.4.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^2.0.0", + "cookie": "^2.0.1", + "devalue": "^5.8.1", + "diff": "^9.0.0", + "dset": "^3.1.4", + "es-module-lexer": "^2.0.0", + "esbuild": "^0.28.0", + "find-proc": "0.1.0", + "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.3.0", + "jsonc-parser": "^3.3.1", + "magic-string": "^1.0.0", + "magicast": "^0.5.2", + "mrmime": "^2.0.1", + "neotraverse": "^1.0.1", + "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", + "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.5", + "unstorage": "^1.17.5", + "vite": "^8.0.13", + "vitefu": "^1.1.2", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^22.0.0", + "zod": "^4.5.4" + }, + "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.35.4" + }, + "peerDependencies": { + "@astrojs/markdown-remark": "^7.3.0" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } + } + }, + "node_modules/astro-expressive-code": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/astro-expressive-code/-/astro-expressive-code-0.44.1.tgz", + "integrity": "sha512-DT1LnCqbHasBKlvzJ3m6LR4VI94wwx3W9EV/YbP1te4rqjOHsvsezHYuqb5MeLWLftXms/1FA9QBbwCo43DnJQ==", + "license": "MIT", + "dependencies": { + "rehype-expressive-code": "^0.44.1", + "url-extras": "^0.1.0" + }, + "peerDependencies": { + "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta || ^7.0.0" + } + }, + "node_modules/astro/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/astro/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/astro/node_modules/cookie": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-2.0.1.tgz", + "integrity": "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==", + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/astro/node_modules/css-select": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz", + "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^7.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "nth-check": "^2.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/astro/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/astro/node_modules/css-what": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz", + "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/astro/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/astro/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/astro/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/astro/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/astro/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/astro/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": ">= 8" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", + "node_modules/astro/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/astro/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": ">=8.6" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" + "node_modules/astro/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/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/astro/node_modules/magic-string": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.2.3.tgz", + "integrity": "sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } }, - "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/astro/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/astro/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/array-iterate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", - "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "node_modules/astro/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/astro/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", + "engines": { + "node": ">=12" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "node_modules/astro/node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "license": "MIT", - "bin": { - "astring": "bin/astring" + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/astro": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/astro/-/astro-5.17.1.tgz", - "integrity": "sha512-oD3tlxTaVWGq/Wfbqk6gxzVRz98xa/rYlpe+gU2jXJMSD01k6sEDL01ZlT8mVSYB/rMgnvIOfiQQ3BbLdN237A==", + "node_modules/astro/node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/astro/node_modules/svgo": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.1.0.tgz", + "integrity": "sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q==", "license": "MIT", "dependencies": { - "@astrojs/compiler": "^2.13.0", - "@astrojs/internal-helpers": "0.7.5", - "@astrojs/markdown-remark": "6.3.10", - "@astrojs/telemetry": "3.3.0", - "@capsizecss/unpack": "^4.0.0", - "@oslojs/encoding": "^1.1.0", - "@rollup/pluginutils": "^5.3.0", - "acorn": "^8.15.0", - "aria-query": "^5.3.2", - "axobject-query": "^4.1.0", - "boxen": "8.0.1", - "ci-info": "^4.3.1", - "clsx": "^2.1.1", - "common-ancestor-path": "^1.0.1", - "cookie": "^1.1.1", - "cssesc": "^3.0.0", - "debug": "^4.4.3", - "deterministic-object-hash": "^2.0.2", - "devalue": "^5.6.2", - "diff": "^8.0.3", - "dlv": "^1.1.3", - "dset": "^3.1.4", - "es-module-lexer": "^1.7.0", - "esbuild": "^0.25.0", - "estree-walker": "^3.0.3", - "flattie": "^1.1.1", - "fontace": "~0.4.0", - "github-slugger": "^2.0.0", - "html-escaper": "3.0.3", - "http-cache-semantics": "^4.2.0", - "import-meta-resolve": "^4.2.0", - "js-yaml": "^4.1.1", - "magic-string": "^0.30.21", - "magicast": "^0.5.1", - "mrmime": "^2.0.1", - "neotraverse": "^0.6.18", - "p-limit": "^6.2.0", - "p-queue": "^8.1.1", - "package-manager-detector": "^1.6.0", - "piccolore": "^0.1.3", - "picomatch": "^4.0.3", - "prompts": "^2.4.2", - "rehype": "^13.0.2", - "semver": "^7.7.3", - "shiki": "^3.21.0", - "smol-toml": "^1.6.0", - "svgo": "^4.0.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tsconfck": "^3.1.6", - "ultrahtml": "^1.6.0", - "unifont": "~0.7.3", - "unist-util-visit": "^5.0.0", - "unstorage": "^1.17.4", - "vfile": "^6.0.3", - "vite": "^6.4.1", - "vitefu": "^1.1.1", - "xxhash-wasm": "^1.1.0", - "yargs-parser": "^21.1.1", - "yocto-spinner": "^0.2.3", - "zod": "^3.25.76", - "zod-to-json-schema": "^3.25.1", - "zod-to-ts": "^1.2.0" + "commander": "^11.1.0", + "css-select": "^6.0.0", + "css-tree": "^3.0.1", + "css-what": "^7.0.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "1.6.1" }, "bin": { - "astro": "astro.js" + "svgo": "bin/svgo.js" }, "engines": { - "node": "18.20.8 || ^20.3.0 || >=22.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0" + "node": ">=16" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/astrodotbuild" - }, - "optionalDependencies": { - "sharp": "^0.34.0" + "url": "https://opencollective.com/svgo" } }, - "node_modules/astro-expressive-code": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/astro-expressive-code/-/astro-expressive-code-0.41.1.tgz", - "integrity": "sha512-za6HlekMOczwlkuYuQQTd6LkKFwsnfAjwjIprCzOqsjp9vkYrAcriXM5cIG7V1Zxx88sVXF6iGnyNl4J0DL2Mg==", + "node_modules/astro/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": { - "rehype-expressive-code": "^0.41.1" + "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": { - "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0" - } - }, - "node_modules/astro/node_modules/@astrojs/internal-helpers": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.5.tgz", - "integrity": "sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==", - "license": "MIT" - }, - "node_modules/astro/node_modules/@astrojs/markdown-remark": { - "version": "6.3.10", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.10.tgz", - "integrity": "sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==", - "license": "MIT", - "dependencies": { - "@astrojs/internal-helpers": "0.7.5", - "@astrojs/prism": "3.3.0", - "github-slugger": "^2.0.0", - "hast-util-from-html": "^2.0.3", - "hast-util-to-text": "^4.0.2", - "import-meta-resolve": "^4.2.0", - "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", - "shiki": "^3.19.0", - "smol-toml": "^1.5.2", - "unified": "^11.0.5", - "unist-util-remove-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "unist-util-visit-parents": "^6.0.2", - "vfile": "^6.0.3" + "@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/astro/node_modules/@astrojs/prism": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.3.0.tgz", - "integrity": "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==", - "license": "MIT", - "dependencies": { - "prismjs": "^1.30.0" - }, + "node_modules/astro/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": "18.20.8 || ^20.3.0 || >=22.0.0" + "node": "^20.19.0 || ^22.12.0 || >=23" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, "node_modules/axobject-query": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", @@ -2419,16 +3792,10 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/base-64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", - "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", - "license": "MIT" - }, "node_modules/bcp-47": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", - "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.1.tgz", + "integrity": "sha512-KLw+H/gd2p4zly1X7Yh/qziuyae5/w/QFnvTng9eZL5fvszL7Whl3MBoWF8yxL7ksUjBfOD+OxkytiqbBpG+Fw==", "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", @@ -2456,38 +3823,23 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "license": "ISC" }, - "node_modules/boxen": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", - "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", + "node_modules/buffer-from": { + "version": "1.1.2", "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^8.0.0", - "chalk": "^5.3.0", - "cli-boxes": "^3.0.0", - "string-width": "^7.2.0", - "type-fest": "^4.21.0", - "widest-line": "^5.0.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "peer": true }, - "node_modules/camelcase": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", - "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", - "engines": { - "node": ">=16" + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" } }, "node_modules/ccount": { @@ -2500,18 +3852,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", @@ -2552,21 +3892,6 @@ "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", @@ -2582,18 +3907,6 @@ "node": ">=8" } }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -2603,14 +3916,31 @@ "node": ">=6" } }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "node_modules/codemirror": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", + "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, "node_modules/comma-separated-tokens": { @@ -2623,39 +3953,108 @@ "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==", + "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-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/crelt": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.7.tgz", + "integrity": "sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA==", + "license": "MIT" + }, + "node_modules/cross-env": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", + "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==", + "dev": true, "license": "MIT", + "dependencies": { + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, "engines": { - "node": ">=16" + "node": ">=20" } }, - "node_modules/common-ancestor-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", - "license": "ISC" + "node_modules/cross-env/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } }, - "node_modules/cookie": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", - "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "node_modules/cross-env/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "engines": { + "node": ">=8" } }, - "node_modules/cookie-es": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", - "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", - "license": "MIT" + "node_modules/cross-env/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } }, "node_modules/crossws": { "version": "0.3.5", @@ -2666,26 +4065,10 @@ "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-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.1.2.tgz", - "integrity": "sha512-WfUcL99xWDs7b3eZPoRszWVfbNo8ErCF15PTvVROjkShGlAfjIkG6hlfj/sl6/rfo5Q9x9ryJ3VqVnAZDA+gcw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.3.0.tgz", + "integrity": "sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==", "funding": [ { "type": "github", @@ -2698,31 +4081,6 @@ ], "license": "MIT" }, - "node_modules/css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.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/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -2735,46 +4093,11 @@ "node": ">=4" } }, - "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==", + "version": "4.3.3", "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "ms": "2.1.2" }, "engines": { "node": ">=6.0" @@ -2786,9 +4109,9 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "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" @@ -2799,11 +4122,20 @@ } }, "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "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/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -2820,129 +4152,53 @@ "license": "MIT" }, "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "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", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deterministic-object-hash": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/deterministic-object-hash/-/deterministic-object-hash-2.0.2.tgz", - "integrity": "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==", - "license": "MIT", - "dependencies": { - "base-64": "^1.0.0" - }, "engines": { - "node": ">=18" + "node": ">=8" } }, "node_modules/devalue": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.2.tgz", - "integrity": "sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.2.tgz", + "integrity": "sha512-po4PAY5c53tw5XMocSnf8A/5OHhbbUftpr93aEN6BBoAdntUmK7vu7wOATqvt7cXO7m1Cl4gMVn6p7n6n4mj0w==", "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.3", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", - "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/direction": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", - "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==", - "license": "MIT", - "bin": { - "direction": "cli.js" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" - }, - "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/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", + "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": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" + "dequal": "^2.0.0" }, "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "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" + "node_modules/diff": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/direction": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", + "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==", + "license": "MIT", + "bin": { + "direction": "cli.js" }, "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/dset": { @@ -2954,79 +4210,81 @@ "node": ">=4" } }, - "node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "license": "MIT" - }, - "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" } }, - "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", + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", "license": "MIT" }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" + "es-errors": "^1.3.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 0.4" } }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 0.4" } }, "node_modules/esbuild": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", - "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -3036,152 +4294,66 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.1", - "@esbuild/android-arm": "0.25.1", - "@esbuild/android-arm64": "0.25.1", - "@esbuild/android-x64": "0.25.1", - "@esbuild/darwin-arm64": "0.25.1", - "@esbuild/darwin-x64": "0.25.1", - "@esbuild/freebsd-arm64": "0.25.1", - "@esbuild/freebsd-x64": "0.25.1", - "@esbuild/linux-arm": "0.25.1", - "@esbuild/linux-arm64": "0.25.1", - "@esbuild/linux-ia32": "0.25.1", - "@esbuild/linux-loong64": "0.25.1", - "@esbuild/linux-mips64el": "0.25.1", - "@esbuild/linux-ppc64": "0.25.1", - "@esbuild/linux-riscv64": "0.25.1", - "@esbuild/linux-s390x": "0.25.1", - "@esbuild/linux-x64": "0.25.1", - "@esbuild/netbsd-arm64": "0.25.1", - "@esbuild/netbsd-x64": "0.25.1", - "@esbuild/openbsd-arm64": "0.25.1", - "@esbuild/openbsd-x64": "0.25.1", - "@esbuild/sunos-x64": "0.25.1", - "@esbuild/win32-arm64": "0.25.1", - "@esbuild/win32-ia32": "0.25.1", - "@esbuild/win32-x64": "0.25.1" - } - }, - "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==", + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node": ">=6" } }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "node_modules/event-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0" + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" } }, - "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/expressive-code": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/expressive-code/-/expressive-code-0.41.1.tgz", - "integrity": "sha512-O3+bDWGw+y7b0L3Y3xc7LbPgRTvFy2tqXzYY24TBbDwnHbIwb0OFdS4v+1PpX6NEsF7XsVv9sqY5xo22yWe7Hw==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/expressive-code/-/expressive-code-0.44.1.tgz", + "integrity": "sha512-GakidxhapWDzpKLqEaFQ8wGk6gAqEtPQibu8+yPBfnDLgev5Vdsh1pasTxnrXL/mzIknyqeTwhMHTghdaiUrTg==", "license": "MIT", "dependencies": { - "@expressive-code/core": "^0.41.1", - "@expressive-code/plugin-frames": "^0.41.1", - "@expressive-code/plugin-shiki": "^0.41.1", - "@expressive-code/plugin-text-markers": "^0.41.1" + "@expressive-code/core": "^0.44.1", + "@expressive-code/plugin-frames": "^0.44.1", + "@expressive-code/plugin-shiki": "^0.44.1", + "@expressive-code/plugin-text-markers": "^0.44.1" } }, "node_modules/extend": { @@ -3196,10 +4368,25 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "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-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.6.tgz", + "integrity": "sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==", "funding": [ { "type": "github", @@ -3212,21 +4399,22 @@ ], "license": "BSD-3-Clause" }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "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/find-proc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/find-proc/-/find-proc-0.1.0.tgz", + "integrity": "sha512-OaOpEYv2PiQ7SQ5LIrl+deA1XaWcxEjnpM6VuWXTUvn+teIXxeFTLDmu18/zDQpFmHN4o3oDBX+BT0AGwEhemg==", "license": "MIT", "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, "node_modules/flattie": { @@ -3248,9 +4436,9 @@ } }, "node_modules/fontkitten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.2.tgz", - "integrity": "sha512-piJxbLnkD9Xcyi7dWJRnqszEURixe7CrF/efBfbffe2DPyabmuIuqraruY8cXTs19QoM8VJzx47BDRVNXETM7Q==", + "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" @@ -3259,6 +4447,28 @@ "node": ">=20" } }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "license": "MIT" + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3273,16 +4483,80 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/get-east-asian-width": { + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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": { @@ -3291,27 +4565,82 @@ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", "license": "ISC" }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "version": "4.2.8", "license": "ISC" }, - "node_modules/h3": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.5.tgz", - "integrity": "sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==", + "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/har-validator-compiled": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/har-validator-compiled/-/har-validator-compiled-1.0.0.tgz", + "integrity": "sha512-dher7nFSx+Ef6OoqVveLClh8itAR3vd8Qx70Lh/hEgP1iGeARAolbci7Y8JBrHIYgFCT6xRdvvL16AR9Zh07Dw==", + "license": "MIT" + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "license": "MIT", "dependencies": { - "cookie-es": "^1.2.2", - "crossws": "^0.3.5", - "defu": "^6.1.4", - "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" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/hast-util-embedded": { @@ -3347,44 +4676,6 @@ "url": "https://opencollective.com/unified" } }, - "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.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", - "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^9.0.0", - "property-information": "^6.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-has-property": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", @@ -3471,31 +4762,6 @@ "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-select": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.4.tgz", @@ -3523,52 +4789,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-select/node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-estree": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", - "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", - "license": "MIT", + "node_modules/hast-util-select/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": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-attach-comments": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" + "boolbase": "^1.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree/node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/hast-util-to-html": { @@ -3594,72 +4824,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-html/node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", - "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.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-string": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", @@ -3703,15 +4867,15 @@ } }, "node_modules/hastscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", - "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", + "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": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" }, "funding": { @@ -3745,50 +4909,219 @@ "url": "https://opencollective.com/unified" } }, - "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/httpsnippet": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/httpsnippet/-/httpsnippet-3.0.10.tgz", + "integrity": "sha512-1P102HsVslaT3IVfuUfVwxenfbogFiihqosnaKUScd/sON1omdZZCWdmzm6baRz4u1Va0CTI/7svLckCu9iNBw==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "event-stream": "4.0.1", + "form-data": "4.0.4", + "har-validator-compiled": "^1.0.0", + "stringify-object": "3.3.0", + "yargs": "^17.4.0" + }, + "bin": { + "httpsnippet": "bin/httpsnippet" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/httpsnippet/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/httpsnippet/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/httpsnippet/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/httpsnippet/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/httpsnippet/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/httpsnippet/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/httpsnippet/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/httpsnippet/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/httpsnippet/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/httpsnippet/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/httpsnippet/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/httpsnippet/node_modules/yargs": { + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/httpsnippet/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } }, "node_modules/i18next": { - "version": "23.16.8", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.8.tgz", - "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==", + "version": "26.4.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.4.0.tgz", + "integrity": "sha512-rsmK5bFqsD1AetSFSIa43wtNR4WpvvH4p0tLEsTxkC7QTrfdFm06nbQ95bh8Og4wwaCnUEcm9DVYL2cgxitiQg==", "funding": [ { "type": "individual", - "url": "https://locize.com" + "url": "https://www.locize.com/i18next" }, { "type": "individual", - "url": "https://locize.com/i18next.html" + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" }, { "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + "url": "https://www.locize.com" } ], "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.2" + "peerDependencies": { + "typescript": "^5 || ^6 || ^7" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/import-meta-resolve": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", - "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "node_modules/immutable": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz", + "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" + "optional": true, + "peer": true }, "node_modules/iron-webcrypto": { "version": "1.2.1", @@ -3834,20 +5167,29 @@ } }, "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==", + "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": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -3857,6 +5199,18 @@ "node": ">=8" } }, + "node_modules/is-glob": { + "version": "4.0.3", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-hexadecimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", @@ -3867,55 +5221,26 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-inside-container": { + "node_modules/is-regexp": { "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-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==", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, "node_modules/jiti": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", - "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -3928,9 +5253,19 @@ "license": "MIT" }, "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==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -3945,6 +5280,12 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "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/jsonpointer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", @@ -3954,15 +5295,6 @@ "node": ">=0.10.0" } }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", @@ -3982,12 +5314,12 @@ } }, "node_modules/lightningcss": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz", - "integrity": "sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", "license": "MPL-2.0", "dependencies": { - "detect-libc": "^1.0.3" + "detect-libc": "^2.0.3" }, "engines": { "node": ">= 12.0.0" @@ -3997,22 +5329,43 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.29.1", - "lightningcss-darwin-x64": "1.29.1", - "lightningcss-freebsd-x64": "1.29.1", - "lightningcss-linux-arm-gnueabihf": "1.29.1", - "lightningcss-linux-arm64-gnu": "1.29.1", - "lightningcss-linux-arm64-musl": "1.29.1", - "lightningcss-linux-x64-gnu": "1.29.1", - "lightningcss-linux-x64-musl": "1.29.1", - "lightningcss-win32-arm64-msvc": "1.29.1", - "lightningcss-win32-x64-msvc": "1.29.1" + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz", - "integrity": "sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", "cpu": [ "arm64" ], @@ -4030,9 +5383,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.1.tgz", - "integrity": "sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", "cpu": [ "x64" ], @@ -4050,9 +5403,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.1.tgz", - "integrity": "sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", "cpu": [ "x64" ], @@ -4070,9 +5423,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.1.tgz", - "integrity": "sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", "cpu": [ "arm" ], @@ -4090,9 +5443,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.1.tgz", - "integrity": "sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", "cpu": [ "arm64" ], @@ -4110,9 +5463,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.1.tgz", - "integrity": "sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", "cpu": [ "arm64" ], @@ -4130,9 +5483,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz", - "integrity": "sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", "cpu": [ "x64" ], @@ -4150,9 +5503,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.1.tgz", - "integrity": "sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", "cpu": [ "x64" ], @@ -4170,9 +5523,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.1.tgz", - "integrity": "sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", "cpu": [ "arm64" ], @@ -4190,9 +5543,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.1.tgz", - "integrity": "sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==", + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", "cpu": [ "x64" ], @@ -4209,327 +5562,142 @@ "url": "https://opencollective.com/parcel" } }, - "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.2.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.5.tgz", - "integrity": "sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==", - "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", + "node_modules/lit": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.3.tgz", + "integrity": "sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==", + "license": "BSD-3-Clause", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" } }, - "node_modules/magicast": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", - "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", - "license": "MIT", + "node_modules/lit-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", + "license": "BSD-3-Clause", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "source-map-js": "^1.2.1" + "@lit-labs/ssr-dom-shim": "^1.5.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" } }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/lit-html": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.3.tgz", + "integrity": "sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" } }, - "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==", + "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/marked": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz", - "integrity": "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, + "node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "license": "BlueOak-1.0.0", "engines": { - "node": ">= 20" - } - }, - "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-directive": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", - "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-visit-parents": "^6.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.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "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.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "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.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "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": "20 || >=22" } }, - "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==", + "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": { - "@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" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "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==", + "node_modules/magicast": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.4.tgz", + "integrity": "sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==", "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" + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "source-map-js": "^1.2.1" } }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", + "license": "MIT" + }, + "node_modules/marked": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.11.tgz", + "integrity": "sha512-HnslJfsZkRPBDJRHvVtAaWlZHEpSu7u8LgQuJCELjRKuWR+hpq4A7sLq3p8HaI9ypVoXDXxV34CsQJEe1+J5Aw==", "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" + "bin": { + "marked": "bin/marked.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 20" } }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@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" + "engines": { + "node": ">= 0.4" } }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "node_modules/mdast-util-directive": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", "license": "MIT", "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", - "devlop": "^1.1.0", + "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "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/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.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", @@ -4551,9 +5719,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "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", @@ -4605,16 +5773,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", - "license": "CC0-1.0" - }, "node_modules/micromark": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", - "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -4647,183 +5809,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", - "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", - "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-directive": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", - "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "parse-entities": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "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-extension-mdx-expression": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", - "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "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", @@ -4831,91 +5819,42 @@ }, { "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", - "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", + "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "node_modules/micromark-extension-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" + "parse-entities": "^4.0.0" }, "funding": { "type": "opencollective", @@ -4965,33 +5904,6 @@ "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", - "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.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", @@ -5193,31 +6105,6 @@ ], "license": "MIT" }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", - "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, "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", @@ -5294,9 +6181,9 @@ } }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", - "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", + "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", @@ -5332,9 +6219,9 @@ "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", - "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "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", @@ -5347,6 +6234,23 @@ ], "license": "MIT" }, + "node_modules/mime-db": { + "version": "1.51.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "license": "MIT", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -5357,15 +6261,13 @@ } }, "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==", + "version": "2.1.2", "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "funding": [ { "type": "github", @@ -5381,9 +6283,9 @@ } }, "node_modules/neotraverse": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", - "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", + "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", "license": "MIT", "engines": { "node": ">= 10" @@ -5402,6 +6304,14 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/node-fetch-native": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", @@ -5409,9 +6319,9 @@ "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==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.5.tgz", + "integrity": "sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==", "license": "MIT" }, "node_modules/normalize-path": { @@ -5423,16 +6333,17 @@ "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.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" } }, "node_modules/ofetch": { @@ -5447,25 +6358,25 @@ } }, "node_modules/ohash": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.12.tgz", + "integrity": "sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==", "license": "MIT" }, "node_modules/oniguruma-parser": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", - "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==", + "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.4", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.4.tgz", - "integrity": "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==", + "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.1", - "regex": "^6.0.1", + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, @@ -5477,68 +6388,76 @@ "peer": true }, "node_modules/p-limit": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", - "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.1.tgz", + "integrity": "sha512-0trZaiG7Y7kN/Egy9a8j47t9osC0Tch4PaIWd9yGF6bvmlk7muExRvGNYb8sXBwEKMoNKsbNN9P8EefuQekE4Q==", "license": "MIT", "dependencies": { - "yocto-queue": "^1.1.1" + "yocto-queue": "^1.2.1" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-queue": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", - "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.3.tgz", + "integrity": "sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA==", "license": "MIT", "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^6.1.2" + "eventemitter3": "^5.0.4", + "p-timeout": "^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-timeout": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", - "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "node_modules/p-queue/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/p-queue/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": ">=14.16" + "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==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz", + "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==", "license": "MIT" }, "node_modules/pagefind": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.3.0.tgz", - "integrity": "sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.5.2.tgz", + "integrity": "sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==", "license": "MIT", "bin": { "pagefind": "lib/runner/bin.cjs" }, "optionalDependencies": { - "@pagefind/darwin-arm64": "1.3.0", - "@pagefind/darwin-x64": "1.3.0", - "@pagefind/linux-arm64": "1.3.0", - "@pagefind/linux-x64": "1.3.0", - "@pagefind/windows-x64": "1.3.0" + "@pagefind/darwin-arm64": "1.5.2", + "@pagefind/darwin-x64": "1.5.2", + "@pagefind/freebsd-x64": "1.5.2", + "@pagefind/linux-arm64": "1.5.2", + "@pagefind/linux-x64": "1.5.2", + "@pagefind/windows-arm64": "1.5.2", + "@pagefind/windows-x64": "1.5.2" } }, "node_modules/parse-entities": { @@ -5566,34 +6485,16 @@ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "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.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "license": "MIT", + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "license": [ + "MIT", + "Apache2" + ], "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "through": "~2.3" } }, "node_modules/piccolore": { @@ -5602,28 +6503,104 @@ "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.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "2.3.0", "license": "MIT", "engines": { - "node": ">=12" + "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "node_modules/postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-astro": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.14.1.tgz", + "integrity": "sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.9.1", + "prettier": "^3.0.0", + "sass-formatter": "^0.7.6" + }, + "engines": { + "node": "^14.15.0 || >=16.0.0" + } + }, + "node_modules/prettier-plugin-css-order": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-css-order/-/prettier-plugin-css-order-2.2.0.tgz", + "integrity": "sha512-GCkwEgQ2roT7le+zpUFQThPDO4x5EXcZmY9Rj6rvO++I/nATTGBWdZdsooha/BlvIBbZclJzXsgJdlKWrys9+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "css-declaration-sorter": "^7.3.0", + "postcss-less": "^6.0.0", + "postcss-scss": "^4.0.9" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "prettier": "3.x" + } + }, + "node_modules/prettier-plugin-css-order/node_modules/css-declaration-sorter": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz", + "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/prettier-plugin-css-order/node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/prettier-plugin-css-order/node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -5639,8 +6616,9 @@ } ], "license": "MIT", + "peer": true, "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -5648,42 +6626,123 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "node_modules/prettier-plugin-css-order/node_modules/postcss-less": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-6.0.0.tgz", + "integrity": "sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.3.5" + } + }, + "node_modules/prettier-plugin-css-order/node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, { "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/prettier-plugin-tailwindcss": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.8.1.tgz", + "integrity": "sha512-iaFMYqDsE4ffdDkn5qup0j5f2aCEBFZrdrZnvu9QKTlWx/iGPeQ4HHu7b7fCPMxeo9nwQBiOAh2nSypdFYWJkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19" + }, + "peerDependencies": { + "@ianvs/prettier-plugin-sort-imports": "*", + "@prettier/plugin-hermes": "*", + "@prettier/plugin-oxc": "*", + "@prettier/plugin-pug": "*", + "@shopify/prettier-plugin-liquid": "*", + "@trivago/prettier-plugin-sort-imports": "*", + "@zackad/prettier-plugin-twig": "*", + "prettier": "^3.0", + "prettier-plugin-astro": "*", + "prettier-plugin-css-order": "*", + "prettier-plugin-jsdoc": "*", + "prettier-plugin-marko": "*", + "prettier-plugin-multiline-arrays": "*", + "prettier-plugin-organize-attributes": "*", + "prettier-plugin-organize-imports": "*", + "prettier-plugin-sort-imports": "*", + "prettier-plugin-svelte": "*" + }, + "peerDependenciesMeta": { + "@ianvs/prettier-plugin-sort-imports": { + "optional": true + }, + "@prettier/plugin-hermes": { + "optional": true + }, + "@prettier/plugin-oxc": { + "optional": true + }, + "@prettier/plugin-pug": { + "optional": true + }, + "@shopify/prettier-plugin-liquid": { + "optional": true + }, + "@trivago/prettier-plugin-sort-imports": { + "optional": true + }, + "@zackad/prettier-plugin-twig": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + }, + "prettier-plugin-css-order": { + "optional": true + }, + "prettier-plugin-jsdoc": { + "optional": true + }, + "prettier-plugin-marko": { + "optional": true + }, + "prettier-plugin-multiline-arrays": { + "optional": true + }, + "prettier-plugin-organize-attributes": { + "optional": true + }, + "prettier-plugin-organize-imports": { + "optional": true + }, + "prettier-plugin-sort-imports": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + } } }, "node_modules/prismjs": { @@ -5695,32 +6754,19 @@ "node": ">=6" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prompts/node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/process-ancestry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/process-ancestry/-/process-ancestry-0.1.0.tgz", + "integrity": "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", "license": "MIT", "funding": { "type": "github", @@ -5733,87 +6779,8 @@ "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/recma-build-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", - "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", - "license": "MIT", - "dependencies": { - "acorn-jsx": "^5.0.0", - "estree-util-to-js": "^2.0.0", - "recma-parse": "^1.0.0", - "recma-stringify": "^1.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", - "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "esast-util-from-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", - "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-to-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "version": "0.14.0", "license": "MIT" }, "node_modules/regex": { @@ -5840,114 +6807,24 @@ "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-expressive-code": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/rehype-expressive-code/-/rehype-expressive-code-0.41.1.tgz", - "integrity": "sha512-QApC3js5/AwrF6VqWfGsNY9Y1qLC0LQDWcqOHEAhbl3CB4e5GMor2SpWaGOWBW+mmrkVCEymayLPCPIbx0tcQQ==", - "license": "MIT", - "dependencies": { - "expressive-code": "^0.41.1" - } - }, - "node_modules/rehype-format": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rehype-format/-/rehype-format-5.0.1.tgz", - "integrity": "sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-format": "^1.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-recma": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", - "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "hast-util-to-estree": "^3.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==", + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/rehype-expressive-code/-/rehype-expressive-code-0.44.1.tgz", + "integrity": "sha512-+VZgs7Evw4LXRN3owpoBNSTpYuW6GeOdjqcUT1TuY8o/4MGPtbd0EU7Bgrju7X8KrQ6SslOBAuGWJ5fV5TriJQ==", "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" + "expressive-code": "^0.44.1" } }, "node_modules/remark-directive": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", - "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-4.0.0.tgz", + "integrity": "sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", - "micromark-extension-directive": "^3.0.0", + "micromark-extension-directive": "^4.0.0", "unified": "^11.0.0" }, "funding": { @@ -5955,220 +6832,179 @@ "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==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "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" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=0.10.0" } }, - "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==", + "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", - "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" + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "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/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" + "@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/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==", + "node_modules/rolldown": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.6.tgz", + "integrity": "sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA==", "license": "MIT", "dependencies": { - "retext": "^9.0.0", - "retext-smartypants": "^6.0.0", - "unified": "^11.0.4", - "unist-util-visit": "^5.0.0" + "@oxc-project/types": "=0.147.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=16.0.0" - } + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm-eabi": "1.2.6", + "@rolldown/binding-android-arm64": "1.2.6", + "@rolldown/binding-darwin-arm64": "1.2.6", + "@rolldown/binding-darwin-x64": "1.2.6", + "@rolldown/binding-freebsd-x64": "1.2.6", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.6", + "@rolldown/binding-linux-arm64-gnu": "1.2.6", + "@rolldown/binding-linux-arm64-musl": "1.2.6", + "@rolldown/binding-linux-ppc64-gnu": "1.2.6", + "@rolldown/binding-linux-s390x-gnu": "1.2.6", + "@rolldown/binding-linux-x64-gnu": "1.2.6", + "@rolldown/binding-linux-x64-musl": "1.2.6", + "@rolldown/binding-openharmony-arm64": "1.2.6", + "@rolldown/binding-win32-arm64-msvc": "1.2.6", + "@rolldown/binding-win32-x64-msvc": "1.2.6" + } + }, + "node_modules/s.color": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz", + "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", + "dev": true, + "license": "MIT" }, - "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==", + "node_modules/sass": { + "version": "1.103.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.103.1.tgz", + "integrity": "sha512-9icZURbP51S6S0QGoyaeqk9uB06GNWxsFYWfH5RgpFgqK5FA8tJcM3AdVxrZEVJ7dz+L87nG95gBKf4VuaMHGw==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" + "chokidar": "^5.0.0", + "immutable": "^5.1.5", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "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" + "node": ">=20.19.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, - "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==", + "node_modules/sass-formatter": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz", + "integrity": "sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==", + "dev": true, "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" + "suf-log": "^2.5.3" } }, - "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==", + "node_modules/sass/node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "@types/nlcst": "^2.0.0", - "nlcst-to-string": "^4.0.0", - "unist-util-visit": "^5.0.0" + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://paulmillr.com/funding/" } }, - "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==", + "node_modules/sass/node_modules/readdirp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz", + "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==", "license": "MIT", - "dependencies": { - "@types/nlcst": "^2.0.0", - "nlcst-to-string": "^4.0.0", - "unified": "^11.0.0" + "optional": true, + "peer": true, + "engines": { + "node": ">= 20.19.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/rollup": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz", - "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==", + "node_modules/satteri": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.10.5.tgz", + "integrity": "sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ==", "license": "MIT", "dependencies": { - "@types/estree": "1.0.7" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "@types/estree-jsx": "^1.0.5", + "@types/hast": "^3.0.5", + "@types/mdast": "^4.0.4", + "@types/unist": "^3.0.3" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.41.1", - "@rollup/rollup-android-arm64": "4.41.1", - "@rollup/rollup-darwin-arm64": "4.41.1", - "@rollup/rollup-darwin-x64": "4.41.1", - "@rollup/rollup-freebsd-arm64": "4.41.1", - "@rollup/rollup-freebsd-x64": "4.41.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.41.1", - "@rollup/rollup-linux-arm-musleabihf": "4.41.1", - "@rollup/rollup-linux-arm64-gnu": "4.41.1", - "@rollup/rollup-linux-arm64-musl": "4.41.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.41.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1", - "@rollup/rollup-linux-riscv64-gnu": "4.41.1", - "@rollup/rollup-linux-riscv64-musl": "4.41.1", - "@rollup/rollup-linux-s390x-gnu": "4.41.1", - "@rollup/rollup-linux-x64-gnu": "4.41.1", - "@rollup/rollup-linux-x64-musl": "4.41.1", - "@rollup/rollup-win32-arm64-msvc": "4.41.1", - "@rollup/rollup-win32-ia32-msvc": "4.41.1", - "@rollup/rollup-win32-x64-msvc": "4.41.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" + "@bruits/satteri-darwin-arm64": "0.10.5", + "@bruits/satteri-darwin-x64": "0.10.5", + "@bruits/satteri-linux-arm64-gnu": "0.10.5", + "@bruits/satteri-linux-arm64-musl": "0.10.5", + "@bruits/satteri-linux-x64-gnu": "0.10.5", + "@bruits/satteri-linux-x64-musl": "0.10.5", + "@bruits/satteri-wasm32-wasi": "0.10.5", + "@bruits/satteri-win32-arm64-msvc": "0.10.5", + "@bruits/satteri-win32-x64-msvc": "0.10.5" + } }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -6178,74 +7014,72 @@ } }, "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz", + "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==", "license": "Apache-2.0", "optional": true, "dependencies": { - "@img/colour": "^1.0.0", + "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", - "semver": "^7.7.3" + "semver": "^7.8.5" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=20.9.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/sharp/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" + "@img/sharp-darwin-arm64": "0.35.4", + "@img/sharp-darwin-x64": "0.35.4", + "@img/sharp-freebsd-wasm32": "0.35.4", + "@img/sharp-libvips-darwin-arm64": "1.3.3", + "@img/sharp-libvips-darwin-x64": "1.3.3", + "@img/sharp-libvips-linux-arm": "1.3.3", + "@img/sharp-libvips-linux-arm64": "1.3.3", + "@img/sharp-libvips-linux-ppc64": "1.3.3", + "@img/sharp-libvips-linux-riscv64": "1.3.3", + "@img/sharp-libvips-linux-s390x": "1.3.3", + "@img/sharp-libvips-linux-x64": "1.3.3", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", + "@img/sharp-libvips-linuxmusl-x64": "1.3.3", + "@img/sharp-linux-arm": "0.35.4", + "@img/sharp-linux-arm64": "0.35.4", + "@img/sharp-linux-ppc64": "0.35.4", + "@img/sharp-linux-riscv64": "0.35.4", + "@img/sharp-linux-s390x": "0.35.4", + "@img/sharp-linux-x64": "0.35.4", + "@img/sharp-linuxmusl-arm64": "0.35.4", + "@img/sharp-linuxmusl-x64": "0.35.4", + "@img/sharp-webcontainers-wasm32": "0.35.4", + "@img/sharp-win32-arm64": "0.35.4", + "@img/sharp-win32-ia32": "0.35.4", + "@img/sharp-win32-x64": "0.35.4" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, "node_modules/shiki": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.22.0.tgz", - "integrity": "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.4.3.tgz", + "integrity": "sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g==", "license": "MIT", "dependencies": { - "@shikijs/core": "3.22.0", - "@shikijs/engine-javascript": "3.22.0", - "@shikijs/engine-oniguruma": "3.22.0", - "@shikijs/langs": "3.22.0", - "@shikijs/themes": "3.22.0", - "@shikijs/types": "3.22.0", + "@shikijs/core": "4.4.3", + "@shikijs/engine-javascript": "4.4.3", + "@shikijs/engine-oniguruma": "4.4.3", + "@shikijs/langs": "4.4.3", + "@shikijs/themes": "4.4.3", + "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" + "@types/hast": "^3.0.5" + }, + "engines": { + "node": ">=20" } }, "node_modules/sisteransi": { @@ -6255,34 +7089,58 @@ "license": "MIT" }, "node_modules/sitemap": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-8.0.0.tgz", - "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz", + "integrity": "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==", "license": "MIT", "dependencies": { - "@types/node": "^17.0.5", + "@types/node": "^24.9.2", "@types/sax": "^1.2.1", "arg": "^5.0.0", - "sax": "^1.2.4" + "sax": "^1.4.1" }, "bin": { - "sitemap": "dist/cli.js" + "sitemap": "dist/esm/cli.js" }, "engines": { - "node": ">=14.0.0", - "npm": ">=6.0.0" + "node": ">=20.19.5", + "npm": ">=10.8.2" } }, "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz", + "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/sitemap/node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/sitemap/node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/sitemap/node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "license": "MIT" }, "node_modules/smol-toml": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz", - "integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz", + "integrity": "sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==", "license": "BSD-3-Clause", "engines": { "node": ">= 18" @@ -6291,15 +7149,6 @@ "url": "https://github.com/sponsors/cyyynthia" } }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -6309,6 +7158,25 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "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", @@ -6319,23 +7187,46 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, "node_modules/starlight-openapi": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/starlight-openapi/-/starlight-openapi-0.22.0.tgz", - "integrity": "sha512-4H/fywAoTcvKbcv+xBr9LdrjMc5geDOSnydvzpiOxjxkHvI6g+7uPhWNCejnJPyZUd/MC1MI23tvYug85d/WzA==", + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/starlight-openapi/-/starlight-openapi-0.26.2.tgz", + "integrity": "sha512-nW5IwWNXq/cfl4z+9i7o6PWZf372g74SlksHHtRL2wn6RixnGksg3PB+vgvqPFeMLFvzPE5DQ9pSLzItJwtNBw==", "license": "MIT", "dependencies": { "@readme/openapi-parser": "^4.1.2", "github-slugger": "^2.0.0", + "httpsnippet": "^3.0.10", "url-template": "^3.1.1" }, "engines": { - "node": ">=18.17.1" + "node": ">=22.12.0" }, "peerDependencies": { - "@astrojs/markdown-remark": ">=6.0.1", - "@astrojs/starlight": ">=0.34.0", - "astro": ">=5.5.0" + "@astrojs/markdown-satteri": ">=0.3.2", + "@astrojs/starlight": ">=0.41.0", + "astro": ">=7.0.2" + } + }, + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", + "license": "MIT", + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" } }, "node_modules/stream-replace-string": { @@ -6345,20 +7236,44 @@ "license": "MIT" }, "node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=18" + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, "node_modules/stringify-entities": { @@ -6375,78 +7290,82 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", "dependencies": { - "ansi-regex": "^6.0.1" + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=4" } }, - "node_modules/style-to-js": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", - "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", + "node_modules/stringify-object/node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "license": "MIT", - "dependencies": { - "style-to-object": "1.0.8" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "node_modules/style-mod": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", + "license": "MIT" + }, + "node_modules/suf-log": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", + "integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==", + "dev": true, "license": "MIT", "dependencies": { - "inline-style-parser": "0.2.4" + "s.color": "0.0.15" } }, - "node_modules/svgo": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", - "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", - "license": "MIT", + "node_modules/tailwindcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", + "license": "MIT" + }, + "node_modules/terser": { + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", + "license": "BSD-2-Clause", + "optional": true, + "peer": true, "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.4.1" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" }, "bin": { - "svgo": "bin/svgo.js" + "terser": "bin/terser" }, "engines": { - "node": ">=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" + "node": ">=10" } }, - "node_modules/tailwindcss": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.3.tgz", - "integrity": "sha512-ImmZF0Lon5RrQpsEAKGxRvHwCvMgSC4XVlFRqmbzTEDb/3wvin9zfEZrMwgsa3yqBbPqahYcVI6lulM2S7IZAA==", - "license": "MIT" - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", "license": "MIT", - "engines": { - "node": ">=6" - } + "optional": true, + "peer": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, "node_modules/tiny-inflate": { "version": "1.0.3", @@ -6454,23 +7373,32 @@ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "license": "MIT" }, + "node_modules/tinyclip": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.15.tgz", + "integrity": "sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==", + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, "node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -6479,6 +7407,35 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tinyglobby/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/tinyglobby/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -6499,26 +7456,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/tsconfck": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", - "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", - "license": "MIT", - "bin": { - "tsconfck": "bin/tsconfck.js" - }, - "engines": { - "node": "^18 || >=20" - }, - "peerDependencies": { - "typescript": "^5.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -6526,42 +7463,16 @@ "license": "0BSD", "optional": true }, - "node_modules/type-fest": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.40.0.tgz", - "integrity": "sha512-ABHZ2/tS2JkvH1PEjxFDTUWC8dB5OsIGZP4IFLhR293GqT5Y5qB1WwL2kMPYhQW9DVgVD8Hd7I8gjwPIf5GFkw==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/ufo": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", - "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", + "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==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz", + "integrity": "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==", "license": "MIT" }, "node_modules/uncrypto": { @@ -6570,10 +7481,19 @@ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", "license": "MIT" }, + "node_modules/undici": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", + "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "license": "MIT", + "engines": { + "node": ">=22.19.0" + } + }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "license": "MIT" }, "node_modules/unified": { @@ -6595,16 +7515,47 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unifont": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.3.tgz", - "integrity": "sha512-b0GtQzKCyuSHGsfj5vyN8st7muZ6VCI4XD4vFlr7Uy1rlWVYxC3npnfk8MyreHxJYrz1ooLDqDzFe9XqQTlAhA==", - "license": "MIT", - "dependencies": { - "css-tree": "^3.1.0", - "ofetch": "^1.5.1", - "ohash": "^2.0.11" - } + "node_modules/unified/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/unifont": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.5.tgz", + "integrity": "sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg==", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "ohash": "^2.0.11", + "undici": "^8.0.0" + } + }, + "node_modules/unifont/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/unifont/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/unist-util-find-after": { "version": "5.0.0", @@ -6621,9 +7572,9 @@ } }, "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "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" @@ -6633,20 +7584,6 @@ "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", @@ -6660,10 +7597,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-position-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "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" @@ -6673,306 +7610,466 @@ "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==", + "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-visit": "^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/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==", + "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" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "node_modules/url-extras": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/url-extras/-/url-extras-0.1.0.tgz", + "integrity": "sha512-8tzwTeXFPuX/5PHuCDQE5Dd9Ts4rwoq2t9aIT+HS4iAVpmj5l4Ao7Q+BuuFjvWRqrLswBhQDk8O96ZicgCqQqw==", "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "engines": { + "node": ">=20" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/url-template": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-3.1.1.tgz", + "integrity": "sha512-4oszoaEKE/mQOtAmdMWqIRHmkxWkUZMnXFnjQ5i01CuRSK3uluxcH1MRVVVWmhlnzT1SCDfKxxficm2G37qzCA==", + "license": "BSD-3-Clause", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "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" + "@types/unist": "^3.0.0", + "vfile-message": "^4.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==", + "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-is": "^6.0.0" + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unstorage": { - "version": "1.17.4", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.4.tgz", - "integrity": "sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==", + "node_modules/vite": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz", + "integrity": "sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q==", "license": "MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^5.0.0", - "destr": "^2.0.5", - "h3": "^1.15.5", - "lru-cache": "^11.2.0", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.5.1", - "ufo": "^1.6.3" + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.26", + "rolldown": "~1.2.4", + "tinyglobby": "^0.2.17" + }, + "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": { - "@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" + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0 || ^0.5.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "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": { + "@types/node": { "optional": true }, - "@netlify/blobs": { + "@vitejs/devtools": { "optional": true }, - "@planetscale/database": { + "esbuild": { "optional": true }, - "@upstash/redis": { + "jiti": { "optional": true }, - "@vercel/blob": { + "less": { "optional": true }, - "@vercel/functions": { + "sass": { "optional": true }, - "@vercel/kv": { + "sass-embedded": { "optional": true }, - "aws4fetch": { + "stylus": { "optional": true }, - "db0": { + "sugarss": { "optional": true }, - "idb-keyval": { + "terser": { "optional": true }, - "ioredis": { + "tsx": { "optional": true }, - "uploadthing": { + "yaml": { "optional": true } } }, - "node_modules/url-template": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-3.1.1.tgz", - "integrity": "sha512-4oszoaEKE/mQOtAmdMWqIRHmkxWkUZMnXFnjQ5i01CuRSK3uluxcH1MRVVVWmhlnzT1SCDfKxxficm2G37qzCA==", - "license": "BSD-3-Clause", + "node_modules/vite/node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/vite/node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "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" + "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "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" + "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "node_modules/vite/node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/parcel" } }, - "node_modules/vite": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, + "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/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/vite/node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" }, - "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 + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vite/node_modules/postcss": { + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "tsx": { - "optional": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, - "yaml": { - "optional": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.17", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, "node_modules/vitefu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", - "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", "license": "MIT", "workspaces": [ "tests/deps/*", @@ -6980,7 +8077,7 @@ "tests/projects/workspace/packages/*" ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "vite": { @@ -6988,56 +8085,11 @@ } } }, - "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/widest-line": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", - "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", - "license": "MIT", - "dependencies": { - "string-width": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" }, "node_modules/xxhash-wasm": { "version": "1.1.0", @@ -7045,81 +8097,42 @@ "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", "license": "MIT" }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/yaml": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", - "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yocto-spinner": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.3.tgz", - "integrity": "sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==", - "license": "MIT", - "dependencies": { - "yoctocolors": "^2.1.1" + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=18.19" + "node": ">= 14.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/eemeli" } }, - "node_modules/yoctocolors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", - "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", + "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": ">=18" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.5.4.tgz", + "integrity": "sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/zod-to-json-schema": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", - "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", - "license": "ISC", - "peerDependencies": { - "zod": "^3.25 || ^4" - } - }, - "node_modules/zod-to-ts": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zod-to-ts/-/zod-to-ts-1.2.0.tgz", - "integrity": "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==", - "peerDependencies": { - "typescript": "^4.9.4 || ^5.0.2", - "zod": "^3" - } - }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index edaff75..f8268b9 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "contributors": [ "Charles Marttinen", "Naramsim", - "Indyandie" + "Indyandie", + "FallenDeity" ], "license": "MIT", "repository": { @@ -14,20 +15,35 @@ }, "private": true, "scripts": { - "dev": "astro dev", + "dev": "astro dev --host", "start": "astro dev", - "build": "astro build --site https://pokeapi.co/", - "build:ghpages": "astro build --site https://pokeapi.github.io --base pokeapi.co/", - "preview": "astro preview", - "astro": "astro" + "build": "cross-env SITE_URL=https://pokeapi.co astro build", + "build:ghpages": "cross-env SITE_URL=https://fallendeity.github.io BASE_URL=/pokeapi.co/ astro build", + "preview": "astro preview --host", + "astro": "astro", + "format": "prettier --write \"{src,.}/**/*.{astro,js,mjs,css,json}\"", + "format:check": "prettier --check \"{src,.}/**/*.{astro,js,mjs,css,json}\"" }, "dependencies": { - "@astrojs/starlight": "^0.37.6", - "@astrojs/starlight-tailwind": "^4.0.2", - "@tailwindcss/vite": "^4.0.3", - "astro": "^5.17.1", - "marked": "^17.0.1", - "starlight-openapi": "^0.22.0", - "tailwindcss": "^4.0.3" + "@alenaksu/json-viewer": "^2.1.2", + "@astrojs/starlight": "^0.42.0", + "@astrojs/starlight-tailwind": "^5.0.0", + "@codemirror/lang-json": "^6.0.2", + "@expressive-code/plugin-line-numbers": "^0.44.2", + "@tailwindcss/vite": "^4.3.3", + "astro": "^7.3.1", + "codemirror": "^6.0.2", + "@lucide/astro": "1.41.0", + "marked": "^18.0.11", + "starlight-openapi": "^0.26.2", + "tailwindcss": "^4.3.3", + "yaml": "^2.9.0" + }, + "devDependencies": { + "cross-env": "^10.1.0", + "prettier": "^3.9.5", + "prettier-plugin-astro": "^0.14.1", + "prettier-plugin-css-order": "^2.2.0", + "prettier-plugin-tailwindcss": "^0.8.1" } } diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000..5d55163 Binary files /dev/null and b/public/favicon.png differ diff --git a/public/js/koki.js b/public/js/koki.js deleted file mode 100644 index b35dc47..0000000 --- a/public/js/koki.js +++ /dev/null @@ -1,92 +0,0 @@ -function kokiInit(jsonString, container, kokiTitle = 'koki', openDetails = true) { - parsedData = JSON.parse(jsonString) - jsonString = JSON.stringify(parsedData, null, 2) - container.classList.add('arbol-root') - container.innerHTML = '' - - const details = document.createElement('details') - details.open = true - - const summary = document.createElement('summary') - summary.innerHTML = `

${kokiTitle}

` - - const dataElem = document.createElement('data') - dataElem.value = jsonString - - const ul = document.createElement('ul') - - const code = document.createElement('code') - code.innerHTML = jsonString - - const pre = document.createElement('pre') - - pre.appendChild(code) - - const fragment = kokiArbol(parsedData, '', false, openDetails) - - ul.appendChild(fragment) - details.innerHTML = `` - details.append(summary, pre, dataElem) - dataElem.appendChild(ul) - container.append(details) -} - -function kokiArbol(data, keyName = null, parentArr = false, openDetails = true, level = 0) { - const fragment = document.createDocumentFragment() - const li = document.createElement('li') - fragment.appendChild(li) - - if (typeof data === 'object' && data !== null) { - const isArray = Array.isArray(data) - const type = isArray ? 'array' : 'object' - const length = isArray ? data.length : Object.keys(data).length - const entries = isArray ? data.entries() : Object.entries(data) - openDetails = (level === 0 && openDetails) || (openDetails && level < 2 && length < 17) ? true : false - - li.className = `arbol-type-${type}` - - const arrObjSize = length === 0 ? 'empty' : `${length} ${isArray ? 'items' : 'keys'}` - const arrObjInnerHtml = `${(level === 0 || parentArr) ? '' : '' + keyName + ' '}(${type}) ${arrObjSize}` - - if (length >= 1) { - const details = document.createElement('details') - details.className = 'arrobj' - details.open = openDetails - - const summary = document.createElement('summary') - - summary.innerHTML = arrObjInnerHtml - - details.appendChild(summary) - li.appendChild(details) - - const ul = document.createElement('ul') - for (const [key, value] of entries) { - if (typeof value === 'object' && value !== null) { - const fragment = kokiArbol(value, key, isArray, openDetails, level + 1) - ul.appendChild(fragment) - } else { - const liEntry = document.createElement('li') - const format = kokiGetType(value) - - liEntry.className = `arbol-type-${format}` - liEntry.innerHTML = `${isArray ? '' : '' + key + ' '}${value} (${format})` - ul.appendChild(liEntry) - } - } - details.appendChild(ul) - } else { - li.innerHTML = arrObjInnerHtml - } - } else { - li.innerHTML = JSON.stringify(data) - } - - return fragment -} - -function kokiGetType(value) { - if (value === null) return 'null' - if (value === undefined) return 'undefined' - return typeof value -} diff --git a/public/pokeapi_192_square.png b/public/pokeapi_192_square.png deleted file mode 100644 index 7b61f8c..0000000 Binary files a/public/pokeapi_192_square.png and /dev/null differ diff --git a/src/assets/pokeapi_256.png b/public/pokeapi_256.png similarity index 100% rename from src/assets/pokeapi_256.png rename to public/pokeapi_256.png diff --git a/public/styles/koki.css b/public/styles/koki.css deleted file mode 100644 index 3af9ee6..0000000 --- a/public/styles/koki.css +++ /dev/null @@ -1,278 +0,0 @@ -@layer arbol { - .arbol-root { - --font-fam: var(--arbol--text-font, serif); - background: var(--arbol-bg-color, black); - color: var(--arbol-text-color, white); - font-size: var(--arbol--text-size, 16px); - font-family: var(--font-fam); - line-height: 1.8; - margin-bottom: 24px; - transition: all 0.25s ease-out; - - * { - list-style: none; - transition: all 0.25s ease-out; - } - - *::-webkit-details-marker { - display: none; - } - - ul { - padding-left: 16px; - } - - summary { - cursor: pointer; - } - - & > details { - color: lightgrey; - font-family: var(--arbol-code-text-font, monospace); - position: relative; - - & > summary { - header { - padding: 16px; - background: var(--arbol-header-bg, black); - color: var(--arbol-header-text-color, whitesmoke); - font-family: var(--font-fam); - line-height: 1.2; - - h2 { - font-size: 24px; - padding: 0; - margin: 0; - } - } - } - - label:has(input) { - cursor: pointer; - position: absolute; - right: 0; - margin-right: 23px; - margin-top: 24px; - font-size: 12px; - line-height: 1; - cursor: pointer; - background: var(--arbol-header-bg, gray); - color: var(--arbol-text-color, antiquewhite); - opacity: 0.5; - padding: 6px 8px; - border: 1px solid rgba(255, 255, 255, 0.2); - border-radius: 4px; - - &:hover { - color: var(--arbol-header-text-color, white); - opacity: 0.8; - } - - input { - display: none; - } - } - - label:has(input:checked) { - &::before { - content: "Show JSON Tree"; - } - & ~ data { - display: none; - } - } - - label:has(input:not(:checked)) { - &::before { - content: "Show Raw JSON"; - } - & ~ pre { - display: none; - } - } - - & > pre { - margin: 0; - padding: 24px; - max-height: 600px; - overflow: scroll; - font-size: var(--arbol-code-text-size, 14px); - color: var(--arbol-code-text-color, gray); - } - - data > ul { - padding: 24px; - margin: 0; - max-height: 600px; - overflow-y: scroll; - font-size: var(--arbol-code-text-size, 14px); - color: var(--arbol-code-text-color, gray); - - details.arrobj { - summary { - font-weight: bolder; - small { - color: var(--arbol-code-misc, orchid); - font-weight: lighter; - } - } - } - - var { - color: var(--arbol-code-variable, goldenrod); - &::before { - content: "\""; - } - &::after { - content: "\":"; - } - } - - code.arbol-value { - color: var(--arbol-code-value, lightblue); - } - - code.arbol-value.string { - color: var(--arbol-code-string, darkseagreen); - font-weight: light; - &::before { - content: "\""; - } - &::after { - content: "\""; - } - } - - code.arbol-value.boolean { - color: var(--arbol-code-bool, deepskyblue); - font-weight: bolder; - } - - code.arbol-value.number { - color: var(--arbol-code-numeric, turquoise); - font-weight: bolder; - } - code.arbol-value.undefined { - color: var(--arbol-code-undefined, palevioletred); - opacity: 0.8; - } - } - } - } - - :root { - --kuro-red-normal: #d23e08; - --kuro-red-normal-rgb: 210, 62, 8; - --kuro-red-light: #ffb7b7; - --kuro-red-light-rgb: 255, 183, 183; - --kuro-red-dark: #b66056; - --kuro-red-dark-rgb: 182, 96, 86; - --kuro-green-normal: #54ca74; - --kuro-green-normal-rgb: 84, 202, 116; - --kuro-green-light: #c1ffae; - --kuro-green-light-rgb: 193, 255, 174; - --kuro-green-dark: #85b1a9; - --kuro-green-dark-rgb: 133, 177, 169; - --kuro-blue-normal: #2ab9ff; - --kuro-blue-normal-rgb: 42, 185, 255; - --kuro-blue-light: #a1d9ff; - --kuro-blue-light-rgb: 161, 217, 255; - --kuro-blue-dark: #6890d7; - --kuro-blue-dark-rgb: 104, 144, 215; - --kuro-cyan-normal: #1ef9f5; - --kuro-cyan-normal-rgb: 30, 249, 245; - --kuro-cyan-light: #8efff3; - --kuro-cyan-light-rgb: 142, 255, 243; - --kuro-cyan-dark: #60bebe; - --kuro-cyan-dark-rgb: 96, 190, 190; - --kuro-magenta-normal: #ff50da; - --kuro-magenta-normal-rgb: 255, 80, 218; - --kuro-magenta-light: #ffa2ed; - --kuro-magenta-light-rgb: 255, 162, 237; - --kuro-magenta-dark: #cc83bd; - --kuro-magenta-dark-rgb: 204, 131, 189; - --kuro-yellow-normal: #fff700; - --kuro-yellow-normal-rgb: 255, 247, 0; - --kuro-yellow-light: #fcffb8; - --kuro-yellow-light-rgb: 252, 255, 184; - --kuro-yellow-dark: #dbbb43; - --kuro-yellow-dark-rgb: 219, 187, 67; - --kuro-black-normal: #333333; - --kuro-black-normal-rgb: 51, 51, 51; - --kuro-black-light: #515151; - --kuro-black-light-rgb: 81, 81, 81; - --kuro-black-dark: #141515; - --kuro-black-dark-rgb: 20, 21, 21; - --kuro-white-normal: #ddd0c4; - --kuro-white-normal-rgb: 221, 208, 196; - --kuro-white-light: #ffffff; - --kuro-white-light-rgb: 255, 255, 255; - --kuro-white-dark: #94959b; - --kuro-white-dark-rgb: 148, 149, 155; - --kuro-purple-normal: #9e60ec; - --kuro-purple-normal-rgb: 158, 96, 236; - --kuro-purple-light: #a994ff; - --kuro-purple-light-rgb: 169, 148, 255; - --kuro-purple-dark: #887aa3; - --kuro-purple-dark-rgb: 136, 122, 163; - --kuro-orange-normal: #e59605; - --kuro-orange-normal-rgb: 229, 150, 5; - --kuro-orange-light: #ffc663; - --kuro-orange-light-rgb: 255, 198, 99; - --kuro-orange-dark: #ab7b4e; - --kuro-orange-dark-rgb: 171, 123, 78; - --kuro-brown-normal: #9d5918; - --kuro-brown-normal-rgb: 157, 89, 24; - --kuro-brown-light: #f9cfb9; - --kuro-brown-light-rgb: 249, 207, 185; - --kuro-brown-dark: #837369; - --kuro-brown-dark-rgb: 131, 115, 105; - - --kuro-code-operator: var(--kuro-white-dark); - --kuro-code-namespace: var(--kuro-cyan-normal); - --kuro-code-punctuation: var(--kuro-white-dark); - --kuro-code-variable: var(--kuro-magenta-dark); - --kuro-code-variable-other: var(--kuro-brown-normal); - --kuro-code-variable-other-member: var(--kuro-orange-dark); - --kuro-code-constant: var(--kuro-blue-normal); - --kuro-code-constant-builtin: var(--kuro-white-normal); - --kuro-code-constant-builtin-bg: var(--kuro-blue-dark); - --kuro-code-constant-builtin: var(--kuro-blue-normal); - --kuro-code-constant-numeric: var(--kuro-cyan-dark); - --kuro-code-attribute: var(--kuro-yellow-normal); - --kuro-code-constant-character-escape: var(--kuro-brown-light); - --kuro-code-type: var(--kuro-orange-normal); - --kuro-code-type-builtin: var(--kuro-blue-light); - --kuro-code-type-enum-variant: var(--kuro-yellow-light); - --kuro-code-string: var(--kuro-green-dark); - --kuro-code-function: var(--kuro-yellow-dark); - --kuro-code-constructor: var(--kuro-cyan-normal); - --kuro-code-special: var(--kuro-green-light); - --kuro-code-function-macro: var(--kuro-purple-light); - --kuro-code-keyword: var(--kuro-blue-dark); - --kuro-code-label: var(--kuro-yellow-light); - --kuro-code-comment: var(--kuro-yellow-light); - --kuro-code-fg: var(--kuro-white-light); - --kuro-code-bg: var(--kuro-black-dark); - --kuro-monospace-default: "JetBrainsMono Nerd Font", ui-monospace, SFMono-Regular, "Cascadia Code", "Roboto Mono", "DejaVu Sans Mono", "Liberation Mono", Menlo, Monaco, "Consolas", "Source Code Pro", monospace; - } - - .kurokula { - --arbol-header-bg: var(--kuro-code-bg); - --arbol-header-text-color: var(--kuro-white-light); - --arbol-bg-color: var(--kuro-code-bg); - --arbol-text-color: var(--kuro-code-fg); - --arbol--text-font: "Atkinson Hyperlegible", serif; - --arbol--text-size: 17px; - --arbol-code-text-font: var(--kuro-monospace-default); - --arbol-code-text-size: 13px; - --arbol-code-text-color: var(--kuro-yellow-dark); - --arbol-code-variable: var(--kuro-code-variable); - --arbol-code-value: var(--kuro-blue-light); - --arbol-code-numeric: var(--kuro-code-constant-numeric); - --arbol-code-bool: var(--kuro-code-constant); - --arbol-code-string: var(--kuro-code-string); - --arbol-code-undefined: var(--kuro-red-light); - --arbol-code-misc: var(--kuro-white-normal); - } -} diff --git a/src/components/ApiExplorer.astro b/src/components/ApiExplorer.astro deleted file mode 100644 index 7c7696d..0000000 --- a/src/components/ApiExplorer.astro +++ /dev/null @@ -1,274 +0,0 @@ ---- -import ditto from '../data/ditto.json' -const dittoJson = JSON.stringify(ditto) -const pokeUrl = 'https://pokeapi.co/api/v2/ ' - -import { Aside, Icon } from '@astrojs/starlight/components' ---- - - - - - - - - -
- -

- - Copied to clipboard -

-
-

Try it now!

- - - -
- - -
-

- Direct link to results: https://pokemon.co/v2/pokemon/ditto -

- -
-
JavaScript is disabled
-
-
- - diff --git a/src/components/PokeFooter.astro b/src/components/PokeFooter.astro deleted file mode 100644 index 2b4b3a8..0000000 --- a/src/components/PokeFooter.astro +++ /dev/null @@ -1,33 +0,0 @@ ---- -import Pagination from '@astrojs/starlight/components/Pagination.astro' ---- - - - diff --git a/src/components/PokeHeader.astro b/src/components/PokeHeader.astro deleted file mode 100644 index 1277867..0000000 --- a/src/components/PokeHeader.astro +++ /dev/null @@ -1,95 +0,0 @@ ---- -import LanguageSelect from '@astrojs/starlight/components/LanguageSelect.astro' -import Search from '@astrojs/starlight/components/Search.astro' -import SiteTitle from '@astrojs/starlight/components/SiteTitle.astro' -import SocialIcons from '@astrojs/starlight/components/SocialIcons.astro' -import ThemeSelect from '@astrojs/starlight/components/ThemeSelect.astro' - -import PokeNav from './PokeNav.astro' - -/** - * Render the `Search` component if Pagefind is enabled or the default search component has been overridden. - */ -// const shouldRenderSearch = config.pagefind || config.components.Search !== '@astrojs/starlight/components/Search.astro' ---- - -
-
- -
-
- - -
-
-
- -
- - - -
-
- - diff --git a/src/components/PokeNav.astro b/src/components/PokeNav.astro deleted file mode 100644 index 8f80c6e..0000000 --- a/src/components/PokeNav.astro +++ /dev/null @@ -1,37 +0,0 @@ ---- -const baseUrl = import.meta.env.BASE_URL -const thisUrl = Astro.url.pathname -const about = baseUrl + 'about/' -const v2 = baseUrl + 'v2/' -const graphql = baseUrl + 'graphql/' ---- - - diff --git a/src/components/ResourceSection.astro b/src/components/ResourceSection.astro deleted file mode 100644 index f271b69..0000000 --- a/src/components/ResourceSection.astro +++ /dev/null @@ -1,83 +0,0 @@ ---- -import { Code } from '@astrojs/starlight/components' -import { marked } from 'marked' -const { data } = Astro.props ---- - -{ - data.map((obj, index) => ( -
-

- {obj.name} - (Endpoint) -

- - - {obj.description &&

} - -
- { - (obj.exampleResponse && obj.exampleRequest) ? ( - - ) : '' - } -
- - { - obj.responseModels.map((model, index) => ( -

- {model.name} - (Type) -

- - - - - - - - - - { - model.fields.map((field, index) => ( - - - - - - )) - } - -
NameDescriptionType
- {field.name} - - {field.description} - - { - (field.type.of && field.type.of.of) - ? ( - {field.type.type} {field.type.of.type} - ({field.type.of.of}) - ) - : (field.type.type === 'list') - ?
{field.type.type} {field.type.of}
- : (field.type.type) - ? ( - - ) - : {field.type} - } -
- )) - } -
- )) -} diff --git a/src/components/explorer/ApiExplorer.astro b/src/components/explorer/ApiExplorer.astro new file mode 100644 index 0000000..c182716 --- /dev/null +++ b/src/components/explorer/ApiExplorer.astro @@ -0,0 +1,319 @@ +--- +import crypto from "node:crypto"; +import ditto from "../../data/ditto.json"; + +import {Aside, Icon} from "@astrojs/starlight/components"; + +interface Props { + endpoint?: string; + exampleRequest?: string; + exampleResponse?: any; +} + +const {endpoint, exampleRequest, exampleResponse} = Astro.props; + +let defaultParam = "ditto"; +if (exampleRequest) { + const prefix = `/v2/${endpoint}/`; + if (exampleRequest.startsWith(prefix)) { + defaultParam = exampleRequest.slice(prefix.length); + if (defaultParam.endsWith("/")) { + defaultParam = defaultParam.slice(0, -1); + } + } else { + const rootPrefix = `/v2/${endpoint}`; + if (exampleRequest.startsWith(rootPrefix)) { + defaultParam = exampleRequest.slice(rootPrefix.length); + } else { + defaultParam = ""; + } + } +} else if (endpoint) { + defaultParam = "1"; +} + +const instanceId = "explorer-" + crypto.randomUUID(); + +const endpoints = [ + { + group: "Berries", + options: ["berry", "berry-firmness", "berry-flavor"], + }, + { + group: "Contests", + options: ["contest-type", "contest-effect", "super-contest-effect"], + }, + { + group: "Encounters", + options: ["encounter-method", "encounter-condition", "encounter-condition-value"], + }, + { + group: "Evolution", + options: ["evolution-chain", "evolution-trigger"], + }, + { + group: "Games", + options: ["generation", "pokedex", "version", "version-group"], + }, + { + group: "Items", + options: ["item", "item-attribute", "item-category", "item-fling-effect", "item-pocket"], + }, + { + group: "Locations", + options: ["location", "location-area", "pal-park-area", "region"], + }, + {group: "Machines", options: ["machine"]}, + { + group: "Moves", + options: [ + "move", + "move-ailment", + "move-battle-style", + "move-category", + "move-damage-class", + "move-learn-method", + "move-target", + ], + }, + { + group: "Pokémon", + options: [ + "ability", + "characteristic", + "egg-group", + "gender", + "growth-rate", + "nature", + "pokeathlon-stat", + "pokemon", + "pokemon-color", + "pokemon-form", + "pokemon-habitat", + "pokemon-shape", + "pokemon-species", + "stat", + "type", + ], + }, +]; + +import "./api-explorer.css"; +--- + +
+
+ { + !endpoint && ( +

+ Try it now! +

+ ) + } + + { + !endpoint && ( + + ) + } + +
+ +
+ + https://pokeapi.co/api/v2/ + + + + { + endpoint ? ( + + {endpoint} + + ) : ( +
+ +
+ {endpoints.map(({group, options}) => ( + <> + + {group} + + {options.map((opt) => ( + + ))} + + ))} +
+
+ ) + } + + + + + + +
+ + + +
+ +
+
+
+ + +
+ + +
+ +
+
+
+ + +
+
+
+ + + + diff --git a/src/components/explorer/api-explorer-client.js b/src/components/explorer/api-explorer-client.js new file mode 100644 index 0000000..4e9ba74 --- /dev/null +++ b/src/components/explorer/api-explorer-client.js @@ -0,0 +1,371 @@ +import "@alenaksu/json-viewer"; +import {EditorView, lineNumbers} from "@codemirror/view"; +import {EditorState, Compartment} from "@codemirror/state"; +import {json} from "@codemirror/lang-json"; +import {foldGutter, syntaxHighlighting, bracketMatching, HighlightStyle} from "@codemirror/language"; +import {tags as t} from "@lezer/highlight"; + +(function () { + "use strict"; + + const BASE_URL = "https://pokeapi.co/api/v2/"; + + function isDarkTheme() { + return document.documentElement.dataset.theme !== "light"; + } + + const themeCompartment = new Compartment(); + const highlightCompartment = new Compartment(); + + const pokeTheme = EditorView.theme({ + "&": { + color: "var(--sl-color-gray-1)", + backgroundColor: "transparent", + fontFamily: "var(--__sl-font-mono)", + fontSize: "0.82rem", + lineHeight: "1.65", + height: "100%", + }, + ".cm-scroller": { + overflow: "auto", + fontFamily: "var(--__sl-font-mono)", + height: "100%", + }, + ".cm-content": { + padding: "12px 16px", + caretColor: "var(--sl-color-accent)", + }, + ".cm-gutters": { + backgroundColor: "var(--sl-color-gray-6)", + color: "var(--sl-color-gray-4)", + borderRight: "1.5px solid var(--sl-color-gray-5)", + paddingRight: "2px", + fontFamily: "var(--__sl-font-mono)", + userSelect: "none", + }, + ".cm-lineNumbers .cm-gutterElement": { + padding: "0 8px 0 12px", + minWidth: "32px", + textAlign: "right", + fontSize: "0.82rem", + }, + ".cm-foldGutter .cm-gutterElement": { + padding: "0 4px", + cursor: "pointer", + color: "var(--sl-color-gray-4)", + transition: "color 0.15s ease", + fontSize: "0.75rem", + }, + ".cm-foldGutter .cm-gutterElement:hover": { + color: "var(--sl-color-white)", + }, + ".cm-foldPlaceholder": { + backgroundColor: "var(--sl-color-gray-5)", + border: "none", + color: "var(--sl-color-gray-2)", + padding: "0 6px", + borderRadius: "3px", + margin: "0 2px", + fontWeight: "500", + fontSize: "0.75rem", + }, + ".cm-activeLine": { + backgroundColor: "rgba(255, 255, 255, 0.02)", + }, + ".cm-selectionBackground, ::selection": { + backgroundColor: "rgba(59, 130, 246, 0.3) !important", + }, + }); + + const pokeDarkHighlighting = HighlightStyle.define([ + {tag: t.propertyName, color: "#f59e0b"}, + {tag: t.string, color: "#86efac"}, + {tag: t.number, color: "#c084fc"}, + {tag: t.bool, color: "#60a5fa"}, + {tag: t.null, color: "#f87171"}, + {tag: t.punctuation, color: "var(--sl-color-gray-3)"}, + {tag: t.bracket, color: "var(--sl-color-gray-3)"}, + ]); + + const pokeLightHighlighting = HighlightStyle.define([ + {tag: t.propertyName, color: "#b45309"}, + {tag: t.string, color: "#15803d"}, + {tag: t.number, color: "#7c3aed"}, + {tag: t.bool, color: "#2563eb"}, + {tag: t.null, color: "#dc2626"}, + {tag: t.punctuation, color: "var(--sl-color-gray-3)"}, + {tag: t.bracket, color: "var(--sl-color-gray-3)"}, + ]); + + function getHighlightExtension() { + return syntaxHighlighting(isDarkTheme() ? pokeDarkHighlighting : pokeLightHighlighting); + } + + function initWidget(widget) { + const selectWrap = widget.querySelector(".explorer-select-wrap"); + const selectTrigger = widget.querySelector(".explorer-select-trigger"); + const selectLabel = widget.querySelector(".explorer-select-label"); + const dropdownPanel = widget.querySelector(".explorer-dropdown-panel"); + const paramInput = widget.querySelector(".explorer-param-input"); + const sendBtn = widget.querySelector(".explorer-send-btn"); + const directLink = widget.querySelector(".explorer-direct-link"); + const copyBtn = widget.querySelector(".explorer-copy-btn"); + const tabRaw = widget.querySelector(".tab-raw"); + const tabTree = widget.querySelector(".tab-tree"); + const panelRaw = widget.querySelector(".panel-raw"); + const panelTree = widget.querySelector(".panel-tree"); + const cmContainer = widget.querySelector(".explorer-codemirror-container"); + const jsonViewer = widget.querySelector(".explorer-json-viewer"); + + let currentJsonData = null; + let selectedEndpoint = widget.dataset.endpoint || "pokemon"; + + const initialJsonEl = widget.nextElementSibling; + if (initialJsonEl && initialJsonEl.classList.contains("explorer-initial-json")) { + try { + currentJsonData = JSON.parse(initialJsonEl.textContent); + } catch (e) { + console.warn("initial json parse error", e); + } + } + + let cmEditor = null; + if (cmContainer) { + cmEditor = new EditorView({ + state: EditorState.create({ + doc: currentJsonData ? JSON.stringify(currentJsonData, null, 2) : "{}", + extensions: [ + lineNumbers(), + foldGutter(), + json(), + bracketMatching(), + highlightCompartment.of(getHighlightExtension()), + pokeTheme, + EditorState.readOnly.of(true), + EditorView.editable.of(false), + ], + }), + parent: cmContainer, + }); + } + + if (jsonViewer && currentJsonData) { + jsonViewer.data = currentJsonData; + } + + function updateTheme() { + if (cmEditor) { + cmEditor.dispatch({ + effects: highlightCompartment.reconfigure(getHighlightExtension()), + }); + } + } + + const observer = new MutationObserver(updateTheme); + observer.observe(document.documentElement, {attributes: true, attributeFilter: ["data-theme"]}); + + tabRaw?.addEventListener("click", () => { + tabRaw.classList.add("active"); + tabRaw.setAttribute("aria-selected", "true"); + tabTree?.classList.remove("active"); + tabTree?.setAttribute("aria-selected", "false"); + if (panelRaw) panelRaw.style.display = ""; + if (panelTree) panelTree.style.display = "none"; + }); + + tabTree?.addEventListener("click", () => { + tabTree.classList.add("active"); + tabTree.setAttribute("aria-selected", "true"); + tabRaw?.classList.remove("active"); + tabRaw?.setAttribute("aria-selected", "false"); + if (panelTree) panelTree.style.display = ""; + if (panelRaw) panelRaw.style.display = "none"; + }); + + function applyJsonData(parsed) { + currentJsonData = parsed; + if (cmEditor) { + const text = JSON.stringify(parsed, null, 2); + cmEditor.dispatch({ + changes: {from: 0, to: cmEditor.state.doc.length, insert: text}, + }); + } + if (jsonViewer) { + jsonViewer.data = parsed; + } + } + + function initDropdown() { + if (!selectWrap || !selectTrigger || !dropdownPanel) return; + + selectTrigger.addEventListener("click", function (e) { + e.stopPropagation(); + const nowOpen = selectWrap.classList.toggle("open"); + selectTrigger.setAttribute("aria-expanded", String(nowOpen)); + if (nowOpen) { + positionDropdown(); + const sel = dropdownPanel.querySelector(".dropdown-option.selected"); + if (sel) sel.focus(); + } + }); + + dropdownPanel.addEventListener("click", function (e) { + const btn = e.target.closest(".dropdown-option"); + if (!btn) return; + selectEndpoint(btn.dataset.value); + closeDropdown(); + }); + + dropdownPanel.addEventListener("keydown", function (e) { + if (e.key === "Escape") { + closeDropdown(); + selectTrigger.focus(); + } + if (e.key === "Enter") { + const btn = e.target.closest(".dropdown-option"); + if (btn) { + selectEndpoint(btn.dataset.value); + closeDropdown(); + } + } + }); + + document.addEventListener("click", function (e) { + if (selectWrap && !selectWrap.contains(e.target)) closeDropdown(); + }); + + window.addEventListener( + "scroll", + function () { + if (selectWrap.classList.contains("open")) positionDropdown(); + }, + true + ); + window.addEventListener("resize", function () { + if (selectWrap.classList.contains("open")) positionDropdown(); + }); + } + + function positionDropdown() { + if (!selectTrigger || !dropdownPanel) return; + const rect = selectTrigger.getBoundingClientRect(); + dropdownPanel.style.top = rect.bottom + 6 + "px"; + dropdownPanel.style.left = rect.left + "px"; + dropdownPanel.style.minWidth = Math.max(rect.width, 240) + "px"; + } + + function closeDropdown() { + if (!selectWrap) return; + selectWrap.classList.remove("open"); + selectTrigger.setAttribute("aria-expanded", "false"); + } + + function selectEndpoint(value) { + selectedEndpoint = value; + if (selectLabel) selectLabel.textContent = value; + dropdownPanel?.querySelectorAll(".dropdown-option").forEach(function (btn) { + const sel = btn.dataset.value === value; + btn.classList.toggle("selected", sel); + btn.setAttribute("aria-selected", String(sel)); + }); + } + + function getRequestUrl() { + const param = paramInput?.value.trim().replace(/&/g, "&") || ""; + if (param.startsWith("?")) return BASE_URL + selectedEndpoint + param; + if (param) return BASE_URL + selectedEndpoint + "/" + param; + return BASE_URL + selectedEndpoint + "/"; + } + + const originalSendHtml = sendBtn ? sendBtn.innerHTML : ""; + const originalCopyHtml = copyBtn ? copyBtn.innerHTML : ""; + + function sendRequest() { + const url = getRequestUrl(); + if (directLink) { + directLink.href = url; + directLink.textContent = url; + } + + if (sendBtn) { + sendBtn.disabled = true; + sendBtn.innerHTML = '\u22EF'; + } + + fetch(url) + .then(function (res) { + if (res.ok) { + return res.json().then(function (data) { + applyJsonData(data); + }); + } else { + applyJsonData({error: "HTTP " + res.status, url: url}); + } + }) + .catch(function (err) { + applyJsonData({error: String(err), url: url}); + }) + .finally(function () { + if (sendBtn) { + sendBtn.disabled = false; + sendBtn.innerHTML = originalSendHtml; + } + }); + } + + function initCopy() { + if (!copyBtn) return; + copyBtn.addEventListener("click", function () { + if (!currentJsonData) return; + const text = JSON.stringify(currentJsonData, null, 2); + navigator.clipboard + .writeText(text) + .then(function () { + copyBtn.classList.add("copied"); + setTimeout(function () { + copyBtn.classList.remove("copied"); + copyBtn.innerHTML = originalCopyHtml; + }, 2000); + }) + .catch(function (e) { + console.warn("copy failed", e); + }); + }); + } + + function initHints() { + widget.querySelectorAll(".input-hints").forEach(function (link) { + link.addEventListener("click", function (e) { + e.preventDefault(); + if (link.dataset.endpoint) selectEndpoint(link.dataset.endpoint); + if (link.dataset.param !== undefined && paramInput) paramInput.value = link.dataset.param; + sendRequest(); + }); + }); + } + + initDropdown(); + initCopy(); + initHints(); + + paramInput?.addEventListener("keypress", function (e) { + if (e.key === "Enter") sendRequest(); + }); + sendBtn?.addEventListener("click", sendRequest); + } + + function main() { + document.querySelectorAll(".api-explorer-widget").forEach(function (widget) { + if (widget.dataset.explorerInitialized === "true") return; + widget.dataset.explorerInitialized = "true"; + initWidget(widget); + }); + } + + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", main); + } else { + main(); + } + document.addEventListener("astro:after-swap", main); +})(); diff --git a/src/components/explorer/api-explorer.css b/src/components/explorer/api-explorer.css new file mode 100644 index 0000000..9a57015 --- /dev/null +++ b/src/components/explorer/api-explorer.css @@ -0,0 +1,104 @@ +@layer starlight, explorer; + +@layer explorer { + .api-explorer-root :is(.font-mono, pre, code, input, button) { + font-family: var(--__sl-font-mono) !important; + } + + .explorer-base-url { + letter-spacing: 0.01em !important; + } + + .api-explorer-root pre { + margin: 0 !important; + border: none !important; + background: none !important; + padding: 0 !important; + } + + .explorer-select-trigger::after { + position: absolute; + top: 50%; + right: 10px; + translate: 0 -50%; + transition: + transform 0.2s ease, + border-top-color 0.2s ease; + border-top: 5px solid var(--sl-color-gray-3); + border-right: 4px solid transparent; + border-left: 4px solid transparent; + width: 0; + height: 0; + content: ""; + } + + .explorer-select-trigger[aria-expanded="true"]::after { + transform: rotate(180deg); + border-top-color: var(--sl-color-accent); + } + + .explorer-dropdown-panel { + display: none; + } + + .explorer-select-wrap.open .explorer-dropdown-panel { + display: block; + } + .explorer-select-wrap.open .explorer-select-trigger { + background: var(--sl-color-gray-6); + } + + .explorer-direct-link:hover + .explorer-out-link-icon { + color: var(--sl-color-white) !important; + } + + .api-explorer-root .starlight-aside { + --sl-color-asides-text-accent: #ffcb05 !important; + --sl-color-asides-border: #ffcb05 !important; + background-color: color-mix(in srgb, #ffcb05 8%, var(--sl-color-black)) !important; + } + [data-theme="light"] .api-explorer-root .starlight-aside { + --sl-color-asides-text-accent: #8c6200 !important; + --sl-color-asides-border: #ffcb05 !important; + background-color: color-mix(in srgb, #ffcb05 8%, var(--sl-color-black)) !important; + } + + .explorer-json-viewer { + display: block; + --background-color: transparent; + --font-family: var(--__sl-font-mono); + --font-size: 0.84rem; + --line-height: 1.5rem; + --indent-size: 0.6rem; + --indentguide-color: rgba(255, 255, 255, 0.12); + --indentguide-color-active: var(--sl-color-accent); + --outline-style: none; + --outline-width: 0px; + } + + :root[data-theme="light"] .explorer-json-viewer { + --background-color: transparent; + --color: #1f2937; + --property-color: #0369a1; + --string-color: #15803d; + --number-color: #b45309; + --boolean-color: #2563eb; + --null-color: #dc2626; + --preview-color: #6b7280; + --indentguide-color: rgba(0, 0, 0, 0.12); + } + + .explorer-codemirror-container { + width: 100%; + height: 100%; + } + + .explorer-codemirror-container .cm-editor { + height: 100%; + } + + [data-theme="light"] .explorer-copy-btn.copied { + border-color: #15803d !important; + color: #15803d !important; + } +} diff --git a/src/components/footer/FooterBrand.astro b/src/components/footer/FooterBrand.astro new file mode 100644 index 0000000..edbf43e --- /dev/null +++ b/src/components/footer/FooterBrand.astro @@ -0,0 +1,38 @@ +--- +import {Icon} from "@astrojs/starlight/components"; +--- + +
+
+ PokéAPI + PokéAPI +
+

+ A free, open and community-driven REST API for Pokémon data, serving millions of requests daily. +

+
+ + PokéAPI System Status + +
+
diff --git a/src/components/footer/FooterNav.astro b/src/components/footer/FooterNav.astro new file mode 100644 index 0000000..dc73a0c --- /dev/null +++ b/src/components/footer/FooterNav.astro @@ -0,0 +1,111 @@ +
+
+

+ Documentation +

+ +
+ +
+

+ Community +

+ +
+ +
+

+ Resources +

+ +
+
diff --git a/src/components/footer/PokeFooter.astro b/src/components/footer/PokeFooter.astro new file mode 100644 index 0000000..09e254b --- /dev/null +++ b/src/components/footer/PokeFooter.astro @@ -0,0 +1,52 @@ +--- +import Pagination from "@astrojs/starlight/components/Pagination.astro"; +import FooterBrand from "./FooterBrand.astro"; +import FooterNav from "./FooterNav.astro"; + +const currentYear = new Date().getFullYear(); + +import "./poke-footer.css"; +--- + + + + + + diff --git a/src/components/footer/poke-footer.css b/src/components/footer/poke-footer.css new file mode 100644 index 0000000..9ee6e1a --- /dev/null +++ b/src/components/footer/poke-footer.css @@ -0,0 +1,75 @@ +@keyframes blobFloat { + 0%, + 100% { + transform: translateY(0) scale(1); + } + 33% { + transform: translateY(-18px) scale(1.04); + } + 66% { + transform: translateY(10px) scale(0.97); + } +} + +.footer-bg { + position: absolute; + inset: 0; + overflow: hidden; + pointer-events: none; +} + +.bg-blob { + position: absolute; + opacity: 0.06; + filter: blur(80px); + animation: blobFloat 12s ease-in-out infinite; + border-radius: 50%; +} + +.bg-blob-1 { + top: -120px; + left: -80px; + animation-delay: 0s; + background: var(--sl-color-accent); + width: 400px; + height: 400px; +} + +.bg-blob-2 { + right: 10%; + bottom: -100px; + animation-delay: -4s; + background: var(--pokemon-yellow); + width: 350px; + height: 350px; +} + +.bg-blob-3 { + top: 40%; + left: 50%; + transform: translateX(-50%); + animation-delay: -8s; + background: #a855f7; + width: 280px; + height: 280px; +} + +.github-pill { + border-color: #444; + background: #24292e; + color: #c9d1d9; +} + +.github-pill:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); +} + +[data-theme="light"] .github-pill { + border-color: #d0d7de; + background: #f6f8fa; + color: #24292e; +} + +[data-theme="light"] .bg-blob { + opacity: 0.03; +} diff --git a/src/components/footer/starlight-openapi-custom.js b/src/components/footer/starlight-openapi-custom.js new file mode 100644 index 0000000..073f1e6 --- /dev/null +++ b/src/components/footer/starlight-openapi-custom.js @@ -0,0 +1,174 @@ +(function () { + "use strict"; + + var themeOpenAPIBadges = function () { + var types = document.querySelectorAll(".sl-openapi-type"); + var validTypes = ["integer", "string", "boolean", "object", "array"]; + + types.forEach(function (el) { + if (el.dataset.themed) return; + el.dataset.themed = "true"; + var txt = el.textContent.trim().toLowerCase(); + var nullable = false; + + if (txt === "array") { + txt = "array"; + } + + if (txt.includes("null")) { + txt = txt.split("|")[0].trim(); + nullable = true; + } + + if (validTypes.includes(txt)) { + el.innerHTML = + '\n \n \n ' + + txt + + (nullable ? "?" : "") + + "\n \n "; + el.style.color = "inherit"; + el.style.fontWeight = "inherit"; + el.style.marginInlineEnd = "0"; + } + }); + + document.querySelectorAll("sl-openapi-snippet-picker").forEach(function (picker) { + if (picker.dataset.customized) return; + picker.dataset.customized = "true"; + + var select = picker.querySelector("select"); + if (!select) return; + + var label = picker.querySelector("label"); + if (label) { + label.style.display = "none"; + } + + var wrapper = document.createElement("div"); + wrapper.className = "custom-select-dropdown"; + + var button = document.createElement("button"); + button.className = "custom-select-trigger"; + button.type = "button"; + + var getSelectedText = function () { + var activeOpt = select.options[select.selectedIndex]; + return activeOpt ? activeOpt.text : "Select Language"; + }; + + button.innerHTML = + '\n ' + + getSelectedText() + + '\n \n '; + + var menu = document.createElement("div"); + menu.className = "custom-select-menu"; + + var groups = select.querySelectorAll("optgroup"); + if (groups.length > 0) { + groups.forEach(function (group) { + var groupTitle = document.createElement("div"); + groupTitle.className = "custom-select-group-title"; + groupTitle.textContent = group.label; + menu.appendChild(groupTitle); + + group.querySelectorAll("option").forEach(function (opt) { + var item = document.createElement("button"); + item.className = "custom-select-item"; + item.type = "button"; + item.dataset.value = opt.value; + item.textContent = opt.text; + + if (opt.selected) { + item.classList.add("is-active"); + } + + item.addEventListener("click", function (e) { + e.stopPropagation(); + select.value = opt.value; + select.dispatchEvent(new Event("change", {bubbles: true})); + + wrapper.querySelectorAll(".custom-select-item").forEach(function (i) { + i.classList.remove("is-active"); + }); + item.classList.add("is-active"); + button.querySelector(".trigger-label").textContent = opt.text; + + menu.classList.remove("is-open"); + }); + + menu.appendChild(item); + }); + }); + } else { + select.querySelectorAll("option").forEach(function (opt) { + var item = document.createElement("button"); + item.className = "custom-select-item"; + item.type = "button"; + item.dataset.value = opt.value; + item.textContent = opt.text; + + if (opt.selected) { + item.classList.add("is-active"); + } + + item.addEventListener("click", function (e) { + e.stopPropagation(); + select.value = opt.value; + select.dispatchEvent(new Event("change", {bubbles: true})); + + wrapper.querySelectorAll(".custom-select-item").forEach(function (i) { + i.classList.remove("is-active"); + }); + item.classList.add("is-active"); + button.querySelector(".trigger-label").textContent = opt.text; + + menu.classList.remove("is-open"); + }); + + menu.appendChild(item); + }); + } + + button.addEventListener("click", function (e) { + e.stopPropagation(); + var isOpen = menu.classList.contains("is-open"); + document.querySelectorAll(".custom-select-menu").forEach(function (m) { + m.classList.remove("is-open"); + }); + if (!isOpen) { + menu.classList.add("is-open"); + } + }); + + document.addEventListener("click", function () { + menu.classList.remove("is-open"); + }); + + wrapper.appendChild(button); + wrapper.appendChild(menu); + picker.appendChild(wrapper); + }); + + document.querySelectorAll(".sl-openapi-keys").forEach(function (keysContainer) { + if (keysContainer.closest(".sl-openapi-key-description")) return; + if (keysContainer.querySelector(".sl-openapi-key-header")) return; + + var header = document.createElement("div"); + header.className = "sl-openapi-key-header"; + header.innerHTML = + '\n
Field / Parameter
\n
Type & Description
\n '; + keysContainer.prepend(header); + }); + }; + + themeOpenAPIBadges(); + new MutationObserver(themeOpenAPIBadges).observe(document.body, { + childList: true, + subtree: true, + }); +})(); diff --git a/src/components/header/PokeHeader.astro b/src/components/header/PokeHeader.astro new file mode 100644 index 0000000..b0d2fc1 --- /dev/null +++ b/src/components/header/PokeHeader.astro @@ -0,0 +1,83 @@ +--- +import LanguageSelect from "@astrojs/starlight/components/LanguageSelect.astro"; +import Search from "@astrojs/starlight/components/Search.astro"; +import SiteTitle from "@astrojs/starlight/components/SiteTitle.astro"; +import {Icon} from "@astrojs/starlight/components"; +import ThemeToggle from "./ThemeToggle.astro"; +import SocialIcons from "./SocialIcons.astro"; + +import PokeNav from "./PokeNav.astro"; +--- + +
+
+ +
+
+ +
+ +
+ + + + + + diff --git a/src/components/header/PokeNav.astro b/src/components/header/PokeNav.astro new file mode 100644 index 0000000..841cdbe --- /dev/null +++ b/src/components/header/PokeNav.astro @@ -0,0 +1,63 @@ +--- +const baseUrl = import.meta.env.BASE_URL; +const thisUrl = Astro.url.pathname; +const about = baseUrl + "about/"; +const v2 = baseUrl + "v2/"; +const graphql = baseUrl + "graphql/"; +--- + + diff --git a/src/components/header/SocialIcons.astro b/src/components/header/SocialIcons.astro new file mode 100644 index 0000000..b2b1415 --- /dev/null +++ b/src/components/header/SocialIcons.astro @@ -0,0 +1,14 @@ +--- +import {Icon} from "@astrojs/starlight/components"; +--- + + + GitHub + + diff --git a/src/components/header/ThemeToggle.astro b/src/components/header/ThemeToggle.astro new file mode 100644 index 0000000..fc796a1 --- /dev/null +++ b/src/components/header/ThemeToggle.astro @@ -0,0 +1,85 @@ +--- +import {Icon} from "@astrojs/starlight/components"; +--- + +
+ +
+ + + + diff --git a/src/components/markdown/PokeMarkdownContent.astro b/src/components/markdown/PokeMarkdownContent.astro new file mode 100644 index 0000000..a9f20c7 --- /dev/null +++ b/src/components/markdown/PokeMarkdownContent.astro @@ -0,0 +1,20 @@ +--- +import Default from "@astrojs/starlight/components/MarkdownContent.astro"; + +const {starlightRoute} = Astro.locals; +const isHowTo = starlightRoute.id.startsWith("how-tos/") || starlightRoute.id === "how-tos"; +--- + +{ + isHowTo ? ( +
+ + + +
+ ) : ( + + + + ) +} diff --git a/src/components/markdown/ResourceSection.astro b/src/components/markdown/ResourceSection.astro new file mode 100644 index 0000000..8bcd56d --- /dev/null +++ b/src/components/markdown/ResourceSection.astro @@ -0,0 +1,190 @@ +--- +import {Code} from "@astrojs/starlight/components"; +import {marked} from "marked"; +import ApiExplorer from "../explorer/ApiExplorer.astro"; +const {data, playground = true} = Astro.props; +type PrimitiveType = "string" | "integer" | "number" | "boolean" | "array" | "object"; + +const validTypes: PrimitiveType[] = ["string", "integer", "number", "boolean", "array", "object"]; + +interface NestedObjectType { + type: string; + of: string; +} + +interface ListFieldType { + type: "list"; + of: string | NestedObjectType; +} + +// A field's type is EITHER a plain string (primitive name or schema/model name) +// OR one of the two object shapes below. +type FieldType = string | ListFieldType | NestedObjectType; + +interface ResponseField { + name: string; + description: string; + type: FieldType; +} + +interface ResponseModel { + name: string; + fields: ResponseField[]; +} + +interface EndpointData { + name: string; + description?: string; + exampleRequest?: string; + exampleResponse?: unknown; + responseModels: ResponseModel[]; +} + +function isPrimitive(t: FieldType): t is PrimitiveType { + return typeof t === "string" && (validTypes as string[]).includes(t); +} +--- + +{ + data.map((obj: EndpointData) => ( +
+

+ {obj.name} + (Endpoint) +

+ + {obj.description &&

} + +

+ {obj.exampleResponse && obj.exampleRequest ? ( + playground ? ( + + ) : ( +
+ +
+ ) + ) : null} +
+ + {obj.responseModels.map((model) => ( + <> +

+ {model.name} + (Type) +

+ + + + + + + + + + {model.fields.map((field: ResponseField) => ( + + + + + ))} + +
NameDescriptionType
+ + {field.name} + + + + {typeof field.type === "string" ? ( + isPrimitive(field.type) ? ( + + + {field.type} + + ) : ( + + + + ) + ) : field.type.type === "list" ? ( + typeof field.type.of === "object" ? ( + + + + list + + of + + + ) : ( + + + + list + + of + + {field.type.of} + + + ) + ) : ( + + + + )} +
+ + ))} +
+ )) +} diff --git a/src/components/markdown/guides.css b/src/components/markdown/guides.css new file mode 100644 index 0000000..fcdc5e3 --- /dev/null +++ b/src/components/markdown/guides.css @@ -0,0 +1,244 @@ +/* Clean & polished guide styling for Starlight */ + +/* Completely eliminate link underlines/bottom-borders on cards under all states */ +.sl-markdown-content :is(.sl-link-card, .card, .card-grid) a, +.sl-markdown-content a:is(.sl-link-card, .card), +.sl-markdown-content :is(.sl-link-card, .card) :is(a, .title, span, svg), +.sl-link-card, +.sl-link-card a, +.sl-link-card .title, +.sl-link-card .stack, +.sl-link-card .description { + border-bottom: none !important; + border-bottom-width: 0 !important; + border-bottom-color: transparent !important; + text-decoration: none !important; + text-decoration-line: none !important; + text-decoration-color: transparent !important; +} + +.sl-markdown-content :is(.sl-link-card, .card, .card-grid) a:hover, +.sl-markdown-content a:is(.sl-link-card, .card):hover, +.sl-markdown-content :is(.sl-link-card, .card):hover :is(a, .title, span, svg), +.sl-link-card:hover, +.sl-link-card:hover a, +.sl-link-card:hover .title, +.sl-link-card:hover .stack, +.sl-link-card:hover .description { + border-bottom: none !important; + border-bottom-width: 0 !important; + border-bottom-color: transparent !important; + text-decoration: none !important; + text-decoration-line: none !important; + text-decoration-color: transparent !important; +} + +.sl-link-card { + position: relative !important; + transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important; + box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.25) !important; + border: 1px solid rgba(59, 130, 246, 0.25) !important; + border-radius: 14px !important; + background: rgba(15, 23, 42, 0.45) !important; + padding: 1.5rem !important; +} + +.sl-link-card:hover { + transform: translateY(-3px) !important; + box-shadow: + 0 12px 24px -10px rgba(59, 130, 246, 0.45), + 0 0 0 1px var(--sl-color-accent) !important; + border-color: var(--sl-color-accent) !important; + background: rgba(59, 130, 246, 0.08) !important; +} + +.sl-link-card .title { + transition: color 0.2s ease !important; + color: var(--sl-color-white) !important; + font-weight: 600 !important; + font-size: 1.15rem !important; + line-height: 1.4 !important; +} + +.sl-link-card:hover .title { + color: var(--sl-color-white) !important; +} + +.sl-link-card .title svg, +.sl-link-card > svg { + transition: + transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), + color 0.25s ease !important; + color: var(--sl-color-gray-3) !important; +} + +.sl-link-card:hover .title svg, +.sl-link-card:hover > svg { + transform: translateX(4px) !important; + color: var(--sl-color-accent) !important; +} + +.sl-link-card .description { + margin-top: 0.5rem !important; + color: var(--sl-color-gray-2) !important; + font-size: 0.88rem !important; + line-height: 1.55 !important; +} + +/* Steps styling */ +.sl-steps { + border-inline-start: 1px solid rgba(59, 130, 246, 0.18) !important; + padding-inline-start: 1.5rem !important; +} + +.sl-steps > li { + margin-top: 1.5rem !important; +} + +.sl-steps > li::before { + display: flex !important; + justify-content: center !important; + align-items: center !important; + margin-inline-start: -2.4rem !important; + box-shadow: 0 0 12px rgba(59, 130, 246, 0.2) !important; + border: 2px solid color-mix(in srgb, var(--sl-color-accent) 70%, transparent) !important; + border-radius: 6px !important; + background-color: var(--sl-color-accent-low) !important; + width: 1.75rem !important; + height: 1.75rem !important; + color: var(--sl-color-accent-high) !important; + font-weight: 600 !important; + font-size: 0.85rem !important; +} + +/* Asides / Callouts */ +.starlight-aside, +.aside { + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1) !important; + border: 2px solid color-mix(in srgb, var(--aside-color, #ff9100) 40%, transparent) !important; + border-radius: 8px !important; + background-color: color-mix(in srgb, var(--aside-color, #ff9100) 4%, transparent) !important; + padding: 0 !important; + overflow: hidden !important; +} + +.starlight-aside__title, +.aside__title { + display: flex !important; + align-items: center !important; + gap: 0.5rem !important; + border-radius: 6px 6px 0 0 !important; + background-color: color-mix(in srgb, var(--aside-color, #ff9100) 8%, transparent) !important; + padding: 0.75rem 1rem !important; + color: var(--sl-color-white) !important; + font-weight: 600 !important; + font-size: 0.95rem !important; +} + +.starlight-aside__content, +.aside__content { + padding: 0.8rem 1rem !important; + color: var(--sl-color-gray-1) !important; + font-size: 0.875rem !important; + line-height: 1.6 !important; +} + +.aside--note { + --aside-color: #447feb; +} +.aside--tip { + --aside-color: #00e676; +} +.aside--caution { + --aside-color: #ff9100; +} +.aside--danger { + --aside-color: #ff5252; +} + +/* Tabs */ +starlight-tabs [role="tablist"] { + border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important; +} + +starlight-tabs [role="tab"][aria-selected="true"] { + border-bottom: 2px solid var(--sl-color-accent) !important; + color: var(--sl-color-white) !important; +} + +/* Badges */ +.sl-badge { + display: inline-flex !important; + align-items: center !important; + gap: 0.25rem !important; + margin-right: 0.25rem !important; + border: 1px solid !important; + border-radius: 4px !important; + padding: 0.1rem 0.45rem !important; + font-weight: 600 !important; + font-size: 0.72rem !important; +} + +.sl-badge.default { + border-color: rgba(99, 102, 241, 0.25) !important; + background-color: rgba(99, 102, 241, 0.1) !important; + color: #818cf8 !important; +} + +.sl-badge.note { + border-color: rgba(59, 130, 246, 0.25) !important; + background-color: rgba(59, 130, 246, 0.1) !important; + color: #60a5fa !important; +} + +.sl-badge.success { + border-color: rgba(16, 185, 129, 0.25) !important; + background-color: rgba(16, 185, 129, 0.1) !important; + color: #34d399 !important; +} + +.sl-badge.caution { + border-color: rgba(245, 158, 11, 0.25) !important; + background-color: rgba(245, 158, 11, 0.1) !important; + color: #fbbf24 !important; +} + +.sl-badge.danger { + border-color: rgba(244, 63, 94, 0.25) !important; + background-color: rgba(244, 63, 94, 0.1) !important; + color: #fb7185 !important; +} + +/* Keyboard keys */ +kbd { + border: 1px solid rgba(255, 255, 255, 0.15) !important; + border-radius: 4px !important; + background-color: rgba(255, 255, 255, 0.08) !important; + padding: 0.15rem 0.35rem !important; + color: var(--sl-color-white) !important; + font-size: 0.775em !important; + font-family: var(--sl-font-mono) !important; +} + +/* Light Mode Adaptations */ +:root[data-theme="light"] { + .sl-link-card { + border: 1px solid rgba(0, 0, 0, 0.08) !important; + background: rgba(255, 255, 255, 0.6) !important; + } + .sl-link-card:hover { + background: rgba(59, 130, 246, 0.04) !important; + } + .sl-link-card .title { + color: var(--sl-color-black) !important; + } + .starlight-aside__title, + .aside__title { + color: var(--sl-color-black) !important; + } + kbd { + border: 1px solid rgba(0, 0, 0, 0.12) !important; + background-color: rgba(0, 0, 0, 0.04) !important; + color: var(--sl-color-black) !important; + } +} diff --git a/src/content.config.ts b/src/content.config.ts index 34d27c0..98cf8f0 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -1,10 +1,15 @@ -import { defineCollection } from 'astro:content' -import { docsLoader } from '@astrojs/starlight/loaders' -import { docsSchema } from '@astrojs/starlight/schema' +import {defineCollection} from 'astro:content'; +import {docsLoader} from '@astrojs/starlight/loaders'; +import {docsSchema} from '@astrojs/starlight/schema'; +import {z} from 'astro/zod'; export const collections = { - docs: defineCollection({ - loader: docsLoader(), - schema: docsSchema(), - }), -} + docs: defineCollection({ + loader: docsLoader(), + schema: docsSchema({ + extend: z.object({ + publishDate: z.string().or(z.date()).optional(), + }), + }), + }), +}; diff --git a/src/content/docs/about.md b/src/content/docs/about.md index 27dfc97..573c85f 100644 --- a/src/content/docs/about.md +++ b/src/content/docs/about.md @@ -1,16 +1,18 @@ --- title: About +description: The RESTful Pokémon API. +keywords: [about] --- ### What is this? -This website provides a RESTful API interface to highly detailed objects built from thousands of lines of data related to [Pokémon](https://en.wikipedia.org/wiki/Pokemon). We specifically cover the video game franchise. Using this website, you can consume information on Pokémon, their moves, abilities, types, egg groups and much, much more. +This website provides a `RESTful API` interface to highly detailed objects built from thousands of lines of data related to [Pokémon](https://en.wikipedia.org/wiki/Pokemon). We specifically cover the video game franchise. Using this website, you can consume information on Pokémon, their moves, abilities, types, egg groups and much, much more. ### What is an API? -An API (Application Programming Interface) is a contract that allow developers to interact with an application through a set of interfaces. In this case, the application is a database of thousands of Pokémon-related objects, and the interfaces are URL links. - -A RESTful API is an API that conforms to a set of loose conventions based on HTTP verbs, errors, and hyperlinks. +> An **API (Application Programming Interface)** is a contract that allow developers to interact with an application through a set of interfaces. In this case, the application is a database of thousands of Pokémon-related objects, and the interfaces are `URL` links. +> +> A **RESTful API** is an API that conforms to a set of loose conventions based on `HTTP` verbs, errors, and hyperlinks. ### Aren't there 101 other Pokémon websites already? @@ -22,7 +24,7 @@ We aim to provide a **single source of data** that any number of other websites Often, and especially when new Pokémon games or updates are released, those 101+ websites take **weeks** to update as people have to enter the same information in all those different places. -This solves that problem. If all those sites consumed their data from here, they would have the exact same information that is updated at exactly the same time, with no errors between each website. The overall benefit is a better collaboration and consistency across all the different Pokémon websites and applications. It's good for all! +This solves that problem. If all those sites consumed their data from here, they would have the exact same information that is updated at exactly the same time, with no errors between each website. The overall benefit is a better **collaboration and consistency** across all the different Pokémon websites and applications. It's good for all! ### How much information is stored here? @@ -30,39 +32,37 @@ A lot. We currently have **tens of thousands** of individual items in our database, including: -- Moves -- Abilities -- Pokémon (including various forms) -- Types -- Egg Groups -- Game Versions -- Items -- Pokédexes -- Pokémon Evolution Chains +- `Moves` +- `Abilities` +- `Pokémon` (including various forms) +- `Types` +- `Egg Groups` +- `Game Versions` +- `Items` +- `Pokédexes` +- `Pokémon Evolution Chains` And that's just scratching the surface! To see all the different types of data we have, check out [the docs](../docs/v2). ### The API is missing stuff! -We know! Feel free to contribute to open issues on [GitHub](https://github.com/PokeAPI/pokeapi/). - -Have ideas for new features? We're on Slack! Sign up [right here](https://join.slack.com/t/pokeapi/shared_invite/zt-1l4vpwa8k-muQmMrFfv7TIFGrVWzjzcw) then visit our [slack team](https://pokeapi.slack.com). +We know! Feel free to contribute to open issues and discussions on [GitHub](https://github.com/PokeAPI/pokeapi/). ### So who built this? -PokéAPI V1 was created by [Paul Hallett](https://github.com/phalt) as a weekend project but it quickly became more than a weekend's worth of work. In December of 2014 Paul deprecated V1 in favor of working on V2. +PokéAPI `V1` was created by [Paul Hallett](https://github.com/phalt) as a weekend project but it quickly became more than a weekend's worth of work. In December of 2014 Paul deprecated `V1` in favor of working on `V2`. -This is where[Zane Adickes](https://github.com/zaneadix)jumped in. Zane thought the original project was a fantastic idea and wanted to help it grow. With direction from Paul, Zane created the V2 API using an exact mirror of[Veekun's](https://github.com/eevee) data relatedto the main series of games. +This is where [Zane Adickes](https://github.com/zaneadix) jumped in. Zane thought the original project was a fantastic idea and wanted to help it grow. With direction from Paul, Zane created the `V2 API` using an exact mirror of [Veekun's](https://github.com/eevee) data related to the main series of games. -During summer 2018, Paul decided to hand over the project to the community. This is where Tim Malone, Mark Tse, Sargun Vohra, Charles Marttinen, Alessandro Pezzé, Alberto Oliveira da Silva, and Lucio Merotta came together and started planning how to change the infrastructure in order to improve performance and cut down on hosting costs. An important step was to convert the API to serve static JSON files, which was made possible by Sargun and his excellent [PokeAPI/ditto](https://github.com/PokeAPI/ditto) tool. The frontend website was also re-built by Charles at the same time. The whole process was completed in October 2018. +During summer 2018, Paul decided to hand over the project to the community. This is where Tim Malone, Mark Tse, Sargun Vohra, Charles Marttinen, Alessandro Pezzé, Alberto Oliveira da Silva, and Lucio Merotta came together and started planning how to change the infrastructure in order to improve performance and cut down on hosting costs. An important step was to convert the API to serve static `JSON` files, which was made possible by Sargun and his excellent [`PokeAPI/ditto`](https://github.com/PokeAPI/ditto) tool. The frontend website was also re-built by Charles at the same time. The whole process was completed in October 2018. -After this massive redesign, PokéAPI gained many new consumers due to its new blazing fast performance. To give a quick reference, the loading of the infamous [Magikarp pokemon resouce](https://pokeapi.co/api/v2/pokemon/magikarp) passed from seconds to ~80ms. +After this massive redesign, PokéAPI gained many new consumers due to its new blazing fast performance. To give a quick reference, the loading of the infamous [Magikarp pokemon resouce](https://pokeapi.co/api/v2/pokemon/magikarp) passed from seconds to `~80ms`. An important milestone for the PokéAPI project happened shortly after in summer 2020, when its GitHub repository reached **2000 stargazers** and in a single month fulfilled **100 million** API calls. -In August 2020 the PokéAPI community decided [to temporarily fork](https://github.com/PokeAPI/pokeapi/issues/520) [veekun/pokedex](https://github.com/veekun/pokedex), which was the primary and only source of data. This operation was planned in order to add new generation-8 data, which Veekun lacked. The following people contributed to fetching and formatting generation-8 and newer data: [Alessandro Pezzé](https://github.com/Naramsim), [Hoang Quoc Trung](https://github.com/ichbinfrog), [Chandler Mahkorn](https://github.com/CMahk), [André Sousa](https://github.com/AndreArrebola), [Alexander Whan](https://github.com/alex-whan), [Austin Jones](https://github.com/myoKun345), [tomi-912](https://github.com/tomi-912), [Eric Donders](https://github.com/ercdndrs), [Gaël Dottel](https://github.com/pifopi), [Parnassius](https://github.com/Parnassius) and [Anh Thang](https://github.com/anhthang). +In August 2020 the PokéAPI community decided [to temporarily fork](https://github.com/PokeAPI/pokeapi/issues/520) [`veekun/pokedex`](https://github.com/veekun/pokedex), which was the primary and only source of data. This operation was planned in order to add new `generation-8` data, which Veekun lacked. The following people contributed to fetching and formatting `generation-8` and newer data: [Alessandro Pezzé](https://github.com/Naramsim), [Hoang Quoc Trung](https://github.com/ichbinfrog), [Chandler Mahkorn](https://github.com/CMahk), [André Sousa](https://github.com/AndreArrebola), [Alexander Whan](https://github.com/alex-whan), [Austin Jones](https://github.com/myoKun345), [tomi-912](https://github.com/tomi-912), [Eric Donders](https://github.com/ercdndrs), [Gaël Dottel](https://github.com/pifopi), [Parnassius](https://github.com/Parnassius) and [Anh Thang](https://github.com/anhthang). -In January 2023 [bitomic](https://github.com/bitomic), [Kohki Miki](https://github.com/giginet), [Paul-Émile](https://github.com/pebou), [tillfox](https://github.com/tillfox) scraped generation 9 data from the web and added it here. +In January 2023 [bitomic](https://github.com/bitomic), [Kohki Miki](https://github.com/giginet), [Paul-Émile](https://github.com/pebou), [tillfox](https://github.com/tillfox) scraped `generation 9` data from the web and added it here. The current owners of the PokéAPI project are [Paul Hallet](https://github.com/phalt), [Tim Malone](https://github.com/tdmalone) and [Alessandro Pezzé](https://github.com/Naramsim). Alongside them other core maintainers include [Charles Marttinen](https://github.com/cmmartti) and [Sargun Vohra](https://github.com/sargunv). @@ -72,16 +72,16 @@ We also have a [GitHub organization](https://github.com/pokeapi) of contributors We gathered the information on this site from various resources: -[Veekun](https://github.com/veekun) has a fantastic [Pokedex](http://veekun.com/dex) which is also an open source [project](https://github.com/veekun/pokedex) containing a ton of csv data. We used this to flesh out the database that powers Pokéapi. +[Veekun](https://github.com/veekun) has a fantastic [Pokedex](http://veekun.com/dex) which is also an open source [project](https://github.com/veekun/pokedex) containing a ton of `csv data`. We used this to flesh out the database that powers Pokéapi. Newer data is scraped from different resources which are considered to be trustful. ### What's the technology stack? -Up until November 2018, the API and website were built together in a single[Python](https://python.org) project using the [Django framework](https://djangoproject.com) and paired with a [PostgreSQL](https://www.postgresql.org) database to store the data. [Django REST Framework](http://www.django-rest-framework.org/) was used to expose the data through a RESTful API. The entire stack was deployed at [DigitalOcean](https://www.digitalocean.com/), initially paid by Paul and then sponsored directly by DigitalOcean itself. +Up until November 2018, the API and website were built together in a single [`Python`](https://python.org) project using the [`Django` framework](https://djangoproject.com) and paired with a [`PostgreSQL`](https://www.postgresql.org) database to store the data. [`Django REST Framework`](http://www.django-rest-framework.org/) was used to expose the data through a `RESTful API`. The entire stack was deployed at [`DigitalOcean`](https://www.digitalocean.com/), initially paid by Paul and then sponsored directly by DigitalOcean itself. -In October 2018, the API was converted to serve static JSON files in a fully backwards compatible manner. This allowed PokéAPI to move its hosting to a cheap static hosting solution ([Firebase](https://firebase.google.com/) Hosting + [Cloudflare](https://www.cloudflare.com/) Caching), which increased performance and stability by a drastic margin. +In October 2018, the API was converted to serve static `JSON` files in a fully backwards compatible manner. This allowed PokéAPI to move its hosting to a cheap static hosting solution ([`Firebase`](https://firebase.google.com/) Hosting + [`Cloudflare`](https://www.cloudflare.com/) Caching), which increased performance and stability by a drastic margin. -The move to static hosting was solved by introducing a build step before deployment performed by [CircleCI](https://circleci.com/), our build system. This build step starts a local Django copy of [PokeAPI/pokeapi](https://github.com/PokeAPI/pokeapi) and saves each possible endpoint as a JSON file using [PokeAPI/ditto](https://github.com/PokeAPI/ditto). All these JSON files are then uploaded to Firebase and served to the public through a [Firebase function](https://github.com/PokeAPI/deploy) actioned by CircleCI. +The move to static hosting was solved by introducing a build step before deployment performed by [`CircleCI`](https://circleci.com/), our build system. This build step starts a local Django copy of [`PokeAPI/pokeapi`](https://github.com/PokeAPI/pokeapi) and saves each possible endpoint as a `JSON` file using [`PokeAPI/ditto`](https://github.com/PokeAPI/ditto). All these `JSON` files are then uploaded to Firebase and served to the public through a [`Firebase function`](https://github.com/PokeAPI/deploy) actioned by CircleCI. -This website now uses [Astro](https://github.com/withastro/astro) and the code lives in its own GitHub project at [PokeAPI/pokeapi.co](https://github.com/PokeAPI/pokeapi.co). Again, CircleCI takes care of deploying it on Firebase as static files. \ No newline at end of file +The documentation website was initially built using [`React Static`](https://github.com/react-static/react-static) by [Charles Marttinen](https://github.com/charlesmarttinen). Since then due to `react-static` going into indefinite hiatus, the website was rebuilt using [`Astro`](https://github.com/withastro/astro) and [`Starlight`](https://github.com/withastro/starlight) by [Indyandie](https://github.com/indyandie) and [FallenDeity](https://github.com/fallendeity). Again, CircleCI takes care of deploying it on Firebase as static files generated by Astro. diff --git a/src/content/docs/graphql.md b/src/content/docs/graphql.mdx similarity index 84% rename from src/content/docs/graphql.md rename to src/content/docs/graphql.mdx index cb72785..a2f50cb 100644 --- a/src/content/docs/graphql.md +++ b/src/content/docs/graphql.mdx @@ -1,5 +1,7 @@ --- title: GraphQL v1beta +description: Beta support for PokéAPI GraphQL queries and explorer console. +keywords: [graphql, query, console] --- ## Infomation @@ -12,16 +14,15 @@ To ease learning and developing, a [GraphiQL](https://github.com/graphql/graphiq ```sh # This curl retrieves all items and relative costs -curl 'https://beta.pokeapi.co/graphql/v1beta' \\ --H 'content-type: application/json' \\ --H 'accept: */*' \\ ---compressed \\ ---data-binary @- << EOF -{ -"query": "query getItems{pokemon_v2_item{name,cost}}", -"variables": null, -"operationName":"getItems" -} +curl 'https://beta.pokeapi.co/graphql/v1beta'\\ - + H 'content-type: application/json'\\ - + H 'accept: */*'\\ + --compressed\\ + --data - binary @ - << EOF { + "query": "query getItems{pokemon_v2_item{name,cost}}", + "variables": null, + "operationName": "getItems" + } EOF ``` @@ -39,7 +40,6 @@ PokéAPI is primarily an educational tool, and we will not tolerate denial of se - Be nice and friendly to your fellow PokéAPI developers. - If you spot security vulnerabilities act and [report them](https://github.com/PokeAPI/pokeapi/blob/master/SECURITY.md#reporting-a-vulnerability) responsibly. - ### Beta status To reduce costs we are hosting the GraphQL API on a GCP e2-micro free instance. The machine can hardly support all the load of Hasura and Postgres thanks to some ingenious tweaks. diff --git a/src/content/docs/how-tos/index.mdx b/src/content/docs/how-tos/index.mdx new file mode 100644 index 0000000..96833d0 --- /dev/null +++ b/src/content/docs/how-tos/index.mdx @@ -0,0 +1,38 @@ +--- +title: How-To Guides +description: Learn how to integrate and use PokéAPI with different libraries, frameworks, and patterns. +sidebar: + order: 1 +--- + +import "../../../components/markdown/guides.css"; +import {CardGrid, LinkCard, Card} from '@astrojs/starlight/components'; + +Welcome to the **PokéAPI How-To Guides**! This section contains tutorials, walkthroughs, and step-by-step guides to help you build applications using PokéAPI. + +Whether you are looking to integrate a community-built API client wrapper, optimize your caching strategies, or write your own guide, you will find instructions here. + +## Featured Guides + + + + + +--- + +## Why Use Guides? + + + + Learn best practices and copy-paste functional code snippets in + languages like JavaScript, Python, Go, and more. + + + Understand caching, pagination, and fair use guidelines to keep your + application running smoothly and avoid rate limits. + + diff --git a/src/content/docs/how-tos/pokedex-promise-v2.mdx b/src/content/docs/how-tos/pokedex-promise-v2.mdx new file mode 100644 index 0000000..a9d7de3 --- /dev/null +++ b/src/content/docs/how-tos/pokedex-promise-v2.mdx @@ -0,0 +1,220 @@ +--- +title: pokedex-promise V2 Guide +description: Learn how to query Pokémon data in Node.js using the pokedex-promise-v2 client wrapper. +sidebar: + order: 3 +publishDate: 2026-07-18 +keywords: [client, pokedex-promise-v2, node.js, javascript, caching] +--- + +import "../../../components/markdown/guides.css"; +import { Steps, Tabs, TabItem, Aside, Card, CardGrid, LinkCard, Badge } from '@astrojs/starlight/components'; + +[pokedex-promise-v2](https://github.com/PokeAPI/pokedex-promise-v2) is a popular, lightweight Node.js client wrapper for PokéAPI. It features built-in in-memory caching, automatic rate limiting fallback configurations, and support for Promises, Async/Await, and Callbacks. + +This guide will walk you through installing the package, configuring the client, and fetching Pokémon data. + +--- + +## Getting Started + +Follow these steps to integrate `pokedex-promise-v2` into your Node.js application: + + + +1. **Install the package** + Choose your preferred package manager to add `pokedex-promise-v2` to your project: + + + + ```sh title="Terminal" + npm install pokedex-promise-v2 + ``` + + + ```sh title="Terminal" + yarn add pokedex-promise-v2 + ``` + + + ```sh title="Terminal" + pnpm i pokedex-promise-v2 + ``` + + + +2. **Configure your project for ESM** + Since version `4.0.0`, `pokedex-promise-v2` is a pure **ES Modules (ESM)** package . + + :::caution[Important ESM Requirement] + You must configure your project to support ES modules. Ensure your `package.json` contains: + ```json title="package.json" ins={3} + { + "name": "my-pokemon-app", + "type": "module" + } + ``` + Otherwise, trying to use `import` in Node.js will throw a syntax error. + ::: + +3. **Initialize the client** + Import the package and initialize a new `Pokedex` instance. + + ```js title="app.js" + import Pokedex from 'pokedex-promise-v2'; + const P = new Pokedex(); + ``` + +4. **Run your first query** + Retrieve information for a Pokémon by name or ID. + + ```js title="app.js" {3} + import Pokedex from 'pokedex-promise-v2'; + const P = new Pokedex(); + const pikachu = await P.getPokemonByName("pikachu"); + console.log(`Pokedex ID: ${pikachu.id}`); // 25 + ``` + + To run this file, open your terminal and press node app.js followed by Enter. + + + +--- + +## Querying Patterns + +`pokedex-promise-v2` is highly flexible. You can query endpoints using Async/Await, Promises, or traditional Callbacks. You can also fetch single records or retrieve arrays of records in a single call. + +### 1. Main Fetching Methods + +* **`getPokemonByName(nameOrId)`** + Fetch Pokemon data by string name or integer ID. +* **`getPokemonSpeciesByName(nameOrId)`** + Fetch species data (including language translations, evolution chains, and descriptions). + +### 2. Implementation Patterns + + + + ```js title="async-await.js" {4-7} + import Pokedex from 'pokedex-promise-v2'; + const P = new Pokedex(); + + try { + const species = await P.getPokemonSpeciesByName("golduck"); + const frenchName = species.names.find(n => n.language.name === 'fr').name; + console.log(`French name of Golduck: ${frenchName}`); + } catch (error) { + console.error("Failed to fetch Pokémon species data:", error); + } + ``` + + + ```js title="promises.js" {4-10} + import Pokedex from 'pokedex-promise-v2'; + const P = new Pokedex(); + + // Passing an array fetches multiple records simultaneously + P.getPokemonByName(['eevee', 'ditto']) + .then((response) => { + console.log(response); // Array containing Eevee and Ditto data + }) + .catch((error) => { + console.error('Error fetching Pokémon:', error); + }); + ``` + + + ```js title="callbacks.js" {4-10} + import Pokedex from 'pokedex-promise-v2'; + const P = new Pokedex(); + + // You can pass an integer ID instead of a string name + P.getPokemonByName(34, (response, error) => { + if (!error) { + console.log(`Pokémon Name: ${response.name}`); // nidoking + } else { + console.error(error); + } + }); + ``` + + + +
+ View Pikachu Query JSON Response Payload Structure +
+ + ```json title="pikachu-response.json" + { + "id": 25, + "name": "pikachu", + "base_experience": 112, + "height": 4, + "is_default": true, + "order": 35, + "weight": 60, + "abilities": [ + { + "is_hidden": false, + "slot": 1, + "ability": { + "name": "static", + "url": "https://pokeapi.co/api/v2/ability/9/" + } + } + ], + "forms": [ + { + "name": "pikachu", + "url": "https://pokeapi.co/api/v2/pokemon-form/25/" + } + ] + } + ``` + +
+
+ +--- + +## Advanced Configurations + +By default, the client is initialized to target the public API endpoint (`https://pokeapi.co/api/v2/`), timeout after 20 seconds, and cache responses in memory for **11 days**. + +You can customize this behavior by passing a configuration object to the constructor: + +```javascript title="config.js" {4-8} +import Pokedex from 'pokedex-promise-v2'; + +const customOptions = { + protocol: 'https', + hostName: 'pokeapi.co', + versionPath: '/api/v2/', + cacheLimit: 5 * 60 * 1000, // Cache for 5 minutes (in milliseconds) + timeout: 5000 // Timeout after 5 seconds (in milliseconds) +}; + +const P = new Pokedex(customOptions); +``` + +:::tip[Custom API Endpoints] +If you run a local PokéAPI instance or cache-proxy on localhost, you can set `hostName` to `'localhost:8000'` (or your local port) to redirect all client calls there! +::: + +--- + +## Next Steps + + + + + diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index 724f80b..18d4f57 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -1,13 +1,12 @@ --- title: Home description: The RESTful Pokémon API -template: splash hero: title: The RESTful Pokémon API - tagline: Serving over 1,000,000,000 API calls each month! + tagline: "Serving over 50 billion API calls each month!All the Pokémon data you’ll ever need in one place, easily accessible through a modern free open-source RESTful API." image: - alt: A glittering, brightly colored logo - file: ../../assets/pokeapi_256.png + file: ../../../public/pokeapi_256.png + alt: PokéAPI Hero Image actions: - text: Check out the docs! link: ./v2/ @@ -19,28 +18,28 @@ hero: variant: secondary attrs: rel: me +prev: false +next: false +tableOfContents: false --- -import ApiExplorer from '../../components/ApiExplorer.astro'; +import ApiExplorer from '../../components/explorer/ApiExplorer.astro'; import { Card, CardGrid } from '@astrojs/starlight/components' -
-All the Pokémon data you'll ever need in one place, easily accessible through a modern free open-source RESTful API. -
- - +
+ + + This is a full **RESTful API** linked to an extensive database detailing everything about the Pokémon main game series. +
+ We've covered everything from Pokémon to Berry Flavors. +
- - This is a full **RESTful API** linked to an extensive database detailing everything about the Pokémon main game series. -
- We've covered everything from Pokémon to Berry Flavors. -
- - - We have awesome [documentation](./v2/) on how to use this API. It takes minutes to get started. -
- This API will always be publicly available and will never require any extensive setup process to consume. -
-
+ + We have awesome [documentation](./v2/) on how to use this API. It takes minutes to get started. +
+ This API will always be publicly available and will never require any extensive setup process to consume. +
+ +
diff --git a/src/content/docs/v2/index.mdx b/src/content/docs/v2/index.mdx index 4ad1cc1..a9c85ae 100644 --- a/src/content/docs/v2/index.mdx +++ b/src/content/docs/v2/index.mdx @@ -1,8 +1,9 @@ --- -title: V2 +title: API V2 +description: PokéAPI API v2 Resource documentation and interactive API explorer console. --- -import Resource from '../../../components/ResourceSection.astro'; +import Resource from '../../../components/markdown/ResourceSection.astro'; import resourceLists from '../../../data/operations/resource-lists.json'; import berries from '../../../data/operations/berries.json'; @@ -17,10 +18,6 @@ import moves from '../../../data/operations/moves.json'; import pokemon from '../../../data/operations/pokemon.json'; import utility from '../../../data/operations/utility.json'; -:::caution -If you were using `v1` of this API, please switch to `v2` (this page). -::: - ## Information This is a **consumption-only** API — only the `HTTP` `GET` method is available on resources. @@ -33,87 +30,75 @@ PokéAPI is free and open to use. It is also very popular. Because of this, we a PokéAPI is primarily an educational tool, and we will not tolerate denial of service attacks preventing people from learning. -### Rules: +### Rules - Locally cache resources whenever you request them. - Be nice and friendly to your fellow PokéAPI developers. - If you spot security vulnerabilities act and [report them](https://github.com/PokeAPI/pokeapi/blob/master/SECURITY.md#reporting-a-vulnerability) responsibly. -## Slack and community +## OpenAPI -Currently no maintainer has enough free time to support the community on Slack. Our Slack is in an unmaintained status. You can still sign up right [here](https://join.slack.com/t/pokeapi/shared_invite/zt-2ampo6her-_tHSI3uOS65WzGypt7Y96w) -then visit our [Slack](https://pokeapi.slack.com) page. +The OpenAPI documentation is dynamically generated from the official [PokeAPI OpenAPI specification](https://github.com/PokeAPI/pokeapi/blob/master/openapi.yml). --- -## Resource Lists/Pagination (group) +## Resource Lists/Pagination (Group) -Calling any API endpoint without a resource ID or name will return a paginated list of available resources for that API. By default, a list "page" will contain up to 20 resources. If you would like to change this just add a 'limit' query parameter to the GET request, e.g. ?limit=60. You can use 'offset' to move to the next page, e.g. ?limit=60&offset=60. characteristic, contest-effect, evolution-chain, machine, super-contest-effect endpoints are unnamed, the rest are named. +Calling any API endpoint without a resource ID or name will return a paginated list of available resources for that API. By default, a list "page" will contain up to 20 resources. - +If you would like to change this, just add a `limit` query parameter to the `GET` request, e.g. `?limit=60`. You can use `offset` to move to the next page, e.g. `?limit=60&offset=60`. ---- +- **Unnamed Endpoints** (which return an `APIResource` list): + - [`characteristic`](#characteristic) + - [`contest-effect`](#contest-effect) + - [`evolution-chain`](#evolution-chain) + - [`machine`](#machine) + - [`super-contest-effect`](#super-contest-effect) +- **Named Endpoints** (which return a `NamedAPIResource` list): + - All other endpoints listed below (e.g. [`berry`](#berry), [`pokemon`](#pokemon), [`move`](#move), [`item`](#item), etc.). -## Berries (group) + - +## Berries (Group) ---- + -## Contests (group) +## Contests (Group) ---- - -## Encounters (group) +## Encounters (Group) ---- - -## Evolution (group) +## Evolution (Group) ---- - -## Games (group) +## Games (Group) ---- - -## Items (group) +## Items (Group) ---- - -## Locations (group) +## Locations (Group) ---- - -## Machines (group) +## Machines (Group) ---- - -## Moves (group) +## Moves (Group) ---- - -## Pokemon (group) +## Pokemon (Group) ---- - -## Utility (group) +## Utility (Group) diff --git a/src/data/ditto.json b/src/data/ditto.json index 430e7c5..7de393d 100644 --- a/src/data/ditto.json +++ b/src/data/ditto.json @@ -1,996 +1 @@ -{ - "abilities": [ - { - "ability": { - "name": "limber", - "url": "https://pokeapi.co/api/v2/ability/7/" - }, - "is_hidden": false, - "slot": 1 - }, - { - "ability": { - "name": "imposter", - "url": "https://pokeapi.co/api/v2/ability/150/" - }, - "is_hidden": true, - "slot": 3 - } - ], - "base_experience": 101, - "cries": { - "latest": "https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/132.ogg", - "legacy": "https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/132.ogg" - }, - "forms": [ - { - "name": "ditto", - "url": "https://pokeapi.co/api/v2/pokemon-form/132/" - } - ], - "game_indices": [ - { - "game_index": 76, - "version": { - "name": "red", - "url": "https://pokeapi.co/api/v2/version/1/" - } - }, - { - "game_index": 76, - "version": { - "name": "blue", - "url": "https://pokeapi.co/api/v2/version/2/" - } - }, - { - "game_index": 76, - "version": { - "name": "yellow", - "url": "https://pokeapi.co/api/v2/version/3/" - } - }, - { - "game_index": 132, - "version": { - "name": "gold", - "url": "https://pokeapi.co/api/v2/version/4/" - } - }, - { - "game_index": 132, - "version": { - "name": "silver", - "url": "https://pokeapi.co/api/v2/version/5/" - } - }, - { - "game_index": 132, - "version": { - "name": "crystal", - "url": "https://pokeapi.co/api/v2/version/6/" - } - }, - { - "game_index": 132, - "version": { - "name": "ruby", - "url": "https://pokeapi.co/api/v2/version/7/" - } - }, - { - "game_index": 132, - "version": { - "name": "sapphire", - "url": "https://pokeapi.co/api/v2/version/8/" - } - }, - { - "game_index": 132, - "version": { - "name": "emerald", - "url": "https://pokeapi.co/api/v2/version/9/" - } - }, - { - "game_index": 132, - "version": { - "name": "firered", - "url": "https://pokeapi.co/api/v2/version/10/" - } - }, - { - "game_index": 132, - "version": { - "name": "leafgreen", - "url": "https://pokeapi.co/api/v2/version/11/" - } - }, - { - "game_index": 132, - "version": { - "name": "diamond", - "url": "https://pokeapi.co/api/v2/version/12/" - } - }, - { - "game_index": 132, - "version": { - "name": "pearl", - "url": "https://pokeapi.co/api/v2/version/13/" - } - }, - { - "game_index": 132, - "version": { - "name": "platinum", - "url": "https://pokeapi.co/api/v2/version/14/" - } - }, - { - "game_index": 132, - "version": { - "name": "heartgold", - "url": "https://pokeapi.co/api/v2/version/15/" - } - }, - { - "game_index": 132, - "version": { - "name": "soulsilver", - "url": "https://pokeapi.co/api/v2/version/16/" - } - }, - { - "game_index": 132, - "version": { - "name": "black", - "url": "https://pokeapi.co/api/v2/version/17/" - } - }, - { - "game_index": 132, - "version": { - "name": "white", - "url": "https://pokeapi.co/api/v2/version/18/" - } - }, - { - "game_index": 132, - "version": { - "name": "black-2", - "url": "https://pokeapi.co/api/v2/version/21/" - } - }, - { - "game_index": 132, - "version": { - "name": "white-2", - "url": "https://pokeapi.co/api/v2/version/22/" - } - } - ], - "height": 3, - "held_items": [ - { - "item": { - "name": "metal-powder", - "url": "https://pokeapi.co/api/v2/item/234/" - }, - "version_details": [ - { - "rarity": 5, - "version": { - "name": "ruby", - "url": "https://pokeapi.co/api/v2/version/7/" - } - }, - { - "rarity": 5, - "version": { - "name": "sapphire", - "url": "https://pokeapi.co/api/v2/version/8/" - } - }, - { - "rarity": 5, - "version": { - "name": "emerald", - "url": "https://pokeapi.co/api/v2/version/9/" - } - }, - { - "rarity": 5, - "version": { - "name": "firered", - "url": "https://pokeapi.co/api/v2/version/10/" - } - }, - { - "rarity": 5, - "version": { - "name": "leafgreen", - "url": "https://pokeapi.co/api/v2/version/11/" - } - }, - { - "rarity": 5, - "version": { - "name": "diamond", - "url": "https://pokeapi.co/api/v2/version/12/" - } - }, - { - "rarity": 5, - "version": { - "name": "pearl", - "url": "https://pokeapi.co/api/v2/version/13/" - } - }, - { - "rarity": 5, - "version": { - "name": "platinum", - "url": "https://pokeapi.co/api/v2/version/14/" - } - }, - { - "rarity": 5, - "version": { - "name": "heartgold", - "url": "https://pokeapi.co/api/v2/version/15/" - } - }, - { - "rarity": 5, - "version": { - "name": "soulsilver", - "url": "https://pokeapi.co/api/v2/version/16/" - } - }, - { - "rarity": 5, - "version": { - "name": "black", - "url": "https://pokeapi.co/api/v2/version/17/" - } - }, - { - "rarity": 5, - "version": { - "name": "white", - "url": "https://pokeapi.co/api/v2/version/18/" - } - }, - { - "rarity": 5, - "version": { - "name": "black-2", - "url": "https://pokeapi.co/api/v2/version/21/" - } - }, - { - "rarity": 5, - "version": { - "name": "white-2", - "url": "https://pokeapi.co/api/v2/version/22/" - } - }, - { - "rarity": 5, - "version": { - "name": "x", - "url": "https://pokeapi.co/api/v2/version/23/" - } - }, - { - "rarity": 5, - "version": { - "name": "y", - "url": "https://pokeapi.co/api/v2/version/24/" - } - }, - { - "rarity": 5, - "version": { - "name": "omega-ruby", - "url": "https://pokeapi.co/api/v2/version/25/" - } - }, - { - "rarity": 5, - "version": { - "name": "alpha-sapphire", - "url": "https://pokeapi.co/api/v2/version/26/" - } - }, - { - "rarity": 5, - "version": { - "name": "sun", - "url": "https://pokeapi.co/api/v2/version/27/" - } - }, - { - "rarity": 5, - "version": { - "name": "moon", - "url": "https://pokeapi.co/api/v2/version/28/" - } - }, - { - "rarity": 5, - "version": { - "name": "ultra-sun", - "url": "https://pokeapi.co/api/v2/version/29/" - } - }, - { - "rarity": 5, - "version": { - "name": "ultra-moon", - "url": "https://pokeapi.co/api/v2/version/30/" - } - } - ] - }, - { - "item": { - "name": "quick-powder", - "url": "https://pokeapi.co/api/v2/item/251/" - }, - "version_details": [ - { - "rarity": 50, - "version": { - "name": "diamond", - "url": "https://pokeapi.co/api/v2/version/12/" - } - }, - { - "rarity": 50, - "version": { - "name": "pearl", - "url": "https://pokeapi.co/api/v2/version/13/" - } - }, - { - "rarity": 50, - "version": { - "name": "platinum", - "url": "https://pokeapi.co/api/v2/version/14/" - } - }, - { - "rarity": 50, - "version": { - "name": "heartgold", - "url": "https://pokeapi.co/api/v2/version/15/" - } - }, - { - "rarity": 50, - "version": { - "name": "soulsilver", - "url": "https://pokeapi.co/api/v2/version/16/" - } - }, - { - "rarity": 50, - "version": { - "name": "black", - "url": "https://pokeapi.co/api/v2/version/17/" - } - }, - { - "rarity": 50, - "version": { - "name": "white", - "url": "https://pokeapi.co/api/v2/version/18/" - } - }, - { - "rarity": 50, - "version": { - "name": "black-2", - "url": "https://pokeapi.co/api/v2/version/21/" - } - }, - { - "rarity": 50, - "version": { - "name": "white-2", - "url": "https://pokeapi.co/api/v2/version/22/" - } - }, - { - "rarity": 50, - "version": { - "name": "x", - "url": "https://pokeapi.co/api/v2/version/23/" - } - }, - { - "rarity": 50, - "version": { - "name": "y", - "url": "https://pokeapi.co/api/v2/version/24/" - } - }, - { - "rarity": 50, - "version": { - "name": "omega-ruby", - "url": "https://pokeapi.co/api/v2/version/25/" - } - }, - { - "rarity": 50, - "version": { - "name": "alpha-sapphire", - "url": "https://pokeapi.co/api/v2/version/26/" - } - }, - { - "rarity": 50, - "version": { - "name": "sun", - "url": "https://pokeapi.co/api/v2/version/27/" - } - }, - { - "rarity": 50, - "version": { - "name": "moon", - "url": "https://pokeapi.co/api/v2/version/28/" - } - }, - { - "rarity": 50, - "version": { - "name": "ultra-sun", - "url": "https://pokeapi.co/api/v2/version/29/" - } - }, - { - "rarity": 50, - "version": { - "name": "ultra-moon", - "url": "https://pokeapi.co/api/v2/version/30/" - } - } - ] - } - ], - "id": 132, - "is_default": true, - "location_area_encounters": "https://pokeapi.co/api/v2/pokemon/132/encounters", - "moves": [ - { - "move": { - "name": "transform", - "url": "https://pokeapi.co/api/v2/move/144/" - }, - "version_group_details": [ - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "red-blue", - "url": "https://pokeapi.co/api/v2/version-group/1/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "yellow", - "url": "https://pokeapi.co/api/v2/version-group/2/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "gold-silver", - "url": "https://pokeapi.co/api/v2/version-group/3/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "crystal", - "url": "https://pokeapi.co/api/v2/version-group/4/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "ruby-sapphire", - "url": "https://pokeapi.co/api/v2/version-group/5/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "emerald", - "url": "https://pokeapi.co/api/v2/version-group/6/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "firered-leafgreen", - "url": "https://pokeapi.co/api/v2/version-group/7/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "diamond-pearl", - "url": "https://pokeapi.co/api/v2/version-group/8/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "platinum", - "url": "https://pokeapi.co/api/v2/version-group/9/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "heartgold-soulsilver", - "url": "https://pokeapi.co/api/v2/version-group/10/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "black-white", - "url": "https://pokeapi.co/api/v2/version-group/11/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "colosseum", - "url": "https://pokeapi.co/api/v2/version-group/12/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "xd", - "url": "https://pokeapi.co/api/v2/version-group/13/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "black-2-white-2", - "url": "https://pokeapi.co/api/v2/version-group/14/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "x-y", - "url": "https://pokeapi.co/api/v2/version-group/15/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "omega-ruby-alpha-sapphire", - "url": "https://pokeapi.co/api/v2/version-group/16/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "sun-moon", - "url": "https://pokeapi.co/api/v2/version-group/17/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "ultra-sun-ultra-moon", - "url": "https://pokeapi.co/api/v2/version-group/18/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "lets-go-pikachu-lets-go-eevee", - "url": "https://pokeapi.co/api/v2/version-group/19/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "sword-shield", - "url": "https://pokeapi.co/api/v2/version-group/20/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "brilliant-diamond-and-shining-pearl", - "url": "https://pokeapi.co/api/v2/version-group/23/" - } - }, - { - "level_learned_at": 1, - "move_learn_method": { - "name": "level-up", - "url": "https://pokeapi.co/api/v2/move-learn-method/1/" - }, - "order": null, - "version_group": { - "name": "scarlet-violet", - "url": "https://pokeapi.co/api/v2/version-group/25/" - } - } - ] - } - ], - "name": "ditto", - "order": 214, - "past_abilities": [], - "past_types": [], - "species": { - "name": "ditto", - "url": "https://pokeapi.co/api/v2/pokemon-species/132/" - }, - "sprites": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/132.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/132.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/132.png", - "front_shiny_female": null, - "other": { - "dream_world": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/132.svg", - "front_female": null - }, - "home": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/132.png", - "front_shiny_female": null - }, - "official-artwork": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/132.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/132.png" - }, - "showdown": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/132.gif", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/shiny/132.gif", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/132.gif", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/132.gif", - "front_shiny_female": null - } - }, - "versions": { - "generation-i": { - "red-blue": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/132.png", - "back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/132.png", - "back_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/back/132.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/132.png", - "front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/132.png", - "front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/132.png" - }, - "yellow": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/132.png", - "back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/132.png", - "back_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/back/132.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/132.png", - "front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/132.png", - "front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/132.png" - } - }, - "generation-ii": { - "crystal": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/132.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/132.png", - "back_shiny_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/shiny/132.png", - "back_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/132.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/132.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/132.png", - "front_shiny_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/shiny/132.png", - "front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/132.png" - }, - "gold": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/132.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/132.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/132.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/132.png", - "front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/transparent/132.png" - }, - "silver": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/132.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/132.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/132.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/132.png", - "front_transparent": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/transparent/132.png" - } - }, - "generation-iii": { - "emerald": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/132.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/132.png" - }, - "firered-leafgreen": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/132.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/132.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/132.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/132.png" - }, - "ruby-sapphire": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/132.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/132.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/132.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/132.png" - } - }, - "generation-iv": { - "diamond-pearl": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/132.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/132.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/132.png", - "front_shiny_female": null - }, - "heartgold-soulsilver": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/132.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/132.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/132.png", - "front_shiny_female": null - }, - "platinum": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/132.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/132.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/132.png", - "front_shiny_female": null - } - }, - "generation-v": { - "black-white": { - "animated": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/132.gif", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/132.gif", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/132.gif", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/132.gif", - "front_shiny_female": null - }, - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/132.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/132.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/132.png", - "front_shiny_female": null - } - }, - "generation-vi": { - "omegaruby-alphasapphire": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/132.png", - "front_shiny_female": null - }, - "x-y": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/132.png", - "front_shiny_female": null - } - }, - "generation-vii": { - "icons": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/132.png", - "front_female": null - }, - "ultra-sun-ultra-moon": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/132.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/132.png", - "front_shiny_female": null - } - }, - "generation-viii": { - "icons": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/132.png", - "front_female": null - } - } - } - }, - "stats": [ - { - "base_stat": 48, - "effort": 1, - "stat": { - "name": "hp", - "url": "https://pokeapi.co/api/v2/stat/1/" - } - }, - { - "base_stat": 48, - "effort": 0, - "stat": { - "name": "attack", - "url": "https://pokeapi.co/api/v2/stat/2/" - } - }, - { - "base_stat": 48, - "effort": 0, - "stat": { - "name": "defense", - "url": "https://pokeapi.co/api/v2/stat/3/" - } - }, - { - "base_stat": 48, - "effort": 0, - "stat": { - "name": "special-attack", - "url": "https://pokeapi.co/api/v2/stat/4/" - } - }, - { - "base_stat": 48, - "effort": 0, - "stat": { - "name": "special-defense", - "url": "https://pokeapi.co/api/v2/stat/5/" - } - }, - { - "base_stat": 48, - "effort": 0, - "stat": { - "name": "speed", - "url": "https://pokeapi.co/api/v2/stat/6/" - } - } - ], - "types": [ - { - "slot": 1, - "type": { - "name": "normal", - "url": "https://pokeapi.co/api/v2/type/1/" - } - } - ], - "weight": 40 -} +{"id":132,"name":"ditto","base_experience":101,"height":3,"is_default":true,"order":214,"weight":40,"abilities":[{"is_hidden":false,"slot":1,"ability":{"name":"limber","url":"https://pokeapi.co/api/v2/ability/7/"}},{"is_hidden":true,"slot":3,"ability":{"name":"imposter","url":"https://pokeapi.co/api/v2/ability/150/"}}],"past_abilities":[{"generation":{"name":"generation-iv","url":"https://pokeapi.co/api/v2/generation/4/"},"abilities":[{"is_hidden":true,"slot":3,"ability":null}]}],"forms":[{"name":"ditto","url":"https://pokeapi.co/api/v2/pokemon-form/132/"}],"game_indices":[{"game_index":76,"version":{"name":"red","url":"https://pokeapi.co/api/v2/version/1/"}},{"game_index":76,"version":{"name":"blue","url":"https://pokeapi.co/api/v2/version/2/"}},{"game_index":76,"version":{"name":"yellow","url":"https://pokeapi.co/api/v2/version/3/"}},{"game_index":132,"version":{"name":"gold","url":"https://pokeapi.co/api/v2/version/4/"}},{"game_index":132,"version":{"name":"silver","url":"https://pokeapi.co/api/v2/version/5/"}},{"game_index":132,"version":{"name":"crystal","url":"https://pokeapi.co/api/v2/version/6/"}},{"game_index":132,"version":{"name":"ruby","url":"https://pokeapi.co/api/v2/version/7/"}},{"game_index":132,"version":{"name":"sapphire","url":"https://pokeapi.co/api/v2/version/8/"}},{"game_index":132,"version":{"name":"emerald","url":"https://pokeapi.co/api/v2/version/9/"}},{"game_index":132,"version":{"name":"firered","url":"https://pokeapi.co/api/v2/version/10/"}},{"game_index":132,"version":{"name":"leafgreen","url":"https://pokeapi.co/api/v2/version/11/"}},{"game_index":132,"version":{"name":"diamond","url":"https://pokeapi.co/api/v2/version/12/"}},{"game_index":132,"version":{"name":"pearl","url":"https://pokeapi.co/api/v2/version/13/"}},{"game_index":132,"version":{"name":"platinum","url":"https://pokeapi.co/api/v2/version/14/"}},{"game_index":132,"version":{"name":"heartgold","url":"https://pokeapi.co/api/v2/version/15/"}},{"game_index":132,"version":{"name":"soulsilver","url":"https://pokeapi.co/api/v2/version/16/"}},{"game_index":132,"version":{"name":"black","url":"https://pokeapi.co/api/v2/version/17/"}},{"game_index":132,"version":{"name":"white","url":"https://pokeapi.co/api/v2/version/18/"}},{"game_index":132,"version":{"name":"black-2","url":"https://pokeapi.co/api/v2/version/21/"}},{"game_index":132,"version":{"name":"white-2","url":"https://pokeapi.co/api/v2/version/22/"}},{"game_index":132,"version":{"name":"x","url":"https://pokeapi.co/api/v2/version/23/"}},{"game_index":132,"version":{"name":"y","url":"https://pokeapi.co/api/v2/version/24/"}},{"game_index":132,"version":{"name":"omega-ruby","url":"https://pokeapi.co/api/v2/version/25/"}},{"game_index":132,"version":{"name":"alpha-sapphire","url":"https://pokeapi.co/api/v2/version/26/"}},{"game_index":132,"version":{"name":"sun","url":"https://pokeapi.co/api/v2/version/27/"}},{"game_index":132,"version":{"name":"moon","url":"https://pokeapi.co/api/v2/version/28/"}},{"game_index":132,"version":{"name":"ultra-sun","url":"https://pokeapi.co/api/v2/version/29/"}},{"game_index":132,"version":{"name":"ultra-moon","url":"https://pokeapi.co/api/v2/version/30/"}},{"game_index":132,"version":{"name":"lets-go-pikachu","url":"https://pokeapi.co/api/v2/version/31/"}},{"game_index":132,"version":{"name":"lets-go-eevee","url":"https://pokeapi.co/api/v2/version/32/"}},{"game_index":132,"version":{"name":"sword","url":"https://pokeapi.co/api/v2/version/33/"}},{"game_index":132,"version":{"name":"shield","url":"https://pokeapi.co/api/v2/version/34/"}},{"game_index":132,"version":{"name":"the-isle-of-armor-sword","url":"https://pokeapi.co/api/v2/version/35/"}},{"game_index":132,"version":{"name":"the-crown-tundra-sword","url":"https://pokeapi.co/api/v2/version/36/"}},{"game_index":132,"version":{"name":"brilliant-diamond","url":"https://pokeapi.co/api/v2/version/37/"}},{"game_index":132,"version":{"name":"shining-pearl","url":"https://pokeapi.co/api/v2/version/38/"}},{"game_index":132,"version":{"name":"legends-arceus","url":"https://pokeapi.co/api/v2/version/39/"}},{"game_index":132,"version":{"name":"scarlet","url":"https://pokeapi.co/api/v2/version/40/"}},{"game_index":132,"version":{"name":"violet","url":"https://pokeapi.co/api/v2/version/41/"}},{"game_index":132,"version":{"name":"the-teal-mask-scarlet","url":"https://pokeapi.co/api/v2/version/42/"}},{"game_index":132,"version":{"name":"the-indigo-disk-scarlet","url":"https://pokeapi.co/api/v2/version/43/"}},{"game_index":76,"version":{"name":"red-japan","url":"https://pokeapi.co/api/v2/version/44/"}},{"game_index":76,"version":{"name":"green-japan","url":"https://pokeapi.co/api/v2/version/45/"}},{"game_index":76,"version":{"name":"blue-japan","url":"https://pokeapi.co/api/v2/version/46/"}},{"game_index":132,"version":{"name":"legends-za","url":"https://pokeapi.co/api/v2/version/47/"}},{"game_index":132,"version":{"name":"mega-dimension","url":"https://pokeapi.co/api/v2/version/48/"}}],"held_items":[{"item":{"name":"metal-powder","url":"https://pokeapi.co/api/v2/item/234/"},"version_details":[{"rarity":5,"version":{"name":"ruby","url":"https://pokeapi.co/api/v2/version/7/"}},{"rarity":5,"version":{"name":"sapphire","url":"https://pokeapi.co/api/v2/version/8/"}},{"rarity":5,"version":{"name":"emerald","url":"https://pokeapi.co/api/v2/version/9/"}},{"rarity":5,"version":{"name":"firered","url":"https://pokeapi.co/api/v2/version/10/"}},{"rarity":5,"version":{"name":"leafgreen","url":"https://pokeapi.co/api/v2/version/11/"}},{"rarity":5,"version":{"name":"diamond","url":"https://pokeapi.co/api/v2/version/12/"}},{"rarity":5,"version":{"name":"pearl","url":"https://pokeapi.co/api/v2/version/13/"}},{"rarity":5,"version":{"name":"platinum","url":"https://pokeapi.co/api/v2/version/14/"}},{"rarity":5,"version":{"name":"heartgold","url":"https://pokeapi.co/api/v2/version/15/"}},{"rarity":5,"version":{"name":"soulsilver","url":"https://pokeapi.co/api/v2/version/16/"}},{"rarity":5,"version":{"name":"black","url":"https://pokeapi.co/api/v2/version/17/"}},{"rarity":5,"version":{"name":"white","url":"https://pokeapi.co/api/v2/version/18/"}},{"rarity":5,"version":{"name":"black-2","url":"https://pokeapi.co/api/v2/version/21/"}},{"rarity":5,"version":{"name":"white-2","url":"https://pokeapi.co/api/v2/version/22/"}},{"rarity":5,"version":{"name":"x","url":"https://pokeapi.co/api/v2/version/23/"}},{"rarity":5,"version":{"name":"y","url":"https://pokeapi.co/api/v2/version/24/"}},{"rarity":5,"version":{"name":"omega-ruby","url":"https://pokeapi.co/api/v2/version/25/"}},{"rarity":5,"version":{"name":"alpha-sapphire","url":"https://pokeapi.co/api/v2/version/26/"}},{"rarity":5,"version":{"name":"sun","url":"https://pokeapi.co/api/v2/version/27/"}},{"rarity":5,"version":{"name":"moon","url":"https://pokeapi.co/api/v2/version/28/"}},{"rarity":5,"version":{"name":"ultra-sun","url":"https://pokeapi.co/api/v2/version/29/"}},{"rarity":5,"version":{"name":"ultra-moon","url":"https://pokeapi.co/api/v2/version/30/"}}]},{"item":{"name":"quick-powder","url":"https://pokeapi.co/api/v2/item/251/"},"version_details":[{"rarity":50,"version":{"name":"diamond","url":"https://pokeapi.co/api/v2/version/12/"}},{"rarity":50,"version":{"name":"pearl","url":"https://pokeapi.co/api/v2/version/13/"}},{"rarity":50,"version":{"name":"platinum","url":"https://pokeapi.co/api/v2/version/14/"}},{"rarity":50,"version":{"name":"heartgold","url":"https://pokeapi.co/api/v2/version/15/"}},{"rarity":50,"version":{"name":"soulsilver","url":"https://pokeapi.co/api/v2/version/16/"}},{"rarity":50,"version":{"name":"black","url":"https://pokeapi.co/api/v2/version/17/"}},{"rarity":50,"version":{"name":"white","url":"https://pokeapi.co/api/v2/version/18/"}},{"rarity":50,"version":{"name":"black-2","url":"https://pokeapi.co/api/v2/version/21/"}},{"rarity":50,"version":{"name":"white-2","url":"https://pokeapi.co/api/v2/version/22/"}},{"rarity":50,"version":{"name":"x","url":"https://pokeapi.co/api/v2/version/23/"}},{"rarity":50,"version":{"name":"y","url":"https://pokeapi.co/api/v2/version/24/"}},{"rarity":50,"version":{"name":"omega-ruby","url":"https://pokeapi.co/api/v2/version/25/"}},{"rarity":50,"version":{"name":"alpha-sapphire","url":"https://pokeapi.co/api/v2/version/26/"}},{"rarity":50,"version":{"name":"sun","url":"https://pokeapi.co/api/v2/version/27/"}},{"rarity":50,"version":{"name":"moon","url":"https://pokeapi.co/api/v2/version/28/"}},{"rarity":50,"version":{"name":"ultra-sun","url":"https://pokeapi.co/api/v2/version/29/"}},{"rarity":50,"version":{"name":"ultra-moon","url":"https://pokeapi.co/api/v2/version/30/"}}]}],"location_area_encounters":"https://pokeapi.co/api/v2/pokemon/132/encounters","moves":[{"move":{"name":"transform","url":"https://pokeapi.co/api/v2/move/144/"},"version_group_details":[{"level_learned_at":1,"version_group":{"name":"red-blue","url":"https://pokeapi.co/api/v2/version-group/1/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"yellow","url":"https://pokeapi.co/api/v2/version-group/2/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"gold-silver","url":"https://pokeapi.co/api/v2/version-group/3/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"crystal","url":"https://pokeapi.co/api/v2/version-group/4/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"ruby-sapphire","url":"https://pokeapi.co/api/v2/version-group/5/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"emerald","url":"https://pokeapi.co/api/v2/version-group/6/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"firered-leafgreen","url":"https://pokeapi.co/api/v2/version-group/7/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"diamond-pearl","url":"https://pokeapi.co/api/v2/version-group/8/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"platinum","url":"https://pokeapi.co/api/v2/version-group/9/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"heartgold-soulsilver","url":"https://pokeapi.co/api/v2/version-group/10/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"black-white","url":"https://pokeapi.co/api/v2/version-group/11/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"colosseum","url":"https://pokeapi.co/api/v2/version-group/12/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"xd","url":"https://pokeapi.co/api/v2/version-group/13/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"black-2-white-2","url":"https://pokeapi.co/api/v2/version-group/14/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"x-y","url":"https://pokeapi.co/api/v2/version-group/15/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"omega-ruby-alpha-sapphire","url":"https://pokeapi.co/api/v2/version-group/16/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"sun-moon","url":"https://pokeapi.co/api/v2/version-group/17/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"ultra-sun-ultra-moon","url":"https://pokeapi.co/api/v2/version-group/18/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"lets-go-pikachu-lets-go-eevee","url":"https://pokeapi.co/api/v2/version-group/19/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"sword-shield","url":"https://pokeapi.co/api/v2/version-group/20/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"brilliant-diamond-shining-pearl","url":"https://pokeapi.co/api/v2/version-group/23/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"scarlet-violet","url":"https://pokeapi.co/api/v2/version-group/25/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"red-green-japan","url":"https://pokeapi.co/api/v2/version-group/28/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":1,"version_group":{"name":"blue-japan","url":"https://pokeapi.co/api/v2/version-group/29/"},"move_learn_method":{"name":"level-up","url":"https://pokeapi.co/api/v2/move-learn-method/1/"},"order":null},{"level_learned_at":0,"version_group":{"name":"champions","url":"https://pokeapi.co/api/v2/version-group/32/"},"move_learn_method":{"name":"train","url":"https://pokeapi.co/api/v2/move-learn-method/12/"},"order":null}]}],"species":{"name":"ditto","url":"https://pokeapi.co/api/v2/pokemon-species/132/"},"sprites":{"other":{"home":{"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/132.png","front_shiny_female":null},"showdown":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/shiny/132.gif","back_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/132.gif","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/132.gif","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/132.gif","back_shiny_female":null,"front_shiny_female":null},"dream_world":{"front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/132.svg"},"official-artwork":{"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/132.png"}},"versions":{"generation-i":{"yellow":{"back_gray":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/132.png","front_gray":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/132.png","back_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/back/132.png","front_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/transparent/132.png"},"red-blue":{"back_gray":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/132.png","front_gray":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/132.png","back_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/back/132.png","front_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/transparent/132.png"}},"generation-v":{"icons":{"animated":{"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/icons/animated/132.png"},"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/icons/132.png"},"black-white":{"animated":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/132.gif","back_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/132.gif","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/132.gif","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/132.gif","back_shiny_female":null,"front_shiny_female":null},"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/132.png","back_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/132.png","back_shiny_female":null,"front_shiny_female":null}},"generation-ii":{"gold":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/132.png","front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/132.png","front_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/transparent/132.png"},"silver":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/132.png","front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/132.png","front_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/transparent/132.png"},"crystal":{"animated":{"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/animated/shiny/132.gif","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/animated/132.gif"},"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/132.png","front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/132.png","back_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/132.png","front_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/132.png","back_shiny_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/back/shiny/132.png","front_shiny_transparent":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/transparent/shiny/132.png"}},"generation-iv":{"platinum":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/132.png","back_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/132.png","back_shiny_female":null,"front_shiny_female":null},"diamond-pearl":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/132.png","back_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/132.png","back_shiny_female":null,"front_shiny_female":null},"heartgold-soulsilver":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/132.png","back_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/132.png","back_shiny_female":null,"front_shiny_female":null}},"generation-ix":{"scarlet-violet":{"front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ix/scarlet-violet/132.png"}},"generation-vi":{"x-y":{"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/132.png","front_shiny_female":null},"omegaruby-alphasapphire":{"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/132.png","front_shiny_female":null}},"generation-iii":{"emerald":{"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/132.png"},"ruby-sapphire":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/132.png","front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/132.png"},"firered-leafgreen":{"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/132.png","front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/132.png","front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/132.png"}},"generation-vii":{"icons":{"front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/132.png"},"ultra-sun-ultra-moon":{"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/132.png","front_shiny_female":null}},"generation-viii":{"icons":{"front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/132.png"},"brilliant-diamond-shining-pearl":{"front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/brilliant-diamond-shining-pearl/132.png"}}},"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/132.png","back_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/132.png","back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/132.png","front_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png","back_shiny_female":null,"front_shiny_female":null},"cries":{"latest":"https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/132.ogg","legacy":"https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/132.ogg"},"stats":[{"base_stat":48,"effort":1,"stat":{"name":"hp","url":"https://pokeapi.co/api/v2/stat/1/"}},{"base_stat":48,"effort":0,"stat":{"name":"attack","url":"https://pokeapi.co/api/v2/stat/2/"}},{"base_stat":48,"effort":0,"stat":{"name":"defense","url":"https://pokeapi.co/api/v2/stat/3/"}},{"base_stat":48,"effort":0,"stat":{"name":"special-attack","url":"https://pokeapi.co/api/v2/stat/4/"}},{"base_stat":48,"effort":0,"stat":{"name":"special-defense","url":"https://pokeapi.co/api/v2/stat/5/"}},{"base_stat":48,"effort":0,"stat":{"name":"speed","url":"https://pokeapi.co/api/v2/stat/6/"}}],"past_stats":[{"generation":{"name":"generation-i","url":"https://pokeapi.co/api/v2/generation/1/"},"stats":[{"base_stat":48,"effort":0,"stat":{"name":"special","url":"https://pokeapi.co/api/v2/stat/9/"}}]}],"types":[{"slot":1,"type":{"name":"normal","url":"https://pokeapi.co/api/v2/type/1/"}}],"past_types":[]} \ No newline at end of file diff --git a/src/data/operations/berries.json b/src/data/operations/berries.json index 299588b..d9b7e12 100644 --- a/src/data/operations/berries.json +++ b/src/data/operations/berries.json @@ -1,275 +1,285 @@ [ - { - "name": "Berries", - "description": "Berries are small fruits that can provide HP and status condition restoration, stat enhancement, and even damage negation when eaten by Pokémon. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Berry) for greater detail.", - "exampleRequest": "/v2/berry/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "cheri", - "growth_time": 3, - "max_harvest": 5, - "natural_gift_power": 60, - "size": 20, - "smoothness": 25, - "soil_dryness": 15, - "firmness": { - "name": "soft", - "url": "$BASE_URL/v2/berry-firmness/2/" - }, - "flavors": [{ - "potency": 10, - "flavor": { - "name": "spicy", - "url": "$BASE_URL/v2/berry-flavor/1/" - } - }], - "item": { - "name": "cheri-berry", - "url": "$BASE_URL/v2/item/126/" - }, - "natural_gift_type": { - "name": "fire", - "url": "$BASE_URL/v2/type/10/" + { + "name": "Berries", + "description": "Berries are small fruits that can provide HP and status condition restoration, stat enhancement, and even damage negation when eaten by Pokémon. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Berry) for greater detail.", + "exampleRequest": "/v2/berry/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "cheri", + "growth_time": 3, + "max_harvest": 5, + "natural_gift_power": 60, + "size": 20, + "smoothness": 25, + "soil_dryness": 15, + "firmness": { + "name": "soft", + "url": "$BASE_URL/v2/berry-firmness/2/" + }, + "flavors": [ + { + "potency": 10, + "flavor": { + "name": "spicy", + "url": "$BASE_URL/v2/berry-flavor/1/" + } + } + ], + "item": { + "name": "cheri-berry", + "url": "$BASE_URL/v2/item/126/" + }, + "natural_gift_type": { + "name": "fire", + "url": "$BASE_URL/v2/type/10/" + } + }, + "responseModels": [ + { + "name": "Berry", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "growth_time", + "description": "Time it takes the tree to grow one stage, in hours. Berry trees go through four of these growth stages before they can be picked.", + "type": "integer" + }, + { + "name": "max_harvest", + "description": "The maximum number of these berries that can grow on one tree in Generation IV.", + "type": "integer" + }, + { + "name": "natural_gift_power", + "description": "The power of the move \"Natural Gift\" when used with this Berry.", + "type": "integer" + }, + { + "name": "size", + "description": "The size of this Berry, in millimeters.", + "type": "integer" + }, + { + "name": "smoothness", + "description": "The smoothness of this Berry, used in making Pokéblocks or Poffins.", + "type": "integer" + }, + { + "name": "soil_dryness", + "description": "The speed at which this Berry dries out the soil as it grows. A higher rate means the soil dries more quickly.", + "type": "integer" + }, + { + "name": "firmness", + "description": "The firmness of this berry, used in making Pokéblocks or Poffins.", + "type": { + "type": "NamedAPIResource", + "of": "BerryFirmness" + } + }, + { + "name": "flavors", + "description": "A list of references to each flavor a berry can have and the potency of each of those flavors in regard to this berry.", + "type": { + "type": "list", + "of": "BerryFlavorMap" } - }, - "responseModels": [ - { - "name": "Berry", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "growth_time", - "description": "Time it takes the tree to grow one stage, in hours. Berry trees go through four of these growth stages before they can be picked.", - "type": "integer" - }, - { - "name": "max_harvest", - "description": "The maximum number of these berries that can grow on one tree in Generation IV.", - "type": "integer" - }, - { - "name": "natural_gift_power", - "description": "The power of the move \"Natural Gift\" when used with this Berry.", - "type": "integer" - }, - { - "name": "size", - "description": "The size of this Berry, in millimeters.", - "type": "integer" - }, - { - "name": "smoothness", - "description": "The smoothness of this Berry, used in making Pokéblocks or Poffins.", - "type": "integer" - }, - { - "name": "soil_dryness", - "description": "The speed at which this Berry dries out the soil as it grows. A higher rate means the soil dries more quickly.", - "type": "integer" - }, - { - "name": "firmness", - "description": "The firmness of this berry, used in making Pokéblocks or Poffins.", - "type": { - "type": "NamedAPIResource", - "of": "BerryFirmness" - } - }, - { - "name": "flavors", - "description": "A list of references to each flavor a berry can have and the potency of each of those flavors in regard to this berry.", - "type": { - "type": "list", - "of": "BerryFlavorMap" - } - }, - { - "name": "item", - "description": "Berries are actually items. This is a reference to the item specific data for this berry.", - "type": { - "type": "NamedAPIResource", - "of": "Item" - } - }, - { - "name": "natural_gift_type", - "description": "The type inherited by \"Natural Gift\" when used with this Berry.", - "type": { - "type": "NamedAPIResource", - "of": "Type" - } - } - ] - }, - { - "name": "BerryFlavorMap", - "fields": [ - { - "name": "potency", - "description": "How powerful the referenced flavor is for this berry.", - "type": "integer" - }, - { - "name": "flavor", - "description": "The referenced berry flavor.", - "type": { - "type": "NamedAPIResource", - "of": "BerryFlavor" - } - } - ] + }, + { + "name": "item", + "description": "Berries are actually items. This is a reference to the item specific data for this berry.", + "type": { + "type": "NamedAPIResource", + "of": "Item" + } + }, + { + "name": "natural_gift_type", + "description": "The type inherited by \"Natural Gift\" when used with this Berry.", + "type": { + "type": "NamedAPIResource", + "of": "Type" + } + } + ] + }, + { + "name": "BerryFlavorMap", + "fields": [ + { + "name": "potency", + "description": "How powerful the referenced flavor is for this berry.", + "type": "integer" + }, + { + "name": "flavor", + "description": "The referenced berry flavor.", + "type": { + "type": "NamedAPIResource", + "of": "BerryFlavor" } + } ] + } + ] + }, + { + "name": "Berry Firmnesses", + "description": "Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness) for greater detail.", + "exampleRequest": "/v2/berry-firmness/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "very-soft", + "berries": [ + { + "name": "pecha", + "url": "$BASE_URL/v2/berry/3/" + } + ], + "names": [ + { + "name": "Very Soft", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Berry Firmnesses", - "description": "Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmness) for greater detail.", - "exampleRequest": "/v2/berry-firmness/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "very-soft", - "berries": [{ - "name": "pecha", - "url": "$BASE_URL/v2/berry/3/" - }], - "names": [{ - "name": "Very Soft", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "BerryFirmness", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "berries", - "description": "A list of the berries with this firmness.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Berry" - } - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + "responseModels": [ + { + "name": "BerryFirmness", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "berries", + "description": "A list of the berries with this firmness.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Berry" + } } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + } ] + } + ] + }, + { + "name": "Berry Flavors", + "description": "Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their [nature](#natures). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Flavor) for greater detail.", + "exampleRequest": "/v2/berry-flavor/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "spicy", + "berries": [ + { + "potency": 10, + "berry": { + "name": "rowap", + "url": "$BASE_URL/v2/berry/64/" + } + } + ], + "contest_type": { + "name": "cool", + "url": "$BASE_URL/v2/contest-type/1/" + }, + "names": [ + { + "name": "Spicy", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Berry Flavors", - "description": "Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their [nature](#natures). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Flavor) for greater detail.", - "exampleRequest": "/v2/berry-flavor/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "spicy", - "berries": [{ - "potency": 10, - "berry": { - "name": "rowap", - "url": "$BASE_URL/v2/berry/64/" - } - }], - "contest_type": { - "name": "cool", - "url": "$BASE_URL/v2/contest-type/1/" - }, - "names": [{ - "name": "Spicy", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "BerryFlavor", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "berries", - "description": "A list of the berries with this flavor.", - "type": { - "type": "list", - "of": "FlavorBerryMap" - } - }, - { - "name": "contest_type", - "description": "The contest type that correlates with this berry flavor.", - "type": { - "type": "NamedAPIResource", - "of": "ContestType" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] - }, - { - "name": "FlavorBerryMap", - "fields": [ - { - "name": "potency", - "description": "How powerful the referenced flavor is for this berry.", - "type": "integer" - }, - { - "name": "berry", - "description": "The berry with the referenced flavor.", - "type": { - "type": "NamedAPIResource", - "of": "Berry" - } - } - ] + "responseModels": [ + { + "name": "BerryFlavor", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "berries", + "description": "A list of the berries with this flavor.", + "type": { + "type": "list", + "of": "FlavorBerryMap" + } + }, + { + "name": "contest_type", + "description": "The contest type that correlates with this berry flavor.", + "type": { + "type": "NamedAPIResource", + "of": "ContestType" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + } + ] + }, + { + "name": "FlavorBerryMap", + "fields": [ + { + "name": "potency", + "description": "How powerful the referenced flavor is for this berry.", + "type": "integer" + }, + { + "name": "berry", + "description": "The berry with the referenced flavor.", + "type": { + "type": "NamedAPIResource", + "of": "Berry" } + } ] - } + } + ] + } ] diff --git a/src/data/operations/contests.json b/src/data/operations/contests.json index e98455f..b032412 100644 --- a/src/data/operations/contests.json +++ b/src/data/operations/contests.json @@ -1,197 +1,243 @@ [ - { - "name": "Contest Types", - "description": "Contest types are categories judges used to weigh a Pokémon's condition in Pokémon contests. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Contest_condition) for greater detail.", - "exampleRequest": "/v2/contest-type/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "cool", - "berry_flavor": { - "name": "spicy", - "url": "$BASE_URL/v2/berry-flavor/1/" - }, - "names": [{ - "name": "Cool", - "color": "Red", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "ContestType", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "berry_flavor", - "description": "The berry flavor that correlates with this contest type.", - "type": { - "type": "NamedAPIResource", - "of": "BerryFlavor" - } - }, - { - "name": "names", - "description": "The name of this contest type listed in different languages.", - "type": { - "type": "list", - "of": "ContestName" - } - } - ] - }, - { - "name": "ContestName", - "fields": [ - { - "name": "name", - "description": "The name for this contest.", - "type": "string" - }, - { - "name": "color", - "description": "The color associated with this contest's name.", - "type": "string" - }, - { - "name": "language", - "description": "The language that this name is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - } - ] + { + "name": "Contest Types", + "description": "Contest types are categories judges used to weigh a Pokémon's condition in Pokémon contests. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Contest_condition) for greater detail.", + "exampleRequest": "/v2/contest-type/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "cool", + "berry_flavor": { + "name": "spicy", + "url": "$BASE_URL/v2/berry-flavor/1/" + }, + "names": [ + { + "name": "Cool", + "color": "Red", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] + }, + "responseModels": [ + { + "name": "ContestType", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "berry_flavor", + "description": "The berry flavor that correlates with this contest type.", + "type": { + "type": "NamedAPIResource", + "of": "BerryFlavor" + } + }, + { + "name": "names", + "description": "The name of this contest type listed in different languages.", + "type": { + "type": "list", + "of": "ContestName" } + } ] + }, + { + "name": "ContestName", + "fields": [ + { + "name": "name", + "description": "The name for this contest.", + "type": "string" + }, + { + "name": "color", + "description": "The color associated with this contest's name.", + "type": "string" + }, + { + "name": "language", + "description": "The language that this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } + ] + } + ] + }, + { + "name": "Contest Effects", + "description": "Contest effects refer to the effects of moves when used in contests.", + "exampleRequest": "/v2/contest-effect/{id}/", + "exampleResponse": { + "id": 1, + "appeal": 4, + "jam": 0, + "effect_entries": [ + { + "effect": "Gives a high number of appeal points wth no other effects.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "flavor_text_entries": [ + { + "flavor_text": "A highly appealing move.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Contest Effects", - "description": "Contest effects refer to the effects of moves when used in contests.", - "exampleRequest": "/v2/contest-effect/{id}/", - "exampleResponse": { - "id": 1, - "appeal": 4, - "jam": 0, - "effect_entries": [{ - "effect": "Gives a high number of appeal points wth no other effects.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "flavor_text_entries": [{ - "flavor_text": "A highly appealing move.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "ContestEffect", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "appeal", - "description": "The base number of hearts the user of this move gets.", - "type": "integer" - }, - { - "name": "jam", - "description": "The base number of hearts the user's opponent loses.", - "type": "integer" - }, - { - "name": "effect_entries", - "description": "The result of this contest effect listed in different languages.", - "type": { - "type": "list", - "of": "Effect" - } - }, - { - "name": "flavor_text_entries", - "description": "The flavor text of this contest effect listed in different languages.", - "type": { - "type": "list", - "of": "FlavorText" - } - } - ] + "responseModels": [ + { + "name": "ContestEffect", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "appeal", + "description": "The base number of hearts the user of this move gets.", + "type": "integer" + }, + { + "name": "jam", + "description": "The base number of hearts the user's opponent loses.", + "type": "integer" + }, + { + "name": "effect_entries", + "description": "The result of this contest effect listed in different languages.", + "type": { + "type": "list", + "of": "Effect" + } + }, + { + "name": "flavor_text_entries", + "description": "The flavor text of this contest effect listed in different languages.", + "type": { + "type": "list", + "of": "ContestEffectFlavorText" } + } ] + }, + { + "name": "ContestEffectFlavorText", + "fields": [ + { + "name": "flavor_text", + "description": "The localized flavor text for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } + ] + } + ] + }, + { + "name": "Super Contest Effects", + "description": "Super contest effects refer to the effects of moves when used in super contests.", + "exampleRequest": "/v2/super-contest-effect/{id}/", + "exampleResponse": { + "id": 1, + "appeal": 2, + "flavor_text_entries": [ + { + "flavor_text": "Enables the user to perform first in the next turn.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "moves": [ + { + "name": "agility", + "url": "$BASE_URL/v2/move/97/" + } + ] }, - { - "name": "Super Contest Effects", - "description": "Super contest effects refer to the effects of moves when used in super contests.", - "exampleRequest": "/v2/super-contest-effect/{id}/", - "exampleResponse": { - "id": 1, - "appeal": 2, - "flavor_text_entries": [{ - "flavor_text": "Enables the user to perform first in the next turn.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "moves": [{ - "name": "agility", - "url": "$BASE_URL/v2/move/97/" - }] - }, - "responseModels": [ - { - "name": "SuperContestEffect", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "appeal", - "description": "The level of appeal this super contest effect has.", - "type": "integer" - }, - { - "name": "flavor_text_entries", - "description": "The flavor text of this super contest effect listed in different languages.", - "type": { - "type": "list", - "of": "FlavorText" - } - }, - { - "name": "moves", - "description": "A list of moves that have the effect when used in super contests.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - } - ] + "responseModels": [ + { + "name": "SuperContestEffect", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "appeal", + "description": "The level of appeal this super contest effect has.", + "type": "integer" + }, + { + "name": "flavor_text_entries", + "description": "The flavor text of this super contest effect listed in different languages.", + "type": { + "type": "list", + "of": "SuperContestEffectFlavorText" + } + }, + { + "name": "moves", + "description": "A list of moves that have the effect when used in super contests.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + } + ] + }, + { + "name": "SuperContestEffectFlavorText", + "fields": [ + { + "name": "flavor_text", + "description": "The localized flavor text for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" } + } ] - } + } + ] + } ] diff --git a/src/data/operations/encounters.json b/src/data/operations/encounters.json index 8598d30..85b0773 100644 --- a/src/data/operations/encounters.json +++ b/src/data/operations/encounters.json @@ -1,161 +1,170 @@ [ - { - "name": "Encounter Methods", - "description": "Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Wild_Pok%C3%A9mon) for greater detail.", - "exampleRequest": "/v2/encounter-method/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "walk", - "order": 1, - "names": [{ - "name": "Walking in tall grass or a cave", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "EncounterMethod", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "order", - "description": "A good value for sorting.", - "type": "integer" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + { + "name": "Encounter Methods", + "description": "Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Wild_Pok%C3%A9mon) for greater detail.", + "exampleRequest": "/v2/encounter-method/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "walk", + "order": 1, + "names": [ + { + "name": "Walking in tall grass or a cave", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] + }, + "responseModels": [ + { + "name": "EncounterMethod", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "order", + "description": "A good value for sorting.", + "type": "integer" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + } ] - }, - { - "name": "Encounter Conditions", - "description": "Conditions which affect what pokemon might appear in the wild, e.g., day or night.", - "exampleRequest": "/v2/encounter-condition/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "swarm", - "values": [{ - "name": "swarm-yes", - "url": "$BASE_URL/v2/encounter-condition-value/1/" - }, { - "name": "swarm-no", - "url": "$BASE_URL/v2/encounter-condition-value/2/" - }], - "names": [{ - "name": "Schwarm", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }] + } + ] + }, + { + "name": "Encounter Conditions", + "description": "Conditions which affect what pokemon might appear in the wild, e.g., day or night.", + "exampleRequest": "/v2/encounter-condition/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "swarm", + "values": [ + { + "name": "swarm-yes", + "url": "$BASE_URL/v2/encounter-condition-value/1/" }, - "responseModels": [ - { - "name": "EncounterCondition", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "values", - "description": "A list of possible values for this encounter condition.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "EncounterConditionValue" - } - } - } - ] + { + "name": "swarm-no", + "url": "$BASE_URL/v2/encounter-condition-value/2/" + } + ], + "names": [ + { + "name": "Schwarm", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ] + }, + "responseModels": [ + { + "name": "EncounterCondition", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + }, + { + "name": "values", + "description": "A list of possible values for this encounter condition.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "EncounterConditionValue" + } + } + } ] + } + ] + }, + { + "name": "Encounter Condition Values", + "description": "Encounter condition values are the various states that an encounter condition can have, i.e., time of day can be either day or night.", + "exampleRequest": "/v2/encounter-condition-value/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "swarm-yes", + "condition": { + "name": "swarm", + "url": "$BASE_URL/v2/encounter-condition/1/" + }, + "names": [ + { + "name": "Während eines Schwarms", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ] }, - { - "name": "Encounter Condition Values", - "description": "Encounter condition values are the various states that an encounter condition can have, i.e., time of day can be either day or night.", - "exampleRequest": "/v2/encounter-condition-value/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "swarm-yes", - "condition": { - "name": "swarm", - "url": "$BASE_URL/v2/encounter-condition/1/" - }, - "names": [{ - "name": "Während eines Schwarms", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }] - }, - "responseModels": [ - { - "name": "EncounterConditionValue", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "condition", - "description": "The condition this encounter condition value pertains to.", - "type": { - "type": "NamedAPIResource", - "of": "EncounterCondition" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + "responseModels": [ + { + "name": "EncounterConditionValue", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "condition", + "description": "The condition this encounter condition value pertains to.", + "type": { + "type": "NamedAPIResource", + "of": "EncounterCondition" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + } ] - } + } + ] + } ] diff --git a/src/data/operations/evolution.json b/src/data/operations/evolution.json index 9462490..7a3188f 100644 --- a/src/data/operations/evolution.json +++ b/src/data/operations/evolution.json @@ -1,331 +1,366 @@ [ - { - "name": "Evolution Chains", - "description": "Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution conditions for each as well as Pokémon they can evolve into up through the hierarchy.", - "exampleRequest": "/v2/evolution-chain/{id}/", - "exampleResponse": { - "id": 7, - "baby_trigger_item": null, - "chain": { - "is_baby": false, - "species": { - "name": "rattata", - "url": "$BASE_URL/v2/pokemon-species/19/" - }, - "evolution_details": null, - "evolves_to": [{ - "is_baby": false, - "species": { - "name": "raticate", - "url": "$BASE_URL/v2/pokemon-species/20/" - }, - "evolution_details": [{ - "item": null, - "trigger": { - "name": "level-up", - "url": "$BASE_URL/v2/evolution-trigger/1/" - }, - "gender": null, - "held_item": null, - "known_move": null, - "known_move_type": null, - "location": null, - "min_level": 20, - "min_happiness": null, - "min_beauty": null, - "min_affection": null, - "needs_overworld_rain": false, - "party_species": null, - "party_type": null, - "relative_physical_stats": null, - "time_of_day": "", - "trade_species": null, - "turn_upside_down": false - }], - "evolves_to": [] - }] - } + { + "name": "Evolution Chains", + "description": "Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution conditions for each as well as Pokémon they can evolve into up through the hierarchy.", + "exampleRequest": "/v2/evolution-chain/{id}/", + "exampleResponse": { + "id": 7, + "baby_trigger_item": null, + "chain": { + "is_baby": false, + "species": { + "name": "rattata", + "url": "$BASE_URL/v2/pokemon-species/19/" }, - "responseModels": [ - { - "name": "EvolutionChain", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "baby_trigger_item", - "description": "The item that a Pokémon would be holding when mating that would trigger the egg hatching a baby Pokémon rather than a basic Pokémon.", - "type": { - "type": "NamedAPIResource", - "of": "Item" - } - }, - { - "name": "chain", - "description": "The base chain link object. Each link contains evolution details for a Pokémon in the chain. Each link references the next Pokémon in the natural evolution order.", - "type": "ChainLink" - } - ] + "evolution_details": null, + "evolves_to": [ + { + "is_baby": false, + "species": { + "name": "raticate", + "url": "$BASE_URL/v2/pokemon-species/20/" }, - { - "name": "ChainLink", - "fields": [ - { - "name": "is_baby", - "description": "Whether or not this link is for a baby Pokémon. This would only ever be true on the base link.", - "type": "boolean" - }, - { - "name": "species", - "description": "The Pokémon species at this point in the evolution chain.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - }, - { - "name": "evolution_details", - "description": "All details regarding the specific details of the referenced Pokémon species evolution.", - "type": { - "type": "list", - "of": "EvolutionDetail" - } - }, - { - "name": "evolves_to", - "description": "A List of chain objects.", - "type": { - "type": "list", - "of": "ChainLink" - } - } - ] - }, - { - "name": "EvolutionDetail", - "fields": [ - { - "name": "item", - "description": "The item required to cause evolution this into Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "Item" - } - }, - { - "name": "trigger", - "description": "The type of event that triggers evolution into this Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "EvolutionTrigger" - } - }, - { - "name": "gender", - "description": "The id of the gender of the evolving Pokémon species must be in order to evolve into this Pokémon species.", - "type": "integer" - }, - { - "name": "held_item", - "description": "The item the evolving Pokémon species must be holding during the evolution trigger event to evolve into this Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "Item" - } - }, - { - "name": "known_move", - "description": "The move that must be known by the evolving Pokémon species during the evolution trigger event in order to evolve into this Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "Move" - } - }, - { - "name": "known_move_type", - "description": "The evolving Pokémon species must know a move with this type during the evolution trigger event in order to evolve into this Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "Type" - } - }, - { - "name": "location", - "description": "The location the evolution must be triggered at.", - "type": { - "type": "NamedAPIResource", - "of": "Location" - } - }, - { - "name": "min_level", - "description": "The minimum required level of the evolving Pokémon species to evolve into this Pokémon species.", - "type": "integer" - }, - { - "name": "min_happiness", - "description": "The minimum required level of happiness the evolving Pokémon species to evolve into this Pokémon species.", - "type": "integer" - }, - { - "name": "min_beauty", - "description": "The minimum required level of beauty the evolving Pokémon species to evolve into this Pokémon species.", - "type": "integer" - }, - { - "name": "min_affection", - "description": "The minimum required level of affection the evolving Pokémon species to evolve into this Pokémon species.", - "type": "integer" - }, - { - "name": "needs_multiplayer", - "description": "Whether or not multiplayer link play is needed to evolve into this Pokémon species (e.g. Union Circle).", - "type": "boolean" - }, - { - "name": "needs_overworld_rain", - "description": "Whether or not it must be raining in the overworld to cause evolution this Pokémon species.", - "type": "boolean" - }, - { - "name": "party_species", - "description": "The Pokémon species that must be in the players party in order for the evolving Pokémon species to evolve into this Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - }, - { - "name": "party_type", - "description": "The player must have a Pokémon of this type in their party during the evolution trigger event in order for the evolving Pokémon species to evolve into this Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "Type" - } - }, - { - "name": "relative_physical_stats", - "description": "The required relation between the Pokémon's Attack and Defense stats. 1 means Attack > Defense. 0 means Attack = Defense. -1 means Attack < Defense.", - "type": "integer" - }, - { - "name": "time_of_day", - "description": "The required time of day. Day or night.", - "type": "string" - }, - { - "name": "trade_species", - "description": "Pokémon species for which this one must be traded.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - }, - { - "name": "turn_upside_down", - "description": "Whether or not the 3DS needs to be turned upside-down as this Pokémon levels up.", - "type": "boolean" - }, - { - "name": "region", - "description": "The required region in which this evolution can occur.", - "type": { - "type": "NamedAPIResource", - "of": "Region" - } - }, - { - "name": "base_form", - "description": "The required form for which this evolution can occur.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - }, - { - "name": "used_move", - "description": "The move that must be used by the evolving Pokémon species during the evolution trigger event in order to evolve into this Pokémon species.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonMove" - } - }, - { - "name": "min_move_count", - "description": "The minimum number of times a move must be used in order to evolve into this Pokémon species.", - "type": "integer" - }, - { - "name": "min_steps", - "description": "The minimum number of steps that must be taken in order to evolve into this Pokémon species.", - "type": "integer" - }, - { - "name": "min_damage_taken", - "description": "The minimum amount of damage taken during the evolution trigger event in order to evolve into this Pokémon species.", - "type": "integer" - } - ] + "evolution_details": [ + { + "item": null, + "trigger": { + "name": "level-up", + "url": "$BASE_URL/v2/evolution-trigger/1/" + }, + "gender": null, + "held_item": null, + "known_move": null, + "known_move_type": null, + "location": null, + "min_level": 20, + "min_happiness": null, + "min_beauty": null, + "min_affection": null, + "near_special_rock": false, + "needs_overworld_rain": false, + "party_species": null, + "party_type": null, + "relative_physical_stats": null, + "time_of_day": "", + "trade_species": null, + "turn_upside_down": false + } + ], + "evolves_to": [] + } + ] + } + }, + "responseModels": [ + { + "name": "EvolutionChain", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "baby_trigger_item", + "description": "The item that a Pokémon would be holding when mating that would trigger the egg hatching a baby Pokémon rather than a basic Pokémon.", + "type": { + "type": "NamedAPIResource", + "of": "Item" + } + }, + { + "name": "chain", + "description": "The base chain link object. Each link contains evolution details for a Pokémon in the chain. Each link references the next Pokémon in the natural evolution order.", + "type": "ChainLink" + } + ] + }, + { + "name": "ChainLink", + "fields": [ + { + "name": "is_baby", + "description": "Whether or not this link is for a baby Pokémon. This would only ever be true on the base link.", + "type": "boolean" + }, + { + "name": "species", + "description": "The Pokémon species at this point in the evolution chain.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } + }, + { + "name": "evolution_details", + "description": "All details regarding the specific details of the referenced Pokémon species evolution.", + "type": { + "type": "list", + "of": "EvolutionDetail" } + }, + { + "name": "evolves_to", + "description": "A List of chain objects.", + "type": { + "type": "list", + "of": "ChainLink" + } + } ] + }, + { + "name": "EvolutionDetail", + "fields": [ + { + "name": "version_group_id", + "description": "The version group in which the evolution was introduced.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + }, + { + "name": "is_default", + "description": "Whether the evolution is considered as the expected evolution in a main series game. Each unique Pokémon variety of a line capable of evolution should have exactly one 'default' evolution. For example, the Meowth species has three default evolutions as there are three distinct varieties it can evolve into: Persian, Alolan Persian, and Perrserker.", + "type": "boolean" + }, + { + "name": "item", + "description": "The item required to cause evolution this into Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "Item" + } + }, + { + "name": "trigger", + "description": "The type of event that triggers evolution into this Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "EvolutionTrigger" + } + }, + { + "name": "gender", + "description": "The id of the gender of the evolving Pokémon species must be in order to evolve into this Pokémon species.", + "type": "integer" + }, + { + "name": "held_item", + "description": "The item the evolving Pokémon species must be holding during the evolution trigger event to evolve into this Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "Item" + } + }, + { + "name": "known_move", + "description": "The move that must be known by the evolving Pokémon species during the evolution trigger event in order to evolve into this Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "Move" + } + }, + { + "name": "known_move_type", + "description": "The evolving Pokémon species must know a move with this type during the evolution trigger event in order to evolve into this Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "Type" + } + }, + { + "name": "location", + "description": "The location the evolution must be triggered at.", + "type": { + "type": "NamedAPIResource", + "of": "Location" + } + }, + { + "name": "min_level", + "description": "The minimum required level of the evolving Pokémon species to evolve into this Pokémon species.", + "type": "integer" + }, + { + "name": "min_happiness", + "description": "The minimum required level of happiness the evolving Pokémon species to evolve into this Pokémon species.", + "type": "integer" + }, + { + "name": "min_beauty", + "description": "The minimum required level of beauty the evolving Pokémon species to evolve into this Pokémon species.", + "type": "integer" + }, + { + "name": "min_affection", + "description": "The minimum required level of affection the evolving Pokémon species to evolve into this Pokémon species.", + "type": "integer" + }, + { + "name": "near_special_rock", + "description": "Whether or not you need to be near a Moss Rock or Icy Rock to evolve into this Pokémon species.", + "type": "boolean" + }, + { + "name": "needs_multiplayer", + "description": "Whether or not multiplayer link play is needed to evolve into this Pokémon species (e.g. Union Circle).", + "type": "boolean" + }, + { + "name": "needs_overworld_rain", + "description": "Whether or not it must be raining in the overworld to cause evolution this Pokémon species.", + "type": "boolean" + }, + { + "name": "party_species", + "description": "The Pokémon species that must be in the players party in order for the evolving Pokémon species to evolve into this Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } + }, + { + "name": "party_type", + "description": "The player must have a Pokémon of this type in their party during the evolution trigger event in order for the evolving Pokémon species to evolve into this Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "Type" + } + }, + { + "name": "relative_physical_stats", + "description": "The required relation between the Pokémon's Attack and Defense stats. 1 means Attack > Defense. 0 means Attack = Defense. -1 means Attack < Defense.", + "type": "integer" + }, + { + "name": "time_of_day", + "description": "The required time of day. Day or night.", + "type": "string" + }, + { + "name": "trade_species", + "description": "Pokémon species for which this one must be traded.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } + }, + { + "name": "turn_upside_down", + "description": "Whether or not the 3DS needs to be turned upside-down as this Pokémon levels up.", + "type": "boolean" + }, + { + "name": "region", + "description": "The required region in which this evolution can occur.", + "type": { + "type": "NamedAPIResource", + "of": "Region" + } + }, + { + "name": "base_form", + "description": "The required form for which this evolution can occur.", + "type": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + }, + { + "name": "evolved_form", + "description": "The form to which this evolution occurs.", + "type": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + }, + { + "name": "used_move", + "description": "The move that must be used by the evolving Pokémon species during the evolution trigger event in order to evolve into this Pokémon species.", + "type": { + "type": "NamedAPIResource", + "of": "Move" + } + }, + { + "name": "min_move_count", + "description": "The minimum number of times a move must be used in order to evolve into this Pokémon species.", + "type": "integer" + }, + { + "name": "min_steps", + "description": "The minimum number of steps that must be taken in order to evolve into this Pokémon species.", + "type": "integer" + }, + { + "name": "min_damage_taken", + "description": "The minimum amount of damage taken during the evolution trigger event in order to evolve into this Pokémon species.", + "type": "integer" + } + ] + } + ] + }, + { + "name": "Evolution Triggers", + "description": "Evolution triggers are the events and conditions that cause a Pokémon to evolve. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Methods_of_evolution) for greater detail.", + "exampleRequest": "/v2/evolution-trigger/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "level-up", + "names": [ + { + "name": "Level up", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "pokemon_species": [ + { + "name": "ivysaur", + "url": "$BASE_URL/v2/pokemon-species/2/" + } + ] }, - { - "name": "Evolution Triggers", - "description": "Evolution triggers are the events and conditions that cause a Pokémon to evolve. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Methods_of_evolution) for greater detail.", - "exampleRequest": "/v2/evolution-trigger/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "level-up", - "names": [{ - "name": "Level up", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "pokemon_species": [{ - "name": "ivysaur", - "url": "$BASE_URL/v2/pokemon-species/2/" - }] - }, - "responseModels": [ - { - "name": "EvolutionTrigger", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_species", - "description": "A list of pokemon species that result from this evolution trigger.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - } - ] + "responseModels": [ + { + "name": "EvolutionTrigger", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pokemon_species", + "description": "A list of pokemon species that result from this evolution trigger.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } } + } ] - } + } + ] + } ] diff --git a/src/data/operations/games.json b/src/data/operations/games.json index 7669c88..289fe03 100644 --- a/src/data/operations/games.json +++ b/src/data/operations/games.json @@ -1,406 +1,434 @@ [ - { - "name": "Generations", - "description": "A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include. In each generation, a new set of Pokémon, Moves, Abilities and Types that did not exist in the previous generation are released.", - "exampleRequest": "/v2/generation/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "generation-i", - "abilities": [], - "main_region": { - "name": "kanto", - "url": "$BASE_URL/v2/region/1/" - }, - "moves": [{ - "name": "pound", - "url": "$BASE_URL/v2/move/1/" - }], - "names": [{ - "name": "Generation I", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "pokemon_species": [{ - "name": "bulbasaur", - "url": "$BASE_URL/v2/pokemon-species/1/" - }], - "types": [{ - "name": "normal", - "url": "$BASE_URL/v2/type/1/" - }], - "version_groups": [{ - "name": "red-blue", - "url": "$BASE_URL/v2/version-group/1/" - }] - }, - "responseModels": [ - { - "name": "Generation", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "abilities", - "description": "A list of abilities that were introduced in this generation.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Ability" - } - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "main_region", - "description": "The main region travelled in this generation.", - "type": { - "type": "NamedAPIResource", - "of": "Region" - } - }, - { - "name": "moves", - "description": "A list of moves that were introduced in this generation.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - }, - { - "name": "pokemon_species", - "description": "A list of Pokémon species that were introduced in this generation.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - }, - { - "name": "types", - "description": "A list of types that were introduced in this generation.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Type" - } - } - }, - { - "name": "version_groups", - "description": "A list of version groups that were introduced in this generation.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - } - ] + { + "name": "Generations", + "description": "A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include. In each generation, a new set of Pokémon, Moves, Abilities and Types that did not exist in the previous generation are released.", + "exampleRequest": "/v2/generation/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "generation-i", + "abilities": [], + "main_region": { + "name": "kanto", + "url": "$BASE_URL/v2/region/1/" + }, + "moves": [ + { + "name": "pound", + "url": "$BASE_URL/v2/move/1/" + } + ], + "names": [ + { + "name": "Generation I", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "pokemon_species": [ + { + "name": "bulbasaur", + "url": "$BASE_URL/v2/pokemon-species/1/" + } + ], + "types": [ + { + "name": "normal", + "url": "$BASE_URL/v2/type/1/" + } + ], + "version_groups": [ + { + "name": "red-blue", + "url": "$BASE_URL/v2/version-group/1/" + } + ] + }, + "responseModels": [ + { + "name": "Generation", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "abilities", + "description": "A list of abilities that were introduced in this generation.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Ability" + } + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "main_region", + "description": "The main region travelled in this generation.", + "type": { + "type": "NamedAPIResource", + "of": "Region" + } + }, + { + "name": "moves", + "description": "A list of moves that were introduced in this generation.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + }, + { + "name": "pokemon_species", + "description": "A list of Pokémon species that were introduced in this generation.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } } + }, + { + "name": "types", + "description": "A list of types that were introduced in this generation.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Type" + } + } + }, + { + "name": "version_groups", + "description": "A list of version groups that were introduced in this generation.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + } + } ] + } + ] + }, + { + "name": "Pokedexes", + "description": "A Pokédex is a handheld electronic encyclopedia device; one which is capable of recording and retaining information of the various Pokémon in a given region with the exception of the national dex and some smaller dexes related to portions of a region. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pokedex) for greater detail.", + "exampleRequest": "/v2/pokedex/{id or name}/", + "exampleResponse": { + "id": 2, + "name": "kanto", + "is_main_series": true, + "descriptions": [ + { + "description": "Rot/Blau/Gelb Kanto Dex", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "names": [ + { + "name": "Kanto", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "pokemon_entries": [ + { + "entry_number": 1, + "pokemon_species": { + "name": "bulbasaur", + "url": "$BASE_URL/v2/pokemon-species/1/" + } + } + ], + "region": { + "name": "kanto", + "url": "$BASE_URL/v2/region/1/" + }, + "version_groups": [ + { + "name": "red-blue", + "url": "$BASE_URL/v2/version-group/1/" + } + ] }, - { - "name": "Pokedexes", - "description": "A Pokédex is a handheld electronic encyclopedia device; one which is capable of recording and retaining information of the various Pokémon in a given region with the exception of the national dex and some smaller dexes related to portions of a region. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pokedex) for greater detail.", - "exampleRequest": "/v2/pokedex/{id or name}/", - "exampleResponse": { - "id": 2, - "name": "kanto", - "is_main_series": true, - "descriptions": [{ - "description": "Rot/Blau/Gelb Kanto Dex", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "names": [{ - "name": "Kanto", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "pokemon_entries": [{ - "entry_number": 1, - "pokemon_species": { - "name": "bulbasaur", - "url": "$BASE_URL/v2/pokemon-species/1/" - } - }], - "region": { - "name": "kanto", - "url": "$BASE_URL/v2/region/1/" - }, - "version_groups": [{ - "name": "red-blue", - "url": "$BASE_URL/v2/version-group/1/" - }] - }, - "responseModels": [ - { - "name": "Pokedex", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "is_main_series", - "description": "Whether or not this Pokédex originated in the main series of the video games.", - "type": "boolean" - }, - { - "name": "descriptions", - "description": "The description of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_entries", - "description": "A list of Pokémon catalogued in this Pokédex and their indexes.", - "type": { - "type": "list", - "of": "PokemonEntry" - } - }, - { - "name": "region", - "description": "The region this Pokédex catalogues Pokémon for.", - "type": { - "type": "NamedAPIResource", - "of": "Region" - } - }, - { - "name": "version_groups", - "description": "A list of version groups this Pokédex is relevant to.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - } - ] - }, - { - "name": "PokemonEntry", - "fields": [ - { - "name": "entry_number", - "description": "The index of this Pokémon species entry within the Pokédex.", - "type": "integer" - }, - { - "name": "pokemon_species", - "description": "The Pokémon species being encountered.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - ] + "responseModels": [ + { + "name": "Pokedex", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "is_main_series", + "description": "Whether or not this Pokédex originated in the main series of the video games.", + "type": "boolean" + }, + { + "name": "descriptions", + "description": "The description of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Description" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pokemon_entries", + "description": "A list of Pokémon catalogued in this Pokédex and their indexes.", + "type": { + "type": "list", + "of": "PokemonEntry" } + }, + { + "name": "region", + "description": "The region this Pokédex catalogues Pokémon for.", + "type": { + "type": "NamedAPIResource", + "of": "Region" + } + }, + { + "name": "version_groups", + "description": "A list of version groups this Pokédex is relevant to.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + } + } + ] + }, + { + "name": "PokemonEntry", + "fields": [ + { + "name": "entry_number", + "description": "The index of this Pokémon species entry within the Pokédex.", + "type": "integer" + }, + { + "name": "pokemon_species", + "description": "The Pokémon species being encountered.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } + } ] + } + ] + }, + { + "name": "Version", + "description": "Versions of the games, e.g., Red, Blue or Yellow.", + "exampleRequest": "/v2/version/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "red", + "names": [ + { + "name": "Rot", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "version_group": { + "name": "red-blue", + "url": "$BASE_URL/v2/version-group/1/" + } }, - { + "responseModels": [ + { "name": "Version", - "description": "Versions of the games, e.g., Red, Blue or Yellow.", - "exampleRequest": "/v2/version/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "red", - "names": [{ - "name": "Rot", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "version_group": { - "name": "red-blue", - "url": "$BASE_URL/v2/version-group/1/" + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } - }, - "responseModels": [ - { - "name": "Version", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "version_group", - "description": "The version group this version belongs to.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - ] + }, + { + "name": "version_group", + "description": "The version group this version belongs to.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" } + } ] + } + ] + }, + { + "name": "Version Groups", + "description": "Version groups categorize highly similar versions of the games.", + "exampleRequest": "/v2/version-group/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "red-blue", + "order": 1, + "generation": { + "name": "generation-i", + "url": "$BASE_URL/v2/generation/1/" + }, + "move_learn_methods": [ + { + "name": "level-up", + "url": "$BASE_URL/v2/move-learn-method/1/" + } + ], + "pokedexes": [ + { + "name": "kanto", + "url": "$BASE_URL/v2/pokedex/2/" + } + ], + "regions": [ + { + "name": "kanto", + "url": "$BASE_URL/v2/region/1/" + } + ], + "versions": [ + { + "name": "red", + "url": "$BASE_URL/v2/version/1/" + } + ] }, - { - "name": "Version Groups", - "description": "Version groups categorize highly similar versions of the games.", - "exampleRequest": "/v2/version-group/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "red-blue", - "order": 1, - "generation": { - "name": "generation-i", - "url": "$BASE_URL/v2/generation/1/" - }, - "move_learn_methods": [{ - "name": "level-up", - "url": "$BASE_URL/v2/move-learn-method/1/" - }], - "pokedexes": [{ - "name": "kanto", - "url": "$BASE_URL/v2/pokedex/2/" - }], - "regions": [{ - "name": "kanto", - "url": "$BASE_URL/v2/region/1/" - }], - "versions": [{ - "name": "red", - "url": "$BASE_URL/v2/version/1/" - }] - }, - "responseModels": [ - { - "name": "VersionGroup", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "order", - "description": "Order for sorting. Almost by date of release, except similar versions are grouped together.", - "type": "integer" - }, - { - "name": "generation", - "description": "The generation this version was introduced in.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "move_learn_methods", - "description": "A list of methods in which Pokémon can learn moves in this version group.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "MoveLearnMethod" - } - } - }, - { - "name": "pokedexes", - "description": "A list of Pokédexes introduces in this version group.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Pokedex" - } - } - }, - { - "name": "regions", - "description": "A list of regions that can be visited in this version group.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Region" - } - } - }, - { - "name": "versions", - "description": "The versions this version group owns.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Version" - } - } - } - ] + "responseModels": [ + { + "name": "VersionGroup", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "order", + "description": "Order for sorting. Almost by date of release, except similar versions are grouped together.", + "type": "integer" + }, + { + "name": "generation", + "description": "The generation this version was introduced in.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + }, + { + "name": "move_learn_methods", + "description": "A list of methods in which Pokémon can learn moves in this version group.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "MoveLearnMethod" + } + } + }, + { + "name": "pokedexes", + "description": "A list of Pokédexes introduces in this version group.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Pokedex" + } + } + }, + { + "name": "regions", + "description": "A list of regions that can be visited in this version group.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Region" + } + } + }, + { + "name": "versions", + "description": "The versions this version group owns.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Version" + } } + } ] - } + } + ] + } ] diff --git a/src/data/operations/items.json b/src/data/operations/items.json index 7674e7b..9c8db3e 100644 --- a/src/data/operations/items.json +++ b/src/data/operations/items.json @@ -1,492 +1,524 @@ [ - { + { + "name": "Item", + "description": "An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have various uses, including healing, powering up, helping catch Pokémon, or to access a new area.", + "exampleRequest": "/v2/item/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "master-ball", + "cost": 0, + "fling_power": 10, + "fling_effect": { + "name": "flinch", + "url": "$BASE_URL/v2/item-fling-effect/7/" + }, + "attributes": [ + { + "name": "holdable", + "url": "$BASE_URL/v2/item-attribute/5/" + } + ], + "category": { + "name": "standard-balls", + "url": "$BASE_URL/v2/item-category/34/" + }, + "effect_entries": [ + { + "effect": "Used in battle\n: [Catches]{mechanic:catch} a wild Pokémon without fail.\n\n If used in a trainer battle, nothing happens and the ball is lost.", + "short_effect": "Catches a wild Pokémon every time.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "flavor_text_entries": [ + { + "text": "The best Poké Ball with the ultimate level of performance. With it, you will catch any wild Pokémon without fail.", + "version_group": { + "name": "x-y", + "url": "$BASE_URL/v2/version-group/15/" + }, + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "game_indices": [ + { + "game_index": 1, + "generation": { + "name": "generation-vi", + "url": "$BASE_URL/v2/generation/6/" + } + } + ], + "names": [ + { + "name": "Master Ball", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "sprites": { + "default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/items/master-ball.png" + }, + "held_by_pokemon": [ + { + "pokemon": { + "name": "chansey", + "url": "$BASE_URL/v2/pokemon/113/" + }, + "version_details": [ + { + "rarity": 50, + "version": { + "name": "soulsilver", + "url": "$BASE_URL/v2/version/16/" + } + } + ] + } + ], + "baby_trigger_for": { + "url": "$BASE_URL/v2/evolution-chain/1/" + } + }, + "responseModels": [ + { "name": "Item", - "description": "An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have various uses, including healing, powering up, helping catch Pokémon, or to access a new area.", - "exampleRequest": "/v2/item/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "master-ball", - "cost": 0, - "fling_power": 10, - "fling_effect": { - "name":"flinch", - "url":"$BASE_URL/v2/item-fling-effect/7/" - }, - "attributes": [{ - "name": "holdable", - "url": "$BASE_URL/v2/item-attribute/5/" - }], - "category": { - "name": "standard-balls", - "url": "$BASE_URL/v2/item-category/34/" - }, - "effect_entries": [{ - "effect": "Used in battle\n: [Catches]{mechanic:catch} a wild Pokémon without fail.\n\n If used in a trainer battle, nothing happens and the ball is lost.", - "short_effect": "Catches a wild Pokémon every time.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "flavor_text_entries": [{ - "text": "The best Poké Ball with the ultimate level of performance. With it, you will catch any wild Pokémon without fail.", - "version_group": { - "name": "x-y", - "url": "$BASE_URL/v2/version-group/15/" - }, - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "game_indices": [{ - "game_index": 1, - "generation": { - "name": "generation-vi", - "url": "$BASE_URL/v2/generation/6/" - } - }], - "names": [{ - "name": "Master Ball", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "sprites": { - "default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/items/master-ball.png" - }, - "held_by_pokemon": [{ - "pokemon": { - "name": "chansey", - "url": "$BASE_URL/v2/pokemon/113/" - }, - "version_details": [{ - "rarity": 50, - "version": { - "name": "soulsilver", - "url": "$BASE_URL/v2/version/16/" - } - }] - }], - "baby_trigger_for": { - "url":"$BASE_URL/v2/evolution-chain/1/" + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "cost", + "description": "The price of this item in stores.", + "type": "integer" + }, + { + "name": "fling_power", + "description": "The power of the move Fling when used with this item.", + "type": "integer" + }, + { + "name": "fling_effect", + "description": "The effect of the move Fling when used with this item.", + "type": { + "type": "NamedAPIResource", + "of": "ItemFlingEffect" } - }, - "responseModels": [ - { - "name": "Item", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "cost", - "description": "The price of this item in stores.", - "type": "integer" - }, - { - "name": "fling_power", - "description": "The power of the move Fling when used with this item.", - "type": "integer" - }, - { - "name": "fling_effect", - "description": "The effect of the move Fling when used with this item.", - "type": { - "type": "NamedAPIResource", - "of": "ItemFlingEffect" - } - }, - { - "name": "attributes", - "description": "A list of attributes this item has.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "ItemAttribute" - } - } - }, - { - "name": "category", - "description": "The category of items this item falls into.", - "type": { - "type": "NamedAPIResource", - "of": "ItemCategory" - } - }, - { - "name": "effect_entries", - "description": "The effect of this ability listed in different languages.", - "type": { - "type": "list", - "of": "VerboseEffect" - } - }, - { - "name": "flavor_text_entries", - "description": "The flavor text of this ability listed in different languages.", - "type": { - "type": "list", - "of": "VersionGroupFlavorText" - } - }, - { - "name": "game_indices", - "description": "A list of game indices relevent to this item by generation.", - "type": { - "type": "list", - "of": "GenerationGameIndex" - } - }, - { - "name": "names", - "description": "The name of this item listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "sprites", - "description": "A set of sprites used to depict this item in the game.", - "type": "ItemSprites" - }, - { - "name": "held_by_pokemon", - "description": "A list of Pokémon that might be found in the wild holding this item.", - "type": { - "type": "list", - "of": "ItemHolderPokemon" - } - }, - { - "name": "baby_trigger_for", - "description": "An evolution chain this item requires to produce a bay during mating.", - "type": { - "type": "APIResource", - "of": "EvolutionChain" - } - }, - { - "name": "machines", - "description": "A list of the machines related to this item.", - "type": { - "type": "list", - "of": "MachineVersionDetail" - } - } - ] - }, - { - "name": "ItemSprites", - "fields": [ - { - "name": "default", - "description": "The default depiction of this item.", - "type": "string" - } - ] - }, - { - "name": "ItemHolderPokemon", - "fields": [ - { - "name": "pokemon", - "description": "The Pokémon that holds this item.", - "type": { - "type": "NamedAPIResource", - "of": "Pokemon" - } - }, - { - "name": "version_details", - "description": "The details for the version that this item is held in by the Pokémon.", - "type": { - "type": "list", - "of": "ItemHolderPokemonVersionDetail" - } - } - ] - }, - { - "name": "ItemHolderPokemonVersionDetail", - "fields": [ - { - "name": "rarity", - "description": "How often this Pokémon holds this item in this version.", - "type": "integer" - }, - { - "name": "version", - "description": "The version that this item is held in by the Pokémon.", - "type": { - "type": "NamedAPIResource", - "of": "Version" - } - } - ] + }, + { + "name": "attributes", + "description": "A list of attributes this item has.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "ItemAttribute" + } + } + }, + { + "name": "category", + "description": "The category of items this item falls into.", + "type": { + "type": "NamedAPIResource", + "of": "ItemCategory" + } + }, + { + "name": "effect_entries", + "description": "The effect of this ability listed in different languages.", + "type": { + "type": "list", + "of": "VerboseEffect" + } + }, + { + "name": "flavor_text_entries", + "description": "The flavor text of this ability listed in different languages.", + "type": { + "type": "list", + "of": "VersionGroupFlavorText" + } + }, + { + "name": "game_indices", + "description": "A list of game indices relevent to this item by generation.", + "type": { + "type": "list", + "of": "GenerationGameIndex" + } + }, + { + "name": "names", + "description": "The name of this item listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "sprites", + "description": "A set of sprites used to depict this item in the game.", + "type": "ItemSprites" + }, + { + "name": "held_by_pokemon", + "description": "A list of Pokémon that might be found in the wild holding this item.", + "type": { + "type": "list", + "of": "ItemHolderPokemon" + } + }, + { + "name": "baby_trigger_for", + "description": "An evolution chain this item requires to produce a bay during mating.", + "type": { + "type": "APIResource", + "of": "EvolutionChain" + } + }, + { + "name": "machines", + "description": "A list of the machines related to this item.", + "type": { + "type": "list", + "of": "MachineVersionDetail" } + } ] + }, + { + "name": "ItemSprites", + "fields": [ + { + "name": "default", + "description": "The default depiction of this item.", + "type": "string" + } + ] + }, + { + "name": "ItemHolderPokemon", + "fields": [ + { + "name": "pokemon", + "description": "The Pokémon that holds this item.", + "type": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + }, + { + "name": "version_details", + "description": "The details for the version that this item is held in by the Pokémon.", + "type": { + "type": "list", + "of": "ItemHolderPokemonVersionDetail" + } + } + ] + }, + { + "name": "ItemHolderPokemonVersionDetail", + "fields": [ + { + "name": "rarity", + "description": "How often this Pokémon holds this item in this version.", + "type": "integer" + }, + { + "name": "version", + "description": "The version that this item is held in by the Pokémon.", + "type": { + "type": "NamedAPIResource", + "of": "Version" + } + } + ] + } + ] + }, + { + "name": "Item Attributes", + "description": "Item attributes define particular aspects of items, e.g. \"usable in battle\" or \"consumable\".", + "exampleRequest": "/v2/item-attribute/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "countable", + "descriptions": [ + { + "description": "Has a count in the bag", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "items": [ + { + "name": "master-ball", + "url": "$BASE_URL/v2/item/1/" + } + ], + "names": [ + { + "name": "Countable", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Item Attributes", - "description": "Item attributes define particular aspects of items, e.g. \"usable in battle\" or \"consumable\".", - "exampleRequest": "/v2/item-attribute/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "countable", - "descriptions": [{ - "description": "Has a count in the bag", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "items": [{ - "name": "master-ball", - "url": "$BASE_URL/v2/item/1/" - }], - "names": [{ - "name": "Countable", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "ItemAttribute", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "items", - "description": "A list of items that have this attribute.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Item" - } - } - }, - { - "name": "names", - "description": "The name of this item attribute listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "descriptions", - "description": "The description of this item attribute listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - } - ] + "responseModels": [ + { + "name": "ItemAttribute", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "items", + "description": "A list of items that have this attribute.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Item" + } + } + }, + { + "name": "names", + "description": "The name of this item attribute listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + }, + { + "name": "descriptions", + "description": "The description of this item attribute listed in different languages.", + "type": { + "type": "list", + "of": "Description" + } + } ] + } + ] + }, + { + "name": "Item Categories", + "description": "Item categories determine where items will be placed in the players bag.", + "exampleRequest": "/v2/item-category/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "stat-boosts", + "items": [ + { + "name": "guard-spec", + "url": "$BASE_URL/v2/item/55/" + } + ], + "names": [ + { + "name": "Stat boosts", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "pocket": { + "name": "battle", + "url": "$BASE_URL/v2/item-pocket/7/" + } }, - { - "name": "Item Categories", - "description": "Item categories determine where items will be placed in the players bag.", - "exampleRequest": "/v2/item-category/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "stat-boosts", - "items": [{ - "name": "guard-spec", - "url": "$BASE_URL/v2/item/55/" - }], - "names": [{ - "name": "Stat boosts", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "pocket": { - "name": "battle", - "url": "$BASE_URL/v2/item-pocket/7/" + "responseModels": [ + { + "name": "ItemCategory", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "items", + "description": "A list of items that are a part of this category.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Item" + } } - }, - "responseModels": [ - { - "name": "ItemCategory", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "items", - "description": "A list of items that are a part of this category.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Item" - } - } - }, - { - "name": "names", - "description": "The name of this item category listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pocket", - "description": "The pocket items in this category would be put in.", - "type": { - "type": "NamedAPIResource", - "of": "ItemPocket" - } - } - ] + }, + { + "name": "names", + "description": "The name of this item category listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + }, + { + "name": "pocket", + "description": "The pocket items in this category would be put in.", + "type": { + "type": "NamedAPIResource", + "of": "ItemPocket" + } + } ] + } + ] + }, + { + "name": "Item Fling Effects", + "description": "The various effects of the move \"Fling\" when used with different items.", + "exampleRequest": "/v2/item-fling-effect/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "badly-poison", + "effect_entries": [ + { + "effect": "Badly poisons the target.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "items": [ + { + "name": "toxic-orb", + "url": "$BASE_URL/v2/item/249/" + } + ] }, - { - "name": "Item Fling Effects", - "description": "The various effects of the move \"Fling\" when used with different items.", - "exampleRequest": "/v2/item-fling-effect/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "badly-poison", - "effect_entries": [{ - "effect": "Badly poisons the target.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "items": [{ - "name": "toxic-orb", - "url": "$BASE_URL/v2/item/249/" - }] - }, - "responseModels": [ - { - "name": "ItemFlingEffect", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "effect_entries", - "description": "The result of this fling effect listed in different languages.", - "type": { - "type": "list", - "of": "Effect" - } - }, - { - "name": "items", - "description": "A list of items that have this fling effect.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Item" - } - } - } - ] + "responseModels": [ + { + "name": "ItemFlingEffect", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "effect_entries", + "description": "The result of this fling effect listed in different languages.", + "type": { + "type": "list", + "of": "Effect" } + }, + { + "name": "items", + "description": "A list of items that have this fling effect.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Item" + } + } + } ] + } + ] + }, + { + "name": "Item Pockets", + "description": "Pockets within the players bag used for storing items by category.", + "exampleRequest": "/v2/item-pocket/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "misc", + "categories": [ + { + "name": "collectibles", + "url": "$BASE_URL/v2/item-category/9/" + } + ], + "names": [ + { + "name": "Items", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Item Pockets", - "description": "Pockets within the players bag used for storing items by category.", - "exampleRequest": "/v2/item-pocket/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "misc", - "categories": [{ - "name": "collectibles", - "url": "$BASE_URL/v2/item-category/9/" - }], - "names": [{ - "name": "Items", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "ItemPocket", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "categories", - "description": "A list of item categories that are relevant to this item pocket.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "ItemCategory" - } - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + "responseModels": [ + { + "name": "ItemPocket", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "categories", + "description": "A list of item categories that are relevant to this item pocket.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "ItemCategory" + } + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + } ] - } + } + ] + } ] diff --git a/src/data/operations/locations.json b/src/data/operations/locations.json index 6db1ba8..20ac404 100644 --- a/src/data/operations/locations.json +++ b/src/data/operations/locations.json @@ -1,434 +1,464 @@ [ - { - "name": "Locations", - "description": "Locations that can be visited within the games. Locations make up sizable portions of regions, like cities or routes.", - "exampleRequest": "/v2/location/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "canalave-city", - "region": { - "name": "sinnoh", - "url": "$BASE_URL/v2/region/4/" - }, - "names": [{ - "name": "Canalave City", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "game_indices": [{ - "game_index": 7, - "generation": { - "name": "generation-iv", - "url": "$BASE_URL/v2/generation/4/" - } - }], - "areas": [{ - "name": "canalave-city-area", - "url": "$BASE_URL/v2/location-area/1/" - }] - }, - "responseModels": [ - { - "name": "Location", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "region", - "description": "The region this location can be found in.", - "type": { - "type": "NamedAPIResource ", - "of": "Region" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "game_indices", - "description": "A list of game indices relevent to this location by generation.", - "type": { - "type": "list", - "of": "GenerationGameIndex" - } - }, - { - "name": "areas", - "description": "Areas that can be found within this location.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "LocationArea" - } - } - } - ] + { + "name": "Locations", + "description": "Locations that can be visited within the games. Locations make up sizable portions of regions, like cities or routes.", + "exampleRequest": "/v2/location/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "canalave-city", + "region": { + "name": "sinnoh", + "url": "$BASE_URL/v2/region/4/" + }, + "names": [ + { + "name": "Canalave City", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "game_indices": [ + { + "game_index": 7, + "generation": { + "name": "generation-iv", + "url": "$BASE_URL/v2/generation/4/" + } + } + ], + "areas": [ + { + "name": "canalave-city-area", + "url": "$BASE_URL/v2/location-area/1/" + } + ] + }, + "responseModels": [ + { + "name": "Location", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "region", + "description": "The region this location can be found in.", + "type": { + "type": "NamedAPIResource ", + "of": "Region" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + }, + { + "name": "game_indices", + "description": "A list of game indices relevent to this location by generation.", + "type": { + "type": "list", + "of": "GenerationGameIndex" + } + }, + { + "name": "areas", + "description": "Areas that can be found within this location.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "LocationArea" + } + } + } ] - }, - { - "name": "Location Areas", - "description": "Location areas are sections of areas, such as floors in a building or cave. Each area has its own set of possible Pokémon encounters.", - "exampleRequest": "/v2/location-area/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "canalave-city-area", - "game_index": 1, - "encounter_method_rates": [{ - "encounter_method": { - "name": "old-rod", - "url": "$BASE_URL/v2/encounter-method/2/" - }, - "version_details": [{ - "rate": 25, - "version": { - "name": "platinum", - "url": "$BASE_URL/v2/version/14/" - } - }] - }], - "location": { - "name": "canalave-city", - "url": "$BASE_URL/v2/location/1/" - }, - "names": [{ - "name": "", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "pokemon_encounters": [{ - "pokemon": { - "name": "tentacool", - "url": "$BASE_URL/v2/pokemon/72/" - }, - "version_details": [{ - "version": { - "name": "diamond", - "url": "$BASE_URL/v2/version/12/" - }, - "max_chance": 60, - "encounter_details": [{ - "min_level": 20, - "max_level": 30, - "condition_values": [], - "chance": 60, - "method": { - "name": "surf", - "url": "$BASE_URL/v2/encounter-method/5/" - } - }] - }] - }] - }, - "responseModels": [ - { - "name": "LocationArea", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "game_index", - "description": "The internal id of an API resource within game data.", - "type": "integer" - }, - { - "name": "encounter_method_rates", - "description": "A list of methods in which Pokémon may be encountered in this area and how likely the method will occur depending on the version of the game.", - "type": { - "type": "list", - "of": "EncounterMethodRate" - } - }, - { - "name": "location", - "description": "The region this location area can be found in.", - "type": { - "type": "NamedAPIResource", - "of": "Location" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_encounters", - "description": "A list of Pokémon that can be encountered in this area along with version specific details about the encounter.", - "type": { - "type": "list", - "of": "PokemonEncounter" - } - } - ] - }, + } + ] + }, + { + "name": "Location Areas", + "description": "Location areas are sections of areas, such as floors in a building or cave. Each area has its own set of possible Pokémon encounters.", + "exampleRequest": "/v2/location-area/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "canalave-city-area", + "game_index": 1, + "encounter_method_rates": [ + { + "encounter_method": { + "name": "old-rod", + "url": "$BASE_URL/v2/encounter-method/2/" + }, + "version_details": [ { - "name": "EncounterMethodRate", - "fields": [ - { - "name": "encounter_method", - "description": "The method in which Pokémon may be encountered in an area..", - "type": { - "type": "NamedAPIResource ", - "of": "EncounterMethod" - } - }, - { - "name": "version_details", - "description": "The chance of the encounter to occur on a version of the game.", - "type": { - "type": "list", - "of": "EncounterVersionDetails" - } - } - ] - }, - { - "name": "EncounterVersionDetails", - "fields": [ - { - "name": "rate", - "description": "The chance of an encounter to occur.", - "type": "integer" - }, - { - "name": "version", - "description": "The version of the game in which the encounter can occur with the given chance.", - "type": { - "type": "NamedAPIResource ", - "of": "Version" - } - } - ] - }, + "rate": 25, + "version": { + "name": "platinum", + "url": "$BASE_URL/v2/version/14/" + } + } + ] + } + ], + "location": { + "name": "canalave-city", + "url": "$BASE_URL/v2/location/1/" + }, + "names": [ + { + "name": "", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "pokemon_encounters": [ + { + "pokemon": { + "name": "tentacool", + "url": "$BASE_URL/v2/pokemon/72/" + }, + "version_details": [ { - "name": "PokemonEncounter", - "fields": [ - { - "name": "pokemon", - "description": "The Pokémon being encountered.", - "type": { - "type": "NamedAPIResource ", - "of": "Pokemon" - } - }, - { - "name": "version_details", - "description": "A list of versions and encounters with Pokémon that might happen in the referenced location area.", - "type": { - "type": "list", - "of": "VersionEncounterDetail" - } - } - ] + "version": { + "name": "diamond", + "url": "$BASE_URL/v2/version/12/" + }, + "max_chance": 60, + "encounter_details": [ + { + "min_level": 20, + "max_level": 30, + "condition_values": [], + "chance": 60, + "method": { + "name": "surf", + "url": "$BASE_URL/v2/encounter-method/5/" + } + } + ] + } + ] + } + ] + }, + "responseModels": [ + { + "name": "LocationArea", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "game_index", + "description": "The internal id of an API resource within game data.", + "type": "integer" + }, + { + "name": "encounter_method_rates", + "description": "A list of methods in which Pokémon may be encountered in this area and how likely the method will occur depending on the version of the game.", + "type": { + "type": "list", + "of": "EncounterMethodRate" } + }, + { + "name": "location", + "description": "The region this location area can be found in.", + "type": { + "type": "NamedAPIResource", + "of": "Location" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pokemon_encounters", + "description": "A list of Pokémon that can be encountered in this area along with version specific details about the encounter.", + "type": { + "type": "list", + "of": "PokemonEncounter" + } + } ] + }, + { + "name": "EncounterMethodRate", + "fields": [ + { + "name": "encounter_method", + "description": "The method in which Pokémon may be encountered in an area..", + "type": { + "type": "NamedAPIResource ", + "of": "EncounterMethod" + } + }, + { + "name": "version_details", + "description": "The chance of the encounter to occur on a version of the game.", + "type": { + "type": "list", + "of": "EncounterVersionDetails" + } + } + ] + }, + { + "name": "EncounterVersionDetails", + "fields": [ + { + "name": "rate", + "description": "The chance of an encounter to occur.", + "type": "integer" + }, + { + "name": "version", + "description": "The version of the game in which the encounter can occur with the given chance.", + "type": { + "type": "NamedAPIResource ", + "of": "Version" + } + } + ] + }, + { + "name": "PokemonEncounter", + "fields": [ + { + "name": "pokemon", + "description": "The Pokémon being encountered.", + "type": { + "type": "NamedAPIResource ", + "of": "Pokemon" + } + }, + { + "name": "version_details", + "description": "A list of versions and encounters with Pokémon that might happen in the referenced location area.", + "type": { + "type": "list", + "of": "VersionEncounterDetail" + } + } + ] + } + ] + }, + { + "name": "Pal Park Areas", + "description": "Areas used for grouping Pokémon encounters in Pal Park. They're like habitats that are specific to [Pal Park](https://bulbapedia.bulbagarden.net/wiki/Pal_Park).", + "exampleRequest": "/v2/pal-park-area/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "forest", + "names": [ + { + "name": "Forest", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "pokemon_encounters": [ + { + "base_score": 30, + "rate": 50, + "pokemon_species": { + "name": "caterpie", + "url": "$BASE_URL/v2/pokemon-species/10/" + } + } + ] }, - { - "name": "Pal Park Areas", - "description": "Areas used for grouping Pokémon encounters in Pal Park. They're like habitats that are specific to [Pal Park](https://bulbapedia.bulbagarden.net/wiki/Pal_Park).", - "exampleRequest": "/v2/pal-park-area/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "forest", - "names": [{ - "name": "Forest", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "pokemon_encounters": [{ - "base_score": 30, - "rate": 50, - "pokemon_species": { - "name": "caterpie", - "url": "$BASE_URL/v2/pokemon-species/10/" - } - }] - }, - "responseModels": [ - { - "name": "PalParkArea", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_encounters", - "description": "A list of Pokémon encountered in thi pal park area along with details.", - "type": { - "type": "list", - "of": "PalParkEncounterSpecies" - } - } - ] - }, - { - "name": "PalParkEncounterSpecies", - "fields": [ - { - "name": "base_score", - "description": "The base score given to the player when this Pokémon is caught during a pal park run.", - "type": "integer" - }, - { - "name": "rate", - "description": "The base rate for encountering this Pokémon in this pal park area.", - "type": "integer" - }, - { - "name": "pokemon_species", - "description": "The Pokémon species being encountered.", - "type": { - "type": "NamedAPIResource ", - "of": "PokemonSpecies" - } - } - ] + "responseModels": [ + { + "name": "PalParkArea", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + }, + { + "name": "pokemon_encounters", + "description": "A list of Pokémon encountered in thi pal park area along with details.", + "type": { + "type": "list", + "of": "PalParkEncounterSpecies" + } + } + ] + }, + { + "name": "PalParkEncounterSpecies", + "fields": [ + { + "name": "base_score", + "description": "The base score given to the player when this Pokémon is caught during a pal park run.", + "type": "integer" + }, + { + "name": "rate", + "description": "The base rate for encountering this Pokémon in this pal park area.", + "type": "integer" + }, + { + "name": "pokemon_species", + "description": "The Pokémon species being encountered.", + "type": { + "type": "NamedAPIResource ", + "of": "PokemonSpecies" + } + } ] + } + ] + }, + { + "name": "Regions", + "description": "A region is an organized area of the Pokémon world. Most often, the main difference between regions is the species of Pokémon that can be encountered within them.", + "exampleRequest": "/v2/region/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "kanto", + "locations": [ + { + "name": "celadon-city", + "url": "$BASE_URL/v2/location/67/" + } + ], + "main_generation": { + "name": "generation-i", + "url": "$BASE_URL/v2/generation/1/" + }, + "names": [ + { + "name": "Kanto", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "pokedexes": [ + { + "name": "kanto", + "url": "$BASE_URL/v2/pokedex/2/" + } + ], + "version_groups": [ + { + "name": "red-blue", + "url": "$BASE_URL/v2/version-group/1/" + } + ] }, - { - "name": "Regions", - "description": "A region is an organized area of the Pokémon world. Most often, the main difference between regions is the species of Pokémon that can be encountered within them.", - "exampleRequest": "/v2/region/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "kanto", - "locations": [{ - "name": "celadon-city", - "url": "$BASE_URL/v2/location/67/" - }], - "main_generation": { - "name": "generation-i", - "url": "$BASE_URL/v2/generation/1/" - }, - "names": [{ - "name": "Kanto", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "pokedexes": [{ - "name": "kanto", - "url": "$BASE_URL/v2/pokedex/2/" - }], - "version_groups": [{ - "name": "red-blue", - "url": "$BASE_URL/v2/version-group/1/" - }] - }, - "responseModels": [ - { - "name": "Region", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "locations", - "description": "A list of locations that can be found in this region.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Location" - } - } - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "main_generation", - "description": "The generation this region was introduced in.", - "type": { - "type": "NamedAPIResource ", - "of": "Generation" - } - }, - { - "name": "pokedexes", - "description": "A list of pokédexes that catalogue Pokémon in this region.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Pokedex" - } - } - }, - { - "name": "version_groups", - "description": "A list of version groups where this region can be visited.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - } - ] + "responseModels": [ + { + "name": "Region", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "locations", + "description": "A list of locations that can be found in this region.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Location" + } + } + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "main_generation", + "description": "The generation this region was introduced in.", + "type": { + "type": "NamedAPIResource ", + "of": "Generation" + } + }, + { + "name": "pokedexes", + "description": "A list of pokédexes that catalogue Pokémon in this region.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Pokedex" + } + } + }, + { + "name": "version_groups", + "description": "A list of version groups where this region can be visited.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } } + } ] - } + } + ] + } ] diff --git a/src/data/operations/machines.json b/src/data/operations/machines.json index eada906..d14769b 100644 --- a/src/data/operations/machines.json +++ b/src/data/operations/machines.json @@ -1,58 +1,58 @@ [ - { - "name": "Machines", - "description": "Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is not certain that one specific TM or HM corresponds to a single Machine.", - "exampleRequest": "/v2/machine/{id}/", - "exampleResponse": { - "id": 1, - "item": { - "name": "tm01", - "url": "$BASE_URL/v2/item/305/" - }, - "move": { - "name": "mega-punch", - "url": "$BASE_URL/v2/move/5/" - }, - "version_group": { - "name": "red-blue", - "url": "$BASE_URL/v2/version/1/" + { + "name": "Machines", + "description": "Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is not certain that one specific TM or HM corresponds to a single Machine.", + "exampleRequest": "/v2/machine/{id}/", + "exampleResponse": { + "id": 1, + "item": { + "name": "tm01", + "url": "$BASE_URL/v2/item/305/" + }, + "move": { + "name": "mega-punch", + "url": "$BASE_URL/v2/move/5/" + }, + "version_group": { + "name": "red-blue", + "url": "$BASE_URL/v2/version/1/" + } + }, + "responseModels": [ + { + "name": "Machine", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "item", + "description": "The TM or HM item that corresponds to this machine.", + "type": { + "type": "NamedAPIResource", + "of": "Item" } - }, - "responseModels": [ - { - "name": "Machine", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "item", - "description": "The TM or HM item that corresponds to this machine.", - "type": { - "type": "NamedAPIResource", - "of": "Item" - } - }, - { - "name": "move", - "description": "The move that is taught by this machine.", - "type": { - "type": "NamedAPIResource", - "of": "Move" - } - }, - { - "name": "version_group", - "description": "The version group that this machine applies to.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - ] + }, + { + "name": "move", + "description": "The move that is taught by this machine.", + "type": { + "type": "NamedAPIResource", + "of": "Move" } + }, + { + "name": "version_group", + "description": "The version group that this machine applies to.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + } ] - } + } + ] + } ] diff --git a/src/data/operations/moves.json b/src/data/operations/moves.json index 5a5f3d2..469e7fa 100644 --- a/src/data/operations/moves.json +++ b/src/data/operations/moves.json @@ -1,856 +1,892 @@ [ - { - "name": "Moves", - "description": "Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including those learned by Hidden Machine) can be used outside of battle as well, usually for the purpose of removing obstacles or exploring new areas.", - "exampleRequest": "/v2/move/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "pound", - "accuracy": 100, - "effect_chance": null, - "pp": 35, - "priority": 0, - "power": 40, - "contest_combos": { - "normal": { - "use_before": [{ - "name": "double-slap", - "url": "$BASE_URL/v2/move/3/" - }, { - "name": "headbutt", - "url": "$BASE_URL/v2/move/29/" - }, { - "name": "feint-attack", - "url": "$BASE_URL/v2/move/185/" - }], - "use_after": null - }, - "super": { - "use_before": null, - "use_after": null - } - }, - "contest_type": { - "name": "tough", - "url": "$BASE_URL/v2/contest-type/5/" - }, - "contest_effect": { - "url": "$BASE_URL/v2/contest-effect/1/" - }, - "damage_class": { - "name": "physical", - "url": "$BASE_URL/v2/move-damage-class/2/" - }, - "effect_entries": [{ - "effect": "Inflicts [regular damage]{mechanic:regular-damage}.", - "short_effect": "Inflicts regular damage with no additional effect.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "effect_changes": [], - "generation": { - "name": "generation-i", - "url": "$BASE_URL/v2/generation/1/" - }, - "meta": { - "ailment": { - "name": "none", - "url": "$BASE_URL/v2/move-ailment/0/" - }, - "category": { - "name": "damage", - "url": "$BASE_URL/v2/move-category/0/" - }, - "min_hits": null, - "max_hits": null, - "min_turns": null, - "max_turns": null, - "drain": 0, - "healing": 0, - "crit_rate": 0, - "ailment_chance": 0, - "flinch_chance": 0, - "stat_chance": 0 - }, - "names": [{ - "name": "Pound", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "past_values": [], - "stat_changes": [], - "super_contest_effect": { - "url": "$BASE_URL/v2/super-contest-effect/5/" - }, - "target": { - "name": "selected-pokemon", - "url": "$BASE_URL/v2/move-target/10/" - }, - "type": { - "name": "normal", - "url": "$BASE_URL/v2/type/1/" - }, - "learned_by_pokemon": [{ - "name": "clefairy", - "url": "$BASE_URL/v2/pokemon/35/" - }], - "flavor_text_entries": [ - { - "flavor_text": "Pounds with fore­\nlegs or tail.", - "language": { - "url": "$BASE_URL/v2/language/9/", - "name": "en" - }, - "version_group": { - "url": "$BASE_URL/v2/version-group/3/", - "name": "gold-silver" - } - } - ] - }, - "responseModels": [ - { - "name": "Move", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "accuracy", - "description": "The percent value of how likely this move is to be successful.", - "type": "integer" - }, - { - "name": "effect_chance", - "description": "The percent value of how likely it is this moves effect will happen.", - "type": "integer" - }, - { - "name": "pp", - "description": "Power points. The number of times this move can be used.", - "type": "integer" - }, - { - "name": "priority", - "description": "A value between -8 and 8. Sets the order in which moves are executed during battle. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Priority) for greater detail.", - "type": "integer" - }, - { - "name": "power", - "description": "The base power of this move with a value of 0 if it does not have a base power.", - "type": "integer" - }, - { - "name": "contest_combos", - "description": "A detail of normal and super contest combos that require this move.", - "type": "ContestComboSets" - }, - { - "name": "contest_type", - "description": "The type of appeal this move gives a Pokémon when used in a contest.", - "type": { - "type": "NamedAPIResource", - "of": "ContestType" - } - }, - { - "name": "contest_effect", - "description": "The effect the move has when used in a contest.", - "type": { - "type": "APIResource", - "of": "ContestEffect" - } - }, - { - "name": "damage_class", - "description": "The type of damage the move inflicts on the target, e.g. physical.", - "type": { - "type": "NamedAPIResource", - "of": "MoveDamageClass" - } - }, - { - "name": "effect_entries", - "description": "The effect of this move listed in different languages.", - "type": { - "type": "list", - "of": "VerboseEffect" - } - }, - { - "name": "effect_changes", - "description": "The list of previous effects this move has had across version groups of the games.", - "type": { - "type": "list", - "of": "AbilityEffectChange" - } - }, - { - "name": "learned_by_pokemon", - "description": "List of Pokemon that can learn the move", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Pokemon" - } - } - }, - { - "name": "flavor_text_entries", - "description": "The flavor text of this move listed in different languages.", - "type": { - "type": "list", - "of": "MoveFlavorText" - } - }, - { - "name": "generation", - "description": "The generation in which this move was introduced.", - "type": { - "type": "NamedAPIResource ", - "of": "Generation" - } - }, - { - "name": "machines", - "description": "A list of the machines that teach this move.", - "type": { - "type": "list", - "of": "MachineVersionDetail" - } - }, - { - "name": "meta", - "description": "Metadata about this move", - "type": "MoveMetaData" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "past_values", - "description": "A list of move resource value changes across version groups of the game.", - "type": { - "type": "list", - "of": "PastMoveStatValues" - } - }, - { - "name": "stat_changes", - "description": "A list of stats this moves effects and how much it effects them.", - "type": { - "type": "list", - "of": "MoveStatChange" - } - }, - { - "name": "super_contest_effect", - "description": "The effect the move has when used in a super contest.", - "type": { - "type": "APIResource ", - "of": "SuperContestEffect" - } - }, - { - "name": "target", - "description": "The type of target that will receive the effects of the attack.", - "type": { - "type": "NamedAPIResource ", - "of": "MoveTarget" - } - }, - { - "name": "type", - "description": "The elemental type of this move.", - "type": { - "type": "NamedAPIResource ", - "of": "Type" - } - } - ] - }, - { - "name": "ContestComboSets", - "fields": [ - { - "name": "normal", - "description": "A detail of moves this move can be used before or after, granting additional appeal points in contests.", - "type": "ContestComboDetail" - }, - { - "name": "super", - "description": "A detail of moves this move can be used before or after, granting additional appeal points in super contests.", - "type": "ContestComboDetail" - } - ] - }, + { + "name": "Moves", + "description": "Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including those learned by Hidden Machine) can be used outside of battle as well, usually for the purpose of removing obstacles or exploring new areas.", + "exampleRequest": "/v2/move/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "pound", + "accuracy": 100, + "effect_chance": null, + "pp": 35, + "priority": 0, + "power": 40, + "contest_combos": { + "normal": { + "use_before": [ { - "name": "ContestComboDetail", - "fields": [ - { - "name": "use_before", - "description": "A list of moves to use before this move.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - }, - { - "name": "use_after", - "description": "A list of moves to use after this move.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - } - ] + "name": "double-slap", + "url": "$BASE_URL/v2/move/3/" }, { - "name": "MoveFlavorText", - "fields": [ - { - "name": "flavor_text", - "description": "The localized flavor text for an api resource in a specific language.", - "type": "string" - }, - { - "name": "language", - "description": "The language this name is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - }, - { - "name": "version_group", - "description": "The version group that uses this flavor text.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - ] + "name": "headbutt", + "url": "$BASE_URL/v2/move/29/" }, { - "name": "MoveMetaData", - "fields": [ - { - "name": "ailment", - "description": "The status ailment this move inflicts on its target.", - "type": { - "type": "NamedAPIResource ", - "of": "MoveAilment" - } - }, - { - "name": "category", - "description": "The category of move this move falls under, e.g. damage or ailment.", - "type": { - "type": "NamedAPIResource ", - "of": "MoveCategory" - } - }, - { - "name": "min_hits", - "description": "The minimum number of times this move hits. Null if it always only hits once.", - "type": "integer" - }, - { - "name": "max_hits", - "description": "The maximum number of times this move hits. Null if it always only hits once.", - "type": "integer" - }, - { - "name": "min_turns", - "description": "The minimum number of turns this move continues to take effect. Null if it always only lasts one turn.", - "type": "integer" - }, - { - "name": "max_turns", - "description": "The maximum number of turns this move continues to take effect. Null if it always only lasts one turn.", - "type": "integer" - }, - { - "name": "drain", - "description": "HP drain (if positive) or Recoil damage (if negative), in percent of damage done.", - "type": "integer" - }, - { - "name": "healing", - "description": "The amount of hp gained by the attacking Pokemon, in percent of it's maximum HP.", - "type": "integer" - }, - { - "name": "crit_rate", - "description": "Critical hit rate bonus.", - "type": "integer" - }, - { - "name": "ailment_chance", - "description": "The likelihood this attack will cause an ailment.", - "type": "integer" - }, - { - "name": "flinch_chance", - "description": "The likelihood this attack will cause the target Pokémon to flinch.", - "type": "integer" - }, - { - "name": "stat_chance", - "description": "The likelihood this attack will cause a stat change in the target Pokémon.", - "type": "integer" - } - ] - }, - { - "name": "MoveStatChange", - "fields": [ - { - "name": "change", - "description": "The amount of change.", - "type": "integer" - }, - { - "name": "stat", - "description": "The stat being affected.", - "type": { - "type": "NamedAPIResource ", - "of": "Stat" - } - } - ] - }, - { - "name": "PastMoveStatValues", - "fields": [ - { - "name": "accuracy", - "description": "The percent value of how likely this move is to be successful.", - "type": "integer" - }, - { - "name": "effect_chance", - "description": "The percent value of how likely it is this moves effect will take effect.", - "type": "integer" - }, - { - "name": "power", - "description": "The base power of this move with a value of 0 if it does not have a base power.", - "type": "integer" - }, - { - "name": "pp", - "description": "Power points. The number of times this move can be used.", - "type": "integer" - }, - { - "name": "effect_entries", - "description": "The effect of this move listed in different languages.", - "type": { - "type": "list", - "of": "VerboseEffect" - } - }, - { - "name": "type", - "description": "The elemental type of this move.", - "type": { - "type": "NamedAPIResource ", - "of": "Type" - } - }, - { - "name": "version_group", - "description": "The version group in which these move stat values were in effect.", - "type": { - "type": "NamedAPIResource ", - "of": "VersionGroup" - } - } - ] + "name": "feint-attack", + "url": "$BASE_URL/v2/move/185/" + } + ], + "use_after": null + }, + "super": { + "use_before": null, + "use_after": null + } + }, + "contest_type": { + "name": "tough", + "url": "$BASE_URL/v2/contest-type/5/" + }, + "contest_effect": { + "url": "$BASE_URL/v2/contest-effect/1/" + }, + "damage_class": { + "name": "physical", + "url": "$BASE_URL/v2/move-damage-class/2/" + }, + "effect_entries": [ + { + "effect": "Inflicts [regular damage]{mechanic:regular-damage}.", + "short_effect": "Inflicts regular damage with no additional effect.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "effect_changes": [], + "generation": { + "name": "generation-i", + "url": "$BASE_URL/v2/generation/1/" + }, + "meta": { + "ailment": { + "name": "none", + "url": "$BASE_URL/v2/move-ailment/0/" + }, + "category": { + "name": "damage", + "url": "$BASE_URL/v2/move-category/0/" + }, + "min_hits": null, + "max_hits": null, + "min_turns": null, + "max_turns": null, + "drain": 0, + "healing": 0, + "crit_rate": 0, + "ailment_chance": 0, + "flinch_chance": 0, + "stat_chance": 0 + }, + "names": [ + { + "name": "Pound", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "past_values": [], + "stat_changes": [], + "super_contest_effect": { + "url": "$BASE_URL/v2/super-contest-effect/5/" + }, + "target": { + "name": "selected-pokemon", + "url": "$BASE_URL/v2/move-target/10/" + }, + "type": { + "name": "normal", + "url": "$BASE_URL/v2/type/1/" + }, + "learned_by_pokemon": [ + { + "name": "clefairy", + "url": "$BASE_URL/v2/pokemon/35/" + } + ], + "flavor_text_entries": [ + { + "flavor_text": "Pounds with fore­\nlegs or tail.", + "language": { + "url": "$BASE_URL/v2/language/9/", + "name": "en" + }, + "version_group": { + "url": "$BASE_URL/v2/version-group/3/", + "name": "gold-silver" + } + } + ] + }, + "responseModels": [ + { + "name": "Move", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "accuracy", + "description": "The percent value of how likely this move is to be successful.", + "type": "integer" + }, + { + "name": "effect_chance", + "description": "The percent value of how likely it is this moves effect will happen.", + "type": "integer" + }, + { + "name": "pp", + "description": "Power points. The number of times this move can be used.", + "type": "integer" + }, + { + "name": "priority", + "description": "A value between -8 and 8. Sets the order in which moves are executed during battle. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Priority) for greater detail.", + "type": "integer" + }, + { + "name": "power", + "description": "The base power of this move with a value of 0 if it does not have a base power.", + "type": "integer" + }, + { + "name": "contest_combos", + "description": "A detail of normal and super contest combos that require this move.", + "type": "ContestComboSets" + }, + { + "name": "contest_type", + "description": "The type of appeal this move gives a Pokémon when used in a contest.", + "type": { + "type": "NamedAPIResource", + "of": "ContestType" + } + }, + { + "name": "contest_effect", + "description": "The effect the move has when used in a contest.", + "type": { + "type": "APIResource", + "of": "ContestEffect" + } + }, + { + "name": "damage_class", + "description": "The type of damage the move inflicts on the target, e.g. physical.", + "type": { + "type": "NamedAPIResource", + "of": "MoveDamageClass" } + }, + { + "name": "effect_entries", + "description": "The effect of this move listed in different languages.", + "type": { + "type": "list", + "of": "VerboseEffect" + } + }, + { + "name": "effect_changes", + "description": "The list of previous effects this move has had across version groups of the games.", + "type": { + "type": "list", + "of": "AbilityEffectChange" + } + }, + { + "name": "learned_by_pokemon", + "description": "List of Pokemon that can learn the move", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + } + }, + { + "name": "flavor_text_entries", + "description": "The flavor text of this move listed in different languages.", + "type": { + "type": "list", + "of": "MoveFlavorText" + } + }, + { + "name": "generation", + "description": "The generation in which this move was introduced.", + "type": { + "type": "NamedAPIResource ", + "of": "Generation" + } + }, + { + "name": "machines", + "description": "A list of the machines that teach this move.", + "type": { + "type": "list", + "of": "MachineVersionDetail" + } + }, + { + "name": "meta", + "description": "Metadata about this move", + "type": "MoveMetaData" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "past_values", + "description": "A list of move resource value changes across version groups of the game.", + "type": { + "type": "list", + "of": "PastMoveStatValues" + } + }, + { + "name": "stat_changes", + "description": "A list of stats this moves effects and how much it effects them.", + "type": { + "type": "list", + "of": "MoveStatChange" + } + }, + { + "name": "super_contest_effect", + "description": "The effect the move has when used in a super contest.", + "type": { + "type": "APIResource ", + "of": "SuperContestEffect" + } + }, + { + "name": "target", + "description": "The type of target that will receive the effects of the attack.", + "type": { + "type": "NamedAPIResource ", + "of": "MoveTarget" + } + }, + { + "name": "type", + "description": "The elemental type of this move.", + "type": { + "type": "NamedAPIResource ", + "of": "Type" + } + } ] + }, + { + "name": "ContestComboSets", + "fields": [ + { + "name": "normal", + "description": "A detail of moves this move can be used before or after, granting additional appeal points in contests.", + "type": "ContestComboDetail" + }, + { + "name": "super", + "description": "A detail of moves this move can be used before or after, granting additional appeal points in super contests.", + "type": "ContestComboDetail" + } + ] + }, + { + "name": "ContestComboDetail", + "fields": [ + { + "name": "use_before", + "description": "A list of moves to use before this move.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + }, + { + "name": "use_after", + "description": "A list of moves to use after this move.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + } + ] + }, + { + "name": "MoveFlavorText", + "fields": [ + { + "name": "flavor_text", + "description": "The localized flavor text for an api resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + }, + { + "name": "version_group", + "description": "The version group that uses this flavor text.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + } + ] + }, + { + "name": "MoveMetaData", + "fields": [ + { + "name": "ailment", + "description": "The status ailment this move inflicts on its target.", + "type": { + "type": "NamedAPIResource ", + "of": "MoveAilment" + } + }, + { + "name": "category", + "description": "The category of move this move falls under, e.g. damage or ailment.", + "type": { + "type": "NamedAPIResource ", + "of": "MoveCategory" + } + }, + { + "name": "min_hits", + "description": "The minimum number of times this move hits. Null if it always only hits once.", + "type": "integer" + }, + { + "name": "max_hits", + "description": "The maximum number of times this move hits. Null if it always only hits once.", + "type": "integer" + }, + { + "name": "min_turns", + "description": "The minimum number of turns this move continues to take effect. Null if it always only lasts one turn.", + "type": "integer" + }, + { + "name": "max_turns", + "description": "The maximum number of turns this move continues to take effect. Null if it always only lasts one turn.", + "type": "integer" + }, + { + "name": "drain", + "description": "HP drain (if positive) or Recoil damage (if negative), in percent of damage done.", + "type": "integer" + }, + { + "name": "healing", + "description": "The amount of hp gained by the attacking Pokemon, in percent of it's maximum HP.", + "type": "integer" + }, + { + "name": "crit_rate", + "description": "Critical hit rate bonus.", + "type": "integer" + }, + { + "name": "ailment_chance", + "description": "The likelihood this attack will cause an ailment.", + "type": "integer" + }, + { + "name": "flinch_chance", + "description": "The likelihood this attack will cause the target Pokémon to flinch.", + "type": "integer" + }, + { + "name": "stat_chance", + "description": "The likelihood this attack will cause a stat change in the target Pokémon.", + "type": "integer" + } + ] + }, + { + "name": "MoveStatChange", + "fields": [ + { + "name": "change", + "description": "The amount of change.", + "type": "integer" + }, + { + "name": "stat", + "description": "The stat being affected.", + "type": { + "type": "NamedAPIResource ", + "of": "Stat" + } + } + ] + }, + { + "name": "PastMoveStatValues", + "fields": [ + { + "name": "accuracy", + "description": "The percent value of how likely this move is to be successful.", + "type": "integer" + }, + { + "name": "effect_chance", + "description": "The percent value of how likely it is this moves effect will take effect.", + "type": "integer" + }, + { + "name": "power", + "description": "The base power of this move with a value of 0 if it does not have a base power.", + "type": "integer" + }, + { + "name": "pp", + "description": "Power points. The number of times this move can be used.", + "type": "integer" + }, + { + "name": "effect_entries", + "description": "The effect of this move listed in different languages.", + "type": { + "type": "list", + "of": "VerboseEffect" + } + }, + { + "name": "type", + "description": "The elemental type of this move.", + "type": { + "type": "NamedAPIResource ", + "of": "Type" + } + }, + { + "name": "version_group", + "description": "The version group in which these move stat values were in effect.", + "type": { + "type": "NamedAPIResource ", + "of": "VersionGroup" + } + } + ] + } + ] + }, + { + "name": "Move Ailments", + "description": "Move Ailments are status conditions caused by moves used during battle. See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Status_condition) for greater detail.", + "exampleRequest": "/v2/move-ailment/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "paralysis", + "moves": [ + { + "name": "thunder-punch", + "url": "$BASE_URL/v2/move/9/" + } + ], + "names": [ + { + "name": "Paralysis", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Move Ailments", - "description": "Move Ailments are status conditions caused by moves used during battle. See [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Status_condition) for greater detail.", - "exampleRequest": "/v2/move-ailment/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "paralysis", - "moves": [{ - "name": "thunder-punch", - "url": "$BASE_URL/v2/move/9/" - }], - "names": [{ - "name": "Paralysis", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "MoveAilment", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "moves", - "description": "A list of moves that cause this ailment.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + "responseModels": [ + { + "name": "MoveAilment", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "moves", + "description": "A list of moves that cause this ailment.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + } ] + } + ] + }, + { + "name": "Move Battle Styles", + "description": "Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Frontier_(Generation_III)) for greater detail.", + "exampleRequest": "/v2/move-battle-style/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "attack", + "names": [ + { + "name": "Attack", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Move Battle Styles", - "description": "Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Frontier_(Generation_III)) for greater detail.", - "exampleRequest": "/v2/move-battle-style/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "attack", - "names": [{ - "name": "Attack", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "MoveBattleStyle", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + "responseModels": [ + { + "name": "MoveBattleStyle", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + } ] + } + ] + }, + { + "name": "Move Categories", + "description": "Very general categories that loosely group move effects.", + "exampleRequest": "/v2/move-category/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "ailment", + "descriptions": [ + { + "description": "No damage; inflicts status ailment", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "moves": [ + { + "name": "sing", + "url": "$BASE_URL/v2/move/47/" + } + ] }, - { - "name": "Move Categories", - "description": "Very general categories that loosely group move effects.", - "exampleRequest": "/v2/move-category/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "ailment", - "descriptions": [{ - "description": "No damage; inflicts status ailment", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }], - "moves": [{ - "name": "sing", - "url": "$BASE_URL/v2/move/47/" - }] - }, - "responseModels": [ - { - "name": "MoveCategory", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "moves", - "description": "A list of moves that fall into this category.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - }, - { - "name": "descriptions", - "description": "The description of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - } - ] + "responseModels": [ + { + "name": "MoveCategory", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "moves", + "description": "A list of moves that fall into this category.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + }, + { + "name": "descriptions", + "description": "The description of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Description" } + } ] + } + ] + }, + { + "name": "Move Damage Classes", + "description": "Damage classes moves can have, e.g. physical, special, or non-damaging.", + "exampleRequest": "/v2/move-damage-class/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "status", + "descriptions": [ + { + "description": "ダメージない", + "language": { + "name": "ja", + "url": "$BASE_URL/v2/language/1/" + } + } + ], + "moves": [ + { + "name": "swords-dance", + "url": "$BASE_URL/v2/move/14/" + } + ] }, - { - "name": "Move Damage Classes", - "description": "Damage classes moves can have, e.g. physical, special, or non-damaging.", - "exampleRequest": "/v2/move-damage-class/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "status", - "descriptions": [{ - "description": "ダメージない", - "language": { - "name": "ja", - "url": "$BASE_URL/v2/language/1/" - } - }], - "moves": [{ - "name": "swords-dance", - "url": "$BASE_URL/v2/move/14/" - }] - }, - "responseModels": [ - { - "name": "MoveDamageClass", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "descriptions", - "description": "The description of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - }, - { - "name": "moves", - "description": "A list of moves that fall into this damage class.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + "responseModels": [ + { + "name": "MoveDamageClass", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "descriptions", + "description": "The description of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Description" + } + }, + { + "name": "moves", + "description": "A list of moves that fall into this damage class.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + } ] + } + ] + }, + { + "name": "Move Learn Methods", + "description": "Methods by which Pokémon can learn moves.", + "exampleRequest": "/v2/move-learn-method/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "level-up", + "names": [ + { + "name": "Level up", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "descriptions": [ + { + "description": "Wird gelernt, wenn ein Pokémon ein bestimmtes Level erreicht.", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "version_groups": [ + { + "name": "red-blue", + "url": "$BASE_URL/v2/version-group/1/" + } + ] }, - { - "name": "Move Learn Methods", - "description": "Methods by which Pokémon can learn moves.", - "exampleRequest": "/v2/move-learn-method/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "level-up", - "names": [{ - "name": "Level up", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "descriptions": [{ - "description": "Wird gelernt, wenn ein Pokémon ein bestimmtes Level erreicht.", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "version_groups": [{ - "name": "red-blue", - "url": "$BASE_URL/v2/version-group/1/" - }] - }, - "responseModels": [ - { - "name": "MoveLearnMethod", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "descriptions", - "description": "The description of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "version_groups", - "description": "A list of version groups where moves can be learned through this method.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - } - ] + "responseModels": [ + { + "name": "MoveLearnMethod", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "descriptions", + "description": "The description of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Description" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "version_groups", + "description": "A list of version groups where moves can be learned through this method.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } } + } ] + } + ] + }, + { + "name": "Move Targets", + "description": "Targets moves can be directed at during battle. Targets can be Pokémon, environments or even other moves.", + "exampleRequest": "/v2/move-target/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "specific-move", + "descriptions": [ + { + "description": "Eine spezifische Fähigkeit. Wie diese Fähigkeit genutzt wird, hängt von den genutzten Fähigkeiten ab.", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "moves": [ + { + "name": "counter", + "url": "$BASE_URL/v2/move/68/" + } + ], + "names": [ + { + "name": "Spezifische Fähigkeit", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ] }, - { - "name": "Move Targets", - "description": "Targets moves can be directed at during battle. Targets can be Pokémon, environments or even other moves.", - "exampleRequest": "/v2/move-target/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "specific-move", - "descriptions": [{ - "description": "Eine spezifische Fähigkeit. Wie diese Fähigkeit genutzt wird, hängt von den genutzten Fähigkeiten ab.", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }], - "moves": [{ - "name": "counter", - "url": "$BASE_URL/v2/move/68/" - }], - "names": [{ - "name": "Spezifische Fähigkeit", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - }] - }, - "responseModels": [ - { - "name": "MoveTarget", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "descriptions", - "description": "The description of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - }, - { - "name": "moves", - "description": "A list of moves that that are directed at this target.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + "responseModels": [ + { + "name": "MoveTarget", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "descriptions", + "description": "The description of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Description" + } + }, + { + "name": "moves", + "description": "A list of moves that that are directed at this target.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + } ] - } + } + ] + } ] diff --git a/src/data/operations/pokemon.json b/src/data/operations/pokemon.json index 7d448df..a4338ba 100644 --- a/src/data/operations/pokemon.json +++ b/src/data/operations/pokemon.json @@ -1,2880 +1,2872 @@ [ - { - "name": "Abilities", - "description": "Abilities provide passive effects for Pokémon in battle or in the overworld. Pokémon have multiple possible abilities but can have only one ability at a time. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Ability) for greater detail.", - "exampleRequest": "/v2/ability/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "stench", - "is_main_series": true, - "generation": { - "name": "generation-iii", - "url": "$BASE_URL/v2/generation/3/" - }, - "names": [ - { - "name": "Stench", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ], - "effect_entries": [ - { - "effect": "This Pokémon's damaging moves have a 10% chance to make the target [flinch]{mechanic:flinch} with each hit if they do not already cause flinching as a secondary effect.\n\nThis ability does not stack with a held item.\n\nOverworld: The wild encounter rate is halved while this Pokémon is first in the party.", - "short_effect": "Has a 10% chance of making target Pokémon [flinch]{mechanic:flinch} with each hit.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ], - "effect_changes": [ - { - "version_group": { - "name": "black-white", - "url": "$BASE_URL/v2/version-group/11/" - }, - "effect_entries": [ - { - "effect": "Has no effect in battle.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ] - } - ], - "flavor_text_entries": [ - { - "flavor_text": "臭くて 相手が\nひるむ ことがある。", - "language": { - "name": "ja-kanji", - "url": "$BASE_URL/v2/language/11/" - }, - "version_group": { - "name": "x-y", - "url": "$BASE_URL/v2/version-group/15/" - } - } - ], - "pokemon": [ - { - "is_hidden": true, - "slot": 3, - "pokemon": { - "name": "gloom", - "url": "$BASE_URL/v2/pokemon/44/" - } - } - ] - }, - "responseModels": [ - { - "name": "Ability", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "is_main_series", - "description": "Whether or not this ability originated in the main series of the video games.", - "type": "boolean" - }, - { - "name": "generation", - "description": "The generation this ability originated in.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "effect_entries", - "description": "The effect of this ability listed in different languages.", - "type": { - "type": "list", - "of": "VerboseEffect" - } - }, - { - "name": "effect_changes", - "description": "The list of previous effects this ability has had across version groups.", - "type": { - "type": "list", - "of": "AbilityEffectChange" - } - }, - { - "name": "flavor_text_entries", - "description": "The flavor text of this ability listed in different languages.", - "type": { - "type": "list", - "of": "AbilityFlavorText" - } - }, - { - "name": "pokemon", - "description": "A list of Pokémon that could potentially have this ability.", - "type": { - "type": "list", - "of": "AbilityPokemon" - } - } - ] - }, - { - "name": "AbilityEffectChange", - "fields": [ - { - "name": "effect_entries", - "description": "The previous effect of this ability listed in different languages.", - "type": { - "type": "list", - "of": "Effect" - } - }, - { - "name": "version_group", - "description": "The version group in which the previous effect of this ability originated.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - ] - }, + { + "name": "Abilities", + "description": "Abilities provide passive effects for Pokémon in battle or in the overworld. Pokémon have multiple possible abilities but can have only one ability at a time. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Ability) for greater detail.", + "exampleRequest": "/v2/ability/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "stench", + "is_main_series": true, + "generation": { + "name": "generation-iii", + "url": "$BASE_URL/v2/generation/3/" + }, + "names": [ + { + "name": "Stench", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "effect_entries": [ + { + "effect": "This Pokémon's damaging moves have a 10% chance to make the target [flinch]{mechanic:flinch} with each hit if they do not already cause flinching as a secondary effect.\n\nThis ability does not stack with a held item.\n\nOverworld: The wild encounter rate is halved while this Pokémon is first in the party.", + "short_effect": "Has a 10% chance of making target Pokémon [flinch]{mechanic:flinch} with each hit.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "effect_changes": [ + { + "version_group": { + "name": "black-white", + "url": "$BASE_URL/v2/version-group/11/" + }, + "effect_entries": [ { - "name": "AbilityFlavorText", - "fields": [ - { - "name": "flavor_text", - "description": "The localized name for an API resource in a specific language.", - "type": "string" - }, - { - "name": "language", - "description": "The language this text resource is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - }, - { - "name": "version_group", - "description": "The version group that uses this flavor text.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - ] - }, - { - "name": "AbilityPokemon", - "fields": [ - { - "name": "is_hidden", - "description": "Whether or not this a hidden ability for the referenced Pokémon.", - "type": "boolean" - }, - { - "name": "slot", - "description": "Pokémon have 3 ability 'slots' which hold references to possible abilities they could have. This is the slot of this ability for the referenced pokemon.", - "type": "integer" - }, - { - "name": "pokemon", - "description": "The Pokémon this ability could belong to.", - "type": { - "type": "NamedAPIResource", - "of": "Pokemon" - } - } - ] + "effect": "Has no effect in battle.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } } - ] + ] + } + ], + "flavor_text_entries": [ + { + "flavor_text": "臭くて 相手が\nひるむ ことがある。", + "language": { + "name": "ja", + "url": "$BASE_URL/v2/language/11/" + }, + "version_group": { + "name": "x-y", + "url": "$BASE_URL/v2/version-group/15/" + } + } + ], + "pokemon": [ + { + "is_hidden": true, + "slot": 3, + "pokemon": { + "name": "gloom", + "url": "$BASE_URL/v2/pokemon/44/" + } + } + ] }, - { - "name": "Characteristics", - "description": "Characteristics indicate which stat contains a Pokémon's highest IV. A Pokémon's Characteristic is determined by the remainder of its highest IV divided by 5 (gene_modulo). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Characteristic) for greater detail.", - "exampleRequest": "/v2/characteristic/{id}/", - "exampleResponse": { - "id": 1, - "gene_modulo": 0, - "possible_values": [ - 0, - 5, - 10, - 15, - 20, - 25, - 30 - ], - "highest_stat": { - "name": "hp", - "url": "$BASE_URL/v2/stat/1/" - }, - "descriptions": [ - { - "description": "Loves to eat", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ] - }, - "responseModels": [ - { - "name": "Characteristic", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "gene_modulo", - "description": "The remainder of the highest stat/IV divided by 5.", - "type": "integer" - }, - { - "name": "possible_values", - "description": "The possible values of the highest stat that would result in a Pokémon recieving this characteristic when divided by 5.", - "type": { - "type": "list", - "of": "integer" - } - }, - { - "name": "highest_stat", - "description": "The stat which results in this characteristic.", - "type": { - "type": "NamedAPIResource", - "of": "Stat" - } - }, - { - "name": "descriptions", - "description": "The descriptions of this characteristic listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - } - ] + "responseModels": [ + { + "name": "Ability", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "is_main_series", + "description": "Whether or not this ability originated in the main series of the video games.", + "type": "boolean" + }, + { + "name": "generation", + "description": "The generation this ability originated in.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + }, + { + "name": "effect_entries", + "description": "The effect of this ability listed in different languages.", + "type": { + "type": "list", + "of": "VerboseEffect" + } + }, + { + "name": "effect_changes", + "description": "The list of previous effects this ability has had across version groups.", + "type": { + "type": "list", + "of": "AbilityEffectChange" + } + }, + { + "name": "flavor_text_entries", + "description": "The flavor text of this ability listed in different languages.", + "type": { + "type": "list", + "of": "AbilityFlavorText" + } + }, + { + "name": "pokemon", + "description": "A list of Pokémon that could potentially have this ability.", + "type": { + "type": "list", + "of": "AbilityPokemon" + } + } ] - }, - { - "name": "Egg Groups", - "description": "Egg Groups are categories which determine which Pokémon are able to interbreed. Pokémon may belong to either one or two Egg Groups. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Egg_Group) for greater detail.", - "exampleRequest": "/v2/egg-group/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "monster", - "names": [ - { - "name": "かいじゅう", - "language": { - "name": "ja", - "url": "$BASE_URL/v2/language/1/" - } - } - ], - "pokemon_species": [ - { - "name": "bulbasaur", - "url": "$BASE_URL/v2/pokemon-species/1/" - } - ] - }, - "responseModels": [ - { - "name": "EggGroup", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_species", - "description": "A list of all Pokémon species that are members of this egg group.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - } - ] + }, + { + "name": "AbilityEffectChange", + "fields": [ + { + "name": "effect_entries", + "description": "The previous effect of this ability listed in different languages.", + "type": { + "type": "list", + "of": "Effect" + } + }, + { + "name": "version_group", + "description": "The version group in which the previous effect of this ability originated.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" } + } ] + }, + { + "name": "AbilityFlavorText", + "fields": [ + { + "name": "flavor_text", + "description": "The localized name for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this text resource is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + }, + { + "name": "version_group", + "description": "The version group that uses this flavor text.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + } + ] + }, + { + "name": "AbilityPokemon", + "fields": [ + { + "name": "is_hidden", + "description": "Whether or not this a hidden ability for the referenced Pokémon.", + "type": "boolean" + }, + { + "name": "slot", + "description": "Pokémon have 3 ability 'slots' which hold references to possible abilities they could have. This is the slot of this ability for the referenced pokemon.", + "type": "integer" + }, + { + "name": "pokemon", + "description": "The Pokémon this ability could belong to.", + "type": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + } + ] + } + ] + }, + { + "name": "Characteristics", + "description": "Characteristics indicate which stat contains a Pokémon's highest IV. A Pokémon's Characteristic is determined by the remainder of its highest IV divided by 5 (gene_modulo). Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Characteristic) for greater detail.", + "exampleRequest": "/v2/characteristic/{id}/", + "exampleResponse": { + "id": 1, + "gene_modulo": 0, + "possible_values": [0, 5, 10, 15, 20, 25, 30], + "highest_stat": { + "name": "hp", + "url": "$BASE_URL/v2/stat/1/" + }, + "descriptions": [ + { + "description": "Loves to eat", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Genders", - "description": "Genders were introduced in Generation II for the purposes of breeding Pokémon but can also result in visual differences or even different evolutionary lines. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Gender) for greater detail.", - "exampleRequest": "/v2/gender/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "female", - "pokemon_species_details": [ - { - "rate": 1, - "pokemon_species": { - "name": "bulbasaur", - "url": "$BASE_URL/v2/pokemon-species/1/" - } - } - ], - "required_for_evolution": [ - { - "name": "wormadam", - "url": "$BASE_URL/v2/pokemon-species/413/" - } - ] - }, - "responseModels": [ - { - "name": "Gender", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "pokemon_species_details", - "description": "A list of Pokémon species that can be this gender and how likely it is that they will be.", - "type": { - "type": "list", - "of": "PokemonSpeciesGender" - } - }, - { - "name": "required_for_evolution", - "description": "A list of Pokémon species that required this gender in order for a Pokémon to evolve into them.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - } - ] - }, - { - "name": "PokemonSpeciesGender", - "fields": [ - { - "name": "rate", - "description": "The chance of this Pokémon being female, in eighths; or -1 for genderless.", - "type": "integer" - }, - { - "name": "pokemon_species", - "description": "A Pokémon species that can be the referenced gender.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - ] + "responseModels": [ + { + "name": "Characteristic", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "gene_modulo", + "description": "The remainder of the highest stat/IV divided by 5.", + "type": "integer" + }, + { + "name": "possible_values", + "description": "The possible values of the highest stat that would result in a Pokémon recieving this characteristic when divided by 5.", + "type": { + "type": "list", + "of": "integer" } + }, + { + "name": "highest_stat", + "description": "The stat which results in this characteristic.", + "type": { + "type": "NamedAPIResource", + "of": "Stat" + } + }, + { + "name": "descriptions", + "description": "The descriptions of this characteristic listed in different languages.", + "type": { + "type": "list", + "of": "Description" + } + } ] + } + ] + }, + { + "name": "Egg Groups", + "description": "Egg Groups are categories which determine which Pokémon are able to interbreed. Pokémon may belong to either one or two Egg Groups. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Egg_Group) for greater detail.", + "exampleRequest": "/v2/egg-group/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "monster", + "names": [ + { + "name": "かいじゅう", + "language": { + "name": "ja", + "url": "$BASE_URL/v2/language/1/" + } + } + ], + "pokemon_species": [ + { + "name": "bulbasaur", + "url": "$BASE_URL/v2/pokemon-species/1/" + } + ] }, - { - "name": "Growth Rates", - "description": "Growth rates are the speed with which Pokémon gain levels through experience. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Experience) for greater detail.", - "exampleRequest": "/v2/growth-rate/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "slow", - "formula": "\\frac{5x^3}{4}", - "descriptions": [ - { - "description": "langsam", - "language": { - "name": "de", - "url": "$BASE_URL/v2/language/6/" - } - } - ], - "levels": [ - { - "level": 100, - "experience": 1250000 - } - ], - "pokemon_species": [ - { - "name": "growlithe", - "url": "$BASE_URL/v2/pokemon-species/58/" - } - ] - }, - "responseModels": [ - { - "name": "GrowthRate", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "formula", - "description": "The formula used to calculate the rate at which the Pokémon species gains level.", - "type": "string" - }, - { - "name": "descriptions", - "description": "The descriptions of this characteristic listed in different languages.", - "type": { - "type": "list", - "of": "Description" - } - }, - { - "name": "levels", - "description": "A list of levels and the amount of experienced needed to atain them based on this growth rate.", - "type": { - "type": "list", - "of": "GrowthRateExperienceLevel" - } - }, - { - "name": "pokemon_species", - "description": "A list of Pokémon species that gain levels at this growth rate.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - } - ] - }, - { - "name": "GrowthRateExperienceLevel", - "fields": [ - { - "name": "level", - "description": "The level gained.", - "type": "integer" - }, - { - "name": "experience", - "description": "The amount of experience required to reach the referenced level.", - "type": "integer" - } - ] + "responseModels": [ + { + "name": "EggGroup", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pokemon_species", + "description": "A list of all Pokémon species that are members of this egg group.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } } + } ] + } + ] + }, + { + "name": "Genders", + "description": "Genders were introduced in Generation II for the purposes of breeding Pokémon but can also result in visual differences or even different evolutionary lines. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Gender) for greater detail.", + "exampleRequest": "/v2/gender/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "female", + "pokemon_species_details": [ + { + "rate": 1, + "pokemon_species": { + "name": "bulbasaur", + "url": "$BASE_URL/v2/pokemon-species/1/" + } + } + ], + "required_for_evolution": [ + { + "name": "wormadam", + "url": "$BASE_URL/v2/pokemon-species/413/" + } + ] }, - { - "name": "Natures", - "description": "Natures influence how a Pokémon's stats grow. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Nature) for greater detail.", - "exampleRequest": "/v2/nature/{id or name}/", - "exampleResponse": { - "id": 2, - "name": "bold", - "decreased_stat": { - "name": "attack", - "url": "$BASE_URL/v2/stat/2/" - }, - "increased_stat": { - "name": "defense", - "url": "$BASE_URL/v2/stat/3/" - }, - "likes_flavor": { - "name": "sour", - "url": "$BASE_URL/v2/berry-flavor/5/" - }, - "hates_flavor": { - "name": "spicy", - "url": "$BASE_URL/v2/berry-flavor/1/" - }, - "pokeathlon_stat_changes": [ - { - "max_change": -2, - "pokeathlon_stat": { - "name": "speed", - "url": "$BASE_URL/v2/pokeathlon-stat/1/" - } - } - ], - "move_battle_style_preferences": [ - { - "low_hp_preference": 32, - "high_hp_preference": 30, - "move_battle_style": { - "name": "attack", - "url": "$BASE_URL/v2/move-battle-style/1/" - } - } - ], - "names": [ - { - "name": "がんばりや", - "language": { - "name": "ja", - "url": "$BASE_URL/v2/language/1/" - } - } - ] - }, - "responseModels": [ - { - "name": "Nature", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "decreased_stat", - "description": "The stat decreased by 10% in Pokémon with this nature.", - "type": { - "type": "NamedAPIResource", - "of": "Stat" - } - }, - { - "name": "increased_stat", - "description": "The stat increased by 10% in Pokémon with this nature.", - "type": { - "type": "NamedAPIResource", - "of": "Stat" - } - }, - { - "name": "hates_flavor", - "description": "The flavor hated by Pokémon with this nature.", - "type": { - "type": "NamedAPIResource", - "of": "BerryFlavor" - } - }, - { - "name": "likes_flavor", - "description": "The flavor liked by Pokémon with this nature.", - "type": { - "type": "NamedAPIResource", - "of": "BerryFlavor" - } - }, - { - "name": "pokeathlon_stat_changes", - "description": "A list of Pokéathlon stats this nature effects and how much it effects them.", - "type": { - "type": "list", - "of": "NatureStatChange" - } - }, - { - "name": "move_battle_style_preferences", - "description": "A list of battle styles and how likely a Pokémon with this nature is to use them in the Battle Palace or Battle Tent.", - "type": { - "type": "list", - "of": "MoveBattleStylePreference" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] - }, - { - "name": "NatureStatChange", - "fields": [ - { - "name": "max_change", - "description": "The amount of change.", - "type": "integer" - }, - { - "name": "pokeathlon_stat", - "description": "The stat being affected.", - "type": { - "type": "NamedAPIResource", - "of": "PokeathlonStat" - } - } - ] - }, - { - "name": "MoveBattleStylePreference", - "fields": [ - { - "name": "low_hp_preference", - "description": "Chance of using the move, in percent, if HP is under one half.", - "type": "integer" - }, - { - "name": "high_hp_preference", - "description": "Chance of using the move, in percent, if HP is over one half.", - "type": "integer" - }, - { - "name": "move_battle_style", - "description": "The move battle style.", - "type": { - "type": "NamedAPIResource", - "of": "MoveBattleStyle" - } - } - ] + "responseModels": [ + { + "name": "Gender", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "pokemon_species_details", + "description": "A list of Pokémon species that can be this gender and how likely it is that they will be.", + "type": { + "type": "list", + "of": "PokemonSpeciesGender" + } + }, + { + "name": "required_for_evolution", + "description": "A list of Pokémon species that required this gender in order for a Pokémon to evolve into them.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } + } + } + ] + }, + { + "name": "PokemonSpeciesGender", + "fields": [ + { + "name": "rate", + "description": "The chance of this Pokémon being female, in eighths; or -1 for genderless.", + "type": "integer" + }, + { + "name": "pokemon_species", + "description": "A Pokémon species that can be the referenced gender.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" } + } ] + } + ] + }, + { + "name": "Growth Rates", + "description": "Growth rates are the speed with which Pokémon gain levels through experience. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Experience) for greater detail.", + "exampleRequest": "/v2/growth-rate/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "slow", + "formula": "\\frac{5x^3}{4}", + "descriptions": [ + { + "description": "langsam", + "language": { + "name": "de", + "url": "$BASE_URL/v2/language/6/" + } + } + ], + "levels": [ + { + "level": 100, + "experience": 1250000 + } + ], + "pokemon_species": [ + { + "name": "growlithe", + "url": "$BASE_URL/v2/pokemon-species/58/" + } + ] }, - { - "name": "Pokeathlon Stats", - "description": "Pokeathlon Stats are different attributes of a Pokémon's performance in Pokéathlons. In Pokéathlons, competitions happen on different courses; one for each of the different Pokéathlon stats. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9athlon) for greater detail.", - "exampleRequest": "/v2/pokeathlon-stat/{id or name}/", - "exampleResponse": { - "id": 1, + "responseModels": [ + { + "name": "GrowthRate", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "formula", + "description": "The formula used to calculate the rate at which the Pokémon species gains level.", + "type": "string" + }, + { + "name": "descriptions", + "description": "The descriptions of this characteristic listed in different languages.", + "type": { + "type": "list", + "of": "Description" + } + }, + { + "name": "levels", + "description": "A list of levels and the amount of experienced needed to atain them based on this growth rate.", + "type": { + "type": "list", + "of": "GrowthRateExperienceLevel" + } + }, + { + "name": "pokemon_species", + "description": "A list of Pokémon species that gain levels at this growth rate.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } + } + } + ] + }, + { + "name": "GrowthRateExperienceLevel", + "fields": [ + { + "name": "level", + "description": "The level gained.", + "type": "integer" + }, + { + "name": "experience", + "description": "The amount of experience required to reach the referenced level.", + "type": "integer" + } + ] + } + ] + }, + { + "name": "Natures", + "description": "Natures influence how a Pokémon's stats grow. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Nature) for greater detail.", + "exampleRequest": "/v2/nature/{id or name}/", + "exampleResponse": { + "id": 2, + "name": "bold", + "decreased_stat": { + "name": "attack", + "url": "$BASE_URL/v2/stat/2/" + }, + "increased_stat": { + "name": "defense", + "url": "$BASE_URL/v2/stat/3/" + }, + "likes_flavor": { + "name": "sour", + "url": "$BASE_URL/v2/berry-flavor/5/" + }, + "hates_flavor": { + "name": "spicy", + "url": "$BASE_URL/v2/berry-flavor/1/" + }, + "pokeathlon_stat_changes": [ + { + "max_change": -2, + "pokeathlon_stat": { "name": "speed", - "affecting_natures": { - "increase": [ - { - "max_change": 2, - "nature": { - "name": "timid", - "url": "$BASE_URL/v2/nature/5/" - } - } - ], - "decrease": [ - { - "max_change": -1, - "nature": { - "name": "hardy", - "url": "$BASE_URL/v2/nature/1/" - } - } - ] - }, - "names": [ - { - "name": "Speed", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ] - }, - "responseModels": [ - { - "name": "PokeathlonStat", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "affecting_natures", - "description": "A detail of natures which affect this Pokéathlon stat positively or negatively.", - "type": "NaturePokeathlonStatAffectSets" - } - ] - }, - { - "name": "NaturePokeathlonStatAffectSets", - "fields": [ - { - "name": "increase", - "description": "A list of natures and how they change the referenced Pokéathlon stat.", - "type": { - "type": "list", - "of": "NaturePokeathlonStatAffect" - } - }, - { - "name": "decrease", - "description": "A list of natures and how they change the referenced Pokéathlon stat.", - "type": { - "type": "list", - "of": "NaturePokeathlonStatAffect" - } - } - ] - }, - { - "name": "NaturePokeathlonStatAffect", - "fields": [ - { - "name": "max_change", - "description": "The maximum amount of change to the referenced Pokéathlon stat.", - "type": "integer" - }, - { - "name": "nature", - "description": "The nature causing the change.", - "type": { - "type": "NamedAPIResource", - "of": "Nature" - } - } - ] + "url": "$BASE_URL/v2/pokeathlon-stat/1/" + } + } + ], + "move_battle_style_preferences": [ + { + "low_hp_preference": 32, + "high_hp_preference": 30, + "move_battle_style": { + "name": "attack", + "url": "$BASE_URL/v2/move-battle-style/1/" + } + } + ], + "names": [ + { + "name": "がんばりや", + "language": { + "name": "ja", + "url": "$BASE_URL/v2/language/1/" + } + } + ] + }, + "responseModels": [ + { + "name": "Nature", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "decreased_stat", + "description": "The stat decreased by 10% in Pokémon with this nature.", + "type": { + "type": "NamedAPIResource", + "of": "Stat" + } + }, + { + "name": "increased_stat", + "description": "The stat increased by 10% in Pokémon with this nature.", + "type": { + "type": "NamedAPIResource", + "of": "Stat" } + }, + { + "name": "hates_flavor", + "description": "The flavor hated by Pokémon with this nature.", + "type": { + "type": "NamedAPIResource", + "of": "BerryFlavor" + } + }, + { + "name": "likes_flavor", + "description": "The flavor liked by Pokémon with this nature.", + "type": { + "type": "NamedAPIResource", + "of": "BerryFlavor" + } + }, + { + "name": "pokeathlon_stat_changes", + "description": "A list of Pokéathlon stats this nature effects and how much it effects them.", + "type": { + "type": "list", + "of": "NatureStatChange" + } + }, + { + "name": "move_battle_style_preferences", + "description": "A list of battle styles and how likely a Pokémon with this nature is to use them in the Battle Palace or Battle Tent.", + "type": { + "type": "list", + "of": "MoveBattleStylePreference" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + } + ] + }, + { + "name": "NatureStatChange", + "fields": [ + { + "name": "max_change", + "description": "The amount of change.", + "type": "integer" + }, + { + "name": "pokeathlon_stat", + "description": "The stat being affected.", + "type": { + "type": "NamedAPIResource", + "of": "PokeathlonStat" + } + } + ] + }, + { + "name": "MoveBattleStylePreference", + "fields": [ + { + "name": "low_hp_preference", + "description": "Chance of using the move, in percent, if HP is under one half.", + "type": "integer" + }, + { + "name": "high_hp_preference", + "description": "Chance of using the move, in percent, if HP is over one half.", + "type": "integer" + }, + { + "name": "move_battle_style", + "description": "The move battle style.", + "type": { + "type": "NamedAPIResource", + "of": "MoveBattleStyle" + } + } + ] + } + ] + }, + { + "name": "Pokeathlon Stats", + "description": "Pokeathlon Stats are different attributes of a Pokémon's performance in Pokéathlons. In Pokéathlons, competitions happen on different courses; one for each of the different Pokéathlon stats. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9athlon) for greater detail.", + "exampleRequest": "/v2/pokeathlon-stat/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "speed", + "affecting_natures": { + "increase": [ + { + "max_change": 2, + "nature": { + "name": "timid", + "url": "$BASE_URL/v2/nature/5/" + } + } + ], + "decrease": [ + { + "max_change": -1, + "nature": { + "name": "hardy", + "url": "$BASE_URL/v2/nature/1/" + } + } ] + }, + "names": [ + { + "name": "Speed", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] }, - { - "name": "Pokemon", - "description": "Pokémon are the creatures that inhabit the world of the Pokémon games. They can be caught using Pokéballs and trained by battling with other Pokémon. Each Pokémon belongs to a specific species but may take on a variant which makes it differ from other Pokémon of the same species, such as base stats, available abilities and typings. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species)) for greater detail.", - "exampleRequest": "/v2/pokemon/{id or name}/", - "exampleResponse": { - "id": 35, - "name": "clefairy", - "base_experience": 113, - "height": 6, - "is_default": true, - "order": 56, - "weight": 75, - "abilities": [ - { - "is_hidden": true, - "slot": 3, - "ability": { - "name": "friend-guard", - "url": "$BASE_URL/v2/ability/132/" - } - } - ], - "forms": [ - { - "name": "clefairy", - "url": "$BASE_URL/v2/pokemon-form/35/" - } - ], - "game_indices": [ - { - "game_index": 35, - "version": { - "name": "white-2", - "url": "$BASE_URL/v2/version/22/" - } - } - ], - "held_items": [ - { - "item": { - "name": "moon-stone", - "url": "$BASE_URL/v2/item/81/" - }, - "version_details": [ - { - "rarity": 5, - "version": { - "name": "ruby", - "url": "$BASE_URL/v2/version/7/" - } - } - ] - } - ], - "location_area_encounters": "/api/v2/pokemon/35/encounters", - "moves": [ - { - "move": { - "name": "pound", - "url": "$BASE_URL/v2/move/1/" - }, - "version_group_details": [ - { - "level_learned_at": 1, - "version_group": { - "name": "red-blue", - "url": "$BASE_URL/v2/version-group/1/" - }, - "move_learn_method": { - "name": "level-up", - "url": "$BASE_URL/v2/move-learn-method/1/" - }, - "order": 1 - } - ] - } - ], - "species": { - "name": "clefairy", - "url": "$BASE_URL/v2/pokemon-species/35/" - }, - "sprites": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/35.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/35.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/35.png", - "front_shiny_female": null, - "other": { - "dream_world": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/35.svg", - "front_female": null - }, - "home": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/35.png", - "front_shiny_female": null - }, - "official-artwork": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/35.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/35.png" - }, - "showdown": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/35.gif", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/shiny/35.gif", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/35.gif", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/35.gif", - "front_shiny_female": null - } - }, - "versions": { - "generation-i": { - "red-blue": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/35.png", - "back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/35.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/35.png", - "front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/35.png" - }, - "yellow": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/35.png", - "back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/35.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/35.png", - "front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/35.png" - } - }, - "generation-ii": { - "crystal": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/35.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/35.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/35.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/35.png" - }, - "gold": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/35.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/35.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/35.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/35.png" - }, - "silver": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/35.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/35.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/35.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/35.png" - } - }, - "generation-iii": { - "emerald": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/35.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/35.png" - }, - "firered-leafgreen": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/35.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/35.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/35.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/35.png" - }, - "ruby-sapphire": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/35.png", - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/35.png", - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/35.png", - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/35.png" - } - }, - "generation-iv": { - "diamond-pearl": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/35.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/35.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/35.png", - "front_shiny_female": null - }, - "heartgold-soulsilver": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/35.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/35.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/35.png", - "front_shiny_female": null - }, - "platinum": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/35.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/35.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/35.png", - "front_shiny_female": null - } - }, - "generation-v": { - "black-white": { - "animated": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/35.gif", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/35.gif", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/35.gif", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/35.gif", - "front_shiny_female": null - }, - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/35.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/35.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/35.png", - "front_shiny_female": null - } - }, - "generation-vi": { - "omegaruby-alphasapphire": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/35.png", - "front_shiny_female": null - }, - "x-y": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/35.png", - "front_shiny_female": null - } - }, - "generation-vii": { - "icons": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/35.png", - "front_female": null - }, - "ultra-sun-ultra-moon": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/35.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/35.png", - "front_shiny_female": null - } - }, - "generation-viii": { - "icons": { - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/35.png", - "front_female": null - } - } - } - }, - "cries": { - "latest": "https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/35.ogg", - "legacy": "https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/35.ogg" - }, - "stats": [ - { - "base_stat": 35, - "effort": 0, - "stat": { - "name": "speed", - "url": "$BASE_URL/v2/stat/6/" - } - } - ], - "types": [ - { - "slot": 1, - "type": { - "name": "fairy", - "url": "$BASE_URL/v2/type/18/" - } - } - ], - "past_types": [ - { - "generation": { - "name": "generation-v", - "url": "$BASE_URL/v2/generation/5/" - }, - "types": [ - { - "slot": 1, - "type": { - "name": "normal", - "url": "$BASE_URL/v2/type/1/" - } - } - ] - } - ], - "past_abilities": [ - { - "generation": { - "name": "generation-iv", - "url": "$BASE_URL/v2/generation/4/" - }, - "abilities": [ - { - "ability": null, - "is_hidden": true, - "slot": 3 - } - ] - } - ] - }, - "responseModels": [ - { - "name": "Pokemon", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "base_experience", - "description": "The base experience gained for defeating this Pokémon.", - "type": "integer" - }, - { - "name": "height", - "description": "The height of this Pokémon in decimetres.", - "type": "integer" - }, - { - "name": "is_default", - "description": "Set for exactly one Pokémon used as the default for each species.", - "type": "boolean" - }, - { - "name": "order", - "description": "Order for sorting. Almost national order, except families are grouped together.", - "type": "integer" - }, - { - "name": "weight", - "description": "The weight of this Pokémon in hectograms.", - "type": "integer" - }, - { - "name": "abilities", - "description": "A list of abilities this Pokémon could potentially have.", - "type": { - "type": "list", - "of": "PokemonAbility" - } - }, - { - "name": "forms", - "description": "A list of forms this Pokémon can take on.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonForm" - } - } - }, - { - "name": "game_indices", - "description": "A list of game indices relevent to Pokémon item by generation.", - "type": { - "type": "list", - "of": "VersionGameIndex" - } - }, - { - "name": "held_items", - "description": "A list of items this Pokémon may be holding when encountered.", - "type": { - "type": "list", - "of": "PokemonHeldItem" - } - }, - { - "name": "location_area_encounters", - "description": "A link to a list of location areas, as well as encounter details pertaining to specific versions.", - "type": "string" - }, - { - "name": "moves", - "description": "A list of moves along with learn methods and level details pertaining to specific version groups.", - "type": { - "type": "list", - "of": "PokemonMove" - } - }, - { - "name": "past_types", - "description": "A list of details showing types this pokémon had in previous generations", - "type": { - "type": "list", - "of": "PokemonTypePast" - } - }, - { - "name": "past_abilities", - "description": "A list of details showing abilities this pokémon had in previous generations", - "type": { - "type": "list", - "of": "PokemonAbilityPast" - } - }, - { - "name": "past_stats", - "description": "A list of details showing stats this pokémon had in previous generations", - "type": { - "type": "list", - "of": "PokemonStatPast" - } - }, - { - "name": "sprites", - "description": "A set of sprites used to depict this Pokémon in the game. A visual representation of the various sprites can be found at PokeAPI/sprites", - "type": "PokemonSprites" - }, - { - "name": "cries", - "description": "A set of cries used to depict this Pokémon in the game. A visual representation of the various cries can be found at PokeAPI/cries", - "type": "PokemonCries" - }, - { - "name": "species", - "description": "The species this Pokémon belongs to.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - }, - { - "name": "stats", - "description": "A list of base stat values for this Pokémon.", - "type": { - "type": "list", - "of": "PokemonStat" - } - }, - { - "name": "types", - "description": "A list of details showing types this Pokémon has.", - "type": { - "type": "list", - "of": "PokemonType" - } - } - ] - }, - { - "name": "PokemonAbility", - "fields": [ - { - "name": "is_hidden", - "description": "Whether or not this is a hidden ability.", - "type": "boolean" - }, - { - "name": "slot", - "description": "The slot this ability occupies in this Pokémon species.", - "type": "integer" - }, - { - "name": "ability", - "description": "The ability the Pokémon may have.", - "type": { - "type": "NamedAPIResource", - "of": "Ability" - } - } - ] - }, + "responseModels": [ + { + "name": "PokeathlonStat", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "affecting_natures", + "description": "A detail of natures which affect this Pokéathlon stat positively or negatively.", + "type": "NaturePokeathlonStatAffectSets" + } + ] + }, + { + "name": "NaturePokeathlonStatAffectSets", + "fields": [ + { + "name": "increase", + "description": "A list of natures and how they change the referenced Pokéathlon stat.", + "type": { + "type": "list", + "of": "NaturePokeathlonStatAffect" + } + }, + { + "name": "decrease", + "description": "A list of natures and how they change the referenced Pokéathlon stat.", + "type": { + "type": "list", + "of": "NaturePokeathlonStatAffect" + } + } + ] + }, + { + "name": "NaturePokeathlonStatAffect", + "fields": [ + { + "name": "max_change", + "description": "The maximum amount of change to the referenced Pokéathlon stat.", + "type": "integer" + }, + { + "name": "nature", + "description": "The nature causing the change.", + "type": { + "type": "NamedAPIResource", + "of": "Nature" + } + } + ] + } + ] + }, + { + "name": "Pokemon", + "description": "Pokémon are the creatures that inhabit the world of the Pokémon games. They can be caught using Pokéballs and trained by battling with other Pokémon. Each Pokémon belongs to a specific species but may take on a variant which makes it differ from other Pokémon of the same species, such as base stats, available abilities and typings. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_(species)) for greater detail.", + "exampleRequest": "/v2/pokemon/{id or name}/", + "exampleResponse": { + "id": 35, + "name": "clefairy", + "base_experience": 113, + "height": 6, + "is_default": true, + "order": 56, + "weight": 75, + "abilities": [ + { + "is_hidden": true, + "slot": 3, + "ability": { + "name": "friend-guard", + "url": "$BASE_URL/v2/ability/132/" + } + } + ], + "forms": [ + { + "name": "clefairy", + "url": "$BASE_URL/v2/pokemon-form/35/" + } + ], + "game_indices": [ + { + "game_index": 35, + "version": { + "name": "white-2", + "url": "$BASE_URL/v2/version/22/" + } + } + ], + "held_items": [ + { + "item": { + "name": "moon-stone", + "url": "$BASE_URL/v2/item/81/" + }, + "version_details": [ { - "name": "PokemonType", - "fields": [ - { - "name": "slot", - "description": "The order the Pokémon's types are listed in.", - "type": "integer" - }, - { - "name": "type", - "description": "The type the referenced Pokémon has.", - "type": { - "type": "NamedAPIResource", - "of": "Type" - } - } - ] - }, + "rarity": 5, + "version": { + "name": "ruby", + "url": "$BASE_URL/v2/version/7/" + } + } + ] + } + ], + "location_area_encounters": "/api/v2/pokemon/35/encounters", + "moves": [ + { + "move": { + "name": "pound", + "url": "$BASE_URL/v2/move/1/" + }, + "version_group_details": [ { - "name": "PokemonFormType", - "fields": [ - { - "name": "slot", - "description": "The order the Pokémon's types are listed in.", - "type": "integer" - }, - { - "name": "type", - "description": "The type the referenced Form has.", - "type": { - "type": "NamedAPIResource", - "of": "Type" - } - } - ] + "level_learned_at": 1, + "version_group": { + "name": "red-blue", + "url": "$BASE_URL/v2/version-group/1/" + }, + "move_learn_method": { + "name": "level-up", + "url": "$BASE_URL/v2/move-learn-method/1/" + }, + "order": 1 + } + ] + } + ], + "species": { + "name": "clefairy", + "url": "$BASE_URL/v2/pokemon-species/35/" + }, + "sprites": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/35.png", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/35.png", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/35.png", + "front_shiny_female": null, + "other": { + "dream_world": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/35.svg", + "front_female": null + }, + "home": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/home/shiny/35.png", + "front_shiny_female": null + }, + "official-artwork": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/35.png", + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/official-artwork/shiny/35.png" + }, + "showdown": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/35.gif", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/back/shiny/35.gif", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/35.gif", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/showdown/shiny/35.gif", + "front_shiny_female": null + } + }, + "versions": { + "generation-i": { + "red-blue": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/35.png", + "back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/back/gray/35.png", + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/35.png", + "front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/red-blue/gray/35.png" }, - { - "name": "PokemonTypePast", - "fields": [ - { - "name": "generation", - "description": "The last generation in which the referenced pokémon had the listed types.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "types", - "description": "The types the referenced pokémon had up to and including the listed generation.", - "type": { - "type": "list", - "of": "PokemonType" - } - } - ] + "yellow": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/35.png", + "back_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/back/gray/35.png", + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/35.png", + "front_gray": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-i/yellow/gray/35.png" + } + }, + "generation-ii": { + "crystal": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/35.png", + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/back/shiny/35.png", + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/35.png", + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/crystal/shiny/35.png" }, - { - "name": "PokemonAbilityPast", - "fields": [ - { - "name": "generation", - "description": "The last generation in which the referenced pokémon had the listed abilities.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "abilities", - "description": "The abilities the referenced pokémon had up to and including the listed generation. If null, the slot was previously empty.", - "type": { - "type": "list", - "of": "PokemonAbility" - } - } - ] + "gold": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/35.png", + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/back/shiny/35.png", + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/35.png", + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/gold/shiny/35.png" }, - { - "name": "PokemonStatPast", - "fields": [ - { - "name": "generation", - "description": "The last generation in which the referenced pokémon had the listed stats.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "stats", - "description": "The stat the Pokémon had up to and including the listed generation.", - "type": { - "type": "list", - "of": "PokemonStat" - } - } - ] + "silver": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/35.png", + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/back/shiny/35.png", + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/35.png", + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-ii/silver/shiny/35.png" + } + }, + "generation-iii": { + "emerald": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/35.png", + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/emerald/shiny/35.png" }, - { - "name": "PokemonHeldItem", - "fields": [ - { - "name": "item", - "description": "The item the referenced Pokémon holds.", - "type": { - "type": "NamedAPIResource", - "of": "Item" - } - }, - { - "name": "version_details", - "description": "The details of the different versions in which the item is held.", - "type": { - "type": "list", - "of": "PokemonHeldItemVersion" - } - } - ] + "firered-leafgreen": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/35.png", + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/back/shiny/35.png", + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/35.png", + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/firered-leafgreen/shiny/35.png" }, - { - "name": "PokemonHeldItemVersion", - "fields": [ - { - "name": "version", - "description": "The version in which the item is held.", - "type": { - "type": "NamedAPIResource", - "of": "Version" - } - }, - { - "name": "rarity", - "description": "How often the item is held.", - "type": "integer" - } - ] + "ruby-sapphire": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/35.png", + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/back/shiny/35.png", + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/35.png", + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iii/ruby-sapphire/shiny/35.png" + } + }, + "generation-iv": { + "diamond-pearl": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/35.png", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/back/shiny/35.png", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/diamond-pearl/shiny/35.png", + "front_shiny_female": null }, - { - "name": "PokemonMove", - "fields": [ - { - "name": "move", - "description": "The move the Pokémon can learn.", - "type": { - "type": "NamedAPIResource", - "of": "Move" - } - }, - { - "name": "version_group_details", - "description": "The details of the version in which the Pokémon can learn the move.", - "type": { - "type": "list", - "of": "PokemonMoveVersion" - } - } - ] + "heartgold-soulsilver": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/35.png", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/back/shiny/35.png", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/heartgold-soulsilver/shiny/35.png", + "front_shiny_female": null }, - { - "name": "PokemonMoveVersion", - "fields": [ - { - "name": "move_learn_method", - "description": "The method by which the move is learned.", - "type": { - "type": "NamedAPIResource", - "of": "MoveLearnMethod" - } - }, - { - "name": "version_group", - "description": "The version group in which the move is learned.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - }, - { - "name": "level_learned_at", - "description": "The minimum level to learn the move.", - "type": "integer" - }, - { - "name": "order", - "description": "Order by which the pokemon will learn the move. A newly learnt move will replace the move with lowest order.", - "type": "integer" - } - ] + "platinum": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/35.png", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/back/shiny/35.png", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-iv/platinum/shiny/35.png", + "front_shiny_female": null + } + }, + "generation-v": { + "black-white": { + "animated": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/35.gif", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/back/shiny/35.gif", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/35.gif", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/animated/shiny/35.gif", + "front_shiny_female": null + }, + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/35.png", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/back/shiny/35.png", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-v/black-white/shiny/35.png", + "front_shiny_female": null + } + }, + "generation-vi": { + "omegaruby-alphasapphire": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/omegaruby-alphasapphire/shiny/35.png", + "front_shiny_female": null }, - { - "name": "PokemonStat", - "fields": [ - { - "name": "stat", - "description": "The stat the Pokémon has.", - "type": { - "type": "NamedAPIResource", - "of": "Stat" - } - }, - { - "name": "effort", - "description": "The effort points (EV) the Pokémon has in the stat.", - "type": "integer" - }, - { - "name": "base_stat", - "description": "The base value of the stat.", - "type": "integer" - } - ] + "x-y": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vi/x-y/shiny/35.png", + "front_shiny_female": null + } + }, + "generation-vii": { + "icons": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/icons/35.png", + "front_female": null }, + "ultra-sun-ultra-moon": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/35.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-vii/ultra-sun-ultra-moon/shiny/35.png", + "front_shiny_female": null + } + }, + "generation-viii": { + "icons": { + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/35.png", + "front_female": null + } + } + } + }, + "cries": { + "latest": "https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/latest/35.ogg", + "legacy": "https://raw.githubusercontent.com/PokeAPI/cries/main/cries/pokemon/legacy/35.ogg" + }, + "stats": [ + { + "base_stat": 35, + "effort": 0, + "stat": { + "name": "speed", + "url": "$BASE_URL/v2/stat/6/" + } + } + ], + "types": [ + { + "slot": 1, + "type": { + "name": "fairy", + "url": "$BASE_URL/v2/type/18/" + } + } + ], + "past_types": [ + { + "generation": { + "name": "generation-v", + "url": "$BASE_URL/v2/generation/5/" + }, + "types": [ { - "name": "PokemonSprites", - "fields": [ - { - "name": "front_default", - "description": "The default depiction of this Pokémon from the front in battle.", - "type": "string" - }, - { - "name": "front_shiny", - "description": "The shiny depiction of this Pokémon from the front in battle.", - "type": "string" - }, - { - "name": "front_female", - "description": "The female depiction of this Pokémon from the front in battle.", - "type": "string" - }, - { - "name": "front_shiny_female", - "description": "The shiny female depiction of this Pokémon from the front in battle.", - "type": "string" - }, - { - "name": "back_default", - "description": "The default depiction of this Pokémon from the back in battle.", - "type": "string" - }, - { - "name": "back_shiny", - "description": "The shiny depiction of this Pokémon from the back in battle.", - "type": "string" - }, - { - "name": "back_female", - "description": "The female depiction of this Pokémon from the back in battle.", - "type": "string" - }, - { - "name": "back_shiny_female", - "description": "The shiny female depiction of this Pokémon from the back in battle.", - "type": "string" - } - ] - }, + "slot": 1, + "type": { + "name": "normal", + "url": "$BASE_URL/v2/type/1/" + } + } + ] + } + ], + "past_abilities": [ + { + "generation": { + "name": "generation-iv", + "url": "$BASE_URL/v2/generation/4/" + }, + "abilities": [ { - "name": "PokemonCries", - "fields": [ - { - "name": "latest", - "description": "The latest depiction of this Pokémon's cry.", - "type": "string" - }, - { - "name": "legacy", - "description": "The legacy depiction of this Pokémon's cry.", - "type": "string" - } - ] + "ability": null, + "is_hidden": true, + "slot": 3 } - ] + ] + } + ] }, - { - "name": "Pokemon Location Areas", - "description": "Pokémon Location Areas are ares where Pokémon can be found.", - "exampleRequest": "/v2/pokemon/{id or name}/encounters", - "exampleResponse": [ - { - "location_area": { - "name": "kanto-route-2-south-towards-viridian-city", - "url": "$BASE_URL/v2/location-area/296/" - }, - "version_details": [ - { - "max_chance": 10, - "encounter_details": [ - { - "min_level": 7, - "max_level": 7, - "condition_values": [ - { - "name": "time-morning", - "url": "$BASE_URL/v2/encounter-condition-value/3/" - } - ], - "chance": 5, - "method": { - "name": "walk", - "url": "$BASE_URL/v2/encounter-method/1/" - } - } - ], - "version": { - "name": "heartgold", - "url": "$BASE_URL/v2/version/15/" - } - } - ] + "responseModels": [ + { + "name": "Pokemon", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "base_experience", + "description": "The base experience gained for defeating this Pokémon.", + "type": "integer" + }, + { + "name": "height", + "description": "The height of this Pokémon in decimetres.", + "type": "integer" + }, + { + "name": "is_default", + "description": "Set for exactly one Pokémon used as the default for each species.", + "type": "boolean" + }, + { + "name": "order", + "description": "Order for sorting. Almost national order, except families are grouped together.", + "type": "integer" + }, + { + "name": "weight", + "description": "The weight of this Pokémon in hectograms.", + "type": "integer" + }, + { + "name": "abilities", + "description": "A list of abilities this Pokémon could potentially have.", + "type": { + "type": "list", + "of": "PokemonAbility" } - ], - "responseModels": [ - { - "name": "LocationAreaEncounter", - "fields": [ - { - "name": "location_area", - "description": "The location area the referenced Pokémon can be encountered in.", - "type": { - "type": "NamedAPIResource", - "of": "LocationArea" - } - }, - { - "name": "version_details", - "description": "A list of versions and encounters with the referenced Pokémon that might happen.", - "type": { - "type": "list", - "of": "VersionEncounterDetail" - } - } - ] + }, + { + "name": "forms", + "description": "A list of forms this Pokémon can take on.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonForm" + } + } + }, + { + "name": "game_indices", + "description": "A list of game indices relevent to Pokémon item by generation.", + "type": { + "type": "list", + "of": "VersionGameIndex" + } + }, + { + "name": "held_items", + "description": "A list of items this Pokémon may be holding when encountered.", + "type": { + "type": "list", + "of": "PokemonHeldItem" + } + }, + { + "name": "location_area_encounters", + "description": "A link to a list of location areas, as well as encounter details pertaining to specific versions.", + "type": "string" + }, + { + "name": "moves", + "description": "A list of moves along with learn methods and level details pertaining to specific version groups.", + "type": { + "type": "list", + "of": "PokemonMove" + } + }, + { + "name": "past_types", + "description": "A list of details showing types this pokémon had in previous generations", + "type": { + "type": "list", + "of": "PokemonTypePast" + } + }, + { + "name": "past_abilities", + "description": "A list of details showing abilities this pokémon had in previous generations", + "type": { + "type": "list", + "of": "PokemonAbilityPast" + } + }, + { + "name": "past_stats", + "description": "A list of details showing stats this pokémon had in previous generations", + "type": { + "type": "list", + "of": "PokemonStatPast" + } + }, + { + "name": "sprites", + "description": "A set of sprites used to depict this Pokémon in the game. A visual representation of the various sprites can be found at PokeAPI/sprites", + "type": "PokemonSprites" + }, + { + "name": "cries", + "description": "A set of cries used to depict this Pokémon in the game. A visual representation of the various cries can be found at PokeAPI/cries", + "type": "PokemonCries" + }, + { + "name": "species", + "description": "The species this Pokémon belongs to.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" } + }, + { + "name": "stats", + "description": "A list of base stat values for this Pokémon.", + "type": { + "type": "list", + "of": "PokemonStat" + } + }, + { + "name": "types", + "description": "A list of details showing types this Pokémon has.", + "type": { + "type": "list", + "of": "PokemonType" + } + } ] - }, - { - "name": "Pokemon Colors", - "description": "Colors used for sorting Pokémon in a Pokédex. The color listed in the Pokédex is usually the color most apparent or covering each Pokémon's body. No orange category exists; Pokémon that are primarily orange are listed as red or brown.", - "exampleRequest": "/v2/pokemon-color/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "black", - "names": [ - { - "name": "黒い", - "language": { - "name": "ja", - "url": "$BASE_URL/v2/language/1/" - } + }, + { + "name": "PokemonAbility", + "fields": [ + { + "name": "is_hidden", + "description": "Whether or not this is a hidden ability.", + "type": "boolean" + }, + { + "name": "slot", + "description": "The slot this ability occupies in this Pokémon species.", + "type": "integer" + }, + { + "name": "ability", + "description": "The ability the Pokémon may have.", + "type": { + "type": "NamedAPIResource", + "of": "Ability" + } + } + ] + }, + { + "name": "PokemonType", + "fields": [ + { + "name": "slot", + "description": "The order the Pokémon's types are listed in.", + "type": "integer" + }, + { + "name": "type", + "description": "The type the referenced Pokémon has.", + "type": { + "type": "NamedAPIResource", + "of": "Type" + } + } + ] + }, + { + "name": "PokemonFormType", + "fields": [ + { + "name": "slot", + "description": "The order the Pokémon's types are listed in.", + "type": "integer" + }, + { + "name": "type", + "description": "The type the referenced Form has.", + "type": { + "type": "NamedAPIResource", + "of": "Type" + } + } + ] + }, + { + "name": "PokemonTypePast", + "fields": [ + { + "name": "generation", + "description": "The last generation in which the referenced pokémon had the listed types.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + }, + { + "name": "types", + "description": "The types the referenced pokémon had up to and including the listed generation.", + "type": { + "type": "list", + "of": "PokemonType" + } + } + ] + }, + { + "name": "PokemonAbilityPast", + "fields": [ + { + "name": "generation", + "description": "The last generation in which the referenced pokémon had the listed abilities.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + }, + { + "name": "abilities", + "description": "The abilities the referenced pokémon had up to and including the listed generation. If null, the slot was previously empty.", + "type": { + "type": "list", + "of": "PokemonAbility" + } + } + ] + }, + { + "name": "PokemonStatPast", + "fields": [ + { + "name": "generation", + "description": "The last generation in which the referenced pokémon had the listed stats.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + }, + { + "name": "stats", + "description": "The stat the Pokémon had up to and including the listed generation.", + "type": { + "type": "list", + "of": "PokemonStat" + } + } + ] + }, + { + "name": "PokemonHeldItem", + "fields": [ + { + "name": "item", + "description": "The item the referenced Pokémon holds.", + "type": { + "type": "NamedAPIResource", + "of": "Item" + } + }, + { + "name": "version_details", + "description": "The details of the different versions in which the item is held.", + "type": { + "type": "list", + "of": "PokemonHeldItemVersion" + } + } + ] + }, + { + "name": "PokemonHeldItemVersion", + "fields": [ + { + "name": "version", + "description": "The version in which the item is held.", + "type": { + "type": "NamedAPIResource", + "of": "Version" + } + }, + { + "name": "rarity", + "description": "How often the item is held.", + "type": "integer" + } + ] + }, + { + "name": "PokemonMove", + "fields": [ + { + "name": "move", + "description": "The move the Pokémon can learn.", + "type": { + "type": "NamedAPIResource", + "of": "Move" + } + }, + { + "name": "version_group_details", + "description": "The details of the version in which the Pokémon can learn the move.", + "type": { + "type": "list", + "of": "PokemonMoveVersion" + } + } + ] + }, + { + "name": "PokemonMoveVersion", + "fields": [ + { + "name": "move_learn_method", + "description": "The method by which the move is learned.", + "type": { + "type": "NamedAPIResource", + "of": "MoveLearnMethod" + } + }, + { + "name": "version_group", + "description": "The version group in which the move is learned.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + }, + { + "name": "level_learned_at", + "description": "The minimum level to learn the move.", + "type": "integer" + }, + { + "name": "order", + "description": "Order by which the pokemon will learn the move. A newly learnt move will replace the move with lowest order.", + "type": "integer" + } + ] + }, + { + "name": "PokemonStat", + "fields": [ + { + "name": "stat", + "description": "The stat the Pokémon has.", + "type": { + "type": "NamedAPIResource", + "of": "Stat" + } + }, + { + "name": "effort", + "description": "The effort points (EV) the Pokémon has in the stat.", + "type": "integer" + }, + { + "name": "base_stat", + "description": "The base value of the stat.", + "type": "integer" + } + ] + }, + { + "name": "PokemonSprites", + "fields": [ + { + "name": "front_default", + "description": "The default depiction of this Pokémon from the front in battle.", + "type": "string" + }, + { + "name": "front_shiny", + "description": "The shiny depiction of this Pokémon from the front in battle.", + "type": "string" + }, + { + "name": "front_female", + "description": "The female depiction of this Pokémon from the front in battle.", + "type": "string" + }, + { + "name": "front_shiny_female", + "description": "The shiny female depiction of this Pokémon from the front in battle.", + "type": "string" + }, + { + "name": "back_default", + "description": "The default depiction of this Pokémon from the back in battle.", + "type": "string" + }, + { + "name": "back_shiny", + "description": "The shiny depiction of this Pokémon from the back in battle.", + "type": "string" + }, + { + "name": "back_female", + "description": "The female depiction of this Pokémon from the back in battle.", + "type": "string" + }, + { + "name": "back_shiny_female", + "description": "The shiny female depiction of this Pokémon from the back in battle.", + "type": "string" + } + ] + }, + { + "name": "PokemonCries", + "fields": [ + { + "name": "latest", + "description": "The latest depiction of this Pokémon's cry.", + "type": "string" + }, + { + "name": "legacy", + "description": "The legacy depiction of this Pokémon's cry.", + "type": "string" + } + ] + } + ] + }, + { + "name": "Pokemon Location Areas", + "description": "Pokémon Location Areas are ares where Pokémon can be found.", + "exampleRequest": "/v2/pokemon/{id or name}/encounters", + "exampleResponse": [ + { + "location_area": { + "name": "kanto-route-2-south-towards-viridian-city", + "url": "$BASE_URL/v2/location-area/296/" + }, + "version_details": [ + { + "max_chance": 10, + "encounter_details": [ + { + "min_level": 7, + "max_level": 7, + "condition_values": [ + { + "name": "time-morning", + "url": "$BASE_URL/v2/encounter-condition-value/3/" + } + ], + "chance": 5, + "method": { + "name": "walk", + "url": "$BASE_URL/v2/encounter-method/1/" } + } ], - "pokemon_species": [ - { - "name": "snorlax", - "url": "$BASE_URL/v2/pokemon-species/143/" - } - ] - }, - "responseModels": [ - { - "name": "PokemonColor", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_species", - "description": "A list of the Pokémon species that have this color.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - } - ] + "version": { + "name": "heartgold", + "url": "$BASE_URL/v2/version/15/" + } + } + ] + } + ], + "responseModels": [ + { + "name": "LocationAreaEncounter", + "fields": [ + { + "name": "location_area", + "description": "The location area the referenced Pokémon can be encountered in.", + "type": { + "type": "NamedAPIResource", + "of": "LocationArea" + } + }, + { + "name": "version_details", + "description": "A list of versions and encounters with the referenced Pokémon that might happen.", + "type": { + "type": "list", + "of": "VersionEncounterDetail" } + } ] + } + ] + }, + { + "name": "Pokemon Colors", + "description": "Colors used for sorting Pokémon in a Pokédex. The color listed in the Pokédex is usually the color most apparent or covering each Pokémon's body. No orange category exists; Pokémon that are primarily orange are listed as red or brown.", + "exampleRequest": "/v2/pokemon-color/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "black", + "names": [ + { + "name": "黒い", + "language": { + "name": "ja", + "url": "$BASE_URL/v2/language/1/" + } + } + ], + "pokemon_species": [ + { + "name": "snorlax", + "url": "$BASE_URL/v2/pokemon-species/143/" + } + ] }, - { - "name": "Pokemon Forms", - "description": "Some Pokémon may appear in one of multiple, visually different forms. These differences are purely cosmetic. For variations within a Pokémon species, which do differ in more than just visuals, the 'Pokémon' entity is used to represent such a variety.", - "exampleRequest": "/v2/pokemon-form/{id or name}/", - "exampleResponse": { - "id": 10041, - "name": "arceus-bug", - "order": 631, - "form_order": 7, - "is_default": false, - "is_battle_only": false, - "is_mega": false, - "form_name": "bug", - "pokemon": { - "name": "arceus", - "url": "https://pokeapi.co/api/v2/pokemon/493/" - }, - "sprites": { - "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/493-bug.png", - "back_female": null, - "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/493-bug.png", - "back_shiny_female": null, - "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/493-bug.png", - "front_female": null, - "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/493-bug.png", - "front_shiny_female": null - }, - "types": [ - { - "slot": 1, - "type": { - "name": "bug", - "url": "https://pokeapi.co/api/v2/type/7/" - } - } - ], - "version_group": { - "name": "diamond-pearl", - "url": "https://pokeapi.co/api/v2/version-group/8/" + "responseModels": [ + { + "name": "PokemonColor", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } - }, - "responseModels": [ - { - "name": "PokemonForm", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "order", - "description": "The order in which forms should be sorted within all forms. Multiple forms may have equal order, in which case they should fall back on sorting by name.", - "type": "integer" - }, - { - "name": "form_order", - "description": "The order in which forms should be sorted within a species' forms.", - "type": "integer" - }, - { - "name": "is_default", - "description": "True for exactly one form used as the default for each Pokémon.", - "type": "boolean" - }, - { - "name": "is_battle_only", - "description": "Whether or not this form can only happen during battle.", - "type": "boolean" - }, - { - "name": "is_mega", - "description": "Whether or not this form requires mega evolution.", - "type": "boolean" - }, - { - "name": "form_name", - "description": "The name of this form.", - "type": "string" - }, - { - "name": "pokemon", - "description": "The Pokémon that can take on this form.", - "type": { - "type": "NamedAPIResource", - "of": "Pokemon" - } - }, - { - "name": "types", - "description": "A list of details showing types this Pokémon form has.", - "type": { - "type": "list", - "of": "PokemonFormType" - } - }, - { - "name": "sprites", - "description": "A set of sprites used to depict this Pokémon form in the game.", - "type": "PokemonFormSprites" - }, - { - "name": "version_group", - "description": "The version group this Pokémon form was introduced in.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - }, - { - "name": "names", - "description": "The form specific full name of this Pokémon form, or empty if the form does not have a specific name.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "form_names", - "description": "The form specific form name of this Pokémon form, or empty if the form does not have a specific name.", - "type": { - "type": "list", - "of": "Name" - } - } - ] - }, - { - "name": "PokemonFormSprites", - "fields": [ - { - "name": "front_default", - "description": "The default depiction of this Pokémon form from the front in battle.", - "type": "string" - }, - { - "name": "front_shiny", - "description": "The shiny depiction of this Pokémon form from the front in battle.", - "type": "string" - }, - { - "name": "back_default", - "description": "The default depiction of this Pokémon form from the back in battle.", - "type": "string" - }, - { - "name": "back_shiny", - "description": "The shiny depiction of this Pokémon form from the back in battle.", - "type": "string" - } - ] + }, + { + "name": "pokemon_species", + "description": "A list of the Pokémon species that have this color.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } } + } ] + } + ] + }, + { + "name": "Pokemon Forms", + "description": "Some Pokémon may appear in one of multiple, visually different forms. These differences are purely cosmetic. For variations within a Pokémon species, which do differ in more than just visuals, the 'Pokémon' entity is used to represent such a variety.", + "exampleRequest": "/v2/pokemon-form/{id or name}/", + "exampleResponse": { + "id": 10041, + "name": "arceus-bug", + "order": 631, + "form_order": 7, + "is_default": false, + "is_battle_only": false, + "is_mega": false, + "form_name": "bug", + "pokemon": { + "name": "arceus", + "url": "https://pokeapi.co/api/v2/pokemon/493/" + }, + "sprites": { + "back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/493-bug.png", + "back_female": null, + "back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/493-bug.png", + "back_shiny_female": null, + "front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/493-bug.png", + "front_female": null, + "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/493-bug.png", + "front_shiny_female": null + }, + "types": [ + { + "slot": 1, + "type": { + "name": "bug", + "url": "https://pokeapi.co/api/v2/type/7/" + } + } + ], + "version_group": { + "name": "diamond-pearl", + "url": "https://pokeapi.co/api/v2/version-group/8/" + } }, - { - "name": "Pokemon Habitats", - "description": "Habitats are generally different terrain Pokémon can be found in but can also be areas designated for rare or legendary Pokémon.", - "exampleRequest": "/v2/pokemon-habitat/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "cave", - "names": [ - { - "name": "grottes", - "language": { - "name": "fr", - "url": "$BASE_URL/v2/language/5/" - } - } - ], - "pokemon_species": [ - { - "name": "zubat", - "url": "$BASE_URL/v2/pokemon-species/41/" - } - ] - }, - "responseModels": [ - { - "name": "PokemonHabitat", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_species", - "description": "A list of the Pokémon species that can be found in this habitat.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - } - ] + "responseModels": [ + { + "name": "PokemonForm", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "order", + "description": "The order in which forms should be sorted within all forms. Multiple forms may have equal order, in which case they should fall back on sorting by name.", + "type": "integer" + }, + { + "name": "form_order", + "description": "The order in which forms should be sorted within a species' forms.", + "type": "integer" + }, + { + "name": "is_default", + "description": "True for exactly one form used as the default for each Pokémon.", + "type": "boolean" + }, + { + "name": "is_battle_only", + "description": "Whether or not this form can only happen during battle.", + "type": "boolean" + }, + { + "name": "is_mega", + "description": "Whether or not this form requires mega evolution.", + "type": "boolean" + }, + { + "name": "form_name", + "description": "The name of this form.", + "type": "string" + }, + { + "name": "pokemon", + "description": "The Pokémon that can take on this form.", + "type": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + }, + { + "name": "types", + "description": "A list of details showing types this Pokémon form has.", + "type": { + "type": "list", + "of": "PokemonFormType" + } + }, + { + "name": "sprites", + "description": "A set of sprites used to depict this Pokémon form in the game.", + "type": "PokemonFormSprites" + }, + { + "name": "version_group", + "description": "The version group this Pokémon form was introduced in.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + }, + { + "name": "names", + "description": "The form specific full name of this Pokémon form, or empty if the form does not have a specific name.", + "type": { + "type": "list", + "of": "Name" } + }, + { + "name": "form_names", + "description": "The form specific form name of this Pokémon form, or empty if the form does not have a specific name.", + "type": { + "type": "list", + "of": "Name" + } + } + ] + }, + { + "name": "PokemonFormSprites", + "fields": [ + { + "name": "front_default", + "description": "The default depiction of this Pokémon form from the front in battle.", + "type": "string" + }, + { + "name": "front_shiny", + "description": "The shiny depiction of this Pokémon form from the front in battle.", + "type": "string" + }, + { + "name": "back_default", + "description": "The default depiction of this Pokémon form from the back in battle.", + "type": "string" + }, + { + "name": "back_shiny", + "description": "The shiny depiction of this Pokémon form from the back in battle.", + "type": "string" + } ] + } + ] + }, + { + "name": "Pokemon Habitats", + "description": "Habitats are generally different terrain Pokémon can be found in but can also be areas designated for rare or legendary Pokémon.", + "exampleRequest": "/v2/pokemon-habitat/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "cave", + "names": [ + { + "name": "grottes", + "language": { + "name": "fr", + "url": "$BASE_URL/v2/language/5/" + } + } + ], + "pokemon_species": [ + { + "name": "zubat", + "url": "$BASE_URL/v2/pokemon-species/41/" + } + ] }, - { - "name": "Pokemon Shapes", - "description": "Shapes used for sorting Pokémon in a Pokédex.", - "exampleRequest": "/v2/pokemon-shape/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "ball", - "awesome_names": [ - { - "awesome_name": "Pomaceous", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ], - "names": [ - { - "name": "Ball", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ], - "pokemon_species": [ - { - "name": "shellder", - "url": "$BASE_URL/v2/pokemon-species/90/" - } - ] - }, - "responseModels": [ - { - "name": "PokemonShape", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "awesome_names", - "description": "The \"scientific\" name of this Pokémon shape listed in different languages.", - "type": { - "type": "list", - "of": "AwesomeName" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon_species", - "description": "A list of the Pokémon species that have this shape.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - } - } - ] - }, - { - "name": "AwesomeName", - "fields": [ - { - "name": "awesome_name", - "description": "The localized \"scientific\" name for an API resource in a specific language.", - "type": "string" - }, - { - "name": "language", - "description": "The language this \"scientific\" name is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - } - ] + "responseModels": [ + { + "name": "PokemonHabitat", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pokemon_species", + "description": "A list of the Pokémon species that can be found in this habitat.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } } + } ] + } + ] + }, + { + "name": "Pokemon Shapes", + "description": "Shapes used for sorting Pokémon in a Pokédex.", + "exampleRequest": "/v2/pokemon-shape/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "ball", + "awesome_names": [ + { + "awesome_name": "Pomaceous", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "names": [ + { + "name": "Ball", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "pokemon_species": [ + { + "name": "shellder", + "url": "$BASE_URL/v2/pokemon-species/90/" + } + ] }, - { - "name": "Pokemon Species", - "description": "A Pokémon Species forms the basis for at least one Pokémon. Attributes of a Pokémon species are shared across all varieties of Pokémon within the species. A good example is Wormadam; Wormadam is the species which can be found in three different varieties, Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant.", - "exampleRequest": "/v2/pokemon-species/{id or name}/", - "exampleResponse": { - "id": 413, - "name": "wormadam", - "order": 441, - "gender_rate": 8, - "capture_rate": 45, - "base_happiness": 70, - "is_baby": false, - "is_legendary": false, - "is_mythical": false, - "hatch_counter": 15, - "has_gender_differences": false, - "forms_switchable": false, - "growth_rate": { - "name": "medium", - "url": "$BASE_URL/v2/growth-rate/2/" - }, - "pokedex_numbers": [ - { - "entry_number": 45, - "pokedex": { - "name": "kalos-central", - "url": "$BASE_URL/v2/pokedex/12/" - } - } - ], - "egg_groups": [ - { - "name": "bug", - "url": "$BASE_URL/v2/egg-group/3/" - } - ], - "color": { - "name": "gray", - "url": "$BASE_URL/v2/pokemon-color/4/" - }, - "shape": { - "name": "squiggle", - "url": "$BASE_URL/v2/pokemon-shape/2/" - }, - "evolves_from_species": { - "name": "burmy", - "url": "$BASE_URL/v2/pokemon-species/412/" - }, - "evolution_chain": { - "url": "$BASE_URL/v2/evolution-chain/213/" - }, - "habitat": null, - "generation": { - "name": "generation-iv", - "url": "$BASE_URL/v2/generation/4/" - }, - "names": [ - { - "name": "Wormadam", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ], - "flavor_text_entries": [ - { - "flavor_text": "When the bulb on\nits back grows\nlarge, it appears\fto lose the\nability to stand\non its hind legs.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - }, - "version": { - "name": "red", - "url": "$BASE_URL/v2/version/1/" - } - } - ], - "form_descriptions": [ - { - "description": "Forms have different stats and movepools. During evolution, Burmy's current cloak becomes Wormadam's form, and can no longer be changed.", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ], - "genera": [ - { - "genus": "Bagworm", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - } - ], - "varieties": [ - { - "is_default": true, - "pokemon": { - "name": "wormadam-plant", - "url": "$BASE_URL/v2/pokemon/413/" - } - } - ] - }, - "responseModels": [ - { - "name": "PokemonSpecies", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "order", - "description": "The order in which species should be sorted. Based on National Dex order, except families are grouped together and sorted by stage.", - "type": "integer" - }, - { - "name": "gender_rate", - "description": "The chance of this Pokémon being female, in eighths; or -1 for genderless.", - "type": "integer" - }, - { - "name": "capture_rate", - "description": "The base capture rate; up to 255. The higher the number, the easier the catch.", - "type": "integer" - }, - { - "name": "base_happiness", - "description": "The happiness when caught by a normal Pokéball; up to 255. The higher the number, the happier the Pokémon.", - "type": "integer" - }, - { - "name": "is_baby", - "description": "Whether or not this is a baby Pokémon.", - "type": "boolean" - }, - { - "name": "is_legendary", - "description": "Whether or not this is a legendary Pokémon.", - "type": "boolean" - }, - { - "name": "is_mythical", - "description": "Whether or not this is a mythical Pokémon.", - "type": "boolean" - }, - { - "name": "hatch_counter", - "description": "Initial hatch counter: one must walk Y × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's. Y varies per generation. In Generations II, III, and VII, Egg cycles are 256 steps long. In Generation IV, Egg cycles are 255 steps long. In Pokémon Brilliant Diamond and Shining Pearl, Egg cycles are also 255 steps long, but are shorter on special dates. In Generations V and VI, Egg cycles are 257 steps long. In Pokémon Sword and Shield, and in Pokémon Scarlet and Violet, Egg cycles are 128 steps long.", - "type": "integer" - }, - { - "name": "has_gender_differences", - "description": "Whether or not this Pokémon has visual gender differences.", - "type": "boolean" - }, - { - "name": "forms_switchable", - "description": "Whether or not this Pokémon has multiple forms and can switch between them.", - "type": "boolean" - }, - { - "name": "growth_rate", - "description": "The rate at which this Pokémon species gains levels.", - "type": { - "type": "NamedAPIResource", - "of": "GrowthRate" - } - }, - { - "name": "pokedex_numbers", - "description": "A list of Pokedexes and the indexes reserved within them for this Pokémon species.", - "type": { - "type": "list", - "of": "PokemonSpeciesDexEntry" - } - }, - { - "name": "egg_groups", - "description": "A list of egg groups this Pokémon species is a member of.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "EggGroup" - } - } - }, - { - "name": "color", - "description": "The color of this Pokémon for Pokédex search.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonColor" - } - }, - { - "name": "shape", - "description": "The shape of this Pokémon for Pokédex search.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonShape" - } - }, - { - "name": "evolves_from_species", - "description": "The Pokémon species that evolves into this Pokemon_species.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonSpecies" - } - }, - { - "name": "evolution_chain", - "description": "The evolution chain this Pokémon species is a member of.", - "type": { - "type": "APIResource", - "of": "EvolutionChain" - } - }, - { - "name": "habitat", - "description": "The habitat this Pokémon species can be encountered in.", - "type": { - "type": "NamedAPIResource", - "of": "PokemonHabitat" - } - }, - { - "name": "generation", - "description": "The generation this Pokémon species was introduced in.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pal_park_encounters", - "description": "A list of encounters that can be had with this Pokémon species in pal park.", - "type": { - "type": "list", - "of": "PalParkEncounterArea" - } - }, - { - "name": "flavor_text_entries", - "description": "A list of flavor text entries for this Pokémon species.", - "type": { - "type": "list", - "of": "FlavorText" - } - }, - { - "name": "form_descriptions", - "description": "Descriptions of different forms Pokémon take on within the Pokémon species.", - "type": { - "type": "list", - "of": "Description" - } - }, - { - "name": "genera", - "description": "The genus of this Pokémon species listed in multiple languages.", - "type": { - "type": "list", - "of": "Genus" - } - }, - { - "name": "varieties", - "description": "A list of the Pokémon that exist within this Pokémon species.", - "type": { - "type": "list", - "of": "PokemonSpeciesVariety" - } - } - ] - }, - { - "name": "Genus", - "fields": [ - { - "name": "genus", - "description": "The localized genus for the referenced Pokémon species", - "type": "string" - }, - { - "name": "language", - "description": "The language this genus is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - } - ] - }, - { - "name": "PokemonSpeciesDexEntry", - "fields": [ - { - "name": "entry_number", - "description": "The index number within the Pokédex.", - "type": "integer" - }, - { - "name": "pokedex", - "description": "The Pokédex the referenced Pokémon species can be found in.", - "type": { - "type": "NamedAPIResource", - "of": "Pokedex" - } - } - ] - }, - { - "name": "PalParkEncounterArea", - "fields": [ - { - "name": "base_score", - "description": "The base score given to the player when the referenced Pokémon is caught during a pal park run.", - "type": "integer" - }, - { - "name": "rate", - "description": "The base rate for encountering the referenced Pokémon in this pal park area.", - "type": "integer" - }, - { - "name": "area", - "description": "The pal park area where this encounter happens.", - "type": { - "type": "NamedAPIResource", - "of": "PalParkArea" - } - } - ] - }, - { - "name": "PokemonSpeciesVariety", - "fields": [ - { - "name": "is_default", - "description": "Whether this variety is the default variety.", - "type": "boolean" - }, - { - "name": "pokemon", - "description": "The Pokémon variety.", - "type": { - "type": "NamedAPIResource", - "of": "Pokemon" - } - } - ] + "responseModels": [ + { + "name": "PokemonShape", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "awesome_names", + "description": "The \"scientific\" name of this Pokémon shape listed in different languages.", + "type": { + "type": "list", + "of": "AwesomeName" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pokemon_species", + "description": "A list of the Pokémon species that have this shape.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } } + } ] + }, + { + "name": "AwesomeName", + "fields": [ + { + "name": "awesome_name", + "description": "The localized \"scientific\" name for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this \"scientific\" name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } + ] + } + ] + }, + { + "name": "Pokemon Species", + "description": "A Pokémon Species forms the basis for at least one Pokémon. Attributes of a Pokémon species are shared across all varieties of Pokémon within the species. A good example is Wormadam; Wormadam is the species which can be found in three different varieties, Wormadam-Trash, Wormadam-Sandy and Wormadam-Plant.", + "exampleRequest": "/v2/pokemon-species/{id or name}/", + "exampleResponse": { + "id": 413, + "name": "wormadam", + "order": 441, + "gender_rate": 8, + "capture_rate": 45, + "base_happiness": 70, + "is_baby": false, + "is_legendary": false, + "is_mythical": false, + "hatch_counter": 15, + "has_gender_differences": false, + "forms_switchable": false, + "growth_rate": { + "name": "medium", + "url": "$BASE_URL/v2/growth-rate/2/" + }, + "pokedex_numbers": [ + { + "entry_number": 45, + "pokedex": { + "name": "kalos-central", + "url": "$BASE_URL/v2/pokedex/12/" + } + } + ], + "egg_groups": [ + { + "name": "bug", + "url": "$BASE_URL/v2/egg-group/3/" + } + ], + "color": { + "name": "gray", + "url": "$BASE_URL/v2/pokemon-color/4/" + }, + "shape": { + "name": "squiggle", + "url": "$BASE_URL/v2/pokemon-shape/2/" + }, + "evolves_from_species": { + "name": "burmy", + "url": "$BASE_URL/v2/pokemon-species/412/" + }, + "evolution_chain": { + "url": "$BASE_URL/v2/evolution-chain/213/" + }, + "habitat": null, + "generation": { + "name": "generation-iv", + "url": "$BASE_URL/v2/generation/4/" + }, + "names": [ + { + "name": "Wormadam", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "flavor_text_entries": [ + { + "flavor_text": "When the bulb on\nits back grows\nlarge, it appears\fto lose the\nability to stand\non its hind legs.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + }, + "version": { + "name": "red", + "url": "$BASE_URL/v2/version/1/" + } + } + ], + "form_descriptions": [ + { + "description": "Forms have different stats and movepools. During evolution, Burmy's current cloak becomes Wormadam's form, and can no longer be changed.", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "genera": [ + { + "genus": "Bagworm", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ], + "varieties": [ + { + "is_default": true, + "pokemon": { + "name": "wormadam-plant", + "url": "$BASE_URL/v2/pokemon/413/" + } + } + ] }, - { - "name": "Stats", - "description": "Stats determine certain aspects of battles. Each Pokémon has a value for each stat which grows as they gain levels and can be altered momentarily by effects in battles.", - "exampleRequest": "/v2/stat/{id or name}/", - "exampleResponse": { - "id": 2, - "name": "attack", - "game_index": 2, - "is_battle_only": false, - "affecting_moves": { - "increase": [ - { - "change": 2, - "move": { - "name": "swords-dance", - "url": "$BASE_URL/v2/move/14/" - } - } - ], - "decrease": [ - { - "change": -1, - "move": { - "name": "growl", - "url": "$BASE_URL/v2/move/45/" - } - } - ] - }, - "affecting_natures": { - "increase": [ - { - "name": "lonely", - "url": "$BASE_URL/v2/nature/6/" - } - ], - "decrease": [ - { - "name": "bold", - "url": "$BASE_URL/v2/nature/2/" - } - ] - }, - "characteristics": [ - { - "url": "$BASE_URL/v2/characteristic/2/" - } - ], - "move_damage_class": { - "name": "physical", - "url": "$BASE_URL/v2/move-damage-class/2/" - }, - "names": [ - { - "name": "こうげき", - "language": { - "name": "ja", - "url": "$BASE_URL/v2/language/1/" - } - } - ] - }, - "responseModels": [ - { - "name": "Stat", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "game_index", - "description": "ID the games use for this stat.", - "type": "integer" - }, - { - "name": "is_battle_only", - "description": "Whether this stat only exists within a battle.", - "type": "boolean" - }, - { - "name": "affecting_moves", - "description": "A detail of moves which affect this stat positively or negatively.", - "type": "MoveStatAffectSets" - }, - { - "name": "affecting_natures", - "description": "A detail of natures which affect this stat positively or negatively.", - "type": "NatureStatAffectSets" - }, - { - "name": "characteristics", - "description": "A list of characteristics that are set on a Pokémon when its highest base stat is this stat.", - "type": { - "type": "list", - "of": { - "type": "APIResource", - "of": "Characteristic" - } - } - }, - { - "name": "move_damage_class", - "description": "The class of damage this stat is directly related to.", - "type": { - "type": "NamedAPIResource", - "of": "MoveDamageClass" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] - }, - { - "name": "MoveStatAffectSets", - "fields": [ - { - "name": "increase", - "description": "A list of moves and how they change the referenced stat.", - "type": { - "type": "list", - "of": "MoveStatAffect" - } - }, - { - "name": "decrease", - "description": "A list of moves and how they change the referenced stat.", - "type": { - "type": "list", - "of": "MoveStatAffect" - } - } - ] - }, - { - "name": "MoveStatAffect", - "fields": [ - { - "name": "change", - "description": "The maximum amount of change to the referenced stat.", - "type": "integer" - }, - { - "name": "move", - "description": "The move causing the change.", - "type": { - "type": "NamedAPIResource", - "of": "Move" - } - } - ] - }, - { - "name": "NatureStatAffectSets", - "fields": [ - { - "name": "increase", - "description": "A list of natures and how they change the referenced stat.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Nature" - } - } - }, - { - "name": "decrease", - "description": "A list of nature sand how they change the referenced stat.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Nature" - } - } - } - ] + "responseModels": [ + { + "name": "PokemonSpecies", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "order", + "description": "The order in which species should be sorted. Based on National Dex order, except families are grouped together and sorted by stage.", + "type": "integer" + }, + { + "name": "gender_rate", + "description": "The chance of this Pokémon being female, in eighths; or -1 for genderless.", + "type": "integer" + }, + { + "name": "capture_rate", + "description": "The base capture rate; up to 255. The higher the number, the easier the catch.", + "type": "integer" + }, + { + "name": "base_happiness", + "description": "The happiness when caught by a normal Pokéball; up to 255. The higher the number, the happier the Pokémon.", + "type": "integer" + }, + { + "name": "is_baby", + "description": "Whether or not this is a baby Pokémon.", + "type": "boolean" + }, + { + "name": "is_legendary", + "description": "Whether or not this is a legendary Pokémon.", + "type": "boolean" + }, + { + "name": "is_mythical", + "description": "Whether or not this is a mythical Pokémon.", + "type": "boolean" + }, + { + "name": "hatch_counter", + "description": "Initial hatch counter: one must walk Y × (hatch_counter + 1) steps before this Pokémon's egg hatches, unless utilizing bonuses like Flame Body's. Y varies per generation. In Generations II, III, and VII, Egg cycles are 256 steps long. In Generation IV, Egg cycles are 255 steps long. In Pokémon Brilliant Diamond and Shining Pearl, Egg cycles are also 255 steps long, but are shorter on special dates. In Generations V and VI, Egg cycles are 257 steps long. In Pokémon Sword and Shield, and in Pokémon Scarlet and Violet, Egg cycles are 128 steps long.", + "type": "integer" + }, + { + "name": "has_gender_differences", + "description": "Whether or not this Pokémon has visual gender differences.", + "type": "boolean" + }, + { + "name": "forms_switchable", + "description": "Whether or not this Pokémon has multiple forms and can switch between them.", + "type": "boolean" + }, + { + "name": "growth_rate", + "description": "The rate at which this Pokémon species gains levels.", + "type": { + "type": "NamedAPIResource", + "of": "GrowthRate" + } + }, + { + "name": "pokedex_numbers", + "description": "A list of Pokedexes and the indexes reserved within them for this Pokémon species.", + "type": { + "type": "list", + "of": "PokemonSpeciesDexEntry" + } + }, + { + "name": "egg_groups", + "description": "A list of egg groups this Pokémon species is a member of.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "EggGroup" + } + } + }, + { + "name": "color", + "description": "The color of this Pokémon for Pokédex search.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonColor" + } + }, + { + "name": "shape", + "description": "The shape of this Pokémon for Pokédex search.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonShape" + } + }, + { + "name": "evolves_from_species", + "description": "The Pokémon species that evolves into this Pokemon_species.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonSpecies" + } + }, + { + "name": "evolution_chain", + "description": "The evolution chain this Pokémon species is a member of.", + "type": { + "type": "APIResource", + "of": "EvolutionChain" + } + }, + { + "name": "habitat", + "description": "The habitat this Pokémon species can be encountered in.", + "type": { + "type": "NamedAPIResource", + "of": "PokemonHabitat" + } + }, + { + "name": "generation", + "description": "The generation this Pokémon species was introduced in.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pal_park_encounters", + "description": "A list of encounters that can be had with this Pokémon species in pal park.", + "type": { + "type": "list", + "of": "PalParkEncounterArea" + } + }, + { + "name": "flavor_text_entries", + "description": "A list of flavor text entries for this Pokémon species.", + "type": { + "type": "list", + "of": "FlavorText" + } + }, + { + "name": "form_descriptions", + "description": "Descriptions of different forms Pokémon take on within the Pokémon species.", + "type": { + "type": "list", + "of": "Description" } + }, + { + "name": "genera", + "description": "The genus of this Pokémon species listed in multiple languages.", + "type": { + "type": "list", + "of": "Genus" + } + }, + { + "name": "varieties", + "description": "A list of the Pokémon that exist within this Pokémon species.", + "type": { + "type": "list", + "of": "PokemonSpeciesVariety" + } + } + ] + }, + { + "name": "Genus", + "fields": [ + { + "name": "genus", + "description": "The localized genus for the referenced Pokémon species", + "type": "string" + }, + { + "name": "language", + "description": "The language this genus is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } ] + }, + { + "name": "PokemonSpeciesDexEntry", + "fields": [ + { + "name": "entry_number", + "description": "The index number within the Pokédex.", + "type": "integer" + }, + { + "name": "pokedex", + "description": "The Pokédex the referenced Pokémon species can be found in.", + "type": { + "type": "NamedAPIResource", + "of": "Pokedex" + } + } + ] + }, + { + "name": "PalParkEncounterArea", + "fields": [ + { + "name": "base_score", + "description": "The base score given to the player when the referenced Pokémon is caught during a pal park run.", + "type": "integer" + }, + { + "name": "rate", + "description": "The base rate for encountering the referenced Pokémon in this pal park area.", + "type": "integer" + }, + { + "name": "area", + "description": "The pal park area where this encounter happens.", + "type": { + "type": "NamedAPIResource", + "of": "PalParkArea" + } + } + ] + }, + { + "name": "PokemonSpeciesVariety", + "fields": [ + { + "name": "is_default", + "description": "Whether this variety is the default variety.", + "type": "boolean" + }, + { + "name": "pokemon", + "description": "The Pokémon variety.", + "type": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + } + ] + } + ] + }, + { + "name": "Stats", + "description": "Stats determine certain aspects of battles. Each Pokémon has a value for each stat which grows as they gain levels and can be altered momentarily by effects in battles.", + "exampleRequest": "/v2/stat/{id or name}/", + "exampleResponse": { + "id": 2, + "name": "attack", + "game_index": 2, + "is_battle_only": false, + "affecting_moves": { + "increase": [ + { + "change": 2, + "move": { + "name": "swords-dance", + "url": "$BASE_URL/v2/move/14/" + } + } + ], + "decrease": [ + { + "change": -1, + "move": { + "name": "growl", + "url": "$BASE_URL/v2/move/45/" + } + } + ] + }, + "affecting_natures": { + "increase": [ + { + "name": "lonely", + "url": "$BASE_URL/v2/nature/6/" + } + ], + "decrease": [ + { + "name": "bold", + "url": "$BASE_URL/v2/nature/2/" + } + ] + }, + "characteristics": [ + { + "url": "$BASE_URL/v2/characteristic/2/" + } + ], + "move_damage_class": { + "name": "physical", + "url": "$BASE_URL/v2/move-damage-class/2/" + }, + "names": [ + { + "name": "こうげき", + "language": { + "name": "ja", + "url": "$BASE_URL/v2/language/1/" + } + } + ] }, - { - "name": "Types", - "description": "Types are properties for Pokémon and their moves. Each type has three properties: which types of Pokémon it is super effective against, which types of Pokémon it is not very effective against, and which types of Pokémon it is completely ineffective against.", - "exampleRequest": "/v2/type/{id or name}/", - "exampleResponse": { - "id": 5, - "name": "ground", - "damage_relations": { - "no_damage_to": [ - { - "name": "flying", - "url": "$BASE_URL/v2/type/3/" - } - ], - "half_damage_to": [ - { - "name": "bug", - "url": "$BASE_URL/v2/type/7/" - } - ], - "double_damage_to": [ - { - "name": "poison", - "url": "$BASE_URL/v2/type/4/" - } - ], - "no_damage_from": [ - { - "name": "electric", - "url": "$BASE_URL/v2/type/13/" - } - ], - "half_damage_from": [ - { - "name": "poison", - "url": "$BASE_URL/v2/type/4/" - } - ], - "double_damage_from": [ - { - "name": "water", - "url": "$BASE_URL/v2/type/11/" - } - ] - }, - "past_damage_relations": [ - { - "generation": { - "name": "generation-v", - "url": "$BASE_URL/v2/generation/5/" - }, - "damage_relations": { - "no_damage_to": [ - { - "name": "normal", - "url": "$BASE_URL/v2/type/1/" - } - ], - "half_damage_to": [ - { - "name": "steel", - "url": "$BASE_URL/v2/type/9/" - } - ], - "double_damage_to": [ - { - "name": "ghost", - "url": "$BASE_URL/v2/type/8/" - } - ], - "no_damage_from": [ - { - "name": "normal", - "url": "$BASE_URL/v2/type/1/" - } - ], - "half_damage_from": [ - { - "name": "poison", - "url": "$BASE_URL/v2/type/4/" - } - ], - "double_damage_from": [ - { - "name": "ghost", - "url": "$BASE_URL/v2/type/8/" - } - ] - } - } + "responseModels": [ + { + "name": "Stat", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "game_index", + "description": "ID the games use for this stat.", + "type": "integer" + }, + { + "name": "is_battle_only", + "description": "Whether this stat only exists within a battle.", + "type": "boolean" + }, + { + "name": "affecting_moves", + "description": "A detail of moves which affect this stat positively or negatively.", + "type": "MoveStatAffectSets" + }, + { + "name": "affecting_natures", + "description": "A detail of natures which affect this stat positively or negatively.", + "type": "NatureStatAffectSets" + }, + { + "name": "characteristics", + "description": "A list of characteristics that are set on a Pokémon when its highest base stat is this stat.", + "type": { + "type": "list", + "of": { + "type": "APIResource", + "of": "Characteristic" + } + } + }, + { + "name": "move_damage_class", + "description": "The class of damage this stat is directly related to.", + "type": { + "type": "NamedAPIResource", + "of": "MoveDamageClass" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + } + ] + }, + { + "name": "MoveStatAffectSets", + "fields": [ + { + "name": "increase", + "description": "A list of moves and how they change the referenced stat.", + "type": { + "type": "list", + "of": "MoveStatAffect" + } + }, + { + "name": "decrease", + "description": "A list of moves and how they change the referenced stat.", + "type": { + "type": "list", + "of": "MoveStatAffect" + } + } + ] + }, + { + "name": "MoveStatAffect", + "fields": [ + { + "name": "change", + "description": "The maximum amount of change to the referenced stat.", + "type": "integer" + }, + { + "name": "move", + "description": "The move causing the change.", + "type": { + "type": "NamedAPIResource", + "of": "Move" + } + } + ] + }, + { + "name": "NatureStatAffectSets", + "fields": [ + { + "name": "increase", + "description": "A list of natures and how they change the referenced stat.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Nature" + } + } + }, + { + "name": "decrease", + "description": "A list of nature sand how they change the referenced stat.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Nature" + } + } + } + ] + } + ] + }, + { + "name": "Types", + "description": "Types are properties for Pokémon and their moves. Each type has three properties: which types of Pokémon it is super effective against, which types of Pokémon it is not very effective against, and which types of Pokémon it is completely ineffective against.", + "exampleRequest": "/v2/type/{id or name}/", + "exampleResponse": { + "id": 5, + "name": "ground", + "damage_relations": { + "no_damage_to": [ + { + "name": "flying", + "url": "$BASE_URL/v2/type/3/" + } + ], + "half_damage_to": [ + { + "name": "bug", + "url": "$BASE_URL/v2/type/7/" + } + ], + "double_damage_to": [ + { + "name": "poison", + "url": "$BASE_URL/v2/type/4/" + } + ], + "no_damage_from": [ + { + "name": "electric", + "url": "$BASE_URL/v2/type/13/" + } + ], + "half_damage_from": [ + { + "name": "poison", + "url": "$BASE_URL/v2/type/4/" + } + ], + "double_damage_from": [ + { + "name": "water", + "url": "$BASE_URL/v2/type/11/" + } + ] + }, + "past_damage_relations": [ + { + "generation": { + "name": "generation-v", + "url": "$BASE_URL/v2/generation/5/" + }, + "damage_relations": { + "no_damage_to": [ + { + "name": "normal", + "url": "$BASE_URL/v2/type/1/" + } ], - "game_indices": [ - { - "game_index": 4, - "generation": { - "name": "generation-i", - "url": "$BASE_URL/v2/generation/1/" - } - } + "half_damage_to": [ + { + "name": "steel", + "url": "$BASE_URL/v2/type/9/" + } ], - "generation": { - "name": "generation-i", - "url": "$BASE_URL/v2/generation/1/" - }, - "move_damage_class": { - "name": "physical", - "url": "$BASE_URL/v2/move-damage-class/2/" - }, - "names": [ - { - "name": "じめん", - "language": { - "name": "ja", - "url": "$BASE_URL/v2/language/1/" - } - } + "double_damage_to": [ + { + "name": "ghost", + "url": "$BASE_URL/v2/type/8/" + } ], - "pokemon": [ - { - "slot": 1, - "pokemon": { - "name": "sandshrew", - "url": "$BASE_URL/v2/pokemon/27/" - } - } + "no_damage_from": [ + { + "name": "normal", + "url": "$BASE_URL/v2/type/1/" + } ], - "moves": [ - { - "name": "sand-attack", - "url": "$BASE_URL/v2/move/28/" - } + "half_damage_from": [ + { + "name": "poison", + "url": "$BASE_URL/v2/type/4/" + } + ], + "double_damage_from": [ + { + "name": "ghost", + "url": "$BASE_URL/v2/type/8/" + } ] - }, - "responseModels": [ - { - "name": "Type", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "damage_relations", - "description": "A detail of how effective this type is toward others and vice versa.", - "type": "TypeRelations" - }, - { - "name": "past_damage_relations", - "description": "A list of details of how effective this type was toward others and vice versa in previous generations", - "type": { - "type": "list", - "of": { - "type": "TypeRelationsPast", - "of": "Type" - } - } - }, - { - "name": "game_indices", - "description": "A list of game indices relevent to this item by generation.", - "type": { - "type": "list", - "of": "GenerationGameIndex" - } - }, - { - "name": "generation", - "description": "The generation this type was introduced in.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "move_damage_class", - "description": "The class of damage inflicted by this type.", - "type": { - "type": "NamedAPIResource", - "of": "MoveDamageClass" - } - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - }, - { - "name": "pokemon", - "description": "A list of details of Pokémon that have this type.", - "type": { - "type": "list", - "of": "TypePokemon" - } - }, - { - "name": "moves", - "description": "A list of moves that have this type.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Move" - } - } - } - ] - }, - { - "name": "TypePokemon", - "fields": [ - { - "name": "slot", - "description": "The order the Pokémon's types are listed in.", - "type": "integer" - }, - { - "name": "pokemon", - "description": "The Pokémon that has the referenced type.", - "type": { - "type": "NamedAPIResource", - "of": "Pokemon" - } - } - ] - }, - { - "name": "TypeRelations", - "fields": [ - { - "name": "no_damage_to", - "description": "A list of types this type has no effect on.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Type" - } - } - }, - { - "name": "half_damage_to", - "description": "A list of types this type is not very effect against.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Type" - } - } - }, - { - "name": "double_damage_to", - "description": "A list of types this type is very effect against.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Type" - } - } - }, - { - "name": "no_damage_from", - "description": "A list of types that have no effect on this type.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Type" - } - } - }, - { - "name": "half_damage_from", - "description": "A list of types that are not very effective against this type.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Type" - } - } - }, - { - "name": "double_damage_from", - "description": "A list of types that are very effective against this type.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "Type" - } - } - } - ] - }, - { - "name": "TypeRelationsPast", - "fields": [ - { - "name": "generation", - "description": "The last generation in which the referenced type had the listed damage relations", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - }, - { - "name": "damage_relations", - "description": "The damage relations the referenced type had up to and including the listed generation", - "type": "TypeRelations" - } - ] + } + } + ], + "game_indices": [ + { + "game_index": 4, + "generation": { + "name": "generation-i", + "url": "$BASE_URL/v2/generation/1/" + } + } + ], + "generation": { + "name": "generation-i", + "url": "$BASE_URL/v2/generation/1/" + }, + "move_damage_class": { + "name": "physical", + "url": "$BASE_URL/v2/move-damage-class/2/" + }, + "names": [ + { + "name": "じめん", + "language": { + "name": "ja", + "url": "$BASE_URL/v2/language/1/" + } + } + ], + "pokemon": [ + { + "slot": 1, + "pokemon": { + "name": "sandshrew", + "url": "$BASE_URL/v2/pokemon/27/" + } + } + ], + "moves": [ + { + "name": "sand-attack", + "url": "$BASE_URL/v2/move/28/" + } + ] + }, + "responseModels": [ + { + "name": "Type", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "damage_relations", + "description": "A detail of how effective this type is toward others and vice versa.", + "type": "TypeRelations" + }, + { + "name": "past_damage_relations", + "description": "A list of details of how effective this type was toward others and vice versa in previous generations", + "type": { + "type": "list", + "of": { + "type": "TypeRelationsPast", + "of": "Type" + } + } + }, + { + "name": "game_indices", + "description": "A list of game indices relevent to this item by generation.", + "type": { + "type": "list", + "of": "GenerationGameIndex" + } + }, + { + "name": "generation", + "description": "The generation this type was introduced in.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + }, + { + "name": "move_damage_class", + "description": "The class of damage inflicted by this type.", + "type": { + "type": "NamedAPIResource", + "of": "MoveDamageClass" + } + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" + } + }, + { + "name": "pokemon", + "description": "A list of details of Pokémon that have this type.", + "type": { + "type": "list", + "of": "TypePokemon" + } + }, + { + "name": "moves", + "description": "A list of moves that have this type.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Move" + } + } + } + ] + }, + { + "name": "TypePokemon", + "fields": [ + { + "name": "slot", + "description": "The order the Pokémon's types are listed in.", + "type": "integer" + }, + { + "name": "pokemon", + "description": "The Pokémon that has the referenced type.", + "type": { + "type": "NamedAPIResource", + "of": "Pokemon" + } + } + ] + }, + { + "name": "TypeRelations", + "fields": [ + { + "name": "no_damage_to", + "description": "A list of types this type has no effect on.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Type" + } + } + }, + { + "name": "half_damage_to", + "description": "A list of types this type is not very effect against.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Type" + } + } + }, + { + "name": "double_damage_to", + "description": "A list of types this type is very effect against.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Type" + } + } + }, + { + "name": "no_damage_from", + "description": "A list of types that have no effect on this type.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Type" + } + } + }, + { + "name": "half_damage_from", + "description": "A list of types that are not very effective against this type.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Type" + } + } + }, + { + "name": "double_damage_from", + "description": "A list of types that are very effective against this type.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "Type" + } + } + } + ] + }, + { + "name": "TypeRelationsPast", + "fields": [ + { + "name": "generation", + "description": "The last generation in which the referenced type had the listed damage relations", + "type": { + "type": "NamedAPIResource", + "of": "Generation" } + }, + { + "name": "damage_relations", + "description": "The damage relations the referenced type had up to and including the listed generation", + "type": "TypeRelations" + } ] - } + } + ] + } ] diff --git a/src/data/operations/resource-lists.json b/src/data/operations/resource-lists.json index 41a5b17..431434c 100644 --- a/src/data/operations/resource-lists.json +++ b/src/data/operations/resource-lists.json @@ -6,10 +6,12 @@ "count": 248, "next": "$BASE_URL/v2/ability/?limit=20&offset=20", "previous": null, - "results": [{ - "name": "stench", - "url": "$BASE_URL/v2/ability/1/" - }] + "results": [ + { + "name": "stench", + "url": "$BASE_URL/v2/ability/1/" + } + ] }, "responseModels": [ { @@ -49,9 +51,11 @@ "count": 541, "next": "$BASE_URL/v2/evolution-chain?offset=20&limit=20", "previous": null, - "results": [{ - "url": "$BASE_URL/v2/evolution-chain/1/" - }] + "results": [ + { + "url": "$BASE_URL/v2/evolution-chain/1/" + } + ] }, "responseModels": [ { diff --git a/src/data/operations/utility.json b/src/data/operations/utility.json index 635b5cb..e1d3bc0 100644 --- a/src/data/operations/utility.json +++ b/src/data/operations/utility.json @@ -1,342 +1,344 @@ [ - { - "name": "Languages", - "description": "Languages for translations of API resource information.", - "exampleRequest": "/v2/language/{id or name}/", - "exampleResponse": { - "id": 1, - "name": "ja", - "official": true, - "iso639": "ja", - "iso3166": "jp", - "names": [{ - "name": "Japanese", - "language": { - "name": "en", - "url": "$BASE_URL/v2/language/9/" - } - }] - }, - "responseModels": [ - { - "name": "Language", - "fields": [ - { - "name": "id", - "description": "The identifier for this resource.", - "type": "integer" - }, - { - "name": "name", - "description": "The name for this resource.", - "type": "string" - }, - { - "name": "official", - "description": "Whether or not the games are published in this language.", - "type": "boolean" - }, - { - "name": "iso639", - "description": "The two-letter code of the country where this language is spoken. Note that it is not unique.", - "type": "string" - }, - { - "name": "iso3166", - "description": "The two-letter code of the language. Note that it is not unique.", - "type": "string" - }, - { - "name": "names", - "description": "The name of this resource listed in different languages.", - "type": { - "type": "list", - "of": "Name" - } - } - ] + { + "name": "Languages", + "description": "Languages for translations of API resource information.", + "exampleRequest": "/v2/language/{id or name}/", + "exampleResponse": { + "id": 1, + "name": "ja", + "official": true, + "iso639": "ja", + "iso3166": "jp", + "names": [ + { + "name": "Japanese", + "language": { + "name": "en", + "url": "$BASE_URL/v2/language/9/" + } + } + ] + }, + "responseModels": [ + { + "name": "Language", + "fields": [ + { + "name": "id", + "description": "The identifier for this resource.", + "type": "integer" + }, + { + "name": "name", + "description": "The name for this resource.", + "type": "string" + }, + { + "name": "official", + "description": "Whether or not the games are published in this language.", + "type": "boolean" + }, + { + "name": "iso639", + "description": "The two-letter code of the country where this language is spoken. Note that it is not unique.", + "type": "string" + }, + { + "name": "iso3166", + "description": "The two-letter code of the language. Note that it is not unique.", + "type": "string" + }, + { + "name": "names", + "description": "The name of this resource listed in different languages.", + "type": { + "type": "list", + "of": "Name" } + } ] - }, - { - "name": "Common Models", - "responseModels": [ - { - "name": "APIResource", - "fields": [ - { - "name": "url", - "description": "The URL of the referenced resource.", - "type": "string" - } - ] - }, - { - "name": "Description", - "fields": [ - { - "name": "description", - "description": "The localized description for an API resource in a specific language.", - "type": "string" - }, - { - "name": "language", - "description": "The language this name is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - } - ] - }, - { - "name": "Effect", - "fields": [ - { - "name": "effect", - "description": "The localized effect text for an API resource in a specific language.", - "type": "string" - }, - { - "name": "language", - "description": "The language this effect is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - } - ] - }, - { - "name": "Encounter", - "fields": [ - { - "name": "min_level", - "description": "The lowest level the Pokémon could be encountered at.", - "type": "integer" - }, - { - "name": "max_level", - "description": "The highest level the Pokémon could be encountered at.", - "type": "integer" - }, - { - "name": "condition_values", - "description": "A list of condition values that must be in effect for this encounter to occur.", - "type": { - "type": "list", - "of": { - "type": "NamedAPIResource", - "of": "EncounterConditionValue" - } - } - }, - { - "name": "chance", - "description": "Percent chance that this encounter will occur.", - "type": "integer" - }, - { - "name": "method", - "description": "The method by which this encounter happens.", - "type": { - "type": "NamedAPIResource", - "of": "EncounterMethod" - } - } - ] - }, - { - "name": "FlavorText", - "fields": [ - { - "name": "flavor_text", - "description": "The localized flavor text for an API resource in a specific language. Note that this text is left unprocessed as it is found in game files. This means that it contains special characters that one might want to replace with their visible decodable version. Please check out this issue to find out more. ", - "type": "string" - }, - { - "name": "language", - "description": "The language this name is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - }, - { - "name": "version", - "description": "The game version this flavor text is extracted from.", - "type": { - "type": "NamedAPIResource", - "of": "Version" - } - } - ] - }, - { - "name": "GenerationGameIndex", - "fields": [ - { - "name": "game_index", - "description": "The internal id of an API resource within game data.", - "type": "integer" - }, - { - "name": "generation", - "description": "The generation relevent to this game index.", - "type": { - "type": "NamedAPIResource", - "of": "Generation" - } - } - ] - }, - { - "name": "MachineVersionDetail", - "fields": [ - { - "name": "machine", - "description": "The machine that teaches a move from an item.", - "type": { - "type": "APIResource ", - "of": "Machine" - } - }, - { - "name": "version_group", - "description": "The version group of this specific machine.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - ] - }, - { - "name": "Name", - "fields": [ - { - "name": "name", - "description": "The localized name for an API resource in a specific language.", - "type": "string" - }, - { - "name": "language", - "description": "The language this name is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - } - ] - }, - { - "name": "NamedAPIResource", - "fields": [ - { - "name": "name", - "description": "The name of the referenced resource.", - "type": "string" - }, - { - "name": "url", - "description": "The URL of the referenced resource.", - "type": "string" - } - ] - }, - { - "name": "VerboseEffect", - "fields": [ - { - "name": "effect", - "description": "The localized effect text for an API resource in a specific language.", - "type": "string" - }, - { - "name": "short_effect", - "description": "The localized effect text in brief.", - "type": "string" - }, - { - "name": "language", - "description": "The language this effect is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - } - ] - }, - { - "name": "VersionEncounterDetail", - "fields": [ - { - "name": "version", - "description": "The game version this encounter happens in.", - "type": { - "type": "NamedAPIResource", - "of": "Version" - } - }, - { - "name": "max_chance", - "description": "The total percentage of all encounter potential.", - "type": "integer" - }, - { - "name": "encounter_details", - "description": "A list of encounters and their specifics.", - "type": { - "type": "list", - "of": "Encounter" - } - } - ] - }, - { - "name": "VersionGameIndex", - "fields": [ - { - "name": "game_index", - "description": "The internal id of an API resource within game data.", - "type": "integer" - }, - { - "name": "version", - "description": "The version relevent to this game index.", - "type": { - "type": "NamedAPIResource", - "of": "Version" - } - } - ] - }, - { - "name": "VersionGroupFlavorText", - "fields": [ - { - "name": "text", - "description": "The localized name for an API resource in a specific language.", - "type": "string" - }, - { - "name": "language", - "description": "The language this name is in.", - "type": { - "type": "NamedAPIResource", - "of": "Language" - } - }, - { - "name": "version_group", - "description": "The version group which uses this flavor text.", - "type": { - "type": "NamedAPIResource", - "of": "VersionGroup" - } - } - ] + } + ] + }, + { + "name": "Common Models", + "responseModels": [ + { + "name": "APIResource", + "fields": [ + { + "name": "url", + "description": "The URL of the referenced resource.", + "type": "string" + } + ] + }, + { + "name": "Description", + "fields": [ + { + "name": "description", + "description": "The localized description for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } + ] + }, + { + "name": "Effect", + "fields": [ + { + "name": "effect", + "description": "The localized effect text for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this effect is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } + ] + }, + { + "name": "Encounter", + "fields": [ + { + "name": "min_level", + "description": "The lowest level the Pokémon could be encountered at.", + "type": "integer" + }, + { + "name": "max_level", + "description": "The highest level the Pokémon could be encountered at.", + "type": "integer" + }, + { + "name": "condition_values", + "description": "A list of condition values that must be in effect for this encounter to occur.", + "type": { + "type": "list", + "of": { + "type": "NamedAPIResource", + "of": "EncounterConditionValue" + } + } + }, + { + "name": "chance", + "description": "Percent chance that this encounter will occur.", + "type": "integer" + }, + { + "name": "method", + "description": "The method by which this encounter happens.", + "type": { + "type": "NamedAPIResource", + "of": "EncounterMethod" + } + } + ] + }, + { + "name": "FlavorText", + "fields": [ + { + "name": "flavor_text", + "description": "The localized flavor text for an API resource in a specific language. Note that this text is left unprocessed as it is found in game files. This means that it contains special characters that one might want to replace with their visible decodable version. Please check out this issue to find out more. ", + "type": "string" + }, + { + "name": "language", + "description": "The language this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + }, + { + "name": "version", + "description": "The game version this flavor text is extracted from.", + "type": { + "type": "NamedAPIResource", + "of": "Version" + } + } + ] + }, + { + "name": "GenerationGameIndex", + "fields": [ + { + "name": "game_index", + "description": "The internal id of an API resource within game data.", + "type": "integer" + }, + { + "name": "generation", + "description": "The generation relevent to this game index.", + "type": { + "type": "NamedAPIResource", + "of": "Generation" + } + } + ] + }, + { + "name": "MachineVersionDetail", + "fields": [ + { + "name": "machine", + "description": "The machine that teaches a move from an item.", + "type": { + "type": "APIResource ", + "of": "Machine" + } + }, + { + "name": "version_group", + "description": "The version group of this specific machine.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" + } + } + ] + }, + { + "name": "Name", + "fields": [ + { + "name": "name", + "description": "The localized name for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } + ] + }, + { + "name": "NamedAPIResource", + "fields": [ + { + "name": "name", + "description": "The name of the referenced resource.", + "type": "string" + }, + { + "name": "url", + "description": "The URL of the referenced resource.", + "type": "string" + } + ] + }, + { + "name": "VerboseEffect", + "fields": [ + { + "name": "effect", + "description": "The localized effect text for an API resource in a specific language.", + "type": "string" + }, + { + "name": "short_effect", + "description": "The localized effect text in brief.", + "type": "string" + }, + { + "name": "language", + "description": "The language this effect is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + } + ] + }, + { + "name": "VersionEncounterDetail", + "fields": [ + { + "name": "version", + "description": "The game version this encounter happens in.", + "type": { + "type": "NamedAPIResource", + "of": "Version" + } + }, + { + "name": "max_chance", + "description": "The total percentage of all encounter potential.", + "type": "integer" + }, + { + "name": "encounter_details", + "description": "A list of encounters and their specifics.", + "type": { + "type": "list", + "of": "Encounter" + } + } + ] + }, + { + "name": "VersionGameIndex", + "fields": [ + { + "name": "game_index", + "description": "The internal id of an API resource within game data.", + "type": "integer" + }, + { + "name": "version", + "description": "The version relevent to this game index.", + "type": { + "type": "NamedAPIResource", + "of": "Version" + } + } + ] + }, + { + "name": "VersionGroupFlavorText", + "fields": [ + { + "name": "text", + "description": "The localized name for an API resource in a specific language.", + "type": "string" + }, + { + "name": "language", + "description": "The language this name is in.", + "type": { + "type": "NamedAPIResource", + "of": "Language" + } + }, + { + "name": "version_group", + "description": "The version group which uses this flavor text.", + "type": { + "type": "NamedAPIResource", + "of": "VersionGroup" } + } ] - } + } + ] + } ] diff --git a/src/pages/index-backup.astro b/src/pages/index-backup.astro deleted file mode 100644 index 7127aa5..0000000 --- a/src/pages/index-backup.astro +++ /dev/null @@ -1,9 +0,0 @@ ---- -console.log('This runs in your terminal, not the browser!'); ---- - - - -

PokeAPI

- - diff --git a/src/routeData.ts b/src/routeData.ts new file mode 100644 index 0000000..d483290 --- /dev/null +++ b/src/routeData.ts @@ -0,0 +1,230 @@ +import {defineRouteMiddleware} from "@astrojs/starlight/route-data"; +import {readFileSync, existsSync} from "node:fs"; +import {resolve} from "node:path"; +import {parse} from "yaml"; +import resourceLists from "./data/operations/resource-lists.json"; +import berries from "./data/operations/berries.json"; +import contests from "./data/operations/contests.json"; +import encounters from "./data/operations/encounters.json"; +import evolution from "./data/operations/evolution.json"; +import games from "./data/operations/games.json"; +import items from "./data/operations/items.json"; +import locations from "./data/operations/locations.json"; +import machines from "./data/operations/machines.json"; +import moves from "./data/operations/moves.json"; +import pokemon from "./data/operations/pokemon.json"; +import utility from "./data/operations/utility.json"; + +const tocMapping: Record = { + "resource-listspagination-group": resourceLists, + "berries-group": berries, + "contests-group": contests, + "encounters-group": encounters, + "evolution-group": evolution, + "games-group": games, + "items-group": items, + "locations-group": locations, + "machines-group": machines, + "moves-group": moves, + "pokemon-group": pokemon, + "utility-group": utility, +}; + +const PageCategory = { + OPENAPI: "openapi", + GUIDES: "guides", + API_V2: "api-v2", + DOCUMENTATION: "documentation", +} as const; + +type PageCategoryType = typeof PageCategory[keyof typeof PageCategory]; + +const CATEGORY_KEYWORDS: Record = { + [PageCategory.OPENAPI]: ["openapi", "swagger", "schema", "endpoints", "developer", "reference"], + [PageCategory.GUIDES]: ["guide", "tutorial", "how-to", "integration", "examples"], + [PageCategory.API_V2]: ["explorer", "console", "RESTful", "resource", "endpoints"], + [PageCategory.DOCUMENTATION]: ["documentation", "RESTful", "web service"], +}; + +function stripMarkdown(text: string): string { + return text + .replace(/\[([^\]]+)\]\([^\s()]+(?:\([^\s)]+\))?[^\s()]*\)/g, "$1") // Strip links (handles nested parens) + .replace(/[\*_]{1,3}/g, "") // Strip bold/italic markup + .replace(/`([^`]+)`/g, "$1") // Strip inline code blocks + .replace(/<[^>]*>/g, "") // Strip raw HTML tags + .replace(/\s*\r?\n\s*/g, " ") // Clean newlines to spaces + .trim(); +} + +const openapiDescriptions: Record = {}; +const openapiTagDescriptions: Record = {}; +let openapiInfoDescription = ""; + +try { + const schemaPath = resolve("./public/openapi.yml"); + if (existsSync(schemaPath)) { + const schemaFile = readFileSync(schemaPath, "utf-8"); + const schema = parse(schemaFile); + if (schema) { + if (schema.info && schema.info.description) { + openapiInfoDescription = stripMarkdown(schema.info.description); + } + + if (schema.tags && Array.isArray(schema.tags)) { + for (const tagObj of schema.tags) { + if (tagObj && typeof tagObj === "object" && "name" in tagObj && "description" in tagObj) { + let tagDesc = tagObj.description || ""; + if (tagObj.externalDocs && typeof tagObj.externalDocs === "object" && tagObj.externalDocs.description) { + tagDesc += " " + tagObj.externalDocs.description; + } + openapiTagDescriptions[tagObj.name.toLowerCase()] = stripMarkdown(tagDesc); + } + } + } + + if (schema.paths) { + for (const [pathKey, pathItem] of Object.entries(schema.paths)) { + if (pathItem && typeof pathItem === "object" && pathItem !== null) { + for (const [method, operation] of Object.entries(pathItem)) { + if (operation && typeof operation === "object" && operation !== null && "operationId" in operation) { + const op = operation as any; + const descriptionText = op.description || op.summary || ""; + if (descriptionText) { + openapiDescriptions[op.operationId] = stripMarkdown(descriptionText); + } + } + } + } + } + } + } + } +} catch (e) { + console.warn("[routeData.ts] Failed to parse openapi.yml:", e); +} + +export const onRequest = defineRouteMiddleware((context) => { + const { starlightRoute } = context.locals; + + const ogImageUrl = "https://raw.githubusercontent.com/PokeAPI/media/master/logo/pokeapi_256.png"; + + const routeId = starlightRoute.id || ""; + let calculatedCategory: PageCategoryType = PageCategory.DOCUMENTATION; + if (routeId.startsWith("v2/openapi")) { + calculatedCategory = PageCategory.OPENAPI; + } else if (routeId.startsWith("how-tos")) { + calculatedCategory = PageCategory.GUIDES; + } else if (routeId.startsWith("v2")) { + calculatedCategory = PageCategory.API_V2; + } + + const entryData = (starlightRoute.entry as any)?.data || {}; + const category = entryData.category || calculatedCategory; + + let description = entryData.description; + if (!description) { + if (routeId.startsWith("v2/openapi")) { + let schemaDesc = ""; + if (routeId === "v2/openapi" || routeId === "v2/openapi/") { + schemaDesc = openapiInfoDescription || "Full developer API schemas and interactive endpoint specifications for PokéAPI."; + } else if (routeId.startsWith("v2/openapi/operations/tags/")) { + const tagName = routeId.replace("v2/openapi/operations/tags/", "").replace(/\/$/, "").toLowerCase(); + schemaDesc = openapiTagDescriptions[tagName] || `API reference lists for all endpoints tagged under ${tagName}.`; + } else if (routeId.startsWith("v2/openapi/operations/")) { + const operationId = routeId.replace("v2/openapi/operations/", "").replace(/\/$/, ""); + schemaDesc = openapiDescriptions[operationId] || ""; + } + + const endpointName = starlightRoute.title || "this resource"; + description = schemaDesc || `Interactive API documentation for PokéAPI's ${endpointName} endpoint. View specifications, request schemas, parameters, and code samples.`; + } else if (routeId.startsWith("how-tos")) { + description = `Learn how to integrate and use PokéAPI with different libraries, frameworks, and patterns.`; + } else { + description = `The RESTful Pokémon API.`; + } + + if (starlightRoute.entry?.data) { + starlightRoute.entry.data.description = description; + } + } + + const baseKeywords = ["pokeapi", "pokemon", "api"]; + const categorySpecific = CATEGORY_KEYWORDS[calculatedCategory]; + + let customKeywords: string[] = []; + if (entryData.keywords) { + customKeywords = Array.isArray(entryData.keywords) + ? entryData.keywords + : entryData.keywords.split(",").map((k: string) => k.trim()); + } + + const mergedKeywords = Array.from(new Set([...baseKeywords, ...categorySpecific, ...customKeywords])); + const keywordsStr = mergedKeywords.join(", "); + + starlightRoute.head.push( + { + tag: "meta", + attrs: {property: "og:image", content: ogImageUrl.href}, + }, + { + tag: "meta", + attrs: {name: "twitter:image", content: ogImageUrl.href}, + }, + { + tag: "meta", + attrs: {name: "twitter:card", content: "summary_large_image"}, + }, + { + tag: "meta", + attrs: {name: "theme-color", content: "#ef4444", media: "(prefers-color-scheme: light)"}, + }, + { + tag: "meta", + attrs: {name: "theme-color", content: "#2563eb", media: "(prefers-color-scheme: dark)"}, + }, + { + tag: "meta", + attrs: {name: "category", content: category}, + }, + { + tag: "meta", + attrs: {name: "keywords", content: keywordsStr}, + }, + { + tag: "meta", + attrs: {name: "robots", content: "index, follow"}, + }, + ); + + const hasDescTag = starlightRoute.head.some((tag: any) => tag.attrs?.name === "description"); + if (!hasDescTag && description) { + starlightRoute.head.push({ + tag: "meta", + attrs: {name: "description", content: description}, + }); + } + + if (starlightRoute.id === "v2/index" || starlightRoute.id === "v2") { + if (starlightRoute.toc && starlightRoute.toc.items) { + starlightRoute.toc.items = starlightRoute.toc.items.map((item) => { + const endpoints = tocMapping[item.slug]; + + if (endpoints) { + const children = endpoints.map((endpoint) => ({ + depth: 3, + slug: endpoint.name, + text: endpoint.name, + children: [], + })); + + return { + ...item, + children: [...item.children, ...children], + }; + } + + return item; + }); + } + } +}); diff --git a/src/styles/global.css b/src/styles/global.css index 8c83664..0e40e1c 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -4,33 +4,1245 @@ @import "tailwindcss/theme.css" layer(theme); @import "tailwindcss/utilities.css" layer(utilities); -/* Dark mode colors. */ :root { - --sl-color-accent-low: #40130b; - --sl-color-accent: #bf2600; - --sl-color-accent-high: #f3b8ab; + --pokemon-blue-low: #1e40af; + --pokemon-blue: #3b82f6; + --pokemon-blue-high: #bfdbfe; + + --pokemon-yellow-low: #fef9c3; + --pokemon-yellow: #eab308; + --pokemon-yellow-high: #ca8a04; + + --sl-color-accent-low: var(--pokemon-blue-low); + --sl-color-accent: var(--pokemon-blue); + --sl-color-accent-high: var(--pokemon-blue-high); + --sl-color-white: #ffffff; - --sl-color-gray-1: #eceef2; - --sl-color-gray-2: #c0c2c7; - --sl-color-gray-3: #888b96; - --sl-color-gray-4: #545861; - --sl-color-gray-5: #353841; - --sl-color-gray-6: #24272f; - --sl-color-black: #17181c; + --sl-color-gray-1: #cbd5e1; + --sl-color-gray-2: #94a3b8; + --sl-color-gray-3: #64748b; + --sl-color-gray-4: #334155; + --sl-color-gray-5: #1e293b; + --sl-color-gray-6: #0f172a; + --sl-color-black: #0b0f19; + + --sl-color-bg-sidebar: color-mix(in srgb, var(--sl-color-gray-6) 40%, transparent); + --sl-color-hairline: color-mix(in srgb, var(--sl-color-gray-4) 30%, transparent); + --sl-color-hairline-shade: var(--sl-color-hairline); + + --sl-color-hero-tagline-highlight: var(--pokemon-yellow); + + --ec-frm-inlBtnBg: var(--sl-color-accent); } -/* Light mode colors. */ :root[data-theme="light"] { - --sl-color-accent-low: #f8cbc0; - --sl-color-accent: #c32700; - --sl-color-accent-high: #5d1406; - --sl-color-white: #17181c; - --sl-color-gray-1: #24272f; - --sl-color-gray-2: #353841; - --sl-color-gray-3: #545861; - --sl-color-gray-4: #888b96; - --sl-color-gray-5: #c0c2c7; - --sl-color-gray-6: #eceef2; - --sl-color-gray-7: #f5f6f8; + --pokemon-yellow: #ca8a04; + --pokemon-yellow-high: #a16207; + + --sl-color-accent-low: var(--pokemon-yellow-low); + --sl-color-accent: var(--pokemon-yellow); + --sl-color-accent-high: var(--pokemon-yellow-high); + + --sl-color-white: #0f172a; + --sl-color-gray-1: #1e293b; + --sl-color-gray-2: #334155; + --sl-color-gray-3: #64748b; + --sl-color-gray-4: #94a3b8; + --sl-color-gray-5: #cbd5e1; + --sl-color-gray-6: #f1f5f9; + --sl-color-gray-7: #f8fafc; --sl-color-black: #ffffff; + + --sl-color-bg-sidebar: color-mix(in srgb, var(--sl-color-gray-6) 20%, transparent); + + --sl-color-hero-tagline-highlight: var(--pokemon-blue); +} + +header a, +header a:hover, +header a:focus, +nav a, +nav a:hover { + text-decoration: none !important; +} + +.hero { + display: grid; + grid-template-columns: 100%; + align-items: center; + gap: 1rem; + padding-bottom: 1rem; +} + +.hero > img { + aspect-ratio: auto !important; + max-width: 256px; + height: auto !important; + object-fit: contain; +} + +@media (min-width: 50rem) { + .hero { + grid-template-columns: 7fr 4fr; + gap: 3%; + padding-block: clamp(2.5rem, calc(1rem + 10vmin), 10rem); + } + .hero .hero-html.sl-flex { + justify-content: flex-end !important; + order: 2; + width: auto !important; + } + .hero .stack { + text-align: start; + } + .hero .copy { + align-items: flex-start; + } + .hero .actions { + justify-content: flex-start !important; + } +} + +.hero .hero-html.sl-flex { + display: flex !important; + justify-content: center !important; + align-items: center !important; +} + +.hero .hero-html img { + display: block !important; + margin: 0 auto !important; + max-width: 100% !important; + height: auto !important; +} + +.not-content pre, +.api-explorer-root pre { + border: none !important; +} + +.hero .actions { + display: flex !important; + gap: 12px !important; + margin-top: 1.5rem !important; +} + +.hero .actions .sl-link-button { + display: inline-flex !important; + justify-content: center !important; + align-items: center !important; + gap: 8px !important; + transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important; + border-radius: 8px !important; + padding: 0.75rem 1.5rem !important; + font-weight: 600 !important; + font-size: 0.95rem !important; +} + +.hero .actions .sl-link-button.primary { + border-color: var(--sl-color-accent) !important; + background: var(--sl-color-accent) !important; + color: #ffffff !important; +} + +.hero .actions .sl-link-button.primary:hover { + transform: translateY(-2px) !important; + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35) !important; + border-color: color-mix(in srgb, var(--sl-color-accent) 85%, #ffffff 15%) !important; + background: color-mix(in srgb, var(--sl-color-accent) 85%, #ffffff 15%) !important; +} + +.hero .actions .sl-link-button.primary:active { + transform: translateY(0) !important; +} + +.hero .actions .sl-link-button.secondary { + border-color: var(--sl-color-gray-5) !important; + background: var(--sl-color-gray-6) !important; + color: var(--sl-color-white) !important; +} + +.hero .actions .sl-link-button.secondary:hover { + transform: translateY(-2px) !important; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important; + border-color: var(--sl-color-gray-4) !important; + background: var(--sl-color-gray-5) !important; + color: var(--sl-color-white) !important; +} + +.hero .actions .sl-link-button.secondary:active { + transform: translateY(0) !important; +} + +.hero .actions .sl-link-button svg { + transition: transform 0.2s ease !important; + width: 16px !important; + height: 16px !important; +} + +.hero .actions .sl-link-button:hover svg { + transform: scale(1.1) !important; +} + +@media (min-width: 72rem) { + :root { + --sl-content-width: 58rem !important; + } +} +@media (min-width: 85rem) { + :root { + --sl-content-width: 68rem !important; + } +} + +.sl-markdown-content :not(h1, h2, h3, h4, h5, h6, .sl-heading-wrapper) + :is(.sl-heading-wrapper) { + margin-top: 0.75em; +} + +.sl-markdown-content table:has(th:nth-child(3):last-child) { + width: 100% !important; + table-layout: fixed !important; +} +.sl-markdown-content table:has(th:nth-child(3):last-child) th:nth-child(1), +.sl-markdown-content table:has(th:nth-child(3):last-child) td:nth-child(1) { + width: 20% !important; +} +.sl-markdown-content table:has(th:nth-child(3):last-child) th:nth-child(2), +.sl-markdown-content table:has(th:nth-child(3):last-child) td:nth-child(2) { + width: 45% !important; +} +.sl-markdown-content table:has(th:nth-child(3):last-child) th:nth-child(3), +.sl-markdown-content table:has(th:nth-child(3):last-child) td:nth-child(3) { + width: 35% !important; +} + +@media (max-width: 50rem) { + .sl-markdown-content table:has(th:nth-child(3):last-child) th, + .sl-markdown-content table:has(th:nth-child(3):last-child) td { + padding-right: 0.4rem !important; + padding-left: 0.4rem !important; + } +} + +.sl-markdown-content table:has(th:nth-child(3):last-child) td { + word-break: break-word !important; + overflow-wrap: break-word !important; +} + +.operation-description-urls summary .caret { + display: none !important; +} +.operation-description-urls summary { + cursor: default !important; + pointer-events: none !important; +} +.operation-description-urls ul { + display: none !important; +} + +.sl-openapi-operation-description-button { + display: none !important; +} + +.sl-openapi-section { + margin-block: 2rem 0 !important; +} + +.sl-openapi-section + .sl-openapi-section, +.sl-openapi-section + .sl-heading-wrapper, +.sl-heading-wrapper + .sl-openapi-section, +.sl-heading-wrapper + .sl-heading-wrapper { + margin-top: 0.5rem !important; +} + +.sl-openapi-section-pre-panel { + display: none !important; +} + +.sl-anchor-link { + display: none !important; +} + +.sl-openapi-heading { + margin-block: 0.6rem 0 !important; + font-size: 1rem !important; + line-height: 1.3 !important; +} + +.sl-heading-wrapper.level-h2 .sl-openapi-heading { + margin-bottom: 0.2rem !important; + font-size: 1.15rem !important; +} + +.sl-heading-wrapper.level-h3 .sl-openapi-heading { + display: none !important; +} + +.sl-openapi-section-panel { + margin-block: 0 !important; + border: none !important; + background: transparent !important; + padding: 0 !important; +} + +.sl-openapi-operation-description { + margin-bottom: 1.5rem !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-4) 30%, transparent) !important; + border-radius: 8px !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 20%, transparent) !important; + overflow: hidden !important; +} + +:root[data-theme="dark"] .sl-openapi-operation-description { + border: 1px solid color-mix(in srgb, var(--sl-color-gray-3) 30%, transparent) !important; +} + +.sl-openapi-operation-description-header { + display: flex !important; + justify-content: space-between !important; + align-items: center !important; + gap: 1rem !important; + border-bottom: 1px solid color-mix(in srgb, var(--sl-color-gray-4) 30%, transparent) !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 55%, transparent) !important; + padding: 0.5rem 1rem !important; +} + +:root[data-theme="dark"] .sl-openapi-operation-description-header { + border-bottom: 1px solid color-mix(in srgb, var(--sl-color-gray-3) 30%, transparent) !important; +} + +.sl-openapi-operation-method { + display: flex !important; + align-items: center !important; + gap: 0.5rem !important; +} + +.sl-openapi-operation-method-badge { + border-radius: 4px !important; + padding: 0.12rem 0.45rem !important; + font-weight: 700 !important; + font-size: 0.7rem !important; + letter-spacing: 0.05em !important; +} + +.sl-openapi-operation-method-badge.get { + border: 1px solid rgba(16, 185, 129, 0.25) !important; + background-color: rgba(16, 185, 129, 0.12) !important; + color: #34d399 !important; +} + +.sl-openapi-operation-method-path { + color: var(--sl-color-white) !important; + font-weight: 500 !important; + font-size: 0.85rem !important; + font-family: var(--__sl-font-mono) !important; +} + +sl-openapi-snippet-picker { + display: flex !important; + align-items: center !important; +} + +sl-openapi-snippet-picker label.sl-openapi-snippet-picker { + display: flex !important; + position: relative !important; + align-items: center !important; + gap: 0.2rem !important; + cursor: pointer !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-5) 40%, transparent) !important; + border-radius: 4px !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 80%, transparent) !important; + padding: 0.18rem 1.4rem 0.18rem 0.5rem !important; +} + +sl-openapi-snippet-picker select { + appearance: none !important; + -webkit-appearance: none !important; + -moz-appearance: none !important; + cursor: pointer !important; + outline: none !important; + border: none !important; + background: transparent !important; + padding: 0 !important; + width: 100% !important; + color: var(--sl-color-gray-2) !important; + font-weight: 600 !important; + font-size: 0.72rem !important; +} + +sl-openapi-snippet-picker select option, +sl-openapi-snippet-picker select optgroup { + background-color: var(--sl-color-gray-6) !important; + color: var(--sl-color-white) !important; +} + +sl-openapi-snippet-picker svg.sl-openapi-snippet-picker-caret { + position: absolute !important; + top: 50% !important; + right: 0.4rem !important; + transform: translateY(-50%) !important; + width: 12px !important; + height: 12px !important; + pointer-events: none !important; + color: var(--sl-color-gray-3) !important; +} + +.sl-openapi-snippets { + margin: 0 !important; + border: none !important; + border-radius: 0 !important; + padding: 0 !important; +} + +.sl-openapi-snippets .expressive-code { + margin: 0 !important; +} + +.sl-openapi-snippets .expressive-code figure { + margin: 0 !important; + border: none !important; + border-radius: 0 !important; +} + +.sl-openapi-snippets .expressive-code pre { + border-radius: 0 !important; + background-color: transparent !important; +} + +.not-content.sl-openapi-content-picker-select { + display: none !important; +} + +.not-content.sl-openapi-content-picker-select::after { + display: none !important; +} + +.sl-openapi-schema-object-root { + border-left: none !important; + padding-left: 0 !important; +} + +.sl-openapi-schema-object-root > summary { + padding-block: 0.25rem !important; + font-size: 0.8rem !important; +} + +.sl-openapi-key-description .sl-openapi-markdown p { + margin-block: 0.2rem 0 !important; + color: var(--sl-color-gray-2) !important; + font-size: var(--sl-text-sm) !important; + line-height: 1.45 !important; +} +@media (max-width: 50rem) { + .sl-openapi-key-description .sl-openapi-markdown p { + font-size: var(--sl-text-xs) !important; + } +} + +.sl-openapi-tags { + display: inline-flex !important; + flex-wrap: wrap !important; + gap: 0.2rem !important; + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.sl-openapi-keys { + grid-template-columns: fit-content(18rem) minmax(0, 1fr) !important; + column-gap: 3.5rem !important; + row-gap: 0 !important; + margin-block: 0.6rem 1rem !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-5) 30%, transparent) !important; + border-radius: 6px !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 20%, transparent) !important; + padding: 0 0.9rem !important; +} + +@media (max-width: 50rem) { + .sl-openapi-keys { + grid-template-columns: fit-content(8rem) minmax(0, 1fr) !important; + column-gap: 0.8rem !important; + padding: 0 0.5rem !important; + } +} + +:root[data-theme="dark"] .sl-openapi-keys { + border: 1px solid rgba(255, 255, 255, 0.08) !important; + background-color: rgba(19, 25, 34, 0.6) !important; +} + +.sl-openapi-key { + margin-top: 0px !important; + border-bottom: 1px dashed color-mix(in srgb, var(--sl-color-gray-4) 30%, transparent); + padding-block: 0.7rem !important; +} + +:root[data-theme="dark"] .sl-openapi-key { + border-bottom: 1px dashed color-mix(in srgb, var(--sl-color-gray-3) 30%, transparent); +} + +.sl-openapi-key:last-of-type { + border-bottom: none !important; +} + +.sl-openapi-key:has(> .sl-openapi-key-description > details[open]) { + display: flex !important; + flex-direction: column !important; + align-items: flex-start !important; + gap: 0.3rem !important; +} + +.sl-openapi-key:has(> .sl-openapi-key-description > details[open]) > .sl-openapi-key-description { + display: flex !important; + flex-direction: column !important; + align-items: flex-start !important; + gap: 0.3rem !important; + width: 100% !important; +} + +.sl-openapi-key-description > details[open] { + width: 100% !important; +} + +.sl-openapi-key-description details:not(:first-child) { + margin-block-start: 0 !important; +} + +.sl-openapi-key-name { + display: inline-flex !important; + flex-wrap: wrap !important; + align-items: center !important; + margin: 0 !important; + padding: 0 !important; + min-height: 0 !important; +} + +.sl-openapi-key-description { + display: flex !important; + flex-wrap: wrap !important; + align-items: center !important; + gap: 0.4rem 0.6rem !important; + margin: 0 !important; + padding: 0 !important; + min-height: 0 !important; +} + +.sl-openapi-key-description > div { + display: inline-flex !important; + flex-wrap: wrap !important; + align-items: center !important; + gap: 0.4rem 0.6rem !important; +} + +.sl-openapi-key-name strong { + color: var(--sl-color-white) !important; + font-size: var(--sl-text-sm) !important; + font-family: var(--__sl-font-mono) !important; + letter-spacing: -0.01em !important; +} +@media (max-width: 50rem) { + .sl-openapi-key-name strong { + font-size: var(--sl-text-xs) !important; + } +} + +.sl-openapi-key-required { + display: inline-block !important; + margin-top: 0.2rem !important; + margin-left: 0.6rem !important; + border: 1px solid rgba(239, 68, 68, 0.15) !important; + border-radius: 3px !important; + background-color: rgba(239, 68, 68, 0.08) !important; + padding: 0.05rem 0.3rem !important; + width: fit-content !important; + color: #f87171 !important; + font-weight: 700 !important; + font-size: 0.55rem !important; + letter-spacing: 0.05em !important; + text-transform: uppercase !important; +} + +:root[data-theme="light"] .sl-openapi-key-required { + border-color: rgba(239, 68, 68, 0.1) !important; + background-color: rgba(239, 68, 68, 0.05) !important; + color: #dc2626 !important; +} + +.sl-openapi-key-additional { + display: inline-block !important; + margin-left: 0.6rem !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-5) 40%, transparent) !important; + border-radius: 3px !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 60%, transparent) !important; + padding: 0.05rem 0.35rem !important; + width: fit-content !important; + color: var(--sl-color-gray-3) !important; + font-weight: 600 !important; + font-size: 0.58rem !important; + font-family: var(--__sl-font-mono) !important; + letter-spacing: 0.03em !important; + text-transform: uppercase !important; +} + +.sl-openapi-tag { + margin-inline-start: 0.3rem !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-5) 40%, transparent) !important; + border-radius: 3px !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 60%, transparent) !important; + padding: 0.05rem 0.3rem !important; + color: var(--sl-color-gray-2) !important; + font-size: 0.68rem !important; + font-family: var(--__sl-font-mono) !important; +} + +.sl-openapi-examples { + margin-top: 3rem !important; +} + +.sl-openapi-example div.expressive-code pre > code { + text-wrap: nowrap !important; + white-space: pre !important; + word-break: normal !important; + word-wrap: normal !important; +} + +.type-badge { + display: inline-flex !important; + align-items: center !important; + vertical-align: middle !important; + gap: 0.25rem !important; + border: 1px solid !important; + border-radius: 4px !important; + padding: 0.1rem 0.45rem !important; + width: fit-content !important; + font-weight: 600 !important; + font-size: 0.72rem !important; + line-height: 1.4 !important; + font-family: var(--__sl-font-mono) !important; +} + +.type-badge-icon { + display: inline-block !important; + flex-shrink: 0 !important; + mask-position: center !important; + -webkit-mask-position: center !important; + mask-size: contain !important; + -webkit-mask-size: contain !important; + mask-repeat: no-repeat !important; + -webkit-mask-repeat: no-repeat !important; + background-color: currentColor !important; + width: 13px !important; + height: 13px !important; +} + +.type-badge--schema { + border-color: rgba(244, 63, 94, 0.2) !important; + background-color: rgba(244, 63, 94, 0.08) !important; + color: #fb7185 !important; +} +:root[data-theme="light"] .type-badge--schema { + border-color: rgba(225, 29, 72, 0.15) !important; + background-color: rgba(225, 29, 72, 0.08) !important; + color: #e11d48 !important; +} +.type-badge-icon--schema { + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWZpbGUtdGV4dC1pY29uIGx1Y2lkZS1maWxlLXRleHQiPjxwYXRoIGQ9Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6Ii8+PHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiLz48cGF0aCBkPSJNMTAgOUg4Ii8+PHBhdGggZD0iTTE2IDEzSDgiLz48cGF0aCBkPSJNMTYgMTdIOCIvPjwvc3ZnPg==") !important; + -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWZpbGUtdGV4dC1pY29uIGx1Y2lkZS1maWxlLXRleHQiPjxwYXRoIGQ9Ik02IDIyYTIgMiAwIDAgMS0yLTJWNGEyIDIgMCAwIDEgMi0yaDhhMi40IDIuNCAwIDAgMSAxLjcwNC43MDZsMy41ODggMy41ODhBMi40IDIuNCAwIDAgMSAyMCA4djEyYTIgMiAwIDAgMS0yIDJ6Ii8+PHBhdGggZD0iTTE0IDJ2NWExIDEgMCAwIDAgMSAxaDUiLz48cGF0aCBkPSJNMTAgOUg4Ii8+PHBhdGggZD0iTTE2IDEzSDgiLz48cGF0aCBkPSJNMTYgMTdIOCIvPjwvc3ZnPg==") !important; +} + +.type-badge--integer { + border-color: rgba(59, 130, 246, 0.2) !important; + background-color: rgba(59, 130, 246, 0.08) !important; + color: #60a5fa !important; +} +:root[data-theme="light"] .type-badge--integer { + border-color: rgba(37, 99, 235, 0.15) !important; + background-color: rgba(37, 99, 235, 0.08) !important; + color: #1d4ed8 !important; +} +.type-badge-icon--integer { + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.003 7.754a.75.75 0 0 1 .75-.75h5.232a.75.75 0 0 1 .53 1.28l-2.776 2.777c.55.097 1.057.253 1.492.483.905.477 1.504 1.284 1.504 2.418 0 .966-.471 1.75-1.172 2.27-.687.511-1.587.77-2.521.77-1.367 0-2.274-.528-2.667-.756a.75.75 0 0 1 .755-1.297c.331.193.953.553 1.912.553.673 0 1.243-.188 1.627-.473.37-.275.566-.635.566-1.067 0-.5-.219-.836-.703-1.091-.538-.284-1.375-.443-2.471-.443a.75.75 0 0 1-.53-1.28l2.643-2.644h-3.421a.75.75 0 0 1-.75-.75ZM7.88 15.215a1.4 1.4 0 0 0-1.446.83.75.75 0 0 1-1.37-.61 2.899 2.899 0 0 1 2.986-1.71c.589.06 1.139.323 1.557.743.434.446.685 1.058.685 1.778 0 1.641-1.254 2.437-2.12 2.986-.538.341-1.18.694-1.495 1.273H9.75a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1-.75-.75c0-1.799 1.337-2.63 2.243-3.21 1.032-.659 1.55-1.031 1.55-1.8 0-.355-.116-.584-.26-.732a1.071 1.071 0 0 0-.652-.298Zm.234-13.121a.75.75 0 0 1 .386.656V9h1.252a.75.75 0 0 1 0 1.5H5.75a.75.75 0 0 1 0-1.5H7V4.103l-.853.533a.749.749 0 1 1-.795-1.272l2-1.25a.749.749 0 0 1 .762-.02Z'/%3E%3C/svg%3E") !important; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.003 7.754a.75.75 0 0 1 .75-.75h5.232a.75.75 0 0 1 .53 1.28l-2.776 2.777c.55.097 1.057.253 1.492.483.905.477 1.504 1.284 1.504 2.418 0 .966-.471 1.75-1.172 2.27-.687.511-1.587.77-2.521.77-1.367 0-2.274-.528-2.667-.756a.75.75 0 0 1 .755-1.297c.331.193.953.553 1.912.553.673 0 1.243-.188 1.627-.473.37-.275.566-.635.566-1.067 0-.5-.219-.836-.703-1.091-.538-.284-1.375-.443-2.471-.443a.75.75 0 0 1-.53-1.28l2.643-2.644h-3.421a.75.75 0 0 1-.75-.75ZM7.88 15.215a1.4 1.4 0 0 0-1.446.83.75.75 0 0 1-1.37-.61 2.899 2.899 0 0 1 2.986-1.71c.589.06 1.139.323 1.557.743.434.446.685 1.058.685 1.778 0 1.641-1.254 2.437-2.12 2.986-.538.341-1.18.694-1.495 1.273H9.75a.75.75 0 0 1 0 1.5h-4a.75.75 0 0 1-.75-.75c0-1.799 1.337-2.63 2.243-3.21 1.032-.659 1.55-1.031 1.55-1.8 0-.355-.116-.584-.26-.732a1.071 1.071 0 0 0-.652-.298Zm.234-13.121a.75.75 0 0 1 .386.656V9h1.252a.75.75 0 0 1 0 1.5H5.75a.75.75 0 0 1 0-1.5H7V4.103l-.853.533a.749.749 0 1 1-.795-1.272l2-1.25a.749.749 0 0 1 .762-.02Z'/%3E%3C/svg%3E") !important; +} + +.type-badge--string { + border-color: rgba(16, 185, 129, 0.2) !important; + background-color: rgba(16, 185, 129, 0.08) !important; + color: #34d399 !important; +} +:root[data-theme="light"] .type-badge--string { + border-color: rgba(5, 150, 105, 0.15) !important; + background-color: rgba(5, 150, 105, 0.08) !important; + color: #047857 !important; +} +.type-badge-icon--string { + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16'/%3E%3Cpath d='M22 9v7'/%3E%3Cpath d='M3.304 13h6.392'/%3E%3Ccircle cx='18.5' cy='12.5' r='3.5'/%3E%3C/svg%3E") !important; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='m2 16 4.039-9.69a.5.5 0 0 1 .923 0L11 16'/%3E%3Cpath d='M22 9v7'/%3E%3Cpath d='M3.304 13h6.392'/%3E%3Ccircle cx='18.5' cy='12.5' r='3.5'/%3E%3C/svg%3E") !important; +} + +.type-badge--boolean { + border-color: rgba(245, 158, 11, 0.2) !important; + background-color: rgba(245, 158, 11, 0.08) !important; + color: #fbbf24 !important; +} +:root[data-theme="light"] .type-badge--boolean { + border-color: rgba(217, 119, 6, 0.15) !important; + background-color: rgba(217, 119, 6, 0.08) !important; + color: #b45309 !important; +} +.type-badge-icon--boolean { + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Crect x='14' y='14' width='4' height='6' rx='2'/%3E%3Crect x='6' y='4' width='4' height='6' rx='2'/%3E%3Cpath d='M6 20h4'/%3E%3Cpath d='M14 10h4'/%3E%3Cpath d='M6 14h2v6'/%3E%3Cpath d='M14 4h2v6'/%3E%3C/svg%3E") !important; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Crect x='14' y='14' width='4' height='6' rx='2'/%3E%3Crect x='6' y='4' width='4' height='6' rx='2'/%3E%3Cpath d='M6 20h4'/%3E%3Cpath d='M14 10h4'/%3E%3Cpath d='M6 14h2v6'/%3E%3Cpath d='M14 4h2v6'/%3E%3C/svg%3E") !important; +} + +.type-badge--object { + border-color: rgba(139, 92, 246, 0.2) !important; + background-color: rgba(139, 92, 246, 0.08) !important; + color: #a78bfa !important; +} +:root[data-theme="light"] .type-badge--object { + border-color: rgba(109, 40, 217, 0.15) !important; + background-color: rgba(109, 40, 217, 0.08) !important; + color: #6d28d9 !important; +} +.type-badge-icon--object { + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1'/%3E%3Cpath d='M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1'/%3E%3C/svg%3E") !important; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1'/%3E%3Cpath d='M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1'/%3E%3C/svg%3E") !important; +} + +.type-badge--array, +.type-badge--list { + border-color: rgba(99, 102, 241, 0.2) !important; + background-color: rgba(99, 102, 241, 0.08) !important; + color: #818cf8 !important; +} +:root[data-theme="light"] .type-badge--array, +:root[data-theme="light"] .type-badge--list { + border-color: rgba(79, 70, 229, 0.15) !important; + background-color: rgba(79, 70, 229, 0.08) !important; + color: #4f46e5 !important; +} +.type-badge-icon--array, +.type-badge-icon--list { + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3'/%3E%3Cpath d='M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3'/%3E%3C/svg%3E") !important; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M16 3h3a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-3'/%3E%3Cpath d='M8 21H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h3'/%3E%3C/svg%3E") !important; +} + +.sl-openapi-key-description details.sl-openapi-schema-object-root { + margin-top: 0.5rem !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-5) 20%, transparent) !important; + border-radius: 6px !important; + border-inline-start: none !important; + background-color: rgba(0, 0, 0, 0.15) !important; + padding: 0.5rem 0.8rem !important; + width: 100% !important; +} + +.sl-openapi-key-description details.sl-openapi-schema-object-root .sl-openapi-keys { + margin-block: 0.4rem 0 !important; + border: none !important; + border-left: none !important; + border-radius: 0 !important; + background-color: transparent !important; + padding: 0 !important; +} + +.sl-openapi-key-description details.sl-openapi-schema-object-root summary { + display: inline-flex !important; + align-items: center !important; + gap: 0.35rem !important; + cursor: pointer !important; + outline: none !important; + color: var(--sl-color-accent-high) !important; + font-weight: 600 !important; + font-size: 0.78rem !important; + list-style: none !important; +} + +.sl-openapi-key-description details.sl-openapi-schema-object-root summary::-webkit-details-marker { + display: none !important; +} + +.sl-openapi-key-description details.sl-openapi-schema-object-root summary::before { + display: inline-block !important; + transform: rotate(-45deg) !important; + transform-origin: center !important; + transition: transform 0.15s ease !important; + margin-bottom: 2px !important; + border-right: 2px solid currentColor !important; + border-bottom: 2px solid currentColor !important; + width: 6px !important; + height: 6px !important; + content: "" !important; +} + +.sl-openapi-key-description details.sl-openapi-schema-object-root[open] summary::before { + transform: rotate(45deg) !important; + margin-bottom: 4px !important; +} + +.sl-openapi-key-description summary:hover { + color: var(--sl-color-white) !important; +} + +.custom-select-dropdown { + display: inline-block !important; + position: relative !important; +} + +.custom-select-trigger { + display: inline-flex !important; + justify-content: space-between !important; + align-items: center !important; + gap: 0.4rem !important; + transition: + border-color 0.15s ease, + background-color 0.15s ease !important; + cursor: pointer !important; + outline: none !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-4) 30%, transparent) !important; + border-radius: 6px !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 80%, transparent) !important; + padding: 0.28rem 0.65rem !important; + min-width: 110px !important; + color: var(--sl-color-white) !important; + font-weight: 600 !important; + font-size: 0.72rem !important; +} + +:root[data-theme="dark"] .custom-select-trigger { + border-color: color-mix(in srgb, var(--sl-color-gray-3) 30%, transparent) !important; +} + +.custom-select-trigger:hover { + border-color: color-mix(in srgb, var(--sl-color-gray-5) 80%, transparent) !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 95%, transparent) !important; +} + +.custom-select-trigger .trigger-caret { + flex-shrink: 0 !important; + transition: transform 0.15s ease !important; + color: var(--sl-color-gray-3) !important; +} + +.custom-select-menu { + display: none !important; + position: absolute !important; + top: calc(100% + 4px) !important; + right: 0 !important; + z-index: 1000 !important; + backdrop-filter: blur(12px) !important; + -webkit-backdrop-filter: blur(12px) !important; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6) !important; + border: 1px solid rgba(255, 255, 255, 0.12) !important; + border-radius: 6px !important; + background: rgba(15, 23, 42, 0.92) !important; + padding: 0.25rem !important; + min-width: 140px !important; +} + +.custom-select-menu.is-open { + display: block !important; +} + +.custom-select-group-title { + padding: 0.3rem 0.5rem 0.15rem 0.5rem !important; + color: var(--sl-color-gray-4) !important; + font-weight: 700 !important; + font-size: 0.62rem !important; + letter-spacing: 0.05em !important; + text-transform: uppercase !important; +} + +.custom-select-item { + display: block !important; + transition: + background-color 0.1s ease, + color 0.1s ease !important; + cursor: pointer !important; + outline: none !important; + border: none !important; + border-radius: 4px !important; + background: transparent !important; + padding: 0.28rem 0.5rem !important; + width: 100% !important; + color: var(--sl-color-gray-2) !important; + font-weight: 500 !important; + font-size: 0.72rem !important; + text-align: left !important; +} + +.custom-select-item:hover { + background-color: rgba(255, 255, 255, 0.08) !important; + color: var(--sl-color-white) !important; +} + +.custom-select-item.is-active { + background-color: var(--sl-color-accent) !important; + color: var(--sl-color-white) !important; +} + +.sl-openapi-key-header { + display: grid !important; + grid-template-columns: subgrid !important; + grid-column: 1 / -1 !important; + border-bottom: 2px solid color-mix(in srgb, var(--sl-color-gray-4) 30%, transparent) !important; + padding-top: 0.5rem !important; + padding: 1rem 0 !important; +} + +:root[data-theme="dark"] .sl-openapi-key-header { + border-bottom: 2px solid color-mix(in srgb, var(--sl-color-gray-3) 20%, transparent) !important; +} + +.sl-openapi-key-header-name { + grid-column: 1 !important; + min-width: 0 !important; + color: var(--sl-color-gray-3) !important; + font-weight: 700 !important; + font-size: 0.72rem !important; + letter-spacing: 0.05em !important; + text-transform: uppercase !important; +} + +.sl-openapi-key-header-description { + grid-column: 2 !important; + margin-top: 0 !important; + min-width: 0 !important; + color: var(--sl-color-gray-3) !important; + font-weight: 700 !important; + font-size: 0.72rem !important; + letter-spacing: 0.05em !important; + text-transform: uppercase !important; +} + +.sl-openapi-key-description > div, +.sl-openapi-key-description .sl-openapi-type, +.sl-openapi-key-description .sl-openapi-tags { + display: inline-flex !important; + align-items: center !important; + vertical-align: middle !important; + line-height: 1 !important; +} + +.sl-openapi-tag { + display: inline-flex !important; + align-items: center !important; + margin: 0 !important; + white-space: nowrap !important; +} + +.sl-openapi-operation-description, +.sl-openapi-operation-description-header, +.sl-openapi-snippets, +sl-openapi-snippet-picker { + overflow: visible !important; +} + +sl-openapi-snippet-picker label.sl-openapi-snippet-picker { + display: none !important; +} + +.sl-openapi-overview-navigation-link { + display: flex !important; + align-items: center !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-4) 30%, transparent) !important; + padding: 0.65rem 0.9rem !important; + width: 100% !important; +} + +:root[data-theme="dark"] .sl-openapi-overview-navigation-link { + border: 1px solid color-mix(in srgb, var(--sl-color-gray-3) 30%, transparent) !important; +} + +.sl-openapi-overview-navigation-link:hover { + border: 1px solid color-mix(in srgb, var(--sl-color-gray-4) 40%, transparent) !important; +} + +:root[data-theme="dark"] .sl-openapi-overview-navigation-link:hover { + border: 1px solid color-mix(in srgb, var(--sl-color-gray-3) 40%, transparent) !important; +} + +.sl-openapi-overview-navigation-link-content { + display: inline-flex !important; + flex-grow: 1 !important; + align-items: center !important; + margin-inline-start: 0.5rem !important; +} + +.sl-openapi-overview-navigation-link-icon { + align-self: center !important; + margin-top: 0 !important; +} + +.sl-openapi-example { + margin-block: 0.5rem 1.25rem !important; +} + +.sl-openapi-examples-heading { + padding-bottom: 1rem !important; +} + +.sl-openapi-example .expressive-code { + margin: 0 !important; +} + +.sl-openapi-example .expressive-code figure { + margin: 0 !important; + box-shadow: none !important; + border: 1px solid color-mix(in srgb, var(--sl-color-gray-5) 40%, transparent) !important; + border-radius: 8px !important; + background-color: color-mix(in srgb, var(--sl-color-gray-6) 20%, transparent) !important; + overflow: hidden !important; +} + +:root[data-theme="dark"] .sl-openapi-example .expressive-code figure { + box-shadow: none !important; + border: 1px solid rgba(255, 255, 255, 0.12) !important; + background-color: rgba(13, 17, 23, 0.75) !important; +} + +.sl-openapi-example .expressive-code pre { + margin: 0 !important; + border: none !important; + border-radius: 0 !important; + background-color: transparent !important; +} + +.sl-openapi-example .expressive-code figcaption.header { + border: none !important; +} + +.sidebar-content a[aria-current="page"] { + border-radius: 6px !important; + background-color: color-mix(in srgb, var(--sl-color-accent) 22%, transparent) !important; + color: var(--sl-color-accent-high) !important; + font-weight: 600 !important; +} + +:root[data-theme="light"] .sidebar-content a[aria-current="page"] { + background-color: color-mix(in srgb, var(--sl-color-accent) 12%, transparent) !important; + color: var(--sl-color-accent-high) !important; +} + +.sidebar-content ul ul summary { + color: var(--sl-color-gray-2) !important; + font-weight: 500 !important; +} + +.sidebar-content ul ul summary:hover, +.sidebar-content ul ul li span, +.sidebar-content ul ul details[open] > summary { + color: color-mix(in srgb, var(--sl-color-white) 85%, transparent) !important; +} + +.sidebar-content details > ul > li > a > span { + font-weight: 600; +} + +.sidebar-content details details > ul > li > a > span { + font-weight: 400; +} + +.sl-markdown-content a:not(.not-content a):not(.sl-link-card):not(.sl-link-card a):not(.card a) { + transition: + color 0.15s ease, + border-color 0.15s ease !important; + border-bottom: 1.5px solid transparent !important; + padding-bottom: 1px !important; + color: var(--sl-color-accent) !important; + font-weight: 500 !important; + text-decoration: none !important; +} + +.sl-markdown-content a:not(.not-content a):not(.sl-link-card):not(.sl-link-card a):not(.card a):hover { + border-bottom-color: var(--sl-color-accent-high) !important; + color: var(--sl-color-accent-high) !important; +} + +.sl-markdown-content .type-badge a, +.sl-markdown-content .type-badge a.type-link { + transition: opacity 0.15s ease !important; + border-bottom: none !important; + padding: 0 !important; + color: inherit !important; + font-weight: inherit !important; + text-decoration: none !important; +} + +.sl-markdown-content .type-badge a:hover, +.sl-markdown-content .type-badge a.type-link:hover { + opacity: 0.8 !important; + border-bottom: none !important; + color: inherit !important; + text-decoration: underline !important; +} + +.sl-markdown-content a.type-link:not(.not-content a) { + border-bottom: none !important; + padding-bottom: 0 !important; +} + +.sl-markdown-content a.type-link:not(.not-content a):hover { + border-bottom: none !important; +} + +.sl-markdown-content blockquote:not(:where(.not-content *)) { + margin-block: 1rem; + border-radius: 6px; + border-inline-start: 4px solid var(--sl-color-gray-5); + background-color: color-mix(in srgb, var(--sl-color-gray-5) 30%, transparent); + padding-inline-start: 1rem; + padding-block: 0.5rem; +} + +* { + scrollbar-color: var(--sl-color-gray-5) transparent; + scrollbar-width: thin; +} + +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: transparent; +} + +::-webkit-scrollbar-thumb { + border: 2px solid transparent; + border-radius: 9999px; + background-clip: content-box; + background-color: var(--sl-color-gray-5); +} + +::-webkit-scrollbar-thumb:hover { + background-color: var(--sl-color-accent); +} + +@media (max-width: 600px) { + .hero img, + .hero [class*="w-["] { + display: block !important; + margin-inline: auto !important; + width: 80vw !important; + max-width: 80vw !important; + height: auto !important; + } +} + +@media (min-width: 50rem) { + html[data-has-hero] { + --sl-content-inline-start: 0rem !important; + --sl-content-width: 68rem !important; + } + html[data-has-hero] .sidebar { + display: none !important; + } + html[data-has-hero] .main-pane { + margin-inline: auto !important; + } +} + +starlight-toc ul ul { + visibility: hidden; + opacity: 0; + transition: + max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1), + opacity 0.2s ease, + visibility 0.2s ease; + max-height: 0; + overflow: hidden; +} +starlight-toc li:has(a[aria-current="true"]) > ul { + visibility: visible; + opacity: 1; + max-height: 500px; +} + +button[data-open-modal] { + transition: + border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), + color 0.25s cubic-bezier(0.4, 0, 0.2, 1), + background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), + box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important; +} + +button[data-open-modal] svg, +button[data-open-modal] span, +button[data-open-modal] kbd { + transition: + border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), + color 0.25s cubic-bezier(0.4, 0, 0.2, 1), + background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important; +} + +button[data-open-modal]:hover { + border-color: color-mix(in srgb, var(--sl-color-accent) 45%, transparent) !important; + background-color: color-mix(in srgb, var(--sl-color-accent) 6%, transparent) !important; + color: color-mix(in srgb, var(--sl-color-white) 85%, transparent) !important; +} + +button[data-open-modal]:hover svg { + color: var(--sl-color-accent) !important; +} + +button[data-open-modal]:hover kbd { + border-color: color-mix(in srgb, var(--sl-color-accent) 30%, transparent) !important; + color: color-mix(in srgb, var(--sl-color-white) 85%, transparent) !important; +} + +#starlight__search .pagefind-ui__search-input { + transition: + border-color 0.22s ease, + box-shadow 0.22s ease !important; +} + +#starlight__search .pagefind-ui__search-input:focus { + outline: none !important; + border-color: var(--sl-color-accent) !important; + --pagefind-ui-border: var(--sl-color-accent) !important; + box-shadow: 0 0 0 3px color-mix(in srgb, var(--sl-color-accent) 25%, transparent) !important; +} + +#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)), +#starlight__search .pagefind-ui__result-nested { + transition: + outline-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), + background-color 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important; + outline: 1px solid transparent !important; +} + +#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):hover, +#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):focus-within, +#starlight__search .pagefind-ui__result-nested:hover, +#starlight__search .pagefind-ui__result-nested:focus-within { + outline-color: color-mix(in srgb, var(--sl-color-accent) 65%, transparent) !important; +} + +#starlight__search .pagefind-ui__result-title:not(:where(.pagefind-ui__result-nested *)):hover, +#starlight__search .pagefind-ui__result-nested:hover { + background-color: color-mix(in srgb, var(--sl-color-accent) 4%, var(--sl-color-black)) !important; +} + +#starlight__search .pagefind-ui__button { + transition: + background-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), + border-color 0.22s cubic-bezier(0.4, 0, 0.2, 1), + color 0.22s cubic-bezier(0.4, 0, 0.2, 1), + box-shadow 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important; +} + +#starlight__search .pagefind-ui__button:hover { + border-color: color-mix(in srgb, var(--sl-color-accent) 45%, transparent) !important; + background-color: color-mix(in srgb, var(--sl-color-accent) 6%, transparent) !important; + color: color-mix(in srgb, var(--sl-color-white) 85%, transparent) !important; +} + +#starlight__search .pagefind-ui__button:focus { + outline: none !important; + box-shadow: 0 0 0 3px color-mix(in srgb, var(--sl-color-accent) 25%, transparent) !important; + border-color: var(--sl-color-accent) !important; } diff --git a/static.config.js b/static.config.js deleted file mode 100644 index 574516e..0000000 --- a/static.config.js +++ /dev/null @@ -1,107 +0,0 @@ -import hashSum from 'hash-sum'; -import marked from 'marked'; -import path from 'path'; -import slugify from 'slugify'; - -const BASE_URL = 'https://pokeapi.co/api'; - -export default { - plugins: [ - 'react-static-plugin-react-router', - ['react-static-plugin-google-tag-manager', {id: 'GTM-MD89GGQ'}], - ], - minLoadTime: 200, - - getSiteData: () => { - let alerts = require('./alerts.json'); - if (!Array.isArray(alerts)) { - console.error( - '/alerts.json must contain an array of alert objects' - ); - alerts = []; - } - - return { - alerts: alerts - .filter(alert => alert.active !== false) - .map(alert => ({ - htmlMessage: marked(alert.message), - level: alert.level || 'info', - id: hashSum(alert), - })), - }; - }, - - getRoutes: async () => { - return [ - { - path: '404', - template: 'src/pages/404.js', - }, - { - path: '/', - template: 'src/pages/index.js', - }, - { - path: '/about', - template: 'src/pages/about.js', - }, - { - path: '/docs/', - template: 'src/pages/docs.js', - }, - { - path: '/docs/v1', - template: 'src/pages/docs/v1.js', - }, - { - path: '/docs/v2', - template: 'src/pages/docs/v2.js', - getData: async () => { - let docs = require('./src/docs/index.js').default; - return { - docs: processDocs(docs), - }; - }, - }, - { - path: '/docs/graphql', - template: 'src/pages/docs/graphql.js', - } - ]; - }, -}; - -function processDocs(docs) { - return docs.map(doc => ({ - name: doc.name, - id: slugify(doc.name, {lower: true}) + '-section', - htmlDescription: doc.description ? marked(doc.description) : null, - resources: doc.resources?.map(resource => ({ - name: resource.name, - id: slugify(resource.name, {lower: true}), - htmlDescription: resource.description - ? marked(resource.description) - : null, - exampleRequest: resource.exampleRequest ? BASE_URL + resource.exampleRequest : null, - exampleResponse: resource.exampleResponse - ? JSON.parse( - JSON.stringify(resource.exampleResponse, null, 2).replace( - /\$BASE_URL/g, - BASE_URL - ) - ) - : null, - responseModels: resource.responseModels.map(model => ({ - name: model.name, - id: slugify(model.name, {lower: true}), - fields: model.fields.map(field => ({ - name: field.name, - htmlDescription: marked(field.description), - type: field.type, - })), - })), - })), - endOfSection: doc.endOfSection, - })); -} diff --git a/tsconfig.json b/tsconfig.json index 1a46b47..d78f81e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,3 @@ { "extends": "astro/tsconfigs/base" -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..b55785f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3753 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@alenaksu/json-viewer@^2.1.2": + version "2.1.2" + resolved "https://registry.npmjs.org/@alenaksu/json-viewer/-/json-viewer-2.1.2.tgz" + integrity sha512-hyR5EUc0GZMTjlSULJZlMzEYB896ICbCf1+5YLQRSAczGRWy42UWac5PcXM4spuyTkrEHHlOZBTVEq34f9+JVQ== + dependencies: + lit "^3.2.0" + +"@apidevtools/json-schema-ref-parser@^13.0.5": + version "13.0.5" + resolved "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-13.0.5.tgz" + integrity sha512-xfh4xVJD62gG6spIc7lwxoWT+l16nZu1ELyU8FkjaP/oD2yP09EvLAU6KhtudN9aML2Khhs9pY6Slr7KGTES3w== + dependencies: + "@types/json-schema" "^7.0.15" + js-yaml "^4.1.0" + +"@astrojs/compiler-binding-darwin-arm64@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-darwin-arm64/-/compiler-binding-darwin-arm64-0.4.0.tgz#67cb98647d3fd1da43469813b9ee2c3421d805f1" + integrity sha512-ZVUwHundaQyFNjE6uoa0usaC0WOCitDCLS/4mdb4rOiJXwVUuKJBMxI5WMzXLWmamsXtK/Z//ifLXvV5Yeh4Hw== + +"@astrojs/compiler-binding-darwin-x64@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-darwin-x64/-/compiler-binding-darwin-x64-0.4.0.tgz#6f1275c8ef6c67b54208d554b9874ceef3542746" + integrity sha512-FI6G8AY8u6fR1SI/QRR5yGMwtvZwP34CDmZpZ5HwJGa50UM1VISTLhqkhV4a476pmgd25X1Aur2dqw6hUnrlKA== + +"@astrojs/compiler-binding-linux-arm64-gnu@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-linux-arm64-gnu/-/compiler-binding-linux-arm64-gnu-0.4.0.tgz#9aec0e6b1748c35709965ebb3dba0cc26a4c7390" + integrity sha512-lB9gLFJK7m82EnjaU8nlRBEfcwGNeHidW3sSjODTUjMNaoewVuUz9fwwdY5M4jiSXIqWLH3yl6TX8FTDKA74Sw== + +"@astrojs/compiler-binding-linux-arm64-musl@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-linux-arm64-musl/-/compiler-binding-linux-arm64-musl-0.4.0.tgz#dfe24f0e20f948a0a615368547a880d062416bab" + integrity sha512-HPbvWqbxFxyaoQJhLxCaSjtYBx9KBo7JGVzEFZCmMl968a2PsSH0UfiODYgYPXofTOIsIH2aoCcrHXML0IA3ig== + +"@astrojs/compiler-binding-linux-x64-gnu@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-linux-x64-gnu/-/compiler-binding-linux-x64-gnu-0.4.0.tgz#aab6ec6d0ac05a26120733624a367cffcb642986" + integrity sha512-tQKolMxoJ/+0AmLWm1PmJ/i+z3i10ZU1bNuVjEDulCf48azEMtUNjTZgHJ5MPtpYRNc7dlETr8QujUfduzoC7Q== + +"@astrojs/compiler-binding-linux-x64-musl@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-linux-x64-musl/-/compiler-binding-linux-x64-musl-0.4.0.tgz#64ed46b6972acfc1f6e5f850492773554aefe4a1" + integrity sha512-5v5YymudsxMHp3NBLCS8BUlu5CRqeLtWD9cKS/4nIhIEHCbpz9okmVV6I0HWqmBAPhWYcDa3vw/vltYPrOQCTA== + +"@astrojs/compiler-binding-wasm32-wasi@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-wasm32-wasi/-/compiler-binding-wasm32-wasi-0.4.0.tgz#35295dde3b6d4812e610200e08db2529fc1f1043" + integrity sha512-m/phuH3x3PREvv1OnkM44NoPh4MatUadix1fB1u5SvMLCyDTUZykDJbKnWf1cjnYmHdlB8HcjTjl6JrCqAIXcw== + dependencies: + "@napi-rs/wasm-runtime" "^1.2.2" + +"@astrojs/compiler-binding-win32-arm64-msvc@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/compiler-binding-win32-arm64-msvc/-/compiler-binding-win32-arm64-msvc-0.4.0.tgz#9d23596738f41983068620155b7eab22ed958d3e" + integrity sha512-B9zYf3okEY83kM8gydlpH2BHP00w4ifxPqlYlWrgTwuD6wnkrJDCwBlgy1q31cERjCJRXN1lrE2VmkLvFjv/6g== + +"@astrojs/compiler-binding-win32-x64-msvc@0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@astrojs/compiler-binding-win32-x64-msvc/-/compiler-binding-win32-x64-msvc-0.4.0.tgz" + integrity sha512-zB0Nrv0dGc0zZWPGDRmmETTPhDRqyZjAjk+gWMlVrJX5U89obpB3VUUE1ZiHxOCN5LQojeLK6O8L/dnoHolvNQ== + +"@astrojs/compiler-binding@0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@astrojs/compiler-binding/-/compiler-binding-0.4.0.tgz" + integrity sha512-x2RjDUuWfwLNtc3mjAdSRInwqh/rqbLar9cm/5FOMbHvmYZB7yfKewzSclAxWjIZsypJDXv1lhaP2WG+P8TK3g== + optionalDependencies: + "@astrojs/compiler-binding-darwin-arm64" "0.4.0" + "@astrojs/compiler-binding-darwin-x64" "0.4.0" + "@astrojs/compiler-binding-linux-arm64-gnu" "0.4.0" + "@astrojs/compiler-binding-linux-arm64-musl" "0.4.0" + "@astrojs/compiler-binding-linux-x64-gnu" "0.4.0" + "@astrojs/compiler-binding-linux-x64-musl" "0.4.0" + "@astrojs/compiler-binding-wasm32-wasi" "0.4.0" + "@astrojs/compiler-binding-win32-arm64-msvc" "0.4.0" + "@astrojs/compiler-binding-win32-x64-msvc" "0.4.0" + +"@astrojs/compiler-rs@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@astrojs/compiler-rs/-/compiler-rs-0.4.0.tgz" + integrity sha512-koVikeon1kreEy+/JzLQRy3vzHHQVOjycs4degg4vFufKApZOwMZvSSAEztYNhmcQVfNVsVZZI4cEge3cexAbQ== + dependencies: + "@astrojs/compiler-binding" "0.4.0" + +"@astrojs/compiler@^2.9.1": + version "2.13.1" + resolved "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz" + integrity sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg== + +"@astrojs/internal-helpers@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@astrojs/internal-helpers/-/internal-helpers-0.11.0.tgz#e5b6119e7cc1a3520fe43e30d25a30b61576bb49" + integrity sha512-3rzxJ+xbo0+8YyqOzLziIN32wmsHdCjEVz2sGOpRxJ+Ben/KiLph4ItxBy1abEL+E8fkRzqjg0rfXmaHJGw9JA== + dependencies: + "@types/hast" "^3.0.4" + "@types/mdast" "^4.0.4" + js-yaml "^4.3.0" + picomatch "^4.0.4" + retext-smartypants "^6.2.0" + shiki "^4.0.2" + smol-toml "^1.6.0" + unified "^11.0.5" + +"@astrojs/markdown-satteri@0.4.0", "@astrojs/markdown-satteri@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@astrojs/markdown-satteri/-/markdown-satteri-0.4.0.tgz#59e269071e76aecae664b9a673d4914663f1647c" + integrity sha512-wykOOW9KsUVcZweOpY/CeXpdKcCKZy6fQbdcteWFuI75+sQCiqxYM7VKsGa5b+aGl3cYQscFY37rsbbyal5MRw== + dependencies: + "@astrojs/internal-helpers" "0.11.0" + "@astrojs/prism" "4.0.2" + github-slugger "^2.0.0" + satteri "^0.10.3" + +"@astrojs/mdx@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@astrojs/mdx/-/mdx-8.0.0.tgz#3b95fd43e0ba783fdf959ca125c8b3a2fa00ff23" + integrity sha512-4I/z+VgUO0B9I/+yhzIEpLyBYQZNJsInmrtqClP4lqX9yvUpbuV72zfRTZ8VqJLKABETUE5CYOl+23va8nqxZg== + dependencies: + "@astrojs/internal-helpers" "0.11.0" + "@astrojs/markdown-satteri" "0.4.0" + es-module-lexer "^2.0.0" + +"@astrojs/prism@4.0.2": + version "4.0.2" + resolved "https://registry.npmjs.org/@astrojs/prism/-/prism-4.0.2.tgz" + integrity sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA== + dependencies: + prismjs "^1.30.0" + +"@astrojs/sitemap@^3.7.3": + version "3.7.3" + resolved "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.3.tgz" + integrity sha512-f8euLVsyeAmAkSm/1M2Kb8sL8byQmfgbvBNaHFItCheTj/IpiJYSEWVcqDHZ/yEHxiS7+w87mQkzwZaPHmk5GA== + dependencies: + sitemap "^9.0.0" + stream-replace-string "^2.0.0" + zod "^4.3.6" + +"@astrojs/starlight-tailwind@^5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@astrojs/starlight-tailwind/-/starlight-tailwind-5.0.0.tgz" + integrity sha512-VivF+bWg++4ma/ffr5sgHsd/ONtGdVJIKAaRZ6jmL4yqxy7bviu59MGNi5aW3nd8psP9i/aivBTrpwGxRM1XyA== + +"@astrojs/starlight@^0.42.0": + version "0.42.0" + resolved "https://registry.yarnpkg.com/@astrojs/starlight/-/starlight-0.42.0.tgz#d841bf4d17125cb0b419184bc9185e6d3293ca4b" + integrity sha512-EVsGnyGJ6rRNwGRZFYmGABo0qTQ55F7OSmfSL0VK+5lsqD+u6GWcB8tFqXETcUvP8kyn90W+QBLSL2aer9jNJQ== + dependencies: + "@astrojs/markdown-satteri" "^0.4.0" + "@astrojs/mdx" "^8.0.0" + "@astrojs/sitemap" "^3.7.3" + "@pagefind/default-ui" "^1.3.0" + "@types/hast" "^3.0.5" + "@types/js-yaml" "^4.0.9" + "@types/mdast" "^4.0.4" + astro-expressive-code "^0.44.0" + bcp-47 "^2.1.0" + hast-util-format "^1.1.0" + hast-util-select "^6.0.4" + hast-util-to-html "^9.0.5" + hast-util-to-string "^3.0.1" + hastscript "^9.0.1" + i18next "^26.0.7" + js-yaml "^4.1.1" + klona "^2.0.6" + magic-string "^1.2.3" + mdast-util-directive "^3.1.0" + mdast-util-to-markdown "^2.1.2" + mdast-util-to-string "^4.0.0" + pagefind "^1.5.2" + remark-directive "^4.0.0" + satteri "^0.10.3" + ultrahtml "^1.6.0" + unified "^11.0.5" + unist-util-visit "^5.1.0" + vfile "^6.0.3" + +"@astrojs/telemetry@3.3.3": + version "3.3.3" + resolved "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.3.tgz" + integrity sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ== + dependencies: + ci-info "^4.4.0" + dset "^3.1.4" + is-docker "^4.0.0" + package-manager-detector "^1.6.0" + +"@babel/code-frame@^7.22.5": + version "7.29.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz" + integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== + dependencies: + "@babel/helper-validator-identifier" "^7.29.7" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/helper-string-parser@^7.29.7": + version "7.29.7" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz" + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== + +"@babel/helper-validator-identifier@^7.29.7": + version "7.29.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz" + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== + +"@babel/parser@^7.29.7": + version "7.29.8" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz" + integrity sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA== + dependencies: + "@babel/types" "^7.29.8" + +"@babel/runtime@^7.22.5": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@babel/types@^7.29.7", "@babel/types@^7.29.8": + version "7.29.8" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz" + integrity sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg== + dependencies: + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + +"@bruits/satteri-darwin-arm64@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.10.5.tgz#0409471d518103fa8c2421758bc9fa9f78ba2856" + integrity sha512-27KTVl4TJkVahMy/ohyA7qd4938G5UNneFUz/PsScYfpIhj0IVAS23mpcJXdPF44sa6nva198lmV/cKIb2YPyA== + +"@bruits/satteri-darwin-x64@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.10.5.tgz#8a7d49dea7e05b6756ddcd3e748afc7c76f6f158" + integrity sha512-IjnLe3nKspq6qaeqGgjT7MT8VrTV74yWRlaag7ZdNsI8TDAYZ0iPxMCo+9KQZHUk5EyVB+reBI/PFWL5KuFw9Q== + +"@bruits/satteri-linux-arm64-gnu@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.10.5.tgz#2215dbf4e03120f4026ec75d128af75b71f71ae6" + integrity sha512-glkYXZCJywjP13v67eAyAMSJdF+ncvEbYvgi/wOtffL9tQ27lr/zsyzUfgs+ovjJ9d8JNQKiXeiArJcX8PJL9w== + +"@bruits/satteri-linux-arm64-musl@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.10.5.tgz#3fed1da7f6a5da0f0659dd09a67816ac46b12e2e" + integrity sha512-yWdgG1g17Nh2QyGVlFUxGRa3FEFwiMcpZEyMNWkbM3deC94cmVc+/i9OuyFpdKuWo3GkgoCtYVOoxk1uCnCZIA== + +"@bruits/satteri-linux-x64-gnu@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.10.5.tgz#48765650fee3b2054be1f4a2bd74a10b1b4d7963" + integrity sha512-FVaLoPT1fBgGl0J+AYebyyXJYBachGl8Oyyrf1lye4RTqCB4S0Gwkj1uM9RJyThUOvx5VUmAT1CnNh1SFHA+kw== + +"@bruits/satteri-linux-x64-musl@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.10.5.tgz#af2a7ac9450513781707ab26d5e780e1bf630a84" + integrity sha512-EHpVAx2bqW3GINHTKkljtxVfQmVDGWIuwOYOP5YghTj+0PkBa2o8oKPRtQ9Kbsr1Fye8jtUcDjhwj2jMNugZKg== + +"@bruits/satteri-wasm32-wasi@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.10.5.tgz#2a444118d8f03183ec9f223aa7056b9e5c4e3778" + integrity sha512-ypz8c/Zmipxp4IoeDa228Gstv6TLzVmNs3yC6wKCoNSOjx1iwpgzu87Y3hTkXFdwChVGU85qeUDuOIarGUZQLw== + dependencies: + "@emnapi/core" "1.11.1" + "@emnapi/runtime" "1.11.1" + "@napi-rs/wasm-runtime" "^1.2.3" + +"@bruits/satteri-win32-arm64-msvc@0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.10.5.tgz#3b6cab10dd12e4294adbcee9dcdb57b250d12a52" + integrity sha512-siTV88nb0LRqNpkL2gXboqCwVdq95sLtzMHS1/3eONV2gLbB3NAK46wmSMvCO/yquBvI2lvaFIfd8P12ecsxBw== + +"@bruits/satteri-win32-x64-msvc@0.10.5": + version "0.10.5" + resolved "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.10.5.tgz" + integrity sha512-C3IfPvfvMXmlzBxaMPKFS1XiuV9pu2mC7YqkPk7PSvTgPZ8gbdASIpHpztDLvTTQjqZ0z1Ol8tK5X+V6XXC0wQ== + +"@capsizecss/unpack@^4.0.0": + version "4.0.1" + resolved "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz" + integrity sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ== + dependencies: + fontkitten "^1.0.3" + +"@clack/core@1.4.3": + version "1.4.3" + resolved "https://registry.npmjs.org/@clack/core/-/core-1.4.3.tgz" + integrity sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ== + dependencies: + fast-wrap-ansi "^0.2.0" + sisteransi "^1.0.5" + +"@clack/prompts@^1.1.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@clack/prompts/-/prompts-1.7.0.tgz" + integrity sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A== + dependencies: + "@clack/core" "1.4.3" + fast-string-width "^3.0.2" + fast-wrap-ansi "^0.2.0" + sisteransi "^1.0.5" + +"@codemirror/autocomplete@^6.0.0": + version "6.20.3" + resolved "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.3.tgz" + integrity sha512-tlosUqb+3BbxCxZdu4tKeRghPFC+QM7q4X5YhKV2eCmPG+1r2F3f4AaSz5sCrFqUtX4Jh20VFTKecl16MgiV9g== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.17.0" + "@lezer/common" "^1.0.0" + +"@codemirror/commands@^6.0.0": + version "6.11.0" + resolved "https://registry.npmjs.org/@codemirror/commands/-/commands-6.11.0.tgz" + integrity sha512-/K4Rl5BN0OtTiPWmJCdqODu38XnDMsDxKY5rgrPnCkutPTJf2wVbkoixLfealF5Kwse/s8P8M5jAiURiwSwnFA== + dependencies: + "@codemirror/language" "^6.0.0" + "@codemirror/state" "^6.7.0" + "@codemirror/view" "^6.27.0" + "@lezer/common" "^1.1.0" + +"@codemirror/lang-json@^6.0.2": + version "6.0.2" + resolved "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.2.tgz" + integrity sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ== + dependencies: + "@codemirror/language" "^6.0.0" + "@lezer/json" "^1.0.0" + +"@codemirror/language@^6.0.0": + version "6.12.4" + resolved "https://registry.npmjs.org/@codemirror/language/-/language-6.12.4.tgz" + integrity sha512-1q4PaT+o6PbgpkJt4Q8Fv5XJxTy4FUZ4MWETtyiDw3J0Pyr9E2vqcKL+k9wcvjNTIsauxvE7OfmWj3FRPHQ76A== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.23.0" + "@lezer/common" "^1.5.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + style-mod "^4.0.0" + +"@codemirror/lint@^6.0.0": + version "6.9.7" + resolved "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.7.tgz" + integrity sha512-28/+iWLYxKxsvGYhSYL7zaCZqLz5+FFFDq9tVsvGv9kv8RY4fFAchJ5WX9M3YrrRlTIsECjsXPqeNgnSmNP2dg== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.42.0" + crelt "^1.0.5" + +"@codemirror/search@^6.0.0": + version "6.7.1" + resolved "https://registry.npmjs.org/@codemirror/search/-/search-6.7.1.tgz" + integrity sha512-uMe5UO6PamJtSHrXhhHOzSX3ReWtiJrva6GnPMwSOrZtiExb5X5eExhr2OUZQVvdxPsKpY3Ro2mFbQadpPWmHA== + dependencies: + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.37.0" + crelt "^1.0.5" + +"@codemirror/state@^6.0.0", "@codemirror/state@^6.7.0": + version "6.7.1" + resolved "https://registry.npmjs.org/@codemirror/state/-/state-6.7.1.tgz" + integrity sha512-9QzNDgE4EYDnAHfrTlR2lwiPciiOymLtwKK+8yHQzCc7GXhAP9xdEbEJFy2IWB1j9UGUl9BsgMmTo/ImA02T7A== + dependencies: + "@marijn/find-cluster-break" "^1.0.0" + +"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0", "@codemirror/view@^6.37.0", "@codemirror/view@^6.42.0": + version "6.43.9" + resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.43.9.tgz" + integrity sha512-sTuUzTpPMFebRhg6dawChoKKgndIwfjmJgKVxBefPElcU2NwQ6AFroupk0SFqEerQyZOGRfDNnSN8Dw/lMAsXw== + dependencies: + "@codemirror/state" "^6.7.0" + crelt "^1.0.6" + style-mod "^4.1.0" + w3c-keyname "^2.2.4" + +"@ctrl/tinycolor@^4.0.4": + version "4.2.0" + resolved "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz" + integrity sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A== + +"@emnapi/core@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.1.tgz#b9e1064f3a6b1631e241e638eb48d736bfd372a6" + integrity sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ== + dependencies: + "@emnapi/wasi-threads" "1.2.2" + tslib "^2.4.0" + +"@emnapi/core@^1.11.1": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.11.3.tgz#5e95348a42cd1e06f0b9aa380cd74091daa4d520" + integrity sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg== + dependencies: + "@emnapi/wasi-threads" "1.2.3" + tslib "^2.4.0" + +"@emnapi/runtime@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.1.tgz#58f1f3d5d81a9b12f793ab688c96371901027c24" + integrity sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw== + dependencies: + tslib "^2.4.0" + +"@emnapi/runtime@^1.11.1", "@emnapi/runtime@^1.11.3": + version "1.11.3" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.11.3.tgz#84257ae3b0531eb2aec1ffa23d70700da007ba95" + integrity sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz#4c93becf5bfa3b13d1bbdcc06aee38321ad8139a" + integrity sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.2.3", "@emnapi/wasi-threads@^1.2.2": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz#c9bf72fd4be5b928aee894820e8d814ed73916e9" + integrity sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g== + dependencies: + tslib "^2.4.0" + +"@epic-web/invariant@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz" + integrity sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA== + +"@esbuild/aix-ppc64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz#bf6e10303bcf2e7c686975fa52f937ec2728d8bc" + integrity sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ== + +"@esbuild/android-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz#0c6246bc8d2c4d172aac2db3fb1190d72bd65504" + integrity sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A== + +"@esbuild/android-arm@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.2.tgz#2d84ece6a4e2684d92be26ee13d42757d831c381" + integrity sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg== + +"@esbuild/android-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.2.tgz#fc38d4d6358d8dc1cf53f09f7589fe436eb64801" + integrity sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q== + +"@esbuild/darwin-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz#f83afeeac1d7dac01c7a2fd012b3e451a0591fcc" + integrity sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw== + +"@esbuild/darwin-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz#510147c055a795588dbbe14fd6b1b8ad0a2f30de" + integrity sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw== + +"@esbuild/freebsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz#093b9200ecf0b115ba4e5e248a7485c9c5f8bd5e" + integrity sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw== + +"@esbuild/freebsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz#0be22b6df925d213e841ea87123af5df80b0faf7" + integrity sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg== + +"@esbuild/linux-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz#1bdbc651cda9ba9995c53ed9c71ceaa65094762d" + integrity sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug== + +"@esbuild/linux-arm@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz#beb12ad72b84f72d28488cc1b8ee9f7eb141d753" + integrity sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w== + +"@esbuild/linux-ia32@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz#b81f9d55529b45c206a46a138214b1aa6879696b" + integrity sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ== + +"@esbuild/linux-loong64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz#598667241a04c99b76ed6ef940ac50038c419f98" + integrity sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ== + +"@esbuild/linux-mips64el@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz#1c51eb9cea903f53d97b5af3b1841db70f5596ca" + integrity sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA== + +"@esbuild/linux-ppc64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz#63dd61f17ceb31a81227f413feac8a71bc2c51f2" + integrity sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ== + +"@esbuild/linux-riscv64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz#3763b08fde5cf25ab1facb8e7752edfe45fbfc27" + integrity sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA== + +"@esbuild/linux-s390x@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz#1a137ff293a82906eb3176385bd7e8e0e5cfb7cb" + integrity sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg== + +"@esbuild/linux-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz#268b36211c146ca54f8fe12c578a8d6ef8979485" + integrity sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ== + +"@esbuild/netbsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz#22571ad951d62bb6accc82d8d1fad5c8c1ac0ba1" + integrity sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw== + +"@esbuild/netbsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz#42fcc57297eb0a0ca3f5fc475291f4c1a3f7c0de" + integrity sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw== + +"@esbuild/openbsd-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz#9eb32af104ac3dacf4edca01f596664aab0c73ef" + integrity sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ== + +"@esbuild/openbsd-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz#febed2402d6088225e91f20fb4ce2522ad0a4efd" + integrity sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw== + +"@esbuild/openharmony-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz#85641c3d466428bfbccea5f21c26836663fef5ce" + integrity sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q== + +"@esbuild/sunos-x64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz#a736f9d8962481045fc4c3e54f5479f22c870fb4" + integrity sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g== + +"@esbuild/win32-arm64@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz#ee5ab40fad186201b652a33f8a5eb149e9e42532" + integrity sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ== + +"@esbuild/win32-ia32@0.28.2": + version "0.28.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz#c40d28a6d99a127da6711f2afd74b11cb63b06a7" + integrity sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA== + +"@esbuild/win32-x64@0.28.2": + version "0.28.2" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz" + integrity sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g== + +"@expressive-code/core@^0.44.1": + version "0.44.1" + resolved "https://registry.npmjs.org/@expressive-code/core/-/core-0.44.1.tgz" + integrity sha512-3dDo9N8D7hYrLNNMMWFovg3+aDUtnQm7c7z0GZc1c0LEFVBc0Q6lKG+tVT28gDadOvsgOANfCn35fgpe97Pmgg== + dependencies: + "@ctrl/tinycolor" "^4.0.4" + hast-util-select "^6.0.2" + hast-util-to-html "^9.0.1" + hast-util-to-text "^4.0.1" + hastscript "^9.0.0" + postcss "^8.4.38" + postcss-nested "^6.0.1" + unist-util-visit "^5.0.0" + unist-util-visit-parents "^6.0.1" + +"@expressive-code/core@^0.44.2": + version "0.44.2" + resolved "https://registry.yarnpkg.com/@expressive-code/core/-/core-0.44.2.tgz#045edddd08f41c290865cfb17a5ea55adbea5f58" + integrity sha512-Yw5KonQCD1HoOO2P89y4wifqS9qrJcGVY0LkVMUsVZjhi++bhz4WwQ37inenKFNOEVo50P7cjoVsCdaVnUbq8w== + dependencies: + "@ctrl/tinycolor" "^4.0.4" + hast-util-select "^6.0.2" + hast-util-to-html "^9.0.1" + hast-util-to-text "^4.0.1" + hastscript "^9.0.0" + postcss "^8.4.38" + postcss-nested "^6.0.1" + unist-util-visit "^5.0.0" + unist-util-visit-parents "^6.0.1" + +"@expressive-code/plugin-frames@^0.44.1": + version "0.44.1" + resolved "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.44.1.tgz" + integrity sha512-HC/bdRao9225ApcgO/e3jn8ZOhldKO7ob1O/Tcipvtv7Vb5nMphZhMtD9uuywpvxkPYBHJi3504WhrKg05Dwqg== + dependencies: + "@expressive-code/core" "^0.44.1" + +"@expressive-code/plugin-line-numbers@^0.44.2": + version "0.44.2" + resolved "https://registry.yarnpkg.com/@expressive-code/plugin-line-numbers/-/plugin-line-numbers-0.44.2.tgz#f291e6ad91217530c547737311ac5b9bf60b4365" + integrity sha512-WvJV+Wv+dazle+IQoKH8rL5GpzwvRTSJ2IMrtufvnJy+aT+GGm73PoM19CN5HauCIc0tl/fGDtrm3iI9SjZNGQ== + dependencies: + "@expressive-code/core" "^0.44.2" + +"@expressive-code/plugin-shiki@^0.44.1": + version "0.44.1" + resolved "https://registry.npmjs.org/@expressive-code/plugin-shiki/-/plugin-shiki-0.44.1.tgz" + integrity sha512-YApiZt3buUzBwL5tqj8G+sYC5NjMjRCHgQwr9bmGl69rtcHy6fE9dooWUeKYB978fJT2BuxT5FeHcF47rA3SEg== + dependencies: + "@expressive-code/core" "^0.44.1" + shiki "^4.0.2" + +"@expressive-code/plugin-text-markers@^0.44.1": + version "0.44.1" + resolved "https://registry.npmjs.org/@expressive-code/plugin-text-markers/-/plugin-text-markers-0.44.1.tgz" + integrity sha512-B3BsJoJ8CFMlcIX9f+X9tcI3C4zPDO601+YuLi9GheSTNro7ZfqSjLptMQKBHOWZvxnAtY5zvIX7iO/qtBhNBg== + dependencies: + "@expressive-code/core" "^0.44.1" + +"@humanwhocodes/momoa@^2.0.3": + version "2.0.4" + resolved "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz" + integrity sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA== + +"@img/colour@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz" + integrity sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ== + +"@img/sharp-darwin-arm64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz#bc10b262de2fc80088013f5f998298d1c8909fbf" + integrity sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.3.3" + +"@img/sharp-darwin-x64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz#76c49ff04fb3f9d846b0d0575841b7ee59beec68" + integrity sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.3.3" + +"@img/sharp-freebsd-wasm32@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz#ba55fd603c5d1d01a1cb14ffb4d970bc6ced80e1" + integrity sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA== + dependencies: + "@img/sharp-wasm32" "0.35.4" + +"@img/sharp-libvips-darwin-arm64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz#08a6cf4fb4ee8d45f99404a569dcaa6b29391d97" + integrity sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg== + +"@img/sharp-libvips-darwin-x64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz#1461e6fb310a869b3c13504589b8dd5c06624da8" + integrity sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw== + +"@img/sharp-libvips-linux-arm64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz#cb938a3971b9a36329bc99427f1e5b72e266ba2e" + integrity sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A== + +"@img/sharp-libvips-linux-arm@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz#71032941b9fcbf8ebc3c1b62949927b844cbad62" + integrity sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA== + +"@img/sharp-libvips-linux-ppc64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz#8246d2dec15234fd1cc54cc55dcba1aebc26c414" + integrity sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w== + +"@img/sharp-libvips-linux-riscv64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz#59ff663c2aa6b418857357cd77ca4ccaece95876" + integrity sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ== + +"@img/sharp-libvips-linux-s390x@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz#bc17451f80d9f31663b3e906149f159a0ecb1ca8" + integrity sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q== + +"@img/sharp-libvips-linux-x64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz#c7d1f83bc1cfe222cd9dc927f3c5137aa9791e76" + integrity sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA== + +"@img/sharp-libvips-linuxmusl-arm64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz#303dfe2a8e6d1fd279ead559f4d2ccff2545e2a2" + integrity sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw== + +"@img/sharp-libvips-linuxmusl-x64@1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz#3750f70ad46ad87e4a08ee8d372ab9a7e17e2b6c" + integrity sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw== + +"@img/sharp-linux-arm64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz#c2f53bf913fa1b46762b192c527a2b3647a211a8" + integrity sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.3.3" + +"@img/sharp-linux-arm@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz#de8da0da2ee552267cae771597332a863378e43b" + integrity sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.3.3" + +"@img/sharp-linux-ppc64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz#c40d7c5f8ce216c35224c58edcef8e6445935256" + integrity sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ== + optionalDependencies: + "@img/sharp-libvips-linux-ppc64" "1.3.3" + +"@img/sharp-linux-riscv64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz#032ca206e713b1179efe0e18d525188c67277730" + integrity sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA== + optionalDependencies: + "@img/sharp-libvips-linux-riscv64" "1.3.3" + +"@img/sharp-linux-s390x@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz#19dac7501a15c8748bc7a11219fca391e424b6d7" + integrity sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.3.3" + +"@img/sharp-linux-x64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz#7d1d414d4a538e0704ba6b76ce6547e60f6211ce" + integrity sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.3.3" + +"@img/sharp-linuxmusl-arm64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz#9534c93807822f4282d079a322facc6db53d50f6" + integrity sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.3.3" + +"@img/sharp-linuxmusl-x64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz#f488e7a0291991bff643cef82b5afd3cfd70fcf2" + integrity sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.3.3" + +"@img/sharp-wasm32@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz#81f71f3fc0d8447dc3af6cb378e24e758ff54225" + integrity sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA== + dependencies: + "@emnapi/runtime" "^1.11.3" + +"@img/sharp-webcontainers-wasm32@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz#77d2e8892d3a3825f0dc95ab02ceb613cb213286" + integrity sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA== + dependencies: + "@img/sharp-wasm32" "0.35.4" + +"@img/sharp-win32-arm64@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz#4101b44e3fb97d6f1a73c2a9c6142d491d1aa831" + integrity sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw== + +"@img/sharp-win32-ia32@0.35.4": + version "0.35.4" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz#8d4755bd26d5ff34fb89c7907bd89c080a5dc9f5" + integrity sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw== + +"@img/sharp-win32-x64@0.35.4": + version "0.35.4" + resolved "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz" + integrity sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg== + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": + version "1.6.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz" + integrity sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw== + +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.31" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lezer/common@^1.0.0", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0", "@lezer/common@^1.3.0", "@lezer/common@^1.5.0": + version "1.5.2" + resolved "https://registry.npmjs.org/@lezer/common/-/common-1.5.2.tgz" + integrity sha512-sxQE460fPZyU3sdc8lafxiPwJHBzZRy/udNFynGQky1SePYBdhkBl1kOagA9uT3pxR8K09bOrmTUqA9wb/PjSQ== + +"@lezer/highlight@^1.0.0": + version "1.2.3" + resolved "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz" + integrity sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g== + dependencies: + "@lezer/common" "^1.3.0" + +"@lezer/json@^1.0.0": + version "1.0.3" + resolved "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz" + integrity sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ== + dependencies: + "@lezer/common" "^1.2.0" + "@lezer/highlight" "^1.0.0" + "@lezer/lr" "^1.0.0" + +"@lezer/lr@^1.0.0": + version "1.4.10" + resolved "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.10.tgz" + integrity sha512-rnCpTIBafOx4mRp43xOxDJbFipJm/c0cia/V5TiGlhmMa+wsSdoGmUN3w5Bqrks/09Q/D4tNAmWaT8p6NRi77A== + dependencies: + "@lezer/common" "^1.0.0" + +"@lit-labs/ssr-dom-shim@^1.5.0": + version "1.6.0" + resolved "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.6.0.tgz" + integrity sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ== + +"@lit/reactive-element@^2.1.0": + version "2.1.2" + resolved "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz" + integrity sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.5.0" + +"@lucide/astro@1.41.0": + version "1.41.0" + resolved "https://registry.yarnpkg.com/@lucide/astro/-/astro-1.41.0.tgz#93d3ac92ec9085dca3e809c73eabf6574ba853bd" + integrity sha512-B6i+gssCkaI9o2mTGLslHOSNyFUv5i6bqxATozpFepdT5XH/n3gjcH4jQ6efqMRGIrqaKsFr5TRwgfKEMqlHiQ== + +"@marijn/find-cluster-break@^1.0.0": + version "1.0.4" + resolved "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.4.tgz" + integrity sha512-Wy0V7+SGUjnF9/TkiM1hKVDPj7jKXduPNboMVtHTA8dySMURWqfg/JZ9E2Sq8JgSJmkl7k7Qe9FLeMSrSraWmQ== + +"@napi-rs/wasm-runtime@^1.1.4", "@napi-rs/wasm-runtime@^1.2.2", "@napi-rs/wasm-runtime@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz#97e3d45d7424dc5da1d4e32f3bf3b292f6c1b44c" + integrity sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q== + dependencies: + "@tybys/wasm-util" "^0.10.3" + +"@oslojs/encoding@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz" + integrity sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ== + +"@oxc-project/types@=0.147.0": + version "0.147.0" + resolved "https://registry.npmjs.org/@oxc-project/types/-/types-0.147.0.tgz" + integrity sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg== + +"@pagefind/darwin-arm64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz#965152ffc22bccd8299e065f7cfbc6869a1bffe0" + integrity sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ== + +"@pagefind/darwin-x64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz#b5b9b47673caf7b280891154e2a475abc499fadd" + integrity sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw== + +"@pagefind/default-ui@^1.3.0": + version "1.5.2" + resolved "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.5.2.tgz" + integrity sha512-pm1LMnQg8N2B3n2TnjKlhaFihpz6zTiA4HiGQ6/slKO/+8K9CAU5kcjdSSPgpuk1PMuuN4hxLipUIifnrkl3Sg== + +"@pagefind/freebsd-x64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz#cf6e279d938c2368731bb6558bf8f66a0c80a269" + integrity sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA== + +"@pagefind/linux-arm64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz#8b22cfc1a34c59033c5bd66676b7a86efba0f5f4" + integrity sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw== + +"@pagefind/linux-x64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz#a733d1c0a9d905311f69f8868771c0cc42909fe4" + integrity sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA== + +"@pagefind/windows-arm64@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz#6d6cb395a56136a92b91c0bd866f7fec3b0bbe7c" + integrity sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g== + +"@pagefind/windows-x64@1.5.2": + version "1.5.2" + resolved "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz" + integrity sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg== + +"@readme/better-ajv-errors@^2.3.2": + version "2.4.0" + resolved "https://registry.npmjs.org/@readme/better-ajv-errors/-/better-ajv-errors-2.4.0.tgz" + integrity sha512-9WODaOAKSl/mU+MYNZ2aHCrkoRSvmQ+1YkLj589OEqqjOAhbn8j7Z+ilYoiTu/he6X63/clsxxAB4qny9/dDzg== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/runtime" "^7.22.5" + "@humanwhocodes/momoa" "^2.0.3" + jsonpointer "^5.0.0" + leven "^3.1.0" + picocolors "^1.1.1" + +"@readme/openapi-parser@^4.1.2": + version "4.1.2" + resolved "https://registry.npmjs.org/@readme/openapi-parser/-/openapi-parser-4.1.2.tgz" + integrity sha512-lAFH88r/CHs5VZDUocEda0OSMSQsr6801sziIjOKyVA+0hSFN+BPuelPF5XvkMROHecnPd+XEJN1iNQqCgER/g== + dependencies: + "@apidevtools/json-schema-ref-parser" "^13.0.5" + "@readme/better-ajv-errors" "^2.3.2" + "@readme/openapi-schemas" "^3.1.0" + "@types/json-schema" "^7.0.15" + ajv "^8.12.0" + ajv-draft-04 "^1.0.0" + +"@readme/openapi-schemas@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@readme/openapi-schemas/-/openapi-schemas-3.1.0.tgz" + integrity sha512-9FC/6ho8uFa8fV50+FPy/ngWN53jaUu4GRXlAjcxIRrzhltJnpKkBG2Tp0IDraFJeWrOpk84RJ9EMEEYzaI1Bw== + +"@rolldown/binding-android-arm-eabi@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.6.tgz#81bc32b79902fcd3875dffdf3be2ccba3ef8d794" + integrity sha512-b+jTcARdTiFLI6jB4a5XjTm0RWd6KcRfQj/I2356fxUZemiho9zQLxo0RtCuMDAyKcLo6cEltkgbQp6d1+sjjQ== + +"@rolldown/binding-android-arm64@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.6.tgz#9b20ae8d8a5bb979ea6aa8fa4b7e11f58c53f775" + integrity sha512-lkWU8ZJaRk9q3CIEY1Tc7vIFALp3Xw5NfGJo2hQg5oIqNgxWi1zI+IiDEK3r70BF5Dzol1tcXsnzsRc8NLhG+Q== + +"@rolldown/binding-darwin-arm64@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.6.tgz#1031ee06b51c9134ba5a6da3a7310388875f7dd8" + integrity sha512-dgR56NYnvAszm7Ob1B2/Vn0e8bUQYZH2UjVaMMtMVOCKFSfjhfLmuA/9+O+F+ajUdG6B/bSssrKW6JJYASa8jA== + +"@rolldown/binding-darwin-x64@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.6.tgz#11cf31040b779dba8e61d932ae3c0ee81ef94ae0" + integrity sha512-vpVxFvUCFioJqug7OTvqptkc4yb8UX0AwfDmJpaR/0sWz+BUmqSVAf7c8JkUgnN8YLspb4a/N6NhTyMAmdyQ7Q== + +"@rolldown/binding-freebsd-x64@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.6.tgz#72d805b459ba4a8bbfc112bca4a1c70740516ae9" + integrity sha512-h1wG6Y6K3JlRswxsI64qQJqBAy4vrLuHgRbc8CZMGSWTOFRY6ghMApM1NKzB2I0n5xV1fjkE18SuVl2QpLeNpA== + +"@rolldown/binding-linux-arm-gnueabihf@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.6.tgz#43b778dd021f50182a1efdb4149cd89cff86c942" + integrity sha512-tbCiqub0q2MVWJKgF5PoAlNWCtQydiOYSLIkd8sByqK/6MMYLJRcSXSYodqYtd0O+Fw7QaVmKKlS4oL94YRZ0w== + +"@rolldown/binding-linux-arm64-gnu@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.6.tgz#e9fa7a469999c1346d827b29154068d1c833c474" + integrity sha512-oxK9+baEBPhZG5HB4URY+uU04zJWeZlH6Tb9rB5DK4DF9XR1uXNLXt5Q5ZsugTKayNCNLhkcwz/ye74hRI98dg== + +"@rolldown/binding-linux-arm64-musl@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.6.tgz#5e68dd6eb85797745f494dfe8c490c2bce4218a6" + integrity sha512-muWCk27FVBEZtv0MsK8gnfSmgczA8KQ0uRVJbTABKhkRfQc38aUrcb7fhi3BNiyseFmgcRsoMfQsSNJ+DbZdSw== + +"@rolldown/binding-linux-ppc64-gnu@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.6.tgz#2a0efc15437a55dd2caf58f0318e129d11d98ee6" + integrity sha512-eWDoSfU7Co2qj3vgB3Dt4lj1mG6CoWbcJQkRMP3XJplyCMtuaq3LHvPFjS9QIPvMGWVadJC04Xiy0IdcVPtnwQ== + +"@rolldown/binding-linux-s390x-gnu@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.6.tgz#bc2b0b6325d8aae0f1a1c06fb10d665c82258541" + integrity sha512-2bWNjRSIayvupRKxXUY2tWG9fYdoUlTqWywHRvE8Eq3GvuQ+f2HeIkve697fIt+IQs/PV8yFsdWuhp1aJ1PdnA== + +"@rolldown/binding-linux-x64-gnu@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.6.tgz#e6e5022f6138fdc0d14cefacc67dc7bc5dff6430" + integrity sha512-KekI0gS0wLxe1UBSQSjenBVwou/JkcQPDzBPICGZjxUv9k3RteHDPBQaiOicZUFKRIH2wKEimGwVpnJsbPzu7w== + +"@rolldown/binding-linux-x64-musl@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.6.tgz#c8b462609809237bbf6265491b1e78d5c260ed46" + integrity sha512-TvtPnfVr+HtyGiDmPK4VWmlNm7QhNNAcK5Q9A7aOXsI8545yCyaoMaicXrFZ72JzeYjaUVk7yT243zT0jzjFKQ== + +"@rolldown/binding-openharmony-arm64@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.6.tgz#aa208791647b3b0bd23b372d5ee6bd5ed5988118" + integrity sha512-iOo0VEay2XFhaCcH0sps5XIimkSuOnNaZrf6+ZkoSOQBJPKNU48RkmJv0/lSpipexu5P+ouFgafe5IGr/DiQfg== + +"@rolldown/binding-win32-arm64-msvc@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.6.tgz#a2a5f1a84555d00afe0ac0ff387878bcf4ada52a" + integrity sha512-y5NTmmasMS455JlOCO4ZM9krIchv3Mvm1crL1iUPGOPgEzSkves9n0SdC5Sjz6+qWDFhd8/JpfWMH8NSWNHe+A== + +"@rolldown/binding-win32-x64-msvc@1.2.6": + version "1.2.6" + resolved "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.6.tgz" + integrity sha512-np8iZSLfXlAD4kWhiyq/u0Yt8oZDtRQ8lGhQaCXo2rl37KNjeU0GjJuwr4P3oeZ++ROfofsKNBqR5LTO8aXyWQ== + +"@rolldown/pluginutils@^1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz" + integrity sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw== + +"@shikijs/core@4.4.3": + version "4.4.3" + resolved "https://registry.npmjs.org/@shikijs/core/-/core-4.4.3.tgz" + integrity sha512-QCR4q2ZO/ILJEuwiBMel4wdcTDb1JGwfjKTxPDF6x8ixOaluPrVqIn06C99AcRPhmYlBR56d/Fb+GN58GzExpg== + dependencies: + "@shikijs/primitive" "4.4.3" + "@shikijs/types" "4.4.3" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.5" + hast-util-to-html "^9.0.5" + +"@shikijs/engine-javascript@4.4.3": + version "4.4.3" + resolved "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.4.3.tgz" + integrity sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ== + dependencies: + "@shikijs/types" "4.4.3" + "@shikijs/vscode-textmate" "^10.0.2" + oniguruma-to-es "^4.3.6" + +"@shikijs/engine-oniguruma@4.4.3": + version "4.4.3" + resolved "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.4.3.tgz" + integrity sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w== + dependencies: + "@shikijs/types" "4.4.3" + "@shikijs/vscode-textmate" "^10.0.2" + +"@shikijs/langs@4.4.3": + version "4.4.3" + resolved "https://registry.npmjs.org/@shikijs/langs/-/langs-4.4.3.tgz" + integrity sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A== + dependencies: + "@shikijs/types" "4.4.3" + +"@shikijs/primitive@4.4.3": + version "4.4.3" + resolved "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.4.3.tgz" + integrity sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ== + dependencies: + "@shikijs/types" "4.4.3" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.5" + +"@shikijs/themes@4.4.3": + version "4.4.3" + resolved "https://registry.npmjs.org/@shikijs/themes/-/themes-4.4.3.tgz" + integrity sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw== + dependencies: + "@shikijs/types" "4.4.3" + +"@shikijs/types@4.4.3": + version "4.4.3" + resolved "https://registry.npmjs.org/@shikijs/types/-/types-4.4.3.tgz" + integrity sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g== + dependencies: + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.5" + +"@shikijs/vscode-textmate@^10.0.2": + version "10.0.2" + resolved "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz" + integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== + +"@tailwindcss/node@4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz" + integrity sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg== + dependencies: + "@jridgewell/remapping" "^2.3.5" + enhanced-resolve "^5.24.1" + jiti "^2.7.0" + lightningcss "1.32.0" + magic-string "^0.30.21" + source-map-js "^1.2.1" + tailwindcss "4.3.3" + +"@tailwindcss/oxide-android-arm64@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz#848f93034155daf7892185028dfb18143bfc7d07" + integrity sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw== + +"@tailwindcss/oxide-darwin-arm64@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz#5c779e32c1c361beb75136fd8e2c627fcb9a5b28" + integrity sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw== + +"@tailwindcss/oxide-darwin-x64@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz#ba292ff52fa3264139f7fe7874719ce0a4666875" + integrity sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw== + +"@tailwindcss/oxide-freebsd-x64@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz#07e589487b9a636235a4ade48cefc1f9eeeec57f" + integrity sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw== + +"@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz#0c8abc228d9e19e0065ddb707eba52e21855b3ff" + integrity sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ== + +"@tailwindcss/oxide-linux-arm64-gnu@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz#5067dc7afd15d2b97adc77a91177dc4bec8d1b8b" + integrity sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w== + +"@tailwindcss/oxide-linux-arm64-musl@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz#29ae5f279be2ce64db368711985b6ad8e4562e57" + integrity sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA== + +"@tailwindcss/oxide-linux-x64-gnu@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz#7d693b40f69875744b499481359b227fd3ac3a3c" + integrity sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w== + +"@tailwindcss/oxide-linux-x64-musl@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz#6a55d664f47c5ff9ad3f46bf05fe07d410b8cfd8" + integrity sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img== + +"@tailwindcss/oxide-wasm32-wasi@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz#408a9bc620e68f1aaf0dfea33da7bd3b65f9e2ef" + integrity sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ== + dependencies: + "@emnapi/core" "^1.11.1" + "@emnapi/runtime" "^1.11.1" + "@emnapi/wasi-threads" "^1.2.2" + "@napi-rs/wasm-runtime" "^1.1.4" + "@tybys/wasm-util" "^0.10.2" + tslib "^2.8.1" + +"@tailwindcss/oxide-win32-arm64-msvc@4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz#3d582b00180fa4680e0b6c90be69fa5f4a209092" + integrity sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ== + +"@tailwindcss/oxide-win32-x64-msvc@4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz" + integrity sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw== + +"@tailwindcss/oxide@4.3.3": + version "4.3.3" + resolved "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz" + integrity sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA== + optionalDependencies: + "@tailwindcss/oxide-android-arm64" "4.3.3" + "@tailwindcss/oxide-darwin-arm64" "4.3.3" + "@tailwindcss/oxide-darwin-x64" "4.3.3" + "@tailwindcss/oxide-freebsd-x64" "4.3.3" + "@tailwindcss/oxide-linux-arm-gnueabihf" "4.3.3" + "@tailwindcss/oxide-linux-arm64-gnu" "4.3.3" + "@tailwindcss/oxide-linux-arm64-musl" "4.3.3" + "@tailwindcss/oxide-linux-x64-gnu" "4.3.3" + "@tailwindcss/oxide-linux-x64-musl" "4.3.3" + "@tailwindcss/oxide-wasm32-wasi" "4.3.3" + "@tailwindcss/oxide-win32-arm64-msvc" "4.3.3" + "@tailwindcss/oxide-win32-x64-msvc" "4.3.3" + +"@tailwindcss/vite@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/vite/-/vite-4.3.3.tgz#1f4037badcb5e6c6bb574d3d8a0172c83f26b97f" + integrity sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw== + dependencies: + "@tailwindcss/node" "4.3.3" + "@tailwindcss/oxide" "4.3.3" + tailwindcss "4.3.3" + +"@tybys/wasm-util@^0.10.2", "@tybys/wasm-util@^0.10.3": + version "0.10.3" + resolved "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz" + integrity sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg== + dependencies: + tslib "^2.4.0" + +"@types/debug@^4.0.0": + version "4.1.13" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz" + integrity sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw== + dependencies: + "@types/ms" "*" + +"@types/estree-jsx@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz" + integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== + dependencies: + "@types/estree" "*" + +"@types/estree@*": + version "1.0.9" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== + +"@types/hast@^3.0.0", "@types/hast@^3.0.4", "@types/hast@^3.0.5": + version "3.0.5" + resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz" + integrity sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g== + dependencies: + "@types/unist" "*" + +"@types/js-yaml@^4.0.9": + version "4.0.9" + resolved "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== + +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/mdast@^4.0.0", "@types/mdast@^4.0.4": + version "4.0.4" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/ms@*": + version "2.1.0" + resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + +"@types/nlcst@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz" + integrity sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA== + dependencies: + "@types/unist" "*" + +"@types/node@*": + version "26.4.0" + resolved "https://registry.npmjs.org/@types/node/-/node-26.4.0.tgz" + integrity sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ== + dependencies: + undici-types "~8.3.0" + +"@types/node@^24.9.2": + version "24.13.3" + resolved "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz" + integrity sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q== + dependencies: + undici-types "~7.18.0" + +"@types/sax@^1.2.1": + version "1.2.7" + resolved "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz" + integrity sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A== + dependencies: + "@types/node" "*" + +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/unist@*", "@types/unist@^3.0.0", "@types/unist@^3.0.3": + version "3.0.3" + resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@types/unist@^2.0.0": + version "2.0.11" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" + integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + +"@ungap/structured-clone@^1.0.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.4.0.tgz" + integrity sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ== + +ajv-draft-04@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz" + integrity sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw== + +ajv@^8.12.0: + version "8.20.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz" + integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +am-i-vibing@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.4.0.tgz" + integrity sha512-MxT4XZL7pzLHpuvhDKdMaQHMGGkJDLluKBLsbstn+8wv9sWcFT6h+0ve9qkml95amVTZtZV83gQe2hY+ojgHLg== + dependencies: + process-ancestry "^0.1.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^5.0.0: + version "5.0.2" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== + +astro-expressive-code@^0.44.0: + version "0.44.1" + resolved "https://registry.npmjs.org/astro-expressive-code/-/astro-expressive-code-0.44.1.tgz" + integrity sha512-DT1LnCqbHasBKlvzJ3m6LR4VI94wwx3W9EV/YbP1te4rqjOHsvsezHYuqb5MeLWLftXms/1FA9QBbwCo43DnJQ== + dependencies: + rehype-expressive-code "^0.44.1" + url-extras "^0.1.0" + +astro@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/astro/-/astro-7.3.1.tgz#4ef703a2faaedde4ff790ef880315fa2e780a8d4" + integrity sha512-A/bJYHtc6n0UAdROY9W948fW6lX0pnUA+JWKW+IGCXRyDIGN2MsXC0OlS8onZGJjr+sv8htemwOc9W5PBRXCkw== + dependencies: + "@astrojs/compiler-rs" "^0.4.0" + "@astrojs/internal-helpers" "0.11.0" + "@astrojs/markdown-satteri" "0.4.0" + "@astrojs/telemetry" "3.3.3" + "@capsizecss/unpack" "^4.0.0" + "@clack/prompts" "^1.1.0" + "@oslojs/encoding" "^1.1.0" + am-i-vibing "^0.4.0" + aria-query "^5.3.2" + axobject-query "^4.1.0" + ci-info "^4.4.0" + clsx "^2.1.1" + common-ancestor-path "^2.0.0" + cookie "^2.0.1" + devalue "^5.8.1" + diff "^9.0.0" + dset "^3.1.4" + es-module-lexer "^2.0.0" + esbuild "^0.28.0" + find-proc "0.1.0" + 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.3.0" + jsonc-parser "^3.3.1" + magic-string "^1.0.0" + magicast "^0.5.2" + mrmime "^2.0.1" + neotraverse "^1.0.1" + 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" + 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.5" + unstorage "^1.17.5" + vite "^8.0.13" + vitefu "^1.1.2" + xxhash-wasm "^1.1.0" + yargs-parser "^22.0.0" + zod "^4.5.4" + optionalDependencies: + sharp "^0.35.4" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +bcp-47-match@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz" + integrity sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ== + +bcp-47@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.1.tgz" + integrity sha512-KLw+H/gd2p4zly1X7Yh/qziuyae5/w/QFnvTng9eZL5fvszL7Whl3MBoWF8yxL7ksUjBfOD+OxkytiqbBpG+Fw== + dependencies: + is-alphabetical "^2.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + 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== + +character-entities@^2.0.0: + 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== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +chokidar@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz" + integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw== + dependencies: + readdirp "^5.0.0" + +ci-info@^4.4.0: + version "4.4.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz" + integrity sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +codemirror@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz" + integrity sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw== + dependencies: + "@codemirror/autocomplete" "^6.0.0" + "@codemirror/commands" "^6.0.0" + "@codemirror/language" "^6.0.0" + "@codemirror/lint" "^6.0.0" + "@codemirror/search" "^6.0.0" + "@codemirror/state" "^6.0.0" + "@codemirror/view" "^6.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +commander@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +common-ancestor-path@^2.0.0: + 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== + +cookie-es@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz" + integrity sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw== + +cookie@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-2.0.1.tgz" + integrity sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w== + +crelt@^1.0.5, crelt@^1.0.6: + version "1.0.7" + resolved "https://registry.npmjs.org/crelt/-/crelt-1.0.7.tgz" + integrity sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA== + +cross-env@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz" + integrity sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw== + dependencies: + "@epic-web/invariant" "^1.0.0" + cross-spawn "^7.0.6" + +cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crossws@^0.3.5: + version "0.3.5" + resolved "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz" + integrity sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA== + dependencies: + uncrypto "^0.1.3" + +css-declaration-sorter@^7.3.0: + version "7.4.0" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz" + integrity sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw== + +css-select@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz" + integrity sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw== + dependencies: + boolbase "^1.0.0" + css-what "^7.0.0" + domhandler "^5.0.3" + domutils "^3.2.2" + nth-check "^2.1.1" + +css-selector-parser@^3.0.0: + version "3.3.0" + resolved "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.3.0.tgz" + integrity sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g== + +css-tree@^3.0.1, css-tree@^3.1.0: + version "3.2.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz" + integrity sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA== + dependencies: + mdn-data "2.27.1" + source-map-js "^1.2.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz" + integrity sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +debug@^4.0.0: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +decode-named-character-reference@^1.0.0: + 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== + dependencies: + character-entities "^2.0.0" + +defu@^6.1.6: + version "6.1.7" + resolved "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz" + integrity sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destr@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz" + integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== + +detect-libc@^2.0.3, detect-libc@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== + +devalue@^5.8.1: + version "5.9.2" + resolved "https://registry.npmjs.org/devalue/-/devalue-5.9.2.tgz" + integrity sha512-po4PAY5c53tw5XMocSnf8A/5OHhbbUftpr93aEN6BBoAdntUmK7vu7wOATqvt7cXO7m1Cl4gMVn6p7n6n4mj0w== + +devlop@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +diff@^9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz" + integrity sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw== + +direction@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz" + integrity sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA== + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dset@^3.1.4: + version "3.1.4" + resolved "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz" + integrity sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +duplexer@^0.1.1, duplexer@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +enhanced-resolve@^5.24.1: + version "5.24.5" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz" + integrity sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.3.3" + +entities@^4.2.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-module-lexer@^2.0.0: + version "2.3.2" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz" + integrity sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz" + integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +esbuild@^0.28.0: + version "0.28.2" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz" + integrity sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.28.2" + "@esbuild/android-arm" "0.28.2" + "@esbuild/android-arm64" "0.28.2" + "@esbuild/android-x64" "0.28.2" + "@esbuild/darwin-arm64" "0.28.2" + "@esbuild/darwin-x64" "0.28.2" + "@esbuild/freebsd-arm64" "0.28.2" + "@esbuild/freebsd-x64" "0.28.2" + "@esbuild/linux-arm" "0.28.2" + "@esbuild/linux-arm64" "0.28.2" + "@esbuild/linux-ia32" "0.28.2" + "@esbuild/linux-loong64" "0.28.2" + "@esbuild/linux-mips64el" "0.28.2" + "@esbuild/linux-ppc64" "0.28.2" + "@esbuild/linux-riscv64" "0.28.2" + "@esbuild/linux-s390x" "0.28.2" + "@esbuild/linux-x64" "0.28.2" + "@esbuild/netbsd-arm64" "0.28.2" + "@esbuild/netbsd-x64" "0.28.2" + "@esbuild/openbsd-arm64" "0.28.2" + "@esbuild/openbsd-x64" "0.28.2" + "@esbuild/openharmony-arm64" "0.28.2" + "@esbuild/sunos-x64" "0.28.2" + "@esbuild/win32-arm64" "0.28.2" + "@esbuild/win32-ia32" "0.28.2" + "@esbuild/win32-x64" "0.28.2" + +escalade@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +event-stream@4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz" + integrity sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA== + dependencies: + duplexer "^0.1.1" + from "^0.1.7" + map-stream "0.0.7" + pause-stream "^0.0.11" + split "^1.0.1" + stream-combiner "^0.2.2" + through "^2.3.8" + +eventemitter3@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz" + integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw== + +expressive-code@^0.44.1: + version "0.44.1" + resolved "https://registry.npmjs.org/expressive-code/-/expressive-code-0.44.1.tgz" + integrity sha512-GakidxhapWDzpKLqEaFQ8wGk6gAqEtPQibu8+yPBfnDLgev5Vdsh1pasTxnrXL/mzIknyqeTwhMHTghdaiUrTg== + dependencies: + "@expressive-code/core" "^0.44.1" + "@expressive-code/plugin-frames" "^0.44.1" + "@expressive-code/plugin-shiki" "^0.44.1" + "@expressive-code/plugin-text-markers" "^0.44.1" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-string-truncated-width@^3.0.2: + 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== + +fast-string-width@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz" + integrity sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg== + dependencies: + fast-string-truncated-width "^3.0.2" + +fast-uri@^3.0.1: + version "3.1.6" + resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.6.tgz" + integrity sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q== + +fast-wrap-ansi@^0.2.0: + 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== + dependencies: + fast-string-width "^3.0.2" + +fdir@^6.5.0: + version "6.5.0" + resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + +find-proc@0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/find-proc/-/find-proc-0.1.0.tgz" + integrity sha512-OaOpEYv2PiQ7SQ5LIrl+deA1XaWcxEjnpM6VuWXTUvn+teIXxeFTLDmu18/zDQpFmHN4o3oDBX+BT0AGwEhemg== + +flattie@^1.1.1: + 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== + +fontace@~0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz" + integrity sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw== + dependencies: + fontkitten "^1.0.2" + +fontkitten@^1.0.2, fontkitten@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz" + integrity sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw== + dependencies: + tiny-inflate "^1.0.3" + +form-data@4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + +from@^0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz" + integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== + +fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.2.6: + version "1.3.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-tsconfig@5.0.0-beta.4: + 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== + dependencies: + resolve-pkg-maps "^1.0.0" + +github-slugger@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz" + integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== + +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.2.4: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +h3@^1.15.10: + version "1.15.11" + resolved "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz" + integrity sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg== + 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" + +har-validator-compiled@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/har-validator-compiled/-/har-validator-compiled-1.0.0.tgz" + integrity sha512-dher7nFSx+Ef6OoqVveLClh8itAR3vd8Qx70Lh/hEgP1iGeARAolbci7Y8JBrHIYgFCT6xRdvvL16AR9Zh07Dw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2: + version "2.0.4" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz" + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== + dependencies: + function-bind "^1.1.2" + +hast-util-embedded@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz" + integrity sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA== + dependencies: + "@types/hast" "^3.0.0" + hast-util-is-element "^3.0.0" + +hast-util-format@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hast-util-format/-/hast-util-format-1.1.0.tgz#373e77382e07deb04f6676f1b4437e7d8549d985" + integrity sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-minify-whitespace "^1.0.0" + hast-util-phrasing "^3.0.0" + hast-util-whitespace "^3.0.0" + html-whitespace-sensitive-tag-names "^3.0.0" + unist-util-visit-parents "^6.0.0" + +hast-util-has-property@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz" + integrity sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-is-body-ok-link@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.1.tgz" + integrity sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-is-element@^3.0.0: + 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== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-minify-whitespace@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/hast-util-minify-whitespace/-/hast-util-minify-whitespace-1.0.1.tgz" + integrity sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-is-element "^3.0.0" + hast-util-whitespace "^3.0.0" + unist-util-is "^6.0.0" + +hast-util-parse-selector@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz" + integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz" + integrity sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ== + dependencies: + "@types/hast" "^3.0.0" + hast-util-embedded "^3.0.0" + hast-util-has-property "^3.0.0" + hast-util-is-body-ok-link "^3.0.0" + hast-util-is-element "^3.0.0" + +hast-util-select@^6.0.2, hast-util-select@^6.0.4: + version "6.0.4" + resolved "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.4.tgz" + integrity sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + bcp-47-match "^2.0.0" + comma-separated-tokens "^2.0.0" + css-selector-parser "^3.0.0" + devlop "^1.0.0" + direction "^2.0.0" + hast-util-has-property "^3.0.0" + hast-util-to-string "^3.0.0" + hast-util-whitespace "^3.0.0" + nth-check "^2.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + unist-util-visit "^5.0.0" + zwitch "^2.0.0" + +hast-util-to-html@^9.0.1, hast-util-to-html@^9.0.5: + 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== + 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" + +hast-util-to-string@^3.0.0, hast-util-to-string@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz" + integrity sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A== + dependencies: + "@types/hast" "^3.0.0" + +hast-util-to-text@^4.0.1: + 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== + 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" + +hast-util-whitespace@^3.0.0: + 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== + dependencies: + "@types/hast" "^3.0.0" + +hastscript@^9.0.0, hastscript@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== + 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" + +html-escaper@3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz" + integrity sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ== + +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +html-whitespace-sensitive-tag-names@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-3.0.1.tgz" + integrity sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA== + +http-cache-semantics@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== + +httpsnippet@^3.0.10: + version "3.0.10" + resolved "https://registry.npmjs.org/httpsnippet/-/httpsnippet-3.0.10.tgz" + integrity sha512-1P102HsVslaT3IVfuUfVwxenfbogFiihqosnaKUScd/sON1omdZZCWdmzm6baRz4u1Va0CTI/7svLckCu9iNBw== + dependencies: + chalk "^4.1.2" + event-stream "4.0.1" + form-data "4.0.4" + har-validator-compiled "^1.0.0" + stringify-object "3.3.0" + yargs "^17.4.0" + +i18next@^26.0.7: + version "26.4.0" + resolved "https://registry.npmjs.org/i18next/-/i18next-26.4.0.tgz" + integrity sha512-rsmK5bFqsD1AetSFSIa43wtNR4WpvvH4p0tLEsTxkC7QTrfdFm06nbQ95bh8Og4wwaCnUEcm9DVYL2cgxitiQg== + +iron-webcrypto@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz" + integrity sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== + +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-4.0.0.tgz" + integrity sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jiti@^2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz" + integrity sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0, js-yaml@^4.1.1, js-yaml@^4.3.0: + version "4.3.2" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz" + integrity sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA== + dependencies: + argparse "^2.0.1" + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +jsonc-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +klona@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +lightningcss-android-arm64@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz#f033885116dfefd9c6f54787523e3514b61e1968" + integrity sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg== + +lightningcss-android-arm64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz#9a6841f88ae50fc83502903892b41af41bc2b907" + integrity sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg== + +lightningcss-darwin-arm64@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz#50b71871b01c8199584b649e292547faea7af9b5" + integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ== + +lightningcss-darwin-arm64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz#c0f2c31c0bfd19fa4dd3f18e957a1f1a152097d6" + integrity sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg== + +lightningcss-darwin-x64@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz#35f3e97332d130b9ca181e11b568ded6aebc6d5e" + integrity sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w== + +lightningcss-darwin-x64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz#cb0705965acb538c6683949ce6925fb3cdf7c361" + integrity sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ== + +lightningcss-freebsd-x64@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz#9777a76472b64ed6ff94342ad64c7bafd794a575" + integrity sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig== + +lightningcss-freebsd-x64@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz#763538828b26bab2680dadafcc84ee78b0eb502b" + integrity sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg== + +lightningcss-linux-arm-gnueabihf@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz#13ae652e1ab73b9135d7b7da172f666c410ad53d" + integrity sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw== + +lightningcss-linux-arm-gnueabihf@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz#6862e3176a331aedbdec1ed352b4d7d0dd0784de" + integrity sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ== + +lightningcss-linux-arm64-gnu@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz#417858795a94592f680123a1b1f9da8a0e1ef335" + integrity sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ== + +lightningcss-linux-arm64-gnu@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz#c6a3a2ed15141daf6bdc2628930f8e39bdf473aa" + integrity sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg== + +lightningcss-linux-arm64-musl@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz#6be36692e810b718040802fd809623cffe732133" + integrity sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg== + +lightningcss-linux-arm64-musl@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz#7fa1334971fc82845f9827df6ef8a0b20914bac6" + integrity sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ== + +lightningcss-linux-x64-gnu@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz#0b7803af4eb21cfd38dd39fe2abbb53c7dd091f6" + integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA== + +lightningcss-linux-x64-gnu@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz#8b927862ea8c2bbc6831a46509244b50d9936e55" + integrity sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg== + +lightningcss-linux-x64-musl@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz#88dc8ba865ddddb1ac5ef04b0f161804418c163b" + integrity sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg== + +lightningcss-linux-x64-musl@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz#0c525bb077dfd94404c059cfe42dad797e96aeaf" + integrity sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw== + +lightningcss-win32-arm64-msvc@1.32.0: + version "1.32.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz#4f30ba3fa5e925f5b79f945e8cc0d176c3b1ab38" + integrity sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw== + +lightningcss-win32-arm64-msvc@1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz#850ee1103dac989cfab50e3ac22d1a69e394e63d" + integrity sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA== + +lightningcss-win32-x64-msvc@1.32.0: + version "1.32.0" + resolved "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz" + integrity sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q== + +lightningcss-win32-x64-msvc@1.33.0: + version "1.33.0" + resolved "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz" + integrity sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA== + +lightningcss@1.32.0: + version "1.32.0" + resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz" + integrity sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ== + dependencies: + detect-libc "^2.0.3" + optionalDependencies: + lightningcss-android-arm64 "1.32.0" + lightningcss-darwin-arm64 "1.32.0" + lightningcss-darwin-x64 "1.32.0" + lightningcss-freebsd-x64 "1.32.0" + lightningcss-linux-arm-gnueabihf "1.32.0" + lightningcss-linux-arm64-gnu "1.32.0" + lightningcss-linux-arm64-musl "1.32.0" + lightningcss-linux-x64-gnu "1.32.0" + lightningcss-linux-x64-musl "1.32.0" + lightningcss-win32-arm64-msvc "1.32.0" + lightningcss-win32-x64-msvc "1.32.0" + +lightningcss@^1.33.0: + version "1.33.0" + resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz" + integrity sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA== + dependencies: + detect-libc "^2.0.3" + optionalDependencies: + lightningcss-android-arm64 "1.33.0" + lightningcss-darwin-arm64 "1.33.0" + lightningcss-darwin-x64 "1.33.0" + lightningcss-freebsd-x64 "1.33.0" + lightningcss-linux-arm-gnueabihf "1.33.0" + lightningcss-linux-arm64-gnu "1.33.0" + lightningcss-linux-arm64-musl "1.33.0" + lightningcss-linux-x64-gnu "1.33.0" + lightningcss-linux-x64-musl "1.33.0" + lightningcss-win32-arm64-msvc "1.33.0" + lightningcss-win32-x64-msvc "1.33.0" + +lit-element@^4.2.0: + version "4.2.2" + resolved "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz" + integrity sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w== + dependencies: + "@lit-labs/ssr-dom-shim" "^1.5.0" + "@lit/reactive-element" "^2.1.0" + lit-html "^3.3.0" + +lit-html@^3.3.0: + version "3.3.3" + resolved "https://registry.npmjs.org/lit-html/-/lit-html-3.3.3.tgz" + integrity sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA== + dependencies: + "@types/trusted-types" "^2.0.2" + +lit@^3.2.0: + version "3.3.3" + resolved "https://registry.npmjs.org/lit/-/lit-3.3.3.tgz" + integrity sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw== + dependencies: + "@lit/reactive-element" "^2.1.0" + lit-element "^4.2.0" + lit-html "^3.3.0" + +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + +lru-cache@^11.2.7: + version "11.5.2" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz" + integrity sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g== + +magic-string@^0.30.21: + version "0.30.21" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.5" + +magic-string@^1.0.0, magic-string@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-1.2.3.tgz#68f070ca0f05697c3ae57ce44a88fc7d483d4df1" + integrity sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.5" + +magicast@^0.5.2: + version "0.5.4" + resolved "https://registry.npmjs.org/magicast/-/magicast-0.5.4.tgz" + integrity sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w== + dependencies: + "@babel/parser" "^7.29.7" + "@babel/types" "^7.29.7" + source-map-js "^1.2.1" + +map-stream@0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz" + integrity sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ== + +marked@^18.0.11: + version "18.0.11" + resolved "https://registry.yarnpkg.com/marked/-/marked-18.0.11.tgz#0f50ce5cdf25b2c07f67d3787220b64a5845cce1" + integrity sha512-HnslJfsZkRPBDJRHvVtAaWlZHEpSu7u8LgQuJCELjRKuWR+hpq4A7sLq3p8HaI9ypVoXDXxV34CsQJEe1+J5Aw== + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mdast-util-directive@^3.0.0, mdast-util-directive@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz" + integrity sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q== + dependencies: + "@types/mdast" "^4.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + devlop "^1.0.0" + mdast-util-from-markdown "^2.0.0" + mdast-util-to-markdown "^2.0.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^6.0.0" + +mdast-util-from-markdown@^2.0.0: + 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== + 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" + +mdast-util-phrasing@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" + integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== + dependencies: + "@types/mdast" "^4.0.0" + unist-util-is "^6.0.0" + +mdast-util-to-hast@^13.0.0: + 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== + 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" + +mdast-util-to-markdown@^2.0.0, mdast-util-to-markdown@^2.1.2: + 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== + 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" + +mdast-util-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" + integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== + dependencies: + "@types/mdast" "^4.0.0" + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.27.1: + version "2.27.1" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz" + integrity sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ== + +micromark-core-commonmark@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== + 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" + +micromark-extension-directive@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz" + integrity sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg== + dependencies: + devlop "^1.0.0" + micromark-factory-space "^2.0.0" + micromark-factory-whitespace "^2.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + parse-entities "^4.0.0" + +micromark-factory-destination@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz" + integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-label@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz" + integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== + dependencies: + devlop "^1.0.0" + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-space@^2.0.0: + 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== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-factory-title@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz" + integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== + 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" + +micromark-factory-whitespace@^2.0.0: + 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== + 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" + +micromark-util-character@^2.0.0: + 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== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-chunked@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz" + integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-classify-character@^2.0.0: + 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== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-combine-extensions@^2.0.0: + 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== + dependencies: + micromark-util-chunked "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-decode-numeric-character-reference@^2.0.0: + 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== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-decode-string@^2.0.0: + 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== + 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" + +micromark-util-encode@^2.0.0: + 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== + +micromark-util-html-tag-name@^2.0.0: + 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== + +micromark-util-normalize-identifier@^2.0.0: + 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== + dependencies: + micromark-util-symbol "^2.0.0" + +micromark-util-resolve-all@^2.0.0: + 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== + dependencies: + micromark-util-types "^2.0.0" + +micromark-util-sanitize-uri@^2.0.0: + 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== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-subtokenize@^2.0.0: + 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== + dependencies: + devlop "^1.0.0" + micromark-util-chunked "^2.0.0" + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== + +micromark-util-types@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== + +micromark@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== + 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" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mrmime@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== + +ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@^3.3.17: + version "3.3.18" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz" + integrity sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w== + +neotraverse@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz" + integrity sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w== + +nlcst-to-string@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz" + integrity sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA== + dependencies: + "@types/nlcst" "^2.0.0" + +node-fetch-native@^1.6.7: + version "1.6.7" + resolved "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz" + integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== + +node-mock-http@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.5.tgz" + integrity sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw== + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +nth-check@^2.0.0, nth-check@^2.1.1: + 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== + dependencies: + boolbase "^1.0.0" + +obug@^2.1.1: + version "2.1.4" + resolved "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz" + integrity sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA== + +ofetch@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz" + integrity sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA== + dependencies: + destr "^2.0.5" + node-fetch-native "^1.6.7" + ufo "^1.6.1" + +ohash@^2.0.11: + version "2.0.12" + resolved "https://registry.npmjs.org/ohash/-/ohash-2.0.12.tgz" + integrity sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw== + +oniguruma-parser@^0.12.2: + version "0.12.2" + resolved "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz" + integrity sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw== + +oniguruma-to-es@^4.3.6: + 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== + dependencies: + oniguruma-parser "^0.12.2" + regex "^6.1.0" + regex-recursion "^6.0.2" + +p-limit@^7.3.0: + version "7.3.1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-7.3.1.tgz" + integrity sha512-0trZaiG7Y7kN/Egy9a8j47t9osC0Tch4PaIWd9yGF6bvmlk7muExRvGNYb8sXBwEKMoNKsbNN9P8EefuQekE4Q== + dependencies: + yocto-queue "^1.2.1" + +p-queue@^9.1.0: + version "9.3.3" + resolved "https://registry.npmjs.org/p-queue/-/p-queue-9.3.3.tgz" + integrity sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA== + dependencies: + eventemitter3 "^5.0.4" + p-timeout "^7.0.0" + +p-timeout@^7.0.0: + version "7.0.1" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz" + integrity sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg== + +package-manager-detector@^1.6.0: + version "1.8.0" + resolved "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz" + integrity sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== + +pagefind@^1.5.2: + version "1.5.2" + resolved "https://registry.npmjs.org/pagefind/-/pagefind-1.5.2.tgz" + integrity sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q== + optionalDependencies: + "@pagefind/darwin-arm64" "1.5.2" + "@pagefind/darwin-x64" "1.5.2" + "@pagefind/freebsd-x64" "1.5.2" + "@pagefind/linux-arm64" "1.5.2" + "@pagefind/linux-x64" "1.5.2" + "@pagefind/windows-arm64" "1.5.2" + "@pagefind/windows-x64" "1.5.2" + +parse-entities@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz" + integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== + dependencies: + "@types/unist" "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +pause-stream@^0.0.11: + version "0.0.11" + resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" + integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== + dependencies: + through "~2.3" + +piccolore@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz" + integrity sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw== + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4: + version "2.3.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601" + integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== + +picomatch@^4.0.4, picomatch@^4.0.5: + version "4.0.7" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz" + integrity sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA== + +postcss-less@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/postcss-less/-/postcss-less-6.0.0.tgz" + integrity sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg== + +postcss-nested@^6.0.1: + version "6.2.0" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== + dependencies: + postcss-selector-parser "^6.1.1" + +postcss-scss@^4.0.9: + version "4.0.9" + resolved "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz" + integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== + +postcss-selector-parser@^6.1.1: + version "6.1.4" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz" + integrity sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss@^8.4.38, postcss@^8.5.26: + version "8.5.26" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz" + integrity sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ== + dependencies: + nanoid "^3.3.17" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +prettier-plugin-astro@^0.14.1: + version "0.14.1" + resolved "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.14.1.tgz" + integrity sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw== + dependencies: + "@astrojs/compiler" "^2.9.1" + prettier "^3.0.0" + sass-formatter "^0.7.6" + +prettier-plugin-css-order@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/prettier-plugin-css-order/-/prettier-plugin-css-order-2.2.0.tgz" + integrity sha512-GCkwEgQ2roT7le+zpUFQThPDO4x5EXcZmY9Rj6rvO++I/nATTGBWdZdsooha/BlvIBbZclJzXsgJdlKWrys9+w== + dependencies: + css-declaration-sorter "^7.3.0" + postcss-less "^6.0.0" + postcss-scss "^4.0.9" + +prettier-plugin-tailwindcss@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.8.1.tgz" + integrity sha512-iaFMYqDsE4ffdDkn5qup0j5f2aCEBFZrdrZnvu9QKTlWx/iGPeQ4HHu7b7fCPMxeo9nwQBiOAh2nSypdFYWJkw== + +prettier@^3.0.0, prettier@^3.9.5: + version "3.9.6" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz" + integrity sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== + +prismjs@^1.30.0: + version "1.30.0" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz" + integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== + +process-ancestry@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/process-ancestry/-/process-ancestry-0.1.0.tgz" + integrity sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg== + +property-information@^7.0.0: + version "7.2.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz" + integrity sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg== + +radix3@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz" + integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== + +readdirp@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz" + integrity sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA== + +regex-recursion@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz" + integrity sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg== + dependencies: + regex-utilities "^2.3.0" + +regex-utilities@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz" + integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== + +regex@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz" + integrity sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg== + dependencies: + regex-utilities "^2.3.0" + +rehype-expressive-code@^0.44.1: + version "0.44.1" + resolved "https://registry.npmjs.org/rehype-expressive-code/-/rehype-expressive-code-0.44.1.tgz" + integrity sha512-+VZgs7Evw4LXRN3owpoBNSTpYuW6GeOdjqcUT1TuY8o/4MGPtbd0EU7Bgrju7X8KrQ6SslOBAuGWJ5fV5TriJQ== + dependencies: + expressive-code "^0.44.1" + +remark-directive@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/remark-directive/-/remark-directive-4.0.0.tgz" + integrity sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA== + dependencies: + "@types/mdast" "^4.0.0" + mdast-util-directive "^3.0.0" + micromark-extension-directive "^4.0.0" + unified "^11.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +retext-smartypants@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz" + integrity sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ== + dependencies: + "@types/nlcst" "^2.0.0" + nlcst-to-string "^4.0.0" + unist-util-visit "^5.0.0" + +rolldown@~1.2.4: + version "1.2.6" + resolved "https://registry.npmjs.org/rolldown/-/rolldown-1.2.6.tgz" + integrity sha512-vMM4q3aixf46GiF1Kok8jDPFsEpXgFWGjUHXNkNHNm+Y2adXAG2dbX91jkti3i0ZRsOlcmbuzAz1poObSHCmUA== + dependencies: + "@oxc-project/types" "=0.147.0" + "@rolldown/pluginutils" "^1.0.0" + optionalDependencies: + "@rolldown/binding-android-arm-eabi" "1.2.6" + "@rolldown/binding-android-arm64" "1.2.6" + "@rolldown/binding-darwin-arm64" "1.2.6" + "@rolldown/binding-darwin-x64" "1.2.6" + "@rolldown/binding-freebsd-x64" "1.2.6" + "@rolldown/binding-linux-arm-gnueabihf" "1.2.6" + "@rolldown/binding-linux-arm64-gnu" "1.2.6" + "@rolldown/binding-linux-arm64-musl" "1.2.6" + "@rolldown/binding-linux-ppc64-gnu" "1.2.6" + "@rolldown/binding-linux-s390x-gnu" "1.2.6" + "@rolldown/binding-linux-x64-gnu" "1.2.6" + "@rolldown/binding-linux-x64-musl" "1.2.6" + "@rolldown/binding-openharmony-arm64" "1.2.6" + "@rolldown/binding-win32-arm64-msvc" "1.2.6" + "@rolldown/binding-win32-x64-msvc" "1.2.6" + +s.color@0.0.15: + version "0.0.15" + resolved "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz" + integrity sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA== + +sass-formatter@^0.7.6: + version "0.7.9" + resolved "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz" + integrity sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw== + dependencies: + suf-log "^2.5.3" + +satteri@^0.10.3: + version "0.10.5" + resolved "https://registry.npmjs.org/satteri/-/satteri-0.10.5.tgz" + integrity sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ== + dependencies: + "@types/estree-jsx" "^1.0.5" + "@types/hast" "^3.0.5" + "@types/mdast" "^4.0.4" + "@types/unist" "^3.0.3" + optionalDependencies: + "@bruits/satteri-darwin-arm64" "0.10.5" + "@bruits/satteri-darwin-x64" "0.10.5" + "@bruits/satteri-linux-arm64-gnu" "0.10.5" + "@bruits/satteri-linux-arm64-musl" "0.10.5" + "@bruits/satteri-linux-x64-gnu" "0.10.5" + "@bruits/satteri-linux-x64-musl" "0.10.5" + "@bruits/satteri-wasm32-wasi" "0.10.5" + "@bruits/satteri-win32-arm64-msvc" "0.10.5" + "@bruits/satteri-win32-x64-msvc" "0.10.5" + +sax@1.6.1, sax@^1.4.1: + version "1.6.1" + resolved "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz" + integrity sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q== + +semver@^7.7.4, semver@^7.8.5: + version "7.8.5" + resolved "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz" + integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== + +sharp@^0.35.4: + version "0.35.4" + resolved "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz" + integrity sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA== + dependencies: + "@img/colour" "^1.1.0" + detect-libc "^2.1.2" + semver "^7.8.5" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.35.4" + "@img/sharp-darwin-x64" "0.35.4" + "@img/sharp-freebsd-wasm32" "0.35.4" + "@img/sharp-libvips-darwin-arm64" "1.3.3" + "@img/sharp-libvips-darwin-x64" "1.3.3" + "@img/sharp-libvips-linux-arm" "1.3.3" + "@img/sharp-libvips-linux-arm64" "1.3.3" + "@img/sharp-libvips-linux-ppc64" "1.3.3" + "@img/sharp-libvips-linux-riscv64" "1.3.3" + "@img/sharp-libvips-linux-s390x" "1.3.3" + "@img/sharp-libvips-linux-x64" "1.3.3" + "@img/sharp-libvips-linuxmusl-arm64" "1.3.3" + "@img/sharp-libvips-linuxmusl-x64" "1.3.3" + "@img/sharp-linux-arm" "0.35.4" + "@img/sharp-linux-arm64" "0.35.4" + "@img/sharp-linux-ppc64" "0.35.4" + "@img/sharp-linux-riscv64" "0.35.4" + "@img/sharp-linux-s390x" "0.35.4" + "@img/sharp-linux-x64" "0.35.4" + "@img/sharp-linuxmusl-arm64" "0.35.4" + "@img/sharp-linuxmusl-x64" "0.35.4" + "@img/sharp-webcontainers-wasm32" "0.35.4" + "@img/sharp-win32-arm64" "0.35.4" + "@img/sharp-win32-ia32" "0.35.4" + "@img/sharp-win32-x64" "0.35.4" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shiki@^4.0.2: + version "4.4.3" + resolved "https://registry.npmjs.org/shiki/-/shiki-4.4.3.tgz" + integrity sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g== + dependencies: + "@shikijs/core" "4.4.3" + "@shikijs/engine-javascript" "4.4.3" + "@shikijs/engine-oniguruma" "4.4.3" + "@shikijs/langs" "4.4.3" + "@shikijs/themes" "4.4.3" + "@shikijs/types" "4.4.3" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.5" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +sitemap@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz" + integrity sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ== + dependencies: + "@types/node" "^24.9.2" + "@types/sax" "^1.2.1" + arg "^5.0.0" + sax "^1.4.1" + +smol-toml@^1.6.0: + version "1.8.0" + resolved "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz" + integrity sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ== + +source-map-js@^1.0.1, source-map-js@^1.2.1: + 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== + +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + +split@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +starlight-openapi@^0.26.2: + version "0.26.2" + resolved "https://registry.yarnpkg.com/starlight-openapi/-/starlight-openapi-0.26.2.tgz#380827a4b9b65ac257755e9cc503d1751b4f0e16" + integrity sha512-nW5IwWNXq/cfl4z+9i7o6PWZf372g74SlksHHtRL2wn6RixnGksg3PB+vgvqPFeMLFvzPE5DQ9pSLzItJwtNBw== + dependencies: + "@readme/openapi-parser" "^4.1.2" + github-slugger "^2.0.0" + httpsnippet "^3.0.10" + url-template "^3.1.1" + +stream-combiner@^0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz" + integrity sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ== + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + +stream-replace-string@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz" + integrity sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w== + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + +stringify-object@3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +style-mod@^4.0.0, style-mod@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz" + integrity sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ== + +suf-log@^2.5.3: + version "2.5.3" + resolved "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz" + integrity sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow== + dependencies: + s.color "0.0.15" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svgo@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/svgo/-/svgo-4.1.0.tgz" + integrity sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q== + dependencies: + commander "^11.1.0" + css-select "^6.0.0" + css-tree "^3.0.1" + css-what "^7.0.0" + csso "^5.0.5" + picocolors "^1.1.1" + sax "1.6.1" + +tailwindcss@4.3.3, tailwindcss@^4.3.3: + version "4.3.3" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz" + integrity sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ== + +tapable@^2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz" + integrity sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A== + +through@2, through@^2.3.8, through@~2.3, through@~2.3.4: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tiny-inflate@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + +tinyclip@^0.1.12: + version "0.1.15" + resolved "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.15.tgz" + integrity sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A== + +tinyexec@^1.0.4: + version "1.3.0" + resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz" + integrity sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ== + +tinyglobby@^0.2.15, tinyglobby@^0.2.17: + version "0.2.17" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz" + integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g== + dependencies: + fdir "^6.5.0" + picomatch "^4.0.4" + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" + integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== + +tslib@^2.4.0, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +ufo@^1.6.1, ufo@^1.6.3: + version "1.6.4" + resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz" + integrity sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA== + +ultrahtml@^1.6.0: + version "1.7.0" + resolved "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz" + integrity sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g== + +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + +undici-types@~7.18.0: + version "7.18.2" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz" + integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== + +undici-types@~8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz" + integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== + +undici@^8.0.0: + version "8.10.0" + resolved "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz" + integrity sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ== + +unified@^11.0.0, unified@^11.0.5: + version "11.0.5" + resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" + integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + 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" + +unifont@~0.7.5: + version "0.7.5" + resolved "https://registry.npmjs.org/unifont/-/unifont-0.7.5.tgz" + integrity sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg== + dependencies: + css-tree "^3.1.0" + ohash "^2.0.11" + undici "^8.0.0" + +unist-util-find-after@^5.0.0: + 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== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-is@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz" + integrity sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + 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== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0, unist-util-visit-parents@^6.0.1: + 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== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0, unist-util-visit@^5.1.0: + 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== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +unstorage@^1.17.5: + version "1.17.5" + resolved "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz" + integrity sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg== + 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" + +url-extras@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/url-extras/-/url-extras-0.1.0.tgz" + integrity sha512-8tzwTeXFPuX/5PHuCDQE5Dd9Ts4rwoq2t9aIT+HS4iAVpmj5l4Ao7Q+BuuFjvWRqrLswBhQDk8O96ZicgCqQqw== + +url-template@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/url-template/-/url-template-3.1.1.tgz" + integrity sha512-4oszoaEKE/mQOtAmdMWqIRHmkxWkUZMnXFnjQ5i01CuRSK3uluxcH1MRVVVWmhlnzT1SCDfKxxficm2G37qzCA== + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +vfile-message@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0, vfile@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +vite@^8.0.13: + version "8.2.2" + resolved "https://registry.npmjs.org/vite/-/vite-8.2.2.tgz" + integrity sha512-cFKLV/PRgAUlIRm5WjMjJ86jrftzpqcgH+Us+DS8mI3CDNiH30Whrz8uHL3+MOLPAgqbMBAqWdAHAphOAM+z/Q== + dependencies: + lightningcss "^1.33.0" + picomatch "^4.0.5" + postcss "^8.5.26" + rolldown "~1.2.4" + tinyglobby "^0.2.17" + optionalDependencies: + fsevents "~2.3.3" + +vitefu@^1.1.2: + version "1.1.3" + resolved "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz" + integrity sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg== + +w3c-keyname@^2.2.4: + version "2.2.8" + resolved "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz" + integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +xxhash-wasm@^1.1.0: + 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== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaml@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz" + integrity sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-parser@^22.0.0: + 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== + +yargs@^17.4.0: + version "17.7.3" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz" + integrity sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz" + integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== + +zod@^4.3.6, zod@^4.5.4: + version "4.5.4" + resolved "https://registry.npmjs.org/zod/-/zod-4.5.4.tgz" + integrity sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA== + +zwitch@^2.0.0, zwitch@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==