diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 32620c0d..6de4deb7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,34 +9,36 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: '18' - - - name: Install Bun - run: | - curl -fsSL https://bun.sh/install | bash - echo "$HOME/.bun/bin" >> $GITHUB_PATH - - - name: Install dependencies - run: bun install && bun install:pulse-ru && bun install:pulse-en - - - name: Build project - run: bun run build:all - - - name: Deploy to server - uses: easingthemes/ssh-deploy@main - with: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - ARGS: "-rlgoDzvc -i" - SOURCE: "dist/*" - REMOTE_HOST: ${{ secrets.REMOTE_HOST }} - REMOTE_USER: ${{ secrets.REMOTE_USER }} - REMOTE_PORT: ${{ secrets.REMOTE_PORT }} - TARGET: ${{ secrets.REMOTE_TARGET }} - SCRIPT_BEFORE: | - rm -rf ${{ secrets.REMOTE_TARGET }}/* + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' + + - name: Install dependencies + run: npm ci + + - name: Build project + run: npm run build + + - name: Copy static files + run: cp -r .next/static .next/standalone/.next/ + + - name: Deploy to server + uses: easingthemes/ssh-deploy@main + with: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + ARGS: "-rlgoDzvc -i" + SOURCE: ".next/standalone/*" + REMOTE_HOST: ${{ secrets.REMOTE_HOST }} + REMOTE_USER: ${{ secrets.REMOTE_USER }} + REMOTE_PORT: ${{ secrets.REMOTE_PORT }} + TARGET: ${{ secrets.REMOTE_TARGET }} + SCRIPT_BEFORE: | + pm2 stop next-app 2>/dev/null || true + rm -rf ${{ secrets.REMOTE_TARGET }}/* + SCRIPT_AFTER: | + cd ${{ secrets.REMOTE_TARGET }} + pm2 start server.js --name "next-app" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 302a97c2..9245ddff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,36 +1,44 @@ -# build output -dist/ - -# generated types -.astro/ -package-lock.json -bun.lock +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -node_modules/ +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ +/.source + +# production +/build + +# misc +.DS_Store +*.pem -# logs +# debug npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* - -# environment variables -.env -.env.production +.pnpm-debug.log* -# macOS-specific files -.DS_Store +# env files (can opt-in for committing if needed) +.env* -# jetbrains setting folder -.idea/ +# vercel .vercel -FlectonePulseDocs.iml -.vitepress/dist/* -/.idea/* -/pulse/ru/.vitepress/dist/ -/pulse/ru/.vitepress/cache/ -/pulse/en/.vitepress/dist/ -/pulse/en/.vitepress/cache/ -/.vscode/* +# typescript +*.tsbuildinfo +next-env.d.ts + + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f2ee9f15..67b5b926 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # 🤝 Contributing to Flectone Web -Thanks for wanting to help! Here’s how to get started. +Thanks for wanting to help! Here’s how to get started with our Next.js & Fumadocs based project. --- @@ -8,7 +8,10 @@ Thanks for wanting to help! Here’s how to get started. 1. **Fork the repo** on GitHub. 2. **Clone your fork** locally. -3. **Install dependencies** using Bun. +3. **Install dependencies** using npm: + ```bash + npm install + ``` 4. **Create a branch** for your changes. 5. **Make your changes** and test them. 6. **Commit and push** your changes. @@ -23,27 +26,36 @@ Thanks for wanting to help! Here’s how to get started. - Include screenshots or logs if needed. ### Code Contributions -- Follow existing code style. -- Test your changes. +- Follow existing code style (we use ESLint). +- Test your changes by running the development server. - Keep PRs focused on one issue or feature. +- If you are adding documentation for **Pulse**, place it in `src/pulse/` or relevant `[lang]` directories. ### Documentation -- Fix typos, outdated info, or unclear sections. +- We use **MDX** with **Fumadocs**. +- Use `` tags for reusable parts and localizations where possible, following the pattern in existing `.mdx` files. +- Fix typos, outdated info, or unclear sections in `src/messages/` (JSON) or content files. --- ## 🚀 Development ### Running the Project -- Start Astro dev server: `bun run dev` -- Start VitePress (RU): `bun run dev:pulse` -- Start VitePress (EN): `bun run dev:en-pulse` +- Start the development server: + ```bash + npm run dev + ``` +- The site will be available at `http://localhost:3000`. ### Building the Project -- Build Astro: `bun run build` -- Build VitePress (RU): `bun run build:pulse` -- Build VitePress (EN): `bun run build:en-pulse` -- Build everything: `bun run build:all` +- Build the Next.js application: + ```bash + npm run build + ``` +- To check for production errors locally: + ```bash + npm run start + ``` --- @@ -51,10 +63,10 @@ Thanks for wanting to help! Here’s how to get started. - PRs will be reviewed by maintainers. - Feedback will be provided if changes are needed. -- Once approved, your changes will be merged. +- Once approved, your changes will be merged into the main branch. --- ## 🙏 Thanks! -Your contributions make Flectone Web better. Happy coding! 🚀 +Your contributions make Flectone Web better. Happy coding! 🚀 \ No newline at end of file diff --git a/README.md b/README.md index fca42854..838837f6 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,14 @@
- Flectone Logo + Flectone Logo # ⚡️ Flectone Web -🚀 Modern web solution for Flectone Network +🚀 Modern web solution for Flectone Network built with Next.js -[![Built with Astro](https://astro.badg.es/v2/built-with-astro/tiny.svg)](https://astro.build) -[![Powered by Bun](https://img.shields.io/badge/Powered%20by-Bun-orange)](https://bun.sh) +[![Built with Next.js](https://img.shields.io/badge/Built%20with-Next.js-black?logo=next.js)](https://nextjs.org) [![Website Status](https://img.shields.io/website?url=https%3A%2F%2Fflectone.net)](https://flectone.net) [![License](https://img.shields.io/badge/license-GPLv3-blue)](LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/Flectone/FlectoneWeb?style=social)](https://github.com/Flectone/FlectoneWeb/stargazers) -[![GitHub Forks](https://img.shields.io/github/forks/Flectone/FlectoneWeb?style=social)](https://github.com/Flectone/FlectoneWeb/network/members)
@@ -20,49 +18,49 @@ Here’s a quick overview of the project structure: ```bash FlectoneWeb/ -├── src/ # Astro project source files -│ ├── assets/ # Static assets (images, fonts, etc.) -│ ├── components/ # Reusable UI components -│ ├── layouts/ # Layout templates -│ ├── pages/ # Application pages and routes -│ └── styles/ # Global styles and CSS +├── src/ +│ ├── app/ # Next.js App Router (Pages, API, Layouts) +│ │ ├── (main)/ # Main website routes (about, chat, mix) +│ │ └── pulse/ # Documentation routes +│ ├── components/ # Reusable React components +│ ├── i18n/ # Internationalization configuration +│ ├── lib/ # Shared utilities and hooks +│ ├── messages/ # Localization files (JSON) +│ ├── pulse/ # Documentation content (MDX) +│ └── styles/ # Global styles and Tailwind CSS │ -├── pulse/ # VitePress documentation -│ ├── en/ # (EN) -│ └── ru/ # (RU) -│ -├── dist/ # Production build output -├── public/ # Public static files -└── package.json # Project dependencies and scripts +├── public/ # Static assets +├── source.config.ts # Fumadocs configuration +└── package.json # Project dependencies and scripts ``` ## 🎯 Overview -Flectone Web is a modern, fast, and responsive web solution built for **Flectone Network**. It combines the power of **Astro** for the main frontend and **VitePress** for documentation, providing an excellent developer and user experience. +Flectone Web is a high-performance web solution for **Flectone Network**. It utilizes **Next.js 16+** with App Router for the core site and **Fumadocs** for a seamless, searchable documentation experience (Pulse). ## ✨ Key Features -- **🌍 Multi-language Support**: Fully localized for RU and EN audiences. -- **⚡️ Blazing Fast Performance**: Optimized for speed with Astro and Vite. -- **🎨 Modern UI**: Clean, responsive design with dark/light themes. -- **📚 Comprehensive Documentation**: Built with VitePress for easy maintenance. -- **🚀 Easy Deployment**: Pre-configured build scripts for seamless deployment. +- **Multi-language Support**: Full i18n support for global reach. +- **Next.js 16 Power**: Server Components, Streaming, and Optimized Caching. +- **Integrated Docs**: "Pulse" documentation built directly into the app. +- **Modern UI**: Responsive design with Tailwind CSS. +- **Fast Performance**: Optimized for Core Web Vitals. ## 🛠️ Tech Stack | Category | Technologies | -|----------------|-----------------------------------------------------------------------------| -| **Core** | ![Astro](https://img.shields.io/badge/Astro-BC52EE?logo=astro&logoColor=white) ![React](https://img.shields.io/badge/React-61DAFB?logo=react&logoColor=black) | +|----------------|------------------------------------------------| +| **Core** | ![Next.js](https://img.shields.io/badge/Next.js-000000?logo=next.js&logoColor=white) ![React](https://img.shields.io/badge/React-61DAFB?logo=react&logoColor=black) | | **Styling** | ![TailwindCSS](https://img.shields.io/badge/TailwindCSS-38B2AC?logo=tailwind-css&logoColor=white) | -| **Runtime** | ![Bun](https://img.shields.io/badge/Bun-000000?logo=bun&logoColor=white) | -| **Docs** | ![VitePress](https://img.shields.io/badge/VitePress-646CFF?logo=vite&logoColor=white) | +| **Language** | ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white) | +| **Docs** | ![Fumadocs](https://img.shields.io/badge/Fumadocs-blue?style=flat) | ## 🚀 Quick Start ### Prerequisites -- **Node.js** (v18 or higher) -- **Bun** (v1.0 or higher) +- **Node.js** (v18.17 or higher) +- **npm** or **yarn** ### Installation @@ -74,86 +72,28 @@ Flectone Web is a modern, fast, and responsive web solution built for **Flectone 2. Install dependencies: ```bash - bun install && bun install:pulse-ru && bun install:pulse-en -``` -### Development - -- **Start Astro development server**: -```bash - bun run dev + npm install ``` -- **Start VitePress development server (RU docs)**: -```bash - bun run dev:pulse-ru -``` +### Development -- **Start VitePress development server (EN docs)**: +Start the development server: ```bash - bun run dev:pulse-en + npm run dev ``` ### Build -- **Build Astro project**: +Build for production: ```bash - bun run build + npm run build ``` -- **Build VitePress docs (RU)**: +Preview production build: ```bash - bun run build:pulse-ru + npm run start ``` -- **Build VitePress docs (EN)**: -```bash - bun run build:pulse-en -``` - -- **Copy built docs to Astro dist folder**: -```bash - bun run copy:pulse -``` - -- **Build everything (Astro + VitePress docs)**: -```bash - bun run build:all -``` - -### Preview - -- **Preview Astro build**: -```bash - bun run preview -``` - -- **Preview VitePress docs (RU)**: -```bash - bun run preview:pulse-ru -``` - -- **Preview VitePress docs (EN)**: -```bash - bun run preview:pulse-en -``` - -## 📜 Scripts Reference - -| Script | Description | -|--------------------|------------------------------------------------| -| `dev` | Start Astro development server | -| `dev:pulse-ru` | Start VitePress dev server for RU docs | -| `dev:pulse-en` | Start VitePress dev server for EN docs | -| `build` | Build Astro project | -| `build:pulse-ru` | Build RU VitePress docs | -| `build:pulse-en` | Build EN VitePress docs | -| `build:all` | Build everything (Astro + VitePress docs) | -| `copy:pulse` | Copy built VitePress docs to Astro dist folder | -| `preview` | Preview Astro build | -| `preview:pulse-ru` | Preview RU VitePress docs | -| `preview:pulse-en` | Preview EN VitePress docs | - - ## 🤝 Contributing We welcome contributions! Please read our [Contributing Guidelines](CONTRIBUTING.md) to get started. diff --git a/astro-i18next.config.ts b/astro-i18next.config.ts deleted file mode 100644 index 217e821b..00000000 --- a/astro-i18next.config.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default { - defaultLocale: "ru", - locales: ["en", "fr"], -}; diff --git a/astro.config.mjs b/astro.config.mjs deleted file mode 100644 index 9a03c53a..00000000 --- a/astro.config.mjs +++ /dev/null @@ -1,43 +0,0 @@ -// @ts-check -import { defineConfig } from "astro/config"; - -import react from "@astrojs/react"; - -import tailwindcss from "@astrojs/tailwind"; - -import { viteStaticCopy } from "vite-plugin-static-copy"; - -// https://astro.build/config -export default defineConfig({ - integrations: [ - react(), - tailwindcss({ - applyBaseStyles: false, - }), - ], - i18n: { - locales: ["en", "ru"], - defaultLocale: "ru", - }, - - build: { - assets: '_astro', - }, - - vite: { - plugins: [ - viteStaticCopy({ - targets: [ - { - src: [ - 'src/assets/**/*', - '!src/assets/chat/**', - '!src/assets/mix/**', - ], - dest: 'assets', - } - ] - }) - ] - } -}); diff --git a/components.json b/components.json deleted file mode 100644 index 9bcfb145..00000000 --- a/components.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema.json", - "style": "new-york", - "rsc": false, - "tsx": true, - "tailwind": { - "config": "tailwind.config.js", - "css": "src/styles/globals.css", - "baseColor": "neutral", - "cssVariables": true, - "prefix": "" - }, - "aliases": { - "components": "@/components", - "utils": "@/lib/utils", - "ui": "@/components/ui", - "lib": "@/lib", - "hooks": "@/hooks" - }, - "iconLibrary": "lucide" -} \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..199c0ecf --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,16 @@ +import { defineConfig, globalIgnores } from "eslint/config"; +import nextVitals from "eslint-config-next/core-web-vitals"; +import nextTs from "eslint-config-next/typescript"; + +const eslintConfig = defineConfig([ + ...nextVitals, + ...nextTs, + globalIgnores([ + ".next/**", + "out/**", + "build/**", + "next-env.d.ts", + ]), +]); + +export default eslintConfig; diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 00000000..b1046bb5 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,29 @@ +import createNextIntlPlugin from 'next-intl/plugin'; +import { createMDX } from 'fumadocs-mdx/next'; + + +const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts'); + +/** @type {import('next').NextConfig} */ +const config = { + reactStrictMode: true, + output: 'standalone', + images: { + remotePatterns: [ + { + protocol: 'https', + hostname: 'github.com', + }, + { + protocol: 'https', + hostname: 'flectone.net', + } + ], + }, +}; + +const withMDX = createMDX({ + configPath: "source.config.ts" +}); + +export default withNextIntl(withMDX(config)); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 60c9306b..41a3c6f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,44 +1,52 @@ { "name": "flectoneweb", - "version": "1.1.0", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "flectoneweb", - "version": "1.1.0", + "version": "2.0.0", "dependencies": { - "@astrojs/react": "^4.2.0", - "@astrojs/tailwind": "^6.0.0", - "@radix-ui/react-avatar": "^1.1.2", - "@radix-ui/react-dialog": "^1.1.5", - "@radix-ui/react-dropdown-menu": "^2.1.5", - "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "^1.1.2", - "@rollup/rollup-win32-x64-msvc": "^4.34.1", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", - "astro": "^5.2.3", - "bun": "^1.2.22", + "@radix-ui/react-slot": "^1.2.4", + "@types/mdx": "^2.0.13", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "embla-carousel-autoplay": "^8.5.2", - "embla-carousel-react": "^8.5.2", - "lucide-react": "^0.474.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "tailwind-merge": "^3.0.1", - "tailwindcss": "3.4.17", + "framer-motion": "^12.23.24", + "fumadocs-core": "^16.4.1", + "fumadocs-mdx": "^14.2.3", + "fumadocs-ui": "^16.4.1", + "lucide-react": "^0.562.0", + "next": "^16.0.7", + "next-intl": "^4.5.6", + "next-svg": "^1.0.7", + "next-themes": "^0.4.6", + "nextra-theme-docs": "^4.6.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-icons": "^5.5.0", + "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "vite-plugin-static-copy": "^2.3.1" + "@svgr/webpack": "^8.1.0", + "@tailwindcss/postcss": "^4", + "@types/js-yaml": "^4.0.9", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "@types/unist": "^3.0.3", + "eslint": "^9", + "eslint-config-next": "16.0.4", + "tailwindcss": "^4", + "typescript": "^5" } }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -47,110 +55,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@astrojs/compiler": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.0.tgz", - "integrity": "sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==", - "license": "MIT" - }, - "node_modules/@astrojs/internal-helpers": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.3.tgz", - "integrity": "sha512-6Pl0bQEIChuW5wqN7jdKrzWfCscW2rG/Cz+fzt4PhSQX2ivBpnhXgFUCs0M3DCYvjYHnPVG2W36X5rmFjZ62sw==", - "license": "MIT" - }, - "node_modules/@astrojs/markdown-remark": { - "version": "6.3.7", - "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.7.tgz", - "integrity": "sha512-KXGdq6/BC18doBCYXp08alHlWChH0hdD2B1qv9wIyOHbvwI5K6I7FhSta8dq1hBQNdun8YkKPR013D/Hm8xd0g==", - "license": "MIT", - "dependencies": { - "@astrojs/internal-helpers": "0.7.3", - "@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.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.2", - "remark-smartypants": "^3.0.2", - "shiki": "^3.12.2", - "smol-toml": "^1.4.2", - "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" - } - }, - "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" - }, - "engines": { - "node": "18.20.8 || ^20.3.0 || >=22.0.0" - } - }, - "node_modules/@astrojs/react": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@astrojs/react/-/react-4.4.0.tgz", - "integrity": "sha512-RzblkVImAFdV1C0AWsSWzS70Z0FMtW2p0XXkNYu3QePfyVJta3JIy8m8jY8271etaCZtpFjsE2UaiHGZIBm6nw==", - "license": "MIT", - "dependencies": { - "@vitejs/plugin-react": "^4.7.0", - "ultrahtml": "^1.6.0", - "vite": "^6.3.6" - }, - "engines": { - "node": "18.20.8 || ^20.3.0 || >=22.0.0" - }, - "peerDependencies": { - "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0", - "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0", - "react": "^17.0.2 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@astrojs/tailwind": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-6.0.2.tgz", - "integrity": "sha512-j3mhLNeugZq6A8dMNXVarUa8K6X9AW+QHU9u3lKNrPLMHhOQ0S7VeWhHwEeJFpEK1BTKEUY1U78VQv2gN6hNGg==", - "license": "MIT", - "dependencies": { - "autoprefixer": "^10.4.21", - "postcss": "^8.5.3", - "postcss-load-config": "^4.0.2" - }, - "peerDependencies": { - "astro": "^3.0.0 || ^4.0.0 || ^5.0.0", - "tailwindcss": "^3.0.24" - } - }, - "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==", + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", "license": "MIT", + "peer": true, "dependencies": { - "ci-info": "^4.2.0", - "debug": "^4.4.0", - "dlv": "^1.1.3", - "dset": "^3.1.4", - "is-docker": "^3.0.0", - "is-wsl": "^3.1.0", - "which-pm-runs": "^1.1.0" + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" }, - "engines": { - "node": "18.20.8 || ^20.3.0 || >=22.0.0" + "funding": { + "url": "https://github.com/sponsors/antfu" } }, "node_modules/@babel/code-frame": { @@ -168,29 +84,29 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", - "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.4", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.4", - "@babel/types": "^7.28.4", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -207,13 +123,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -222,6 +138,18 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", @@ -238,6 +166,60 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", @@ -247,6 +229,19 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -277,6 +272,18 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-plugin-utils": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", @@ -286,6 +293,53 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -296,9 +350,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -313,6 +367,20 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helpers": { "version": "7.28.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", @@ -327,12 +395,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.4" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -341,25 +409,26 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -368,5383 +437,13538 @@ "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@capsizecss/unpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-2.4.0.tgz", - "integrity": "sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "license": "MIT", - "dependencies": { - "blob-to-buffer": "^1.2.8", - "cross-fetch": "^3.0.4", - "fontkit": "^2.0.2" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "license": "MIT", - "optional": true, "dependencies": { - "tslib": "^2.4.0" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", - "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "license": "MIT", - "optional": true, - "os": [ - "aix" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", - "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", - "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", - "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", - "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", - "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", - "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", - "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", - "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", - "cpu": [ - "arm" - ], + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", - "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", - "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", - "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", - "cpu": [ - "loong64" - ], + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", - "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", - "cpu": [ - "mips64el" - ], + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", - "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", - "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", - "cpu": [ - "riscv64" - ], + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", - "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", - "cpu": [ - "s390x" - ], + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", - "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", - "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", - "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", - "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", - "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", - "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", - "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", - "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", - "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", - "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@floating-ui/core": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", - "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.10" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@floating-ui/dom": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", - "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.3", - "@floating-ui/utils": "^0.2.10" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", - "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.7.4" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@floating-ui/utils": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", - "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", - "license": "MIT" + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "license": "MIT", - "optional": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz", - "integrity": "sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.3" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz", - "integrity": "sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.3" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", + "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.5", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.4", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz", + "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==", + "license": "MIT", + "peer": true + }, + "node_modules/@chevrotain/cst-dts-gen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz", + "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@chevrotain/gast": "11.0.3", + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/cst-dts-gen/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "peer": true + }, + "node_modules/@chevrotain/gast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz", + "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@chevrotain/types": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/@chevrotain/gast/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "peer": true + }, + "node_modules/@chevrotain/regexp-to-ast": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz", + "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@chevrotain/types": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz", + "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@chevrotain/utils": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz", + "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/@emnapi/core": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", + "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.26.28", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", + "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", + "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.2", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/ecma402-abstract/node_modules/@formatjs/fast-memoize": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/ecma402-abstract/node_modules/@formatjs/intl-localematcher": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-3.0.1.tgz", + "integrity": "sha512-kzk635kEmsxrrEWQXY7uKRocFCVXR4es5OQqcqCGg2NPtQztG/OBkE9THHu6UOTxpfyIkZhh6DjPBZGRp7y3og==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.7.3.tgz", + "integrity": "sha512-NaeABectKdTCOnlH9VFGmMS3K0JuR7Soc2t5R2MCkBrM3H/hlKVYh0XSrcjjPkbjIdrF7L/Bzx9JtGuVaSfYlA==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "3.0.1", + "tslib": "^2.8.0" + } + }, + "node_modules/@fumadocs/ui": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/@fumadocs/ui/-/ui-16.4.2.tgz", + "integrity": "sha512-cjeLclc4NQaGFkpDfFlustFSIeyNkrjj83gz0TvET+q8xKjRNZQPEc7EI+LdB313Dm51c+OUwFLYw95aiZhvJQ==", + "license": "MIT", + "dependencies": { + "fumadocs-core": "16.4.2", + "next-themes": "^0.4.6", + "postcss-selector-parser": "^7.1.1", + "tailwind-merge": "^3.4.0" + }, + "peerDependencies": { + "@types/react": "*", + "next": "16.x.x", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "tailwindcss": "^4.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "next": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@headlessui/react": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.9.tgz", + "integrity": "sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.26.16", + "@react-aria/focus": "^3.20.2", + "@react-aria/interactions": "^3.25.0", + "@tanstack/react-virtual": "^3.13.9", + "use-sync-external-store": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT", + "peer": true + }, + "node_modules/@iconify/utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.1.0.tgz", + "integrity": "sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@antfu/install-pkg": "^1.1.0", + "@iconify/types": "^2.0.0", + "mlly": "^1.8.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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "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/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@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": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mermaid-js/parser": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.3.tgz", + "integrity": "sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==", + "license": "MIT", + "peer": true, + "dependencies": { + "langium": "3.3.1" + } + }, + "node_modules/@napi-rs/simple-git": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.22.tgz", + "integrity": "sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@napi-rs/simple-git-android-arm-eabi": "0.1.22", + "@napi-rs/simple-git-android-arm64": "0.1.22", + "@napi-rs/simple-git-darwin-arm64": "0.1.22", + "@napi-rs/simple-git-darwin-x64": "0.1.22", + "@napi-rs/simple-git-freebsd-x64": "0.1.22", + "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.22", + "@napi-rs/simple-git-linux-arm64-gnu": "0.1.22", + "@napi-rs/simple-git-linux-arm64-musl": "0.1.22", + "@napi-rs/simple-git-linux-ppc64-gnu": "0.1.22", + "@napi-rs/simple-git-linux-s390x-gnu": "0.1.22", + "@napi-rs/simple-git-linux-x64-gnu": "0.1.22", + "@napi-rs/simple-git-linux-x64-musl": "0.1.22", + "@napi-rs/simple-git-win32-arm64-msvc": "0.1.22", + "@napi-rs/simple-git-win32-ia32-msvc": "0.1.22", + "@napi-rs/simple-git-win32-x64-msvc": "0.1.22" + } + }, + "node_modules/@napi-rs/simple-git-android-arm-eabi": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.22.tgz", + "integrity": "sha512-JQZdnDNm8o43A5GOzwN/0Tz3CDBQtBUNqzVwEopm32uayjdjxev1Csp1JeaqF3v9djLDIvsSE39ecsN2LhCKKQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-android-arm64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.22.tgz", + "integrity": "sha512-46OZ0SkhnvM+fapWjzg/eqbJvClxynUpWYyYBn4jAj7GQs1/Yyc8431spzDmkA8mL0M7Xo8SmbkzTDE7WwYAfg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-darwin-arm64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.22.tgz", + "integrity": "sha512-zH3h0C8Mkn9//MajPI6kHnttywjsBmZ37fhLX/Fiw5XKu84eHA6dRyVtMzoZxj6s+bjNTgaMgMUucxPn9ktxTQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-darwin-x64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.22.tgz", + "integrity": "sha512-GZN7lRAkGKB6PJxWsoyeYJhh85oOOjVNyl+/uipNX8bR+mFDCqRsCE3rRCFGV9WrZUHXkcuRL2laIRn7lLi3ag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-freebsd-x64": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-freebsd-x64/-/simple-git-freebsd-x64-0.1.22.tgz", + "integrity": "sha512-xyqX1C5I0WBrUgZONxHjZH5a4LqQ9oki3SKFAVpercVYAcx3pq6BkZy1YUOP4qx78WxU1CCNfHBN7V+XO7D99A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.22.tgz", + "integrity": "sha512-4LOtbp9ll93B9fxRvXiUJd1/RM3uafMJE7dGBZGKWBMGM76+BAcCEUv2BY85EfsU/IgopXI6n09TycRfPWOjxA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-arm64-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.22.tgz", + "integrity": "sha512-GVOjP/JjCzbQ0kSqao7ctC/1sodVtv5VF57rW9BFpo2y6tEYPCqHnkQkTpieuwMNe+TVOhBUC1+wH0d9/knIHg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-arm64-musl": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.22.tgz", + "integrity": "sha512-MOs7fPyJiU/wqOpKzAOmOpxJ/TZfP4JwmvPad/cXTOWYwwyppMlXFRms3i98EU3HOazI/wMU2Ksfda3+TBluWA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-ppc64-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-ppc64-gnu/-/simple-git-linux-ppc64-gnu-0.1.22.tgz", + "integrity": "sha512-L59dR30VBShRUIZ5/cQHU25upNgKS0AMQ7537J6LCIUEFwwXrKORZKJ8ceR+s3Sr/4jempWVvMdjEpFDE4HYww==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-s390x-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-s390x-gnu/-/simple-git-linux-s390x-gnu-0.1.22.tgz", + "integrity": "sha512-4FHkPlCSIZUGC6HiADffbe6NVoTBMd65pIwcd40IDbtFKOgFMBA+pWRqKiQ21FERGH16Zed7XHJJoY3jpOqtmQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-x64-gnu": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.22.tgz", + "integrity": "sha512-Ei1tM5Ho/dwknF3pOzqkNW9Iv8oFzRxE8uOhrITcdlpxRxVrBVptUF6/0WPdvd7R9747D/q61QG/AVyWsWLFKw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-linux-x64-musl": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.22.tgz", + "integrity": "sha512-zRYxg7it0p3rLyEJYoCoL2PQJNgArVLyNavHW03TFUAYkYi5bxQ/UFNVpgxMaXohr5yu7qCBqeo9j4DWeysalg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-win32-arm64-msvc": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.22.tgz", + "integrity": "sha512-XGFR1fj+Y9cWACcovV2Ey/R2xQOZKs8t+7KHPerYdJ4PtjVzGznI4c2EBHXtdOIYvkw7tL5rZ7FN1HJKdD5Quw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-win32-ia32-msvc": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-ia32-msvc/-/simple-git-win32-ia32-msvc-0.1.22.tgz", + "integrity": "sha512-Gqr9Y0gs6hcNBA1IXBpoqTFnnIoHuZGhrYqaZzEvGMLrTrpbXrXVEtX3DAAD2RLc1b87CPcJ49a7sre3PU3Rfw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/simple-git-win32-x64-msvc": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.22.tgz", + "integrity": "sha512-hQjcreHmUcpw4UrtkOron1/TQObfe484lxiXFLLUj7aWnnnOVs1mnXq5/Bo9+3NYZldFpFRJPdPBeHCisXkKJg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@next/env": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.1.tgz", + "integrity": "sha512-3oxyM97Sr2PqiVyMyrZUtrtM3jqqFxOQJVuKclDsgj/L728iZt/GyslkN4NwarledZATCenbk4Offjk1hQmaAA==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.0.4.tgz", + "integrity": "sha512-0emoVyL4Z5NEkRNb63ko/BqLC9OFULcY7mJ3lSerBCqgh/UFcjnvodyikV2bTl7XygwcamJxJAfxCo1oAVfH6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.1.tgz", + "integrity": "sha512-JS3m42ifsVSJjSTzh27nW+Igfha3NdBOFScr9C80hHGrWx55pTrVL23RJbqir7k7/15SKlrLHhh/MQzqBBYrQA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.1.tgz", + "integrity": "sha512-hbyKtrDGUkgkyQi1m1IyD3q4I/3m9ngr+V93z4oKHrPcmxwNL5iMWORvLSGAf2YujL+6HxgVvZuCYZfLfb4bGw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.1.tgz", + "integrity": "sha512-/fvHet+EYckFvRLQ0jPHJCUI5/B56+2DpI1xDSvi80r/3Ez+Eaa2Yq4tJcRTaB1kqj/HrYKn8Yplm9bNoMJpwQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.1.tgz", + "integrity": "sha512-MFHrgL4TXNQbBPzkKKur4Fb5ICEJa87HM7fczFs2+HWblM7mMLdco3dvyTI+QmLBU9xgns/EeeINSZD6Ar+oLg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.1.tgz", + "integrity": "sha512-20bYDfgOQAPUkkKBnyP9PTuHiJGM7HzNBbuqmD0jiFVZ0aOldz+VnJhbxzjcSabYsnNjMPsE0cyzEudpYxsrUQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.1.tgz", + "integrity": "sha512-9pRbK3M4asAHQRkwaXwu601oPZHghuSC8IXNENgbBSyImHv/zY4K5udBusgdHkvJ/Tcr96jJwQYOll0qU8+fPA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.1.tgz", + "integrity": "sha512-bdfQkggaLgnmYrFkSQfsHfOhk/mCYmjnrbRCGgkMcoOBZ4n+TRRSLmT/CU5SATzlBJ9TpioUyBW/vWFXTqQRiA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.33.tgz", + "integrity": "sha512-pc9LpGNKhJ0dXQhZ5QMmYxtARwwmWLpeocFmVG5Z0DzWq5Uf0izcI8tLc+qOpqxO1PWqZ5A7J1blrUIKrIFc7Q==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.1.tgz", + "integrity": "sha512-Ncwbw2WJ57Al5OX0k4chM68DKhEPlrXBaSXDCi2kPi5f4d8b3ejr3RRJGfKBLrn2YJL5ezNS7w2TZLHSti8CMw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@orama/orama": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.18.tgz", + "integrity": "sha512-a61ljmRVVyG5MC/698C8/FfFDw5a8LOIvyOLW5fztgUXqUpc1jOfQzOitSCbge657OgXXThmY3Tk8fpiDb4UcA==", + "license": "Apache-2.0", + "engines": { + "node": ">= 20.0.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/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==", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz", - "integrity": "sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, + "node_modules/@react-aria/focus": { + "version": "3.21.3", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.3.tgz", + "integrity": "sha512-FsquWvjSCwC2/sBk4b+OqJyONETUIXQ2vM0YdPAuC+QFQh2DT6TIBo6dOZVSezlhudDla69xFBd6JvCFq1AbUw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.26.0", + "@react-aria/utils": "^3.32.0", + "@react-types/shared": "^3.32.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.26.0.tgz", + "integrity": "sha512-AAEcHiltjfbmP1i9iaVw34Mb7kbkiHpYdqieWufldh4aplWgsF11YQZOfaCJW4QoR2ML4Zzoa9nfFwLXA52R7Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.32.0", + "@react-stately/flags": "^3.1.2", + "@react-types/shared": "^3.32.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz", + "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.32.0.tgz", + "integrity": "sha512-/7Rud06+HVBIlTwmwmJa2W8xVtgxgzm0+kLbuFooZRzKDON6hhozS1dOMR/YLMxyJOaYOTpImcP4vRR9gL1hEg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.32.1", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/flags": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz", + "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.11.0.tgz", + "integrity": "sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/shared": { + "version": "3.32.1", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.32.1.tgz", + "integrity": "sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@schummar/icu-type-parser": { + "version": "1.21.5", + "resolved": "https://registry.npmjs.org/@schummar/icu-type-parser/-/icu-type-parser-1.21.5.tgz", + "integrity": "sha512-bXHSaW5jRTmke9Vd0h5P7BtWZG9Znqb8gSDxZnxaGSJnGwPLDPfS+3g0BKzeWqzgZPsIVZkM7m2tbo18cm5HBw==", + "license": "MIT" + }, + "node_modules/@shikijs/core": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.20.0.tgz", + "integrity": "sha512-f2ED7HYV4JEk827mtMDwe/yQ25pRiXZmtHjWF8uzZKuKiEsJR7Ce1nuQ+HhV9FzDcbIo4ObBCD9GPTzNuy9S1g==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.20.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.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.20.0.tgz", + "integrity": "sha512-OFx8fHAZuk7I42Z9YAdZ95To6jDePQ9Rnfbw9uSRTSbBhYBp1kEOKv/3jOimcj3VRUKusDYM6DswLauwfhboLg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.20.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.4" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.20.0.tgz", + "integrity": "sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.20.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.20.0.tgz", + "integrity": "sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.20.0" + } + }, + "node_modules/@shikijs/rehype": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/rehype/-/rehype-3.20.0.tgz", + "integrity": "sha512-/sqob3V/lJK0m2mZ64nkcWPN88im0D9atkI3S3PUBvtJZTHnJXVwZhHQFRDyObgEIa37IpHYHR3CuFtXB5bT2g==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.20.0", + "@types/hast": "^3.0.4", + "hast-util-to-string": "^3.0.1", + "shiki": "3.20.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.20.0.tgz", + "integrity": "sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.20.0" + } + }, + "node_modules/@shikijs/transformers": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-3.20.0.tgz", + "integrity": "sha512-PrHHMRr3Q5W1qB/42kJW6laqFyWdhrPF2hNR9qjOm1xcSiAO3hAHo7HaVyHE6pMyevmy3i51O8kuGGXC78uK3g==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.20.0", + "@shikijs/types": "3.20.0" + } + }, + "node_modules/@shikijs/twoslash": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-3.20.0.tgz", + "integrity": "sha512-fZz6vB9a0M8iuVF/ydIV4ToC09sbOh/TqxXZFWAh5J8bLiPsyQGtygKMDQ9L0Sdop3co0TIC/JsrLmsbmZwwsw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@shikijs/core": "3.20.0", + "@shikijs/types": "3.20.0", + "twoslash": "^0.3.4" + }, + "peerDependencies": { + "typescript": ">=5.5.0" + } + }, + "node_modules/@shikijs/types": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.20.0.tgz", + "integrity": "sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "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/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.8.tgz", + "integrity": "sha512-M9cK5GwyWWRkRGwwCbREuj6r8jKdES/haCZ3Xckgkl8MUQJZA3XB7IXXK1IXRNeLjg6m7cnoMICpXv1v1hlJOg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.8.tgz", + "integrity": "sha512-j47DasuOvXl80sKJHSi2X25l44CMc3VDhlJwA7oewC1nV1VsSzwX+KOwE5tLnfORvVJJyeiXgJORNYg4jeIjYQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.8.tgz", + "integrity": "sha512-siAzDENu2rUbwr9+fayWa26r5A9fol1iORG53HWxQL1J8ym4k7xt9eME0dMPXlYZDytK5r9sW8zEA10F2U3Xwg==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.8.tgz", + "integrity": "sha512-o+1y5u6k2FfPYbTRUPvurwzNt5qd0NTumCTFscCNuBksycloXY16J8L+SMW5QRX59n4Hp9EmFa3vpvNHRVv1+Q==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.8.tgz", + "integrity": "sha512-koiCqL09EwOP1S2RShCI7NbsQuG6r2brTqUYE7pV7kZm9O17wZ0LSz22m6gVibpwEnw8jI3IE1yYsQTVpluALw==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.8.tgz", + "integrity": "sha512-4p6lOMU3bC+Vd5ARtKJ/FxpIC5G8v3XLoPEZ5s7mLR8h7411HWC/LmTXDHcrSXRC55zvAVia1eldy6zDLz8iFQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.8.tgz", + "integrity": "sha512-z3XBnbrZAL+6xDGAhJoN4lOueIxC/8rGrJ9tg+fEaeqLEuAtHSW2QHDHxDwkxZMjuF/pZ6MUTjHjbp8wLbuRLA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.8.tgz", + "integrity": "sha512-djQPJ9Rh9vP8GTS/Df3hcc6XP6xnG5c8qsngWId/BLA9oX6C7UzCPAn74BG/wGb9a6j4w3RINuoaieJB3t+7iQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.8.tgz", + "integrity": "sha512-/wfAgxORg2VBaUoFdytcVBVCgf1isWZIEXB9MZEUty4wwK93M/PxAkjifOho9RN3WrM3inPLabICRCEgdHpKKQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.8.tgz", + "integrity": "sha512-GpMePrh9Sl4d61o4KAHOOv5is5+zt6BEXCOCgs/H0FLGeii7j9bWDE8ExvKFy2GRRZVNR1ugsnzaGWHKM6kuzA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.25", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", + "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", + "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.1", + "lightningcss": "1.30.2", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.18" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", + "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-arm64": "4.1.18", + "@tailwindcss/oxide-darwin-x64": "4.1.18", + "@tailwindcss/oxide-freebsd-x64": "4.1.18", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", + "@tailwindcss/oxide-linux-x64-musl": "4.1.18", + "@tailwindcss/oxide-wasm32-wasi": "4.1.18", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz", + "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz", + "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz", + "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz", + "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz", + "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz", + "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz", + "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz", + "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz", + "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz", + "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.1.0", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz", + "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz", + "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.18.tgz", + "integrity": "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.1.18", + "@tailwindcss/oxide": "4.1.18", + "postcss": "^8.4.41", + "tailwindcss": "4.1.18" + } + }, + "node_modules/@tanstack/react-virtual": { + "version": "3.13.14", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.14.tgz", + "integrity": "sha512-WG0d7mBD54eA7dgA3+sO5csS0B49QKqM6Gy5Rf31+Oq/LTKROQSao9m2N/vz1IqVragOKU5t5k1LAcqh/DfTxw==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.13.14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.13.14", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.14.tgz", + "integrity": "sha512-b5Uvd8J2dc7ICeX9SRb/wkCxWk7pUwN214eEPAQsqrsktSKTCmyLxOQWSMgogBByXclZeAdgZ3k4o0fIYUIBqQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@theguild/remark-mermaid": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.3.0.tgz", + "integrity": "sha512-Fy1J4FSj8totuHsHFpaeWyWRaRSIvpzGTRoEfnNJc1JmLV9uV70sYE3zcT+Jj5Yw20Xq4iCsiT+3Ho49BBZcBQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "mermaid": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "react": "^18.2.0 || ^19.0.0" + } + }, + "node_modules/@theguild/remark-npm2yarn": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.3.tgz", + "integrity": "sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==", + "license": "MIT", + "peer": true, + "dependencies": { + "npm-to-yarn": "^3.0.0", + "unist-util-visit": "^5.0.0" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.28.1.tgz", + "integrity": "sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==", + "license": "MIT", + "peer": true, + "dependencies": { + "minimatch": "^10.0.1", + "path-browserify": "^1.0.1", + "tinyglobby": "^0.2.14" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "license": "BlueOak-1.0.0", + "peer": true, + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-array": "*", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-dispatch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.7.tgz", + "integrity": "sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-dsv": "*" + } + }, + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@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/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "license": "MIT", + "peer": true + }, + "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/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==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "20.19.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz", + "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz", + "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "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", + "optional": true, + "peer": true + }, + "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/@typescript-eslint/eslint-plugin": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.51.0.tgz", + "integrity": "sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/type-utils": "8.51.0", + "@typescript-eslint/utils": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.51.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.51.0.tgz", + "integrity": "sha512-3xP4XzzDNQOIqBMWogftkwxhg5oMKApqY0BAflmLZiFYHqyhSOxv/cd/zPQLTcCXr4AkaKb25joocY0BD1WC6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.51.0.tgz", + "integrity": "sha512-Luv/GafO07Z7HpiI7qeEW5NW8HUtZI/fo/kE0YbtQEFpJRUuR0ajcWfCE5bnMvL7QQFrmT/odMe8QZww8X2nfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.51.0", + "@typescript-eslint/types": "^8.51.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.51.0.tgz", + "integrity": "sha512-JhhJDVwsSx4hiOEQPeajGhCWgBMBwVkxC/Pet53EpBVs7zHHtayKefw1jtPaNRXpI9RA2uocdmpdfE7T+NrizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.51.0.tgz", + "integrity": "sha512-Qi5bSy/vuHeWyir2C8u/uqGMIlIDu8fuiYWv48ZGlZ/k+PRPHtaAu7erpc7p5bzw2WNNSniuxoMSO4Ar6V9OXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.51.0.tgz", + "integrity": "sha512-0XVtYzxnobc9K0VU7wRWg1yiUrw4oQzexCG2V2IDxxCxhqBMSMbjB+6o91A+Uc0GWtgjCa3Y8bi7hwI0Tu4n5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.51.0.tgz", + "integrity": "sha512-TizAvWYFM6sSscmEakjY3sPqGwxZRSywSsPEiuZF6d5GmGD9Gvlsv0f6N8FvAAA0CD06l3rIcWNbsN1e5F/9Ag==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.51.0.tgz", + "integrity": "sha512-1qNjGqFRmlq0VW5iVlcyHBbCjPB7y6SxpBkrbhNWMy/65ZoncXCEPJxkRZL8McrseNH6lFhaxCIaX+vBuFnRng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.51.0", + "@typescript-eslint/tsconfig-utils": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/visitor-keys": "8.51.0", + "debug": "^4.3.4", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.51.0.tgz", + "integrity": "sha512-11rZYxSe0zabiKaCP2QAwRf/dnmgFgvTmeDTtZvUvXG3UuAdg/GU02NExmmIXzz3vLGgMdtrIosI84jITQOxUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.51.0", + "@typescript-eslint/types": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.51.0.tgz", + "integrity": "sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.51.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript/vfs": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.2.tgz", + "integrity": "sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.1.1" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "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/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", "cpu": [ "arm64" ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@xmldom/xmldom": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz", + "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=14.6" + } + }, + "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" + }, + "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_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?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", + "peer": true + }, + "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-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz", + "integrity": "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz", + "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/better-react-mathjax": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/better-react-mathjax/-/better-react-mathjax-2.3.0.tgz", + "integrity": "sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==", + "license": "MIT", + "peer": true, + "dependencies": { + "mathjax-full": "^3.2.2" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001762", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz", + "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chevrotain": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", + "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@chevrotain/cst-dts-gen": "11.0.3", + "@chevrotain/gast": "11.0.3", + "@chevrotain/regexp-to-ast": "11.0.3", + "@chevrotain/types": "11.0.3", + "@chevrotain/utils": "11.0.3", + "lodash-es": "4.17.21" + } + }, + "node_modules/chevrotain-allstar": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz", + "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==", + "license": "MIT", + "peer": true, + "dependencies": { + "lodash-es": "^4.17.21" + }, + "peerDependencies": { + "chevrotain": "^11.0.0" + } + }, + "node_modules/chevrotain/node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT", + "peer": true + }, + "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/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clipboardy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", + "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", + "license": "MIT", + "peer": true, + "dependencies": { + "execa": "^8.0.1", + "is-wsl": "^3.1.0", + "is64bit": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "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", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "license": "MIT", + "peer": true + }, + "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==", + "license": "MIT", "funding": { - "url": "https://opencollective.com/libvips" + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT", + "peer": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cose-base": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz", + "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==", + "license": "MIT", + "peer": true, + "dependencies": { + "layout-base": "^1.0.0" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "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", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "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/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/cytoscape": { + "version": "3.33.1", + "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", + "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cytoscape-cose-bilkent": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz", + "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "cose-base": "^1.0.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz", + "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "cose-base": "^2.2.0" + }, + "peerDependencies": { + "cytoscape": "^3.2.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/cose-base": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz", + "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==", + "license": "MIT", + "peer": true, + "dependencies": { + "layout-base": "^2.0.0" + } + }, + "node_modules/cytoscape-fcose/node_modules/layout-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz", + "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==", + "license": "MIT", + "peer": true + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "peer": true, + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "peer": true, + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz", - "integrity": "sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz", - "integrity": "sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz", - "integrity": "sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/d3-dsv/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 10" } }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz", - "integrity": "sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "peer": true, + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz", - "integrity": "sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz", - "integrity": "sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-sankey": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz", + "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-array": "1 - 2", + "d3-shape": "^1.2.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-sankey/node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/d3-sankey/node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-sankey/node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC", + "peer": true + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" } }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz", - "integrity": "sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "peer": true, + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz", - "integrity": "sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/dagre-d3-es": { + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.13.tgz", + "integrity": "sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "d3": "^7.9.0", + "lodash-es": "^4.17.21" } }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz", - "integrity": "sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.3" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz", - "integrity": "sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.3" + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz", - "integrity": "sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.3" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz", - "integrity": "sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/dayjs": { + "version": "1.11.19", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", + "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "license": "MIT", + "peer": true + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.3" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz", - "integrity": "sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">= 0.4" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.3" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz", - "integrity": "sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.3" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz", - "integrity": "sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==", - "cpu": [ - "x64" - ], + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", + "peer": true, + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "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": { - "url": "https://opencollective.com/libvips" + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.3" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz", - "integrity": "sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, + "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": { - "@emnapi/runtime": "^1.5.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz", - "integrity": "sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">= 4" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz", - "integrity": "sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/dompurify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", + "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" } }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz", - "integrity": "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "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://opencollective.com/libvips" + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "license": "ISC" + }, + "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, "license": "MIT" }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/enhanced-resolve": { + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.13.0" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, + "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": ">=12" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "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==", + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "is-arrayish": "^0.2.1" } }, - "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==", + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "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==", + "dev": true, "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">= 0.4" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" - }, - "node_modules/@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==", + "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==", + "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "engines": { + "node": ">= 0.4" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/es-iterator-helpers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", + "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", + "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.1", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "safe-array-concat": "^1.1.3" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, "engines": { - "node": ">= 8" + "node": ">= 0.4" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "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==", + "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" } }, - "node_modules/@oslojs/encoding": { + "node_modules/es-shim-unscopables": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", - "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", - "license": "MIT" - }, - "node_modules/@oven/bun-darwin-aarch64": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.2.22.tgz", - "integrity": "sha512-YCJkV2/vO5VVTQdwxLQrkW/yU4FAMWd3AXU3Z+TfoeYkHye5d2dIaBRXEPrOzrq1LQ2esN6ZhGfwYu2lVMTVRw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@oven/bun-darwin-x64": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64/-/bun-darwin-x64-1.2.22.tgz", - "integrity": "sha512-LhazlsoNOhjirQT303zKG5cli65FR5WweZgGRL0LoxH/ZWTwlYxpTCOBJ6/euV8YLMaGDNQfIfRLFARK5NqXng==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@oven/bun-darwin-x64-baseline": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.2.22.tgz", - "integrity": "sha512-l8OHOXKZKCZaRDb5gxE8qRfccq6zi7j1xJiSI5P86qXW8jPoQbf+pPCoP8NgeyzeHqluWJoN0mqgCsSdp5dzWQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@oven/bun-linux-aarch64": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.2.22.tgz", - "integrity": "sha512-JdC5nvmQh0rbUC46FY5uSF4SKYcY2LX5S66ZZvWdFp8R+6WnNc3Jr1hd5NcRW9qBVQ/JHi8oedrky9BtT8tzMA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oven/bun-linux-aarch64-musl": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64-musl/-/bun-linux-aarch64-musl-1.2.22.tgz", - "integrity": "sha512-Dc4/CsUgufxIwQKo8vVFtUvNSZIqVgogj7cg8GIXdNsanO/vckv8qspyLHuQB5E2Nye4nXorD76ixKuwkPTAMw==", - "cpu": [ - "aarch64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@oven/bun-linux-x64": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64/-/bun-linux-x64-1.2.22.tgz", - "integrity": "sha512-U3h5zPw0stPl1qi7sGk8hL1r2QXH73HJBTLBHpeJ+PlfhfX/QIWnL/qK2c5Prm4jh2e/Tkw8bwL7NZ4iE9cVEQ==", - "cpu": [ - "x64" - ], + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/@oven/bun-linux-x64-baseline": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.2.22.tgz", - "integrity": "sha512-sww8Sqc0Zq94wa95ouNC5weMRXIFt32gB3+xXXw6o52Uf7TeNrYriQr+o68D7A5YXk9DSDFaTknwYTYwYw/lmQ==", - "cpu": [ - "x64" - ], + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@oven/bun-linux-x64-musl": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl/-/bun-linux-x64-musl-1.2.22.tgz", - "integrity": "sha512-h76y0mrs1dnpjVxZTzoREa9cRdf029aKP0TxRMgABH3aRm2UBgUfgh0qyTsRhnHd4+gl6X2Vn0nfStZTNWGEFQ==", - "cpu": [ - "x64" - ], + "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==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/@oven/bun-linux-x64-musl-baseline": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl-baseline/-/bun-linux-x64-musl-baseline-1.2.22.tgz", - "integrity": "sha512-iQgG4wCSkHQ0CrEPsLMsCWoM1hewybJHVP5d3UaASwHcfuvd7N7hODZyz59tfMaGxZygyxIXQhgz32p37zDsEg==", - "cpu": [ - "x64" - ], + "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==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/@oven/bun-windows-x64": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-windows-x64/-/bun-windows-x64-1.2.22.tgz", - "integrity": "sha512-u+MIs0yj8Euv2ScFuqmbL54n4uJ+ZMK2nkAwkzumu6oUG0wRzIaSxAv61bO70Q1lTWX4dXLfoJhADJ1HdiGpTQ==", - "cpu": [ - "x64" - ], + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "hasInstallScript": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } }, - "node_modules/@oven/bun-windows-x64-baseline": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.2.22.tgz", - "integrity": "sha512-9NgPAoht79/rex2C4IJ4N9BFpNupXS5WdKMKda0tBB/xjQkEZbSZ01wpS7PF4yHPwWsUZI0g7xP8NcNHT3nDcw==", - "cpu": [ - "x64" - ], + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "engines": { + "node": ">=6" + } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "license": "MIT", - "optional": true, "engines": { - "node": ">=14" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", - "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", - "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "node_modules/eslint": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.3" + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "jiti": "*" }, "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { + "jiti": { "optional": true } } }, - "node_modules/@radix-ui/react-avatar": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", - "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", + "node_modules/eslint-config-next": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.0.4.tgz", + "integrity": "sha512-FknAsm/uexYriO6UXzV2QEm4Yz/5DVQCtMUHx0FRYAKqqf5ia8xPqdyoqXzoCc45nRF5brkFpBYMvtciavzD4g==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-is-hydrated": "0.1.0", - "@radix-ui/react-use-layout-effect": "1.1.1" + "@next/eslint-plugin-next": "16.0.4", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^7.0.0", + "globals": "16.4.0", + "typescript-eslint": "^8.46.0" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "eslint": ">=9.0.0", + "typescript": ">=3.3.1" }, "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { + "typescript": { "optional": true } } }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", - "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "node_modules/eslint-config-next/node_modules/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" }, "peerDependenciesMeta": { - "@types/react": { + "eslint-plugin-import": { "optional": true }, - "@types/react-dom": { + "eslint-plugin-import-x": { "optional": true } } }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" }, "peerDependenciesMeta": { - "@types/react": { + "eslint": { "optional": true } } }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", - "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", - "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", - "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", - "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", - "license": "MIT", + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.16", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2" + "estraverse": "^5.1.0" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=4.0" } }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", - "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "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", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "@types/estree": "^1.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", - "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "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": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", - "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "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": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@radix-ui/react-menu": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", - "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "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": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", - "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "node_modules/estree-util-value-to-estree": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", "license": "MIT", "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-rect": "1.1.1", - "@radix-ui/react-use-size": "1.1.1", - "@radix-ui/rect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/estree": "^1.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/remcohaszing" } }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", - "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "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": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "license": "MIT", + "peer": true, "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=16.17" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">=8.6.0" } }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", - "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", - "license": "MIT", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "is-glob": "^4.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "engines": { + "node": ">= 6" } }, - "node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", "license": "MIT", + "peer": true, "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "format": "^0.2.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@radix-ui/react-switch": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", - "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", + "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", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" + "engines": { + "node": ">=12.0.0" }, "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "picomatch": "^3 || ^4" }, "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { + "picomatch": { "optional": true } } }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", - "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "dependencies": { + "flat-cache": "^4.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "to-regex-range": "^5.0.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", - "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", - "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, "license": "MIT", "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=16" } }, - "node_modules/@radix-ui/react-use-is-hydrated": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", - "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, "license": "MIT", "dependencies": { - "use-sync-external-store": "^1.5.0" + "is-callable": "^1.2.7" }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "peer": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/framer-motion": { + "version": "12.23.26", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.26.tgz", + "integrity": "sha512-cPcIhgR42xBn1Uj+PzOyheMtZ73H927+uWPDVhUMqxy8UHt6Okavb6xIz9J/phFUHUj0OncR6UvMfJTXoc/LKA==", "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.23", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { - "@types/react": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { "optional": true } } }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", - "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "node_modules/fumadocs-core": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-16.4.2.tgz", + "integrity": "sha512-V6jepeDEgoGAVD1nrqt63ARdHyOB853jQOWpVl1cTheZjEW1iXD9HTVBllt254wrxaBgQLQLu6nbskg/sfBUIA==", "license": "MIT", + "dependencies": { + "@formatjs/intl-localematcher": "^0.7.2", + "@orama/orama": "^3.1.18", + "@shikijs/rehype": "^3.20.0", + "@shikijs/transformers": "^3.20.0", + "estree-util-value-to-estree": "^3.5.0", + "github-slugger": "^2.0.0", + "hast-util-to-estree": "^3.1.3", + "hast-util-to-jsx-runtime": "^2.3.6", + "image-size": "^2.0.2", + "negotiator": "^1.0.0", + "npm-to-yarn": "^3.0.1", + "path-to-regexp": "^8.3.0", + "remark": "^15.0.1", + "remark-gfm": "^4.0.1", + "remark-rehype": "^11.1.2", + "scroll-into-view-if-needed": "^3.1.0", + "shiki": "^3.20.0", + "tinyglobby": "^0.2.15", + "unist-util-visit": "^5.0.0" + }, "peerDependencies": { + "@mixedbread/sdk": "^0.46.0", + "@orama/core": "1.x.x", + "@tanstack/react-router": "1.x.x", "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "algoliasearch": "5.x.x", + "lucide-react": "*", + "next": "16.x.x", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-router": "7.x.x", + "waku": "^0.26.0 || ^0.27.0", + "zod": "*" }, "peerDependenciesMeta": { + "@mixedbread/sdk": { + "optional": true + }, + "@orama/core": { + "optional": true + }, + "@tanstack/react-router": { + "optional": true + }, "@types/react": { "optional": true + }, + "algoliasearch": { + "optional": true + }, + "lucide-react": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-router": { + "optional": true + }, + "waku": { + "optional": true + }, + "zod": { + "optional": true } } }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", - "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "node_modules/fumadocs-mdx": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/fumadocs-mdx/-/fumadocs-mdx-14.2.4.tgz", + "integrity": "sha512-YuDgzTopMuOOQmOhvOUfmXn2RryZY5Ev+9uwAzTBEYcLIpxIBxZl0/jHaLoYdlOMBM65AO6OBngA2SucC2hkIQ==", "license": "MIT", "dependencies": { - "@radix-ui/rect": "1.1.1" + "@mdx-js/mdx": "^3.1.1", + "@standard-schema/spec": "^1.1.0", + "chokidar": "^5.0.0", + "esbuild": "^0.27.2", + "estree-util-value-to-estree": "^3.5.0", + "js-yaml": "^4.1.1", + "mdast-util-to-markdown": "^2.1.2", + "picocolors": "^1.1.1", + "picomatch": "^4.0.3", + "remark-mdx": "^3.1.1", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.3", + "zod": "^4.2.1" + }, + "bin": { + "fumadocs-mdx": "dist/bin.js" }, "peerDependencies": { + "@fumadocs/mdx-remote": "^1.4.0", "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "fumadocs-core": "^15.0.0 || ^16.0.0", + "next": "^15.3.0 || ^16.0.0", + "react": "*", + "vite": "6.x.x || 7.x.x" }, "peerDependenciesMeta": { + "@fumadocs/mdx-remote": { + "optional": true + }, "@types/react": { "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "vite": { + "optional": true } } }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", - "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "node_modules/fumadocs-ui": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/fumadocs-ui/-/fumadocs-ui-16.4.2.tgz", + "integrity": "sha512-hVZiiJtME1zIJ6r+iQ9codC9pyn1MvU0t0fiXh7ziV2SeXVickkqFBhU+FBng9T7TJAAue+TRiCdQq8UVhgpMg==", "license": "MIT", "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" + "@fumadocs/ui": "16.4.2", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-direction": "^1.1.1", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-presence": "^1.1.5", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-tabs": "^1.1.13", + "class-variance-authority": "^0.7.1", + "fumadocs-core": "16.4.2", + "lucide-react": "^0.562.0", + "next-themes": "^0.4.6", + "react-medium-image-zoom": "^5.4.0", + "scroll-into-view-if-needed": "^3.1.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "react": "^19.2.0", + "react-dom": "^19.2.0", + "tailwindcss": "^4.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true + }, + "tailwindcss": { + "optional": true } } }, - "node_modules/@radix-ui/rect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", - "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", - "license": "MIT" - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "license": "MIT" + "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/@rollup/pluginutils": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.3.tgz", - "integrity": "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==", - "cpu": [ - "arm" - ], + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "engines": { + "node": ">= 0.4" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.3.tgz", - "integrity": "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==", - "cpu": [ - "arm64" - ], + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.3.tgz", - "integrity": "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==", - "cpu": [ - "arm64" - ], + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "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": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.3.tgz", - "integrity": "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==", - "cpu": [ - "x64" - ], + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "engines": { + "node": ">=6" + } }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.3.tgz", - "integrity": "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==", - "cpu": [ - "arm64" - ], + "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==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.3.tgz", - "integrity": "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==", - "cpu": [ - "x64" - ], + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "peer": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.3.tgz", - "integrity": "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==", - "cpu": [ - "arm" - ], + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.3.tgz", - "integrity": "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==", - "cpu": [ - "arm" - ], + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.3.tgz", - "integrity": "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==", - "cpu": [ - "arm64" - ], + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.3.tgz", - "integrity": "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "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==", + "license": "ISC" }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.3.tgz", - "integrity": "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==", - "cpu": [ - "loong64" - ], + "node_modules/hachure-fill": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz", + "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==", "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "peer": true }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.3.tgz", - "integrity": "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==", - "cpu": [ - "ppc64" - ], + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.3.tgz", - "integrity": "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==", - "cpu": [ - "riscv64" - ], + "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==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">=8" + } }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.3.tgz", - "integrity": "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==", - "cpu": [ - "riscv64" - ], + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.3.tgz", - "integrity": "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==", - "cpu": [ - "s390x" - ], + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.3.tgz", - "integrity": "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==", - "cpu": [ - "x64" - ], + "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==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.3.tgz", - "integrity": "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==", - "cpu": [ - "x64" - ], + "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==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.3.tgz", - "integrity": "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==", - "cpu": [ - "arm64" - ], + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.3.tgz", - "integrity": "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "node_modules/hast-util-from-dom": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz", + "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==", + "license": "ISC", + "peer": true, + "dependencies": { + "@types/hast": "^3.0.0", + "hastscript": "^9.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.3.tgz", - "integrity": "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==", - "cpu": [ - "ia32" - ], + "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", - "optional": true, - "os": [ - "win32" - ] + "peer": true, + "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/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.3.tgz", - "integrity": "sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==", - "cpu": [ - "x64" - ], + "node_modules/hast-util-from-html-isomorphic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", + "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "peer": true, + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-dom": "^5.0.0", + "hast-util-from-html": "^2.0.0", + "unist-util-remove-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.3.tgz", - "integrity": "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==", - "cpu": [ - "x64" - ], + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", "license": "MIT", - "os": [ - "win32" - ] + "peer": true, + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/@shikijs/core": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-3.13.0.tgz", - "integrity": "sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==", + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", "license": "MIT", + "peer": true, "dependencies": { - "@shikijs/types": "3.13.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.5" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@shikijs/engine-javascript": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-3.13.0.tgz", - "integrity": "sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==", + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", "license": "MIT", + "peer": true, "dependencies": { - "@shikijs/types": "3.13.0", - "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^4.3.3" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.13.0.tgz", - "integrity": "sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==", + "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", + "peer": true, "dependencies": { - "@shikijs/types": "3.13.0", - "@shikijs/vscode-textmate": "^10.0.2" + "@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/@shikijs/langs": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.13.0.tgz", - "integrity": "sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==", + "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", "dependencies": { - "@shikijs/types": "3.13.0" + "@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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@shikijs/themes": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.13.0.tgz", - "integrity": "sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==", + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", "license": "MIT", "dependencies": { - "@shikijs/types": "3.13.0" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@shikijs/types": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.13.0.tgz", - "integrity": "sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==", + "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": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "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/@swc/helpers": { - "version": "0.5.17", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", - "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" + "@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/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "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", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", "license": "MIT", "dependencies": { - "@babel/types": "^7.0.0" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.2" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", "license": "MIT", + "peer": true, "dependencies": { - "@types/ms": "*" + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, "license": "MIT" }, - "node_modules/@types/fontkit": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@types/fontkit/-/fontkit-2.0.8.tgz", - "integrity": "sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==", + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "hermes-estree": "0.25.1" } }, - "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/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", "license": "MIT", - "dependencies": { - "@types/unist": "*" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "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/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "license": "MIT", + "peer": true, "dependencies": { - "@types/unist": "*" + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "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/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/unist": "*" + "engines": { + "node": ">= 4" } }, - "node_modules/@types/node": { - "version": "24.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz", - "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==", + "node_modules/image-size": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", "license": "MIT", - "dependencies": { - "undici-types": "~7.12.0" + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" } }, - "node_modules/@types/react": { - "version": "19.1.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.14.tgz", - "integrity": "sha512-ukd93VGzaNPMAUPy0gRDSC57UuQbnH9Kussp7HBjM06YFi9uZTFhOvMSO2OKqXm1rSgzOE+pVx1k1PYHGwlc8Q==", + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { - "csstype": "^3.0.2" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@types/react-dom": { - "version": "19.1.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.9.tgz", - "integrity": "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" + "engines": { + "node": ">=0.8.19" } }, - "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==", + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", "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/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + "node": ">= 0.4" } }, - "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" - }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "peer": true, "engines": { - "node": ">=0.4.0" + "node": ">=12" } }, - "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", + "node_modules/intl-messageformat": { + "version": "10.7.18", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz", + "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "tslib": "^2.8.0" + } + }, + "node_modules/intl-messageformat/node_modules/@formatjs/fast-memoize": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", + "license": "MIT", "dependencies": { - "string-width": "^4.1.0" + "tslib": "^2.8.0" } }, - "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/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "license": "MIT", - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "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==", - "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/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "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/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "license": "MIT", - "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "license": "MIT" - }, - "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", + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "has-bigints": "^1.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "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/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-hidden": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", - "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, "license": "MIT", "dependencies": { - "tslib": "^2.0.0" + "semver": "^7.7.1" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "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", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" - } - }, - "node_modules/array-iterate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", - "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", - "license": "MIT", + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/astro": { - "version": "5.14.1", - "resolved": "https://registry.npmjs.org/astro/-/astro-5.14.1.tgz", - "integrity": "sha512-gPa8NY7/lP8j8g81iy8UwANF3+aukKRWS68IlthZQNgykpg80ne6lbHOp6FErYycxQ1TUhgEfkXVDQZAoJx8Bg==", + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "license": "MIT", "dependencies": { - "@astrojs/compiler": "^2.12.2", - "@astrojs/internal-helpers": "0.7.3", - "@astrojs/markdown-remark": "6.3.7", - "@astrojs/telemetry": "3.3.0", - "@capsizecss/unpack": "^2.4.0", - "@oslojs/encoding": "^1.1.0", - "@rollup/pluginutils": "^5.2.0", - "acorn": "^8.15.0", - "aria-query": "^5.3.2", - "axobject-query": "^4.1.0", - "boxen": "8.0.1", - "ci-info": "^4.3.0", - "clsx": "^2.1.1", - "common-ancestor-path": "^1.0.1", - "cookie": "^1.0.2", - "cssesc": "^3.0.0", - "debug": "^4.4.1", - "deterministic-object-hash": "^2.0.2", - "devalue": "^5.3.2", - "diff": "^5.2.0", - "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.3.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.0", - "kleur": "^4.1.5", - "magic-string": "^0.30.18", - "magicast": "^0.3.5", - "mrmime": "^2.0.1", - "neotraverse": "^0.6.18", - "p-limit": "^6.2.0", - "p-queue": "^8.1.0", - "package-manager-detector": "^1.3.0", - "picomatch": "^4.0.3", - "prompts": "^2.4.2", - "rehype": "^13.0.2", - "semver": "^7.7.2", - "shiki": "^3.12.0", - "smol-toml": "^1.4.2", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tsconfck": "^3.1.6", - "ultrahtml": "^1.6.0", - "unifont": "~0.5.2", - "unist-util-visit": "^5.0.0", - "unstorage": "^1.17.0", - "vfile": "^6.0.3", - "vite": "^6.3.6", - "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.24.6", - "zod-to-ts": "^1.2.0" - }, - "bin": { - "astro": "astro.js" + "hasown": "^2.0.2" }, "engines": { - "node": "18.20.8 || ^20.3.0 || >=22.0.0", - "npm": ">=9.6.5", - "pnpm": ">=7.1.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/astrodotbuild" - }, - "optionalDependencies": { - "sharp": "^0.34.0" - } - }, - "node_modules/astro/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">= 0.4" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "license": "Apache-2.0", + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "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/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.7.tgz", - "integrity": "sha512-bxxN2M3a4d1CRoQC//IqsR5XrLh0IJ8TCv2x6Y9N0nckNz/rTjZB3//GGscZziZOxmjP55rzxg/ze7usFI9FqQ==", - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "license": "MIT", + "peer": true, + "bin": { + "is-docker": "cli.js" + }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/blob-to-buffer": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/blob-to-buffer/-/blob-to-buffer-1.2.9.tgz", - "integrity": "sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "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/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, "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" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/brotli": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", - "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "license": "MIT", - "dependencies": { - "base64-js": "^1.1.2" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/browserslist": { - "version": "4.26.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", - "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "license": "MIT", + "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.8.3", - "caniuse-lite": "^1.0.30001741", - "electron-to-chromium": "^1.5.218", - "node-releases": "^2.0.21", - "update-browserslist-db": "^1.1.3" + "is-docker": "^3.0.0" }, "bin": { - "browserslist": "cli.js" + "is-inside-container": "cli.js" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bun": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/bun/-/bun-1.2.22.tgz", - "integrity": "sha512-NnU1TEiH9LLv1jE+84AJ7ZGimdQzLgzbZNvK3enNh5qUHqkgDm99SiA7tnJnzfJW5OWBdoZzKae2zXu0pwQ/kA==", - "cpu": [ - "arm64", - "x64", - "aarch64" - ], - "hasInstallScript": true, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, "license": "MIT", - "os": [ - "darwin", - "linux", - "win32" - ], - "bin": { - "bun": "bin/bun.exe", - "bunx": "bin/bunx.exe" + "engines": { + "node": ">= 0.4" }, - "optionalDependencies": { - "@oven/bun-darwin-aarch64": "1.2.22", - "@oven/bun-darwin-x64": "1.2.22", - "@oven/bun-darwin-x64-baseline": "1.2.22", - "@oven/bun-linux-aarch64": "1.2.22", - "@oven/bun-linux-aarch64-musl": "1.2.22", - "@oven/bun-linux-x64": "1.2.22", - "@oven/bun-linux-x64-baseline": "1.2.22", - "@oven/bun-linux-x64-musl": "1.2.22", - "@oven/bun-linux-x64-musl-baseline": "1.2.22", - "@oven/bun-windows-x64": "1.2.22", - "@oven/bun-windows-x64-baseline": "1.2.22" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "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/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=0.12.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001745", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001745.tgz", - "integrity": "sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "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": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/character-entities-legacy": { + "node_modules/is-stream": { "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==", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "license": "MIT", + "peer": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 0.4" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "which-typed-array": "^1.1.16" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ci-info": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", - "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", - "license": "Apache-2.0", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", "dependencies": { - "clsx": "^2.1.1" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://polar.sh/cva" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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", + "peer": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "node_modules/is64bit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", + "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", "license": "MIT", + "peer": true, + "dependencies": { + "system-architecture": "^0.1.0" + }, "engines": { - "node": ">=0.8" + "node": ">=18" + }, + "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", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" }, - "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==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.4" } }, - "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==", + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": ">= 6" + "node": ">=6" } }, - "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/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, "engines": { - "node": ">=18" + "node": ">=6" } }, - "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-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, "license": "MIT", "dependencies": { - "node-fetch": "^2.7.0" + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/katex": { + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], "license": "MIT", + "peer": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "commander": "^8.3.0" }, - "engines": { - "node": ">= 8" + "bin": { + "katex": "cli.js" } }, - "node_modules/crossws": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", - "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "license": "MIT", "dependencies": { - "uncrypto": "^0.1.3" + "json-buffer": "3.0.1" } }, - "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==", + "node_modules/khroma": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", + "peer": true + }, + "node_modules/langium": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz", + "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==", "license": "MIT", + "peer": true, "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" + "chevrotain": "~11.0.3", + "chevrotain-allstar": "~0.3.0", + "vscode-languageserver": "~9.0.1", + "vscode-languageserver-textdocument": "~1.0.11", + "vscode-uri": "~3.0.8" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": ">=16.0.0" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" + "dependencies": { + "language-subtag-registry": "^0.3.20" }, "engines": { - "node": ">=4" + "node": ">=0.10" } }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" + "node_modules/layout-base": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz", + "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==", + "license": "MIT", + "peer": true }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">= 0.8.0" } }, - "node_modules/decode-named-character-reference": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", - "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", - "license": "MIT", + "node_modules/lightningcss": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "dev": true, + "license": "MPL-2.0", "dependencies": { - "character-entities": "^2.0.0" + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", - "license": "MIT" - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/destr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", - "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", - "license": "MIT" - }, - "node_modules/detect-libc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz", - "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==", - "license": "Apache-2.0", + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "license": "MIT" - }, - "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" - }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/devalue": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.3.2.tgz", - "integrity": "sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==", - "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" + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/dfa": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", - "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", - "license": "MIT" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0" - }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "license": "BSD-3-Clause", + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.3.1" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "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/dset": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", - "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", - "license": "MIT", + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.224", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.224.tgz", - "integrity": "sha512-kWAoUu/bwzvnhpdZSIc6KUyvkI1rbRXMT0Eq8pKReyOyaPZcctMli+EgvcN1PAvwVc7Tdo4Fxi2PsLNDU05mdg==", - "license": "ISC" - }, - "node_modules/embla-carousel": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", - "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", - "license": "MIT" - }, - "node_modules/embla-carousel-autoplay": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/embla-carousel-autoplay/-/embla-carousel-autoplay-8.6.0.tgz", - "integrity": "sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==", - "license": "MIT", - "peerDependencies": { - "embla-carousel": "8.6.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/embla-carousel-react": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz", - "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==", - "license": "MIT", - "dependencies": { - "embla-carousel": "8.6.0", - "embla-carousel-reactive-utils": "8.6.0" + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/embla-carousel-reactive-utils": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz", - "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==", - "license": "MIT", - "peerDependencies": { - "embla-carousel": "8.6.0" + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/emoji-regex": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.5.0.tgz", - "integrity": "sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==", - "license": "MIT" - }, - "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "license": "BSD-2-Clause", + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.12" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "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==", - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", - "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=18" + "node": ">= 12.0.0" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.10", - "@esbuild/android-arm": "0.25.10", - "@esbuild/android-arm64": "0.25.10", - "@esbuild/android-x64": "0.25.10", - "@esbuild/darwin-arm64": "0.25.10", - "@esbuild/darwin-x64": "0.25.10", - "@esbuild/freebsd-arm64": "0.25.10", - "@esbuild/freebsd-x64": "0.25.10", - "@esbuild/linux-arm": "0.25.10", - "@esbuild/linux-arm64": "0.25.10", - "@esbuild/linux-ia32": "0.25.10", - "@esbuild/linux-loong64": "0.25.10", - "@esbuild/linux-mips64el": "0.25.10", - "@esbuild/linux-ppc64": "0.25.10", - "@esbuild/linux-riscv64": "0.25.10", - "@esbuild/linux-s390x": "0.25.10", - "@esbuild/linux-x64": "0.25.10", - "@esbuild/netbsd-arm64": "0.25.10", - "@esbuild/netbsd-x64": "0.25.10", - "@esbuild/openbsd-arm64": "0.25.10", - "@esbuild/openbsd-x64": "0.25.10", - "@esbuild/openharmony-arm64": "0.25.10", - "@esbuild/sunos-x64": "0.25.10", - "@esbuild/win32-arm64": "0.25.10", - "@esbuild/win32-ia32": "0.25.10", - "@esbuild/win32-x64": "0.25.10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "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==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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/lodash-es": { + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } + "peer": true }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "license": "MIT" }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, "license": "MIT" }, - "node_modules/fast-deep-equal": { - "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==", - "license": "MIT" + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "engines": { - "node": ">=8.6.0" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + "yallist": "^3.0.2" } }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "node_modules/lucide-react": { + "version": "0.562.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz", + "integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==", "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "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/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": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" + "node": ">=16" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/marked": { + "version": "16.4.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.2.tgz", + "integrity": "sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==", + "license": "MIT", + "peer": true, + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": ">=8" + "node": ">= 20" } }, - "node_modules/flattie": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", - "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "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==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/fontace": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.3.0.tgz", - "integrity": "sha512-czoqATrcnxgWb/nAkfyIrRp6Q8biYj7nGnL6zfhTcX+JKKpWHFBnb8uNMw/kZr7u++3Y3wYSYoZgHkCcsuBpBg==", - "license": "MIT", + "node_modules/mathjax-full": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", + "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", + "deprecated": "Version 4 replaces this package with the scoped package @mathjax/src", + "license": "Apache-2.0", + "peer": true, "dependencies": { - "@types/fontkit": "^2.0.8", - "fontkit": "^2.0.4" + "esm": "^3.2.25", + "mhchemparser": "^4.1.0", + "mj-context-menu": "^0.6.1", + "speech-rule-engine": "^4.0.6" } }, - "node_modules/fontkit": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-2.0.4.tgz", - "integrity": "sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==", + "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": { - "@swc/helpers": "^0.5.12", - "brotli": "^1.3.2", - "clone": "^2.1.2", - "dfa": "^1.2.0", - "fast-deep-equal": "^3.1.3", - "restructure": "^3.0.0", - "tiny-inflate": "^1.0.3", - "unicode-properties": "^1.4.0", - "unicode-trie": "^2.0.0" + "@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/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "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", - "engines": { - "node": "*" + "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": "patreon", - "url": "https://github.com/sponsors/rawify" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/fs-extra": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", - "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", - "dev": true, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", "license": "MIT", + "peer": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" }, - "engines": { - "node": ">=14.14" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "peer": true, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "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", - "engines": { - "node": ">=6.9.0" + "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/get-east-asian-width": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", - "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "license": "MIT", - "engines": { - "node": ">=18" + "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": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "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", - "engines": { - "node": ">=6" + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/github-slugger": { + "node_modules/mdast-util-gfm-table": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "license": "ISC" - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "license": "ISC", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "@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": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, - "engines": { - "node": ">=10.13.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", - "dev": true, - "license": "ISC" - }, - "node_modules/h3": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.4.tgz", - "integrity": "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==", + "node_modules/mdast-util-math": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", + "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", "license": "MIT", + "peer": true, "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.2", - "radix3": "^1.1.2", - "ufo": "^1.6.1", - "uncrypto": "^0.1.3" + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "longest-streak": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.1.0", + "unist-util-remove-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "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==", "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "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" }, - "engines": { - "node": ">= 0.4" + "funding": { + "type": "opencollective", + "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==", + "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==", "license": "MIT", "dependencies": { + "@types/estree-jsx": "^1.0.0", "@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" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", - "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "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==", "license": "MIT", "dependencies": { + "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^9.0.0", - "property-information": "^7.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" + "ccount": "^2.0.0", + "devlop": "^1.1.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" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "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==", "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0" + "@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" } }, - "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", - "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", + "@types/mdast": "^4.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", + "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", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-html": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", - "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", + "@types/mdast": "^4.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" + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/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==", + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "license": "MIT", "dependencies": { - "@types/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" + "@types/mdast": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-parse5/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==", + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "node_modules/hast-util-to-text": { + "node_modules/mermaid": { + "version": "11.12.2", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.2.tgz", + "integrity": "sha512-n34QPDPEKmaeCG4WDMGy0OT6PSyxKCfy2pJgShP+Qow2KLrvWjclwbc3yXfSIf4BanqWEhQEpngWwNp/XhZt6w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@braintree/sanitize-url": "^7.1.1", + "@iconify/utils": "^3.0.1", + "@mermaid-js/parser": "^0.6.3", + "@types/d3": "^7.4.3", + "cytoscape": "^3.29.3", + "cytoscape-cose-bilkent": "^4.1.0", + "cytoscape-fcose": "^2.2.0", + "d3": "^7.9.0", + "d3-sankey": "^0.12.3", + "dagre-d3-es": "7.0.13", + "dayjs": "^1.11.18", + "dompurify": "^3.2.5", + "katex": "^0.16.22", + "khroma": "^2.1.0", + "lodash-es": "^4.17.21", + "marked": "^16.2.1", + "roughjs": "^4.6.6", + "stylis": "^4.3.6", + "ts-dedent": "^2.2.0", + "uuid": "^11.1.0" + } + }, + "node_modules/mhchemparser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", + "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==", + "license": "Apache-2.0", + "peer": true + }, + "node_modules/micromark": { "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==", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "hast-util-is-element": "^3.0.0", - "unist-util-find-after": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "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/hastscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", - "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", "license": "MIT", + "peer": true, "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" + "fault": "^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/html-escaper": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", - "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", - "license": "MIT" - }, - "node_modules/html-void-elements": { + "node_modules/micromark-extension-gfm": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "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": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "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/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/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": "github", - "url": "https://github.com/sponsors/wooorm" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/iron-webcrypto": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", - "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "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": { - "url": "https://github.com/sponsors/brc-dd" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-binary-path": { + "node_modules/micromark-extension-gfm-strikethrough": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "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" }, - "engines": { - "node": ">=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "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": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" + "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": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "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==", + "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", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "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", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "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": { - "is-extglob": "^2.1.1" + "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" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", "license": "MIT", + "peer": true, "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.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": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" + "type": "opencollective", + "url": "https://opencollective.com/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==", + "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==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "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/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==", + "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": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" + "@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": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/isexe": { + "node_modules/micromark-extension-mdx-md": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "license": "BlueOak-1.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": { - "@isaacs/cliui": "^8.0.2" + "micromark-util-types": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "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==", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "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", + "micromark-util-types": "^2.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "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==", "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^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" }, - "engines": { - "node": ">=6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.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==", + "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", - "engines": { - "node": ">=6" + "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/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { - "yallist": "^3.0.2" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/lucide-react": { - "version": "0.474.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.474.0.tgz", - "integrity": "sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/magicast": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", - "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.4", - "@babel/types": "^7.25.4", - "source-map-js": "^1.2.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "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/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "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==", + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-symbol": "^2.0.0" } }, - "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==", + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@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" + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/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==", + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-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/mdast": "^4.0.0", + "@types/estree": "^1.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", + "estree-util-visit": "^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" + "vfile-message": "^4.0.0" } }, - "node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/mdast-util-gfm-autolink-literal": { + "node_modules/micromark-util-normalize-identifier": { "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==", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@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" + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@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" + "micromark-util-types": "^2.0.0" } }, - "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==", + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@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" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "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/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "license": "MIT", "dependencies": { - "@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" + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8.6" } }, - "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==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" + "engines": { + "node": ">=8.6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" + "peer": true, + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", "dependencies": { - "@types/mdast": "^4.0.0" + "brace-expansion": "^1.1.7" }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "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/mj-context-menu": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", + "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==", + "license": "Apache-2.0", + "peer": true }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/mlly": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", + "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", "license": "MIT", - "engines": { - "node": ">= 8" + "peer": true, + "dependencies": { + "acorn": "^8.15.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.1" } }, - "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/motion-dom": { + "version": "12.23.23", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.23.tgz", + "integrity": "sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==", "license": "MIT", "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "motion-utils": "^12.23.6" } }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "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" + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "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==", + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, "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" + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/napi-postinstall" } }, - "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==", + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/next/-/next-16.1.1.tgz", + "integrity": "sha512-QI+T7xrxt1pF6SQ/JYFz95ro/mg/1Znk5vBebsWwbpejj1T0A23hO7GYEaVac9QUOT2BIMiuzm0L99ooq7k0/w==", "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" + "@next/env": "16.1.1", + "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.8.3", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=20.9.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "16.1.1", + "@next/swc-darwin-x64": "16.1.1", + "@next/swc-linux-arm64-gnu": "16.1.1", + "@next/swc-linux-arm64-musl": "16.1.1", + "@next/swc-linux-x64-gnu": "16.1.1", + "@next/swc-linux-x64-musl": "16.1.1", + "@next/swc-win32-arm64-msvc": "16.1.1", + "@next/swc-win32-x64-msvc": "16.1.1", + "sharp": "^0.34.4" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } } }, - "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==", + "node_modules/next-intl": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/next-intl/-/next-intl-4.6.1.tgz", + "integrity": "sha512-KlWgWtKLBPUsTPgxqwyjws1wCMD2QKxLlVjeeGj53DC1JWfKmBShKOrhIP0NznZrRQ0GleeoDUeHSETmyyIFeA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/amannn" + } + ], "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" + "@formatjs/intl-localematcher": "^0.5.4", + "@parcel/watcher": "^2.4.1", + "@swc/core": "^1.15.2", + "negotiator": "^1.0.0", + "next-intl-swc-plugin-extractor": "^4.6.1", + "po-parser": "^2.0.0", + "use-intl": "^4.6.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "next": "^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0", + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "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==", + "node_modules/next-intl-swc-plugin-extractor": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/next-intl-swc-plugin-extractor/-/next-intl-swc-plugin-extractor-4.6.1.tgz", + "integrity": "sha512-+HHNeVERfSvuPDF7LYVn3pxst5Rf7EYdUTw7C7WIrYhcLaKiZ1b9oSRkTQddAN3mifDMCfHqO4kAQ/pcKiBl3A==", + "license": "MIT" + }, + "node_modules/next-intl/node_modules/@formatjs/intl-localematcher": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz", + "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==", "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" + "tslib": "2" + } + }, + "node_modules/next-intl/node_modules/@swc/core": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.8.tgz", + "integrity": "sha512-T8keoJjXaSUoVBCIjgL6wAnhADIb09GOELzKg10CjNg+vLX48P93SME6jTfte9MZIm5m+Il57H3rTSk/0kzDUw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.25" + }, + "engines": { + "node": ">=10" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.15.8", + "@swc/core-darwin-x64": "1.15.8", + "@swc/core-linux-arm-gnueabihf": "1.15.8", + "@swc/core-linux-arm64-gnu": "1.15.8", + "@swc/core-linux-arm64-musl": "1.15.8", + "@swc/core-linux-x64-gnu": "1.15.8", + "@swc/core-linux-x64-musl": "1.15.8", + "@swc/core-win32-arm64-msvc": "1.15.8", + "@swc/core-win32-ia32-msvc": "1.15.8", + "@swc/core-win32-x64-msvc": "1.15.8" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } } }, - "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", + "node_modules/next-intl/node_modules/@swc/helpers": { + "version": "0.5.18", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.18.tgz", + "integrity": "sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==", + "license": "Apache-2.0", + "optional": true, + "peer": true, "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" + "tslib": "^2.8.0" } }, - "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", + "node_modules/next-svg": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/next-svg/-/next-svg-1.0.7.tgz", + "integrity": "sha512-NjwEp7UmjuzurD0DWkIGp7QK6GIgE4ms169er/QBpLZB2J44F8h4cQYN1GdanfP1s0GbvJ9yGVspfUTKdolmTA==", + "license": "ISC", "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@svgr/webpack": "^8.1.0", + "next": "^14.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" } }, - "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==", + "node_modules/next-svg/node_modules/@next/env": { + "version": "14.2.35", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.35.tgz", + "integrity": "sha512-DuhvCtj4t9Gwrx80dmz2F4t/zKQ4ktN8WrMwOuVzkJfBilwAwGr6v16M5eI8yCuZ63H9TTuEU09Iu2HqkzFPVQ==", + "license": "MIT" + }, + "node_modules/next-svg/node_modules/@next/swc-darwin-arm64": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.33.tgz", + "integrity": "sha512-HqYnb6pxlsshoSTubdXKu15g3iivcbsMXg4bYpjL2iS/V6aQot+iyF4BUc2qA/J/n55YtvE4PHMKWBKGCF/+wA==", + "cpu": [ + "arm64" + ], "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" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/next-svg/node_modules/@next/swc-darwin-x64": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.33.tgz", + "integrity": "sha512-8HGBeAE5rX3jzKvF593XTTFg3gxeU4f+UWnswa6JPhzaR6+zblO5+fjltJWIZc4aUalqTclvN2QtTC37LxvZAA==", + "cpu": [ + "x64" ], "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/next-svg/node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.33.tgz", + "integrity": "sha512-JXMBka6lNNmqbkvcTtaX8Gu5by9547bukHQvPoLe9VRBx1gHwzf5tdt4AaezW85HAB3pikcvyqBToRTDA4DeLw==", + "cpu": [ + "arm64" ], "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/next-svg/node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.33.tgz", + "integrity": "sha512-Bm+QulsAItD/x6Ih8wGIMfRJy4G73tu1HJsrccPW6AfqdZd0Sfm5Imhgkgq2+kly065rYMnCOxTBvmvFY1BKfg==", + "cpu": [ + "arm64" ], "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/next-svg/node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.33.tgz", + "integrity": "sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg==", + "cpu": [ + "x64" ], "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/next-svg/node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.33.tgz", + "integrity": "sha512-345tsIWMzoXaQndUTDv1qypDRiebFxGYx9pYkhwY4hBRaOLt8UGfiWKr9FSSHs25dFIf8ZqIFaPdy5MljdoawA==", + "cpu": [ + "x64" ], "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/next-svg/node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.33.tgz", + "integrity": "sha512-nscpt0G6UCTkrT2ppnJnFsYbPDQwmum4GNXYTeoTIdsmMydSKFz9Iny2jpaRupTb+Wl298+Rh82WKzt9LCcqSQ==", + "cpu": [ + "arm64" ], "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" } }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } + "node_modules/next-svg/node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.33", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.33.tgz", + "integrity": "sha512-nOjfZMy8B94MdisuzZo9/57xuFVLHJaDj5e/xrduJp9CV2/HrfxTRH2fbyLe+K9QT41WBLUd4iXX3R7jBp0EUg==", + "cpu": [ + "x64" ], "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/next-svg/node_modules/@swc/helpers": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "license": "Apache-2.0", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" } }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/next-svg/node_modules/next": { + "version": "14.2.35", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.35.tgz", + "integrity": "sha512-KhYd2Hjt/O1/1aZVX3dCwGXM1QmOV4eNM2UTacK5gipDdPN/oHHK/4oVGy7X8GMfPMsUTUEmGlsy0EY1YGAkig==", "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "@next/env": "14.2.35", + "@swc/helpers": "0.5.5", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.2.33", + "@next/swc-darwin-x64": "14.2.33", + "@next/swc-linux-arm64-gnu": "14.2.33", + "@next/swc-linux-arm64-musl": "14.2.33", + "@next/swc-linux-x64-gnu": "14.2.33", + "@next/swc-linux-x64-musl": "14.2.33", + "@next/swc-win32-arm64-msvc": "14.2.33", + "@next/swc-win32-ia32-msvc": "14.2.33", + "@next/swc-win32-x64-msvc": "14.2.33" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "sass": { + "optional": true + } } }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "node_modules/next-svg/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/next-svg/node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/next-svg/node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" } }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "node_modules/next-svg/node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/next-svg/node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "babel-plugin-macros": { + "optional": true } - ], - "license": "MIT" + } }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "node_modules/next-themes": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { - "micromark-util-symbol": "^2.0.0" + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/nextra": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/nextra/-/nextra-4.6.1.tgz", + "integrity": "sha512-yz5WMJFZ5c58y14a6Rmwt+SJUYDdIgzWSxwtnpD4XAJTq3mbOqOg3VTaJqLiJjwRSxoFRHNA1yAhnhbvbw9zSg==", "license": "MIT", + "peer": true, "dependencies": { - "micromark-util-types": "^2.0.0" + "@formatjs/intl-localematcher": "^0.6.0", + "@headlessui/react": "^2.1.2", + "@mdx-js/mdx": "^3.0.0", + "@napi-rs/simple-git": "^0.1.9", + "@shikijs/twoslash": "^3.2.1", + "@theguild/remark-mermaid": "^0.3.0", + "@theguild/remark-npm2yarn": "^0.3.2", + "better-react-mathjax": "^2.3.0", + "clsx": "^2.1.0", + "estree-util-to-js": "^2.0.0", + "estree-util-value-to-estree": "^3.3.3", + "fast-glob": "^3.3.2", + "github-slugger": "^2.0.0", + "hast-util-to-estree": "^3.1.0", + "katex": "^0.16.21", + "mdast-util-from-markdown": "^2.0.1", + "mdast-util-gfm": "^3.0.0", + "mdast-util-to-hast": "^13.2.0", + "negotiator": "^1.0.0", + "react-compiler-runtime": "^19.1.0-rc.2", + "react-medium-image-zoom": "^5.2.12", + "rehype-katex": "^7.0.0", + "rehype-pretty-code": "0.14.1", + "rehype-raw": "^7.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", + "remark-reading-time": "^2.0.2", + "remark-smartypants": "^3.0.0", + "server-only": "^0.0.1", + "shiki": "^3.2.1", + "slash": "^5.1.0", + "title": "^4.0.1", + "ts-morph": "^27.0.0", + "unist-util-remove": "^4.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-children": "^3.0.0", + "yaml": "^2.3.2", + "zod": "^4.1.12" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "next": ">=14", + "react": ">=18", + "react-dom": ">=18" } }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/nextra-theme-docs": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-4.6.1.tgz", + "integrity": "sha512-u5Hh8erVcGOXO1FVrwYBgrEjyzdYQY0k/iAhLd8RofKp+Bru3fyLy9V9W34mfJ0KHKHjv/ldlDTlb4KlL4eIuQ==", "license": "MIT", "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" + "@headlessui/react": "^2.1.2", + "clsx": "^2.1.0", + "next-themes": "^0.4.0", + "react-compiler-runtime": "^19.1.0-rc.2", + "scroll-into-view-if-needed": "^3.1.0", + "zod": "^4.1.12", + "zustand": "^5.0.1" + }, + "peerDependencies": { + "next": ">=14", + "nextra": "4.6.1", + "react": ">=18", + "react-dom": ">=18" } }, - "node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/nextra/node_modules/@formatjs/intl-localematcher": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", "license": "MIT", + "peer": true, "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" + "tslib": "^2.8.0" } }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" + "node_modules/nextra/node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" + "node_modules/nextra/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", "license": "MIT", + "peer": true, "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "@types/nlcst": "^2.0.0" }, - "engines": { - "node": ">=8.6" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", + "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" + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "peer": true, "dependencies": { - "brace-expansion": "^2.0.1" + "path-key": "^4.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "peer": true, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "node_modules/npm-to-yarn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz", + "integrity": "sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==", "license": "MIT", "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "license": "MIT", + "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": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=0.10.0" } }, - "node_modules/neotraverse": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", - "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/nlcst-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", - "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "license": "MIT", - "dependencies": { - "@types/nlcst": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 0.4" } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-fetch-native": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", - "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", - "license": "MIT" - }, - "node_modules/node-mock-http": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.3.tgz", - "integrity": "sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==", - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", - "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ofetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", - "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "license": "MIT", + "peer": true, "dependencies": { - "destr": "^2.0.3", - "node-fetch-native": "^1.6.4", - "ufo": "^1.5.4" + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ohash": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", - "license": "MIT" - }, "node_modules/oniguruma-parser": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz", @@ -5752,9 +13976,9 @@ "license": "MIT" }, "node_modules/oniguruma-to-es": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.3.tgz", - "integrity": "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==", + "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==", "license": "MIT", "dependencies": { "oniguruma-parser": "^0.12.1", @@ -5762,85 +13986,142 @@ "regex-recursion": "^6.0.2" } }, - "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==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, "license": "MIT", "dependencies": { - "yocto-queue": "^1.1.1" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8.0" } }, - "node_modules/p-map": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", - "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "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==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "license": "MIT", "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^6.1.2" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=18" + "node": ">=10" }, "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-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { + "node_modules/package-manager-detector": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", + "license": "MIT", + "peer": true + }, + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "node_modules/package-manager-detector": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz", - "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==", - "license": "MIT" + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "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", + "peer": true, "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", @@ -5854,11 +14135,19 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC", + "peer": true + }, "node_modules/parse5": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "license": "MIT", + "peer": true, "dependencies": { "entities": "^6.0.0" }, @@ -5866,6 +14155,43 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT", + "peer": true + }, + "node_modules/path-data-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz", + "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==", + "license": "MIT", + "peer": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -5881,27 +14207,31 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "license": "MIT" }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, + "node_modules/path-to-regexp": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT", + "peer": true }, "node_modules/picocolors": { "version": "1.1.1", @@ -5921,28 +14251,57 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "peer": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/po-parser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/po-parser/-/po-parser-2.1.1.tgz", + "integrity": "sha512-ECF4zHLbUItpUgE3OTtLKlPjeBN+fKEczj2zYjDfCGOzicNs0GK3Vg2IoAYwx7LH/XYw43fZQP6xnZ4TkNxSLQ==", + "license": "MIT" + }, + "node_modules/points-on-curve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz", + "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==", + "license": "MIT", + "peer": true + }, + "node_modules/points-on-path": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz", + "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==", + "license": "MIT", + "peer": true, + "dependencies": { + "path-data-parser": "0.1.0", + "points-on-curve": "0.2.0" } }, - "node_modules/pirates": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 6" + "node": ">= 0.4" } }, "node_modules/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -5967,112 +14326,10 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", - "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "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/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==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -6082,41 +14339,26 @@ "node": ">=4" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" - }, - "node_modules/prismjs": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", - "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 0.8.0" } }, - "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==", + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, "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==", - "license": "MIT", - "engines": { - "node": ">=6" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, "node_modules/property-information": { @@ -6129,6 +14371,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6149,46 +14401,72 @@ ], "license": "MIT" }, - "node_modules/radix3": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", - "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", - "license": "MIT" - }, "node_modules/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/react-compiler-runtime": { + "version": "19.1.0-rc.3", + "resolved": "https://registry.npmjs.org/react-compiler-runtime/-/react-compiler-runtime-19.1.0-rc.3.tgz", + "integrity": "sha512-Cssogys2XZu6SqxRdX2xd8cQAf57BBvFbLEBlIa77161lninbKUn/EqbecCe7W3eqDQfg3rIoOwzExzgCh7h/g==", + "license": "MIT", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental" + } + }, "node_modules/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", "license": "MIT", "dependencies": { - "scheduler": "^0.26.0" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.1.1" + "react": "^19.2.3" } }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "node_modules/react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", "license": "MIT", - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-medium-image-zoom": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.4.0.tgz", + "integrity": "sha512-BsE+EnFVQzFIlyuuQrZ9iTwyKpKkqdFZV1ImEQN573QPqGrIUuNni7aF+sZwDcxlsuOMayCr6oO/PZR/yJnbRg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/rpearce" + } + ], + "license": "BSD-3-Clause", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/react-remove-scroll": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", - "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", @@ -6254,43 +14532,138 @@ } } }, - "node_modules/read-cache": { + "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/reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", + "license": "MIT", + "peer": true + }, + "node_modules/recma-build-jsx": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", "license": "MIT", "dependencies": { - "pify": "^2.3.0" + "@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/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", "license": "MIT", "dependencies": { - "picomatch": "^2.2.1" + "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" }, - "engines": { - "node": ">=8.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "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/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, "node_modules/regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", - "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" @@ -6311,16 +14684,76 @@ "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==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/rehype-katex": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", + "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", "license": "MIT", + "peer": true, "dependencies": { "@types/hast": "^3.0.0", - "rehype-parse": "^9.0.0", - "rehype-stringify": "^10.0.0", - "unified": "^11.0.0" + "@types/katex": "^0.16.0", + "hast-util-from-html-isomorphic": "^2.0.0", + "hast-util-to-text": "^4.0.0", + "katex": "^0.16.0", + "unist-util-visit-parents": "^6.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -6332,6 +14765,7 @@ "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", "license": "MIT", + "peer": true, "dependencies": { "@types/hast": "^3.0.0", "hast-util-from-html": "^2.0.0", @@ -6342,11 +14776,33 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-pretty-code": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.14.1.tgz", + "integrity": "sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/hast": "^3.0.4", + "hast-util-to-string": "^3.0.0", + "parse-numeric-range": "^1.3.0", + "rehype-parse": "^9.0.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "shiki": "^1.0.0 || ^2.0.0 || ^3.0.0" + } + }, "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", + "peer": true, "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", @@ -6357,14 +14813,47 @@ "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==", + "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-html": "^9.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", + "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", "unified": "^11.0.0" }, "funding": { @@ -6390,6 +14879,37 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-math": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", + "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-math": "^3.0.0", + "micromark-extension-math": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", @@ -6406,6 +14926,82 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-reading-time": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.2.tgz", + "integrity": "sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==", + "license": "ISC", + "peer": true, + "dependencies": { + "estree-util-is-identifier-name": "^2.0.0", + "estree-util-value-to-estree": "^3.3.3", + "reading-time": "^1.3.0", + "unist-util-visit": "^3.1.0" + } + }, + "node_modules/remark-reading-time/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT", + "peer": true + }, + "node_modules/remark-reading-time/node_modules/estree-util-is-identifier-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz", + "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-visit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz", + "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-reading-time/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-rehype": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", @@ -6428,6 +15024,7 @@ "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", "license": "MIT", + "peer": true, "dependencies": { "retext": "^9.0.0", "retext-smartypants": "^6.0.0", @@ -6454,12 +15051,12 @@ } }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6473,17 +15070,31 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/restructure": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/restructure/-/restructure-3.0.2.tgz", - "integrity": "sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==", - "license": "MIT" + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } }, "node_modules/retext": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", "license": "MIT", + "peer": true, "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", @@ -6500,6 +15111,7 @@ "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", "license": "MIT", + "peer": true, "dependencies": { "@types/nlcst": "^2.0.0", "parse-latin": "^7.0.0", @@ -6515,6 +15127,7 @@ "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", @@ -6530,6 +15143,7 @@ "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", "license": "MIT", + "peer": true, "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", @@ -6550,45 +15164,24 @@ "node": ">=0.10.0" } }, - "node_modules/rollup": { - "version": "4.52.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.3.tgz", - "integrity": "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==", + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense", + "peer": true + }, + "node_modules/roughjs": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz", + "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==", "license": "MIT", + "peer": true, "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.3", - "@rollup/rollup-android-arm64": "4.52.3", - "@rollup/rollup-darwin-arm64": "4.52.3", - "@rollup/rollup-darwin-x64": "4.52.3", - "@rollup/rollup-freebsd-arm64": "4.52.3", - "@rollup/rollup-freebsd-x64": "4.52.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.3", - "@rollup/rollup-linux-arm-musleabihf": "4.52.3", - "@rollup/rollup-linux-arm64-gnu": "4.52.3", - "@rollup/rollup-linux-arm64-musl": "4.52.3", - "@rollup/rollup-linux-loong64-gnu": "4.52.3", - "@rollup/rollup-linux-ppc64-gnu": "4.52.3", - "@rollup/rollup-linux-riscv64-gnu": "4.52.3", - "@rollup/rollup-linux-riscv64-musl": "4.52.3", - "@rollup/rollup-linux-s390x-gnu": "4.52.3", - "@rollup/rollup-linux-x64-gnu": "4.52.3", - "@rollup/rollup-linux-x64-musl": "4.52.3", - "@rollup/rollup-openharmony-arm64": "4.52.3", - "@rollup/rollup-win32-arm64-msvc": "4.52.3", - "@rollup/rollup-win32-ia32-msvc": "4.52.3", - "@rollup/rollup-win32-x64-gnu": "4.52.3", - "@rollup/rollup-win32-x64-msvc": "4.52.3", - "fsevents": "~2.3.2" + "hachure-fill": "^0.5.2", + "path-data-parser": "^0.1.0", + "points-on-curve": "^0.2.0", + "points-on-path": "^0.2.1" } }, "node_modules/run-parallel": { @@ -6614,12 +15207,90 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause", + "peer": true + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT", + "peer": true + }, "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "license": "MIT" }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -6629,17 +15300,73 @@ "semver": "bin/semver.js" } }, + "node_modules/server-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", + "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", + "license": "MIT", + "peer": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/sharp": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz", - "integrity": "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", "hasInstallScript": true, "license": "Apache-2.0", "optional": true, "dependencies": { "@img/colour": "^1.0.0", - "detect-libc": "^2.1.0", - "semver": "^7.7.2" + "detect-libc": "^2.1.2", + "semver": "^7.7.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -6648,34 +15375,36 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.4", - "@img/sharp-darwin-x64": "0.34.4", - "@img/sharp-libvips-darwin-arm64": "1.2.3", - "@img/sharp-libvips-darwin-x64": "1.2.3", - "@img/sharp-libvips-linux-arm": "1.2.3", - "@img/sharp-libvips-linux-arm64": "1.2.3", - "@img/sharp-libvips-linux-ppc64": "1.2.3", - "@img/sharp-libvips-linux-s390x": "1.2.3", - "@img/sharp-libvips-linux-x64": "1.2.3", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.3", - "@img/sharp-libvips-linuxmusl-x64": "1.2.3", - "@img/sharp-linux-arm": "0.34.4", - "@img/sharp-linux-arm64": "0.34.4", - "@img/sharp-linux-ppc64": "0.34.4", - "@img/sharp-linux-s390x": "0.34.4", - "@img/sharp-linux-x64": "0.34.4", - "@img/sharp-linuxmusl-arm64": "0.34.4", - "@img/sharp-linuxmusl-x64": "0.34.4", - "@img/sharp-wasm32": "0.34.4", - "@img/sharp-win32-arm64": "0.34.4", - "@img/sharp-win32-ia32": "0.34.4", - "@img/sharp-win32-x64": "0.34.4" + "@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/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "optional": true, "bin": { @@ -6697,29 +15426,105 @@ "node": ">=8" } }, - "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==", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.20.0.tgz", + "integrity": "sha512-kgCOlsnyWb+p0WU+01RjkCH+eBVsjL1jOwUYWv0YDWkM2/A46+LDKVs5yZCUXjJG6bj4ndFoAg5iLIIue6dulg==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "3.20.0", + "@shikijs/engine-javascript": "3.20.0", + "@shikijs/engine-oniguruma": "3.20.0", + "@shikijs/langs": "3.20.0", + "@shikijs/themes": "3.20.0", + "@shikijs/types": "3.20.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shiki": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-3.13.0.tgz", - "integrity": "sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "3.13.0", - "@shikijs/engine-javascript": "3.13.0", - "@shikijs/engine-oniguruma": "3.13.0", - "@shikijs/langs": "3.13.0", - "@shikijs/themes": "3.13.0", - "@shikijs/types": "3.13.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/signal-exit": { @@ -6727,6 +15532,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "license": "ISC", + "peer": true, "engines": { "node": ">=14" }, @@ -6734,22 +15540,36 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/smol-toml": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz", - "integrity": "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==", - "license": "BSD-3-Clause", + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "peer": true, "engines": { - "node": ">= 18" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/cyyynthia" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" } }, "node_modules/source-map-js": { @@ -6771,63 +15591,171 @@ "url": "https://github.com/sponsors/wooorm" } }, - "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==", - "license": "MIT", + "node_modules/speech-rule-engine": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.1.2.tgz", + "integrity": "sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==", + "license": "Apache-2.0", + "peer": true, "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "@xmldom/xmldom": "0.9.8", + "commander": "13.1.0", + "wicked-good-xpath": "1.3.0" }, + "bin": { + "sre": "bin/sre" + } + }, + "node_modules/speech-rule-engine/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", + "peer": true, "engines": { "node": ">=18" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" } }, - "node_modules/string-width-cjs": { - "name": "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/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/string-width-cjs/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/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string-width-cjs/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.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } }, - "node_modules/string-width-cjs/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/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/stringify-entities": { @@ -6844,63 +15772,101 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-ansi-cjs": { - "name": "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/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-ansi-cjs/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/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "style-to-object": "1.0.14" } }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" + "inline-style-parser": "0.2.7" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT", + "peer": true + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -6915,53 +15881,81 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tailwind-merge": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", - "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "license": "MIT", "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" + "svgo": "bin/svgo" }, "engines": { "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/system-architecture": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", + "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tabbable": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.3.0.tgz", + "integrity": "sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==", + "license": "MIT" + }, + "node_modules/tailwind-merge": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", + "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" } }, + "node_modules/tailwindcss": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", + "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", + "license": "MIT" + }, "node_modules/tailwindcss-animate": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", @@ -6971,39 +15965,29 @@ "tailwindcss": ">=3.0.0 || insiders" } }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, "engines": { - "node": ">=0.8" + "node": ">=18" } }, - "node_modules/tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "license": "MIT" - }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -7017,7 +16001,35 @@ "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/title": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/title/-/title-4.0.1.tgz", + "integrity": "sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==", + "license": "MIT", + "peer": true, + "dependencies": { + "arg": "^5.0.0", + "chalk": "^5.0.0", + "clipboardy": "^4.0.0" + }, + "bin": { + "title": "dist/esm/bin.js" + } + }, + "node_modules/title/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/to-regex-range": { @@ -7032,12 +16044,6 @@ "node": ">=8.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -7058,30 +16064,64 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "license": "Apache-2.0" - }, - "node_modules/tsconfck": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", - "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "node_modules/ts-api-utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.3.0.tgz", + "integrity": "sha512-6eg3Y9SF7SsAvGzRHQvvc1skDAhwI4YQ32ui1scxD1Ccr0G5qIIbUBT3pFTKX8kmWIQClHobtUdNuaBgwdfdWg==", + "dev": true, "license": "MIT", - "bin": { - "tsconfck": "bin/tsconfck.js" - }, "engines": { - "node": "^18 || >=20" + "node": ">=18.12" }, "peerDependencies": { - "typescript": "^5.0.0" + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-morph": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-27.0.2.tgz", + "integrity": "sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==", + "license": "MIT", + "peer": true, + "dependencies": { + "@ts-morph/common": "~0.28.1", + "code-block-writer": "^13.0.3" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "bin": { + "json5": "lib/cli.js" } }, "node_modules/tslib": { @@ -7090,24 +16130,123 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/type-fest": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", - "license": "(MIT OR CC0-1.0)", + "node_modules/twoslash": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.3.6.tgz", + "integrity": "sha512-VuI5OKl+MaUO9UIW3rXKoPgHI3X40ZgB/j12VY6h98Ae1mCBihjPvhOPeJWlxCYcmSbmeZt5ZKkK0dsVtp+6pA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript/vfs": "^1.6.2", + "twoslash-protocol": "0.3.6" + }, + "peerDependencies": { + "typescript": "^5.5.0" + } + }, + "node_modules/twoslash-protocol": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.3.6.tgz", + "integrity": "sha512-FHGsJ9Q+EsNr5bEbgG3hnbkvEBdW5STgPU824AHUjB4kw0Dn4p8tABT7Ncg1Ie6V0+mDg3Qpy41VafZXcQhWMA==", + "license": "MIT", + "peer": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=16" + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7116,48 +16255,101 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.51.0.tgz", + "integrity": "sha512-jh8ZuM5oEh2PSdyQG9YAEM1TCGuWenLSuSUhf/irbVUNW9O5FhbFVONviN2TgMTBnUmyHv7E56rYnfLZK6TkiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.51.0", + "@typescript-eslint/parser": "8.51.0", + "@typescript-eslint/typescript-estree": "8.51.0", + "@typescript-eslint/utils": "8.51.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, "node_modules/ufo": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", - "license": "MIT" - }, - "node_modules/ultrahtml": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", - "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", - "license": "MIT" + "license": "MIT", + "peer": true }, - "node_modules/uncrypto": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", - "license": "MIT" + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/undici-types": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.12.0.tgz", - "integrity": "sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, "license": "MIT" }, - "node_modules/unicode-properties": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", - "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "license": "MIT", - "dependencies": { - "base64-js": "^1.3.0", - "unicode-trie": "^2.0.0" + "engines": { + "node": ">=4" } }, - "node_modules/unicode-trie": { + "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", - "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "license": "MIT", "dependencies": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/unified": { @@ -7179,22 +16371,12 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unifont": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.5.2.tgz", - "integrity": "sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==", - "license": "MIT", - "dependencies": { - "css-tree": "^3.0.0", - "ofetch": "^1.4.1", - "ohash": "^2.0.0" - } - }, "node_modules/unist-util-find-after": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -7205,9 +16387,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" @@ -7222,6 +16404,7 @@ "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", + "peer": true, "dependencies": { "@types/unist": "^3.0.0", "array-iterate": "^2.0.0" @@ -7244,24 +16427,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "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==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" @@ -7271,11 +16440,12 @@ "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/unist-util-remove": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz", + "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==", "license": "MIT", + "peer": true, "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -7286,177 +16456,115 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit-children": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", - "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "unist-util-visit": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "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": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - }, - "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.0.3 || ^7.0.0", - "@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.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" + "@types/unist": "^3.0.0" }, - "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 - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/unstorage/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "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==", "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, - "engines": { - "node": ">= 14.16.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/unist": "^3.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/unstorage/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/unstorage/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, "license": "MIT", - "engines": { - "node": ">= 14.18.0" + "dependencies": { + "napi-postinstall": "^0.3.0" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "funding": [ { "type": "opencollective", @@ -7483,6 +16591,16 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/use-callback-ref": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", @@ -7504,6 +16622,29 @@ } } }, + "node_modules/use-intl": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/use-intl/-/use-intl-4.6.1.tgz", + "integrity": "sha512-mUIj6QvJZ7Rk33mLDxRziz1YiBBAnIji8YW4TXXMdYHtaPEbVucrXD3iKQGAqJhbVn0VnjrEtIKYO1B18mfSJw==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "^2.2.0", + "@schummar/icu-type-parser": "1.21.5", + "intl-messageformat": "^10.5.14" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0" + } + }, + "node_modules/use-intl/node_modules/@formatjs/fast-memoize": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, "node_modules/use-sidecar": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", @@ -7527,9 +16668,9 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", - "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -7541,6 +16682,20 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "peer": true, + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", @@ -7560,6 +16715,7 @@ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", "license": "MIT", + "peer": true, "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" @@ -7583,145 +16739,72 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/vite": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", - "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", + "node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", "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" - }, + "peer": true, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "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" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } + "node": ">=14.0.0" } }, - "node_modules/vite-plugin-static-copy": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-2.3.2.tgz", - "integrity": "sha512-iwrrf+JupY4b9stBttRWzGHzZbeMjAHBhkrn67MNACXJVjEMRpCI10Q3AkxdBkl45IHaTfw/CNVevzQhP7yTwg==", - "dev": true, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", "license": "MIT", + "peer": true, "dependencies": { - "chokidar": "^3.5.3", - "fast-glob": "^3.2.11", - "fs-extra": "^11.1.0", - "p-map": "^7.0.3", - "picocolors": "^1.0.0" + "vscode-languageserver-protocol": "3.17.5" }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0" + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" } }, - "node_modules/vitefu": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", - "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", "license": "MIT", - "workspaces": [ - "tests/deps/*", - "tests/projects/*", - "tests/projects/workspace/packages/*" - ], - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } + "peer": true, + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" } }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "license": "MIT", + "peer": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT", + "peer": true + }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "license": "MIT", + "peer": true + }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7737,127 +16820,112 @@ "node": ">= 8" } }, - "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==", + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, "license": "MIT", "dependencies": { - "string-width": "^7.0.0" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wrap-ansi-cjs": { - "name": "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==", + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/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" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wrap-ansi-cjs/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==", + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wrap-ansi-cjs/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/wrap-ansi-cjs/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/wicked-good-xpath": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", + "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==", "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } + "peer": true }, - "node_modules/wrap-ansi-cjs/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/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/xxhash-wasm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", - "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", - "license": "MIT" - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -7865,90 +16933,83 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "license": "ISC", + "peer": true, "bin": { "yaml": "bin.mjs" }, "engines": { "node": ">= 14.6" - } - }, - "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/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" - }, - "engines": { - "node": ">=18.19" }, "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": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=10" }, "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.3.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.2.tgz", + "integrity": "sha512-b8L8yn4rIVfiXyHAmnr52/ZEpDumlT0bmxiq3Ws1ybrinhflGpt12Hvv54kYnEsGPRs6o/Ka3/ppA2OWY21IVg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/zod-to-json-schema": { - "version": "3.24.6", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", - "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", - "license": "ISC", + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, "peerDependencies": { - "zod": "^3.24.1" + "zod": "^3.25.0 || ^4.0.0" } }, - "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==", + "node_modules/zustand": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.9.tgz", + "integrity": "sha512-ALBtUj0AfjJt3uNRQoL1tL2tMvj6Gp/6e39dnfT6uzpelGru8v1tPOGBzayOWbPJvujM8JojDk3E1LxeFisBNg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, "peerDependencies": { - "typescript": "^4.9.4 || ^5.0.2", - "zod": "^3" + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } } }, "node_modules/zwitch": { diff --git a/package.json b/package.json index 3dc28a86..e488e91e 100644 --- a/package.json +++ b/package.json @@ -1,48 +1,45 @@ { "name": "flectoneweb", - "type": "module", - "version": "1.1.0", + "version": "2.0.0", + "private": true, "scripts": { - "dev": "astro dev", - "build": "astro build", - "preview": "astro preview", - "astro": "astro", - "install:pulse-ru": "cd pulse/ru && bun install", - "install:pulse-en": "cd pulse/en && bun install", - "dev:pulse-ru": "cd pulse/ru && bun docs:dev", - "dev:pulse-en": "cd pulse/en && bun docs:dev", - "build:pulse-ru": "cd pulse/ru && bun docs:build", - "build:pulse-en": "cd pulse/en && bun docs:build", - "preview:pulse-ru": "cd pulse/ru && bun docs:preview", - "preview:pulse-en": "cd pulse/en && bun docs:preview", - "copy:pulse": "cp -R pulse/ru/.vitepress/dist dist/pulse && cp -R pulse/en/.vitepress/dist dist/en/pulse", - "build:all": "bun run build && bun build:pulse-ru && bun build:pulse-en && bun copy:pulse" + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "eslint" }, "dependencies": { - "@astrojs/react": "^4.2.0", - "@astrojs/tailwind": "^6.0.0", - "@radix-ui/react-avatar": "^1.1.2", - "@radix-ui/react-dialog": "^1.1.5", - "@radix-ui/react-dropdown-menu": "^2.1.5", - "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "^1.1.2", - "@rollup/rollup-win32-x64-msvc": "^4.34.1", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", - "astro": "^5.2.3", - "bun": "^1.2.22", + "@radix-ui/react-slot": "^1.2.4", + "@types/mdx": "^2.0.13", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "embla-carousel-autoplay": "^8.5.2", - "embla-carousel-react": "^8.5.2", - "lucide-react": "^0.474.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "tailwind-merge": "^3.0.1", - "tailwindcss": "3.4.17", + "framer-motion": "^12.23.24", + "fumadocs-core": "^16.4.1", + "fumadocs-mdx": "^14.2.3", + "fumadocs-ui": "^16.4.1", + "lucide-react": "^0.562.0", + "next": "^16.0.7", + "next-intl": "^4.5.6", + "next-svg": "^1.0.7", + "next-themes": "^0.4.6", + "nextra-theme-docs": "^4.6.1", + "react": "^19.2.0", + "react-dom": "^19.2.0", + "react-icons": "^5.5.0", + "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "vite-plugin-static-copy": "^2.3.1" + "@svgr/webpack": "^8.1.0", + "@tailwindcss/postcss": "^4", + "@types/js-yaml": "^4.0.9", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "@types/unist": "^3.0.3", + "eslint": "^9", + "eslint-config-next": "16.0.4", + "tailwindcss": "^4", + "typescript": "^5" } } diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 00000000..61e36849 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,7 @@ +const config = { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; + +export default config; diff --git a/public/chat/chat-en.svg b/public/chat/chat-en.svg new file mode 100644 index 00000000..c1774bc1 --- /dev/null +++ b/public/chat/chat-en.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/chat/chat-ru.svg b/public/chat/chat-ru.svg new file mode 100644 index 00000000..1afb1775 --- /dev/null +++ b/public/chat/chat-ru.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/features.png b/public/features.png new file mode 100644 index 00000000..b8321363 Binary files /dev/null and b/public/features.png differ diff --git a/public/flectonepulse.jpg b/public/flectonepulse.jpg new file mode 100644 index 00000000..a253e7d8 Binary files /dev/null and b/public/flectonepulse.jpg differ diff --git a/public/flectonepulse2.png b/public/flectonepulse2.png new file mode 100644 index 00000000..7d8d6cd6 Binary files /dev/null and b/public/flectonepulse2.png differ diff --git a/pulse/en/public/logo.png b/public/logo.png similarity index 100% rename from pulse/en/public/logo.png rename to public/logo.png diff --git a/public/mix/mix.svg b/public/mix/mix.svg new file mode 100644 index 00000000..61ef7cde --- /dev/null +++ b/public/mix/mix.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pulse/en/public/advancement1.png b/public/pulse/advancement1.png similarity index 100% rename from pulse/en/public/advancement1.png rename to public/pulse/advancement1.png diff --git a/pulse/en/public/advancement2.png b/public/pulse/advancement2.png similarity index 100% rename from pulse/en/public/advancement2.png rename to public/pulse/advancement2.png diff --git a/pulse/en/public/advancement3.png b/public/pulse/advancement3.png similarity index 100% rename from pulse/en/public/advancement3.png rename to public/pulse/advancement3.png diff --git a/pulse/en/public/afkglobalmessage.png b/public/pulse/afkglobalmessage.png similarity index 100% rename from pulse/en/public/afkglobalmessage.png rename to public/pulse/afkglobalmessage.png diff --git a/pulse/en/public/afksuffix.png b/public/pulse/afksuffix.png similarity index 100% rename from pulse/en/public/afksuffix.png rename to public/pulse/afksuffix.png diff --git a/pulse/en/public/anvil.gif b/public/pulse/anvil.gif similarity index 100% rename from pulse/en/public/anvil.gif rename to public/pulse/anvil.gif diff --git a/pulse/en/public/argument_showcase.png b/public/pulse/argument_showcase.png similarity index 100% rename from pulse/en/public/argument_showcase.png rename to public/pulse/argument_showcase.png diff --git a/pulse/en/public/auto.png b/public/pulse/auto.png similarity index 100% rename from pulse/en/public/auto.png rename to public/pulse/auto.png diff --git a/pulse/en/public/belowname.png b/public/pulse/belowname.png similarity index 100% rename from pulse/en/public/belowname.png rename to public/pulse/belowname.png diff --git a/pulse/en/public/bold.png b/public/pulse/bold.png similarity index 100% rename from pulse/en/public/bold.png rename to public/pulse/bold.png diff --git a/pulse/en/public/book.gif b/public/pulse/book.gif similarity index 100% rename from pulse/en/public/book.gif rename to public/pulse/book.gif diff --git a/pulse/en/public/boosty.svg b/public/pulse/boosty.svg similarity index 100% rename from pulse/en/public/boosty.svg rename to public/pulse/boosty.svg diff --git a/pulse/en/public/bossbar_enderdragon.png b/public/pulse/bossbar_enderdragon.png similarity index 100% rename from pulse/en/public/bossbar_enderdragon.png rename to public/pulse/bossbar_enderdragon.png diff --git a/pulse/en/public/bossbar_raid.png b/public/pulse/bossbar_raid.png similarity index 100% rename from pulse/en/public/bossbar_raid.png rename to public/pulse/bossbar_raid.png diff --git a/pulse/en/public/bossbar_wither.png b/public/pulse/bossbar_wither.png similarity index 100% rename from pulse/en/public/bossbar_wither.png rename to public/pulse/bossbar_wither.png diff --git a/pulse/en/public/brand.png b/public/pulse/brand.png similarity index 100% rename from pulse/en/public/brand.png rename to public/pulse/brand.png diff --git a/pulse/en/public/bubble.gif b/public/pulse/bubble.gif similarity index 100% rename from pulse/en/public/bubble.gif rename to public/pulse/bubble.gif diff --git a/pulse/en/public/bubble.svg b/public/pulse/bubble.svg similarity index 100% rename from pulse/en/public/bubble.svg rename to public/pulse/bubble.svg diff --git a/pulse/en/public/bukkit.svg b/public/pulse/bukkit.svg similarity index 100% rename from pulse/en/public/bukkit.svg rename to public/pulse/bukkit.svg diff --git a/pulse/en/public/bungeecord.svg b/public/pulse/bungeecord.svg similarity index 100% rename from pulse/en/public/bungeecord.svg rename to public/pulse/bungeecord.svg diff --git a/pulse/en/public/caps.png b/public/pulse/caps copy.png similarity index 100% rename from pulse/en/public/caps.png rename to public/pulse/caps copy.png diff --git a/pulse/ru/public/caps.png b/public/pulse/caps.png similarity index 100% rename from pulse/ru/public/caps.png rename to public/pulse/caps.png diff --git a/pulse/en/public/chat.png b/public/pulse/chat.png similarity index 100% rename from pulse/en/public/chat.png rename to public/pulse/chat.png diff --git a/pulse/en/public/chatconsole.png b/public/pulse/chatconsole.png similarity index 100% rename from pulse/en/public/chatconsole.png rename to public/pulse/chatconsole.png diff --git a/pulse/en/public/code.svg b/public/pulse/code.svg similarity index 100% rename from pulse/en/public/code.svg rename to public/pulse/code.svg diff --git a/pulse/en/public/colormessage.png b/public/pulse/colormessage.png similarity index 100% rename from pulse/en/public/colormessage.png rename to public/pulse/colormessage.png diff --git a/pulse/en/public/commandanon.png b/public/pulse/commandanon.png similarity index 100% rename from pulse/en/public/commandanon.png rename to public/pulse/commandanon.png diff --git a/pulse/en/public/commandball.png b/public/pulse/commandball.png similarity index 100% rename from pulse/en/public/commandball.png rename to public/pulse/commandball.png diff --git a/pulse/en/public/commandban.png b/public/pulse/commandban.png similarity index 100% rename from pulse/en/public/commandban.png rename to public/pulse/commandban.png diff --git a/pulse/en/public/commandbanconnect.png b/public/pulse/commandbanconnect.png similarity index 100% rename from pulse/en/public/commandbanconnect.png rename to public/pulse/commandbanconnect.png diff --git a/pulse/en/public/commandbanlist.png b/public/pulse/commandbanlist.png similarity index 100% rename from pulse/en/public/commandbanlist.png rename to public/pulse/commandbanlist.png diff --git a/pulse/en/public/commandbanlistglobalgui.png b/public/pulse/commandbanlistglobalgui.png similarity index 100% rename from pulse/en/public/commandbanlistglobalgui.png rename to public/pulse/commandbanlistglobalgui.png diff --git a/pulse/en/public/commandbanlistplayer.png b/public/pulse/commandbanlistplayer.png similarity index 100% rename from pulse/en/public/commandbanlistplayer.png rename to public/pulse/commandbanlistplayer.png diff --git a/pulse/en/public/commandbanlistplayergui.png b/public/pulse/commandbanlistplayergui.png similarity index 100% rename from pulse/en/public/commandbanlistplayergui.png rename to public/pulse/commandbanlistplayergui.png diff --git a/pulse/en/public/commandbanplayer.png b/public/pulse/commandbanplayer.png similarity index 100% rename from pulse/en/public/commandbanplayer.png rename to public/pulse/commandbanplayer.png diff --git a/pulse/en/public/commandbroadcast.png b/public/pulse/commandbroadcast.png similarity index 100% rename from pulse/en/public/commandbroadcast.png rename to public/pulse/commandbroadcast.png diff --git a/pulse/en/public/commandchatcolor.png b/public/pulse/commandchatcolor.png similarity index 100% rename from pulse/en/public/commandchatcolor.png rename to public/pulse/commandchatcolor.png diff --git a/pulse/en/public/commandchatcolorother.png b/public/pulse/commandchatcolorother.png similarity index 100% rename from pulse/en/public/commandchatcolorother.png rename to public/pulse/commandchatcolorother.png diff --git a/pulse/en/public/commandchatsetting.gif b/public/pulse/commandchatsetting.gif similarity index 100% rename from pulse/en/public/commandchatsetting.gif rename to public/pulse/commandchatsetting.gif diff --git a/pulse/en/public/commandchatstyle.png b/public/pulse/commandchatstyle.png similarity index 100% rename from pulse/en/public/commandchatstyle.png rename to public/pulse/commandchatstyle.png diff --git a/pulse/en/public/commandclearchat.png b/public/pulse/commandclearchat.png similarity index 100% rename from pulse/en/public/commandclearchat.png rename to public/pulse/commandclearchat.png diff --git a/pulse/en/public/commandclearmail.png b/public/pulse/commandclearmail.png similarity index 100% rename from pulse/en/public/commandclearmail.png rename to public/pulse/commandclearmail.png diff --git a/pulse/en/public/commandcoin.png b/public/pulse/commandcoin.png similarity index 100% rename from pulse/en/public/commandcoin.png rename to public/pulse/commandcoin.png diff --git a/pulse/en/public/commanddeletemessage.png b/public/pulse/commanddeletemessage.png similarity index 100% rename from pulse/en/public/commanddeletemessage.png rename to public/pulse/commanddeletemessage.png diff --git a/pulse/en/public/commanddice.png b/public/pulse/commanddice.png similarity index 100% rename from pulse/en/public/commanddice.png rename to public/pulse/commanddice.png diff --git a/pulse/en/public/commanddo.png b/public/pulse/commanddo.png similarity index 100% rename from pulse/en/public/commanddo.png rename to public/pulse/commanddo.png diff --git a/pulse/en/public/commandemit.png b/public/pulse/commandemit.png similarity index 100% rename from pulse/en/public/commandemit.png rename to public/pulse/commandemit.png diff --git a/pulse/en/public/commandflectonepulse.png b/public/pulse/commandflectonepulse.png similarity index 100% rename from pulse/en/public/commandflectonepulse.png rename to public/pulse/commandflectonepulse.png diff --git a/pulse/en/public/commandgeolocate.png b/public/pulse/commandgeolocate.png similarity index 100% rename from pulse/en/public/commandgeolocate.png rename to public/pulse/commandgeolocate.png diff --git a/pulse/en/public/commandhelper.png b/public/pulse/commandhelper.png similarity index 100% rename from pulse/en/public/commandhelper.png rename to public/pulse/commandhelper.png diff --git a/pulse/en/public/commandhelperadmin.png b/public/pulse/commandhelperadmin.png similarity index 100% rename from pulse/en/public/commandhelperadmin.png rename to public/pulse/commandhelperadmin.png diff --git a/pulse/en/public/commandignore.png b/public/pulse/commandignore.png similarity index 100% rename from pulse/en/public/commandignore.png rename to public/pulse/commandignore.png diff --git a/pulse/en/public/commandignorelist.png b/public/pulse/commandignorelist.png similarity index 100% rename from pulse/en/public/commandignorelist.png rename to public/pulse/commandignorelist.png diff --git a/pulse/en/public/commandignorelistgui.png b/public/pulse/commandignorelistgui.png similarity index 100% rename from pulse/en/public/commandignorelistgui.png rename to public/pulse/commandignorelistgui.png diff --git a/pulse/en/public/commandkick.png b/public/pulse/commandkick.png similarity index 100% rename from pulse/en/public/commandkick.png rename to public/pulse/commandkick.png diff --git a/pulse/en/public/commandkickplayer.png b/public/pulse/commandkickplayer.png similarity index 100% rename from pulse/en/public/commandkickplayer.png rename to public/pulse/commandkickplayer.png diff --git a/pulse/en/public/commandmail.png b/public/pulse/commandmail.png similarity index 100% rename from pulse/en/public/commandmail.png rename to public/pulse/commandmail.png diff --git a/pulse/en/public/commandmailplayer.png b/public/pulse/commandmailplayer.png similarity index 100% rename from pulse/en/public/commandmailplayer.png rename to public/pulse/commandmailplayer.png diff --git a/pulse/en/public/commandmaintenance.png b/public/pulse/commandmaintenance.png similarity index 100% rename from pulse/en/public/commandmaintenance.png rename to public/pulse/commandmaintenance.png diff --git a/pulse/en/public/commandmaintenanceserver.png b/public/pulse/commandmaintenanceserver.png similarity index 100% rename from pulse/en/public/commandmaintenanceserver.png rename to public/pulse/commandmaintenanceserver.png diff --git a/pulse/en/public/commandmark.gif b/public/pulse/commandmark.gif similarity index 100% rename from pulse/en/public/commandmark.gif rename to public/pulse/commandmark.gif diff --git a/pulse/en/public/commandme.png b/public/pulse/commandme.png similarity index 100% rename from pulse/en/public/commandme.png rename to public/pulse/commandme.png diff --git a/pulse/en/public/commandmealiase.png b/public/pulse/commandmealiase.png similarity index 100% rename from pulse/en/public/commandmealiase.png rename to public/pulse/commandmealiase.png diff --git a/pulse/en/public/commandmute.png b/public/pulse/commandmute.png similarity index 100% rename from pulse/en/public/commandmute.png rename to public/pulse/commandmute.png diff --git a/pulse/en/public/commandmutelist.png b/public/pulse/commandmutelist.png similarity index 100% rename from pulse/en/public/commandmutelist.png rename to public/pulse/commandmutelist.png diff --git a/pulse/en/public/commandmutelistglobalgui.png b/public/pulse/commandmutelistglobalgui.png similarity index 100% rename from pulse/en/public/commandmutelistglobalgui.png rename to public/pulse/commandmutelistglobalgui.png diff --git a/pulse/en/public/commandmutelistplayergui.png b/public/pulse/commandmutelistplayergui.png similarity index 100% rename from pulse/en/public/commandmutelistplayergui.png rename to public/pulse/commandmutelistplayergui.png diff --git a/pulse/en/public/commandonline.png b/public/pulse/commandonline.png similarity index 100% rename from pulse/en/public/commandonline.png rename to public/pulse/commandonline.png diff --git a/pulse/en/public/commandping.png b/public/pulse/commandping.png similarity index 100% rename from pulse/en/public/commandping.png rename to public/pulse/commandping.png diff --git a/pulse/en/public/commandpoll.png b/public/pulse/commandpoll.png similarity index 100% rename from pulse/en/public/commandpoll.png rename to public/pulse/commandpoll.png diff --git a/pulse/en/public/commandpollend.png b/public/pulse/commandpollend.png similarity index 100% rename from pulse/en/public/commandpollend.png rename to public/pulse/commandpollend.png diff --git a/pulse/en/public/commandpollgui.gif b/public/pulse/commandpollgui.gif similarity index 100% rename from pulse/en/public/commandpollgui.gif rename to public/pulse/commandpollgui.gif diff --git a/pulse/en/public/commandreply.png b/public/pulse/commandreply.png similarity index 100% rename from pulse/en/public/commandreply.png rename to public/pulse/commandreply.png diff --git a/pulse/en/public/commandrockpaperscissors.png b/public/pulse/commandrockpaperscissors.png similarity index 100% rename from pulse/en/public/commandrockpaperscissors.png rename to public/pulse/commandrockpaperscissors.png diff --git a/pulse/en/public/commandsprite.png b/public/pulse/commandsprite.png similarity index 100% rename from pulse/en/public/commandsprite.png rename to public/pulse/commandsprite.png diff --git a/pulse/en/public/commandspy.gif b/public/pulse/commandspy.gif similarity index 100% rename from pulse/en/public/commandspy.gif rename to public/pulse/commandspy.gif diff --git a/pulse/en/public/commandstream.png b/public/pulse/commandstream.png similarity index 100% rename from pulse/en/public/commandstream.png rename to public/pulse/commandstream.png diff --git a/pulse/en/public/commandstreamprefix.png b/public/pulse/commandstreamprefix.png similarity index 100% rename from pulse/en/public/commandstreamprefix.png rename to public/pulse/commandstreamprefix.png diff --git a/pulse/en/public/commandsymbol.png b/public/pulse/commandsymbol.png similarity index 100% rename from pulse/en/public/commandsymbol.png rename to public/pulse/commandsymbol.png diff --git a/pulse/en/public/commandsyntax.png b/public/pulse/commandsyntax.png similarity index 100% rename from pulse/en/public/commandsyntax.png rename to public/pulse/commandsyntax.png diff --git a/pulse/en/public/commandtell.png b/public/pulse/commandtell.png similarity index 100% rename from pulse/en/public/commandtell.png rename to public/pulse/commandtell.png diff --git a/pulse/en/public/commandtellmyself.png b/public/pulse/commandtellmyself.png similarity index 100% rename from pulse/en/public/commandtellmyself.png rename to public/pulse/commandtellmyself.png diff --git a/pulse/en/public/commandtictactoe.png b/public/pulse/commandtictactoe.png similarity index 100% rename from pulse/en/public/commandtictactoe.png rename to public/pulse/commandtictactoe.png diff --git a/pulse/en/public/commandtictactoedefault.png b/public/pulse/commandtictactoedefault.png similarity index 100% rename from pulse/en/public/commandtictactoedefault.png rename to public/pulse/commandtictactoedefault.png diff --git a/pulse/en/public/commandtoponline.png b/public/pulse/commandtoponline.png similarity index 100% rename from pulse/en/public/commandtoponline.png rename to public/pulse/commandtoponline.png diff --git a/pulse/en/public/commandtranslateto.png b/public/pulse/commandtranslateto.png similarity index 100% rename from pulse/en/public/commandtranslateto.png rename to public/pulse/commandtranslateto.png diff --git a/pulse/en/public/commandtry.png b/public/pulse/commandtry.png similarity index 100% rename from pulse/en/public/commandtry.png rename to public/pulse/commandtry.png diff --git a/pulse/en/public/commandunban.png b/public/pulse/commandunban.png similarity index 100% rename from pulse/en/public/commandunban.png rename to public/pulse/commandunban.png diff --git a/pulse/en/public/commandunignore.png b/public/pulse/commandunignore.png similarity index 100% rename from pulse/en/public/commandunignore.png rename to public/pulse/commandunignore.png diff --git a/pulse/en/public/commandunmute.png b/public/pulse/commandunmute.png similarity index 100% rename from pulse/en/public/commandunmute.png rename to public/pulse/commandunmute.png diff --git a/pulse/en/public/commandunwarn.png b/public/pulse/commandunwarn.png similarity index 100% rename from pulse/en/public/commandunwarn.png rename to public/pulse/commandunwarn.png diff --git a/pulse/en/public/commandwarn.png b/public/pulse/commandwarn.png similarity index 100% rename from pulse/en/public/commandwarn.png rename to public/pulse/commandwarn.png diff --git a/pulse/en/public/commandwarnlist.png b/public/pulse/commandwarnlist.png similarity index 100% rename from pulse/en/public/commandwarnlist.png rename to public/pulse/commandwarnlist.png diff --git a/pulse/en/public/commandwarnlistglobalgui.png b/public/pulse/commandwarnlistglobalgui.png similarity index 100% rename from pulse/en/public/commandwarnlistglobalgui.png rename to public/pulse/commandwarnlistglobalgui.png diff --git a/pulse/en/public/commandwarnlistplayergui.png b/public/pulse/commandwarnlistplayergui.png similarity index 100% rename from pulse/en/public/commandwarnlistplayergui.png rename to public/pulse/commandwarnlistplayergui.png diff --git a/pulse/en/public/console.gif b/public/pulse/console.gif similarity index 100% rename from pulse/en/public/console.gif rename to public/pulse/console.gif diff --git a/pulse/en/public/coords.png b/public/pulse/coords.png similarity index 100% rename from pulse/en/public/coords.png rename to public/pulse/coords.png diff --git a/pulse/en/public/deathserver.png b/public/pulse/deathserver.png similarity index 100% rename from pulse/en/public/deathserver.png rename to public/pulse/deathserver.png diff --git a/pulse/en/public/debugstick.png b/public/pulse/debugstick.png similarity index 100% rename from pulse/en/public/debugstick.png rename to public/pulse/debugstick.png diff --git a/pulse/en/public/delete.gif b/public/pulse/delete.gif similarity index 100% rename from pulse/en/public/delete.gif rename to public/pulse/delete.gif diff --git a/pulse/en/public/destinationaction_bar.png b/public/pulse/destinationaction_bar.png similarity index 100% rename from pulse/en/public/destinationaction_bar.png rename to public/pulse/destinationaction_bar.png diff --git a/pulse/en/public/destinationboss_bar.png b/public/pulse/destinationboss_bar.png similarity index 100% rename from pulse/en/public/destinationboss_bar.png rename to public/pulse/destinationboss_bar.png diff --git a/pulse/en/public/destinationtext_screen.png b/public/pulse/destinationtext_screen.png similarity index 100% rename from pulse/en/public/destinationtext_screen.png rename to public/pulse/destinationtext_screen.png diff --git a/pulse/en/public/destinationtitle.png b/public/pulse/destinationtitle.png similarity index 100% rename from pulse/en/public/destinationtitle.png rename to public/pulse/destinationtitle.png diff --git a/pulse/en/public/destinationtoast.png b/public/pulse/destinationtoast.png similarity index 100% rename from pulse/en/public/destinationtoast.png rename to public/pulse/destinationtoast.png diff --git a/pulse/en/public/discord.svg b/public/pulse/discord.svg similarity index 100% rename from pulse/en/public/discord.svg rename to public/pulse/discord.svg diff --git a/pulse/en/public/discordchannelinfo.png b/public/pulse/discordchannelinfo.png similarity index 100% rename from pulse/en/public/discordchannelinfo.png rename to public/pulse/discordchannelinfo.png diff --git a/pulse/en/public/discordcontent.png b/public/pulse/discordcontent.png similarity index 100% rename from pulse/en/public/discordcontent.png rename to public/pulse/discordcontent.png diff --git a/pulse/en/public/discorddevelopers.png b/public/pulse/discorddevelopers.png similarity index 100% rename from pulse/en/public/discorddevelopers.png rename to public/pulse/discorddevelopers.png diff --git a/pulse/en/public/discordembed.png b/public/pulse/discordembed.png similarity index 100% rename from pulse/en/public/discordembed.png rename to public/pulse/discordembed.png diff --git a/public/pulse/discordembedpreview.png b/public/pulse/discordembedpreview.png new file mode 100644 index 00000000..3de94b8a Binary files /dev/null and b/public/pulse/discordembedpreview.png differ diff --git a/pulse/en/public/discordmessage.png b/public/pulse/discordmessage.png similarity index 100% rename from pulse/en/public/discordmessage.png rename to public/pulse/discordmessage.png diff --git a/pulse/en/public/discordminecraftmessage.png b/public/pulse/discordminecraftmessage.png similarity index 100% rename from pulse/en/public/discordminecraftmessage.png rename to public/pulse/discordminecraftmessage.png diff --git a/pulse/en/public/discordpresence.png b/public/pulse/discordpresence.png similarity index 100% rename from pulse/en/public/discordpresence.png rename to public/pulse/discordpresence.png diff --git a/pulse/en/public/discordwebhook.png b/public/pulse/discordwebhook.png similarity index 100% rename from pulse/en/public/discordwebhook.png rename to public/pulse/discordwebhook.png diff --git a/pulse/en/public/documentation.svg b/public/pulse/documentation.svg similarity index 100% rename from pulse/en/public/documentation.svg rename to public/pulse/documentation.svg diff --git a/pulse/en/public/emojimessage.png b/public/pulse/emojimessage.png similarity index 100% rename from pulse/en/public/emojimessage.png rename to public/pulse/emojimessage.png diff --git a/pulse/en/public/emojiminecraft.png b/public/pulse/emojiminecraft.png similarity index 100% rename from pulse/en/public/emojiminecraft.png rename to public/pulse/emojiminecraft.png diff --git a/pulse/en/public/fcolor.png b/public/pulse/fcolor.png similarity index 100% rename from pulse/en/public/fcolor.png rename to public/pulse/fcolor.png diff --git a/pulse/en/public/filter.png b/public/pulse/filter.png similarity index 100% rename from pulse/en/public/filter.png rename to public/pulse/filter.png diff --git a/pulse/en/public/fixation.png b/public/pulse/fixation.png similarity index 100% rename from pulse/en/public/fixation.png rename to public/pulse/fixation.png diff --git a/pulse/en/public/flectonepulse.png b/public/pulse/flectonepulse.png similarity index 100% rename from pulse/en/public/flectonepulse.png rename to public/pulse/flectonepulse.png diff --git a/pulse/en/public/flectonepulseeditor.gif b/public/pulse/flectonepulseeditor.gif similarity index 100% rename from pulse/en/public/flectonepulseeditor.gif rename to public/pulse/flectonepulseeditor.gif diff --git a/pulse/en/public/flood.png b/public/pulse/flood.png similarity index 100% rename from pulse/en/public/flood.png rename to public/pulse/flood.png diff --git a/pulse/en/public/folia.svg b/public/pulse/folia.svg similarity index 100% rename from pulse/en/public/folia.svg rename to public/pulse/folia.svg diff --git a/pulse/en/public/footer.png b/public/pulse/footer.png similarity index 100% rename from pulse/en/public/footer.png rename to public/pulse/footer.png diff --git a/pulse/en/public/gear.svg b/public/pulse/gear.svg similarity index 100% rename from pulse/en/public/gear.svg rename to public/pulse/gear.svg diff --git a/pulse/en/public/github.svg b/public/pulse/github.svg similarity index 100% rename from pulse/en/public/github.svg rename to public/pulse/github.svg diff --git a/public/pulse/graph.svg b/public/pulse/graph.svg new file mode 100644 index 00000000..d350c31b --- /dev/null +++ b/public/pulse/graph.svg @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pulse/en/public/greeting.png b/public/pulse/greeting.png similarity index 100% rename from pulse/en/public/greeting.png rename to public/pulse/greeting.png diff --git a/pulse/en/public/header.png b/public/pulse/header.png similarity index 100% rename from pulse/en/public/header.png rename to public/pulse/header.png diff --git a/pulse/en/public/hover.png b/public/pulse/hover.png similarity index 100% rename from pulse/en/public/hover.png rename to public/pulse/hover.png diff --git a/pulse/en/public/hoverclick.png b/public/pulse/hoverclick.png similarity index 100% rename from pulse/en/public/hoverclick.png rename to public/pulse/hoverclick.png diff --git a/pulse/en/public/image.png b/public/pulse/image.png similarity index 100% rename from pulse/en/public/image.png rename to public/pulse/image.png diff --git a/pulse/en/public/imagemessage.png b/public/pulse/imagemessage.png similarity index 100% rename from pulse/en/public/imagemessage.png rename to public/pulse/imagemessage.png diff --git a/pulse/en/public/imageminecraft.png b/public/pulse/imageminecraft.png similarity index 100% rename from pulse/en/public/imageminecraft.png rename to public/pulse/imageminecraft.png diff --git a/pulse/en/public/italic.png b/public/pulse/italic.png similarity index 100% rename from pulse/en/public/italic.png rename to public/pulse/italic.png diff --git a/pulse/en/public/item.png b/public/pulse/item.png similarity index 100% rename from pulse/en/public/item.png rename to public/pulse/item.png diff --git a/pulse/en/public/join.png b/public/pulse/join.png similarity index 100% rename from pulse/en/public/join.png rename to public/pulse/join.png diff --git a/pulse/en/public/locale.gif b/public/pulse/locale.gif similarity index 100% rename from pulse/en/public/locale.gif rename to public/pulse/locale.gif diff --git a/pulse/en/public/locale.png b/public/pulse/locale.png similarity index 100% rename from pulse/en/public/locale.png rename to public/pulse/locale.png diff --git a/pulse/ru/public/logo.png b/public/pulse/logo.png similarity index 100% rename from pulse/ru/public/logo.png rename to public/pulse/logo.png diff --git a/pulse/en/public/mention.png b/public/pulse/mention.png similarity index 100% rename from pulse/en/public/mention.png rename to public/pulse/mention.png diff --git a/pulse/en/public/modrinth.svg b/public/pulse/modrinth.svg similarity index 100% rename from pulse/en/public/modrinth.svg rename to public/pulse/modrinth.svg diff --git a/pulse/en/public/motd.png b/public/pulse/motd.png similarity index 100% rename from pulse/en/public/motd.png rename to public/pulse/motd.png diff --git a/pulse/en/public/mute.png b/public/pulse/mute.png similarity index 100% rename from pulse/en/public/mute.png rename to public/pulse/mute.png diff --git a/pulse/en/public/namedisplay.png b/public/pulse/namedisplay.png similarity index 100% rename from pulse/en/public/namedisplay.png rename to public/pulse/namedisplay.png diff --git a/pulse/en/public/nametab.png b/public/pulse/nametab.png similarity index 100% rename from pulse/en/public/nametab.png rename to public/pulse/nametab.png diff --git a/pulse/en/public/nullrecipient.png b/public/pulse/nullrecipient.png similarity index 100% rename from pulse/en/public/nullrecipient.png rename to public/pulse/nullrecipient.png diff --git a/pulse/en/public/obfuscated.png b/public/pulse/obfuscated.png similarity index 100% rename from pulse/en/public/obfuscated.png rename to public/pulse/obfuscated.png diff --git a/pulse/en/public/object.png b/public/pulse/object.png similarity index 100% rename from pulse/en/public/object.png rename to public/pulse/object.png diff --git a/pulse/en/public/objectslot.png b/public/pulse/objectslot.png similarity index 100% rename from pulse/en/public/objectslot.png rename to public/pulse/objectslot.png diff --git a/pulse/en/public/online.png b/public/pulse/online.png similarity index 100% rename from pulse/en/public/online.png rename to public/pulse/online.png diff --git a/pulse/en/public/paper.svg b/public/pulse/paper.svg similarity index 100% rename from pulse/en/public/paper.svg rename to public/pulse/paper.svg diff --git a/pulse/en/public/ping.png b/public/pulse/ping.png similarity index 100% rename from pulse/en/public/ping.png rename to public/pulse/ping.png diff --git a/pulse/en/public/platforms.svg b/public/pulse/platforms.svg similarity index 100% rename from pulse/en/public/platforms.svg rename to public/pulse/platforms.svg diff --git a/pulse/en/public/playercount.png b/public/pulse/playercount.png similarity index 100% rename from pulse/en/public/playercount.png rename to public/pulse/playercount.png diff --git a/pulse/en/public/playerlist.png b/public/pulse/playerlist.png similarity index 100% rename from pulse/en/public/playerlist.png rename to public/pulse/playerlist.png diff --git a/pulse/en/public/playerlistname.png b/public/pulse/playerlistname.png similarity index 100% rename from pulse/en/public/playerlistname.png rename to public/pulse/playerlistname.png diff --git a/pulse/en/public/prompt.png b/public/pulse/prompt.png similarity index 100% rename from pulse/en/public/prompt.png rename to public/pulse/prompt.png diff --git a/public/pulse/pulsecard1.svg b/public/pulse/pulsecard1.svg new file mode 100644 index 00000000..161559af --- /dev/null +++ b/public/pulse/pulsecard1.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/public/pulse/pulsecard2.svg b/public/pulse/pulsecard2.svg new file mode 100644 index 00000000..3664dd65 --- /dev/null +++ b/public/pulse/pulsecard2.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/pulse/pulsecard3.svg b/public/pulse/pulsecard3.svg new file mode 100644 index 00000000..23cf4d25 --- /dev/null +++ b/public/pulse/pulsecard3.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/pulse/pulsestructure.svg b/public/pulse/pulsestructure.svg new file mode 100644 index 00000000..21b86278 --- /dev/null +++ b/public/pulse/pulsestructure.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pulse/en/public/purpur.svg b/public/pulse/purpur.svg similarity index 100% rename from pulse/en/public/purpur.svg rename to public/pulse/purpur.svg diff --git a/pulse/en/public/questionanswer.png b/public/pulse/questionanswer.png similarity index 100% rename from pulse/en/public/questionanswer.png rename to public/pulse/questionanswer.png diff --git a/pulse/en/public/quit.png b/public/pulse/quit.png similarity index 100% rename from pulse/en/public/quit.png rename to public/pulse/quit.png diff --git a/pulse/en/public/rightclick.png b/public/pulse/rightclick.png similarity index 100% rename from pulse/en/public/rightclick.png rename to public/pulse/rightclick.png diff --git a/pulse/en/public/roll_1.png b/public/pulse/roll_1.png similarity index 100% rename from pulse/en/public/roll_1.png rename to public/pulse/roll_1.png diff --git a/pulse/en/public/roll_2.png b/public/pulse/roll_2.png similarity index 100% rename from pulse/en/public/roll_2.png rename to public/pulse/roll_2.png diff --git a/pulse/en/public/roll_3.png b/public/pulse/roll_3.png similarity index 100% rename from pulse/en/public/roll_3.png rename to public/pulse/roll_3.png diff --git a/pulse/en/public/sample1.png b/public/pulse/sample1.png similarity index 100% rename from pulse/en/public/sample1.png rename to public/pulse/sample1.png diff --git a/pulse/en/public/sample2.png b/public/pulse/sample2.png similarity index 100% rename from pulse/en/public/sample2.png rename to public/pulse/sample2.png diff --git a/pulse/en/public/scoreboard.png b/public/pulse/scoreboard.png similarity index 100% rename from pulse/en/public/scoreboard.png rename to public/pulse/scoreboard.png diff --git a/pulse/en/public/server-icon-1.png b/public/pulse/server-icon-1.png similarity index 100% rename from pulse/en/public/server-icon-1.png rename to public/pulse/server-icon-1.png diff --git a/pulse/en/public/server-icon-2.png b/public/pulse/server-icon-2.png similarity index 100% rename from pulse/en/public/server-icon-2.png rename to public/pulse/server-icon-2.png diff --git a/pulse/en/public/servericon.png b/public/pulse/servericon.png similarity index 100% rename from pulse/en/public/servericon.png rename to public/pulse/servericon.png diff --git a/pulse/en/public/signoak.gif b/public/pulse/signoak.gif similarity index 100% rename from pulse/en/public/signoak.gif rename to public/pulse/signoak.gif diff --git a/pulse/en/public/skin.png b/public/pulse/skin.png similarity index 100% rename from pulse/en/public/skin.png rename to public/pulse/skin.png diff --git a/pulse/en/public/skinsrestorer.png b/public/pulse/skinsrestorer.png similarity index 100% rename from pulse/en/public/skinsrestorer.png rename to public/pulse/skinsrestorer.png diff --git a/pulse/en/public/spigot.svg b/public/pulse/spigot.svg similarity index 100% rename from pulse/en/public/spigot.svg rename to public/pulse/spigot.svg diff --git a/pulse/en/public/spoiler.png b/public/pulse/spoiler.png similarity index 100% rename from pulse/en/public/spoiler.png rename to public/pulse/spoiler.png diff --git a/pulse/en/public/spoilermessage.png b/public/pulse/spoilermessage.png similarity index 100% rename from pulse/en/public/spoilermessage.png rename to public/pulse/spoilermessage.png diff --git a/pulse/en/public/spoilerminecraft.png b/public/pulse/spoilerminecraft.png similarity index 100% rename from pulse/en/public/spoilerminecraft.png rename to public/pulse/spoilerminecraft.png diff --git a/pulse/en/public/stats.png b/public/pulse/stats.png similarity index 100% rename from pulse/en/public/stats.png rename to public/pulse/stats.png diff --git a/pulse/en/public/stop.png b/public/pulse/stop.png similarity index 100% rename from pulse/en/public/stop.png rename to public/pulse/stop.png diff --git a/pulse/en/public/strikethrough.png b/public/pulse/strikethrough.png similarity index 100% rename from pulse/en/public/strikethrough.png rename to public/pulse/strikethrough.png diff --git a/pulse/en/public/structure.svg b/public/pulse/structure.svg similarity index 100% rename from pulse/en/public/structure.svg rename to public/pulse/structure.svg diff --git a/pulse/en/public/swear.png b/public/pulse/swear.png similarity index 100% rename from pulse/en/public/swear.png rename to public/pulse/swear.png diff --git a/pulse/en/public/swearsee.png b/public/pulse/swearsee.png similarity index 100% rename from pulse/en/public/swearsee.png rename to public/pulse/swearsee.png diff --git a/pulse/en/public/tab.png b/public/pulse/tab.png similarity index 100% rename from pulse/en/public/tab.png rename to public/pulse/tab.png diff --git a/pulse/en/public/tagimageminecraft.png b/public/pulse/tagimageminecraft.png similarity index 100% rename from pulse/en/public/tagimageminecraft.png rename to public/pulse/tagimageminecraft.png diff --git a/pulse/en/public/task.png b/public/pulse/task.png similarity index 100% rename from pulse/en/public/task.png rename to public/pulse/task.png diff --git a/pulse/en/public/telegramid.png b/public/pulse/telegramid.png similarity index 100% rename from pulse/en/public/telegramid.png rename to public/pulse/telegramid.png diff --git a/pulse/en/public/telegrammessage1.png b/public/pulse/telegrammessage1.png similarity index 100% rename from pulse/en/public/telegrammessage1.png rename to public/pulse/telegrammessage1.png diff --git a/pulse/en/public/telegrammessage2.png b/public/pulse/telegrammessage2.png similarity index 100% rename from pulse/en/public/telegrammessage2.png rename to public/pulse/telegrammessage2.png diff --git a/pulse/en/public/telegramminecraftmessage.png b/public/pulse/telegramminecraftmessage.png similarity index 100% rename from pulse/en/public/telegramminecraftmessage.png rename to public/pulse/telegramminecraftmessage.png diff --git a/pulse/en/public/tps.png b/public/pulse/tps.png similarity index 100% rename from pulse/en/public/tps.png rename to public/pulse/tps.png diff --git a/pulse/en/public/translate.png b/public/pulse/translate.png similarity index 100% rename from pulse/en/public/translate.png rename to public/pulse/translate.png diff --git a/pulse/en/public/twitchclientid.png b/public/pulse/twitchclientid.png similarity index 100% rename from pulse/en/public/twitchclientid.png rename to public/pulse/twitchclientid.png diff --git a/pulse/en/public/twitchmessage.png b/public/pulse/twitchmessage.png similarity index 100% rename from pulse/en/public/twitchmessage.png rename to public/pulse/twitchmessage.png diff --git a/pulse/en/public/twitchminecraftmessage.png b/public/pulse/twitchminecraftmessage.png similarity index 100% rename from pulse/en/public/twitchminecraftmessage.png rename to public/pulse/twitchminecraftmessage.png diff --git a/pulse/en/public/twitchtoken.png b/public/pulse/twitchtoken.png similarity index 100% rename from pulse/en/public/twitchtoken.png rename to public/pulse/twitchtoken.png diff --git a/pulse/en/public/underline.png b/public/pulse/underline.png similarity index 100% rename from pulse/en/public/underline.png rename to public/pulse/underline.png diff --git a/pulse/en/public/update.png b/public/pulse/update.png similarity index 100% rename from pulse/en/public/update.png rename to public/pulse/update.png diff --git a/pulse/en/public/url.png b/public/pulse/url.png similarity index 100% rename from pulse/en/public/url.png rename to public/pulse/url.png diff --git a/pulse/en/public/urlmessage.png b/public/pulse/urlmessage.png similarity index 100% rename from pulse/en/public/urlmessage.png rename to public/pulse/urlmessage.png diff --git a/pulse/en/public/urlminecraft.png b/public/pulse/urlminecraft.png similarity index 100% rename from pulse/en/public/urlminecraft.png rename to public/pulse/urlminecraft.png diff --git a/pulse/en/public/velocity.svg b/public/pulse/velocity.svg similarity index 100% rename from pulse/en/public/velocity.svg rename to public/pulse/velocity.svg diff --git a/pulse/en/public/version.png b/public/pulse/version.png similarity index 100% rename from pulse/en/public/version.png rename to public/pulse/version.png diff --git a/pulse/en/public/weather.png b/public/pulse/weather.png similarity index 100% rename from pulse/en/public/weather.png rename to public/pulse/weather.png diff --git a/pulse/en/public/welcomemessage.png b/public/pulse/welcomemessage.png similarity index 100% rename from pulse/en/public/welcomemessage.png rename to public/pulse/welcomemessage.png diff --git a/pulse/en/public/worldchat.png b/public/pulse/worldchat.png similarity index 100% rename from pulse/en/public/worldchat.png rename to public/pulse/worldchat.png diff --git a/pulse/en/public/worldtab.png b/public/pulse/worldtab.png similarity index 100% rename from pulse/en/public/worldtab.png rename to public/pulse/worldtab.png diff --git a/pulse/en/public/youtube.svg b/public/pulse/youtube.svg similarity index 100% rename from pulse/en/public/youtube.svg rename to public/pulse/youtube.svg diff --git a/public/square.svg b/public/square.svg new file mode 100644 index 00000000..e5c29e7e --- /dev/null +++ b/public/square.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/squaredark.svg b/public/squaredark.svg new file mode 100644 index 00000000..b3c840e7 --- /dev/null +++ b/public/squaredark.svg @@ -0,0 +1,3 @@ + + + diff --git a/pulse/en/.vitepress/cache/deps/_metadata.json b/pulse/en/.vitepress/cache/deps/_metadata.json deleted file mode 100644 index f034b4df..00000000 --- a/pulse/en/.vitepress/cache/deps/_metadata.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "hash": "e24a9845", - "configHash": "7bfb2986", - "lockfileHash": "2d4f71ac", - "browserHash": "e87b6787", - "optimized": { - "vue": { - "src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", - "file": "vue.js", - "fileHash": "09704eff", - "needsInterop": false - }, - "vitepress > @vue/devtools-api": { - "src": "../../../node_modules/@vue/devtools-api/dist/index.js", - "file": "vitepress___@vue_devtools-api.js", - "fileHash": "66d92aa6", - "needsInterop": false - }, - "vitepress > @vueuse/core": { - "src": "../../../node_modules/@vueuse/core/index.mjs", - "file": "vitepress___@vueuse_core.js", - "fileHash": "003c33f3", - "needsInterop": false - }, - "vitepress > @vueuse/integrations/useFocusTrap": { - "src": "../../../node_modules/@vueuse/integrations/useFocusTrap.mjs", - "file": "vitepress___@vueuse_integrations_useFocusTrap.js", - "fileHash": "9b42b31a", - "needsInterop": false - }, - "vitepress > mark.js/src/vanilla.js": { - "src": "../../../node_modules/mark.js/src/vanilla.js", - "file": "vitepress___mark__js_src_vanilla__js.js", - "fileHash": "5d7c8ab2", - "needsInterop": false - }, - "vitepress > minisearch": { - "src": "../../../node_modules/minisearch/dist/es/index.js", - "file": "vitepress___minisearch.js", - "fileHash": "a4aa05a0", - "needsInterop": false - } - }, - "chunks": { - "chunk-6F5JWMBQ": { - "file": "chunk-6F5JWMBQ.js" - }, - "chunk-VJWGEPT5": { - "file": "chunk-VJWGEPT5.js" - } - } -} \ No newline at end of file diff --git a/pulse/en/.vitepress/cache/deps/chunk-VJWGEPT5.js b/pulse/en/.vitepress/cache/deps/chunk-VJWGEPT5.js deleted file mode 100644 index 5216b70d..00000000 --- a/pulse/en/.vitepress/cache/deps/chunk-VJWGEPT5.js +++ /dev/null @@ -1,12542 +0,0 @@ -// node_modules/@vue/shared/dist/shared.esm-bundler.js -function makeMap(str) { - const map2 = /* @__PURE__ */ Object.create(null); - for (const key of str.split(",")) map2[key] = 1; - return (val) => val in map2; -} -var EMPTY_OBJ = true ? Object.freeze({}) : {}; -var EMPTY_ARR = true ? Object.freeze([]) : []; -var NOOP = () => { -}; -var NO = () => false; -var isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter -(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); -var isModelListener = (key) => key.startsWith("onUpdate:"); -var extend = Object.assign; -var remove = (arr, el) => { - const i = arr.indexOf(el); - if (i > -1) { - arr.splice(i, 1); - } -}; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var hasOwn = (val, key) => hasOwnProperty.call(val, key); -var isArray = Array.isArray; -var isMap = (val) => toTypeString(val) === "[object Map]"; -var isSet = (val) => toTypeString(val) === "[object Set]"; -var isDate = (val) => toTypeString(val) === "[object Date]"; -var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; -var isFunction = (val) => typeof val === "function"; -var isString = (val) => typeof val === "string"; -var isSymbol = (val) => typeof val === "symbol"; -var isObject = (val) => val !== null && typeof val === "object"; -var isPromise = (val) => { - return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); -}; -var objectToString = Object.prototype.toString; -var toTypeString = (value) => objectToString.call(value); -var toRawType = (value) => { - return toTypeString(value).slice(8, -1); -}; -var isPlainObject = (val) => toTypeString(val) === "[object Object]"; -var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; -var isReservedProp = makeMap( - // the leading comma is intentional so empty string "" is also included - ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" -); -var isBuiltInDirective = makeMap( - "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" -); -var cacheStringFunction = (fn) => { - const cache = /* @__PURE__ */ Object.create(null); - return (str) => { - const hit = cache[str]; - return hit || (cache[str] = fn(str)); - }; -}; -var camelizeRE = /-(\w)/g; -var camelize = cacheStringFunction( - (str) => { - return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); - } -); -var hyphenateRE = /\B([A-Z])/g; -var hyphenate = cacheStringFunction( - (str) => str.replace(hyphenateRE, "-$1").toLowerCase() -); -var capitalize = cacheStringFunction((str) => { - return str.charAt(0).toUpperCase() + str.slice(1); -}); -var toHandlerKey = cacheStringFunction( - (str) => { - const s = str ? `on${capitalize(str)}` : ``; - return s; - } -); -var hasChanged = (value, oldValue) => !Object.is(value, oldValue); -var invokeArrayFns = (fns, ...arg) => { - for (let i = 0; i < fns.length; i++) { - fns[i](...arg); - } -}; -var def = (obj, key, value, writable = false) => { - Object.defineProperty(obj, key, { - configurable: true, - enumerable: false, - writable, - value - }); -}; -var looseToNumber = (val) => { - const n = parseFloat(val); - return isNaN(n) ? val : n; -}; -var toNumber = (val) => { - const n = isString(val) ? Number(val) : NaN; - return isNaN(n) ? val : n; -}; -var _globalThis; -var getGlobalThis = () => { - return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); -}; -var GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; -var isGloballyAllowed = makeMap(GLOBALS_ALLOWED); -function normalizeStyle(value) { - if (isArray(value)) { - const res = {}; - for (let i = 0; i < value.length; i++) { - const item = value[i]; - const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); - if (normalized) { - for (const key in normalized) { - res[key] = normalized[key]; - } - } - } - return res; - } else if (isString(value) || isObject(value)) { - return value; - } -} -var listDelimiterRE = /;(?![^(]*\))/g; -var propertyDelimiterRE = /:([^]+)/; -var styleCommentRE = /\/\*[^]*?\*\//g; -function parseStringStyle(cssText) { - const ret = {}; - cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { - if (item) { - const tmp = item.split(propertyDelimiterRE); - tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); - } - }); - return ret; -} -function stringifyStyle(styles) { - if (!styles) return ""; - if (isString(styles)) return styles; - let ret = ""; - for (const key in styles) { - const value = styles[key]; - if (isString(value) || typeof value === "number") { - const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); - ret += `${normalizedKey}:${value};`; - } - } - return ret; -} -function normalizeClass(value) { - let res = ""; - if (isString(value)) { - res = value; - } else if (isArray(value)) { - for (let i = 0; i < value.length; i++) { - const normalized = normalizeClass(value[i]); - if (normalized) { - res += normalized + " "; - } - } - } else if (isObject(value)) { - for (const name in value) { - if (value[name]) { - res += name + " "; - } - } - } - return res.trim(); -} -function normalizeProps(props) { - if (!props) return null; - let { class: klass, style } = props; - if (klass && !isString(klass)) { - props.class = normalizeClass(klass); - } - if (style) { - props.style = normalizeStyle(style); - } - return props; -} -var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; -var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; -var MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; -var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; -var isHTMLTag = makeMap(HTML_TAGS); -var isSVGTag = makeMap(SVG_TAGS); -var isMathMLTag = makeMap(MATH_TAGS); -var isVoidTag = makeMap(VOID_TAGS); -var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; -var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); -var isBooleanAttr = makeMap( - specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` -); -function includeBooleanAttr(value) { - return !!value || value === ""; -} -var isKnownHtmlAttr = makeMap( - `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` -); -var isKnownSvgAttr = makeMap( - `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` -); -var isKnownMathMLAttr = makeMap( - `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns` -); -function isRenderableAttrValue(value) { - if (value == null) { - return false; - } - const type = typeof value; - return type === "string" || type === "number" || type === "boolean"; -} -var cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; -function getEscapedCssVarName(key, doubleEscape) { - return key.replace( - cssVarNameEscapeSymbolsRE, - (s) => doubleEscape ? s === '"' ? '\\\\\\"' : `\\\\${s}` : `\\${s}` - ); -} -function looseCompareArrays(a, b) { - if (a.length !== b.length) return false; - let equal = true; - for (let i = 0; equal && i < a.length; i++) { - equal = looseEqual(a[i], b[i]); - } - return equal; -} -function looseEqual(a, b) { - if (a === b) return true; - let aValidType = isDate(a); - let bValidType = isDate(b); - if (aValidType || bValidType) { - return aValidType && bValidType ? a.getTime() === b.getTime() : false; - } - aValidType = isSymbol(a); - bValidType = isSymbol(b); - if (aValidType || bValidType) { - return a === b; - } - aValidType = isArray(a); - bValidType = isArray(b); - if (aValidType || bValidType) { - return aValidType && bValidType ? looseCompareArrays(a, b) : false; - } - aValidType = isObject(a); - bValidType = isObject(b); - if (aValidType || bValidType) { - if (!aValidType || !bValidType) { - return false; - } - const aKeysCount = Object.keys(a).length; - const bKeysCount = Object.keys(b).length; - if (aKeysCount !== bKeysCount) { - return false; - } - for (const key in a) { - const aHasKey = a.hasOwnProperty(key); - const bHasKey = b.hasOwnProperty(key); - if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { - return false; - } - } - } - return String(a) === String(b); -} -function looseIndexOf(arr, val) { - return arr.findIndex((item) => looseEqual(item, val)); -} -var isRef = (val) => { - return !!(val && val["__v_isRef"] === true); -}; -var toDisplayString = (val) => { - return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); -}; -var replacer = (_key, val) => { - if (isRef(val)) { - return replacer(_key, val.value); - } else if (isMap(val)) { - return { - [`Map(${val.size})`]: [...val.entries()].reduce( - (entries, [key, val2], i) => { - entries[stringifySymbol(key, i) + " =>"] = val2; - return entries; - }, - {} - ) - }; - } else if (isSet(val)) { - return { - [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) - }; - } else if (isSymbol(val)) { - return stringifySymbol(val); - } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { - return String(val); - } - return val; -}; -var stringifySymbol = (v, i = "") => { - var _a; - return ( - // Symbol.description in es2019+ so we need to cast here to pass - // the lib: es2016 check - isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v - ); -}; - -// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js -function warn(msg, ...args) { - console.warn(`[Vue warn] ${msg}`, ...args); -} -var activeEffectScope; -var EffectScope = class { - constructor(detached = false) { - this.detached = detached; - this._active = true; - this.effects = []; - this.cleanups = []; - this._isPaused = false; - this.parent = activeEffectScope; - if (!detached && activeEffectScope) { - this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( - this - ) - 1; - } - } - get active() { - return this._active; - } - pause() { - if (this._active) { - this._isPaused = true; - let i, l; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].pause(); - } - } - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].pause(); - } - } - } - /** - * Resumes the effect scope, including all child scopes and effects. - */ - resume() { - if (this._active) { - if (this._isPaused) { - this._isPaused = false; - let i, l; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].resume(); - } - } - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].resume(); - } - } - } - } - run(fn) { - if (this._active) { - const currentEffectScope = activeEffectScope; - try { - activeEffectScope = this; - return fn(); - } finally { - activeEffectScope = currentEffectScope; - } - } else if (true) { - warn(`cannot run an inactive effect scope.`); - } - } - /** - * This should only be called on non-detached scopes - * @internal - */ - on() { - activeEffectScope = this; - } - /** - * This should only be called on non-detached scopes - * @internal - */ - off() { - activeEffectScope = this.parent; - } - stop(fromParent) { - if (this._active) { - this._active = false; - let i, l; - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].stop(); - } - this.effects.length = 0; - for (i = 0, l = this.cleanups.length; i < l; i++) { - this.cleanups[i](); - } - this.cleanups.length = 0; - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].stop(true); - } - this.scopes.length = 0; - } - if (!this.detached && this.parent && !fromParent) { - const last = this.parent.scopes.pop(); - if (last && last !== this) { - this.parent.scopes[this.index] = last; - last.index = this.index; - } - } - this.parent = void 0; - } - } -}; -function effectScope(detached) { - return new EffectScope(detached); -} -function getCurrentScope() { - return activeEffectScope; -} -function onScopeDispose(fn, failSilently = false) { - if (activeEffectScope) { - activeEffectScope.cleanups.push(fn); - } else if (!failSilently) { - warn( - `onScopeDispose() is called when there is no active effect scope to be associated with.` - ); - } -} -var activeSub; -var pausedQueueEffects = /* @__PURE__ */ new WeakSet(); -var ReactiveEffect = class { - constructor(fn) { - this.fn = fn; - this.deps = void 0; - this.depsTail = void 0; - this.flags = 1 | 4; - this.next = void 0; - this.cleanup = void 0; - this.scheduler = void 0; - if (activeEffectScope && activeEffectScope.active) { - activeEffectScope.effects.push(this); - } - } - pause() { - this.flags |= 64; - } - resume() { - if (this.flags & 64) { - this.flags &= ~64; - if (pausedQueueEffects.has(this)) { - pausedQueueEffects.delete(this); - this.trigger(); - } - } - } - /** - * @internal - */ - notify() { - if (this.flags & 2 && !(this.flags & 32)) { - return; - } - if (!(this.flags & 8)) { - batch(this); - } - } - run() { - if (!(this.flags & 1)) { - return this.fn(); - } - this.flags |= 2; - cleanupEffect(this); - prepareDeps(this); - const prevEffect = activeSub; - const prevShouldTrack = shouldTrack; - activeSub = this; - shouldTrack = true; - try { - return this.fn(); - } finally { - if (activeSub !== this) { - warn( - "Active effect was not restored correctly - this is likely a Vue internal bug." - ); - } - cleanupDeps(this); - activeSub = prevEffect; - shouldTrack = prevShouldTrack; - this.flags &= ~2; - } - } - stop() { - if (this.flags & 1) { - for (let link = this.deps; link; link = link.nextDep) { - removeSub(link); - } - this.deps = this.depsTail = void 0; - cleanupEffect(this); - this.onStop && this.onStop(); - this.flags &= ~1; - } - } - trigger() { - if (this.flags & 64) { - pausedQueueEffects.add(this); - } else if (this.scheduler) { - this.scheduler(); - } else { - this.runIfDirty(); - } - } - /** - * @internal - */ - runIfDirty() { - if (isDirty(this)) { - this.run(); - } - } - get dirty() { - return isDirty(this); - } -}; -var batchDepth = 0; -var batchedSub; -var batchedComputed; -function batch(sub, isComputed = false) { - sub.flags |= 8; - if (isComputed) { - sub.next = batchedComputed; - batchedComputed = sub; - return; - } - sub.next = batchedSub; - batchedSub = sub; -} -function startBatch() { - batchDepth++; -} -function endBatch() { - if (--batchDepth > 0) { - return; - } - if (batchedComputed) { - let e = batchedComputed; - batchedComputed = void 0; - while (e) { - const next = e.next; - e.next = void 0; - e.flags &= ~8; - e = next; - } - } - let error; - while (batchedSub) { - let e = batchedSub; - batchedSub = void 0; - while (e) { - const next = e.next; - e.next = void 0; - e.flags &= ~8; - if (e.flags & 1) { - try { - ; - e.trigger(); - } catch (err) { - if (!error) error = err; - } - } - e = next; - } - } - if (error) throw error; -} -function prepareDeps(sub) { - for (let link = sub.deps; link; link = link.nextDep) { - link.version = -1; - link.prevActiveLink = link.dep.activeLink; - link.dep.activeLink = link; - } -} -function cleanupDeps(sub) { - let head; - let tail = sub.depsTail; - let link = tail; - while (link) { - const prev = link.prevDep; - if (link.version === -1) { - if (link === tail) tail = prev; - removeSub(link); - removeDep(link); - } else { - head = link; - } - link.dep.activeLink = link.prevActiveLink; - link.prevActiveLink = void 0; - link = prev; - } - sub.deps = head; - sub.depsTail = tail; -} -function isDirty(sub) { - for (let link = sub.deps; link; link = link.nextDep) { - if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { - return true; - } - } - if (sub._dirty) { - return true; - } - return false; -} -function refreshComputed(computed3) { - if (computed3.flags & 4 && !(computed3.flags & 16)) { - return; - } - computed3.flags &= ~16; - if (computed3.globalVersion === globalVersion) { - return; - } - computed3.globalVersion = globalVersion; - const dep = computed3.dep; - computed3.flags |= 2; - if (dep.version > 0 && !computed3.isSSR && computed3.deps && !isDirty(computed3)) { - computed3.flags &= ~2; - return; - } - const prevSub = activeSub; - const prevShouldTrack = shouldTrack; - activeSub = computed3; - shouldTrack = true; - try { - prepareDeps(computed3); - const value = computed3.fn(computed3._value); - if (dep.version === 0 || hasChanged(value, computed3._value)) { - computed3._value = value; - dep.version++; - } - } catch (err) { - dep.version++; - throw err; - } finally { - activeSub = prevSub; - shouldTrack = prevShouldTrack; - cleanupDeps(computed3); - computed3.flags &= ~2; - } -} -function removeSub(link, soft = false) { - const { dep, prevSub, nextSub } = link; - if (prevSub) { - prevSub.nextSub = nextSub; - link.prevSub = void 0; - } - if (nextSub) { - nextSub.prevSub = prevSub; - link.nextSub = void 0; - } - if (dep.subsHead === link) { - dep.subsHead = nextSub; - } - if (dep.subs === link) { - dep.subs = prevSub; - if (!prevSub && dep.computed) { - dep.computed.flags &= ~4; - for (let l = dep.computed.deps; l; l = l.nextDep) { - removeSub(l, true); - } - } - } - if (!soft && !--dep.sc && dep.map) { - dep.map.delete(dep.key); - } -} -function removeDep(link) { - const { prevDep, nextDep } = link; - if (prevDep) { - prevDep.nextDep = nextDep; - link.prevDep = void 0; - } - if (nextDep) { - nextDep.prevDep = prevDep; - link.nextDep = void 0; - } -} -function effect(fn, options) { - if (fn.effect instanceof ReactiveEffect) { - fn = fn.effect.fn; - } - const e = new ReactiveEffect(fn); - if (options) { - extend(e, options); - } - try { - e.run(); - } catch (err) { - e.stop(); - throw err; - } - const runner = e.run.bind(e); - runner.effect = e; - return runner; -} -function stop(runner) { - runner.effect.stop(); -} -var shouldTrack = true; -var trackStack = []; -function pauseTracking() { - trackStack.push(shouldTrack); - shouldTrack = false; -} -function resetTracking() { - const last = trackStack.pop(); - shouldTrack = last === void 0 ? true : last; -} -function cleanupEffect(e) { - const { cleanup } = e; - e.cleanup = void 0; - if (cleanup) { - const prevSub = activeSub; - activeSub = void 0; - try { - cleanup(); - } finally { - activeSub = prevSub; - } - } -} -var globalVersion = 0; -var Link = class { - constructor(sub, dep) { - this.sub = sub; - this.dep = dep; - this.version = dep.version; - this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; - } -}; -var Dep = class { - constructor(computed3) { - this.computed = computed3; - this.version = 0; - this.activeLink = void 0; - this.subs = void 0; - this.map = void 0; - this.key = void 0; - this.sc = 0; - if (true) { - this.subsHead = void 0; - } - } - track(debugInfo) { - if (!activeSub || !shouldTrack || activeSub === this.computed) { - return; - } - let link = this.activeLink; - if (link === void 0 || link.sub !== activeSub) { - link = this.activeLink = new Link(activeSub, this); - if (!activeSub.deps) { - activeSub.deps = activeSub.depsTail = link; - } else { - link.prevDep = activeSub.depsTail; - activeSub.depsTail.nextDep = link; - activeSub.depsTail = link; - } - addSub(link); - } else if (link.version === -1) { - link.version = this.version; - if (link.nextDep) { - const next = link.nextDep; - next.prevDep = link.prevDep; - if (link.prevDep) { - link.prevDep.nextDep = next; - } - link.prevDep = activeSub.depsTail; - link.nextDep = void 0; - activeSub.depsTail.nextDep = link; - activeSub.depsTail = link; - if (activeSub.deps === link) { - activeSub.deps = next; - } - } - } - if (activeSub.onTrack) { - activeSub.onTrack( - extend( - { - effect: activeSub - }, - debugInfo - ) - ); - } - return link; - } - trigger(debugInfo) { - this.version++; - globalVersion++; - this.notify(debugInfo); - } - notify(debugInfo) { - startBatch(); - try { - if (true) { - for (let head = this.subsHead; head; head = head.nextSub) { - if (head.sub.onTrigger && !(head.sub.flags & 8)) { - head.sub.onTrigger( - extend( - { - effect: head.sub - }, - debugInfo - ) - ); - } - } - } - for (let link = this.subs; link; link = link.prevSub) { - if (link.sub.notify()) { - ; - link.sub.dep.notify(); - } - } - } finally { - endBatch(); - } - } -}; -function addSub(link) { - link.dep.sc++; - if (link.sub.flags & 4) { - const computed3 = link.dep.computed; - if (computed3 && !link.dep.subs) { - computed3.flags |= 4 | 16; - for (let l = computed3.deps; l; l = l.nextDep) { - addSub(l); - } - } - const currentTail = link.dep.subs; - if (currentTail !== link) { - link.prevSub = currentTail; - if (currentTail) currentTail.nextSub = link; - } - if (link.dep.subsHead === void 0) { - link.dep.subsHead = link; - } - link.dep.subs = link; - } -} -var targetMap = /* @__PURE__ */ new WeakMap(); -var ITERATE_KEY = Symbol( - true ? "Object iterate" : "" -); -var MAP_KEY_ITERATE_KEY = Symbol( - true ? "Map keys iterate" : "" -); -var ARRAY_ITERATE_KEY = Symbol( - true ? "Array iterate" : "" -); -function track(target, type, key) { - if (shouldTrack && activeSub) { - let depsMap = targetMap.get(target); - if (!depsMap) { - targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); - } - let dep = depsMap.get(key); - if (!dep) { - depsMap.set(key, dep = new Dep()); - dep.map = depsMap; - dep.key = key; - } - if (true) { - dep.track({ - target, - type, - key - }); - } else { - dep.track(); - } - } -} -function trigger(target, type, key, newValue, oldValue, oldTarget) { - const depsMap = targetMap.get(target); - if (!depsMap) { - globalVersion++; - return; - } - const run = (dep) => { - if (dep) { - if (true) { - dep.trigger({ - target, - type, - key, - newValue, - oldValue, - oldTarget - }); - } else { - dep.trigger(); - } - } - }; - startBatch(); - if (type === "clear") { - depsMap.forEach(run); - } else { - const targetIsArray = isArray(target); - const isArrayIndex = targetIsArray && isIntegerKey(key); - if (targetIsArray && key === "length") { - const newLength = Number(newValue); - depsMap.forEach((dep, key2) => { - if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { - run(dep); - } - }); - } else { - if (key !== void 0 || depsMap.has(void 0)) { - run(depsMap.get(key)); - } - if (isArrayIndex) { - run(depsMap.get(ARRAY_ITERATE_KEY)); - } - switch (type) { - case "add": - if (!targetIsArray) { - run(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - run(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } else if (isArrayIndex) { - run(depsMap.get("length")); - } - break; - case "delete": - if (!targetIsArray) { - run(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - run(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } - break; - case "set": - if (isMap(target)) { - run(depsMap.get(ITERATE_KEY)); - } - break; - } - } - } - endBatch(); -} -function getDepFromReactive(object, key) { - const depMap = targetMap.get(object); - return depMap && depMap.get(key); -} -function reactiveReadArray(array) { - const raw = toRaw(array); - if (raw === array) return raw; - track(raw, "iterate", ARRAY_ITERATE_KEY); - return isShallow(array) ? raw : raw.map(toReactive); -} -function shallowReadArray(arr) { - track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); - return arr; -} -var arrayInstrumentations = { - __proto__: null, - [Symbol.iterator]() { - return iterator(this, Symbol.iterator, toReactive); - }, - concat(...args) { - return reactiveReadArray(this).concat( - ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) - ); - }, - entries() { - return iterator(this, "entries", (value) => { - value[1] = toReactive(value[1]); - return value; - }); - }, - every(fn, thisArg) { - return apply(this, "every", fn, thisArg, void 0, arguments); - }, - filter(fn, thisArg) { - return apply(this, "filter", fn, thisArg, (v) => v.map(toReactive), arguments); - }, - find(fn, thisArg) { - return apply(this, "find", fn, thisArg, toReactive, arguments); - }, - findIndex(fn, thisArg) { - return apply(this, "findIndex", fn, thisArg, void 0, arguments); - }, - findLast(fn, thisArg) { - return apply(this, "findLast", fn, thisArg, toReactive, arguments); - }, - findLastIndex(fn, thisArg) { - return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); - }, - // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement - forEach(fn, thisArg) { - return apply(this, "forEach", fn, thisArg, void 0, arguments); - }, - includes(...args) { - return searchProxy(this, "includes", args); - }, - indexOf(...args) { - return searchProxy(this, "indexOf", args); - }, - join(separator) { - return reactiveReadArray(this).join(separator); - }, - // keys() iterator only reads `length`, no optimisation required - lastIndexOf(...args) { - return searchProxy(this, "lastIndexOf", args); - }, - map(fn, thisArg) { - return apply(this, "map", fn, thisArg, void 0, arguments); - }, - pop() { - return noTracking(this, "pop"); - }, - push(...args) { - return noTracking(this, "push", args); - }, - reduce(fn, ...args) { - return reduce(this, "reduce", fn, args); - }, - reduceRight(fn, ...args) { - return reduce(this, "reduceRight", fn, args); - }, - shift() { - return noTracking(this, "shift"); - }, - // slice could use ARRAY_ITERATE but also seems to beg for range tracking - some(fn, thisArg) { - return apply(this, "some", fn, thisArg, void 0, arguments); - }, - splice(...args) { - return noTracking(this, "splice", args); - }, - toReversed() { - return reactiveReadArray(this).toReversed(); - }, - toSorted(comparer) { - return reactiveReadArray(this).toSorted(comparer); - }, - toSpliced(...args) { - return reactiveReadArray(this).toSpliced(...args); - }, - unshift(...args) { - return noTracking(this, "unshift", args); - }, - values() { - return iterator(this, "values", toReactive); - } -}; -function iterator(self2, method, wrapValue) { - const arr = shallowReadArray(self2); - const iter = arr[method](); - if (arr !== self2 && !isShallow(self2)) { - iter._next = iter.next; - iter.next = () => { - const result = iter._next(); - if (result.value) { - result.value = wrapValue(result.value); - } - return result; - }; - } - return iter; -} -var arrayProto = Array.prototype; -function apply(self2, method, fn, thisArg, wrappedRetFn, args) { - const arr = shallowReadArray(self2); - const needsWrap = arr !== self2 && !isShallow(self2); - const methodFn = arr[method]; - if (methodFn !== arrayProto[method]) { - const result2 = methodFn.apply(self2, args); - return needsWrap ? toReactive(result2) : result2; - } - let wrappedFn = fn; - if (arr !== self2) { - if (needsWrap) { - wrappedFn = function(item, index) { - return fn.call(this, toReactive(item), index, self2); - }; - } else if (fn.length > 2) { - wrappedFn = function(item, index) { - return fn.call(this, item, index, self2); - }; - } - } - const result = methodFn.call(arr, wrappedFn, thisArg); - return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; -} -function reduce(self2, method, fn, args) { - const arr = shallowReadArray(self2); - let wrappedFn = fn; - if (arr !== self2) { - if (!isShallow(self2)) { - wrappedFn = function(acc, item, index) { - return fn.call(this, acc, toReactive(item), index, self2); - }; - } else if (fn.length > 3) { - wrappedFn = function(acc, item, index) { - return fn.call(this, acc, item, index, self2); - }; - } - } - return arr[method](wrappedFn, ...args); -} -function searchProxy(self2, method, args) { - const arr = toRaw(self2); - track(arr, "iterate", ARRAY_ITERATE_KEY); - const res = arr[method](...args); - if ((res === -1 || res === false) && isProxy(args[0])) { - args[0] = toRaw(args[0]); - return arr[method](...args); - } - return res; -} -function noTracking(self2, method, args = []) { - pauseTracking(); - startBatch(); - const res = toRaw(self2)[method].apply(self2, args); - endBatch(); - resetTracking(); - return res; -} -var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); -var builtInSymbols = new Set( - Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) -); -function hasOwnProperty2(key) { - if (!isSymbol(key)) key = String(key); - const obj = toRaw(this); - track(obj, "has", key); - return obj.hasOwnProperty(key); -} -var BaseReactiveHandler = class { - constructor(_isReadonly = false, _isShallow = false) { - this._isReadonly = _isReadonly; - this._isShallow = _isShallow; - } - get(target, key, receiver) { - if (key === "__v_skip") return target["__v_skip"]; - const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_isShallow") { - return isShallow2; - } else if (key === "__v_raw") { - if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype - // this means the receiver is a user proxy of the reactive proxy - Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { - return target; - } - return; - } - const targetIsArray = isArray(target); - if (!isReadonly2) { - let fn; - if (targetIsArray && (fn = arrayInstrumentations[key])) { - return fn; - } - if (key === "hasOwnProperty") { - return hasOwnProperty2; - } - } - const res = Reflect.get( - target, - key, - // if this is a proxy wrapping a ref, return methods using the raw ref - // as receiver so that we don't have to call `toRaw` on the ref in all - // its class methods - isRef2(target) ? target : receiver - ); - if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { - return res; - } - if (!isReadonly2) { - track(target, "get", key); - } - if (isShallow2) { - return res; - } - if (isRef2(res)) { - return targetIsArray && isIntegerKey(key) ? res : res.value; - } - if (isObject(res)) { - return isReadonly2 ? readonly(res) : reactive(res); - } - return res; - } -}; -var MutableReactiveHandler = class extends BaseReactiveHandler { - constructor(isShallow2 = false) { - super(false, isShallow2); - } - set(target, key, value, receiver) { - let oldValue = target[key]; - if (!this._isShallow) { - const isOldValueReadonly = isReadonly(oldValue); - if (!isShallow(value) && !isReadonly(value)) { - oldValue = toRaw(oldValue); - value = toRaw(value); - } - if (!isArray(target) && isRef2(oldValue) && !isRef2(value)) { - if (isOldValueReadonly) { - return false; - } else { - oldValue.value = value; - return true; - } - } - } - const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); - const result = Reflect.set( - target, - key, - value, - isRef2(target) ? target : receiver - ); - if (target === toRaw(receiver)) { - if (!hadKey) { - trigger(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set", key, value, oldValue); - } - } - return result; - } - deleteProperty(target, key) { - const hadKey = hasOwn(target, key); - const oldValue = target[key]; - const result = Reflect.deleteProperty(target, key); - if (result && hadKey) { - trigger(target, "delete", key, void 0, oldValue); - } - return result; - } - has(target, key) { - const result = Reflect.has(target, key); - if (!isSymbol(key) || !builtInSymbols.has(key)) { - track(target, "has", key); - } - return result; - } - ownKeys(target) { - track( - target, - "iterate", - isArray(target) ? "length" : ITERATE_KEY - ); - return Reflect.ownKeys(target); - } -}; -var ReadonlyReactiveHandler = class extends BaseReactiveHandler { - constructor(isShallow2 = false) { - super(true, isShallow2); - } - set(target, key) { - if (true) { - warn( - `Set operation on key "${String(key)}" failed: target is readonly.`, - target - ); - } - return true; - } - deleteProperty(target, key) { - if (true) { - warn( - `Delete operation on key "${String(key)}" failed: target is readonly.`, - target - ); - } - return true; - } -}; -var mutableHandlers = new MutableReactiveHandler(); -var readonlyHandlers = new ReadonlyReactiveHandler(); -var shallowReactiveHandlers = new MutableReactiveHandler(true); -var shallowReadonlyHandlers = new ReadonlyReactiveHandler(true); -var toShallow = (value) => value; -var getProto = (v) => Reflect.getPrototypeOf(v); -function createIterableMethod(method, isReadonly2, isShallow2) { - return function(...args) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const targetIsMap = isMap(rawTarget); - const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; - const isKeyOnly = method === "keys" && targetIsMap; - const innerIterator = target[method](...args); - const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; - !isReadonly2 && track( - rawTarget, - "iterate", - isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY - ); - return { - // iterator protocol - next() { - const { value, done } = innerIterator.next(); - return done ? { value, done } : { - value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), - done - }; - }, - // iterable protocol - [Symbol.iterator]() { - return this; - } - }; - }; -} -function createReadonlyMethod(type) { - return function(...args) { - if (true) { - const key = args[0] ? `on key "${args[0]}" ` : ``; - warn( - `${capitalize(type)} operation ${key}failed: target is readonly.`, - toRaw(this) - ); - } - return type === "delete" ? false : type === "clear" ? void 0 : this; - }; -} -function createInstrumentations(readonly2, shallow) { - const instrumentations = { - get(key) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!readonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "get", key); - } - track(rawTarget, "get", rawKey); - } - const { has } = getProto(rawTarget); - const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive; - if (has.call(rawTarget, key)) { - return wrap(target.get(key)); - } else if (has.call(rawTarget, rawKey)) { - return wrap(target.get(rawKey)); - } else if (target !== rawTarget) { - target.get(key); - } - }, - get size() { - const target = this["__v_raw"]; - !readonly2 && track(toRaw(target), "iterate", ITERATE_KEY); - return Reflect.get(target, "size", target); - }, - has(key) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!readonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "has", key); - } - track(rawTarget, "has", rawKey); - } - return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); - }, - forEach(callback, thisArg) { - const observed = this; - const target = observed["__v_raw"]; - const rawTarget = toRaw(target); - const wrap = shallow ? toShallow : readonly2 ? toReadonly : toReactive; - !readonly2 && track(rawTarget, "iterate", ITERATE_KEY); - return target.forEach((value, key) => { - return callback.call(thisArg, wrap(value), wrap(key), observed); - }); - } - }; - extend( - instrumentations, - readonly2 ? { - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear") - } : { - add(value) { - if (!shallow && !isShallow(value) && !isReadonly(value)) { - value = toRaw(value); - } - const target = toRaw(this); - const proto = getProto(target); - const hadKey = proto.has.call(target, value); - if (!hadKey) { - target.add(value); - trigger(target, "add", value, value); - } - return this; - }, - set(key, value) { - if (!shallow && !isShallow(value) && !isReadonly(value)) { - value = toRaw(value); - } - const target = toRaw(this); - const { has, get } = getProto(target); - let hadKey = has.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } else if (true) { - checkIdentityKeys(target, has, key); - } - const oldValue = get.call(target, key); - target.set(key, value); - if (!hadKey) { - trigger(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set", key, value, oldValue); - } - return this; - }, - delete(key) { - const target = toRaw(this); - const { has, get } = getProto(target); - let hadKey = has.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has.call(target, key); - } else if (true) { - checkIdentityKeys(target, has, key); - } - const oldValue = get ? get.call(target, key) : void 0; - const result = target.delete(key); - if (hadKey) { - trigger(target, "delete", key, void 0, oldValue); - } - return result; - }, - clear() { - const target = toRaw(this); - const hadItems = target.size !== 0; - const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; - const result = target.clear(); - if (hadItems) { - trigger( - target, - "clear", - void 0, - void 0, - oldTarget - ); - } - return result; - } - } - ); - const iteratorMethods = [ - "keys", - "values", - "entries", - Symbol.iterator - ]; - iteratorMethods.forEach((method) => { - instrumentations[method] = createIterableMethod(method, readonly2, shallow); - }); - return instrumentations; -} -function createInstrumentationGetter(isReadonly2, shallow) { - const instrumentations = createInstrumentations(isReadonly2, shallow); - return (target, key, receiver) => { - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_raw") { - return target; - } - return Reflect.get( - hasOwn(instrumentations, key) && key in target ? instrumentations : target, - key, - receiver - ); - }; -} -var mutableCollectionHandlers = { - get: createInstrumentationGetter(false, false) -}; -var shallowCollectionHandlers = { - get: createInstrumentationGetter(false, true) -}; -var readonlyCollectionHandlers = { - get: createInstrumentationGetter(true, false) -}; -var shallowReadonlyCollectionHandlers = { - get: createInstrumentationGetter(true, true) -}; -function checkIdentityKeys(target, has, key) { - const rawKey = toRaw(key); - if (rawKey !== key && has.call(target, rawKey)) { - const type = toRawType(target); - warn( - `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` - ); - } -} -var reactiveMap = /* @__PURE__ */ new WeakMap(); -var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); -var readonlyMap = /* @__PURE__ */ new WeakMap(); -var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); -function targetTypeMap(rawType) { - switch (rawType) { - case "Object": - case "Array": - return 1; - case "Map": - case "Set": - case "WeakMap": - case "WeakSet": - return 2; - default: - return 0; - } -} -function getTargetType(value) { - return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); -} -function reactive(target) { - if (isReadonly(target)) { - return target; - } - return createReactiveObject( - target, - false, - mutableHandlers, - mutableCollectionHandlers, - reactiveMap - ); -} -function shallowReactive(target) { - return createReactiveObject( - target, - false, - shallowReactiveHandlers, - shallowCollectionHandlers, - shallowReactiveMap - ); -} -function readonly(target) { - return createReactiveObject( - target, - true, - readonlyHandlers, - readonlyCollectionHandlers, - readonlyMap - ); -} -function shallowReadonly(target) { - return createReactiveObject( - target, - true, - shallowReadonlyHandlers, - shallowReadonlyCollectionHandlers, - shallowReadonlyMap - ); -} -function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { - if (!isObject(target)) { - if (true) { - warn( - `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( - target - )}` - ); - } - return target; - } - if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { - return target; - } - const existingProxy = proxyMap.get(target); - if (existingProxy) { - return existingProxy; - } - const targetType = getTargetType(target); - if (targetType === 0) { - return target; - } - const proxy = new Proxy( - target, - targetType === 2 ? collectionHandlers : baseHandlers - ); - proxyMap.set(target, proxy); - return proxy; -} -function isReactive(value) { - if (isReadonly(value)) { - return isReactive(value["__v_raw"]); - } - return !!(value && value["__v_isReactive"]); -} -function isReadonly(value) { - return !!(value && value["__v_isReadonly"]); -} -function isShallow(value) { - return !!(value && value["__v_isShallow"]); -} -function isProxy(value) { - return value ? !!value["__v_raw"] : false; -} -function toRaw(observed) { - const raw = observed && observed["__v_raw"]; - return raw ? toRaw(raw) : observed; -} -function markRaw(value) { - if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { - def(value, "__v_skip", true); - } - return value; -} -var toReactive = (value) => isObject(value) ? reactive(value) : value; -var toReadonly = (value) => isObject(value) ? readonly(value) : value; -function isRef2(r) { - return r ? r["__v_isRef"] === true : false; -} -function ref(value) { - return createRef(value, false); -} -function shallowRef(value) { - return createRef(value, true); -} -function createRef(rawValue, shallow) { - if (isRef2(rawValue)) { - return rawValue; - } - return new RefImpl(rawValue, shallow); -} -var RefImpl = class { - constructor(value, isShallow2) { - this.dep = new Dep(); - this["__v_isRef"] = true; - this["__v_isShallow"] = false; - this._rawValue = isShallow2 ? value : toRaw(value); - this._value = isShallow2 ? value : toReactive(value); - this["__v_isShallow"] = isShallow2; - } - get value() { - if (true) { - this.dep.track({ - target: this, - type: "get", - key: "value" - }); - } else { - this.dep.track(); - } - return this._value; - } - set value(newValue) { - const oldValue = this._rawValue; - const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); - newValue = useDirectValue ? newValue : toRaw(newValue); - if (hasChanged(newValue, oldValue)) { - this._rawValue = newValue; - this._value = useDirectValue ? newValue : toReactive(newValue); - if (true) { - this.dep.trigger({ - target: this, - type: "set", - key: "value", - newValue, - oldValue - }); - } else { - this.dep.trigger(); - } - } - } -}; -function triggerRef(ref2) { - if (ref2.dep) { - if (true) { - ref2.dep.trigger({ - target: ref2, - type: "set", - key: "value", - newValue: ref2._value - }); - } else { - ref2.dep.trigger(); - } - } -} -function unref(ref2) { - return isRef2(ref2) ? ref2.value : ref2; -} -function toValue(source) { - return isFunction(source) ? source() : unref(source); -} -var shallowUnwrapHandlers = { - get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), - set: (target, key, value, receiver) => { - const oldValue = target[key]; - if (isRef2(oldValue) && !isRef2(value)) { - oldValue.value = value; - return true; - } else { - return Reflect.set(target, key, value, receiver); - } - } -}; -function proxyRefs(objectWithRefs) { - return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); -} -var CustomRefImpl = class { - constructor(factory) { - this["__v_isRef"] = true; - this._value = void 0; - const dep = this.dep = new Dep(); - const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); - this._get = get; - this._set = set; - } - get value() { - return this._value = this._get(); - } - set value(newVal) { - this._set(newVal); - } -}; -function customRef(factory) { - return new CustomRefImpl(factory); -} -function toRefs(object) { - if (!isProxy(object)) { - warn(`toRefs() expects a reactive object but received a plain one.`); - } - const ret = isArray(object) ? new Array(object.length) : {}; - for (const key in object) { - ret[key] = propertyToRef(object, key); - } - return ret; -} -var ObjectRefImpl = class { - constructor(_object, _key, _defaultValue) { - this._object = _object; - this._key = _key; - this._defaultValue = _defaultValue; - this["__v_isRef"] = true; - this._value = void 0; - } - get value() { - const val = this._object[this._key]; - return this._value = val === void 0 ? this._defaultValue : val; - } - set value(newVal) { - this._object[this._key] = newVal; - } - get dep() { - return getDepFromReactive(toRaw(this._object), this._key); - } -}; -var GetterRefImpl = class { - constructor(_getter) { - this._getter = _getter; - this["__v_isRef"] = true; - this["__v_isReadonly"] = true; - this._value = void 0; - } - get value() { - return this._value = this._getter(); - } -}; -function toRef(source, key, defaultValue) { - if (isRef2(source)) { - return source; - } else if (isFunction(source)) { - return new GetterRefImpl(source); - } else if (isObject(source) && arguments.length > 1) { - return propertyToRef(source, key, defaultValue); - } else { - return ref(source); - } -} -function propertyToRef(source, key, defaultValue) { - const val = source[key]; - return isRef2(val) ? val : new ObjectRefImpl(source, key, defaultValue); -} -var ComputedRefImpl = class { - constructor(fn, setter, isSSR) { - this.fn = fn; - this.setter = setter; - this._value = void 0; - this.dep = new Dep(this); - this.__v_isRef = true; - this.deps = void 0; - this.depsTail = void 0; - this.flags = 16; - this.globalVersion = globalVersion - 1; - this.next = void 0; - this.effect = this; - this["__v_isReadonly"] = !setter; - this.isSSR = isSSR; - } - /** - * @internal - */ - notify() { - this.flags |= 16; - if (!(this.flags & 8) && // avoid infinite self recursion - activeSub !== this) { - batch(this, true); - return true; - } else if (true) ; - } - get value() { - const link = true ? this.dep.track({ - target: this, - type: "get", - key: "value" - }) : this.dep.track(); - refreshComputed(this); - if (link) { - link.version = this.dep.version; - } - return this._value; - } - set value(newValue) { - if (this.setter) { - this.setter(newValue); - } else if (true) { - warn("Write operation failed: computed value is readonly"); - } - } -}; -function computed(getterOrOptions, debugOptions, isSSR = false) { - let getter; - let setter; - if (isFunction(getterOrOptions)) { - getter = getterOrOptions; - } else { - getter = getterOrOptions.get; - setter = getterOrOptions.set; - } - const cRef = new ComputedRefImpl(getter, setter, isSSR); - if (debugOptions && !isSSR) { - cRef.onTrack = debugOptions.onTrack; - cRef.onTrigger = debugOptions.onTrigger; - } - return cRef; -} -var TrackOpTypes = { - "GET": "get", - "HAS": "has", - "ITERATE": "iterate" -}; -var TriggerOpTypes = { - "SET": "set", - "ADD": "add", - "DELETE": "delete", - "CLEAR": "clear" -}; -var INITIAL_WATCHER_VALUE = {}; -var cleanupMap = /* @__PURE__ */ new WeakMap(); -var activeWatcher = void 0; -function getCurrentWatcher() { - return activeWatcher; -} -function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { - if (owner) { - let cleanups = cleanupMap.get(owner); - if (!cleanups) cleanupMap.set(owner, cleanups = []); - cleanups.push(cleanupFn); - } else if (!failSilently) { - warn( - `onWatcherCleanup() was called when there was no active watcher to associate with.` - ); - } -} -function watch(source, cb, options = EMPTY_OBJ) { - const { immediate, deep, once, scheduler, augmentJob, call } = options; - const warnInvalidSource = (s) => { - (options.onWarn || warn)( - `Invalid watch source: `, - s, - `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` - ); - }; - const reactiveGetter = (source2) => { - if (deep) return source2; - if (isShallow(source2) || deep === false || deep === 0) - return traverse(source2, 1); - return traverse(source2); - }; - let effect2; - let getter; - let cleanup; - let boundCleanup; - let forceTrigger = false; - let isMultiSource = false; - if (isRef2(source)) { - getter = () => source.value; - forceTrigger = isShallow(source); - } else if (isReactive(source)) { - getter = () => reactiveGetter(source); - forceTrigger = true; - } else if (isArray(source)) { - isMultiSource = true; - forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); - getter = () => source.map((s) => { - if (isRef2(s)) { - return s.value; - } else if (isReactive(s)) { - return reactiveGetter(s); - } else if (isFunction(s)) { - return call ? call(s, 2) : s(); - } else { - warnInvalidSource(s); - } - }); - } else if (isFunction(source)) { - if (cb) { - getter = call ? () => call(source, 2) : source; - } else { - getter = () => { - if (cleanup) { - pauseTracking(); - try { - cleanup(); - } finally { - resetTracking(); - } - } - const currentEffect = activeWatcher; - activeWatcher = effect2; - try { - return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); - } finally { - activeWatcher = currentEffect; - } - }; - } - } else { - getter = NOOP; - warnInvalidSource(source); - } - if (cb && deep) { - const baseGetter = getter; - const depth = deep === true ? Infinity : deep; - getter = () => traverse(baseGetter(), depth); - } - const scope = getCurrentScope(); - const watchHandle = () => { - effect2.stop(); - if (scope && scope.active) { - remove(scope.effects, effect2); - } - }; - if (once && cb) { - const _cb = cb; - cb = (...args) => { - _cb(...args); - watchHandle(); - }; - } - let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; - const job = (immediateFirstRun) => { - if (!(effect2.flags & 1) || !effect2.dirty && !immediateFirstRun) { - return; - } - if (cb) { - const newValue = effect2.run(); - if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { - if (cleanup) { - cleanup(); - } - const currentWatcher = activeWatcher; - activeWatcher = effect2; - try { - const args = [ - newValue, - // pass undefined as the old value when it's changed for the first time - oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, - boundCleanup - ]; - call ? call(cb, 3, args) : ( - // @ts-expect-error - cb(...args) - ); - oldValue = newValue; - } finally { - activeWatcher = currentWatcher; - } - } - } else { - effect2.run(); - } - }; - if (augmentJob) { - augmentJob(job); - } - effect2 = new ReactiveEffect(getter); - effect2.scheduler = scheduler ? () => scheduler(job, false) : job; - boundCleanup = (fn) => onWatcherCleanup(fn, false, effect2); - cleanup = effect2.onStop = () => { - const cleanups = cleanupMap.get(effect2); - if (cleanups) { - if (call) { - call(cleanups, 4); - } else { - for (const cleanup2 of cleanups) cleanup2(); - } - cleanupMap.delete(effect2); - } - }; - if (true) { - effect2.onTrack = options.onTrack; - effect2.onTrigger = options.onTrigger; - } - if (cb) { - if (immediate) { - job(true); - } else { - oldValue = effect2.run(); - } - } else if (scheduler) { - scheduler(job.bind(null, true), true); - } else { - effect2.run(); - } - watchHandle.pause = effect2.pause.bind(effect2); - watchHandle.resume = effect2.resume.bind(effect2); - watchHandle.stop = watchHandle; - return watchHandle; -} -function traverse(value, depth = Infinity, seen) { - if (depth <= 0 || !isObject(value) || value["__v_skip"]) { - return value; - } - seen = seen || /* @__PURE__ */ new Set(); - if (seen.has(value)) { - return value; - } - seen.add(value); - depth--; - if (isRef2(value)) { - traverse(value.value, depth, seen); - } else if (isArray(value)) { - for (let i = 0; i < value.length; i++) { - traverse(value[i], depth, seen); - } - } else if (isSet(value) || isMap(value)) { - value.forEach((v) => { - traverse(v, depth, seen); - }); - } else if (isPlainObject(value)) { - for (const key in value) { - traverse(value[key], depth, seen); - } - for (const key of Object.getOwnPropertySymbols(value)) { - if (Object.prototype.propertyIsEnumerable.call(value, key)) { - traverse(value[key], depth, seen); - } - } - } - return value; -} - -// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js -var stack = []; -function pushWarningContext(vnode) { - stack.push(vnode); -} -function popWarningContext() { - stack.pop(); -} -var isWarning = false; -function warn$1(msg, ...args) { - if (isWarning) return; - isWarning = true; - pauseTracking(); - const instance = stack.length ? stack[stack.length - 1].component : null; - const appWarnHandler = instance && instance.appContext.config.warnHandler; - const trace = getComponentTrace(); - if (appWarnHandler) { - callWithErrorHandling( - appWarnHandler, - instance, - 11, - [ - // eslint-disable-next-line no-restricted-syntax - msg + args.map((a) => { - var _a, _b; - return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); - }).join(""), - instance && instance.proxy, - trace.map( - ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` - ).join("\n"), - trace - ] - ); - } else { - const warnArgs = [`[Vue warn]: ${msg}`, ...args]; - if (trace.length && // avoid spamming console during tests - true) { - warnArgs.push(` -`, ...formatTrace(trace)); - } - console.warn(...warnArgs); - } - resetTracking(); - isWarning = false; -} -function getComponentTrace() { - let currentVNode = stack[stack.length - 1]; - if (!currentVNode) { - return []; - } - const normalizedStack = []; - while (currentVNode) { - const last = normalizedStack[0]; - if (last && last.vnode === currentVNode) { - last.recurseCount++; - } else { - normalizedStack.push({ - vnode: currentVNode, - recurseCount: 0 - }); - } - const parentInstance = currentVNode.component && currentVNode.component.parent; - currentVNode = parentInstance && parentInstance.vnode; - } - return normalizedStack; -} -function formatTrace(trace) { - const logs = []; - trace.forEach((entry, i) => { - logs.push(...i === 0 ? [] : [` -`], ...formatTraceEntry(entry)); - }); - return logs; -} -function formatTraceEntry({ vnode, recurseCount }) { - const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; - const isRoot = vnode.component ? vnode.component.parent == null : false; - const open = ` at <${formatComponentName( - vnode.component, - vnode.type, - isRoot - )}`; - const close = `>` + postfix; - return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; -} -function formatProps(props) { - const res = []; - const keys = Object.keys(props); - keys.slice(0, 3).forEach((key) => { - res.push(...formatProp(key, props[key])); - }); - if (keys.length > 3) { - res.push(` ...`); - } - return res; -} -function formatProp(key, value, raw) { - if (isString(value)) { - value = JSON.stringify(value); - return raw ? value : [`${key}=${value}`]; - } else if (typeof value === "number" || typeof value === "boolean" || value == null) { - return raw ? value : [`${key}=${value}`]; - } else if (isRef2(value)) { - value = formatProp(key, toRaw(value.value), true); - return raw ? value : [`${key}=Ref<`, value, `>`]; - } else if (isFunction(value)) { - return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; - } else { - value = toRaw(value); - return raw ? value : [`${key}=`, value]; - } -} -function assertNumber(val, type) { - if (false) return; - if (val === void 0) { - return; - } else if (typeof val !== "number") { - warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); - } else if (isNaN(val)) { - warn$1(`${type} is NaN - the duration expression might be incorrect.`); - } -} -var ErrorCodes = { - "SETUP_FUNCTION": 0, - "0": "SETUP_FUNCTION", - "RENDER_FUNCTION": 1, - "1": "RENDER_FUNCTION", - "NATIVE_EVENT_HANDLER": 5, - "5": "NATIVE_EVENT_HANDLER", - "COMPONENT_EVENT_HANDLER": 6, - "6": "COMPONENT_EVENT_HANDLER", - "VNODE_HOOK": 7, - "7": "VNODE_HOOK", - "DIRECTIVE_HOOK": 8, - "8": "DIRECTIVE_HOOK", - "TRANSITION_HOOK": 9, - "9": "TRANSITION_HOOK", - "APP_ERROR_HANDLER": 10, - "10": "APP_ERROR_HANDLER", - "APP_WARN_HANDLER": 11, - "11": "APP_WARN_HANDLER", - "FUNCTION_REF": 12, - "12": "FUNCTION_REF", - "ASYNC_COMPONENT_LOADER": 13, - "13": "ASYNC_COMPONENT_LOADER", - "SCHEDULER": 14, - "14": "SCHEDULER", - "COMPONENT_UPDATE": 15, - "15": "COMPONENT_UPDATE", - "APP_UNMOUNT_CLEANUP": 16, - "16": "APP_UNMOUNT_CLEANUP" -}; -var ErrorTypeStrings$1 = { - ["sp"]: "serverPrefetch hook", - ["bc"]: "beforeCreate hook", - ["c"]: "created hook", - ["bm"]: "beforeMount hook", - ["m"]: "mounted hook", - ["bu"]: "beforeUpdate hook", - ["u"]: "updated", - ["bum"]: "beforeUnmount hook", - ["um"]: "unmounted hook", - ["a"]: "activated hook", - ["da"]: "deactivated hook", - ["ec"]: "errorCaptured hook", - ["rtc"]: "renderTracked hook", - ["rtg"]: "renderTriggered hook", - [0]: "setup function", - [1]: "render function", - [2]: "watcher getter", - [3]: "watcher callback", - [4]: "watcher cleanup function", - [5]: "native event handler", - [6]: "component event handler", - [7]: "vnode hook", - [8]: "directive hook", - [9]: "transition hook", - [10]: "app errorHandler", - [11]: "app warnHandler", - [12]: "ref function", - [13]: "async component loader", - [14]: "scheduler flush", - [15]: "component update", - [16]: "app unmount cleanup function" -}; -function callWithErrorHandling(fn, instance, type, args) { - try { - return args ? fn(...args) : fn(); - } catch (err) { - handleError(err, instance, type); - } -} -function callWithAsyncErrorHandling(fn, instance, type, args) { - if (isFunction(fn)) { - const res = callWithErrorHandling(fn, instance, type, args); - if (res && isPromise(res)) { - res.catch((err) => { - handleError(err, instance, type); - }); - } - return res; - } - if (isArray(fn)) { - const values = []; - for (let i = 0; i < fn.length; i++) { - values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); - } - return values; - } else if (true) { - warn$1( - `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` - ); - } -} -function handleError(err, instance, type, throwInDev = true) { - const contextVNode = instance ? instance.vnode : null; - const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; - if (instance) { - let cur = instance.parent; - const exposedInstance = instance.proxy; - const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; - while (cur) { - const errorCapturedHooks = cur.ec; - if (errorCapturedHooks) { - for (let i = 0; i < errorCapturedHooks.length; i++) { - if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { - return; - } - } - } - cur = cur.parent; - } - if (errorHandler) { - pauseTracking(); - callWithErrorHandling(errorHandler, null, 10, [ - err, - exposedInstance, - errorInfo - ]); - resetTracking(); - return; - } - } - logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); -} -function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { - if (true) { - const info = ErrorTypeStrings$1[type]; - if (contextVNode) { - pushWarningContext(contextVNode); - } - warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); - if (contextVNode) { - popWarningContext(); - } - if (throwInDev) { - throw err; - } else { - console.error(err); - } - } else if (throwInProd) { - throw err; - } else { - console.error(err); - } -} -var queue = []; -var flushIndex = -1; -var pendingPostFlushCbs = []; -var activePostFlushCbs = null; -var postFlushIndex = 0; -var resolvedPromise = Promise.resolve(); -var currentFlushPromise = null; -var RECURSION_LIMIT = 100; -function nextTick(fn) { - const p2 = currentFlushPromise || resolvedPromise; - return fn ? p2.then(this ? fn.bind(this) : fn) : p2; -} -function findInsertionIndex(id) { - let start = flushIndex + 1; - let end = queue.length; - while (start < end) { - const middle = start + end >>> 1; - const middleJob = queue[middle]; - const middleJobId = getId(middleJob); - if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { - start = middle + 1; - } else { - end = middle; - } - } - return start; -} -function queueJob(job) { - if (!(job.flags & 1)) { - const jobId = getId(job); - const lastJob = queue[queue.length - 1]; - if (!lastJob || // fast path when the job id is larger than the tail - !(job.flags & 2) && jobId >= getId(lastJob)) { - queue.push(job); - } else { - queue.splice(findInsertionIndex(jobId), 0, job); - } - job.flags |= 1; - queueFlush(); - } -} -function queueFlush() { - if (!currentFlushPromise) { - currentFlushPromise = resolvedPromise.then(flushJobs); - } -} -function queuePostFlushCb(cb) { - if (!isArray(cb)) { - if (activePostFlushCbs && cb.id === -1) { - activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); - } else if (!(cb.flags & 1)) { - pendingPostFlushCbs.push(cb); - cb.flags |= 1; - } - } else { - pendingPostFlushCbs.push(...cb); - } - queueFlush(); -} -function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - for (; i < queue.length; i++) { - const cb = queue[i]; - if (cb && cb.flags & 2) { - if (instance && cb.id !== instance.uid) { - continue; - } - if (checkRecursiveUpdates(seen, cb)) { - continue; - } - queue.splice(i, 1); - i--; - if (cb.flags & 4) { - cb.flags &= ~1; - } - cb(); - if (!(cb.flags & 4)) { - cb.flags &= ~1; - } - } - } -} -function flushPostFlushCbs(seen) { - if (pendingPostFlushCbs.length) { - const deduped = [...new Set(pendingPostFlushCbs)].sort( - (a, b) => getId(a) - getId(b) - ); - pendingPostFlushCbs.length = 0; - if (activePostFlushCbs) { - activePostFlushCbs.push(...deduped); - return; - } - activePostFlushCbs = deduped; - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { - const cb = activePostFlushCbs[postFlushIndex]; - if (checkRecursiveUpdates(seen, cb)) { - continue; - } - if (cb.flags & 4) { - cb.flags &= ~1; - } - if (!(cb.flags & 8)) cb(); - cb.flags &= ~1; - } - activePostFlushCbs = null; - postFlushIndex = 0; - } -} -var getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; -function flushJobs(seen) { - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; - try { - for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { - const job = queue[flushIndex]; - if (job && !(job.flags & 8)) { - if (check(job)) { - continue; - } - if (job.flags & 4) { - job.flags &= ~1; - } - callWithErrorHandling( - job, - job.i, - job.i ? 15 : 14 - ); - if (!(job.flags & 4)) { - job.flags &= ~1; - } - } - } - } finally { - for (; flushIndex < queue.length; flushIndex++) { - const job = queue[flushIndex]; - if (job) { - job.flags &= ~1; - } - } - flushIndex = -1; - queue.length = 0; - flushPostFlushCbs(seen); - currentFlushPromise = null; - if (queue.length || pendingPostFlushCbs.length) { - flushJobs(seen); - } - } -} -function checkRecursiveUpdates(seen, fn) { - const count = seen.get(fn) || 0; - if (count > RECURSION_LIMIT) { - const instance = fn.i; - const componentName = instance && getComponentName(instance.type); - handleError( - `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, - null, - 10 - ); - return true; - } - seen.set(fn, count + 1); - return false; -} -var isHmrUpdating = false; -var hmrDirtyComponents = /* @__PURE__ */ new Map(); -if (true) { - getGlobalThis().__VUE_HMR_RUNTIME__ = { - createRecord: tryWrap(createRecord), - rerender: tryWrap(rerender), - reload: tryWrap(reload) - }; -} -var map = /* @__PURE__ */ new Map(); -function registerHMR(instance) { - const id = instance.type.__hmrId; - let record = map.get(id); - if (!record) { - createRecord(id, instance.type); - record = map.get(id); - } - record.instances.add(instance); -} -function unregisterHMR(instance) { - map.get(instance.type.__hmrId).instances.delete(instance); -} -function createRecord(id, initialDef) { - if (map.has(id)) { - return false; - } - map.set(id, { - initialDef: normalizeClassComponent(initialDef), - instances: /* @__PURE__ */ new Set() - }); - return true; -} -function normalizeClassComponent(component) { - return isClassComponent(component) ? component.__vccOpts : component; -} -function rerender(id, newRender) { - const record = map.get(id); - if (!record) { - return; - } - record.initialDef.render = newRender; - [...record.instances].forEach((instance) => { - if (newRender) { - instance.render = newRender; - normalizeClassComponent(instance.type).render = newRender; - } - instance.renderCache = []; - isHmrUpdating = true; - instance.update(); - isHmrUpdating = false; - }); -} -function reload(id, newComp) { - const record = map.get(id); - if (!record) return; - newComp = normalizeClassComponent(newComp); - updateComponentDef(record.initialDef, newComp); - const instances = [...record.instances]; - for (let i = 0; i < instances.length; i++) { - const instance = instances[i]; - const oldComp = normalizeClassComponent(instance.type); - let dirtyInstances = hmrDirtyComponents.get(oldComp); - if (!dirtyInstances) { - if (oldComp !== record.initialDef) { - updateComponentDef(oldComp, newComp); - } - hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); - } - dirtyInstances.add(instance); - instance.appContext.propsCache.delete(instance.type); - instance.appContext.emitsCache.delete(instance.type); - instance.appContext.optionsCache.delete(instance.type); - if (instance.ceReload) { - dirtyInstances.add(instance); - instance.ceReload(newComp.styles); - dirtyInstances.delete(instance); - } else if (instance.parent) { - queueJob(() => { - isHmrUpdating = true; - instance.parent.update(); - isHmrUpdating = false; - dirtyInstances.delete(instance); - }); - } else if (instance.appContext.reload) { - instance.appContext.reload(); - } else if (typeof window !== "undefined") { - window.location.reload(); - } else { - console.warn( - "[HMR] Root or manually mounted instance modified. Full reload required." - ); - } - if (instance.root.ce && instance !== instance.root) { - instance.root.ce._removeChildStyle(oldComp); - } - } - queuePostFlushCb(() => { - hmrDirtyComponents.clear(); - }); -} -function updateComponentDef(oldComp, newComp) { - extend(oldComp, newComp); - for (const key in oldComp) { - if (key !== "__file" && !(key in newComp)) { - delete oldComp[key]; - } - } -} -function tryWrap(fn) { - return (id, arg) => { - try { - return fn(id, arg); - } catch (e) { - console.error(e); - console.warn( - `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` - ); - } - }; -} -var devtools$1; -var buffer = []; -var devtoolsNotInstalled = false; -function emit$1(event, ...args) { - if (devtools$1) { - devtools$1.emit(event, ...args); - } else if (!devtoolsNotInstalled) { - buffer.push({ event, args }); - } -} -function setDevtoolsHook$1(hook, target) { - var _a, _b; - devtools$1 = hook; - if (devtools$1) { - devtools$1.enabled = true; - buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); - buffer = []; - } else if ( - // handle late devtools injection - only do this if we are in an actual - // browser environment to avoid the timer handle stalling test runner exit - // (#4815) - typeof window !== "undefined" && // some envs mock window but not fully - window.HTMLElement && // also exclude jsdom - // eslint-disable-next-line no-restricted-syntax - !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) - ) { - const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; - replay.push((newHook) => { - setDevtoolsHook$1(newHook, target); - }); - setTimeout(() => { - if (!devtools$1) { - target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; - devtoolsNotInstalled = true; - buffer = []; - } - }, 3e3); - } else { - devtoolsNotInstalled = true; - buffer = []; - } -} -function devtoolsInitApp(app, version2) { - emit$1("app:init", app, version2, { - Fragment, - Text, - Comment, - Static - }); -} -function devtoolsUnmountApp(app) { - emit$1("app:unmount", app); -} -var devtoolsComponentAdded = createDevtoolsComponentHook( - "component:added" - /* COMPONENT_ADDED */ -); -var devtoolsComponentUpdated = createDevtoolsComponentHook( - "component:updated" - /* COMPONENT_UPDATED */ -); -var _devtoolsComponentRemoved = createDevtoolsComponentHook( - "component:removed" - /* COMPONENT_REMOVED */ -); -var devtoolsComponentRemoved = (component) => { - if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered - !devtools$1.cleanupBuffer(component)) { - _devtoolsComponentRemoved(component); - } -}; -function createDevtoolsComponentHook(hook) { - return (component) => { - emit$1( - hook, - component.appContext.app, - component.uid, - component.parent ? component.parent.uid : void 0, - component - ); - }; -} -var devtoolsPerfStart = createDevtoolsPerformanceHook( - "perf:start" - /* PERFORMANCE_START */ -); -var devtoolsPerfEnd = createDevtoolsPerformanceHook( - "perf:end" - /* PERFORMANCE_END */ -); -function createDevtoolsPerformanceHook(hook) { - return (component, type, time) => { - emit$1(hook, component.appContext.app, component.uid, component, type, time); - }; -} -function devtoolsComponentEmit(component, event, params) { - emit$1( - "component:emit", - component.appContext.app, - component, - event, - params - ); -} -var currentRenderingInstance = null; -var currentScopeId = null; -function setCurrentRenderingInstance(instance) { - const prev = currentRenderingInstance; - currentRenderingInstance = instance; - currentScopeId = instance && instance.type.__scopeId || null; - return prev; -} -function pushScopeId(id) { - currentScopeId = id; -} -function popScopeId() { - currentScopeId = null; -} -var withScopeId = (_id) => withCtx; -function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { - if (!ctx) return fn; - if (fn._n) { - return fn; - } - const renderFnWithContext = (...args) => { - if (renderFnWithContext._d) { - setBlockTracking(-1); - } - const prevInstance = setCurrentRenderingInstance(ctx); - let res; - try { - res = fn(...args); - } finally { - setCurrentRenderingInstance(prevInstance); - if (renderFnWithContext._d) { - setBlockTracking(1); - } - } - if (true) { - devtoolsComponentUpdated(ctx); - } - return res; - }; - renderFnWithContext._n = true; - renderFnWithContext._c = true; - renderFnWithContext._d = true; - return renderFnWithContext; -} -function validateDirectiveName(name) { - if (isBuiltInDirective(name)) { - warn$1("Do not use built-in directive ids as custom directive id: " + name); - } -} -function withDirectives(vnode, directives) { - if (currentRenderingInstance === null) { - warn$1(`withDirectives can only be used inside render functions.`); - return vnode; - } - const instance = getComponentPublicInstance(currentRenderingInstance); - const bindings = vnode.dirs || (vnode.dirs = []); - for (let i = 0; i < directives.length; i++) { - let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; - if (dir) { - if (isFunction(dir)) { - dir = { - mounted: dir, - updated: dir - }; - } - if (dir.deep) { - traverse(value); - } - bindings.push({ - dir, - instance, - value, - oldValue: void 0, - arg, - modifiers - }); - } - } - return vnode; -} -function invokeDirectiveHook(vnode, prevVNode, instance, name) { - const bindings = vnode.dirs; - const oldBindings = prevVNode && prevVNode.dirs; - for (let i = 0; i < bindings.length; i++) { - const binding = bindings[i]; - if (oldBindings) { - binding.oldValue = oldBindings[i].value; - } - let hook = binding.dir[name]; - if (hook) { - pauseTracking(); - callWithAsyncErrorHandling(hook, instance, 8, [ - vnode.el, - binding, - vnode, - prevVNode - ]); - resetTracking(); - } - } -} -var TeleportEndKey = Symbol("_vte"); -var isTeleport = (type) => type.__isTeleport; -var isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); -var isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); -var isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; -var isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; -var resolveTarget = (props, select) => { - const targetSelector = props && props.to; - if (isString(targetSelector)) { - if (!select) { - warn$1( - `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` - ); - return null; - } else { - const target = select(targetSelector); - if (!target && !isTeleportDisabled(props)) { - warn$1( - `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` - ); - } - return target; - } - } else { - if (!targetSelector && !isTeleportDisabled(props)) { - warn$1(`Invalid Teleport target: ${targetSelector}`); - } - return targetSelector; - } -}; -var TeleportImpl = { - name: "Teleport", - __isTeleport: true, - process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { - const { - mc: mountChildren, - pc: patchChildren, - pbc: patchBlockChildren, - o: { insert, querySelector, createText, createComment } - } = internals; - const disabled = isTeleportDisabled(n2.props); - let { shapeFlag, children, dynamicChildren } = n2; - if (isHmrUpdating) { - optimized = false; - dynamicChildren = null; - } - if (n1 == null) { - const placeholder = n2.el = true ? createComment("teleport start") : createText(""); - const mainAnchor = n2.anchor = true ? createComment("teleport end") : createText(""); - insert(placeholder, container, anchor); - insert(mainAnchor, container, anchor); - const mount = (container2, anchor2) => { - if (shapeFlag & 16) { - if (parentComponent && parentComponent.isCE) { - parentComponent.ce._teleportTarget = container2; - } - mountChildren( - children, - container2, - anchor2, - parentComponent, - parentSuspense, - namespace, - slotScopeIds, - optimized - ); - } - }; - const mountToTarget = () => { - const target = n2.target = resolveTarget(n2.props, querySelector); - const targetAnchor = prepareAnchor(target, n2, createText, insert); - if (target) { - if (namespace !== "svg" && isTargetSVG(target)) { - namespace = "svg"; - } else if (namespace !== "mathml" && isTargetMathML(target)) { - namespace = "mathml"; - } - if (!disabled) { - mount(target, targetAnchor); - updateCssVars(n2, false); - } - } else if (!disabled) { - warn$1( - "Invalid Teleport target on mount:", - target, - `(${typeof target})` - ); - } - }; - if (disabled) { - mount(container, mainAnchor); - updateCssVars(n2, true); - } - if (isTeleportDeferred(n2.props)) { - queuePostRenderEffect(() => { - mountToTarget(); - n2.el.__isMounted = true; - }, parentSuspense); - } else { - mountToTarget(); - } - } else { - if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) { - queuePostRenderEffect(() => { - TeleportImpl.process( - n1, - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace, - slotScopeIds, - optimized, - internals - ); - delete n1.el.__isMounted; - }, parentSuspense); - return; - } - n2.el = n1.el; - n2.targetStart = n1.targetStart; - const mainAnchor = n2.anchor = n1.anchor; - const target = n2.target = n1.target; - const targetAnchor = n2.targetAnchor = n1.targetAnchor; - const wasDisabled = isTeleportDisabled(n1.props); - const currentContainer = wasDisabled ? container : target; - const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; - if (namespace === "svg" || isTargetSVG(target)) { - namespace = "svg"; - } else if (namespace === "mathml" || isTargetMathML(target)) { - namespace = "mathml"; - } - if (dynamicChildren) { - patchBlockChildren( - n1.dynamicChildren, - dynamicChildren, - currentContainer, - parentComponent, - parentSuspense, - namespace, - slotScopeIds - ); - traverseStaticChildren(n1, n2, true); - } else if (!optimized) { - patchChildren( - n1, - n2, - currentContainer, - currentAnchor, - parentComponent, - parentSuspense, - namespace, - slotScopeIds, - false - ); - } - if (disabled) { - if (!wasDisabled) { - moveTeleport( - n2, - container, - mainAnchor, - internals, - 1 - ); - } else { - if (n2.props && n1.props && n2.props.to !== n1.props.to) { - n2.props.to = n1.props.to; - } - } - } else { - if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { - const nextTarget = n2.target = resolveTarget( - n2.props, - querySelector - ); - if (nextTarget) { - moveTeleport( - n2, - nextTarget, - null, - internals, - 0 - ); - } else if (true) { - warn$1( - "Invalid Teleport target on update:", - target, - `(${typeof target})` - ); - } - } else if (wasDisabled) { - moveTeleport( - n2, - target, - targetAnchor, - internals, - 1 - ); - } - } - updateCssVars(n2, disabled); - } - }, - remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { - const { - shapeFlag, - children, - anchor, - targetStart, - targetAnchor, - target, - props - } = vnode; - if (target) { - hostRemove(targetStart); - hostRemove(targetAnchor); - } - doRemove && hostRemove(anchor); - if (shapeFlag & 16) { - const shouldRemove = doRemove || !isTeleportDisabled(props); - for (let i = 0; i < children.length; i++) { - const child = children[i]; - unmount( - child, - parentComponent, - parentSuspense, - shouldRemove, - !!child.dynamicChildren - ); - } - } - }, - move: moveTeleport, - hydrate: hydrateTeleport -}; -function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { - if (moveType === 0) { - insert(vnode.targetAnchor, container, parentAnchor); - } - const { el, anchor, shapeFlag, children, props } = vnode; - const isReorder = moveType === 2; - if (isReorder) { - insert(el, container, parentAnchor); - } - if (!isReorder || isTeleportDisabled(props)) { - if (shapeFlag & 16) { - for (let i = 0; i < children.length; i++) { - move( - children[i], - container, - parentAnchor, - 2 - ); - } - } - } - if (isReorder) { - insert(anchor, container, parentAnchor); - } -} -function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { - o: { nextSibling, parentNode, querySelector, insert, createText } -}, hydrateChildren) { - const target = vnode.target = resolveTarget( - vnode.props, - querySelector - ); - if (target) { - const disabled = isTeleportDisabled(vnode.props); - const targetNode = target._lpa || target.firstChild; - if (vnode.shapeFlag & 16) { - if (disabled) { - vnode.anchor = hydrateChildren( - nextSibling(node), - vnode, - parentNode(node), - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - vnode.targetStart = targetNode; - vnode.targetAnchor = targetNode && nextSibling(targetNode); - } else { - vnode.anchor = nextSibling(node); - let targetAnchor = targetNode; - while (targetAnchor) { - if (targetAnchor && targetAnchor.nodeType === 8) { - if (targetAnchor.data === "teleport start anchor") { - vnode.targetStart = targetAnchor; - } else if (targetAnchor.data === "teleport anchor") { - vnode.targetAnchor = targetAnchor; - target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); - break; - } - } - targetAnchor = nextSibling(targetAnchor); - } - if (!vnode.targetAnchor) { - prepareAnchor(target, vnode, createText, insert); - } - hydrateChildren( - targetNode && nextSibling(targetNode), - vnode, - target, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } - } - updateCssVars(vnode, disabled); - } - return vnode.anchor && nextSibling(vnode.anchor); -} -var Teleport = TeleportImpl; -function updateCssVars(vnode, isDisabled) { - const ctx = vnode.ctx; - if (ctx && ctx.ut) { - let node, anchor; - if (isDisabled) { - node = vnode.el; - anchor = vnode.anchor; - } else { - node = vnode.targetStart; - anchor = vnode.targetAnchor; - } - while (node && node !== anchor) { - if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); - node = node.nextSibling; - } - ctx.ut(); - } -} -function prepareAnchor(target, vnode, createText, insert) { - const targetStart = vnode.targetStart = createText(""); - const targetAnchor = vnode.targetAnchor = createText(""); - targetStart[TeleportEndKey] = targetAnchor; - if (target) { - insert(targetStart, target); - insert(targetAnchor, target); - } - return targetAnchor; -} -var leaveCbKey = Symbol("_leaveCb"); -var enterCbKey = Symbol("_enterCb"); -function useTransitionState() { - const state = { - isMounted: false, - isLeaving: false, - isUnmounting: false, - leavingVNodes: /* @__PURE__ */ new Map() - }; - onMounted(() => { - state.isMounted = true; - }); - onBeforeUnmount(() => { - state.isUnmounting = true; - }); - return state; -} -var TransitionHookValidator = [Function, Array]; -var BaseTransitionPropsValidators = { - mode: String, - appear: Boolean, - persisted: Boolean, - // enter - onBeforeEnter: TransitionHookValidator, - onEnter: TransitionHookValidator, - onAfterEnter: TransitionHookValidator, - onEnterCancelled: TransitionHookValidator, - // leave - onBeforeLeave: TransitionHookValidator, - onLeave: TransitionHookValidator, - onAfterLeave: TransitionHookValidator, - onLeaveCancelled: TransitionHookValidator, - // appear - onBeforeAppear: TransitionHookValidator, - onAppear: TransitionHookValidator, - onAfterAppear: TransitionHookValidator, - onAppearCancelled: TransitionHookValidator -}; -var recursiveGetSubtree = (instance) => { - const subTree = instance.subTree; - return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; -}; -var BaseTransitionImpl = { - name: `BaseTransition`, - props: BaseTransitionPropsValidators, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const state = useTransitionState(); - return () => { - const children = slots.default && getTransitionRawChildren(slots.default(), true); - if (!children || !children.length) { - return; - } - const child = findNonCommentChild(children); - const rawProps = toRaw(props); - const { mode } = rawProps; - if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { - warn$1(`invalid mode: ${mode}`); - } - if (state.isLeaving) { - return emptyPlaceholder(child); - } - const innerChild = getInnerChild$1(child); - if (!innerChild) { - return emptyPlaceholder(child); - } - let enterHooks = resolveTransitionHooks( - innerChild, - rawProps, - state, - instance, - // #11061, ensure enterHooks is fresh after clone - (hooks) => enterHooks = hooks - ); - if (innerChild.type !== Comment) { - setTransitionHooks(innerChild, enterHooks); - } - let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); - if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) { - let leavingHooks = resolveTransitionHooks( - oldInnerChild, - rawProps, - state, - instance - ); - setTransitionHooks(oldInnerChild, leavingHooks); - if (mode === "out-in" && innerChild.type !== Comment) { - state.isLeaving = true; - leavingHooks.afterLeave = () => { - state.isLeaving = false; - if (!(instance.job.flags & 8)) { - instance.update(); - } - delete leavingHooks.afterLeave; - oldInnerChild = void 0; - }; - return emptyPlaceholder(child); - } else if (mode === "in-out" && innerChild.type !== Comment) { - leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { - const leavingVNodesCache = getLeavingNodesForType( - state, - oldInnerChild - ); - leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; - el[leaveCbKey] = () => { - earlyRemove(); - el[leaveCbKey] = void 0; - delete enterHooks.delayedLeave; - oldInnerChild = void 0; - }; - enterHooks.delayedLeave = () => { - delayedLeave(); - delete enterHooks.delayedLeave; - oldInnerChild = void 0; - }; - }; - } else { - oldInnerChild = void 0; - } - } else if (oldInnerChild) { - oldInnerChild = void 0; - } - return child; - }; - } -}; -function findNonCommentChild(children) { - let child = children[0]; - if (children.length > 1) { - let hasFound = false; - for (const c of children) { - if (c.type !== Comment) { - if (hasFound) { - warn$1( - " can only be used on a single element or component. Use for lists." - ); - break; - } - child = c; - hasFound = true; - if (false) break; - } - } - } - return child; -} -var BaseTransition = BaseTransitionImpl; -function getLeavingNodesForType(state, vnode) { - const { leavingVNodes } = state; - let leavingVNodesCache = leavingVNodes.get(vnode.type); - if (!leavingVNodesCache) { - leavingVNodesCache = /* @__PURE__ */ Object.create(null); - leavingVNodes.set(vnode.type, leavingVNodesCache); - } - return leavingVNodesCache; -} -function resolveTransitionHooks(vnode, props, state, instance, postClone) { - const { - appear, - mode, - persisted = false, - onBeforeEnter, - onEnter, - onAfterEnter, - onEnterCancelled, - onBeforeLeave, - onLeave, - onAfterLeave, - onLeaveCancelled, - onBeforeAppear, - onAppear, - onAfterAppear, - onAppearCancelled - } = props; - const key = String(vnode.key); - const leavingVNodesCache = getLeavingNodesForType(state, vnode); - const callHook3 = (hook, args) => { - hook && callWithAsyncErrorHandling( - hook, - instance, - 9, - args - ); - }; - const callAsyncHook = (hook, args) => { - const done = args[1]; - callHook3(hook, args); - if (isArray(hook)) { - if (hook.every((hook2) => hook2.length <= 1)) done(); - } else if (hook.length <= 1) { - done(); - } - }; - const hooks = { - mode, - persisted, - beforeEnter(el) { - let hook = onBeforeEnter; - if (!state.isMounted) { - if (appear) { - hook = onBeforeAppear || onBeforeEnter; - } else { - return; - } - } - if (el[leaveCbKey]) { - el[leaveCbKey]( - true - /* cancelled */ - ); - } - const leavingVNode = leavingVNodesCache[key]; - if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { - leavingVNode.el[leaveCbKey](); - } - callHook3(hook, [el]); - }, - enter(el) { - let hook = onEnter; - let afterHook = onAfterEnter; - let cancelHook = onEnterCancelled; - if (!state.isMounted) { - if (appear) { - hook = onAppear || onEnter; - afterHook = onAfterAppear || onAfterEnter; - cancelHook = onAppearCancelled || onEnterCancelled; - } else { - return; - } - } - let called = false; - const done = el[enterCbKey] = (cancelled) => { - if (called) return; - called = true; - if (cancelled) { - callHook3(cancelHook, [el]); - } else { - callHook3(afterHook, [el]); - } - if (hooks.delayedLeave) { - hooks.delayedLeave(); - } - el[enterCbKey] = void 0; - }; - if (hook) { - callAsyncHook(hook, [el, done]); - } else { - done(); - } - }, - leave(el, remove2) { - const key2 = String(vnode.key); - if (el[enterCbKey]) { - el[enterCbKey]( - true - /* cancelled */ - ); - } - if (state.isUnmounting) { - return remove2(); - } - callHook3(onBeforeLeave, [el]); - let called = false; - const done = el[leaveCbKey] = (cancelled) => { - if (called) return; - called = true; - remove2(); - if (cancelled) { - callHook3(onLeaveCancelled, [el]); - } else { - callHook3(onAfterLeave, [el]); - } - el[leaveCbKey] = void 0; - if (leavingVNodesCache[key2] === vnode) { - delete leavingVNodesCache[key2]; - } - }; - leavingVNodesCache[key2] = vnode; - if (onLeave) { - callAsyncHook(onLeave, [el, done]); - } else { - done(); - } - }, - clone(vnode2) { - const hooks2 = resolveTransitionHooks( - vnode2, - props, - state, - instance, - postClone - ); - if (postClone) postClone(hooks2); - return hooks2; - } - }; - return hooks; -} -function emptyPlaceholder(vnode) { - if (isKeepAlive(vnode)) { - vnode = cloneVNode(vnode); - vnode.children = null; - return vnode; - } -} -function getInnerChild$1(vnode) { - if (!isKeepAlive(vnode)) { - if (isTeleport(vnode.type) && vnode.children) { - return findNonCommentChild(vnode.children); - } - return vnode; - } - if (vnode.component) { - return vnode.component.subTree; - } - const { shapeFlag, children } = vnode; - if (children) { - if (shapeFlag & 16) { - return children[0]; - } - if (shapeFlag & 32 && isFunction(children.default)) { - return children.default(); - } - } -} -function setTransitionHooks(vnode, hooks) { - if (vnode.shapeFlag & 6 && vnode.component) { - vnode.transition = hooks; - setTransitionHooks(vnode.component.subTree, hooks); - } else if (vnode.shapeFlag & 128) { - vnode.ssContent.transition = hooks.clone(vnode.ssContent); - vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); - } else { - vnode.transition = hooks; - } -} -function getTransitionRawChildren(children, keepComment = false, parentKey) { - let ret = []; - let keyedFragmentCount = 0; - for (let i = 0; i < children.length; i++) { - let child = children[i]; - const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); - if (child.type === Fragment) { - if (child.patchFlag & 128) keyedFragmentCount++; - ret = ret.concat( - getTransitionRawChildren(child.children, keepComment, key) - ); - } else if (keepComment || child.type !== Comment) { - ret.push(key != null ? cloneVNode(child, { key }) : child); - } - } - if (keyedFragmentCount > 1) { - for (let i = 0; i < ret.length; i++) { - ret[i].patchFlag = -2; - } - } - return ret; -} -function defineComponent(options, extraOptions) { - return isFunction(options) ? ( - // #8236: extend call and options.name access are considered side-effects - // by Rollup, so we have to wrap it in a pure-annotated IIFE. - (() => extend({ name: options.name }, extraOptions, { setup: options }))() - ) : options; -} -function useId() { - const i = getCurrentInstance(); - if (i) { - return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; - } else if (true) { - warn$1( - `useId() is called when there is no active component instance to be associated with.` - ); - } - return ""; -} -function markAsyncBoundary(instance) { - instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; -} -var knownTemplateRefs = /* @__PURE__ */ new WeakSet(); -function useTemplateRef(key) { - const i = getCurrentInstance(); - const r = shallowRef(null); - if (i) { - const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; - let desc; - if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) { - warn$1(`useTemplateRef('${key}') already exists.`); - } else { - Object.defineProperty(refs, key, { - enumerable: true, - get: () => r.value, - set: (val) => r.value = val - }); - } - } else if (true) { - warn$1( - `useTemplateRef() is called when there is no active component instance to be associated with.` - ); - } - const ret = true ? readonly(r) : r; - if (true) { - knownTemplateRefs.add(ret); - } - return ret; -} -function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { - if (isArray(rawRef)) { - rawRef.forEach( - (r, i) => setRef( - r, - oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), - parentSuspense, - vnode, - isUnmount - ) - ); - return; - } - if (isAsyncWrapper(vnode) && !isUnmount) { - if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { - setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); - } - return; - } - const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; - const value = isUnmount ? null : refValue; - const { i: owner, r: ref2 } = rawRef; - if (!owner) { - warn$1( - `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` - ); - return; - } - const oldRef = oldRawRef && oldRawRef.r; - const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; - const setupState = owner.setupState; - const rawSetupState = toRaw(setupState); - const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => { - if (true) { - if (hasOwn(rawSetupState, key) && !isRef2(rawSetupState[key])) { - warn$1( - `Template ref "${key}" used on a non-ref value. It will not work in the production build.` - ); - } - if (knownTemplateRefs.has(rawSetupState[key])) { - return false; - } - } - return hasOwn(rawSetupState, key); - }; - if (oldRef != null && oldRef !== ref2) { - if (isString(oldRef)) { - refs[oldRef] = null; - if (canSetSetupRef(oldRef)) { - setupState[oldRef] = null; - } - } else if (isRef2(oldRef)) { - oldRef.value = null; - } - } - if (isFunction(ref2)) { - callWithErrorHandling(ref2, owner, 12, [value, refs]); - } else { - const _isString = isString(ref2); - const _isRef = isRef2(ref2); - if (_isString || _isRef) { - const doSet = () => { - if (rawRef.f) { - const existing = _isString ? canSetSetupRef(ref2) ? setupState[ref2] : refs[ref2] : ref2.value; - if (isUnmount) { - isArray(existing) && remove(existing, refValue); - } else { - if (!isArray(existing)) { - if (_isString) { - refs[ref2] = [refValue]; - if (canSetSetupRef(ref2)) { - setupState[ref2] = refs[ref2]; - } - } else { - ref2.value = [refValue]; - if (rawRef.k) refs[rawRef.k] = ref2.value; - } - } else if (!existing.includes(refValue)) { - existing.push(refValue); - } - } - } else if (_isString) { - refs[ref2] = value; - if (canSetSetupRef(ref2)) { - setupState[ref2] = value; - } - } else if (_isRef) { - ref2.value = value; - if (rawRef.k) refs[rawRef.k] = value; - } else if (true) { - warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`); - } - }; - if (value) { - doSet.id = -1; - queuePostRenderEffect(doSet, parentSuspense); - } else { - doSet(); - } - } else if (true) { - warn$1("Invalid template ref type:", ref2, `(${typeof ref2})`); - } - } -} -var hasLoggedMismatchError = false; -var logMismatchError = () => { - if (hasLoggedMismatchError) { - return; - } - console.error("Hydration completed but contains mismatches."); - hasLoggedMismatchError = true; -}; -var isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; -var isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); -var getContainerType = (container) => { - if (container.nodeType !== 1) return void 0; - if (isSVGContainer(container)) return "svg"; - if (isMathMLContainer(container)) return "mathml"; - return void 0; -}; -var isComment = (node) => node.nodeType === 8; -function createHydrationFunctions(rendererInternals) { - const { - mt: mountComponent, - p: patch, - o: { - patchProp: patchProp2, - createText, - nextSibling, - parentNode, - remove: remove2, - insert, - createComment - } - } = rendererInternals; - const hydrate2 = (vnode, container) => { - if (!container.hasChildNodes()) { - warn$1( - `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` - ); - patch(null, vnode, container); - flushPostFlushCbs(); - container._vnode = vnode; - return; - } - hydrateNode(container.firstChild, vnode, null, null, null); - flushPostFlushCbs(); - container._vnode = vnode; - }; - const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { - optimized = optimized || !!vnode.dynamicChildren; - const isFragmentStart = isComment(node) && node.data === "["; - const onMismatch = () => handleMismatch( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - isFragmentStart - ); - const { type, ref: ref2, shapeFlag, patchFlag } = vnode; - let domType = node.nodeType; - vnode.el = node; - if (true) { - def(node, "__vnode", vnode, true); - def(node, "__vueParentComponent", parentComponent, true); - } - if (patchFlag === -2) { - optimized = false; - vnode.dynamicChildren = null; - } - let nextNode = null; - switch (type) { - case Text: - if (domType !== 3) { - if (vnode.children === "") { - insert(vnode.el = createText(""), parentNode(node), node); - nextNode = node; - } else { - nextNode = onMismatch(); - } - } else { - if (node.data !== vnode.children) { - warn$1( - `Hydration text mismatch in`, - node.parentNode, - ` - - rendered on server: ${JSON.stringify( - node.data - )} - - expected on client: ${JSON.stringify(vnode.children)}` - ); - logMismatchError(); - node.data = vnode.children; - } - nextNode = nextSibling(node); - } - break; - case Comment: - if (isTemplateNode(node)) { - nextNode = nextSibling(node); - replaceNode( - vnode.el = node.content.firstChild, - node, - parentComponent - ); - } else if (domType !== 8 || isFragmentStart) { - nextNode = onMismatch(); - } else { - nextNode = nextSibling(node); - } - break; - case Static: - if (isFragmentStart) { - node = nextSibling(node); - domType = node.nodeType; - } - if (domType === 1 || domType === 3) { - nextNode = node; - const needToAdoptContent = !vnode.children.length; - for (let i = 0; i < vnode.staticCount; i++) { - if (needToAdoptContent) - vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; - if (i === vnode.staticCount - 1) { - vnode.anchor = nextNode; - } - nextNode = nextSibling(nextNode); - } - return isFragmentStart ? nextSibling(nextNode) : nextNode; - } else { - onMismatch(); - } - break; - case Fragment: - if (!isFragmentStart) { - nextNode = onMismatch(); - } else { - nextNode = hydrateFragment( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } - break; - default: - if (shapeFlag & 1) { - if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { - nextNode = onMismatch(); - } else { - nextNode = hydrateElement( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } - } else if (shapeFlag & 6) { - vnode.slotScopeIds = slotScopeIds; - const container = parentNode(node); - if (isFragmentStart) { - nextNode = locateClosingAnchor(node); - } else if (isComment(node) && node.data === "teleport start") { - nextNode = locateClosingAnchor(node, node.data, "teleport end"); - } else { - nextNode = nextSibling(node); - } - mountComponent( - vnode, - container, - null, - parentComponent, - parentSuspense, - getContainerType(container), - optimized - ); - if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { - let subTree; - if (isFragmentStart) { - subTree = createVNode(Fragment); - subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; - } else { - subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); - } - subTree.el = node; - vnode.component.subTree = subTree; - } - } else if (shapeFlag & 64) { - if (domType !== 8) { - nextNode = onMismatch(); - } else { - nextNode = vnode.type.hydrate( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized, - rendererInternals, - hydrateChildren - ); - } - } else if (shapeFlag & 128) { - nextNode = vnode.type.hydrate( - node, - vnode, - parentComponent, - parentSuspense, - getContainerType(parentNode(node)), - slotScopeIds, - optimized, - rendererInternals, - hydrateNode - ); - } else if (true) { - warn$1("Invalid HostVNode type:", type, `(${typeof type})`); - } - } - if (ref2 != null) { - setRef(ref2, null, parentSuspense, vnode); - } - return nextNode; - }; - const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { - optimized = optimized || !!vnode.dynamicChildren; - const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; - const forcePatch = type === "input" || type === "option"; - if (true) { - if (dirs) { - invokeDirectiveHook(vnode, null, parentComponent, "created"); - } - let needCallTransitionHooks = false; - if (isTemplateNode(el)) { - needCallTransitionHooks = needTransition( - null, - // no need check parentSuspense in hydration - transition - ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; - const content = el.content.firstChild; - if (needCallTransitionHooks) { - transition.beforeEnter(content); - } - replaceNode(content, el, parentComponent); - vnode.el = el = content; - } - if (shapeFlag & 16 && // skip if element has innerHTML / textContent - !(props && (props.innerHTML || props.textContent))) { - let next = hydrateChildren( - el.firstChild, - vnode, - el, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - let hasWarned2 = false; - while (next) { - if (!isMismatchAllowed( - el, - 1 - /* CHILDREN */ - )) { - if (!hasWarned2) { - warn$1( - `Hydration children mismatch on`, - el, - ` -Server rendered element contains more child nodes than client vdom.` - ); - hasWarned2 = true; - } - logMismatchError(); - } - const cur = next; - next = next.nextSibling; - remove2(cur); - } - } else if (shapeFlag & 8) { - let clientText = vnode.children; - if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { - clientText = clientText.slice(1); - } - if (el.textContent !== clientText) { - if (!isMismatchAllowed( - el, - 0 - /* TEXT */ - )) { - warn$1( - `Hydration text content mismatch on`, - el, - ` - - rendered on server: ${el.textContent} - - expected on client: ${vnode.children}` - ); - logMismatchError(); - } - el.textContent = vnode.children; - } - } - if (props) { - if (true) { - const isCustomElement = el.tagName.includes("-"); - for (const key in props) { - if (// #11189 skip if this node has directives that have created hooks - // as it could have mutated the DOM in any possible way - !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { - logMismatchError(); - } - if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers - key[0] === "." || isCustomElement) { - patchProp2(el, key, null, props[key], void 0, parentComponent); - } - } - } else if (props.onClick) { - patchProp2( - el, - "onClick", - null, - props.onClick, - void 0, - parentComponent - ); - } else if (patchFlag & 4 && isReactive(props.style)) { - for (const key in props.style) props.style[key]; - } - } - let vnodeHooks; - if (vnodeHooks = props && props.onVnodeBeforeMount) { - invokeVNodeHook(vnodeHooks, parentComponent, vnode); - } - if (dirs) { - invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); - } - if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { - queueEffectWithSuspense(() => { - vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); - needCallTransitionHooks && transition.enter(el); - dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); - }, parentSuspense); - } - } - return el.nextSibling; - }; - const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { - optimized = optimized || !!parentVNode.dynamicChildren; - const children = parentVNode.children; - const l = children.length; - let hasWarned2 = false; - for (let i = 0; i < l; i++) { - const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); - const isText = vnode.type === Text; - if (node) { - if (isText && !optimized) { - if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { - insert( - createText( - node.data.slice(vnode.children.length) - ), - container, - nextSibling(node) - ); - node.data = vnode.children; - } - } - node = hydrateNode( - node, - vnode, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - } else if (isText && !vnode.children) { - insert(vnode.el = createText(""), container); - } else { - if (!isMismatchAllowed( - container, - 1 - /* CHILDREN */ - )) { - if (!hasWarned2) { - warn$1( - `Hydration children mismatch on`, - container, - ` -Server rendered element contains fewer child nodes than client vdom.` - ); - hasWarned2 = true; - } - logMismatchError(); - } - patch( - null, - vnode, - container, - null, - parentComponent, - parentSuspense, - getContainerType(container), - slotScopeIds - ); - } - } - return node; - }; - const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { - const { slotScopeIds: fragmentSlotScopeIds } = vnode; - if (fragmentSlotScopeIds) { - slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; - } - const container = parentNode(node); - const next = hydrateChildren( - nextSibling(node), - vnode, - container, - parentComponent, - parentSuspense, - slotScopeIds, - optimized - ); - if (next && isComment(next) && next.data === "]") { - return nextSibling(vnode.anchor = next); - } else { - logMismatchError(); - insert(vnode.anchor = createComment(`]`), container, next); - return next; - } - }; - const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { - if (!isMismatchAllowed( - node.parentElement, - 1 - /* CHILDREN */ - )) { - warn$1( - `Hydration node mismatch: -- rendered on server:`, - node, - node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, - ` -- expected on client:`, - vnode.type - ); - logMismatchError(); - } - vnode.el = null; - if (isFragment) { - const end = locateClosingAnchor(node); - while (true) { - const next2 = nextSibling(node); - if (next2 && next2 !== end) { - remove2(next2); - } else { - break; - } - } - } - const next = nextSibling(node); - const container = parentNode(node); - remove2(node); - patch( - null, - vnode, - container, - next, - parentComponent, - parentSuspense, - getContainerType(container), - slotScopeIds - ); - if (parentComponent) { - parentComponent.vnode.el = vnode.el; - updateHOCHostEl(parentComponent, vnode.el); - } - return next; - }; - const locateClosingAnchor = (node, open = "[", close = "]") => { - let match = 0; - while (node) { - node = nextSibling(node); - if (node && isComment(node)) { - if (node.data === open) match++; - if (node.data === close) { - if (match === 0) { - return nextSibling(node); - } else { - match--; - } - } - } - } - return node; - }; - const replaceNode = (newNode, oldNode, parentComponent) => { - const parentNode2 = oldNode.parentNode; - if (parentNode2) { - parentNode2.replaceChild(newNode, oldNode); - } - let parent = parentComponent; - while (parent) { - if (parent.vnode.el === oldNode) { - parent.vnode.el = parent.subTree.el = newNode; - } - parent = parent.parent; - } - }; - const isTemplateNode = (node) => { - return node.nodeType === 1 && node.tagName === "TEMPLATE"; - }; - return [hydrate2, hydrateNode]; -} -function propHasMismatch(el, key, clientValue, vnode, instance) { - let mismatchType; - let mismatchKey; - let actual; - let expected; - if (key === "class") { - actual = el.getAttribute("class"); - expected = normalizeClass(clientValue); - if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { - mismatchType = 2; - mismatchKey = `class`; - } - } else if (key === "style") { - actual = el.getAttribute("style") || ""; - expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); - const actualMap = toStyleMap(actual); - const expectedMap = toStyleMap(expected); - if (vnode.dirs) { - for (const { dir, value } of vnode.dirs) { - if (dir.name === "show" && !value) { - expectedMap.set("display", "none"); - } - } - } - if (instance) { - resolveCssVars(instance, vnode, expectedMap); - } - if (!isMapEqual(actualMap, expectedMap)) { - mismatchType = 3; - mismatchKey = "style"; - } - } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { - if (isBooleanAttr(key)) { - actual = el.hasAttribute(key); - expected = includeBooleanAttr(clientValue); - } else if (clientValue == null) { - actual = el.hasAttribute(key); - expected = false; - } else { - if (el.hasAttribute(key)) { - actual = el.getAttribute(key); - } else if (key === "value" && el.tagName === "TEXTAREA") { - actual = el.value; - } else { - actual = false; - } - expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; - } - if (actual !== expected) { - mismatchType = 4; - mismatchKey = key; - } - } - if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { - const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; - const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; - const postSegment = ` - - rendered on server: ${format(actual)} - - expected on client: ${format(expected)} - Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`; - { - warn$1(preSegment, el, postSegment); - } - return true; - } - return false; -} -function toClassSet(str) { - return new Set(str.trim().split(/\s+/)); -} -function isSetEqual(a, b) { - if (a.size !== b.size) { - return false; - } - for (const s of a) { - if (!b.has(s)) { - return false; - } - } - return true; -} -function toStyleMap(str) { - const styleMap = /* @__PURE__ */ new Map(); - for (const item of str.split(";")) { - let [key, value] = item.split(":"); - key = key.trim(); - value = value && value.trim(); - if (key && value) { - styleMap.set(key, value); - } - } - return styleMap; -} -function isMapEqual(a, b) { - if (a.size !== b.size) { - return false; - } - for (const [key, value] of a) { - if (value !== b.get(key)) { - return false; - } - } - return true; -} -function resolveCssVars(instance, vnode, expectedMap) { - const root = instance.subTree; - if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { - const cssVars = instance.getCssVars(); - for (const key in cssVars) { - expectedMap.set( - `--${getEscapedCssVarName(key, false)}`, - String(cssVars[key]) - ); - } - } - if (vnode === root && instance.parent) { - resolveCssVars(instance.parent, instance.vnode, expectedMap); - } -} -var allowMismatchAttr = "data-allow-mismatch"; -var MismatchTypeString = { - [ - 0 - /* TEXT */ - ]: "text", - [ - 1 - /* CHILDREN */ - ]: "children", - [ - 2 - /* CLASS */ - ]: "class", - [ - 3 - /* STYLE */ - ]: "style", - [ - 4 - /* ATTRIBUTE */ - ]: "attribute" -}; -function isMismatchAllowed(el, allowedType) { - if (allowedType === 0 || allowedType === 1) { - while (el && !el.hasAttribute(allowMismatchAttr)) { - el = el.parentElement; - } - } - const allowedAttr = el && el.getAttribute(allowMismatchAttr); - if (allowedAttr == null) { - return false; - } else if (allowedAttr === "") { - return true; - } else { - const list = allowedAttr.split(","); - if (allowedType === 0 && list.includes("children")) { - return true; - } - return allowedAttr.split(",").includes(MismatchTypeString[allowedType]); - } -} -var requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); -var cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); -var hydrateOnIdle = (timeout = 1e4) => (hydrate2) => { - const id = requestIdleCallback(hydrate2, { timeout }); - return () => cancelIdleCallback(id); -}; -function elementIsVisibleInViewport(el) { - const { top, left, bottom, right } = el.getBoundingClientRect(); - const { innerHeight, innerWidth } = window; - return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); -} -var hydrateOnVisible = (opts) => (hydrate2, forEach) => { - const ob = new IntersectionObserver((entries) => { - for (const e of entries) { - if (!e.isIntersecting) continue; - ob.disconnect(); - hydrate2(); - break; - } - }, opts); - forEach((el) => { - if (!(el instanceof Element)) return; - if (elementIsVisibleInViewport(el)) { - hydrate2(); - ob.disconnect(); - return false; - } - ob.observe(el); - }); - return () => ob.disconnect(); -}; -var hydrateOnMediaQuery = (query) => (hydrate2) => { - if (query) { - const mql = matchMedia(query); - if (mql.matches) { - hydrate2(); - } else { - mql.addEventListener("change", hydrate2, { once: true }); - return () => mql.removeEventListener("change", hydrate2); - } - } -}; -var hydrateOnInteraction = (interactions = []) => (hydrate2, forEach) => { - if (isString(interactions)) interactions = [interactions]; - let hasHydrated = false; - const doHydrate = (e) => { - if (!hasHydrated) { - hasHydrated = true; - teardown(); - hydrate2(); - e.target.dispatchEvent(new e.constructor(e.type, e)); - } - }; - const teardown = () => { - forEach((el) => { - for (const i of interactions) { - el.removeEventListener(i, doHydrate); - } - }); - }; - forEach((el) => { - for (const i of interactions) { - el.addEventListener(i, doHydrate, { once: true }); - } - }); - return teardown; -}; -function forEachElement(node, cb) { - if (isComment(node) && node.data === "[") { - let depth = 1; - let next = node.nextSibling; - while (next) { - if (next.nodeType === 1) { - const result = cb(next); - if (result === false) { - break; - } - } else if (isComment(next)) { - if (next.data === "]") { - if (--depth === 0) break; - } else if (next.data === "[") { - depth++; - } - } - next = next.nextSibling; - } - } else { - cb(node); - } -} -var isAsyncWrapper = (i) => !!i.type.__asyncLoader; -function defineAsyncComponent(source) { - if (isFunction(source)) { - source = { loader: source }; - } - const { - loader, - loadingComponent, - errorComponent, - delay = 200, - hydrate: hydrateStrategy, - timeout, - // undefined = never times out - suspensible = true, - onError: userOnError - } = source; - let pendingRequest = null; - let resolvedComp; - let retries = 0; - const retry = () => { - retries++; - pendingRequest = null; - return load(); - }; - const load = () => { - let thisRequest; - return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { - err = err instanceof Error ? err : new Error(String(err)); - if (userOnError) { - return new Promise((resolve2, reject) => { - const userRetry = () => resolve2(retry()); - const userFail = () => reject(err); - userOnError(err, userRetry, userFail, retries + 1); - }); - } else { - throw err; - } - }).then((comp) => { - if (thisRequest !== pendingRequest && pendingRequest) { - return pendingRequest; - } - if (!comp) { - warn$1( - `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` - ); - } - if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { - comp = comp.default; - } - if (comp && !isObject(comp) && !isFunction(comp)) { - throw new Error(`Invalid async component load result: ${comp}`); - } - resolvedComp = comp; - return comp; - })); - }; - return defineComponent({ - name: "AsyncComponentWrapper", - __asyncLoader: load, - __asyncHydrate(el, instance, hydrate2) { - const doHydrate = hydrateStrategy ? () => { - const teardown = hydrateStrategy( - hydrate2, - (cb) => forEachElement(el, cb) - ); - if (teardown) { - (instance.bum || (instance.bum = [])).push(teardown); - } - } : hydrate2; - if (resolvedComp) { - doHydrate(); - } else { - load().then(() => !instance.isUnmounted && doHydrate()); - } - }, - get __asyncResolved() { - return resolvedComp; - }, - setup() { - const instance = currentInstance; - markAsyncBoundary(instance); - if (resolvedComp) { - return () => createInnerComp(resolvedComp, instance); - } - const onError = (err) => { - pendingRequest = null; - handleError( - err, - instance, - 13, - !errorComponent - ); - }; - if (suspensible && instance.suspense || isInSSRComponentSetup) { - return load().then((comp) => { - return () => createInnerComp(comp, instance); - }).catch((err) => { - onError(err); - return () => errorComponent ? createVNode(errorComponent, { - error: err - }) : null; - }); - } - const loaded = ref(false); - const error = ref(); - const delayed = ref(!!delay); - if (delay) { - setTimeout(() => { - delayed.value = false; - }, delay); - } - if (timeout != null) { - setTimeout(() => { - if (!loaded.value && !error.value) { - const err = new Error( - `Async component timed out after ${timeout}ms.` - ); - onError(err); - error.value = err; - } - }, timeout); - } - load().then(() => { - loaded.value = true; - if (instance.parent && isKeepAlive(instance.parent.vnode)) { - instance.parent.update(); - } - }).catch((err) => { - onError(err); - error.value = err; - }); - return () => { - if (loaded.value && resolvedComp) { - return createInnerComp(resolvedComp, instance); - } else if (error.value && errorComponent) { - return createVNode(errorComponent, { - error: error.value - }); - } else if (loadingComponent && !delayed.value) { - return createVNode(loadingComponent); - } - }; - } - }); -} -function createInnerComp(comp, parent) { - const { ref: ref2, props, children, ce } = parent.vnode; - const vnode = createVNode(comp, props, children); - vnode.ref = ref2; - vnode.ce = ce; - delete parent.vnode.ce; - return vnode; -} -var isKeepAlive = (vnode) => vnode.type.__isKeepAlive; -var KeepAliveImpl = { - name: `KeepAlive`, - // Marker for special handling inside the renderer. We are not using a === - // check directly on KeepAlive in the renderer, because importing it directly - // would prevent it from being tree-shaken. - __isKeepAlive: true, - props: { - include: [String, RegExp, Array], - exclude: [String, RegExp, Array], - max: [String, Number] - }, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const sharedContext = instance.ctx; - if (!sharedContext.renderer) { - return () => { - const children = slots.default && slots.default(); - return children && children.length === 1 ? children[0] : children; - }; - } - const cache = /* @__PURE__ */ new Map(); - const keys = /* @__PURE__ */ new Set(); - let current = null; - if (true) { - instance.__v_cache = cache; - } - const parentSuspense = instance.suspense; - const { - renderer: { - p: patch, - m: move, - um: _unmount, - o: { createElement } - } - } = sharedContext; - const storageContainer = createElement("div"); - sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { - const instance2 = vnode.component; - move(vnode, container, anchor, 0, parentSuspense); - patch( - instance2.vnode, - vnode, - container, - anchor, - instance2, - parentSuspense, - namespace, - vnode.slotScopeIds, - optimized - ); - queuePostRenderEffect(() => { - instance2.isDeactivated = false; - if (instance2.a) { - invokeArrayFns(instance2.a); - } - const vnodeHook = vnode.props && vnode.props.onVnodeMounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode); - } - }, parentSuspense); - if (true) { - devtoolsComponentAdded(instance2); - } - }; - sharedContext.deactivate = (vnode) => { - const instance2 = vnode.component; - invalidateMount(instance2.m); - invalidateMount(instance2.a); - move(vnode, storageContainer, null, 1, parentSuspense); - queuePostRenderEffect(() => { - if (instance2.da) { - invokeArrayFns(instance2.da); - } - const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode); - } - instance2.isDeactivated = true; - }, parentSuspense); - if (true) { - devtoolsComponentAdded(instance2); - } - }; - function unmount(vnode) { - resetShapeFlag(vnode); - _unmount(vnode, instance, parentSuspense, true); - } - function pruneCache(filter) { - cache.forEach((vnode, key) => { - const name = getComponentName(vnode.type); - if (name && !filter(name)) { - pruneCacheEntry(key); - } - }); - } - function pruneCacheEntry(key) { - const cached = cache.get(key); - if (cached && (!current || !isSameVNodeType(cached, current))) { - unmount(cached); - } else if (current) { - resetShapeFlag(current); - } - cache.delete(key); - keys.delete(key); - } - watch2( - () => [props.include, props.exclude], - ([include, exclude]) => { - include && pruneCache((name) => matches(include, name)); - exclude && pruneCache((name) => !matches(exclude, name)); - }, - // prune post-render after `current` has been updated - { flush: "post", deep: true } - ); - let pendingCacheKey = null; - const cacheSubtree = () => { - if (pendingCacheKey != null) { - if (isSuspense(instance.subTree.type)) { - queuePostRenderEffect(() => { - cache.set(pendingCacheKey, getInnerChild(instance.subTree)); - }, instance.subTree.suspense); - } else { - cache.set(pendingCacheKey, getInnerChild(instance.subTree)); - } - } - }; - onMounted(cacheSubtree); - onUpdated(cacheSubtree); - onBeforeUnmount(() => { - cache.forEach((cached) => { - const { subTree, suspense } = instance; - const vnode = getInnerChild(subTree); - if (cached.type === vnode.type && cached.key === vnode.key) { - resetShapeFlag(vnode); - const da = vnode.component.da; - da && queuePostRenderEffect(da, suspense); - return; - } - unmount(cached); - }); - }); - return () => { - pendingCacheKey = null; - if (!slots.default) { - return current = null; - } - const children = slots.default(); - const rawVNode = children[0]; - if (children.length > 1) { - if (true) { - warn$1(`KeepAlive should contain exactly one component child.`); - } - current = null; - return children; - } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { - current = null; - return rawVNode; - } - let vnode = getInnerChild(rawVNode); - if (vnode.type === Comment) { - current = null; - return vnode; - } - const comp = vnode.type; - const name = getComponentName( - isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp - ); - const { include, exclude, max } = props; - if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { - vnode.shapeFlag &= ~256; - current = vnode; - return rawVNode; - } - const key = vnode.key == null ? comp : vnode.key; - const cachedVNode = cache.get(key); - if (vnode.el) { - vnode = cloneVNode(vnode); - if (rawVNode.shapeFlag & 128) { - rawVNode.ssContent = vnode; - } - } - pendingCacheKey = key; - if (cachedVNode) { - vnode.el = cachedVNode.el; - vnode.component = cachedVNode.component; - if (vnode.transition) { - setTransitionHooks(vnode, vnode.transition); - } - vnode.shapeFlag |= 512; - keys.delete(key); - keys.add(key); - } else { - keys.add(key); - if (max && keys.size > parseInt(max, 10)) { - pruneCacheEntry(keys.values().next().value); - } - } - vnode.shapeFlag |= 256; - current = vnode; - return isSuspense(rawVNode.type) ? rawVNode : vnode; - }; - } -}; -var KeepAlive = KeepAliveImpl; -function matches(pattern, name) { - if (isArray(pattern)) { - return pattern.some((p2) => matches(p2, name)); - } else if (isString(pattern)) { - return pattern.split(",").includes(name); - } else if (isRegExp(pattern)) { - pattern.lastIndex = 0; - return pattern.test(name); - } - return false; -} -function onActivated(hook, target) { - registerKeepAliveHook(hook, "a", target); -} -function onDeactivated(hook, target) { - registerKeepAliveHook(hook, "da", target); -} -function registerKeepAliveHook(hook, type, target = currentInstance) { - const wrappedHook = hook.__wdc || (hook.__wdc = () => { - let current = target; - while (current) { - if (current.isDeactivated) { - return; - } - current = current.parent; - } - return hook(); - }); - injectHook(type, wrappedHook, target); - if (target) { - let current = target.parent; - while (current && current.parent) { - if (isKeepAlive(current.parent.vnode)) { - injectToKeepAliveRoot(wrappedHook, type, target, current); - } - current = current.parent; - } - } -} -function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { - const injected = injectHook( - type, - hook, - keepAliveRoot, - true - /* prepend */ - ); - onUnmounted(() => { - remove(keepAliveRoot[type], injected); - }, target); -} -function resetShapeFlag(vnode) { - vnode.shapeFlag &= ~256; - vnode.shapeFlag &= ~512; -} -function getInnerChild(vnode) { - return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; -} -function injectHook(type, hook, target = currentInstance, prepend = false) { - if (target) { - const hooks = target[type] || (target[type] = []); - const wrappedHook = hook.__weh || (hook.__weh = (...args) => { - pauseTracking(); - const reset = setCurrentInstance(target); - const res = callWithAsyncErrorHandling(hook, target, type, args); - reset(); - resetTracking(); - return res; - }); - if (prepend) { - hooks.unshift(wrappedHook); - } else { - hooks.push(wrappedHook); - } - return wrappedHook; - } else if (true) { - const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); - warn$1( - `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` - ); - } -} -var createHook = (lifecycle) => (hook, target = currentInstance) => { - if (!isInSSRComponentSetup || lifecycle === "sp") { - injectHook(lifecycle, (...args) => hook(...args), target); - } -}; -var onBeforeMount = createHook("bm"); -var onMounted = createHook("m"); -var onBeforeUpdate = createHook( - "bu" -); -var onUpdated = createHook("u"); -var onBeforeUnmount = createHook( - "bum" -); -var onUnmounted = createHook("um"); -var onServerPrefetch = createHook( - "sp" -); -var onRenderTriggered = createHook("rtg"); -var onRenderTracked = createHook("rtc"); -function onErrorCaptured(hook, target = currentInstance) { - injectHook("ec", hook, target); -} -var COMPONENTS = "components"; -var DIRECTIVES = "directives"; -function resolveComponent(name, maybeSelfReference) { - return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; -} -var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); -function resolveDynamicComponent(component) { - if (isString(component)) { - return resolveAsset(COMPONENTS, component, false) || component; - } else { - return component || NULL_DYNAMIC_COMPONENT; - } -} -function resolveDirective(name) { - return resolveAsset(DIRECTIVES, name); -} -function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { - const instance = currentRenderingInstance || currentInstance; - if (instance) { - const Component = instance.type; - if (type === COMPONENTS) { - const selfName = getComponentName( - Component, - false - ); - if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { - return Component; - } - } - const res = ( - // local registration - // check instance[type] first which is resolved for options API - resolve(instance[type] || Component[type], name) || // global registration - resolve(instance.appContext[type], name) - ); - if (!res && maybeSelfReference) { - return Component; - } - if (warnMissing && !res) { - const extra = type === COMPONENTS ? ` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; - warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); - } - return res; - } else if (true) { - warn$1( - `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` - ); - } -} -function resolve(registry, name) { - return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); -} -function renderList(source, renderItem, cache, index) { - let ret; - const cached = cache && cache[index]; - const sourceIsArray = isArray(source); - if (sourceIsArray || isString(source)) { - const sourceIsReactiveArray = sourceIsArray && isReactive(source); - let needsWrap = false; - if (sourceIsReactiveArray) { - needsWrap = !isShallow(source); - source = shallowReadArray(source); - } - ret = new Array(source.length); - for (let i = 0, l = source.length; i < l; i++) { - ret[i] = renderItem( - needsWrap ? toReactive(source[i]) : source[i], - i, - void 0, - cached && cached[i] - ); - } - } else if (typeof source === "number") { - if (!Number.isInteger(source)) { - warn$1(`The v-for range expect an integer value but got ${source}.`); - } - ret = new Array(source); - for (let i = 0; i < source; i++) { - ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); - } - } else if (isObject(source)) { - if (source[Symbol.iterator]) { - ret = Array.from( - source, - (item, i) => renderItem(item, i, void 0, cached && cached[i]) - ); - } else { - const keys = Object.keys(source); - ret = new Array(keys.length); - for (let i = 0, l = keys.length; i < l; i++) { - const key = keys[i]; - ret[i] = renderItem(source[key], key, i, cached && cached[i]); - } - } - } else { - ret = []; - } - if (cache) { - cache[index] = ret; - } - return ret; -} -function createSlots(slots, dynamicSlots) { - for (let i = 0; i < dynamicSlots.length; i++) { - const slot = dynamicSlots[i]; - if (isArray(slot)) { - for (let j = 0; j < slot.length; j++) { - slots[slot[j].name] = slot[j].fn; - } - } else if (slot) { - slots[slot.name] = slot.key ? (...args) => { - const res = slot.fn(...args); - if (res) res.key = slot.key; - return res; - } : slot.fn; - } - } - return slots; -} -function renderSlot(slots, name, props = {}, fallback, noSlotted) { - if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { - if (name !== "default") props.name = name; - return openBlock(), createBlock( - Fragment, - null, - [createVNode("slot", props, fallback && fallback())], - 64 - ); - } - let slot = slots[name]; - if (slot && slot.length > 1) { - warn$1( - `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` - ); - slot = () => []; - } - if (slot && slot._c) { - slot._d = false; - } - openBlock(); - const validSlotContent = slot && ensureValidVNode(slot(props)); - const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch - // key attached in the `createSlots` helper, respect that - validSlotContent && validSlotContent.key; - const rendered = createBlock( - Fragment, - { - key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content - (!validSlotContent && fallback ? "_fb" : "") - }, - validSlotContent || (fallback ? fallback() : []), - validSlotContent && slots._ === 1 ? 64 : -2 - ); - if (!noSlotted && rendered.scopeId) { - rendered.slotScopeIds = [rendered.scopeId + "-s"]; - } - if (slot && slot._c) { - slot._d = true; - } - return rendered; -} -function ensureValidVNode(vnodes) { - return vnodes.some((child) => { - if (!isVNode(child)) return true; - if (child.type === Comment) return false; - if (child.type === Fragment && !ensureValidVNode(child.children)) - return false; - return true; - }) ? vnodes : null; -} -function toHandlers(obj, preserveCaseIfNecessary) { - const ret = {}; - if (!isObject(obj)) { - warn$1(`v-on with no argument expects an object value.`); - return ret; - } - for (const key in obj) { - ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; - } - return ret; -} -var getPublicInstance = (i) => { - if (!i) return null; - if (isStatefulComponent(i)) return getComponentPublicInstance(i); - return getPublicInstance(i.parent); -}; -var publicPropertiesMap = ( - // Move PURE marker to new line to workaround compiler discarding it - // due to type annotation - extend(/* @__PURE__ */ Object.create(null), { - $: (i) => i, - $el: (i) => i.vnode.el, - $data: (i) => i.data, - $props: (i) => true ? shallowReadonly(i.props) : i.props, - $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, - $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, - $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, - $parent: (i) => getPublicInstance(i.parent), - $root: (i) => getPublicInstance(i.root), - $host: (i) => i.ce, - $emit: (i) => i.emit, - $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, - $forceUpdate: (i) => i.f || (i.f = () => { - queueJob(i.update); - }), - $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), - $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP - }) -); -var isReservedPrefix = (key) => key === "_" || key === "$"; -var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); -var PublicInstanceProxyHandlers = { - get({ _: instance }, key) { - if (key === "__v_skip") { - return true; - } - const { ctx, setupState, data, props, accessCache, type, appContext } = instance; - if (key === "__isVue") { - return true; - } - let normalizedProps; - if (key[0] !== "$") { - const n = accessCache[key]; - if (n !== void 0) { - switch (n) { - case 1: - return setupState[key]; - case 2: - return data[key]; - case 4: - return ctx[key]; - case 3: - return props[key]; - } - } else if (hasSetupBinding(setupState, key)) { - accessCache[key] = 1; - return setupState[key]; - } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { - accessCache[key] = 2; - return data[key]; - } else if ( - // only cache other properties when instance has declared (thus stable) - // props - (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) - ) { - accessCache[key] = 3; - return props[key]; - } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { - accessCache[key] = 4; - return ctx[key]; - } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { - accessCache[key] = 0; - } - } - const publicGetter = publicPropertiesMap[key]; - let cssModule, globalProperties; - if (publicGetter) { - if (key === "$attrs") { - track(instance.attrs, "get", ""); - markAttrsAccessed(); - } else if (key === "$slots") { - track(instance, "get", key); - } - return publicGetter(instance); - } else if ( - // css module (injected by vue-loader) - (cssModule = type.__cssModules) && (cssModule = cssModule[key]) - ) { - return cssModule; - } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { - accessCache[key] = 4; - return ctx[key]; - } else if ( - // global properties - globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) - ) { - { - return globalProperties[key]; - } - } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading - // to infinite warning loop - key.indexOf("__v") !== 0)) { - if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { - warn$1( - `Property ${JSON.stringify( - key - )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` - ); - } else if (instance === currentRenderingInstance) { - warn$1( - `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` - ); - } - } - }, - set({ _: instance }, key, value) { - const { data, setupState, ctx } = instance; - if (hasSetupBinding(setupState, key)) { - setupState[key] = value; - return true; - } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { - warn$1(`Cannot mutate - - - - \ No newline at end of file diff --git a/pulse/en/.vitepress/theme/index.ts b/pulse/en/.vitepress/theme/index.ts deleted file mode 100644 index b8e05ca2..00000000 --- a/pulse/en/.vitepress/theme/index.ts +++ /dev/null @@ -1,163 +0,0 @@ -import { h } from 'vue'; -import type { Theme } from 'vitepress'; -import DefaultTheme from 'vitepress/theme'; -import './style.css'; - -import { - NolebaseEnhancedReadabilitiesMenu, - NolebaseEnhancedReadabilitiesScreenMenu, - NolebaseEnhancedReadabilitiesPlugin, LayoutMode, - SpotlightStyle, -} from '@nolebase/vitepress-plugin-enhanced-readabilities/client' - -import '@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css' - -import {NolebaseInlineLinkPreviewPlugin,} from '@nolebase/vitepress-plugin-inline-link-preview/client' - -import '@nolebase/vitepress-plugin-inline-link-preview/client/style.css' - -import AuthorsComponent from "./author/PageAuthors.vue" - -const EMOJI_MAP = { - tip: '💡', - info: 'ℹ️', - warning: '⚠️', - danger: '🔥', - details: '📜', -} as const; - -const YAML_CLASS = 'language-yaml'; -const HIGHLIGHT_CLASS = 'hash-highlight'; -let isHandlerAttached = false; - -const postRenderTasks = () => { - if (import.meta.env.SSR) return; - - injectEmojis(); - highlightHashElement(); - processYamlBlocks(); -}; - -function injectEmojis() { - const processBlock = (block: Element, emoji: string) => { - const title = block.querySelector('.custom-block-title, summary') as HTMLElement | null; - if (!title || title.dataset.emojiAdded) return; - - title.dataset.emojiAdded = 'true'; - title.insertAdjacentHTML('afterbegin', `${emoji} `); - }; - - Object.entries(EMOJI_MAP).forEach(([type, emoji]) => { - const selector = type === 'details' ? 'details.custom-block.details' : `.custom-block.${type}`; - document.querySelectorAll(selector).forEach((block) => { - processBlock(block, emoji); - }); - }); -} - -function highlightHashElement() { - if (import.meta.env.SSR) return; - - document.querySelectorAll(`.${HIGHLIGHT_CLASS}`).forEach((el) => { - el.classList.remove(HIGHLIGHT_CLASS); - }); - - const hash = decodeURIComponent(window.location.hash); - if (!hash) return; - - const target = document.querySelector(hash); - if (!target) return; - - target.classList.add(HIGHLIGHT_CLASS); - - const header = document.querySelector('.VPNavBar') as HTMLElement | null; - const headerHeight = header?.offsetHeight || 60; - const targetPosition = target.getBoundingClientRect().top + window.scrollY - headerHeight; - - window.scrollTo({ - top: targetPosition, - behavior: 'smooth', - }); -} - -function processYamlBlocks() { - if (import.meta.env.SSR) return; - - document.querySelectorAll(`div[class*="${YAML_CLASS}"] pre`).forEach((pre) => { - pre.classList.add('yaml-lines'); - - pre.querySelectorAll('.line').forEach((line) => { - if (line.querySelector('.line-content')) return; - - const wrapper = document.createElement('span'); - wrapper.className = 'line-content'; - wrapper.innerHTML = line.innerHTML; - line.innerHTML = ''; - line.appendChild(wrapper); - }); - }); -} - -const scheduleTask = (fn: () => void) => { - if (import.meta.env.SSR) { - fn(); - } else { - requestAnimationFrame(fn); - } -}; - -export default { - extends: DefaultTheme, - - Layout: () => h(DefaultTheme.Layout, null, { - 'page-after': () => scheduleTask(postRenderTasks), - 'nav-bar-content-after': () => h(NolebaseEnhancedReadabilitiesMenu), - 'nav-screen-content-after': () => h(NolebaseEnhancedReadabilitiesScreenMenu), - "aside-outline-after": () => h(AuthorsComponent), - }), - - enhanceApp({ app, router }) { - app.use(NolebaseEnhancedReadabilitiesPlugin, { - layoutSwitch: { - disableHelp: false, - defaultMode: LayoutMode.BothWidthAdjustable, - contentLayoutMaxWidth: { - disableHelp: false, - defaultMaxWidth: 100 - }, - pageLayoutMaxWidth: { - disableHelp: false, - defaultMaxWidth: 100 - } - }, - spotlight: { - disableHelp: false, - hoverBlockColor: 'rgb(240 197 52 / 10%)', - defaultToggle: true, - defaultStyle: SpotlightStyle.Aside, - } - }); - - app.use(NolebaseInlineLinkPreviewPlugin, { - popupWidth: 800, - popupHeight: 400, - }); - - app.provide('post-render', postRenderTasks); - - router.onAfterRouteChanged = () => { - scheduleTask(postRenderTasks); - }; - - if (!isHandlerAttached && !import.meta.env.SSR) { - window.addEventListener('hashchange', highlightHashElement); - document.addEventListener('click', (e) => { - const target = e.target as HTMLElement; - if (target.closest('.header-anchor, a[href^="#"]')) { - scheduleTask(highlightHashElement); - } - }); - isHandlerAttached = true; - } - }, -} satisfies Theme; \ No newline at end of file diff --git a/pulse/en/.vitepress/theme/style.css b/pulse/en/.vitepress/theme/style.css deleted file mode 100644 index 24206812..00000000 --- a/pulse/en/.vitepress/theme/style.css +++ /dev/null @@ -1,250 +0,0 @@ -:root { - --vp-c-brand-1: #0076c7; - --vp-c-brand-2: #ADD8E6; - --vp-c-indigo-1: #8ec5f6; - --vp-c-indigo-2: #0b94ee; - --vp-c-indigo-3: #0076c7; - --vp-c-indigo-soft: rgba(0, 118, 199, 0.18); - --vp-custom-block-tip-bg: rgba(0, 140, 227, 0.27); - --vp-custom-block-tip-code-bg: rgba(1, 137, 210, 0.19); -} - -:root.dark { - --vp-c-brand-1: #87CEFA; - --vp-c-brand-2: #ADD8E6; - --vp-c-indigo-1: #8ec5f6; - --vp-c-indigo-2: #0b94ee; - --vp-c-indigo-3: #0076c7; - --vp-c-indigo-soft: rgba(0, 118, 199, 0.18); - --vp-c-bg: #1b1b1b; - --vp-c-bg-alt: #222222; - --vp-c-bg-elv: #1b1b1b; - --vp-c-bg-soft: #222222; - --vp-c-gutter: #2e2e32; - --vp-custom-block-info-bg: #222222; - - [bg~="\$vp-nolebase-enhanced-readabilities-menu-background-color"] { - background-color: #222222; - } -} - -.VPButton.medium[data-v-a6f37409] { - border-radius: 8px; -} - -.VPButton.alt[data-v-a6f37409] { - background-color: var(--vp-c-gutter); -} - -.box[data-v-e8895942] { - border-radius: 13px; - border: 1px solid var(--vp-c-divider); -} - -.VPSocialLinks.VPNavBarSocialLinks.social-links { - margin-right: 0; -} - -.vp-code-group .tabs { - box-shadow: none; - border: 1px solid var(--vp-c-divider); -} - -.vp-doc div[class*='language-'], -.vp-block { - border: 1px solid var(--vp-c-divider); -} - -.vp-doc .custom-block { - border: 1px solid var(--vp-c-divider); -} - -.vp-doc table { - display: table; - width: 100%; - border-collapse: separate; - margin: 24px 0; - font-size: 14px; - overflow: hidden; - border-radius: 8px; - line-height: 1.6; - border-spacing: 0; -} - -.vp-doc tr:first-child th:first-child { - border-top-left-radius: 8px; -} - -.vp-doc tr:first-child th:last-child { - border-top-right-radius: 8px; -} - -.vp-doc tr:last-child td:first-child { - border-bottom-left-radius: 8px; -} - -.vp-doc tr:last-child td:last-child { - border-bottom-right-radius: 8px; -} - -.vp-doc th { - background-color: var(--vp-c-bg-soft); - text-align: left; - font-weight: 600; - padding: 12px 16px; - border: 1px solid var(--vp-c-divider); -} - -.vp-doc td { - padding: 12px 16px; - border: 1px solid var(--vp-c-divider); - vertical-align: top; -} - -.vp-doc :not(pre) > code { - background-color: var(--vp-c-bg-alt); -} - -.custom-block.details code, .vp-doc td > code { - background-color: var(--vp-c-gutter); -} - -img { - border-radius: 8px; -} - -div[class*='language-yaml'], -div[class*='language-yml'] { - position: relative; -} - -div[class*='language-yaml'] .line, -div[class*='language-yml'] .line { - position: relative; - display: inline-block; - width: 100%; - z-index: 1; -} - -div[class*='language-yaml'] .line::after, -div[class*='language-yml'] .line::after { - content: ''; - position: absolute; - left: -1.5rem; - right: -1.5rem; - top: 0; - bottom: 0; - background: rgba(66, 185, 131, 0.08); - z-index: -1; - opacity: 0; - transition: opacity 0.15s ease; -} - -div[class*='language-yaml'] .line:hover::after, -div[class*='language-yml'] .line:hover::after { - opacity: 1; -} - -div[class*='language-yaml'] .line::before, -div[class*='language-yml'] .line::before { - content: ''; - position: absolute; - left: -1.5rem; - top: 0; - bottom: 0; - width: 2px; - background: #42b983; - opacity: 0; - transition: opacity 0.15s ease; -} - -div[class*='language-yaml'] .line:hover::before, -div[class*='language-yml'] .line:hover::before { - opacity: 1; -} - -div[class*='language-yaml'] .line > span, -div[class*='language-yml'] .line > span { - display: inline-block; - padding: 0.1rem 0; - white-space: pre; -} - -.dark div[class*='language-yaml'] .line::after, -.dark div[class*='language-yml'] .line::after { - background: rgba(66, 185, 131, 0.15); -} - -.hash-highlight { - position: relative; - overflow: hidden; -} - -.hash-highlight::after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 2px; - background: var(--vp-c-brand-1); - animation: hash-line 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); - transform-origin: left; - opacity: 0.8; -} - -.hash-highlight .header-anchor { - color: var(--vp-c-brand-1) !important; - transition: color 0.3s ease; -} - -.dark .hash-highlight::after { - background: var(--vp-c-brand-2); -} - -.dark .hash-highlight .header-anchor { - color: var(--vp-c-brand-2) !important; -} - -@keyframes hash-line { - 0% { - transform: scaleX(0); - opacity: 0; - } - 40% { - transform: scaleX(1); - opacity: 1; - } - 100% { - transform: scaleX(1); - opacity: 0.8; - } -} - -kbd:not(.DocSearch-Button-Key) { - background-color: #eee !important; - border-radius: 3px; - border: 1px solid #b4b4b4; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), - 0 2px 0 0 rgba(255, 255, 255, 0.7) inset; - color: #333; - display: inline-block; - font-size: 0.85em; - font-weight: 700; - line-height: 1; - padding: 5px; - white-space: nowrap; -} - -.DocSearch-Button { - background-color: transparent; -} - -.DocSearch-Button-Key { - display: none; -} - -.DocSearch-Button:active, .DocSearch-Button:focus, .DocSearch-Button:hover { - background-color: transparent; - border-color: transparent; -} \ No newline at end of file diff --git a/pulse/en/api/index.md b/pulse/en/api/index.md deleted file mode 100644 index c15a5882..00000000 --- a/pulse/en/api/index.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -order: 100 -authors: - - TheFaser ---- - -# API - -FlectonePulse is a powerful Minecraft plugin for customizing server messages, chat, commands, and integrations, supporting platforms like Bukkit, Spigot, Paper, Purpur, Folia, BungeeCord, Velocity, and Fabric. It uses Google Guice for dependency injection, with most non-model classes annotated as `@Singleton` - -## Dependency Integration - -FlectonePulse is available on Maven Central. Below are configurations for including it in your project using Maven, Gradle (Groovy), or Gradle (Kotlin DSL) - -::: code-group - -```xml - - net.flectone.pulse - core - 1.7.3 - provided - -``` - -```groovy -repositories { - mavenCentral() -} - -dependencies { - compileOnly 'net.flectone.pulse:core:1.7.3' // Replace with latest version -} -``` - -```kotlin -repositories { - mavenCentral() -} - -dependencies { - compileOnly("net.flectone.pulse:core:1.7.3") // Replace with latest version -} -``` - -::: - -For snapshot versions: - -::: code-group - -```xml - - net.flectone.pulse - core - 1.7.4-SNAPSHOT - provided - -``` - -```groovy -repositories { - maven { url 'https://central.sonatype.com/repository/maven-snapshots/' } -} - -dependencies { - compileOnly 'net.flectone.pulse:core:1.7.4-SNAPSHOT' // Replace with latest version -} -``` - -```kotlin -repositories { - maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") } -} - -dependencies { - compileOnly("net.flectone.pulse:core:1.7.4-SNAPSHOT") // Replace with latest version -} -``` - -::: - -## Bukkit Example - -Below is an example of a Bukkit plugin using FlectonePulse to print "Hello from FlectonePulse" - -### plugin.yml -```yaml -name: MyPlugin -version: 1.0.0 -main: com.example.myplugin.MyPlugin -api-version: 1.13 -softdepend: - - FlectonePulse -``` - -### Example plugin code -```java -package com.example.myplugin; - -import net.flectone.pulse.FlectonePulse; -import net.flectone.pulse.FlectonePulseAPI; -import net.flectone.pulse.util.logging.FLogger; -import org.bukkit.Bukkit; -import org.bukkit.plugin.java.JavaPlugin; - -public class MyPlugin extends JavaPlugin { - - @Override - public void onEnable() { - - if (Bukkit.getPluginManager().getPlugin("FlectonePulse") != null) { - FlectonePulse flectonePulse = FlectonePulseAPI.getInstance(); - - FLogger fLogger = flectonePulse.get(FLogger.class); - fLogger.info("Hello from FlectonePulse"); - } - - } -} -``` - -## Key API Methods - -```java -FlectonePulse flectonePulse = FlectonePulseAPI.getInstance(); - -// Get singleton instance of specified class using Guice dependency injection -// Class clazz = ... -// flectonePulse.get(clazz); -FLogger fLogger = flectonePulse.get(FLogger.class); - -// Check if injector is ready -flectonePulse.isReady(); - -// Reload plugin, throws `ReloadException` on errors -flectonePulse.reload(); -``` - -## Notes - -- Ensure FlectonePulse is installed on the server and listed as a softdepend in `plugin.yml` -- Use `isReady()` to verify the injector is ready before calling `get()` -- For registering listeners, use `ListenerRegistry.class` and the `registerPermanent()` method \ No newline at end of file diff --git a/pulse/en/docs/command/afk/index.md b/pulse/en/docs/command/afk/index.md deleted file mode 100644 index 34c2333c..00000000 --- a/pulse/en/docs/command/afk/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/afk` - -Command to toggle AFK mode -![afk](/afkglobalmessage.png) - -::: danger ATTENTION -The command will not work if the [`AFK`](/docs/message/afk/) module is disabled -::: - -[//]: # (command.yml) - - `command.yml → afk` - -<<< @/files/command.yml#afk - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.afk` - -<<< @/files/permission.yml#afk - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/anon/index.md b/pulse/en/docs/command/anon/index.md deleted file mode 100644 index 081eb7c0..00000000 --- a/pulse/en/docs/command/anon/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/anon` - -Command for anonymous messages -![command anon](/commandanon.png) - -[//]: # (localization) - - `localizations → language.yml → command.anon` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#anon -<<< @/files/localizations/en_us.yml#anon -::: - -### `format` - -The format of the message that will be sent - -[//]: # (command.yml) - - `command.yml → anon` - - -<<< @/files/command.yml#anon - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.anon` - - -<<< @/files/permission.yml#anon - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/ball/index.md b/pulse/en/docs/command/ball/index.md deleted file mode 100644 index 30755b30..00000000 --- a/pulse/en/docs/command/ball/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/ball` - -Command to ask the Magic 8-Ball a question -![command ball](/commandball.png) - -[//]: # (localization) - - `localizations → language.yml → command.ball` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ball -<<< @/files/localizations/en_us.yml#ball -::: - -### `format` - -Format of the message that will be sent - -### `answers` - -List of possible answers - -[//]: # (command.yml) - - `command.yml → ball` - -<<< @/files/command.yml#ball - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ball` - -<<< @/files/permission.yml#ball - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/ban/index.md b/pulse/en/docs/command/ban/index.md deleted file mode 100644 index d82f9a82..00000000 --- a/pulse/en/docs/command/ban/index.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/ban` - -Command to ban a player -![command ban](/commandban.png) - -[//]: # (localization) - - `localizations → language.yml → command.ban` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ban -<<< @/files/localizations/en_us.yml#ban -::: - -### `null_player` - -Message if the entered player is not found - -### `null_time` - -Message if an invalid time is entered - -### `lower_weight_group` - -Message if the command is executed by a player with a group weight lower than the player being moderated - -### `reasons` - -A list with keys and values, where the key is a word and the value is a specific reason - -::: info You can add your own reasons, for example: -```yaml -random_kek: "Random reason" -``` -Then if I type `/ban player 1d random_kek`, the reason will be `Random reason` - -If no reason is specified, `default` will be used -::: - -### `server` - -Message for everyone - -### `person` - -Message for the player - -### `connection_attempt` - -Message if a banned player tries to connect - -[//]: # (command.yml) - - `command.yml → ban` - -<<< @/files/command.yml#ban - - - - -### `check_group_weight` - -Whether to check players' group weights. If the player being moderated has a higher role than the command sender, the command will not execute and the `lower_weight_group` error will be shown - -### `show_connection_attempts` - -If enabled, it will show a message when a banned player tries to connect -![command ban connect](/commandbanconnect.png) - - - -### `time_limits` - -Time limits based on the sender's group. The key is the group weight, and the value is the maximum moderation time in milliseconds (`1` second = `1000` milliseconds) - -::: info EXAMPLE - -```yaml - time_limits: - 20: 35000 - 50: 100000 -``` - -- If a player has a group weight of `10`, the command will NOT be executed -- If a player has a group weight of `20`, the maximum time will be `35000` -- If a player has a group weight of `40`, the maximum time will also be `35000` -- If a player has a group weight of `50` or higher, it will be `100000` - -For unlimited time, use the value `-1` - -::: - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ban` - -<<< @/files/permission.yml#ban - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/banlist/index.md b/pulse/en/docs/command/banlist/index.md deleted file mode 100644 index b4e14fec..00000000 --- a/pulse/en/docs/command/banlist/index.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/banlist` - -Command to view the list of bans -![command banlist](/commandbanlist.png) - -[//]: # (localization) - - `localizations → language.yml → command.banlist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#banlist -<<< @/files/localizations/en_us.yml#banlist -::: - -### `empty` - -Message if the list of banned players is empty - -### `null_page` - -Message if the entered page does not exist - -### `null_player` - -Message if the entered player is not found - -### `global` - -::: details Messages for global bans - -#### `header` - -Top part of the list message - -#### `line` - -Format of each ban in the list - -#### `footer` - -Bottom part of the list message -::: - -### `player` - -::: details Messages for player bans - -#### `header` - -Top part of the list message - -#### `line` - -Format of each ban in the list - -#### `footer` - -Bottom part of the list message -::: - -[//]: # (command.yml) - - `command.yml → banlist` - -<<< @/files/command.yml#banlist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.banlist` - -<<< @/files/permission.yml#banlist - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/broadcast/index.md b/pulse/en/docs/command/broadcast/index.md deleted file mode 100644 index 8dad33ec..00000000 --- a/pulse/en/docs/command/broadcast/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/broadcast` - -Command for global announcements -![command broadcast](/commandbroadcast.png) - -[//]: # (localization) - - `localizations → language.yml → command.broadcast` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#broadcast -<<< @/files/localizations/en_us.yml#broadcast -::: - -### `format` - -Format of the message that will be sent - -[//]: # (command.yml) - - `command.yml → broadcast` - - -<<< @/files/command.yml#broadcast - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.broadcast` - - -<<< @/files/permission.yml#broadcast - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/chatcolor/index.md b/pulse/en/docs/command/chatcolor/index.md deleted file mode 100644 index d2938e0b..00000000 --- a/pulse/en/docs/command/chatcolor/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/chatcolor` - -Command for changing [colors](/docs/message/format/fcolor/) -![command chatcolor](/commandchatcolor.png) - - - -::: info INFORMATION - -You can skip colors using `null` to leave them unchanged. For example, `/chatcolor see null null ` will only replace `` and ``, leaving the first two as they are - -If you have the `other` permission, you can change other players' colors by adding their nickname at the end of the command, for example `/chatcolor see null TheFaser`. You must specify all colors and only then the player's nickname, but you can skip colors as mentioned above - -::: - -[//]: # (localization) - - `localizations → language.yml → command.chatcolor` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#chatcolor -<<< @/files/localizations/en_us.yml#chatcolor -::: - -### `null_player` - -Message if the entered player is not found - -### `null_color` - -Message if the colors are entered incorrectly - -### `null_type` - -Message if the type is entered incorrectly - -### `format` - -Format of the message that will be sent - -[//]: # (command.yml) - - `command.yml → chatcolor` - - -<<< @/files/command.yml#chatcolor - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.chatcolor` - - -<<< @/files/permission.yml#chatcolor - - - - - - -### `colors` - -List of permissions for changing specific types of colors: `SEE` or `OUT` \ No newline at end of file diff --git a/pulse/en/docs/command/chatsetting/index.md b/pulse/en/docs/command/chatsetting/index.md deleted file mode 100644 index 51fb3095..00000000 --- a/pulse/en/docs/command/chatsetting/index.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/chatsetting` - -Command for configuring chat -![command chatsetting](/commandchatsetting.gif) - -::: info NOTE - -You can open another player's settings using `/chatsetting TheFaser`. - -If you want to create your own menu through another plugin, you can modify values using `/chatsetting TheFaser ADVANCEMENT`. This will toggle the display of advancements depending on the current state. You can check the state using the placeholder `%flectonepulse_advancement%`. - -Some settings can be assigned values, for example, `/chatsetting TheFaser STREAM_PREFIX kek` will set the player's streamer prefix to `kek`. - -| Setting | -|----------------------| -| `ADVANCEMENT` | -| `AFK` | -| `AFK_SUFFIX` | -| `AUTO` | -| `BALL` | -| `BAN` | -| `BROADCAST` | -| `CHAT` | -| `COIN` | -| `DEATH` | -| `DICE` | -| `DISCORD` | -| `DO` | -| `GREETING` | -| `JOIN` | -| `KICK` | -| `LOCALE` | -| `MAIL` | -| `ME` | -| `MUTE` | -| `POLL` | -| `QUIT` | -| `REPLY` | -| `ROCKPAPERSCISSORS` | -| `SPY` | -| `STREAM` | -| `STREAM_PREFIX` | -| `TELEGRAM` | -| `TELL` | -| `TICTACTOE` | -| `TRANSLATETO` | -| `TRY` | -| `TWITCH` | -| `WARN` | -| `WORLD_PREFIX` | -| `ANON` | - -::: - -[//]: # (localization) - - `localizations → language.yml → command.chatsetting` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#chatsetting -<<< @/files/localizations/en_us.yml#chatsetting -::: - -::: tip NOTE - -The item name and description are displayed in a single line, with line breaks added using `
` - -::: - -### `no_permission` - -Message if a specific permission is required to change the setting - -### `disable` - -::: details Disable messages -#### `you` - -Message if the sender disabled the command in `/chatsetting` - -#### `he` - -Message if the recipient disabled the command in `/chatsetting` - -#### `server` - -Message if the server disabled the command for `/chatsetting` - -::: - -### `inventory` - -Name for the main GUI - -### `checkbox` - -::: details Checkbox settings - -#### `enabled_color` - -Color when the setting is enabled. Replaces `` - -#### `enabled_hover` - -Message if the setting is enabled - -#### `disabled_color` - -Color when the setting is disabled. Replaces `` - -#### `disabled_hover` - -Message if the setting is disabled - -#### `types` - -List of setting types and their names - -::: - -### `menu` - -Each additional menu has: - -::: details Additional menu settings - -#### `item` - -Name and description of the item in the main menu - -#### `inventory` - -GUI name in the additional menu - -#### `types` - -List of items with their names and descriptions - -::: - -[//]: # (command.yml) - - `command.yml → chatsetting` - - -<<< @/files/command.yml#chatsetting - - - - -### `modern` - -::: warning WARNING - -Only works for versions `1.21.6` and newer. Older versions will use the inventory system. - -::: - -::: details New Menu Settings - -#### `enable` - -Enables the use of dialogs instead of inventories - -#### `button_width` - -Width of each button - -#### `columns` - -Number of buttons per row - -::: - -### `checkbox` - -::: details Checkbox settings - -#### `disabled_material` - -Material if the setting is disabled - -#### `enabled_material` - -Material if the setting is enabled - -#### `types` - -List of setting types and their inventory slots - -::: - -### `menu` - -Additional menus - -#### `material` - -Item that redirects to additional menus - -::: details Additional menu settings - -#### `slot` - -Slot position in the main inventory - -#### `types` - -List of setting types with their parameters - -| Type | Description | -|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `CHAT` | The `name` field is the display name, and `material` is the item type that will appear in the inventory for this chat | -| `SEE` and `OUT` | The `name` field is the display name, and `material` is the item type that will appear in the inventory for this chat. Also includes `colors`, where the key is a number and the value is a color. Use `""` to keep the color unchanged | - -::: - - - - -[//]: # (permission.yml) - - `permission.yml → command.chatsetting` - - -<<< @/files/permission.yml#chatsetting - - - -### `settings` - -List of settings and their permissions - - - \ No newline at end of file diff --git a/pulse/en/docs/command/clearchat/index.md b/pulse/en/docs/command/clearchat/index.md deleted file mode 100644 index 977bb409..00000000 --- a/pulse/en/docs/command/clearchat/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/clearchat` - -Command for clearing chat -![command clearchat](/commandclearchat.png) - -[//]: # (localization) - - `localizations → language.yml → command.clearchat` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#clearchat -<<< @/files/localizations/en_us.yml#clearchat -::: - -### `null_player` - -Message if the specified player is not found - -### `format` - -Message after clearing the chat - -[//]: # (command.yml) - - `command.yml → clearchat` - - -<<< @/files/command.yml#clearchat - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.clearchat` - - -<<< @/files/permission.yml#clearchat - - - - - diff --git a/pulse/en/docs/command/clearmail/index.md b/pulse/en/docs/command/clearmail/index.md deleted file mode 100644 index 827782db..00000000 --- a/pulse/en/docs/command/clearmail/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/clearmail` - -Command to delete sent [mails](/docs/command/mail/) -![command clearmail](/commandclearmail.png) - -[//]: # (localization) - - `localizations → language.yml → command.clearmail` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#clearmail -<<< @/files/localizations/en_us.yml#clearmail -::: - -### `null_mail` - -Message if the entered mail is not found - -### `format` - -Format of the message that will be sent - -[//]: # (command.yml) - - `command.yml → clearmail` - - -<<< @/files/command.yml#clearmail - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.clearmail` - - -<<< @/files/permission.yml#clearmail - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/coin/index.md b/pulse/en/docs/command/coin/index.md deleted file mode 100644 index 09a03bdd..00000000 --- a/pulse/en/docs/command/coin/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/coin` - -Command for flipping a coin -![command coin](/commandcoin.png) - -[//]: # (localization) - - `localizations → language.yml → command.coin` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#coin -<<< @/files/localizations/en_us.yml#coin -::: - -### `head` - -Name of one side of the coin - -### `tail` - -Name of the other side of the coin - -### `format` - -Format of the message to be sent - -### `format_draw` - -Message if the coin lands on its edge - -[//]: # (command.yml) - - `command.yml → coin` - - -<<< @/files/command.yml#coin - - - -### `draw` - -Enables the chance (`1%`) for the coin to land on its edge - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.coin` - - -<<< @/files/permission.yml#coin - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/deletemessage/index.md b/pulse/en/docs/command/deletemessage/index.md deleted file mode 100644 index 53a9145b..00000000 --- a/pulse/en/docs/command/deletemessage/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/deletemessage` - -Command to delete a chat message, automatically used when clicking the delete icon -![command deletemessage](/commanddeletemessage.png) - -::: warning WARNING - -This command will be useless if the main [`Delete`](/docs/message/format/moderation/delete/) module is disabled - -::: - -[//]: # (localization) - - `localizations → language.yml → command.deletemessage` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#deletemessage -<<< @/files/localizations/en_us.yml#deletemessage -::: - -### `null_message` - -Message displayed when attempting to delete a non-existent message - -### `format` - -Format of the message that will be sent - -[//]: # (command.yml) - - `command.yml → deletemessage` - - -<<< @/files/command.yml#deletemessage - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.deletemessage` - - -<<< @/files/permission.yml#deletemessage - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/dice/index.md b/pulse/en/docs/command/dice/index.md deleted file mode 100644 index 30758583..00000000 --- a/pulse/en/docs/command/dice/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/dice` - -Command for rolling dice for luck -![command dice](/commanddice.png) - -[//]: # (localization) - - `localizations → language.yml → command.dice` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#dice -<<< @/files/localizations/en_us.yml#dice -::: - -### `symbols` - -A list of indices (rolled number) and symbols (dice) - -### `format` - -Format of the message to be sent - -[//]: # (command.yml) - - `command.yml → dice` - - -<<< @/files/command.yml#dice - - - - -### `min` - -Minimum number of dice - -### `max` - -Maximum number of dice - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.dice` - - -<<< @/files/permission.yml#dice - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/do/index.md b/pulse/en/docs/command/do/index.md deleted file mode 100644 index 3c5b5bb6..00000000 --- a/pulse/en/docs/command/do/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/do` - -Command for RP action execution -![command do](/commanddo.png) - -[//]: # (localization) - - `localizations → language.yml → command.do` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#do -<<< @/files/localizations/en_us.yml#do -::: - -### `format` - -Format of the message to be sent - -[//]: # (command.yml) - - `command.yml → do` - - -<<< @/files/command.yml#do - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.do` - - -<<< @/files/permission.yml#do - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/emit/index.md b/pulse/en/docs/command/emit/index.md deleted file mode 100644 index 4f44e910..00000000 --- a/pulse/en/docs/command/emit/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/emit` - -Command to use any `destination` with text -![command emit](/commandemit.png) - -This command is only available to server admins by default and was created solely for them. -It is not recommended to give it to regular players. -You can use this command through the console, another plugin, or a datapack, which is convenient if you want to use tools from FlectonePulse (any placeholders and tags will also work). - -To display text to all players at once, you can use `all`, for example `/emit all CHAT hello world`. -Some `destination` types have arguments that can be changed using `{}`. -These arguments are named exactly the same as in the config files. - -Examples -- `/emit TheFaser ACTION_BAR{times={stay=40}} hello world` -- `/emit TheFaser BOSS_BAR{color=RED} hello world` -- `/emit TheFaser BRAND hello world` -- `/emit TheFaser CHAT hello world` -- `/emit TheFaser TITLE hello world` -- `/emit TheFaser SUBTITLE hello world` -- `/emit TheFaser TAB_FOOTER hello world` -- `/emit TheFaser TAB_HEADER hello world` -- `/emit TheFaser TEXT_SCREEN{offset_x=-0.3, offset_y=-0.2} hello world` -- `/emit TheFaser TOAST{icon="minecraft:iron_ingot", style=CHALLENGE} hello world` - -Arguments that are omitted will be default and you don't need to write them all out. If the `destination` is entered incorrectly, the message will be sent to the regular chat - - - -[//]: # (localization) - - `localizations → language.yml → command.emit` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#emit -<<< @/files/localizations/en_us.yml#emit -::: - -### `null_player` - -Message if the entered player is not found - -### `format` - -Format of the message that will be sent - -[//]: # (command.yml) - - `command.yml → emit` - - -<<< @/files/command.yml#emit - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.emit` - - -<<< @/files/permission.yml#emit - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/flectonepulse/index.md b/pulse/en/docs/command/flectonepulse/index.md deleted file mode 100644 index b7ed1f98..00000000 --- a/pulse/en/docs/command/flectonepulse/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/flectonepulse` - -Main command of the `FlectonePulse` plugin -![command flectonepulse](/commandflectonepulse.png) - -::: warning WARNING - -On older versions (1.9 and 1.10 for sure) it was noticed that players might get kicked from the server during a reload but this does not affect the plugin - -::: - -[//]: # (localization) - - `localizations → language.yml → command.flectonepulse` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#flectonepulse -<<< @/files/localizations/en_us.yml#flectonepulse -::: - -## `null_host_editor` -Message when the `host` field in config.yml is empty - -## `null_port_editor` -Message when the `port` specified in config.yml is already in use or unavailable - -### `format_false` - -Message displayed when an error occurs - -### `format_true` - -Message format sent when `FlectonePulse` is fully reloaded - -### `format_web_starting` - -Message format sent when the web server starts - -### `format_editor` - -Message format sent when the web server has successfully started - -[//]: # (command.yml) - - `command.yml → flectonepulse` - - -<<< @/files/command.yml#flectonepulse - - - -### `execute_in_main_thread` - -Whether the entire reload will be executed in the server's main thread - -::: info INFORMATION - -This can resolve issues on `Bukkit`, `Spigot`, `Mohist`, or other older/non-standard cores during reload - -::: - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.flectonepulse` - - -<<< @/files/permission.yml#flectonepulse - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/geolocate/index.md b/pulse/en/docs/command/geolocate/index.md deleted file mode 100644 index abed1dce..00000000 --- a/pulse/en/docs/command/geolocate/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/geolocate` - -Command for tracking IP addresses and obtaining player information -![command geolocate](/commandgeolocate.png) - -[//]: # (localization) - - `localizations → language.yml → command.geolocate` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#geolocate -<<< @/files/localizations/en_us.yml#geolocate -::: - -### `null_player` - -Message displayed if the entered player is not found - -### `null_or_error` - -Message displayed if an error occurs when retrieving information - -### `format` - -Message format that will be sent - -[//]: # (command.yml) - - `command.yml → geolocate` - - -<<< @/files/command.yml#geolocate - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.geolocate` - - -<<< @/files/permission.yml#geolocate - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/helper/index.md b/pulse/en/docs/command/helper/index.md deleted file mode 100644 index 544b9308..00000000 --- a/pulse/en/docs/command/helper/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/helper` - -Command to request assistance -![command helper](/commandhelper.png) - -From the assistant's perspective -![command helper player](/commandhelperadmin.png) - -[//]: # (localization) - - `localizations → language.yml → command.helper` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#helper -<<< @/files/localizations/en_us.yml#helper -::: - -### `null_helper` - -Message displayed if no one on the server is available to help - -### `global` - -Message for those who are supposed to help - -### `player` - -Message for the player - -[//]: # (command.yml) - - `command.yml → helper` - - -<<< @/files/command.yml#helper - - - -### `null_helper` - -Will it be checked that there are no people on server who can respond to request - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.helper` - - -<<< @/files/permission.yml#helper - - - -### `see` - -Permission to view help requests - - - \ No newline at end of file diff --git a/pulse/en/docs/command/ignore/index.md b/pulse/en/docs/command/ignore/index.md deleted file mode 100644 index 54b75150..00000000 --- a/pulse/en/docs/command/ignore/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/ignore` - -Command to ignore all messages from a player -![command ignore](/commandignore.png) - -The ignore can be removed by using the command again -![command unignore](/commandunignore.png) - -[//]: # (localization) - - `localizations → language.yml → command.ignore` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ignore -<<< @/files/localizations/en_us.yml#ignore -::: - -### `null_player` - -Message displayed if the entered player is not found - -### `myself` - -Message displayed if the player tries to ignore themselves - -### `he` - -Message displayed if the recipient is ignoring the sender - -### `you` - -Message displayed if the sender is ignoring the recipient - -### `format_true` - -Message displayed when the player successfully ignores another player - -### `format_false` - -Message displayed when the player removes the ignore - -[//]: # (command.yml) - - `command.yml → ignore` - - -<<< @/files/command.yml#ignore - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ignore` - - -<<< @/files/permission.yml#ignore - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/ignorelist/index.md b/pulse/en/docs/command/ignorelist/index.md deleted file mode 100644 index 8f4e3b62..00000000 --- a/pulse/en/docs/command/ignorelist/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/ignorelist` - -Command to view the list of players you have ignored -![command ignorelist](/commandignorelist.png) - -[//]: # (localization) - - `localizations → language.yml → command.ignorelist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ignorelist -<<< @/files/localizations/en_us.yml#ignorelist -::: - -### `empty` - -Message displayed if the ignore list is empty - -### `null_page` - -Message displayed if the entered page does not exist - -### `header` - -The top part of the ignore list message - -### `line` - -Format for each ignored player in the list - -### `footer` - -The bottom part of the ignore list message - -[//]: # (command.yml) - - `command.yml → ignorelist` - - -<<< @/files/command.yml#ignorelist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ignorelist` - - -<<< @/files/permission.yml#ignorelist - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/index.md b/pulse/en/docs/command/index.md deleted file mode 100644 index a9c3053f..00000000 --- a/pulse/en/docs/command/index.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Commands - -Category responsible for configuring all commands - -[//]: # (localization) - - `localizations → locale.yml → command` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#command -<<< @/files/localizations/en_us.yml#command -::: - -### `exception` - -::: details Messages for incorrect command usage - -#### `execution` - -Message if an error occurs during command execution - -#### `parse_unknown` - -Message if an unknown argument is entered - -#### `parse_boolean` - -Message if a `boolean` argument is expected - -#### `parse_number` - -Message if a `number` argument is expected - -#### `parse_string` - -Message if a `string` argument is expected - -#### `permission` - -Message if the player doesn't have permission for this command - -#### `syntax` - -Message if an incomplete command is entered -![command syntax](/commandsyntax.png) - -::: - -### `prompt` - -::: details Prompt formatting - -#### `message` - -Prompt for commands where a message is entered - -#### `hard` - -Prompt for commands where difficulty is asked - -#### `accept` - -Prompt for commands where something is accepted or rejected - -#### `turn` - -Prompt for commands where something is toggled on or off - -#### `type` - -Prompt for commands where a type is entered - -#### `reason` - -Prompt for commands where a reason is entered - -#### `category` - -Prompt for commands where a category is selected - -#### `id` - -Prompt for commands where an ID is entered - -#### `time` - -Prompt for commands where time is entered - -#### `repeat_time` - -Prompt for commands where repeat time is entered - -#### `multiple_vote` - -Prompt for commands where multiple voting is asked - -#### `player` - -Prompt for commands where a player is entered - -#### `number` - -Prompt for commands where a number is entered - -#### `color` - -Prompt for commands where a color is entered - -#### `language` - -Prompt for commands where a language is entered - -#### `url` - -Prompt for commands where a URL is entered - -#### `move` - -Prompt for commands where a move is selected - -#### `value` - -Prompt for commands where a VALUE is entered - -::: - -[//]: # (command.yml) - - `command.yml` - - -<<< @/files/command.yml#command - - - -### `suggest_invisible_players` - -If enabled, all players will see all other players. But if disabled, a player needs a specific permission to see other players under the invisibility potion effect in commands - -[//]: # (permission.yml) - - `permission.yml → command` - - -<<< @/files/permission.yml#command - - - -### `see_invisible_players_in_suggest` - -Permission to see players under the invisibility potion effect in command suggestions \ No newline at end of file diff --git a/pulse/en/docs/command/kick/index.md b/pulse/en/docs/command/kick/index.md deleted file mode 100644 index c2408a38..00000000 --- a/pulse/en/docs/command/kick/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/kick` - -Command to kick a player from the server -![command kick](/commandkick.png) - -[//]: # (localization) - - `localizations → language.yml → command.kick` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#kick -<<< @/files/localizations/en_us.yml#kick -::: - -### `null_player` - -Message displayed if the entered player is not found - -### `reasons` - -A list with keys and values, where the key is the word and the value is the specific reason - -::: info You can add your own reasons, for example: -```yaml -random_kek: "Random reason" -``` -Then, if you type `/kick player random_kek`, the reason will be "Random reason" - -If no reason is specified, the `default` will be used. - -::: - -### `server` - -Message displayed to everyone - -### `person` - -Message displayed to the player - -[//]: # (command.yml) - - `command.yml → kick` - - -<<< @/files/command.yml#kick - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.kick` - - -<<< @/files/permission.yml#kick - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/mail/index.md b/pulse/en/docs/command/mail/index.md deleted file mode 100644 index c2eb734f..00000000 --- a/pulse/en/docs/command/mail/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/mail` - -Command to send a message to an offline player -![command mail](/commandmail.png) - -When the player logs in, they will see the message -![command mail player](/commandmailplayer.png) - -If the player is already on the server and the [Tell](/docs/command/tell/) module is enabled, it will be used -![command tell](/commandtell.png) - -[//]: # (localization) - - `localizations → language.yml → command.mail` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mail -<<< @/files/localizations/en_us.yml#mail -::: - -### `null_player` - -Message displayed if the entered player is not found - -### `sender` - -Message displayed to the sender - -### `receiver` - -Message displayed to the receiver - -[//]: # (command.yml) - - `command.yml → mail` - - -<<< @/files/command.yml#mail - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.mail` - - -<<< @/files/permission.yml#mail - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/maintenance/index.md b/pulse/en/docs/command/maintenance/index.md deleted file mode 100644 index 10305242..00000000 --- a/pulse/en/docs/command/maintenance/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/maintenance` - -Command to enable maintenance mode -![command maintenance](/commandmaintenance.png) -![command maintenance server](/commandmaintenanceserver.png) - -[//]: # (localization) - - `localizations → language.yml → command.maintenance` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#maintenance -<<< @/files/localizations/en_us.yml#maintenance -::: - -### `server_description` - -Message when viewing the server while maintenance is enabled - -### `server_version` - -Server version name when maintenance is enabled - -### `kick` - -Reason for kicking players when maintenance mode is enabled - -### `format_true` - -Message when enabling maintenance mode - -### `format_false` - -Message when disabling maintenance mode - -[//]: # (command.yml) - - `command.yml → maintenance` - - -<<< @/files/command.yml#maintenance - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.maintenance` - - -<<< @/files/permission.yml#maintenance - - - -### `join` - -Permission to join the server during maintenance - - - \ No newline at end of file diff --git a/pulse/en/docs/command/me/index.md b/pulse/en/docs/command/me/index.md deleted file mode 100644 index df6bf473..00000000 --- a/pulse/en/docs/command/me/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/me` - -Command to display an action -![command me](/commandme.png) - -[//]: # (localization) - - `localizations → locale.yml → command.me` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#me -<<< @/files/localizations/en_us.yml#me -::: - -### `format` - -The format of the message that will be sent - -[//]: # (command.yml) - - `command.yml → me` - - -<<< @/files/command.yml#me - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.me` - - -<<< @/files/permission.yml#me - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/mute/index.md b/pulse/en/docs/command/mute/index.md deleted file mode 100644 index 4d674325..00000000 --- a/pulse/en/docs/command/mute/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/mute` - -Command to mute a player -![command mute](/commandmute.png) - -[//]: # (localization) - - `localizations → locale.yml → command.mute` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mute -<<< @/files/localizations/en_us.yml#mute -::: - -### `null_player` - -Message when the specified player is not found - -### `null_time` - -Message when the time provided is invalid - -### `lower_weight_group` - -Message if the command is executed by a player with a group weight lower than the player being moderated - -### `suffix` - -Format of the suffix that will be displayed if the player has an active mute, otherwise it will be empty - -### `reasons` - -A list with keys and values, where the key is the word and the value is the specific reason - -::: info YOU CAN ADD YOUR OWN REASONS -```yaml -random_kek: "Random reason" -``` -Then, if you type `/mute player 1d random_kek`, the reason will be `Random reason`. - -If no reason is specified, `default` will be used. -::: - -### `server` - -Message to everyone - -### `person` - -Message to the muted player - -[//]: # (command.yml) - - `command.yml → mute` - - -<<< @/files/command.yml#mute - - - - -### `check_group_weight` - -Whether to check players' group weights If the player being moderated has a higher role than the command sender, the command will not execute and the `lower_weight_group` error will be shown - - - -### `time_limits` - -Time limits based on the sender's group The key is the group weight, and the value is the maximum moderation time in milliseconds (`1` second = `1000` milliseconds) - -::: info EXAMPLE - -```yaml - time_limits: - 20: 35000 - 50: 100000 -``` - -- If a player has a group weight of `10`, the command will NOT be executed -- If a player has a group weight of `20`, the maximum time will be `35000` -- If a player has a group weight of `40`, the maximum time will also be `35000` -- If a player has a group weight of `50` or higher, it will be `100000` - -For unlimited time, use the value `-1` - -::: - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.mute` - - -<<< @/files/permission.yml#mute - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/mutelist/index.md b/pulse/en/docs/command/mutelist/index.md deleted file mode 100644 index be3f8a67..00000000 --- a/pulse/en/docs/command/mutelist/index.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/mutelist` - -Command to view the list of muted players -![command mutelist](/commandmutelist.png) - -[//]: # (localization) - - `localizations → locale.yml → command.mutelist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mutelist -<<< @/files/localizations/en_us.yml#mutelist -::: - -### `empty` - -Message when the list of muted players is empty - -### `null_page` - -Message when the specified page does not exist - -### `null_player` - -Message when the specified player is not found - -### `global` - -::: details Messages for global mutes - -#### `header` - -Header part of the mute list message - -#### `line` - -Format for each mute in the list - -#### `footer` - -Footer part of the mute list message -::: - -### `player` - -::: details Messages for player-specific mutes - -#### `header` - -Header part of the mute list message - -#### `line` - -Format for each mute in the list - -#### `footer` - -Footer part of the mute list message -::: - -[//]: # (command.yml) - - `command.yml → mutelist` - - -<<< @/files/command.yml#mutelist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.mutelist` - - -<<< @/files/permission.yml#mutelist - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/online/index.md b/pulse/en/docs/command/online/index.md deleted file mode 100644 index 23045b15..00000000 --- a/pulse/en/docs/command/online/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/online` - -Command to check player online status -![command online](/commandonline.png) - -[//]: # (localization) - - `localizations → locale.yml → command.online` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#online -<<< @/files/localizations/en_us.yml#online -::: - -### `null_player` - -Message when the specified player is not found - -### `format_current` - -Message when the specified player is currently online - -### `format_first` - -Format of the message for `/online first` command - -### `format_last` - -Format of the message for `/online last` command - -### `format_total` - -Format of the message for `/online total` command - -[//]: # (command.yml) - - `command.yml → online` - - -<<< @/files/command.yml#online - - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.online` - - -<<< @/files/permission.yml#online - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/ping/index.md b/pulse/en/docs/command/ping/index.md deleted file mode 100644 index 7ea482e8..00000000 --- a/pulse/en/docs/command/ping/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/ping` - -Command to check player latency -![command ping](/commandping.png) - -[//]: # (localization) - - `localizations → locale.yml → command.ping` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ping -<<< @/files/localizations/en_us.yml#ping -::: - -### `null_player` - -Message when the specified player is not found - -### `format` - -Format of the message to be sent - -[//]: # (command.yml) - - `command.yml → ping` - - -<<< @/files/command.yml#ping - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ping` - - -<<< @/files/permission.yml#ping - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/poll/index.md b/pulse/en/docs/command/poll/index.md deleted file mode 100644 index 06461f6b..00000000 --- a/pulse/en/docs/command/poll/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/poll` - -Command for creating polls -![command pollgui](/commandpollgui.gif) - -This can also be done via a command in chat -![command poll](/commandpoll.png) - -::: info INFORMATION - -The interval is specified to resend message about an existing poll to chat - -::: - -[//]: # (localization) - - `localizations → locale.yml → command.poll` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#poll -<<< @/files/localizations/en_us.yml#poll -::: - -### `null_poll` - -Message when the poll is not found - -### `expired` - -Message when the player attempts to vote in an expired poll - -### `already` - -Message when the player attempts to vote again in the same poll - -### `vote_true` - -Message when the player has voted for a particular option - -### `vote_false` - -Message when the player removes their vote - -### `format` -The format of the message that will be sent - -### `answer_template` -Template for each answer - -### `status` - -::: details Headers for each voting status - -#### `start` -Header when the voting starts - -#### `run` -Header when the voting is reposted - -#### `end` -Header when the voting ends -::: - -### `modern` - -::: details Dialog system for creating a poll - -#### `header` - -Dialog name - -#### `input_name` - -Name for "name" field - -#### `input_initial` - -Default text for "name" field - -#### `multiple_name` - -Name for "allow multiple answers" toggle field - -#### `end_time_name` - -Name for duration field - -#### `repeat_time_name` - -Name for interval field - -#### `new_answer-button-name` - -Name for button that creates a new answer - -#### `remove_answer-button-name` - -Name for button that removes the last answer - -#### `input_answer_name` - -Name for new answer field - -#### `input_answers_initial` - -Default text for answer field - -#### `create_button_name` - -Name for button that creates poll - -::: - -[//]: # (command.yml) - - `command.yml → poll` - - -<<< @/files/command.yml#poll - - - -### `enable_gui` - -::: warning WARNING - -Only works for versions `1.21.6` and newer. Command will not be registered in older versions - -::: - -Adds a new command `/pollgui` (depends on command name itself, i.e., `/name` + `gui`) - - - -### `last_id` - -Last poll ID created - - - - - -[//]: # (permission.yml) - - `permission.yml → command.poll` - - -<<< @/files/permission.yml#poll - - - -### `create` - -Permission for creating polls - - - \ No newline at end of file diff --git a/pulse/en/docs/command/reply/index.md b/pulse/en/docs/command/reply/index.md deleted file mode 100644 index f03b33f4..00000000 --- a/pulse/en/docs/command/reply/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/reply` - -Command to send a private message to the last player who sent a message -![command reply](/commandreply.png) - -::: danger BE CAREFUL -This command will not work if the [`Tell`](/docs/command/tell/) module is disabled -::: - -[//]: # (localization) - - `localizations → locale.yml → command.reply` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#reply -<<< @/files/localizations/en_us.yml#reply -::: - -### `null_receiver` - -Message when the recipient is not found - -[//]: # (command.yml) - - `command.yml → reply` - - -<<< @/files/command.yml#reply - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.reply` - - -<<< @/files/permission.yml#reply - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/rockpaperscissors/index.md b/pulse/en/docs/command/rockpaperscissors/index.md deleted file mode 100644 index 0795045b..00000000 --- a/pulse/en/docs/command/rockpaperscissors/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/rockpaperscissors` - -Command to offer to play rock-paper-scissors -![command rockpaperscissors](/commandrockpaperscissors.png) - -[//]: # (localization) - - `localizations → locale.yml → command.rockpaperscissors` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#rockpaperscissors -<<< @/files/localizations/en_us.yml#rockpaperscissors -::: - -### `null_player` - -Message when the entered player is not found - -### `null_game` - -Message when the game does not exist - -### `wrong_move` - -Message when the move is impossible - -### `already` - -Message when the player has already made a move - -### `myself` - -Message when the player decides to play with themselves - -### `sender` - -Message for the sender - -### `receiver` - -Message for the receiver - -### `format_move` - -Message during a move - -### `format_win` - -Message when the player wins - -### `forma_draw` - -Message for a draw - -### `strategies` - -List of strategies and their names - -[//]: # (command.yml) - - `command.yml → rockpaperscissors` - - -<<< @/files/command.yml#rockpaperscissors - - - - -### `strategy` - -Strategies where `key` is the winning item and `value` is the defeated item - -::: info For example, if you want `scissors` to defeat `paper`, you should write: -```yaml -scissors: - - "paper" -``` - -Multiple values can be added, like: -```yaml -scissors: - - "paper" - - "newitem" -``` - -You can define your own keys and values: -```yaml -customvalue: - - "customobject" -``` -::: - - - - -[//]: # (permission.yml) - - `permission.yml → command.rockpaperscissors` - - -<<< @/files/permission.yml#rockpaperscissors - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/sprite/index.md b/pulse/en/docs/command/sprite/index.md deleted file mode 100644 index 8d60df85..00000000 --- a/pulse/en/docs/command/sprite/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/sprite` - -Command for searching sprites from Minecraft atlases -![sprite](/commandsprite.png) - -[//]: # (localization) - - `localizations → language.yml → command.sprite` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#sprite -<<< @/files/localizations/en_us.yml#sprite -::: - -### `null_atlas` - -Message if the entered atlas does not exist - -### `null_page` - -Message if the entered page does not exist - -### `download_error` - -Message when downloading an atlas file from the internet fails. Atlases may differ or not exist across different versions, so this error should be considered normal - -### `atlas_downloading` - -Message when starting to download an atlas file from the internet - -### `header` - -The top part of the list message - -### `line_element` - -Format for each component, they will be added one after another - -#### `footer` - -The bottom part of the list message - -[//]: # (command.yml) - - `command.yml → sprite` - - -<<< @/files/command.yml#sprite - - - - - -### `categories` - -List of categories, i.e., available atlases - -::: info INFO -- Each atlas is downloaded only once if it does not exist in the folder `FlectonePulse/minecraft//atlases/` -- Each atlas has the final format `minecraft_textures_atlas_.png.txt` -- Each atlas is downloaded from Flectone's own web server via the link `https://flectone.net/files/r/minecraft//atlases/minecraft_textures_atlas_.png.txt` -- Atlases do not necessarily need to be downloaded from the web server; you can place them manually in advance in the folder `FlectonePulse/minecraft//atlases/` by obtaining them using the `F3 + S` combination in Minecraft -::: - - - - -[//]: # (permission.yml) - - `permission.yml → command.sprite` - - -<<< @/files/permission.yml#sprite - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/spy/index.md b/pulse/en/docs/command/spy/index.md deleted file mode 100644 index 7de1c916..00000000 --- a/pulse/en/docs/command/spy/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/spy` - -Command to track player actions -![command spy](/commandspy.gif) - -[//]: # (localization) - - `localizations → locale.yml → command.spy` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#spy -<<< @/files/localizations/en_us.yml#spy -::: - -### `format_true` - -Message when spying is enabled - -### `format_false` - -Message when spying is disabled - -### `format_log` - -Message format that will be sent during the tracking of an action - -[//]: # (command.yml) - - `command.yml → spy` - - -<<< @/files/command.yml#spy - - - - - - -### `categories` - -List of categories with actions that will be tracked - - - - -[//]: # (permission.yml) - - `permission.yml → command.spy` - - -<<< @/files/permission.yml#spy - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/stream/index.md b/pulse/en/docs/command/stream/index.md deleted file mode 100644 index 5b8f22b4..00000000 --- a/pulse/en/docs/command/stream/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/stream` - -Command to notify about the start of a stream -![command stream](/commandstream.png) - -If the player has permission for the command, they will receive a prefix when enabling/disabling the stream -![command stream prefix](/commandstreamprefix.png) - -[//]: # (localization) - - `localizations → locale.yml → command.stream` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#stream -<<< @/files/localizations/en_us.yml#stream -::: - -### `already` - -Message if a player who is already streaming tries to start another stream - -### `not` - -Message if a player who is not streaming tries to end the stream - -### `prefix_true` - -Prefix for a player who is currently streaming - -### `prefix_false` - -Prefix for a player who has permission to stream but is not streaming at the moment - -### `url_tag` - -Format for each link in the notification - -### `format_start` - -Notification when a stream starts - -### `format_end` - -Message when a player ends their stream - -[//]: # (command.yml) - - `command.yml → stream` - - -<<< @/files/command.yml#stream - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.stream` - - -<<< @/files/permission.yml#stream - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/symbol/index.md b/pulse/en/docs/command/symbol/index.md deleted file mode 100644 index efccbd48..00000000 --- a/pulse/en/docs/command/symbol/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/symbol` - -Command for searching Unicode emoji -![symbol](/commandsymbol.png) - -Huge thanks to @replaceitem for allowing the use of [symbol lists](https://github.com/replaceitem/symbol-chat) - -[//]: # (localization) - - `localizations → locale.yml → command.symbol` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#symbol -<<< @/files/localizations/en_us.yml#symbol -::: - -### `null_category` - -Message if the entered category does not exist - -### `null_page` - -Message if the entered page does not exist - -### `header` - -The top part of the list message - -### `line_element` - -Format for each component, they will be added one after another - -#### `footer` - -The bottom part of the list message - -[//]: # (command.yml) - - `command.yml → symbol` - - -<<< @/files/command.yml#symbol - - - - - -### `categories` - -List of categories and symbols separated by spaces - -::: info WHAT CAN YOU DO WITH THIS? -1. Add your own symbols to the current ones, separated by spaces -2. Rename categories or add your own -::: - - - - -[//]: # (permission.yml) - - `permission.yml → command.symbol` - - -<<< @/files/permission.yml#symbol - - - - diff --git a/pulse/en/docs/command/tell/index.md b/pulse/en/docs/command/tell/index.md deleted file mode 100644 index fc203324..00000000 --- a/pulse/en/docs/command/tell/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/tell` - -Command for sending a private message to a player -![command tell](/commandtell.png) - -Can be used for notes if you type your own username -![command tell myself](/commandtellmyself.png) - -[//]: # (localization) - - `localizations → locale.yml → command.tell` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#tell -<<< @/files/localizations/en_us.yml#tell -::: - -### `null_player` - -Message if the entered player is not found - -### `sender` - -Message for the sender - -### `receiver` - -Message for the recipient - -### `myself` - -Message for the sender if they are also the recipient (i.e., for themselves) - -[//]: # (command.yml) - - `command.yml → tell` - - -<<< @/files/command.yml#tell - - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.tell` - - -<<< @/files/permission.yml#tell - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/tictactoe/index.md b/pulse/en/docs/command/tictactoe/index.md deleted file mode 100644 index 9a4f1c36..00000000 --- a/pulse/en/docs/command/tictactoe/index.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/tictactoe` - -Command to challenge someone to play Tic-Tac-Toe -![command tictactoe](/commandtictactoe.png) - -By default, the request is for [Chinese Tic-Tac-Toe](#правила-китайских-крестиков-ноликов), but to play regular Tic-Tac-Toe, use `/tictactoe nickname false` -![command tictactoe default](/commandtictactoedefault.png) - -### Rules of Chinese Tic-Tac-Toe - -1. Each player can place only `3` of their marks. -2. If the game is not finished, the first mark placed by the player is removed and replaced with a new one. -3. This continues in a cycle until the game ends. - -This makes the game more challenging and strategic! - -[//]: # (localization) - - `localizations → locale.yml → command.tictactoe` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#tictactoe -<<< @/files/localizations/en_us.yml#tictactoe -::: - -### `null_player` - -Message if the entered player is not found - -### `myself` - -Message if the entered player tries to play with themselves - -### `wrong_game` - -Message if the specified game does not exist - -### `wrong_move` - -Message if the move is not possible - -### `wrong_by_player` - -Message if one of the players has left the game - -### `symbol` -::: details Messages for symbols -#### `empty` -Format message for an empty cell - -#### `first` -Format message for the first player's cell - -#### `first_remove` -Format message for removing the first player's cell - -#### `first_win` -Format message for the winning cell of the first player - -#### `second` -Format message for the second player's cell - -#### `second_remove` -Format message for removing the second player's cell - -#### `second_win` -Format message for the winning cell of the second player -::: - -### `field` - -Format message for the game field - -### `current_move` - -Format message for the current move information - -### `last_move` - -Format message for the last move information - -### `format_move` - -Format message for announcing the move - -### `format_win` - -Message upon winning - -### `format_draw` - -Message for a draw - -### `sender` - -Message for the sender when sending a request - -### `format_create` - -Message for the recipient when receiving a request - -[//]: # (command.yml) - - `command.yml → tictactoe` - - -<<< @/files/command.yml#tictactoe - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.tictactoe` - - -<<< @/files/permission.yml#tictactoe - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/toponline/index.md b/pulse/en/docs/command/toponline/index.md deleted file mode 100644 index f42a8113..00000000 --- a/pulse/en/docs/command/toponline/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/toponline` - -Command to view the top players by playing time -![command toponline](/commandtoponline.png) - -[//]: # (localization) - - `localizations → locale.yml → command.toponline` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#toponline -<<< @/files/localizations/en_us.yml#toponline -::: - -### `null_page` - -Message when the specified page does not exist - -#### `header` - -Header part of the mute list message - -#### `line` - -Format for each mute in the list - -#### `footer` - -Footer part of the mute list message - -[//]: # (command.yml) - - `command.yml → toponline` - - -<<< @/files/command.yml#toponline - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.toponline` - - -<<< @/files/permission.yml#toponline - - - - - diff --git a/pulse/en/docs/command/translateto/index.md b/pulse/en/docs/command/translateto/index.md deleted file mode 100644 index c32f93cc..00000000 --- a/pulse/en/docs/command/translateto/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/translateto` - -Command to translate a message from one language to another -![command translateto](/commandtranslateto.png) - -[//]: # (localization) - - `localizations → locale.yml → command.translateto` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#translateto -<<< @/files/localizations/en_us.yml#translateto -::: - -### `null_or_error` - -Message if there was an error during translation - -### `format` - -Format for the message to be sent after translation - -[//]: # (command.yml) - - `command.yml → translateto` - - -<<< @/files/command.yml#translateto - - - - -### `service` - -Translation API to be used (`DEEPL`, `GOOGLE`, `YANDEX`) - -::: danger Attention -`DEEPL` and `YANDEX` require **tokens** and additional setup in `integration.yml` -::: - - - -### `languages` - -List of supported languages used for suggestions during the command - - - - - -[//]: # (permission.yml) - - `permission.yml → command.translateto` - - -<<< @/files/permission.yml#translateto - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/try/index.md b/pulse/en/docs/command/try/index.md deleted file mode 100644 index 255c7e95..00000000 --- a/pulse/en/docs/command/try/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/try` - -Command to attempt an action with a random chance of success -![command try](/commandtry.png) - -[//]: # (localization) - - `localizations → locale.yml → command.try` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#try -<<< @/files/localizations/en_us.yml#try -::: - -### `format_true` - -Format for the message that will be sent if the action succeeds - -### `format_false` - -Format for the message that will be sent if the action fails - -[//]: # (command.yml) - - `command.yml → try` - - -<<< @/files/command.yml#try - - - - -### `min` - -Minimum chance for the action to succeed - -### `max` - -Maximum chance for the action to succeed - -### `good` - -Chance threshold above which the action is considered successful - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.try` - - -<<< @/files/permission.yml#try - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/unban/index.md b/pulse/en/docs/command/unban/index.md deleted file mode 100644 index ab4f6b51..00000000 --- a/pulse/en/docs/command/unban/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/unban` - -Command to unban a player -![command unban](/commandunban.png) - -[//]: # (localization) - - `localizations → locale.yml → command.unban` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#unban -<<< @/files/localizations/en_us.yml#unban -::: - -### `null_player` - -Message when the player cannot be found - -### `not_banned` - -Message when the player is not banned - -### `lower_weight_group` - -Message if the command is executed by a player with a group weight lower than the player being moderated - -### `format` - -Message when the player is unbanned - -[//]: # (command.yml) - - `command.yml → unban` - - -<<< @/files/command.yml#unban - - - -### `check_group_weight` - -Whether to check players' group weights. If the player being moderated has a higher role than the command sender, the command will not execute and the `lower_weight_group` error will be shown - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.unban` - - -<<< @/files/permission.yml#unban - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/unmute/index.md b/pulse/en/docs/command/unmute/index.md deleted file mode 100644 index dad44323..00000000 --- a/pulse/en/docs/command/unmute/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/unmute` - -Command to unmute a player -![command unmute](/commandunmute.png) - -[//]: # (localization) - - `localizations → locale.yml → command.unmute` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#unmute -<<< @/files/localizations/en_us.yml#unmute -::: - -### `null_player` - -Message when the player cannot be found - -### `not_muted` - -Message when the player is not muted - -### `lower_weight_group` - -Message if the command is executed by a player with a group weight lower than the player being moderated - -### `format` - -Message when the player is unmuted - -[//]: # (command.yml) - - `command.yml → unmute` - - -<<< @/files/command.yml#unmute - - - -### `check_group_weight` - -Whether to check players' group weights. If the player being moderated has a higher role than the command sender, the command will not execute and the `lower_weight_group` error will be shown - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.unmute` - - -<<< @/files/permission.yml#unmute - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/unwarn/index.md b/pulse/en/docs/command/unwarn/index.md deleted file mode 100644 index d9fb93d2..00000000 --- a/pulse/en/docs/command/unwarn/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/unwarn` - -Command to remove a warning from a player -![command unwarn](/commandunwarn.png) - -[//]: # (localization) - - `localizations → locale.yml → command.unwarn` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#unwarn -<<< @/files/localizations/en_us.yml#unwarn -::: - -### `null_player` - -Message when the player cannot be found - -### `not_warned` - -Message when the player does not have a warning - -### `lower_weight_group` - -Message if the command is executed by a player with a group weight lower than the player being moderated - -### `format` - -Message when the warning is removed - -[//]: # (command.yml) - - `command.yml → unwarn` - - -<<< @/files/command.yml#unwarn - - - -### `check_group_weight` - -Whether to check players' group weights. If the player being moderated has a higher role than the command sender, the command will not execute and the `lower_weight_group` error will be shown - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.unwarn` - - -<<< @/files/permission.yml#unwarn - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/warn/index.md b/pulse/en/docs/command/warn/index.md deleted file mode 100644 index 311a5b36..00000000 --- a/pulse/en/docs/command/warn/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/warn` - -Command to give a warning to a player -![command warn](/commandwarn.png) - -[//]: # (localization) - - `localizations → locale.yml → command.warn` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#warn -<<< @/files/localizations/en_us.yml#warn -::: - -### `null_player` - -Message when the player cannot be found - -### `null_time` - -Message when an invalid time is entered - -### `lower_weight_group` - -Message if the command is executed by a player with a group weight lower than the player being moderated - -### `reasons` - -A list with keys and values, where the key is a word and the value is a specific reason - -::: info You can write your own reasons, for example: -```yaml -random_kek: "Random reason" -``` -So if you write `/warn player 1d random_kek`, the reason will be `Random reason`. - -If no reason is specified, the `default` reason will be used. -::: - -### `server` - -Message for everyone - -### `person` - -Message for the player - -[//]: # (command.yml) - - `command.yml → warn` - - -<<< @/files/command.yml#warn - - - - -### `check_group_weight` - -Whether to check players' group weights. If the player being moderated has a higher role than the command sender, the command will not execute and the `lower_weight_group` error will be shown - - - -### `time_limits` - -Time limits based on the sender's group. The key is the group weight, and the value is the maximum moderation time in milliseconds (`1` second = `1000` milliseconds) - -::: info EXAMPLE - -```yaml - time_limits: - 20: 35000 - 50: 100000 -``` - -- If a player has a group weight of `10`, the command will NOT be executed -- If a player has a group weight of `20`, the maximum time will be `35000` -- If a player has a group weight of `40`, the maximum time will also be `35000` -- If a player has a group weight of `50` or higher, it will be `100000` - -For unlimited time, use the value `-1` - -::: - - - -### `actions` - -A list where the key is the `number` of warnings, and the value is the `action` to be performed - -::: info For example, if you want to ban the player at `10` warnings: -You should write `10: ban ohh`. This action will be performed if the player has `10` active warnings. -::: - - - - - -[//]: # (permission.yml) - - `permission.yml → command.warn` - - -<<< @/files/permission.yml#warn - - - - \ No newline at end of file diff --git a/pulse/en/docs/command/warnlist/index.md b/pulse/en/docs/command/warnlist/index.md deleted file mode 100644 index fb7de4dc..00000000 --- a/pulse/en/docs/command/warnlist/index.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# `/warnlist` - -Command to view the list of warnings -![command warnlist](/commandwarnlist.png) - -[//]: # (localization) - - `localizations → locale.yml → command.warnlist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#warnlist -<<< @/files/localizations/en_us.yml#warnlist -::: - -### `empty` - -Message when the list of player warnings is empty - -### `null_page` - -Message when the entered page does not exist - -### `null_player` - -Message when the entered player cannot be found - -### `global` - -::: details Global warning messages - -#### `header` - -Header part of the warning list message - -#### `line` - -Format for each warning in the list - -#### `footer` - -Footer part of the warning list message -::: - -### `player` - -::: details Player-specific warning messages - -#### `header` - -Header part of the warning list message for the player - -#### `line` - -Format for each warning in the player's list - -#### `footer` - -Footer part of the warning list message for the player -::: - -[//]: # (command.yml) - - `command.yml → warnlist` - - -<<< @/files/command.yml#warnlist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.warnlist` - - -<<< @/files/permission.yml#warnlist - - - - \ No newline at end of file diff --git a/pulse/en/docs/config/cache/index.md b/pulse/en/docs/config/cache/index.md deleted file mode 100644 index a32ac834..00000000 --- a/pulse/en/docs/config/cache/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -order: 30 -authors: -- TheFaser ---- - -# Cache - -Configuring cache size and lifetime - -::: warning WARNING - -You MUST NOT delete any of the caches, even if you think it won't be used, a cache must be created as an object - -::: - -[//]: # (config.yml) - - `config.yml → cache` - - -<<< @/files/config.yml#cache - -### `types` - -List of all caches used in `FlectonePulse` - -| Type | Description | -|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `COOLDOWN` | For storing cooldowns applied to players when using a module. For example, chat message cooldowns or the `/me` command cooldown. This is for storage only, not for enabling cooldowns—each cooldown is enabled separately within its respective module | -| `DIALOG_CLICK` | For tracking the number of clicks in custom dialogs, such as in `/chatsetting`. This allows closing the dialog for people who click in them too often, i.e., spamming | -| `OFFLINE_PLAYERS` | For storing offline players who have left the server but might return. Also stores names that could be players, for example `/tell Notch`. Obviously, `Notch` is not on the server, but to search for such a player `FlectonePulse` uses a series of operations and finally queries the database. If found, it is saved with that data; otherwise, it is stored as an unknown player. Subsequent `/tell Notch` commands will fetch it directly from the cache, bypassing all checks | -| `MODERATION` | For storing moderation results about players. Most often used to avoid querying the database every time a player joins the server | -| `LEGACY_COLOR_MESSAGE` | For storing the results of formatting strings containing legacy formatting, e.g., why replace `&c` with `` every time if it can be taken from the cache. This is necessary because a custom message is formatted for each player, and these messages are often the same | -| `MENTION_MESSAGE` | For storing the formatting results of messages for the `mention` module. This is necessary because a custom message is formatted for each player, and these messages are often the same | -| `SWEAR_MESSAGE` | For storing the formatting results of messages for the `swear` module. This is necessary because a custom message is formatted for each player, and these messages are often the same | -| `REPLACEMENT_MESSAGE` | For storing the formatting results of messages for the `replacement` module. This is necessary because a custom message is formatted for each player, and these messages are often the same | -| `REPLACEMENT_IMAGE` | For storing formatted images for the `replacement` module | -| `TRANSLATE_MESSAGE` | For storing messages that need to be translated | -| `PROFILE_PROPERTY` | For storing player profiles with their skins, to avoid querying `SkinsRestorer` each time and creating them manually | - -::: info PARAMETERS -#### `duration` - -Lifetime of an unused object in the cache, after which it will be deleted - -#### `time_unit` - -Type of lifetime for an unused cache object - -#### `size` - -Maximum cache size - -::: \ No newline at end of file diff --git a/pulse/en/docs/config/command/index.md b/pulse/en/docs/config/command/index.md deleted file mode 100644 index 421195c6..00000000 --- a/pulse/en/docs/config/command/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -order: 15 -authors: -- TheFaser ---- - -# Command - -::: warning WARNING -This is not related to the commands module, to configure them go to [command](/docs/command/) -::: - -[//]: # (config.yml) - - `config.yml → command` - - -<<< @/files/config.yml#command - -### `unregister_on_reload` - -::: warning WARNING -Not recommended to enable on older Minecraft versions, otherwise there might be errors/warnings in the server console, but they do not affect the plugin's operation -::: - -- If enabled, `FlectonePulse` will remove and re-add its own commands on `/flectonepulse reload`. This can cause drops in `tps` and `mspt` due to the large number of packets, so it's better to disable this setting if you encounter such a problem. -- If disabled, to correctly disable a command from `FlectonePulse` (in `commands.yml`) you will need to restart the server. - -### `disabled_fabric` - -List of commands **not** from `FlectonePulse` that should be disabled on `Fabric` server startup. This allows replacing already taken commands on `Fabric`, for example `/me` or `/ban` \ No newline at end of file diff --git a/pulse/en/docs/config/database/index.md b/pulse/en/docs/config/database/index.md deleted file mode 100644 index 6a50d851..00000000 --- a/pulse/en/docs/config/database/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -order: 5 -authors: -- TheFaser ---- - -# Database - -Storage for important player information - -::: tip INFO -You can use environment variables in database fields, for example `${VALUE}` -::: - -[//]: # (config.yml) - - `config.yml → database` - - -<<< @/files/config.yml#database - -### `ignore_existing_driver` - -Whether to download the database library even if this library already exists on the server - -::: info INFORMATION - -This can solve the issue when other plugins use an outdated library and `FlectonePulse` cannot start properly - -::: - -### `type` - -Type of database used, currently supported: - -| Type | Explanation | -|-----------------|-------------------------------| -| `SQLite` | Local, file-based | -| `MySQL` | Server, requires connection | -| `MariaDB` | Server, requires connection | -| `H2` | Local, file-based | -| `PostgreSQL` | Server, requires connection | - -### `name` - -Database name - -### `host` - -Address of the server where the database is located - -### `port` - -Connection port to the database on the server - -### `user` - -Username to be used for connecting to the database - -### `password` - -Password for connecting to the database - -### `parameters` - -Database connection parameters - -### `prefix` - -::: warning WARNING - -If you change the prefix, it means new tables will be created and previous player data will not be used - -::: - -Database table prefix, if empty, the `fp_` prefix will be used \ No newline at end of file diff --git a/pulse/en/docs/config/editor/index.md b/pulse/en/docs/config/editor/index.md deleted file mode 100644 index bd0f00bc..00000000 --- a/pulse/en/docs/config/editor/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -order: 20 -authors: -- TheFaser ---- - -# Web Editor - -Web editing for `FlectonePulse`. The backend server runs where `FlectonePulse` is installed - -![editor](/flectonepulseeditor.gif) - -[//]: # (config.yml) - - `config.yml → editor` - - -<<< @/files/config.yml#editor - -### `host` - -Host (IP) of the current server, domain can also be specified - -### `https` - -Enables `https` operation instead of `http` - -### `port` - -Unused port of the current server \ No newline at end of file diff --git a/pulse/en/docs/config/index.md b/pulse/en/docs/config/index.md deleted file mode 100644 index 6285398d..00000000 --- a/pulse/en/docs/config/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -order: -1 -authors: - - TheFaser - - Stokmenn ---- - -# Configuration - -Main configuration for `FlectonePulse`, without which the plugin cannot function - -[//]: # (config.yml) - - `config.yml` - - -<<< @/files/config.yml#version - -### `version` - -The current version of the plugin, used for proper transitions between plugin versions - -::: warning WARNING -Do not change the plugin version unless you know what you're doing! -::: \ No newline at end of file diff --git a/pulse/en/docs/config/language/index.md b/pulse/en/docs/config/language/index.md deleted file mode 100644 index 4154d53c..00000000 --- a/pulse/en/docs/config/language/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -order: 1 -authors: -- TheFaser ---- - -# Language - -Language and behavior configuration - -[//]: # (config.yml) - - `config.yml → language` - - -<<< @/files/config.yml#language - -### `type` - -Localization used for all plugin messages - -::: warning WARNING -The selected localization must be from the `localizations` folder -::: - -You can create and use your own localizations, for this: -1. Copy one localization file, for example `ru_ru.yml` -2. Rename it, preferably as in the [game](https://minecraft.wiki/w/Language) -3. Now you can change any messages inside this file - -::: info EXAMPLE -I want to translate the plugin into Belarusian -1. Copy the file `ru_ru.yml` -2. Rename it to `be_by.yml` -![locale](/locale.png) -3. Done! -::: - -### `by_player` - -If enabled, each player's Minecraft localization will be checked and depending on that, the [message](/docs/message/) will be shown - -::: tip INFO - -If you change messages with `by_player` enabled, remember to do it in ALL localization files - -::: - -![locale](/locale.gif) - -If such localization doesn't exist, the localization from `type` will be used \ No newline at end of file diff --git a/pulse/en/docs/config/logger/index.md b/pulse/en/docs/config/logger/index.md deleted file mode 100644 index cf6d7f3d..00000000 --- a/pulse/en/docs/config/logger/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -order: 25 -authors: -- TheFaser ---- - -# Logger - -Configuration for everything related to console and logs - -::: warning WARNING -This uses `ANSI` colors for messages, regular colors won't work -::: - -[//]: # (config.yml) - - `config.yml → logger` - - -<<< @/files/config.yml#logger - -### `console` - -Used to display the name when a message is created by the console -![console](/console.gif) - -### `prefix` - -Prefix for all messages written by `FlectonePulse` to the console - -### `description` - -Message on successful startup, `` will be replaced with the current version of `FlectonePulse` - -### `warn` - -Color for warning messages - -### `info` - -Color for information messages - -### `filter` - -Idea taken [from here](https://github.com/Whitescan/ConsoleFilter/blob/master/src/main/java/dev/whitescan/consolefilter/share/LogFilter.java), thanks @Whitescan - -List of messages that should not be shown, using keywords found in the message - -::: info EXAMPLE I WANT TO FILTER -![filter](/filter.png) - -So need to write: -`Unknown or incomplete command` or `command` or `Unknown` -::: \ No newline at end of file diff --git a/pulse/en/docs/config/metrics/index.md b/pulse/en/docs/config/metrics/index.md deleted file mode 100644 index d6ce7076..00000000 --- a/pulse/en/docs/config/metrics/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -order: 35 -authors: -- TheFaser ---- - -# Metrics - -Collection of anonymous server information - -::: tip INFO - -`FlectonePulse` does not collect your players' nicknames, does not collect your server's IP, does not collect any personal information about the server. Your server cannot be identified by this information, you have nothing to worry about. All information that is collected can be viewed in the [server analytics](/metrics/) - -::: - -[//]: # (config.yml) - - `config.yml → metrics` - - -<<< @/files/config.yml#metrics - -### `enable` - -Enable/Disable collection of anonymous information - -::: info THANK YOU! - -If you have metrics enabled, you are greatly helping the development of `FlectonePulse` - -::: \ No newline at end of file diff --git a/pulse/en/docs/config/module/index.md b/pulse/en/docs/config/module/index.md deleted file mode 100644 index d8685908..00000000 --- a/pulse/en/docs/config/module/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -order: 15 -authors: -- TheFaser ---- - -# Module - -Configuration of the main `FlectonePulse` module - -[//]: # (config.yml) - - `config.yml → module` - - -<<< @/files/config.yml#module - -### `enable` - -Enables or disables the operation of all modules - -- Each module has a parent (the one above it) - -::: info EXAMPLE -```yaml -house: - door: - chair: -``` - -`house` is the parent for `door` and `chair` -::: - -- Each module depends on the parent's `enable` - -::: info EXAMPLE -```yaml -house: - enable: false - door: - enable: true - chair: - enable: true -``` - -`house` is disabled, so regardless of whether `door` and `chair` are enabled - they will also be disabled -::: - -### `use_paper_message_sender` - -If enabled, `FlectonePulse` will use `Paper` as a tool to send a message to the player's chat. How does it work? First, the plugin creates a message internally and obtains a `FlectonePulse.Component`, this object is converted into a regular `String`. Then, `Paper` itself is used to get a `Paper.Component` from this string and send it to the player - -::: warning WARNING - -For this to work, `PacketEvents` must be installed on the server as a separate plugin and the server core must be `Paper` or a fork of it - -::: - -[//]: # (permission.yml) - - `permission.yml` - - -<<< @/files/permission.yml#module - - \ No newline at end of file diff --git a/pulse/en/docs/config/proxy/index.md b/pulse/en/docs/config/proxy/index.md deleted file mode 100644 index 9b89d1f7..00000000 --- a/pulse/en/docs/config/proxy/index.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -order: 10 -authors: -- TheFaser ---- - -# Proxy - -Used for synchronizing multiple servers using BungeeCord/Velocity or Redis - -::: tip INFO -This works on any platform where FlectonePulse is available. For Bukkit and Fabric servers. -::: - -[//]: # (config.yml) - - `config.yml → proxy` - - -<<< @/files/config.yml#proxy - -### `clusters` - -List of clusters the server should connect to. Only used when proxy mode is enabled. -If the list is empty, the server receives all messages from other servers - -::: info HOW TO USE? -Enter the cluster name on all servers where the message should be received and sent -```yaml -clusters: -- "test_cluster" -``` - -This way servers connect with each other and messages will only be between these servers -::: - -### `bungeecord` - -Enables connection with `BungeeCord` - -::: tip HOW TO SET UP? -1. Place the `FlectonePulse-bukkit.jar` file in the `plugins` folder on `BungeeCord`. Even if you have a Fabric server, you need to use `FlectonePulse-bukkit.jar` on `BungeeCord` -2. On all servers that should connect with `BungeeCord`, enable `bungeecord: true` in FlectonePulse -3. The selected database must be `MySQL`, `MariaDB`, or `PostgreSQL` (server-based) -::: - -### `velocity` - -Enables connection with `Velocity` - -::: tip HOW TO SET UP? -1. Place the `FlectonePulse-bukkit.jar` file in the `plugins` folder on `Velocity`. Even if you have a Fabric server, you need to use `FlectonePulse-bukkit.jar` on `Velocity` -2. On all servers that should connect with `Velocity`, enable `velocity: true` in FlectonePulse -3. The selected database must be `MySQL`, `MariaDB`, or `PostgreSQL` (server-based) -::: - -### `redis` - -Used for communication between different servers. For `user` and `password` you can use environment variables, for example `${VALUE}` - -::: details REDIS CONFIGURATION - -#### `enable` - -Enables `Redis` operation - -#### `host` - -Host (IP) of the server where `Redis` is running - -#### `port` - -Port of the server where `Redis` is running - -#### `ssl` - -Enables `SSL` usage - -#### `user` - -Username in `Redis`, if none exists, can be left empty - -#### `password` - -User password in `Redis`, if none exists, can be left empty - -::: \ No newline at end of file diff --git a/pulse/en/docs/index.md b/pulse/en/docs/index.md deleted file mode 100644 index a6e75cf6..00000000 --- a/pulse/en/docs/index.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: "Documentation" -authors: - - TheFaser ---- - -
- flectone -
-

FlectonePulse — Documentation

-

Complete guide to setting up and using FlectonePulse

-
- -## Frequently Asked Questions (FAQ) - -### 1. What is FlectonePulse and what is it used for? -FlectonePulse is a plugin for Minecraft servers that allows full customization of messages, chat, commands, and integrations. It supports all popular platforms (Bukkit, Spigot, Paper, Purpur, Folia, BungeeCord, Velocity) and provides a flexible text formatting system, automatic player language detection, and integrations with Discord, Telegram, and Twitch. FlectonePulse works on all versions from 1.8.8 up to the latest - -### 2. How to install FlectonePulse? - -- #### Bukkit -1. Download the plugin from [Modrinth](https://modrinth.com/plugin/flectonepulse) -2. Place the plugin file in your server's `plugins` folder -3. Restart the server -4. Configure the settings in the files - -- #### Fabric -1. Download the mod from [Modrinth](https://modrinth.com/plugin/flectonepulse) -2. Place the mod file in your server's `mods` folder, and also install `PacketEvents` and `Fabric-API` -3. Restart the server -4. Configure the settings in the files - -| File | Documentation Link | Explanation | -|---------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `config.yml` | [Configuration](/docs/config/) | Main FlectonePulse configuration, essential for proper operation. This is where the database, plugin language, proxy mode, etc., are configured. | -| `command.yml` | [Commands](/docs/command/) | Configuration of all **custom** commands. They can be used by typing `/flectonepulse:command_name` in Minecraft. | -| `integration.yml` | [Integrations](/docs/integration/) | Configuration of interactions with external plugins and services. | -| `message.yml` | [Messages](/docs/message/) | Configuration of FlectonePulse messages (conditions for their appearance and content).
**Do not confuse with message format configuration**, which is done in the `/localizations/...` files. | -| `localizations/...` | Specified in each section of the commands and messages documentation | This folder contains files with settings for each player language ([see language](/docs/config/language/)). This is where the **format** of messages, i.e., the text, is configured. | -| `permission.yml` | Specified in each section of the commands, messages, and integrations documentation | Configuration of access permissions. By default, permissions are set so that most functions are available to all players without additional configuration. | - -### 3. How to configure message formatting? -FlectonePulse has a versatile text formatting system supporting various color formats, from classic codes to modern gradients. - - - -*For flexibility, you can use `&` or `§` as interchangeable symbols.* - -```yaml -welcome-message: "&lHello !" -``` - -![welcome message](/welcomemessage.png) - -### 4. Can certain plugin features be disabled? -Yes, FlectonePulse uses a modular system. Any feature (commands, messages, or integrations) can be disabled in the `command.yml`, `message.yml`, or `integration.yml` files, respectively. After making changes, restart the plugin with the `/flectonepulse reload` command. - -### 5. How does automatic language detection work? -If the `by_player` option is enabled in `config.yml`, the plugin automatically detects the player's Minecraft language and displays messages from the `localizations/...` folder in that language. If the localization is unavailable, the default language from the configuration is used. Details in the [localization documentation](/docs/config/language/). - -### 6. What integrations does FlectonePulse support? -The plugin integrates with Discord, Telegram, and Twitch, allowing players to communicate across different platforms. It also supports third-party Minecraft plugins, such as preventing muted players from speaking in PlasmoVoice and SimpleVoice. Integration settings are configured in the `integration.yml` file. Details in the [integrations documentation](/docs/integration/). - -### 7. How to use the `/chatsetting` command? -Type the `/chatsetting` command in the chat to configure chat and related features (e.g., color, style, notifications). - -![commandchatsetting](/commandchatsetting.gif) - -### 8. Does FlectonePulse support PlaceholderAPI? -Yes, FlectonePulse is fully compatible with PlaceholderAPI and MiniPlaceholders. Use placeholders in messages. - -### 9. How to use the `/symbol` command? -Type the `/symbol` command in the chat to search for and use Unicode emojis. - -![commandsymbol](/commandsymbol.png) - -### 10. Are there chat-based mini-games? -Yes, players can use built-in mini-games such as tic-tac-toe or rock-paper-scissors. - -![commandtictactoe](/commandtictactoe.png) - -![commandrockpaperscissors](/commandrockpaperscissors.png) - -### 11. How is FlectonePulse different from FlectoneChat? -FlectonePulse is a new project, not an improved version of FlectoneChat. FlectoneChat was an experiment, while FlectonePulse was built with past mistakes in mind, offering more features and customization. - -### 12. How to enable displaying the player's name above their head? -Enable the `name_visible` setting in the `message.yml` file: - -<<< @/files/message.yml#scoreboard - -After making changes, run the `/flectonepulse reload` command. Details in the [configuration documentation](/docs/message/format/scoreboard/). - -### 13. How to configure the player's name display? -Player name (`display`) configuration is done in the `localizations/...` files: - -::: code-group -<<< @/files/localizations/ru_ru.yml#names -<<< @/files/localizations/en_us.yml#names -::: - -After changes, run `/flectonepulse reload`. Details in the [localization documentation](/docs/message/format/names/). - -### 14. How to configure colors in messages and the interface? -Color configuration is done in the `message.yml` file using the `fcolor` module: - -<<< @/files/message.yml#fcolor - -This sets default colors if the player hasn’t chosen their own in `/chatsetting` or `/chatcolor`. You can disable color changes in the respective commands. Details in the [formatting guide](/docs/message/format/color/). - -::: tip TIP -It’s easier to change the 4 colors here than to replace `` in all plugin settings. -::: - -### 15. How to configure the TAB (player list)? -To enable/disable TAB modules, configure the `message.yml` file: - -```yaml -tab: - enable: true - header: - enable: true - footer: - enable: true - playerlistname: - enable: true -``` - -To modify messages, edit the localization file in `localizations/...`: - -```yaml -tab: - header: - lists: - - - " " - - "👾" - - " " - - - " " - - "❤" - - " " - footer: - lists: - - - " " - - "TPS , Online " - - " " - - - " " - - "Hello !" - - " " - playerlistname: - format: "" -``` - -::: warning IMPORTANT -To sort the TAB by donation groups, enable [`tab_sort`](/docs/integration/luckperms/#tab-sort). -::: - -After changes, run `/flectonepulse reload`. Details in the [TAB documentation](/docs/message/tab/). - -### 16. What to do if errors occur? -1. Check the server console for errors and send them to the [Discord community](https://discord.com/channels/861147957365964810/1271850075064369152) for assistance. -2. Ensure you’re using the latest version of the plugin. -3. Review the documentation or get personalized technical support for boosters on [Boosty](https://boosty.to/thefaser). - -### 17. How to contact the developers? -Join the [Discord community](https://discord.flectone.net/) for support and suggestions. Leave a star on [GitHub](https://github.com/Flectone/FlectonePulse) or a review on [SpigotMC](https://www.spigotmc.org/resources/flectonepulse.121618/). - -### 18. When will the new version of FlectonePulse with support for the latest Minecraft version be released? -FlectonePulse likely already supports the latest Minecraft version. Experimental versions are available for download on [GitHub](https://github.com/Flectone/FlectonePulse/actions/) or in the [Discord testers channel](https://discord.com/channels/861147957365964810/1357058707011272926). If a Minecraft version is released and FlectonePulse hasn’t been updated, it’s due to waiting for the release of PacketEvents, the main library used by FlectonePulse for server interaction. Once PacketEvents is released, FlectonePulse will be updated. - -::: danger CAUTION -Use test versions at your own risk. These versions are often not intended for production use and may be unstable or break previous versions of FlectonePulse. -::: - -### 19. Does FlectonePulse work with proxies, and how to configure it? -FlectonePulse supports proxy servers, including BungeeCord and Velocity. The same plugin file must be installed on both the proxy and the server. Configuration files are not created on the proxy—it acts as a bridge. All settings are configured in the server files. A MySQL database connection must be set up in the `config.yml` file on the servers. Additionally, enable either the `velocity` or `bungeecord` mode. Details in the [configuration documentation](/docs/config/proxy/). - -### 20. Does FlectonePulse support servers that run mods and plugins simultaneously, like Arclight or Mohist, and does it work on Fabric? - -FlectonePulse has not been tested on hybrid servers supporting both mods and plugins (e.g., Arclight or Mohist), and no support is planned. The main issue lies with the Libby library used for dependency loading. Theoretically, it's possible to build FlectonePulse with all required dependencies to run on these servers, but there's no guarantee PacketEvents will function correctly. FlectonePulse does work on Fabric, but only on the latest Minecraft version due to the complexity of multi-version support. - -::: info NOTE - -The main issue has been fixed in recent Mohist versions, so FlectonePulse works there without major problems - -::: - -### 21. Is your chat plugin incompatible with FlectonePulse? - -By default, `FlectonePulse` has the `mode: "PACKET"` setting for [chats](/docs/message/chat/#mode). This prevents your plugin from working correctly - -::: info INFO - -You can change this to `mode: "BUKKIT"` to allow other plugins to interact with chat. In rare cases, you may use `mode: "PAPER"` if your plugin uses `Paper` listeners - -::: - -
-

🚀 Start using FlectonePulse today!

-
- modrinth - discord -
\ No newline at end of file diff --git a/pulse/en/docs/integration/advancedban/index.md b/pulse/en/docs/integration/advancedban/index.md deleted file mode 100644 index 74bf156a..00000000 --- a/pulse/en/docs/integration/advancedban/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# AdvancedBan - -Integration with `AdvancedBan` checks if a player is muted and prevents them from sending messages, as well as disables moderation commands in `FlectonePulse` - -::: warning WARNING -It's better to manually disable these commands in `command.yml`, as they may not always be disabled automatically -::: - -[//]: # (integration.yml) - - `integration.yml → advancedban` - - -<<< @/files/integration.yml#advancedban - - - -### `disable_flectonepulse_ban` -Disables the `/ban`, `/banlist`, and `/unban` commands in `FlectonePulse` - -### `disable_flectonepulse_mute` -Disables the `/mute`, `/mutelist`, and `/unmute` commands in `FlectonePulse` - -### `disable_flectonepulse_warn` -Disables the `/warn`, `/warnlist`, and `/unwarn` commands in `FlectonePulse` - -### `disable_flectonepulse_kick` -Disables the `/kick` command in `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.advancedban` - - -<<< @/files/permission.yml#advancedban - - \ No newline at end of file diff --git a/pulse/en/docs/integration/deepl/index.md b/pulse/en/docs/integration/deepl/index.md deleted file mode 100644 index b21d0201..00000000 --- a/pulse/en/docs/integration/deepl/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Deepl - -Integration with Deepl allows translating messages from one language to another, used by the [translation](/docs/command/translateto#service) module - -[//]: # (integration.yml) - - `integration.yml → deepl` - - -<<< @/files/integration.yml#deepl - - - -### `auth_key` - -Authorization token for Deepl - -[//]: # (permission.yml) - - `permission.yml → integration.deepl` - - -<<< @/files/permission.yml#deepl - - \ No newline at end of file diff --git a/pulse/en/docs/integration/discord/index.md b/pulse/en/docs/integration/discord/index.md deleted file mode 100644 index fdd2150c..00000000 --- a/pulse/en/docs/integration/discord/index.md +++ /dev/null @@ -1,355 +0,0 @@ ---- -authors: -- TheFaser ---- - -# Discord - -Integration with Discord allows sending messages: -- from Minecraft to Discord -- from Discord to Minecraft - -![discord message](/discordmessage.png) -![minecraft message](/discordminecraftmessage.png) - -::: info INFORMATION - -For the bot to work correctly, enable three settings for your bot in the [Discord Developer Portal](https://discord.com/developers/applications/): - -![develop](/discorddevelopers.png) - -Also grant the bot the following permissions: `read messages`, `send messages`, and `use webhooks` - -::: - - - -[//]: # (localization) - - `localizations → locale.yml → integration.discord` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#discord -<<< @/files/localizations/en_us.yml#discord -::: - -### `null_player` - -Message if the entered player via `custom_command` is not found - -### `format_reply` - -Message format for the `` tag when the message is a reply to another one - -### `custom_command` - -List of custom integration commands, where the key is the command name and the value is its message format - -::: info EXAMPLE - -```yaml -custom_command: - tps: - content: "" -``` - -A command to get the `tps` value on the server. **Don't forget to create it in inegration.yml** - -::: - -### `Placeholders` - -You can use all placeholders used in the initial message for Minecraft -::: info EXAMPLE FOR BAN MESSAGE -There is a `` placeholder, so I can use `` inside Discord messages -::: - -There are also placeholders that will DEFINITELY be replaced in any message -- `` message sent to Minecraft -- `` message sent to Minecraft without unicode emojis -- `` nickname of the player who sent the message -- `` raw message written by the player -- `` formatted message written by the player -- `` formatted reply message, it will be empty if the main message is not a reply -- Obviously, all placeholders from `PlaceholderAPI` and `FlectonePulse` will also work - -
-The message that will be sent from Discord to Minecraft has its own placeholders: - -| Placeholder | Returns | -|-------------------|------------------------------| -| `` | User global name in Discord | -| `` | User global name in Discord | -| `` | User nickname in Discord | -| `` | User display name in Discord | -| `` | User tag in Discord | - -### `info_channel` - -List of channel IDs and their names, for displaying some information, for example `TPS` - -### `message_channel` - -List of messages with their settings - -::::: details Message configuration - -::: tip INFO - -If a parameter is empty or not written, it will not be used in the final message - -::: - -#### `content` - -Message content -![discord content](/discordcontent.png) - -#### `webhook_avatar` - -Enable Discord webhook with player's avatar. Best to use `https://mc-heads.net/avatar//32.png` -![discord webhook](/discordwebhook.png) - -#### `embed` - -Discord embed message -![discord embed](/discordembed.png) - -##### `color` - -Color of the `embed` message - -##### `title` - -Title of the `embed` message - -##### `url` - -URL for the `embed` message - -##### `author` - -Author of the `embed` message - -###### `name` - -Name of the `embed` message author - -###### `url` - -URL of the `embed` message author - -###### `icon_url` - -URL of the `embed` message author's avatar. If you change it to your own, the URL must contain `` - -##### `description` - -Description of the `embed` message - -##### `thumbnail` - -Small image inside the `embed` message - -##### `fields` - -Bottom fields inside the `embed` message - -###### `name` - -Name of the field inside the `embed` message - -###### `value` - -Value of the field inside the `embed` message - -###### `inline` - -If enabled, the field will be placed in a column with other fields - -##### `image` - -Main image of the `embed` message - -##### `timestamp` - -If enabled, the `embed` message will include creation time - -##### `footer` - -Bottom part of the `embed` message - -###### `text` - -Text in the bottom part of the `embed` message - -###### `icon_url` - -Image in the bottom part of the `embed` message - -::::: - -::: info INFO - -Message with all parameters -![discord](https://docs.discord4j.com/img/embed-preview.png) - -```yaml -message_name: - content: "" - webhook_avatar: "https://mc-heads.net/avatar//32.png" - embed: - color: "" - title: "" - url: "" - author: - name: "" - url: "" - icon_url: "https://mc-heads.net/avatar//16.png" - description: "" - thumbnail: "" - fields: - - name: "" - value: "" - inline: false - image: "" - timestamp: true - footer: - text: "" - icon_url: "https://mc-heads.net/avatar//16.png" -``` -::: - -[//]: # (integration.yml) - - `integration.yml → discord` - - -<<< @/files/integration.yml#discord - - - -::: warning WARNING -- Before enabling, insert the Discord bot **token** -- After enabling, it's **RECOMMENDED** to restart the server, otherwise the plugin may cause freezing -::: - -### `token` - -Discord bot [token](https://discordgsm.com/guide/how-to-get-a-discord-bot-token) for connection. You can use environment variables, for example `${VALUE}` - -### `custom_command` - -List of custom integration commands, the key is the command name and it can be anything. Commands can ONLY be informational, they do not execute anything on the server and will not perform any actions - -| Parameter | Explanation | -|---------------|----------------------------------------------------------------------------------| -| `need_player` | Whether to check the first command argument for a player name, e.g., `!ping TheFaser` | -| `aliases` | List of aliases for using the command | - -::: info EXAMPLE - -```yaml -custom_command: - tps: - need_player: false - aliases: - - "!tps" - - "!tickpersecond" -``` - -A command to get the `tps` value on the server using `!tps` or `!tickpersecond`. **Don't forget to create the message in localization** - -::: - -### `presence` - -![discord presence](/discordpresence.png) - -::: details Bot status configuration -#### `enable` - -Enables or disables custom bot status - -#### `status` - -| Mode | Explanation | -|-----------------|--------------------------------| -| `UNKNOWN` | - | -| `ONLINE` | Online | -| `DO_NOT_DISTURB`| Do not disturb (Online) | -| `IDLE` | Online but idle | -| `INVISIBLE` | Invisible | -| `OFFLINE` | Offline | - -#### `activity` - -Bot activity in Discord - -##### `enable` - -Enables or disables activity - -##### `type` - -| Type | Explanation | -|-------------|-------------| -| `UNKNOWN` | - | -| `STREAMING` | Streaming | -| `LISTENING` | Listening | -| `WATCHING` | Watching | -| `CUSTOM` | - | -| `COMPETING` | Competing | - -##### `name` - -Activity name - -##### `url` - -Activity URL - -::: - -### `channel_info` - -![discord channel info](/discordchannelinfo.png) - -::: details Information channels configuration -#### `enable` - -Whether information channel is needed - - - -### `message_channel` - -List of message types and [channel IDs](https://support.discord.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID-) in Discord - -::: info For example I want messages from Minecraft command `/ban` to be sent to Discord -1. Copy the Discord channel ID `1286666844358316083` -2. Write `COMMAND_BAN: "1286666844358316083"` - -```yaml -message_channel: - COMMAND_BAN: - - "1286666844358316083" -``` - -You don't need to configure localization, by default the message will be sent with the format `` -::: - - - - -[//]: # (permission.yml) - - `permission.yml → integration.discord` - - -<<< @/files/permission.yml#discord - - - \ No newline at end of file diff --git a/pulse/en/docs/integration/floodgate/index.md b/pulse/en/docs/integration/floodgate/index.md deleted file mode 100644 index 9cc2dc0e..00000000 --- a/pulse/en/docs/integration/floodgate/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Floodgate - -Integration with Floodgate allows proper message formatting for Bedrock players when Geyser is on the Proxy while Floodgate is on a specific server - -[//]: # (integration.yml) - - `integration.yml → floodgate` - - -<<< @/files/integration.yml#floodgate - - - -[//]: # (permission.yml) - - `permission.yml → integration.floodgate` - - -<<< @/files/permission.yml#floodgate - - \ No newline at end of file diff --git a/pulse/en/docs/integration/geyser/index.md b/pulse/en/docs/integration/geyser/index.md deleted file mode 100644 index 6b50359e..00000000 --- a/pulse/en/docs/integration/geyser/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Geyser - -Integration with Geyser allows for proper message formatting for `bedrock` players - -[//]: # (integration.yml) - - `integration.yml → geyser` - - -<<< @/files/integration.yml#geyser - - - -[//]: # (permission.yml) - - `permission.yml → integration.geyser` - - -<<< @/files/permission.yml#geyser - - \ No newline at end of file diff --git a/pulse/en/docs/integration/index.md b/pulse/en/docs/integration/index.md deleted file mode 100644 index 283f1cd2..00000000 --- a/pulse/en/docs/integration/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Integrations - -Category responsible for configuring all integrations - -[//]: # (integration.yml) - - `integration.yml` - - -<<< @/files/integration.yml#integration - - - -### `avatar_api_url` - -API URL for fetching a player's head avatar. Final URL will look like this: https://mc-heads.net/avatar/59c987a2-4ef3-48e5-a291-00abe9ca8f12/8.png - -### `body_api_url` - -API URL for fetching a player's full body skin. Final URL will look like this: https://mc-heads.net/player/59c987a2-4ef3-48e5-a291-00abe9ca8f12/8.png - -[//]: # (permission.yml) - - `permission.yml → integration` - - -<<< @/files/permission.yml#integration - - \ No newline at end of file diff --git a/pulse/en/docs/integration/interactivechat/index.md b/pulse/en/docs/integration/interactivechat/index.md deleted file mode 100644 index 121f4600..00000000 --- a/pulse/en/docs/integration/interactivechat/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -authors: - - TheFaser ---- - -# InteractiveChat - -Integration with the `InteractiveChat` plugin properly formats custom placeholders from `InteractiveChat` - -::: warning WARNING - -There is no and will be no full support for `InteractiveChat`. If achievements, death messages etc. aren't displaying, this is an `InteractiveChat` issue caused by its modification of all packets. This can be fixed by disabling certain features in the `InteractiveChat` config itself. - -::: - -::: warning WARNING - -With `InteractiveChat` enabled, the message deletion module won't work or messages may get duplicated. - -::: - -Personal advice from me, the author of `FlectonePulse`: don't use `InteractiveChat` on your server until its author decides to code it properly. It literally creates noticeable delays in chat messages. - -[//]: # (integration.yml) - - `integration.yml → interactivechat` - - -<<< @/files/integration.yml#interactivechat - - - -[//]: # (permission.yml) - - `permission.yml → integration.interactivechat` - - -<<< @/files/permission.yml#interactivechat - - \ No newline at end of file diff --git a/pulse/en/docs/integration/itemsadder/index.md b/pulse/en/docs/integration/itemsadder/index.md deleted file mode 100644 index 532db901..00000000 --- a/pulse/en/docs/integration/itemsadder/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# ItemsAdder - -Integration with the `ItemsAdder` plugin properly formats custom font emojis - -[//]: # (integration.yml) - - `integration.yml → itemsadder` - - -<<< @/files/integration.yml#itemsadder - - - -[//]: # (permission.yml) - - `permission.yml → integration.itemsadder` - - -<<< @/files/permission.yml#itemsadder - - \ No newline at end of file diff --git a/pulse/en/docs/integration/libertybans/index.md b/pulse/en/docs/integration/libertybans/index.md deleted file mode 100644 index 2dd0c974..00000000 --- a/pulse/en/docs/integration/libertybans/index.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -authors: - - TheFaser ---- - -# LibertyBans - -Integration with `LibertyBans` checks if a player is muted and prevents them from sending messages, as well as disables moderation commands in `FlectonePulse` - -::: warning WARNING -It's better to manually disable these commands in `command.yml`, as they may not always be disabled automatically -::: - -[//]: # (integration.yml) - - `integration.yml → libertybans` - - -<<< @/files/integration.yml#libertybans - - - -### `disable_flectonepulse_ban` -Disables the `/ban`, `/banlist`, and `/unban` commands in `FlectonePulse` - -### `disable_flectonepulse_mute` -Disables the `/mute`, `/mutelist`, and `/unmute` commands in `FlectonePulse` - -### `disable_flectonepulse_warn` -Disables the `/warn`, `/warnlist`, and `/unwarn` commands in `FlectonePulse` - -### `disable_flectonepulse_kick` -Disables the `/kick` command in `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.libertybans` - - -<<< @/files/permission.yml#libertybans - - \ No newline at end of file diff --git a/pulse/en/docs/integration/litebans/index.md b/pulse/en/docs/integration/litebans/index.md deleted file mode 100644 index 573aa625..00000000 --- a/pulse/en/docs/integration/litebans/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# LiteBans - -Integration with `LiteBans` checks if a player is muted and prevents them from sending messages, as well as disables moderation commands in `FlectonePulse` - -::: warning WARNING -It's better to manually disable these commands in `command.yml`, as they may not always be disabled automatically -::: - -[//]: # (integration.yml) - - `integration.yml → litebans` - - -<<< @/files/integration.yml#litebans - - - -### `disable_flectonepulse_ban` -Disables the `/ban`, `/banlist`, and `/unban` commands in `FlectonePulse` - -### `disable_flectonepulse_mute` -Disables the `/mute`, `/mutelist`, and `/unmute` commands in `FlectonePulse` - -### `disable_flectonepulse_warn` -Disables the `/warn`, `/warnlist`, and `/unwarn` commands in `FlectonePulse` - -### `disable_flectonepulse_kick` -Disables the `/kick` command in `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.litebans` - - -<<< @/files/permission.yml#litebans - - \ No newline at end of file diff --git a/pulse/en/docs/integration/luckperms/index.md b/pulse/en/docs/integration/luckperms/index.md deleted file mode 100644 index d7eb2c25..00000000 --- a/pulse/en/docs/integration/luckperms/index.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# LuckPerms - -Integration with LuckPerms allows: -- Checking permissions for **offline players** -- Sorting players in TAB by [group weight](https://luckperms.net/wiki/Weight) - -[//]: # (integration.yml) - - `integration.yml → luckperms` - - -<<< @/files/integration.yml#luckperms - - - -### `tab_sort` - -Enables or disables sorting in TAB by [group weight](https://luckperms.net/wiki/Weight) - -[//]: # (permission.yml) - - `permission.yml → integration.luckperms` - - -<<< @/files/permission.yml#luckperms - - \ No newline at end of file diff --git a/pulse/en/docs/integration/maintenance/index.md b/pulse/en/docs/integration/maintenance/index.md deleted file mode 100644 index 05ed6afe..00000000 --- a/pulse/en/docs/integration/maintenance/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Maintenance - -Integration with the Maintenance plugin allows disabling `MOTD` in `FlectonePulse` when needed, and also disables the `/maintenance` command from `FlectonePulse`. - -[//]: # (integration.yml) - - `integration.yml → maintenance` - - -<<< @/files/integration.yml#maintenance - - - -### `disable_flectonepulse_maintenance` - -Disables the `/maintenance` command in `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.maintenance` - - -<<< @/files/permission.yml#integrationmaintenance - - \ No newline at end of file diff --git a/pulse/en/docs/integration/mineplaceholders/index.md b/pulse/en/docs/integration/mineplaceholders/index.md deleted file mode 100644 index bcf095da..00000000 --- a/pulse/en/docs/integration/mineplaceholders/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -authors: - - TheFaser ---- - -# MiniPlaceholders - -Integration with MiniPlaceholders allows using any [mini-placeholders](https://github.com/MiniPlaceholders/MiniPlaceholders/wiki/Placeholders) - -::: warning WARNING -To use a mini-placeholder, you must wrap it in `{}` - -Example: `{}` -::: - -[//]: # (integration.yml) - - `integration.yml → miniplaceholders` - - -<<< @/files/integration.yml#miniplaceholders - - - -[//]: # (permission.yml) - - `permission.yml → integration.miniplaceholders` - - -<<< @/files/permission.yml#miniplaceholders - - - -### `use` - -Permission to use MiniPlaceholders placeholders in messages \ No newline at end of file diff --git a/pulse/en/docs/integration/minimotd/index.md b/pulse/en/docs/integration/minimotd/index.md deleted file mode 100644 index de60f861..00000000 --- a/pulse/en/docs/integration/minimotd/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# MiniMOTD - -Integration with `MiniMOTD` disables the [Status](/docs/message/status/) module in `FlectonePulse` - -[//]: # (integration.yml) - - `integration.yml → minimotd` - - -<<< @/files/integration.yml#minimotd - - - -### `disable_flectonepulse_status` -Disables the [Status](/docs/message/status/) module - -[//]: # (permission.yml) - - `permission.yml → integration.minimotd` - - -<<< @/files/permission.yml#minimotd - - \ No newline at end of file diff --git a/pulse/en/docs/integration/motd/index.md b/pulse/en/docs/integration/motd/index.md deleted file mode 100644 index 833a7018..00000000 --- a/pulse/en/docs/integration/motd/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# MOTD - -::: warning ATTENTION -This is an integration with another plugin `MOTD`. You can configure `MOTD` itself [here](/docs/message/status/motd/) -::: - -Integration with `MOTD` disables the [Status](/docs/message/status/) module in `FlectonePulse` - -[//]: # (integration.yml) - - `integration.yml → motd` - - -<<< @/files/integration.yml#motd - - - -### `disable_flectonepulse_status` -Disables the [Status](/docs/message/status/) module - -[//]: # (permission.yml) - - `permission.yml → integration.motd` - - -<<< @/files/permission.yml#motd - - \ No newline at end of file diff --git a/pulse/en/docs/integration/placeholderapi/index.md b/pulse/en/docs/integration/placeholderapi/index.md deleted file mode 100644 index f2f52982..00000000 --- a/pulse/en/docs/integration/placeholderapi/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# PlaceholderAPI - -Integration with PlaceholderAPI: -- Allows using any [placeholders](https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders) - -::: info EXAMPLE -`%server_tps%`, `%server_online%`, etc., if the corresponding module is installed via `/papi ecloud download module` -::: - -- Adds its own placeholders - -| Placeholder | Returns | -|---------------------------------------------|-----------------------------------------------------------------------| -| `%flectonepulse_advancement%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_afk%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_afk_suffix%` | Returns [AFK suffix](/docs/command/afk/) | -| `%flectonepulse_auto%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_chat_name%` | Returns the type of selected chat, default is `default` | -| `%flectonepulse_death%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_discord%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_fcolor_number%` | Returns the player's [custom](/docs/message/format/fcolor/) color | -| `%flectonepulse_fcolor_out_number%` | Returns the player's [custom OUT](/docs/message/format/fcolor/) color | -| `%flectonepulse_fcolor_see_number%` | Returns the player's [custom SEE](/docs/message/format/fcolor/) color | -| `%flectonepulse_greeting%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_ip%` | Returns the player's IP address | -| `%flectonepulse_join%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_locale%` | Returns the player's current locale | -| `%flectonepulse_online%` | Returns the number of players on the server | -| `%flectonepulse_ping%` | Returns the player's ping | -| `%flectonepulse_player%` | Returns the player's regular name | -| `%flectonepulse_quit%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_stream_prefix%` | Returns the player's [stream](/docs/message/command/stream/) prefix | -| `%flectonepulse_mute_suffix%` | Returns the player's [mute suffix](/docs/command/mute/) | -| `%flectonepulse_spy_status` | Returns string if spy mode is enabled, otherwise empty | -| `%flectonepulse_telegram%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_tps%` | Returns the server's TPS | -| `%flectonepulse_twitch%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_world_prefix%` | Returns the player's [world prefix](/docs/message/format/world/) | -| `%flectonepulse_command_ball%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_ban%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_broadcast%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_coin%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_dice%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_do%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_kick%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_mail%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_me%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_mute%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_poll%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_reply%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_rockpaperscissors%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_spy%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_stream%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_tell%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_tictactoe%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_translateto%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_try%` | Returns `true` if display is enabled, otherwise empty | -| `%flectonepulse_command_warn%` | Returns `true` if display is enabled, otherwise empty | - -[//]: # (integration.yml) - - `integration.yml → placeholderapi` - - -<<< @/files/integration.yml#placeholderapi - - - -[//]: # (permission.yml) - - `permission.yml → integration.placeholderapi` - - -<<< @/files/permission.yml#placeholderapi - - - -### `use` - -Permission to use PlaceholderAPI placeholders in messages \ No newline at end of file diff --git a/pulse/en/docs/integration/plasmovoice/index.md b/pulse/en/docs/integration/plasmovoice/index.md deleted file mode 100644 index 884f7d3b..00000000 --- a/pulse/en/docs/integration/plasmovoice/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# PlasmoVoice - -Integration with PlasmoVoice allows muting players who have been muted using `/mute`. Also, if player has ignored another using `/ignore`, they will not hear them -![mute](/mute.png) - -[//]: # (integration.yml) - - `integration.yml → plasmovoice` - - -<<< @/files/integration.yml#plasmovoice - - - -[//]: # (permission.yml) - - `permission.yml → integration.plasmovoice` - - -<<< @/files/permission.yml#plasmovoice - - \ No newline at end of file diff --git a/pulse/en/docs/integration/simplevoice/index.md b/pulse/en/docs/integration/simplevoice/index.md deleted file mode 100644 index 0b74d291..00000000 --- a/pulse/en/docs/integration/simplevoice/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# SimpleVoice - -Integration with SimpleVoice allows muting players who have been muted using `/mute`. Also, if player has ignored another using `/ignore`, they will not hear them -![mute](/mute.png) - -[//]: # (integration.yml) - - `integration.yml → simplevoice` - - -<<< @/files/integration.yml#simplevoice - - - -[//]: # (permission.yml) - - `permission.yml → integration.simplevoice` - - -<<< @/files/permission.yml#simplevoice - - \ No newline at end of file diff --git a/pulse/en/docs/integration/skinsrestorer/index.md b/pulse/en/docs/integration/skinsrestorer/index.md deleted file mode 100644 index f2d0a771..00000000 --- a/pulse/en/docs/integration/skinsrestorer/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# SkinsRestorer - -Integration with SkinsRestorer allows retrieving skins of **offline players** -![skinsrestorer](/skinsrestorer.png) - -[//]: # (integration.yml) - - `integration.yml → skinsrestorer` - - -<<< @/files/integration.yml#skinsrestorer - - - -[//]: # (permission.yml) - - `permission.yml → integration.skinsrestorer` - - -<<< @/files/permission.yml#skinsrestorer - - \ No newline at end of file diff --git a/pulse/en/docs/integration/supervanish/index.md b/pulse/en/docs/integration/supervanish/index.md deleted file mode 100644 index 1fe511a1..00000000 --- a/pulse/en/docs/integration/supervanish/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# SuperVanish - -Integration with SuperVanish (and PremiumVanish) hides player actions in vanish mode - -[//]: # (integration.yml) - - `integration.yml → supervanish` - - -<<< @/files/integration.yml#supervanish - - - -[//]: # (permission.yml) - - `permission.yml → integration.supervanish` - - -<<< @/files/permission.yml#supervanish - - \ No newline at end of file diff --git a/pulse/en/docs/integration/tab/index.md b/pulse/en/docs/integration/tab/index.md deleted file mode 100644 index 88be3255..00000000 --- a/pulse/en/docs/integration/tab/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# TAB - -::: warning IMPORTANT -This is an integration with another plugin `TAB`. You can configure `TAB` itself [here](/docs/message/tab/) -::: - -Integration with `TAB` resolves compatibility issues by disabling certain features in `FlectonePulse`: -- [Scoreboard](/docs/message/format/scoreboard/) -- [Header](/docs/message/tab/header/) -- [Footer](/docs/message/tab/footer/) -- [Player List Name](/docs/message/tab/playerlistname/) - -[//]: # (integration.yml) - - `integration.yml → tab` - - -<<< @/files/integration.yml#tab - - - -### `disable_flectonepulse_scoreboard` - -Disables the [Scoreboard](/docs/message/format/scoreboard/) module - -### `disable_flectonepulse_header` - -Disables the [Header](/docs/message/tab/header/) module - -### `disable_flectonepulse_footer` - -Disables the [Footer](/docs/message/tab/footer/) module - -### `disable_flectonepulse_playerlistname` - -Disables the [Player List Name](/docs/message/tab/playerlistname/) module - -[//]: # (permission.yml) - - `permission.yml → integration.tab` - - -<<< @/files/permission.yml#integrationtab - - \ No newline at end of file diff --git a/pulse/en/docs/integration/telegram/index.md b/pulse/en/docs/integration/telegram/index.md deleted file mode 100644 index 4b3bab54..00000000 --- a/pulse/en/docs/integration/telegram/index.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Telegram - -Integration with Telegram allows sending messages: -- From Minecraft to Telegram -- From Telegram to Minecraft - -![telegram message 1](/telegrammessage1.png) -![telegram message 2](/telegrammessage2.png) -![minecraft message](/telegramminecraftmessage.png) - - - -[//]: # (localization) - - `localizations → language.yml → integration.telegram` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#telegram -<<< @/files/localizations/en_us.yml#telegram -::: - -### `null_player` - -Message if the entered player via `custom_command` is not found - -### `format_reply` - -Message format for the `` tag when the message is a reply to another one - -### `custom_command` - -List of custom integration commands, where the key is the command name and the value is its message format - -::: info EXAMPLE - -```yaml -custom_command: - tps: - content: "" -``` - -A command to get the `tps` value on the server. **Don't forget to create it in integration.yml** - -::: - -### `Placeholders` - -You can use all placeholders that are used in the initial message for Minecraft -::: info EXAMPLE FOR A BAN MESSAGE -There is a placeholder ``, so I can use `` inside Telegram messages -::: - -There are also placeholders that WILL DEFINITELY be replaced in any message: -- `` message sent to Minecraft -- `` The message sent to Minecraft without unicode emojis -- `` nickname of player who sent message -- `` raw message written by player -- `` formatted message written by player -- `` formatted reply message, it will be empty if the main message is not a reply -- Obviously, all placeholders from `PlaceholderAPI` and `FlectonePulse` will also work - -
-The message that will be sent from Telegram to Minecraft has its own placeholders: - -| Placeholder | Returns | -|-----------------|------------------------------------------------------| -| `` | User tag in Telegram | -| `` | User tag in Telegram | -| `` | User first name in Telegram | -| `` | User last name in Telegram | -| `` | Telegram chat name (where the message was sent from) | - -### `info_channel` - -List of channel IDs and their names, for displaying certain information, for example `TPS` - -### `message_channel` - -A list of messages with the format of the final message - -::: info IF YOU WANT TO ADD ANOTHER MESSAGE: -1. Take the name from the list of `message types` -2. Insert it into `message_channel`: -```yaml -message_name: "" -``` -::: - -[//]: # (integration.yml) - - `integration.yml → telegram` - - -<<< @/files/integration.yml#telegram - - - -::: warning WARNING -- Before enabling, insert the **token** of the Telegram bot -- After enabling, it is **HIGHLY RECOMMENDED** to restart the server - ::: - -### `parse_mode` - -In which mode the message will be sent to Telegram - -| Mode | What will happen? | -|----------------|----------------------------------------------------------------------------| -| `MARKDOWN` | The message will be formatted according to the outdated Markdown format | -| `MARKDOWN_V2` | The message will be formatted according to the new Markdown format | -| `HTML` | The message will be formatted according to the HTML format | -| `NONE` | The message will not be formatted at all | - -### `token` - -The [token](https://core.telegram.org/bots/faq#how-do-i-create-a-bot) of the bot for connection. You can use environment variables, for example `${VALUE}` - -### `custom_command` - -List of custom integration commands, the key is the command name and it can be anything. Commands can ONLY be informational, they do not execute anything on the server and will not perform any actions - -| Parameter | Explanation | -|---------------|----------------------------------------------------------------------------------| -| `need_player` | Whether to check the first command argument for a player name, e.g., `!ping TheFaser` | -| `aliases` | List of aliases for using the command | - -::: info EXAMPLE - -```yaml -custom_command: - tps: - need_player: false - aliases: - - "!tps" - - "!tickpersecond" -``` - -A command to get the `tps` value on the server using `!tps` or `!tickpersecond`. **Don't forget to create the message in localization** - -::: - -### `channel_info` - -::: details Channel information settings -#### `enable` - -Whether the information channel is needed - - - -### `message_channel` - -A list of message types and chat IDs in Telegram. - -::: info For example, I want messages from the `/ban` command in Minecraft to be sent to Telegram: -1. Copy the chat ID where the message should be sent (`-1002341720267_49`). - -If the bot is connected and added to the channel, you can use the `/id` command in Telegram to find out the channel ID - -2. Write: -```yaml -message_channel: - COMMAND_BAN: - - "-1002341720267_49" -``` - -There can be as many chats as you want, as long as the bot has access to them from [secrets](/docs/secrets/telegram/). You don't need to configure localization, by default the message will be sent with the format `` -::: - -::: danger IMPORTANT - -If your channel is a Forum (Topic), the ID of the **MAIN** channel should be specified without `_`. - -1. The ID of my main channel (it always ends with `_1`) is `-1002341720267_1`. -2. Therefore, you need to enter **ONLY** `-1002341720267`. - -For other chats in the forum, this rule does not apply, and you need to enter the **FULL** ID - -::: - - - - -[//]: # (permission.yml) - - `permission.yml → integration.telegram` - - -<<< @/files/permission.yml#telegram - - - \ No newline at end of file diff --git a/pulse/en/docs/integration/triton/index.md b/pulse/en/docs/integration/triton/index.md deleted file mode 100644 index d10f6dd6..00000000 --- a/pulse/en/docs/integration/triton/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Triton - -Integration with Triton allows using custom localization for **players**. - -[//]: # (integration.yml) - - `integration.yml → triton` - - -<<< @/files/integration.yml#triton - - - -[//]: # (permission.yml) - - `permission.yml → integration.triton` - - -<<< @/files/permission.yml#triton - - \ No newline at end of file diff --git a/pulse/en/docs/integration/twitch/index.md b/pulse/en/docs/integration/twitch/index.md deleted file mode 100644 index eaf575ac..00000000 --- a/pulse/en/docs/integration/twitch/index.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Twitch - -Integration with Twitch allows: -- sending messages from Minecraft to Twitch -- sending messages from Twitch to Minecraft -- subscribing to Twitch stream starts - -![twitch message](/twitchmessage.png) -![minecraft message](/twitchminecraftmessage.png) - - - -[//]: # (localization) - - `localizations → locale.yml → integration.twitch` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#twitch -<<< @/files/localizations/en_us.yml#twitch -::: - -### `null_player` - -Message if the entered player via `custom_command` is not found - -### `format_reply` - -Message format for the `` tag when the message is a reply to another one - -### `custom_command` - -List of custom integration commands, where the key is the command name and the value is its message format - -::: info EXAMPLE - -```yaml -custom_command: - tps: - content: "" -``` - -A command to get the `tps` value on the server. **Don't forget to create it in integration.yml** - -::: - -### `Placeholders` - -You can use all the placeholders that are used in the initial Minecraft message -::: tip EXAMPLE FOR A BLOCK MESSAGE -There is a placeholder ``, so I can use `` inside Twitch messages -::: - -There are also placeholders that WILL DEFINITELY be replaced in any message -- `` message sent to Minecraft -- `` message sent to Minecraft without Unicode emojis -- `` player’s nickname who sent message -- `` raw message written by player -- `` formatted message written by player -- `` formatted reply message, it will be empty if the main message is not a reply -- Obviously, all placeholders from `PlaceholderAPI` and `FlectonePulse` will also work - -
-The message that will be sent from Twitch to Minecraft has its own placeholders: - -| Placeholder | What it returns | -|----------------|-----------------------------------------------------------| -| `` | The user's nickname on Twitch | - -### `message_channel` - -A list of messages with the format of the final message - -::: tip IF YOU WANT TO ADD ANOTHER MESSAGE: -1. Take the name from the list of `message types` -2. Insert into `message_channel` -```yaml -message_name: "" -``` -::: - -[//]: # (integration.yml) - - `integration.yml → twitch` - - -<<< @/files/integration.yml#twitch - - - -::: warning WARNING -- Before enabling, insert the **token** and **client ID** for Twitch -- After enabling, it is **RECOMMENDED** to restart the server, otherwise, the plugin might cause freezing - ::: - -### `client_id` - -[User identifier](https://twitchtokengenerator.com/). You can use environment variables, for example `${VALUE}` -![client id](/twitchclientid.png) - -### `token` - -[User token](https://twitchtokengenerator.com/) for connecting. You can use environment variables, for example `${VALUE}` -![token](/twitchtoken.png) - -### `custom_command` - -List of custom integration commands, the key is the command name and it can be anything. Commands can ONLY be informational, they do not execute anything on the server and will not perform any actions - -| Parameter | Explanation | -|---------------|----------------------------------------------------------------------------------| -| `need_player` | Whether to check the first command argument for a player name, e.g., `!ping TheFaser` | -| `aliases` | List of aliases for using the command | - -::: info EXAMPLE - -```yaml -custom_command: - tps: - need_player: false - aliases: - - "!tps" - - "!tickpersecond" -``` - -A command to get the `tps` value on the server using `!tps` or `!tickpersecond`. **Don't forget to create the message in localization** - -::: - -### `message_channel` - -A list of message types and Twitch channel names - -::: tip For example, I want to send a `/ban` command message from Minecraft to Twitch -1. Copy the names of the Twitch channels to send the message to (`faseri4ka`) -2. Write: -```yaml -message_channel: - COMMAND_BAN: - - "faseri4ka" // [!code highlight] -``` - -There can be any number of channels, as long as the connected account has access to them. You don't need to configure localization, by default the message will be sent with the format `` -::: - -### `follow_channel` - -A list where the key is the channel name, and the value is a list of commands to be executed when the stream starts - -::: tip For example, I want to track the stream start for `faseri4ka` and write `stream start https://twitch.tv/faseri4ka` -1. Copy the channel name `faseri4ka` -2. Write: -```yaml -follow_channel: - faseri4ka: - - "stream start https://twitch.tv/faseri4ka" -``` - -- Up to 10 channels can be tracked at once, as long as the connected account has access to them -- There can be any number of commands to be executed when the stream starts -::: - - - - -[//]: # (permission.yml) - - `permission.yml → integration.twitch` - - -<<< @/files/permission.yml#twitch - - - \ No newline at end of file diff --git a/pulse/en/docs/integration/vault/index.md b/pulse/en/docs/integration/vault/index.md deleted file mode 100644 index 506fed00..00000000 --- a/pulse/en/docs/integration/vault/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Vault - -Integration with Vault allows checking permissions for **offline players** - -[//]: # (integration.yml) - - `integration.yml → vault` - - -<<< @/files/integration.yml#vault - - - -[//]: # (permission.yml) - - `permission.yml → integration.vault` - - -<<< @/files/permission.yml#vault - - \ No newline at end of file diff --git a/pulse/en/docs/integration/yandex/index.md b/pulse/en/docs/integration/yandex/index.md deleted file mode 100644 index 4e9db303..00000000 --- a/pulse/en/docs/integration/yandex/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Yandex - -Integration with Yandex allows translating messages from one language to another, used by the [translation](/docs/command/translateto#service) module - -[//]: # (integration.yml) - - `integration.yml → yandex` - - -<<< @/files/integration.yml#yandex - - - -### `token` - -Authorization token for Yandex [`iam_token`](https://yandex.cloud/ru/docs/translate/api-ref/authentication) - -### `folder_id` - -Folder ID with access - -[//]: # (permission.yml) - - `permission.yml → integration.yandex` - - -<<< @/files/permission.yml#yandex - - \ No newline at end of file diff --git a/pulse/en/docs/message/afk/index.md b/pulse/en/docs/message/afk/index.md deleted file mode 100644 index f61ae548..00000000 --- a/pulse/en/docs/message/afk/index.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# AFK - -A player goes AFK if they do nothing for a certain period of time -![afk global message](/afkglobalmessage.png) - -If a player is AFK, they receive a specific suffix -![afk suffix](/afksuffix.png) - -[//]: # (localization) - - `localizations → language.yml → message.afk` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#afk -<<< @/files/localizations/en_us.yml#afk -::: - -### `suffix` - -The suffix assigned to a player when they go AFK -![afksuffix](/afksuffix.png) - -### `format_true` - -Message when a player goes AFK - -### `format_false` - -Message when a player returns - -[//]: # (message.yml) - - `message.yml → afk` - - -<<< @/files/message.yml#afk - - - - -### `delay` - -How long (in [ticks](https://minecraft.wiki/w/Tick)) a player must be inactive to go AFK - -### `ignore` - -List of actions that are ignored and do not affect AFK status - -| Actions that can be ignored | -|----------------------------| -| Any command names | -| `chat` - when a player types in chat | -| `quit` - when a player logs out | - -::: info EXAMPLE -If I add the command `tell` to the list and a player is AFK, they can use the `tell` command without leaving AFK mode -::: - - - - - -[//]: # (permission.yml) - - `permission.yml → message.afk` - - -<<< @/files/permission.yml#afk - - - - diff --git a/pulse/en/docs/message/anvil/index.md b/pulse/en/docs/message/anvil/index.md deleted file mode 100644 index 44763961..00000000 --- a/pulse/en/docs/message/anvil/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Anvil - -Module responsible for messages in the anvil when renaming items -![anvil](/anvil.gif) - -[//]: # (message.yml) - - `message.yml → anvil` - - -<<< @/files/message.yml#anvil - - - -[//]: # (permission.yml) - - `permission.yml → message.anvil` - - -<<< @/files/permission.yml#anvil - - diff --git a/pulse/en/docs/message/auto/index.md b/pulse/en/docs/message/auto/index.md deleted file mode 100644 index 5171742b..00000000 --- a/pulse/en/docs/message/auto/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Auto - -Server message sent at regular intervals -![auto](/auto.png) - -[//]: # (localization) - - `localizations → language.yml → message.auto` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#auto -<<< @/files/localizations/en_us.yml#auto -::: - -### `types` - -Types of automatic messages with a list - -[//]: # (message.yml) - - `message.yml → auto` - - -<<< @/files/message.yml#auto - - - -### `types` - -Types of automatic messages - -::: info YOU CAN CREATE YOUR OWN -```yaml - types: - newauto: - random: true - destination: - type: "CHAT" - ticker: - enable: true - period: 9000 - sound: - enable: false -``` -::: - -- -- -- -- - -[//]: # (permission.yml) - - `permission.yml → message.auto` - - -<<< @/files/permission.yml#auto - - - -### `types` - -Types of automatic messages and their sound permissions - -- diff --git a/pulse/en/docs/message/book/index.md b/pulse/en/docs/message/book/index.md deleted file mode 100644 index 3e97c758..00000000 --- a/pulse/en/docs/message/book/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Book - -Module responsible for messages in books and their titles -![book](/book.gif) - -[//]: # (message.yml) - - `message.yml → book` - - -<<< @/files/message.yml#book - - - -[//]: # (permission.yml) - - `permission.yml → message.book` - - -<<< @/files/permission.yml#book - - diff --git a/pulse/en/docs/message/bossbar/index.md b/pulse/en/docs/message/bossbar/index.md deleted file mode 100644 index ac5893d8..00000000 --- a/pulse/en/docs/message/bossbar/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Boss Bar - -The module responsible for messages in vanilla boss bars -![bossbar raid](/bossbar_raid.png) -![bossbar wither](/bossbar_wither.png) -![bossbar enderdragon](/bossbar_enderdragon.png) - -[//]: # (localization) - - `localizations → язык.yml → message.bossbar` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#bossbar -<<< @/files/localizations/en_us.yml#bossbar -::: - -### `announce` - -List of messages upon entering a specific boss bar, where the key is the boss bar name (e.g., `entity.minecraft.ender_dragon`) - -### `types` - -List of vanilla boss bar messages. The key `event.minecraft.raid.raiders_remaining` is special; it is automatically added to raid messages if necessary - -[//]: # (message.yml) - - `message.yml → bossbar` - - -<<< @/files/message.yml#bossbar - - - -### `announce` - -Can be used to notify a player that they have entered the "dragon" zone (or any other). This does not affect the main boss bar, only adds functionality. It will trigger every time a player enters a boss bar zone - -The key is the boss bar name (e.g., `entity.minecraft.ender_dragon`), and the value is where it will be sent - -::: info EXAMPLE - -I want a message "It's the dragon!" to appear in the player's chat when they enter the dragon's boss bar zone -```yaml -announce: - entity.minecraft.ender_dragon: - destination: - type: "CHAT" - sound: - enable: false -``` - -You also need to add the message in localization - -```yaml -announce: - entity.minecraft.ender_dragon: "It's the dragon!" -``` - -::: - -[//]: # (permission.yml) - - `permission.yml → message.bossbar` - - -<<< @/files/permission.yml#bossbar - - \ No newline at end of file diff --git a/pulse/en/docs/message/brand/index.md b/pulse/en/docs/message/brand/index.md deleted file mode 100644 index 10fbfaf0..00000000 --- a/pulse/en/docs/message/brand/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Brand - -Module responsible for the brand message in F3 debug screen -![brand](/brand.png) - -::: warning WARNING - -If a proxy (Velocity or BungeeCord) is being used, changing the brand is completely impossible - -::: - -[//]: # (localization) - - `localizations → language.yml → message.brand` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#brand -<<< @/files/localizations/en_us.yml#brand -::: - -### `values` - -List of brand messages - -::: warning ONLY BASIC COLORS CAN BE USED - -::: - - -[//]: # (message.yml) - - `message.yml → brand` - - -<<< @/files/message.yml#brand - - - - - - -[//]: # (permission.yml) - - `permission.yml → message.brand` - - -<<< @/files/permission.yml#brand - - diff --git a/pulse/en/docs/message/bubble/index.md b/pulse/en/docs/message/bubble/index.md deleted file mode 100644 index 1cccd6c8..00000000 --- a/pulse/en/docs/message/bubble/index.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Bubble - -Module responsible for overhead messages -![bubble](/bubble.gif) - -Idea taken from [LightChatBubbles](https://github.com/atesin/LightChatBubbles) - -### Duration Formula - -```java -long duration = (countWords + handicapChars) / readSpeed * 60; -``` - -[//]: # (localization) - - `localizations → language.yml → message.bubble` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#bubble -<<< @/files/localizations/en_us.yml#bubble -::: - -### `format` - -Format of the overhead message - -[//]: # (message.yml) - - `message.yml → bubble` - - -<<< @/files/message.yml#bubble - - - -### `max_count` - -Maximum number of overhead messages displayed simultaneously - -### `max_length` - -Maximum length of a single overhead message. If the text is longer, it will be split into multiple parts - -### `elevation` - -How high overhead will the message be - -### `distance` - -How far away a player's overhead message can be seen - -### `read_speed` - -Reading speed in words per minute - -### `handicap_chars` - -Additional time for short messages - -### `word_break_hint` - -A hint symbol placed when a word breaks across two lines - -### `interaction` - -Allows adjusting the spacing between messages or legacy `area effect cloud` is used - -::: warning WARNING -This will only be used for servers running version `1.21.3` or higher. -::: - -::: details SETTING -#### `enable` - -Enables functionality - -#### `height` - -The spacing between each message -::: - -### `modern` - -Overhead messages via Text Display - -::: warning WARNING -This will only be used for servers running version `1.19.4` or higher -::: - -::: details CONFIGURATION -#### `enable` - -Enables functionality - -#### `has_shadow` - -Enables text shadow - -#### `see_through` - -Enables text transparency against water and clouds (so you cannot see through water) - -#### `scale` - -Scales the size of the message - -#### `background` - -Background color of the message, including transparency (alpha channel) [Color picker website](https://rgbacolorpicker.com/color-wheel-picker) - -#### `billboard` - -| Type | Explanation | -|----------------|----------------------------------------------------------------| -| `FIXED` | Position remains unchanged | -| `VERTICAL` | Position adjusts relative to the vertical axis | -| `HORIZONTAL` | Position adjusts relative to the horizontal axis | -| `CENTER` | Position adjusts relative to both horizontal and vertical axes | -::: - -[//]: # (permission.yml) - - `permission.yml → message.bubble` - - -<<< @/files/permission.yml#bubble - - \ No newline at end of file diff --git a/pulse/en/docs/message/chat/index.md b/pulse/en/docs/message/chat/index.md deleted file mode 100644 index a98ed49c..00000000 --- a/pulse/en/docs/message/chat/index.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn - - Bakinu ---- - -# Chat - -A module responsible for messages sent by players in chat -![chat](/chat.png) - -::: info HOW TO DISABLE LOCAL CHAT? - -In `message.yml`, disable `local` by setting `enable: false`, and also set an empty `trigger: ""` for `global` - -```yaml -chat: - enable: true - mode: "BUKKIT" - priority: "NORMAL" - types: - local: - enable: false # set to false - global: - enable: true - cancel: false - range: "PROXY" - priority: 5 - trigger: "" # make it empty - null_receiver: - enable: true - destination: - type: "ACTION_BAR" - times: - stay: 20 - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -``` - -::: - -[//]: # (localization) - - `localizations → language.yml → message.chat` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#chat -<<< @/files/localizations/en_us.yml#chat -::: - -### `null_chat` - -Message if nothing was sent to chat - -### `null_receiver` - -Message if no one saw the player's message - -### `types` - -List of chats and their formats - -[//]: # (message.yml) - - `message.yml → chat` - - -<<< @/files/message.yml#chat - - - -### `mode` - -Chat processing mode - -| Type | Explanation | -|-----------|------------------------------------------------------------------------------------------| -| `PACKET` | Chat messages are processed via packets (fully asynchronous) | -| `BUKKIT` | Chat messages are processed via `Bukkit` (asynchronous, but only in a single chat thread) | -| `PAPER` | Chat messages are processed via `Paper` (asynchronous, but only in a single chat thread) | - -::: warning WARNING - -If you need another plugin to see chat messages, set `mode: "BUKKIT"`. In rare cases where a plugin relies on `Paper` listeners, use `mode: "PAPER"` - -::: - -### `event_priority` - -The priority of a chat message event. Change this value if there is a conflict with other plugins that also use the chat - -| Type | Explanation | -|-----------|---------------------------------------------------------------------------| -| `LOWEST` | The chat message will be processed before all other plugins | -| `LOW` | The chat message will be processed after plugins with `LOWEST` priority | -| `NORMAL` | The chat message will be processed after plugins with `LOW` priority | -| `HIGH` | The chat message will be processed after plugins with `NORMAL` priority | -| `HIGHEST` | The chat message will be processed after plugins with `HIGH` priority | -| `MONITOR` | The chat message will only be observed (no modifications allowed) | - -### `types` - -List of all chats with their configuration, you can add your own. By default, any chat looks like this - -```yaml -chat_name: - enable: true - cancel: true - range: PROXY - priority: number - trigger: "trigger" - null-receiver: - enable: true - destination: - type: "ACTION_BAR" - times: - stay: 20 - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -``` - -### `enable` - -Enables chat functionality - -### `null_recipient` - -![null recipient](/nullrecipient.png) - -Message if no one saw the player's message - -::: details SETTINGS - -#### `enable` - -Enables the functionality - -#### `destination` - -Where the message will be sent - -::: - -### `cancel` - -- If `true`, the chat event is canceled for other plugins -- If you need another chat-related plugin (e.g., DiscordSRV) to work, set this to `false` -- If `false`, this also causes duplication in the console - ![chat console](/chatconsole.png) - - - -### `priority` - -Chat priority, used for selection when mulinfole chats have the same `trigger`. The chat with the higher priority is chosen - -::: info EXAMPLE CHATS -```yaml -admin: - priority: 20 - trigger: "!" // [!code highlight] -helper: - priority: 10 - trigger: "!" // [!code highlight] -``` - -If a player has permission for both chats, the plugin will select `admin` because it has a higher `priority` -::: - -### `trigger` - -The prefix that a message must start with to be sent to a specific chat - -::: info `trigger` VALUE CAN BE ANYTHING: -- `!`, `admin`, `.f`, etc. -- Empty, i.e., `trigger: ""`, meaning any message fits this chat - ::: - -In the final message, `trigger` is removed. For example, if a player sends `!hello`, the result will be `hello` without `!` - - - - - -[//]: # (permission.yml) - - `permission.yml → message.chat` - - -<<< @/files/permission.yml#chat - - - -### `types` - -List of chats and their permissions - - - diff --git a/pulse/en/docs/message/format/fcolor/index.md b/pulse/en/docs/message/format/fcolor/index.md deleted file mode 100644 index d6cf8b63..00000000 --- a/pulse/en/docs/message/format/fcolor/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Color - -The tag `fcolor` is used for individual color settings for each player - -Usage: `` - -![color message](/colormessage.png) - - - -[//]: # (message.yml) - - `message.yml → format.fcolor` - - -<<< @/files/message.yml#fcolor - - - -### `default_colors` - -List of all default colors used. Each number represents a specific color. By default: -- `` - primary color -- `` - highlighted primary color (e.g. for names) -- `` - local chat messages -- `` - global chat messages - -::: info EXAMPLE COLOR -```yaml -1: "" -``` -`1` - color ID for `` -To use this tag, write `` -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.fcolor` - - -<<< @/files/permission.yml#fcolor - - - -### `colors` - -Available `` variants and their required permissions \ No newline at end of file diff --git a/pulse/en/docs/message/format/fixation/index.md b/pulse/en/docs/message/format/fixation/index.md deleted file mode 100644 index 396f3f8f..00000000 --- a/pulse/en/docs/message/format/fixation/index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Fixation - -The module formats the player's message so that the first letter is capitalized, and there is a period at the end - -![fixation](/fixation.png) - -[//]: # (message.yml) - - `message.yml → format.fixation` - - -<<< @/files/message.yml#fixation - - - -### `end_dot` - -Determines whether a period will be added at the end of the message if there isn't one - -### `first_letter_uppercase` - -Determines whether the first letter of the message will always be uppercase - -### `non_dot_symbols` - -A list of symbols (can also be words) after which a period should not be added - -[//]: # (permission.yml) - - `permission.yml → message.format.fixation` - - -<<< @/files/permission.yml#fixation - - diff --git a/pulse/en/docs/message/format/index.md b/pulse/en/docs/message/format/index.md deleted file mode 100644 index 8535f7b8..00000000 --- a/pulse/en/docs/message/format/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Format - -The module responsible for formatting sent messages - -[//]: # (message.yml) - - `message.yml → format` - - -<<< @/files/message.yml#format - - - -### `convert_legacy_color` - -Enables formatting of legacy colors - - - -### `adventure_tags` - -These are [Kyori tags](https://docs.advntr.dev/minimessage/format.html#standard-tags) that may appear in messages. - -| Tag | Usage | Description | -|---------------------------|------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------| -| `` | [Hover](https://docs.advntr.dev/minimessage/format.html#hover) | Text displayed when hovering over | -| `` | [Click](https://docs.advntr.dev/minimessage/format.html#click) | Action triggered when clicked | -| `` | [Color](https://docs.advntr.dev/minimessage/format.html#color) | Color | -| `` | [Keybind](https://docs.advntr.dev/minimessage/format.html#keybind) | Key setup for the message | -| `` | [Translatable](https://docs.advntr.dev/minimessage/format.html#translatable) | Message using the player's locale | -| `` | [Translatable](https://docs.advntr.dev/minimessage/format.html#translatable) | Message with fallback translation using the player's locale | -| `` | [Insertion](https://docs.advntr.dev/minimessage/format.html#insertion) | Text insertion in chat with SHIFT | -| `` | [Font](https://docs.advntr.dev/minimessage/format.html#font) | Change font for text | -| `` | [Decoration](https://docs.advntr.dev/minimessage/format.html#decoration) | Standard Minecraft decorations `bold`, `italic`, `underlined`, `strikethrough`, `obfuscated` | -| `` | [Gradient](https://docs.advntr.dev/minimessage/format.html#gradient) | Gradient text color | -| `` | [Rainbow](https://docs.advntr.dev/minimessage/format.html#rainbow) | Rainbow-colored text | -| `` | [Reset](https://docs.advntr.dev/minimessage/format.html#reset) | Reset all tags and decorations | -| `` | [Newline](https://docs.advntr.dev/minimessage/format.html#newline) | Newline, replaces `\n` | -| `` | [Transition](https://docs.advntr.dev/minimessage/format.html#transition) | Transition between two colors | -| `` | [Selector](https://docs.advntr.dev/minimessage/format.html#selector) | Mob selector | -| `` | [Score](https://docs.advntr.dev/minimessage/format.html#score) | Team score (scoreboard) | -| `` | [NBT](https://docs.advntr.dev/minimessage/format.html#nbt) | Insertion of NBT component | -| ... | ... | ... | - -[//]: # (permission.yml) - - `permission.yml → message.format` - - -<<< @/files/permission.yml#format - - - -### `legacy_colors` - -This allows player to use legacy colors in their messages - - - -::: tip NOTE - -If you need player's chat colors to be formatted, use `flectonepulse.module.message.format.color` - -::: - -### `adventure_tags` - -List of tags and their respective permissions diff --git a/pulse/en/docs/message/format/mention/index.md b/pulse/en/docs/message/format/mention/index.md deleted file mode 100644 index 79a86995..00000000 --- a/pulse/en/docs/message/format/mention/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Mention - -::: warning WARNING - -By default, server administrators cannot be mentioned due to the `bypass` permission - -::: - -This formatting allows mentioning (pinging) a user in a message. Donation groups can also be mentioned, for example `@default` -![mention](/mention.png) - -[//]: # (localization) - - `localizations → locale.yml → message.format.mention` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mention -<<< @/files/localizations/en_us.yml#mention -::: - -### `person` - -Message to the player when mentioned - -### `format` - -Message when it is a mention of a player - -[//]: # (message.yml) - - `message.yml → format.mention` - - -<<< @/files/message.yml#mention - - - -### `trigger` - -Symbol with which the mention message should start -::: info EXAMPLE -If I want to mention `Flectone`, I should write `@Flectone` -![mention](/mention.png) -::: - -### `everyone_tag` - -The word that, when combined with the `trigger`, will mention all players on the server. To use this, you must have the `flectonepulse.module.message.format.mention.group.default` permission - - - - -[//]: # (permission.yml) - - `permission.yml → message.format.mention` - - -<<< @/files/permission.yml#mention - - - -### `group` - -Permission for mentioning a donation group, for example `@default` - -::: tip INFO - -Each group checks for its own permission `flectonepulse.module.message.format.mention.group.group_name` - -::: - -### `bypass` - -Permission to ignore mentions - - diff --git a/pulse/en/docs/message/format/moderation/caps/index.md b/pulse/en/docs/message/format/moderation/caps/index.md deleted file mode 100644 index a444fccf..00000000 --- a/pulse/en/docs/message/format/moderation/caps/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Caps - -This formatting removes caps from a message -![caps](/caps.png) - -[//]: # (message.yml) - - `message.yml → format.moderation.caps` - - -<<< @/files/message.yml#caps - -### `trigger` - -Percentage of letters that should be uppercase for the message to be modified - -::: tip HOW TO PROPERLY WRITE PERCENTAGE -`0.7` is `70%`, and `1.0` is `100%`, i.e. the whole message -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.caps` - - -<<< @/files/permission.yml#caps - - - -### `bypass` - -Permission to ignore formatting diff --git a/pulse/en/docs/message/format/moderation/delete/index.md b/pulse/en/docs/message/format/moderation/delete/index.md deleted file mode 100644 index ea3b904f..00000000 --- a/pulse/en/docs/message/format/moderation/delete/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Delete - -This formatting replaces `` and allows deleting messages in chat -![delete](/delete.gif) - -::: warning WARNING - -With a large number of players, it may cause slightly higher memory usage due to message storage. Rough estimates: 100 players = 5-10 MB - -::: - -::: warning WARNING - -This module is incompatible with the InteractiveChat plugin - -::: - -[//]: # (localization) - - `localizations → locale.yml → message.format.moderation.delete` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#delete -<<< @/files/localizations/en_us.yml#delete -::: - -### `placeholder` - -Placeholder that replaces each `` if the player has permission to delete messages (otherwise remains empty) - -### `format` - -Message format that will be sent upon deletion - -[//]: # (message.yml) - - `message.yml → format.moderation.delete` - - -<<< @/files/message.yml#delete - - - -### `history_length` - -The maximum number of messages stored in each player's chat history - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.delete` - - -<<< @/files/permission.yml#delete - - diff --git a/pulse/en/docs/message/format/moderation/flood/index.md b/pulse/en/docs/message/format/moderation/flood/index.md deleted file mode 100644 index 90cf5925..00000000 --- a/pulse/en/docs/message/format/moderation/flood/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Flood - -This formatting removes flood in the message -![caps](/caps.png) - -[//]: # (message.yml) - - `message.yml → format.moderation.flood` - - -<<< @/files/message.yml#flood - - - -### `trim_to_single` - -Whether to replace ALL flood with a single letter or word, otherwise the flood will be reduced to the limit of `max_repeated_symbols` or `max_repeated_words` - -### `max_repeated_symbols` - -Maximum number of identical letters - -### `max_repeated_words` - -Maximum number of identical words - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.flood` - - -<<< @/files/permission.yml#flood - - - -### `bypass` - -Permission to bypass the formatting \ No newline at end of file diff --git a/pulse/en/docs/message/format/moderation/index.md b/pulse/en/docs/message/format/moderation/index.md deleted file mode 100644 index a6655ab0..00000000 --- a/pulse/en/docs/message/format/moderation/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Moderation - -Module responsible for message moderation - -[//]: # (message.yml) - - `message.yml → format.moderation` - - -<<< @/files/message.yml#moderation - - - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation` - - -<<< @/files/permission.yml#moderation - - diff --git a/pulse/en/docs/message/format/moderation/newbie/index.md b/pulse/en/docs/message/format/moderation/newbie/index.md deleted file mode 100644 index b53d8d63..00000000 --- a/pulse/en/docs/message/format/moderation/newbie/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Newbie - -This module prevents new players from sending messages for a certain period of time - -::: warning WARNING - -A "newbie" is considered any player who has never been on the server before - -::: - -[//]: # (localization) - - `localizations → language.yml → message.format.moderation.newbie` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#newbie -<<< @/files/localizations/en_us.yml#newbie -::: - -### `reason` - -The reason that will be used for the mute message - -[//]: # (message.yml) - - `message.yml → format.moderation.newbie` - - -<<< @/files/message.yml#newbie - - - -### `mode` - -| Mode | Explanation | -|----------------|-------------------------------------------------------------------| -| `PLAYED_TIME` | How much time has been played on the server | -| `SINCE_JOIN` | How much time has passed since the first connection to the server | - -### `timeout` - -Duration in seconds during which new players cannot send messages - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.newbie` - - -<<< @/files/permission.yml#newbie - - - -### `bypass` - -Permission to ignore this module's restrictions \ No newline at end of file diff --git a/pulse/en/docs/message/format/moderation/swear/index.md b/pulse/en/docs/message/format/moderation/swear/index.md deleted file mode 100644 index 3a1a0e8c..00000000 --- a/pulse/en/docs/message/format/moderation/swear/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Swear - -This formatting hides the player's profanity -![swear](/swear.png) - -[//]: # (localization) - - `localizations → locale.yml → message.format.moderation.swear` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#swear -<<< @/files/localizations/en_us.yml#swear -::: - -### `symbol` - -Symbol that replaces each letter of the profanity - -[//]: # (message.yml) - - `message.yml → format.moderation.swear` - - -<<< @/files/message.yml#swear - - - -### `trigger` - -List of [regular expressions](https://javarush.com/groups/posts/regulyarnye-vyrazheniya-v-java) to identify profanity - -::: info EXAMPLE -- For ip `\\b((?:\\d{1,3}\\.){3}\\d{1,3})\\b` -- For url `(?i)\\b((https?:\\/\\/)?([\\w\\.а-яА-Я-]+\\.([a-z]{2,4}|[рР][фФ]|[уУ][кК][рР]))\\b(:\\d{2,7})?(\\/\\S+)?)` -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.swear` - - -<<< @/files/permission.yml#swear - - - -### `bypass` - -Permission to ignore formatting - -### `see` - -Permission to view the content of the forbidden word diff --git a/pulse/en/docs/message/format/names/index.md b/pulse/en/docs/message/format/names/index.md deleted file mode 100644 index 8cef8f1d..00000000 --- a/pulse/en/docs/message/format/names/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Name - -Module responsible for the player's name -![name tab](/nametab.png) -![name display](/namedisplay.png) - -[//]: # (localization) - - `localizations → locale.yml → message.format.names` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#names -<<< @/files/localizations/en_us.yml#names -::: - -### `constant` - -A message that will be formatted from the sender on the server where it was sent. It can be used in any message via `` - -::: info NOTE -If you're experiencing issues with messages on `Velocity` or `BungeeCord`, this is the solution to your problem: - -```yaml -constant: "%player_name%" -display: "" -``` -::: - -### `display` - -Responsible for the player's name -![name display](/namedisplay.png) - -### `entity` - -Responsible for the entity's name - -### `unknown` - -Responsible for unknown entity name - -### `invisible` - -Responsible for the player name when under invisibility - -[//]: # (message.yml) - - `message.yml → format.names` - - -<<< @/files/message.yml#names - - - -### `should_check_invisibility` - -Whether to check if the player is under an invisibility potion effect. If enabled, the name `invisible` will be used - -[//]: # (permission.yml) - - `permission.yml → message.format.names` - - -<<< @/files/permission.yml#names - - diff --git a/pulse/en/docs/message/format/object/index.md b/pulse/en/docs/message/format/object/index.md deleted file mode 100644 index 868c5b57..00000000 --- a/pulse/en/docs/message/format/object/index.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -authors: -- TheFaser ---- - -# Object - -::: warning WARNING - -The module will only work for players using version `1.21.9` and above. For others, it will not be displayed - -::: - -::: warning WARNING - -Heads and sprites can be colored in config files. To prevent this, you need to use a white color before them. For example: `` - -::: - -Module responsible for heads and symbols in chat -![object](/object.png) - -[//]: # (localization) - - `localizations → language.yml → message.format.object` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#object -<<< @/files/localizations/en_us.yml#object -::: - -### `default_symbol` - -Symbol for regular `` and ``, if the recipient cannot see the final object (for `` and `` this is specified manually) - -[//]: # (message.yml) - - `message.yml → format.object` - - -<<< @/files/message.yml#object - - - -### `player_head` - -Enables formatting of the `` placeholder. It can be used in different ways -- `` returns the head of the player who wrote the message -- `` returns the head of the player whose nickname was written inside -- `` returns the head of the player with the second layer disabled, whose nickname was written inside -- If the specified nickname doesn't exist, the head will have a random default skin -- `` will return the player's head or the text specified as the first argument if the recipient cannot see heads in chat. For example, `` will return Notch's head, and in the console, it will be the word `hello` - -::: tip NOTE - -The `` is already built into the `playerlistname` module by default and it only works for players who have the unofficial game. For licensed versions, the tab will be normal - -::: - -### `sprite` - -Enables formatting of the `` placeholder. It can be used in different ways -- ``, returns an icon from the `blocks` atlas, for example `` (this is the same as ``) -- ``, returns an icon from the specified atlas, for example `` -- If the sprite is specified incorrectly, it will be an unknown texture. Using a resource pack you can create your own sprites -- `` returns an sprite or the text specified as the first argument if the recipient cannot see sprites in chat. For example, `` returns the oak sprite, and in the console, it will be the word `hello` - -The easiest way to find atlas and sprite names is by using the [command /sprite](/docs/command/sprite/) -![command sprite](/commandsprite.png) - -You can also find them in the folder created using the `F3 + S` combination inside Minecraft. There, you will find `minecraft_textures_atlas_...` files in both `.txt` and `.png` formats, which you can use to locate the appropriate sprite -::: info EXAMPLE - -There is a `gui` atlas with the name `minecraft_textures_atlas_gui.png.txt`. In it you can find a line with `minecraft:container/slot x=494 y=54 w=18 h=18` - -Using these coordinates you can visually find it in the `.png` atlas (to see what it looks like). To display it inside Minecraft, you need to remove the `minecraft:` prefix - -As a result, we get `` -![object slot](/objectslot.png) - -::: - -### `need_extra_space` - -Enables adding extra space for `` and `` written in config files. No space is added in player messages - -[//]: # (permission.yml) - - `permission.yml → message.format.object` - - -<<< @/files/permission.yml#object - - \ No newline at end of file diff --git a/pulse/en/docs/message/format/questionanswer/index.md b/pulse/en/docs/message/format/questionanswer/index.md deleted file mode 100644 index 6d93a96a..00000000 --- a/pulse/en/docs/message/format/questionanswer/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Questionanswer - -Module responsible for answering a player's question -![question](/questionanswer.png) - -[//]: # (localization) - - `localizations → locale.yml → message.format.question-answer` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#questionanswer -<<< @/files/localizations/en_us.yml#questionanswer -::: - -### `questions` - -List of questions and their corresponding answers - - -[//]: # (message.yml) - - `message.yml → format.questionanswer` - - -<<< @/files/message.yml#questionanswer - - - -### `questions` - -List of questions with their settings - - - - - - -- ### `target` - -[Regular expression](https://javarush.com/groups/posts/regulyarnye-vyrazheniya-v-java) to match the question - -[//]: # (permission.yml) - - `permission.yml → message.format.question-answer` - - -<<< @/files/permission.yml#questionanswer - - - -### `questions` - -List of questions with permissions - - - diff --git a/pulse/en/docs/message/format/replacement/index.md b/pulse/en/docs/message/format/replacement/index.md deleted file mode 100644 index 646d1837..00000000 --- a/pulse/en/docs/message/format/replacement/index.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Replacement - -Used to replace triggers with specific values - -![ping](/ping.png) - - -![tps](/tps.png) - - -![online](/online.png) - - -![coords](/coords.png) - - -![stats](/stats.png) - - -![skin](/skin.png) - - -![item](/item.png) - -::: warning WARNING - -`PacketEvents` currently does not support properly displaying detailed item information on hover. The item will have an "empty" description without enchantments. To solve this issue, you can enable [use_paper_message_sender](/docs/config/module/#use_paper_message_sender), but this is a workaround - -::: - - -![url](/url.png) - - -![image](/image.png) - - -![spoiler](/spoiler.png) - - -![bold](/bold.png) - - -![italic](/italic.png) - - -![underline](/underline.png) - - -![obfuscated](/obfuscated.png) - - -![strikethrough](/strikethrough.png) - -[//]: # (localization) - - `localizations → language.yml → message.format.replacement` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#replacement -<<< @/files/localizations/en_us.yml#replacement -::: - -### `spoiler_symbol` - -Character that will replace each letter in words marked as `spoiler` - -### `values` - -A list of messages where the key is the name and the value is what will be displayed instead of the trigger - -[//]: # (message.yml) - - `message.yml → format.replacement` - - -<<< @/files/message.yml#replacement - - - -### `triggers` - -List of all available triggers where the key is the name and the value is the `trigger` itself in regex format - -::: warning WARNING - -If you're adding a new trigger, make sure to also add it to the localization file (i.e. specify what it should be replaced with) - -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.replacement` - - -<<< @/files/permission.yml#replacement - - diff --git a/pulse/en/docs/message/format/scoreboard/index.md b/pulse/en/docs/message/format/scoreboard/index.md deleted file mode 100644 index 82f85e83..00000000 --- a/pulse/en/docs/message/format/scoreboard/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Scoreboard - -Module responsible for proper `team` functionality and integration with: -- [Objectives](/docs/message/objective/) -- [Tab](/docs/message/tab/) - -::: warning WARNING -If you experience issues with `TAB` (such as sorting problems) or other plugins using `scoreboard`, you should disable this module -::: - -[//]: # (message.yml) - - `message.yml → format.scoreboard` - - -<<< @/files/message.yml#scoreboard - - - -### `name_visible` - -Enables player name display above heads - -### `color` - -Team color (if `name_visible` is enabled, names will use this color) - -### `prefix` - -Text displayed before player names - -### `suffix` - -Text displayed after player names - - - -[//]: # (permission.yml) - - `permission.yml → message.format.scoreboard` - - -<<< @/files/permission.yml#scoreboard - - \ No newline at end of file diff --git a/pulse/en/docs/message/format/translate/index.md b/pulse/en/docs/message/format/translate/index.md deleted file mode 100644 index 2b4ec1ef..00000000 --- a/pulse/en/docs/message/format/translate/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Translate - -The `translate` tag is used for translating a message into another language - -![translate](/translate.png) - -[//]: # (localization) - - `localizations → locale.yml → message.format.translate` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#translate -<<< @/files/localizations/en_us.yml#translate -::: - -### `action` - -Message for translation, which specifies the execution of a command when clicked - -[//]: # (message.yml) - - `message.yml → format.translate` - - -<<< @/files/message.yml#translate - - - -[//]: # (permission.yml) - - `permission.yml → message.format.translate` - - -<<< @/files/permission.yml#translate - - diff --git a/pulse/en/docs/message/format/world/index.md b/pulse/en/docs/message/format/world/index.md deleted file mode 100644 index c34ffdc1..00000000 --- a/pulse/en/docs/message/format/world/index.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# World - -The module responsible for the `` tag, i.e., for the world dimension color -![world tab](/worldtab.png) -![world chat](/worldchat.png) - -[//]: # (message.yml) - - `message.yml → format.world` - - -<<< @/files/message.yml#world - - - -### `mode` - -The mode for determining the world from the available options - -| Mode | Description | -|----------|-----------------------------------------------------------------------------| -| `TYPE` | The world is determined by its type name, for example, the normal world is `normal` | -| `NAME` | The world is determined by the name of its folder | - -### `values` - -List of worlds and their `` - -[//]: # (permission.yml) - - `permission.yml → message.format.world` - - -<<< @/files/permission.yml#world - - diff --git a/pulse/en/docs/message/greeting/index.md b/pulse/en/docs/message/greeting/index.md deleted file mode 100644 index 0e0330e8..00000000 --- a/pulse/en/docs/message/greeting/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Greeting - -Message from the server to the player when they connect -![greeting](/greeting.png) - -[//]: # (localization) - - `localizations → locale.yml → message.greeting` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#greeting -<<< @/files/localizations/en_us.yml#greeting -::: - -### `format` - -Personalized message to the player upon connection - -[//]: # (message.yml) - - `message.yml → greeting` - - -<<< @/files/message.yml#greeting - - - - - -[//]: # (permission.yml) - - `permission.yml → message.greeting` - - -<<< @/files/permission.yml#greeting - - - diff --git a/pulse/en/docs/message/index.md b/pulse/en/docs/message/index.md deleted file mode 100644 index 3b79be13..00000000 --- a/pulse/en/docs/message/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Messages - -Configuration of messages in `FlectonePulse` (why they appear and how) - -[//]: # (localization) - - `localizations → locale.yml` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#message -<<< @/files/localizations/en_us.yml#message -::: - -### `cooldown` - -Message displayed when used too frequently, if `cooldown` is enabled - -### `time` - -Time messages - -- #### `format` - -Time formatting ([Apache DurationFormatUtils](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html)) - -- #### `permanent` - -Time formatting if it is `-1`, i.e., forever - -- #### `zero` - -Time formatting if it equals zero - -[//]: # (message.yml) - - `message.yml` - - -<<< @/files/message.yml#message - - - -[//]: # (permission.yml) - - `permission.yml → message` - - -<<< @/files/permission.yml#message - - diff --git a/pulse/en/docs/message/join/index.md b/pulse/en/docs/message/join/index.md deleted file mode 100644 index 5eaab58c..00000000 --- a/pulse/en/docs/message/join/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Join - -Message from the server when a player connects -![join](/join.png) - -[//]: # (localization) - - `localizations → locale.yml → message.join` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#join -<<< @/files/localizations/en_us.yml#join -::: - -### `format` - -Message when connecting to the server - -### `format_first_time` - -Message when connecting to the server for the first time - -[//]: # (message.yml) - - `message.yml → join` - - -<<< @/files/message.yml#join - - - -### `first` - -Enables the message for a player's very first connection to the server - - - - - -[//]: # (permission.yml) - - `permission.yml → message.join` - - -<<< @/files/permission.yml#join - - - diff --git a/pulse/en/docs/message/objective/belowname/index.md b/pulse/en/docs/message/objective/belowname/index.md deleted file mode 100644 index bc4d96dc..00000000 --- a/pulse/en/docs/message/objective/belowname/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Belowname - -::: warning WARNING - -If the name display in the `scoreboard` module is disabled (`name_visible: false`), then the value under the nickname will not be shown. - -::: - -[ScoreBoard value](https://ru.minecraft.wiki/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D1%91%D1%82%D0%B0_%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D1%85_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9) displayed under the player's name -![below name](/belowname.png) - -[//]: # (localization) - - `localizations → язык.yml → message.belowname` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#belowname -<<< @/files/localizations/en_us.yml#belowname -::: - -### `format` - -The message that will be displayed below the nickname - -[//]: # (message.yml) - - `message.yml → objective.belowname` - - -<<< @/files/message.yml#belowname - - - -### `mode` - -Mode for displaying the value, with available options - - - -::: info EXAMPLE MODE `PING` -This will return the player's ping -![below name](/belowname.png) -::: - - - -[//]: # (permission.yml) - - `permission.yml → message.objective.belowname` - - -<<< @/files/permission.yml#belowname - - diff --git a/pulse/en/docs/message/objective/index.md b/pulse/en/docs/message/objective/index.md deleted file mode 100644 index 908cdf28..00000000 --- a/pulse/en/docs/message/objective/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Objective - -This module is responsible for [ScoreBoard values](https://ru.minecraft.wiki/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D1%91%D1%82%D0%B0_%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D1%85_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9) of the player - -[//]: # (message.yml) - - `message.yml → objective` - - -<<< @/files/message.yml#objective - - - -[//]: # (permission.yml) - - `permission.yml → message.objective` - - -<<< @/files/permission.yml#objective - - diff --git a/pulse/en/docs/message/objective/tabname/index.md b/pulse/en/docs/message/objective/tabname/index.md deleted file mode 100644 index ec5a28d0..00000000 --- a/pulse/en/docs/message/objective/tabname/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Tabname - -[ScoreBoard value](https://ru.minecraft.wiki/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D1%91%D1%82%D0%B0_%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D1%85_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9) displayed in the TAB list -![player list](/playerlist.png) - -[//]: # (localization) - - `localizations → language.yml → message.tabname` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#tabname -<<< @/files/localizations/en_us.yml#tabname -::: - -### `format` - -The message that will be shown after the nickname - -[//]: # (message.yml) - - `message.yml → objective.tabname` - - -<<< @/files/message.yml#tabname - - - -### `mode` - -Mode for displaying the value, with available options - - - -::: info EXAMPLE MODE `PING` -This will return the player's ping -![player list](/playerlist.png) -::: - - - -[//]: # (permission.yml) - - `permission.yml → message.objective.tabname` - - -<<< @/files/permission.yml#tabname - - diff --git a/pulse/en/docs/message/quit/index.md b/pulse/en/docs/message/quit/index.md deleted file mode 100644 index 7d61fd66..00000000 --- a/pulse/en/docs/message/quit/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Quit - -Message from the server when a player disconnects -![quit](/quit.png) - -[//]: # (localization) - - localizations → language.yml → message.quit - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#quit -<<< @/files/localizations/en_us.yml#quit -::: - -### format - -Message upon disconnecting from the server - -[//]: # (message.yml) - - message.yml → quit - - -<<< @/files/message.yml#quit - - - - - - -[//]: # (permission.yml) - - permission.yml → message.quit - - -<<< @/files/permission.yml#quit - - - diff --git a/pulse/en/docs/message/rightclick/index.md b/pulse/en/docs/message/rightclick/index.md deleted file mode 100644 index dc1d642b..00000000 --- a/pulse/en/docs/message/rightclick/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Right Click - -A module where **Right Click** on a player creates a message above the player's inventory -![right click](/rightclick.png) - -[//]: # (localization) - - `localizations → language.yml → message.rightclick` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#rightclick -<<< @/files/localizations/en_us.yml#rightclick -::: - -### `format` - -The message that will be sent to the player who right-clicked on another player - -[//]: # (message.yml) - - `message.yml → rightclick` - - -<<< @/files/message.yml#rightclick - - - -### `should_check_sneaking` - -Whether to check if the player is pressing shift during right-click - -### `hide_name_when_invisible` - -Whether to hide the nickname of a player who is invisible - - - - - -[//]: # (permission.yml) - - `permission.yml → message.rightclick` - - -<<< @/files/permission.yml#rightclick - - - - diff --git a/pulse/en/docs/message/sidebar/index.md b/pulse/en/docs/message/sidebar/index.md deleted file mode 100644 index 2df0bd86..00000000 --- a/pulse/en/docs/message/sidebar/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Sidebar - -Messages on the right side of the screen -![scoreboard](/scoreboard.png) - -[//]: # (localization) - - `localizations → language.yml → message.sidebar` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#sidebar -<<< @/files/localizations/en_us.yml#sidebar -::: - -### `values` - -List of messages where `- -` separates different formats - -[//]: # (message.yml) - - `message.yml → sidebar` - - -<<< @/files/message.yml#sidebar - - - - - -[//]: # (permission.yml) - - `permission.yml → message.sidebar` - - -<<< @/files/permission.yml#sidebar - - diff --git a/pulse/en/docs/message/sign/index.md b/pulse/en/docs/message/sign/index.md deleted file mode 100644 index 5b7eb19e..00000000 --- a/pulse/en/docs/message/sign/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Sign - -Module responsible for messages on the sign -![sign](/signoak.gif) - -[//]: # (message.yml) - - `message.yml → sign` - - -<<< @/files/message.yml#sign - - - -[//]: # (permission.yml) - - `permission.yml → message.sign` - - -<<< @/files/permission.yml#sign - - diff --git a/pulse/en/docs/message/status/icon/index.md b/pulse/en/docs/message/status/icon/index.md deleted file mode 100644 index 496931e6..00000000 --- a/pulse/en/docs/message/status/icon/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Icon - -Module responsible for the server image -![server icon](/servericon.png) - -[//]: # (message.yml) - - `message.yml → status.icon` - - -<<< @/files/message.yml#icon - - - -### `random` - -If enabled, the image will be selected randomly, otherwise in order - -### `values` - -`server-icon-1.png` ![server icon 1](/server-icon-1.png) - - -`server-icon-2.png` ![server icon 2](/server-icon-2.png) - -List of image names to be displayed - -::: danger IMAGE MUST -1. Be located inside the `/FlectonePulse/images/` folder -2. Have the size **ONLY** `64x64` - ::: - -[//]: # (permission.yml) - - `permission.yml → message.status.icon` - - -<<< @/files/permission.yml#icon - - diff --git a/pulse/en/docs/message/status/index.md b/pulse/en/docs/message/status/index.md deleted file mode 100644 index 9d6bab6b..00000000 --- a/pulse/en/docs/message/status/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Status - -Module responsible for everything that happens when viewing the server before connecting - -[//]: # (message.yml) - - `message.yml → status` - - -<<< @/files/message.yml#status - - - -[//]: # (permission.yml) - - `permission.yml → message.status` - - -<<< @/files/permission.yml#status - - diff --git a/pulse/en/docs/message/status/motd/index.md b/pulse/en/docs/message/status/motd/index.md deleted file mode 100644 index c4d96ad8..00000000 --- a/pulse/en/docs/message/status/motd/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# MOTD - -Module responsible for the server's welcome message -![motd](/motd.png) - -[//]: # (localization) - - `localizations → language.yml → message.status.motd` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#motd -<<< @/files/localizations/en_us.yml#motd -::: - -### `values` - -List of messages to be displayed - -[//]: # (message.yml) - - `message.yml → status.motd` - - -<<< @/files/message.yml#motd - - - - -[//]: # (permission.yml) - - `permission.yml → message.status.motd` - - -<<< @/files/permission.yml#motd - - diff --git a/pulse/en/docs/message/status/players/index.md b/pulse/en/docs/message/status/players/index.md deleted file mode 100644 index e2d0de71..00000000 --- a/pulse/en/docs/message/status/players/index.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Players - -Module responsible for the number of players on the server -![player count](/playercount.png) - -[//]: # (localization) - - `localizations → language.yml → message.status.players` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#players -<<< @/files/localizations/en_us.yml#players -::: - -### `samples` - -List of server players. The placeholder `` adds all players on the server to the list - -::: info EXAMPLES OF USAGE - -You can add any messages -```yaml -samples: - - name: "This is a Minecraft server!" - id: null - - name: "" - id: null -``` -![sample1](/sample1.png) - -or create fake players -```yaml -samples: - - name: "Notch" - id: null - - name: "" - id: null -``` -![sample2](/sample2.png) -::: - -::: warning WARNING - -Only available colors can be used - -::: - -### `full` - -Message when the server is full - -[//]: # (message.yml) - - `message.yml → status.players` - - -<<< @/files/message.yml#players - - - -### `control` - -If enabled, the player will not be allowed to join the server if the number of players exceeds the [specified](#max) amount - -### `max` - -Maximum number of players on the server - -### `online` - -Number that allows you to specify any number of online players - -::: info INFORMATION - -The number can be anything, but `-69` indicates the current online count - -::: - -[//]: # (permission.yml) - - `permission.yml → message.status.players` - - -<<< @/files/permission.yml#players - - - -### `bypass` - -Permission to connect to a full server diff --git a/pulse/en/docs/message/status/version/index.md b/pulse/en/docs/message/status/version/index.md deleted file mode 100644 index 0c22937f..00000000 --- a/pulse/en/docs/message/status/version/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Version - -Module responsible for the server version -![version](/version.png) - -[//]: # (localization) - - `localizations → locale.yml → message.status.version` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#version -<<< @/files/localizations/en_us.yml#version -::: - -### `name` - -Server version name - -[//]: # (message.yml) - - `message.yml → status.version` - - -<<< @/files/message.yml#version - - - -### `protocol` - -[Protocol](https://minecraft.wiki/w/Protocol_version) version of the server - -::: info INFORMATION - -The number can be any, but `-1` refers to the current protocol - -::: - -[//]: # (permission.yml) - - `permission.yml → message.status.version` - - -<<< @/files/permission.yml#version - - diff --git a/pulse/en/docs/message/tab/footer/index.md b/pulse/en/docs/message/tab/footer/index.md deleted file mode 100644 index 9c7adcf5..00000000 --- a/pulse/en/docs/message/tab/footer/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Footer - -Module responsible for the text at the bottom of the TAB -![footer](/footer.png) - -[//]: # (localization) - - `localizations → locale.yml → message.tab.footer` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#footer -<<< @/files/localizations/en_us.yml#footer -::: - -### `lists` - -List of messages, where `- -` separates different formats - -[//]: # (message.yml) - - `message.yml → tab.footer` - - -<<< @/files/message.yml#footer - - - - - - -[//]: # (permission.yml) - - `permission.yml → message.tab.footer` - - -<<< @/files/permission.yml#footer - - diff --git a/pulse/en/docs/message/tab/header/index.md b/pulse/en/docs/message/tab/header/index.md deleted file mode 100644 index 07b1d67e..00000000 --- a/pulse/en/docs/message/tab/header/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Header - -Module responsible for the text at the top of the TAB -![header](/header.png) - -[//]: # (localization) - - `localizations → locale.yml → message.tab.header` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#header -<<< @/files/localizations/en_us.yml#header -::: - -### `lists` - -List of messages, where `- -` separates different formats - -[//]: # (message.yml) - - `message.yml → tab.header` - - -<<< @/files/message.yml#header - - - - - - -[//]: # (permission.yml) - - `permission.yml → message.tab.header` - - -<<< @/files/permission.yml#header - - diff --git a/pulse/en/docs/message/tab/index.md b/pulse/en/docs/message/tab/index.md deleted file mode 100644 index 544a8961..00000000 --- a/pulse/en/docs/message/tab/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Tab - -Category responsible for messages in the TAB - -::: warning IMPORTANT -To ensure the TAB list is sorted based on the donor group, enable [`tab_sort`](/docs/integration/luckperms/#tab-sort) -::: - -[//]: # (message.yml) - - `message.yml → tab` - - -<<< @/files/message.yml#tab - - - -[//]: # (permission.yml) - - `permission.yml → message.tab` - - -<<< @/files/permission.yml#tab - - diff --git a/pulse/en/docs/message/tab/playerlistname/index.md b/pulse/en/docs/message/tab/playerlistname/index.md deleted file mode 100644 index 622b076f..00000000 --- a/pulse/en/docs/message/tab/playerlistname/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -authors: - - TheFaser - - Stokmenn ---- - -# Playerlistname - -Module responsible for the player's name in the TAB -![player list name](/playerlistname.png) - -[//]: # (localization) - - `localizations → locale.yml → message.tab.playerlistname` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#playerlistname -<<< @/files/localizations/en_us.yml#playerlistname -::: - -### `format` - -Message in the TAB list - -[//]: # (message.yml) - - `message.yml → tab.playerlistname` - - -<<< @/files/message.yml#playerlistname - - - -### `proxy_mode` - -If enabled, players on different servers will be synchronized in one TAB. This requires enabling proxy mode in `FlectonePulse` - -::: warning WARNING -1. This works on versions 1.19.4 and above -2. Between servers, players won't be able to see each other's ping in TAB (it will always be -1 if the player is on another server) -3. For correct skin display, SkinsRestorer in proxy mode is required -::: - - - -[//]: # (permission.yml) - - `permission.yml → message.tab.playerlistname` - - -<<< @/files/permission.yml#playerlistname - - diff --git a/pulse/en/docs/message/update/index.md b/pulse/en/docs/message/update/index.md deleted file mode 100644 index 2eb7bc09..00000000 --- a/pulse/en/docs/message/update/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Update - -Notification about a new `FlectonePulse` version release. Only sent to admins and console -![update](/update.png) - -[//]: # (localization) - - `localizations → language.yml → message.update` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#update -<<< @/files/localizations/en_us.yml#update -::: - -### `format_player` - -The message displayed to admin players - -### `format_console` - -The message displayed in the console - -[//]: # (message.yml) - - `message.yml → update` - - -<<< @/files/message.yml#update - - - - - -[//]: # (permission.yml) - - `permission.yml → message.update` - - -<<< @/files/permission.yml#update - - - \ No newline at end of file diff --git a/pulse/en/docs/message/vanilla/index.md b/pulse/en/docs/message/vanilla/index.md deleted file mode 100644 index d7b4d715..00000000 --- a/pulse/en/docs/message/vanilla/index.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -authors: -- TheFaser ---- - -# Vanilla - -Any message from the server that a player receives -![death server](/deathserver.png) \ -![task](/task.png)\ -![weather](/weather.png)\ -![debugstick](/debugstick.png) - -## Potential issues with - -### `Advancements` - -Check and enable the game rule for sending advancements using `/gamerule announceAdvancements true` - -### `Blaze and Caves` - -For `Blaze and Caves` advancements to display correctly, you need to enable vanilla advancement display in it -![advancement1](/advancement1.png)\ -![advancement2](/advancement2.png)\ -![advancement3](/advancement3.png) - -### `Commands` - -Check and enable the game rule for sending command feedback using `/gamerule sendCommandFeedback true` - - -[//]: # (localization) - - `localizations → language.yml → message.vanilla` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#vanilla -<<< @/files/localizations/en_us.yml#vanilla -::: - -### `format_player` - -Format for displaying players in arguments - -### `format_entity` - -Format for displaying mobs in arguments - -### `types` - -List of messages where the key is the translation key - -::: tip YOU CAN ADD ANY MESSAGE -1. Take the command `/random roll 1..100` - -![roll 1](/roll_1.png) - -2. Its translation key will be `commands.random.roll`, which can be viewed on [this site](https://mcasset.cloud/1.21.8/assets/minecraft/lang/en_us.json) - -![roll 2](/roll_2.png) - -3. Write this key in `types`, replacing each `%s` argument with ``, ``, etc. - -```yaml -types: - commands.random.roll: " rolled (from to )" -``` - -4. After reloading with `/flectonepuse reload`, the message will be changed as we made it - -![roll 3](/roll_3.png) - -::: - -::: info INFO - -- `` returns the argument's internal text -- `` returns the argument's internal text without the `[]` brackets -- `` returns the argument's internal style -- `` returns the main internal hover text component -- `` returns the `another_number` internal hover text component -- `` returns the hover component's style -- If the message has no arguments, `` does not need to be written -- If the message does not have the argument specified, for example ``, it will be replaced with an empty string -- Arguments always follow the order specified in Minecraft's English localization. When adding another localization, the same argument order as in English must be used, but they can be rearranged. For example, `` can come before ``, this is not a problem - -For example, to configure an advancement message you can do this: `🌠 -> «» - ` - -![advancement showcase](/argument_showcase.png) - -::: - -[//]: # (message.yml) - - `message.yml → vanilla` - - -<<< @/files/message.yml#vanilla - - - -### `types` - -List of message groups that are united by some common feature. Each parameter inside is optional - -::::: details GROUP CONFIGURATION - -#### `multi_message` - -Whether this message is global for everyone. If enabled, it will be sent once from the sender, and all other messages will be canceled. This is not visually noticeable, but is used for proper integration with `Proxy` and external services. - -::: info EXAMPLE - -The message about receiving an advancement is sent to each player separately. If you enable `multi_message`, the message will be sent when the player who received the advancement receives the advancement message. Then this message will be sent to everyone on their behalf, allowing it to be correctly sent to `Proxy` and integrations - -::: - -#### `name` - -Group name in uppercase. Used to specify these messages in integrations (e.g., in `Discord`) and in `/chatsetting` to enable/disable display - - - - - -::::: - -[//]: # (permission.yml) - - `permission.yml → message.vanilla` - - -<<< @/files/permission.yml#vanilla - - - \ No newline at end of file diff --git a/pulse/en/index.md b/pulse/en/index.md deleted file mode 100644 index 06a50782..00000000 --- a/pulse/en/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: home - -hero: - name: "FlectonePulse" - tagline: Every message under your control! - image: - src: /platforms.svg - actions: - - theme: brand - text: Technical support - link: https://boosty.to/thefaser - - theme: alt - text: Documentation - link: /docs/ - - theme: alt - text: Download - link: https://modrinth.com/plugin/flectonepulse/versions/ - -features: - - icon: - width: 290 - src: /caps.png - title: Customization of multiple messages - details: Customize almost any message that your player sees. Any FlectonePulse action can be disabled - link: /docs/message/ - - icon: - width: 500 - src: /commandtictactoe.png - title: Over 30 interesting commands - details: Make the chat more user-friendly. Players will also be able to use built-in mini-games - link: /docs/command/ - - icon: - width: 500 - src: /discordmessage.png - title: Integration with other projects - details: Allow players to communicate across different platforms. Full integrations with Discord, Twitch, and Telegram - link: /docs/integration/ ---- - -
-
-
-
- -
- -
-
-
-
- - -
\ No newline at end of file diff --git a/pulse/en/metrics/index.md b/pulse/en/metrics/index.md deleted file mode 100644 index f95330c5..00000000 --- a/pulse/en/metrics/index.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -title: "Metrics" -authors: - - TheFaser ---- - - - - - -
- - -
{{ overlayCaption }}
-
- -# Server Analytics - -This page contains key graphs about server operations: -which versions are being used, memory consumption, -active modules, server distribution, -enabled modes, and player activity over recent days. -Click on any image to view it in larger size. - -::: tip NOTE -You can disable this data collection for your server at any time [here](/docs/config#metrics) -::: - -
- -
- Main Time Series -

Activity (7 days)

-
- -
- Server Versions -

Server versions

-
- -
- Core Counts -

CPU core count

-
- -
- RAM Usage -

RAM usage

-
- -
- Modules Status -

Module status

-
- -
- Project Versions -

FlectonePulse versions

-
- -
- Project Languages -

FlectonePulse languages

-
- -
- Server Types -

Server types

-
- -
- System Architectures -

System architecture

-
- -
- Operating Systems -

Operating systems

-
- -
- Java Versions -

Java versions

-
- -
- Proxy Modes -

Proxy modes

-
- -
- Online Mode -

Online / offline

-
- -
- Server Locations -

Server geography

-
- -
- Database Modes -

Database modes

-
- -
\ No newline at end of file diff --git a/pulse/en/package.json b/pulse/en/package.json deleted file mode 100644 index 33a91ca2..00000000 --- a/pulse/en/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "devDependencies": { - "vitepress": "2.0.0-alpha.4" - }, - "scripts": { - "docs:dev": "vitepress dev", - "docs:build": "vitepress build", - "docs:preview": "vitepress preview" - }, - "dependencies": { - "@nolebase/vitepress-plugin-enhanced-readabilities": "^2.16.0", - "@nolebase/vitepress-plugin-inline-link-preview": "^2.16.0", - "vitepress-sidebar": "^1.31.1" - } -} diff --git a/pulse/en/parts/aliases.md b/pulse/en/parts/aliases.md deleted file mode 100644 index 5b81db7b..00000000 --- a/pulse/en/parts/aliases.md +++ /dev/null @@ -1,7 +0,0 @@ -### `aliases` - -List of aliases for using the command - -::: info ALIASES CAN BE ANYTHING -For example, `newcommand`, `новаякоманда`, `ban`, `me`, etc. -::: \ No newline at end of file diff --git a/pulse/en/parts/color.md b/pulse/en/parts/color.md deleted file mode 100644 index fcdd09bd..00000000 --- a/pulse/en/parts/color.md +++ /dev/null @@ -1,19 +0,0 @@ - -| Color | -|----------------| -| `AQUA` | -| `BLACK` | -| `BLUE` | -| `DARK_AQUA` | -| `DARK_BLUE` | -| `DARK_GRAY` | -| `DARK_GREEN` | -| `DARK_PURPLE` | -| `DARK_RED` | -| `GOLD` | -| `GRAY` | -| `GREEN` | -| `RED` | -| `LIGHT_PURPLE` | -| `WHITE` | -| `YELLOW` | \ No newline at end of file diff --git a/pulse/en/parts/cooldown.md b/pulse/en/parts/cooldown.md deleted file mode 100644 index 964f42dc..00000000 --- a/pulse/en/parts/cooldown.md +++ /dev/null @@ -1,21 +0,0 @@ -### `cooldown` - -::: details Usage cooldown - -How to use? - -Replace `false` with `true` and restart `FlectonePulse` using the `/flectonepulse reload` command. Additional cooldown settings will appear AUTOMATICALLY - -The cooldown configuration will look like this: -```yaml -cooldown: - enable: true - duration: 60 -``` - -| Field | Type | Explanation | -|-------------|------------|---------------------------------------------------------------------------------| -| `enable` | `boolean` | Enables the cooldown functionality | -| `duration` | `long` | How many [ticks](https://minecraft.fandom.com/wiki/Tick) must pass between uses | - -::: \ No newline at end of file diff --git a/pulse/en/parts/destination.md b/pulse/en/parts/destination.md deleted file mode 100644 index 90bc5fc7..00000000 --- a/pulse/en/parts/destination.md +++ /dev/null @@ -1,211 +0,0 @@ -### `destination` - -::::: details Where the message will be sent - -| Type | Explanation | Requires additional setup? | -|----------------|--------------------------------------------------|----------------------------| -| `ACTION_BAR` | Message above the player's inventory | Yes | -| `BOSS_BAR` | Message at the top of the screen | Yes | -| `BRAND` | Message in the F3 menu | No | -| `CHAT` | Message in the chat | No | -| `TEXT_SCREEN` | Message anywhere on the screen | Yes | -| `TITLE` | Full-screen message | Yes | -| `SUBTITLE` | Full-screen message (bottom line) | Yes | -| `TAB_HEADER` | Message in the TAB list (top) | No | -| `TAB_FOOTER` | Message in the TAB list (bottom) | No | -| `TOAST` | Message in the top right corner (achievement) | Yes | - -To change this, replace the value `type: here` and restart `FlectonePulse` using the command `/flectonepulse reload`. Additional settings will appear AUTOMATICALLY. - -
- -#### `ACTION_BAR` -![action bar](/destinationaction_bar.png) - -```yaml -destination: - type: "ACTION_BAR" - times: - stay: 60 -``` - -#### - `times` - -| Field | Explanation | -|----------|-------------------------------------------| -| `stay` | Time in ticks to keep the message visible | - -
- -#### `BOSS_BAR` - -![action bar](/destinationboss_bar.png) - -```yaml -destination: - type: "BOSS_BAR" - duration: 100 - health: 1.0 - overlay: "PROGRESS" - color: "BLUE" - play_boos_music: false - create_world_fog: false - darken_screen: false -``` - -#### - `duration` - -Duration for displaying the message. - -#### - `health` - -How full the boss bar will be. - -#### - `overlay` - -| Type | Explanation | -|---------------|---------------------------------| -| `PROGRESS` | A single line | -| `NOTCHED_6` | Divided into 6 parts | -| `NOTCHED_10` | Divided into 10 parts | -| `NOTCHED_12` | Divided into 12 parts | -| `NOTCHED_20` | Divided into 20 parts | - -#### - `color` - -Display color. - -| Type | -|----------| -| `PINK` | -| `BLUE` | -| `RED` | -| `GREEN` | -| `YELLOW` | -| `PURPLE` | -| `WHITE` | - -#### - `play_boos_music` - -Whether to play boss music with the message - -#### - `create_world_fog` - -Whether to create world fog with the message - -#### - `darken_screen` - -Whether to darken the screen with the message - -
- -#### `TEXT_SCREEN` -![text screen](/destinationtext_screen.png) - -::: warning WARNING - -This only works on version 1.19.4 and above. On older versions, `CHAT` will be used instead - -::: - -```yaml -destination: - type: "TEXT_SCREEN" - background: "#00000040" - has_shadow: false - animation_time: 2 - live_time: 10 - width: 100000 - scale: 0.5 - offset_x: 0.0 - offset_y: -0.3 - offset_z: -0.8 -``` - -#### - `background` - -The background color of the message, which includes transparency (alpha channel). [Website for choosing a color](https://rgbacolorpicker.com/color-wheel-picker) - -#### - `has_shadow` - -Enables text shadow - -#### `see_through` - -Enables text transparency against water and clouds (so you cannot see through water) - -#### - `animation_time` - -Time in seconds for the appearance and disappearance animations. If set to 0 or less, there will be no animation - -#### - `live_time` - -Time in seconds for the text to be displayed. If set to 0 or less, the text won't appear - -#### - `width` - -Text length per line in pixels. If the text is longer, it will wrap to the next line - -#### - `scale` - -Text size. If negative, the text will be flipped - -#### - `offset_x` - -Offset along the X coordinate (right +, left -) relative to the center of the player's screen - -#### - `offset_y` - -Offset along the Y coordinate (up +, down -) relative to the center of the player's screen - -#### - `offset_z` - -Offset along the Z coordinate (forward +, backward -) relative to the center of the player's screen - -
- -#### `TITLE` (or `SUBTITLE`) -![title](/destinationtitle.png) - -```yaml -destination: - type: "TITLE" (or "SUBTITLE") - subtext: "" - times: - fade_in: 20 - stay: 60 - fade_out: 20 -``` - -#### - `subtext` - -Message for the second part of the display. For example, if `TITLE` is selected, `subtext` will be shown below it, and vice versa - -#### - `times` - -| Field | Explanation | -|------------|---------------------------------------------| -| `fade_in` | Time in ticks for the message to appear | -| `stay` | Time in ticks to keep the message visible | -| `fade_out` | Time in ticks for the message to disappear | - -
- -#### `TOAST` -![toast](/destinationtoast.png) -```yaml -destination: - type: "TOAST" - icon: "minecraft:diamond" - style: "TASK" -``` - -#### - `icon` - -Achievement icon, which can be any Minecraft item (must specify the full path) - -#### - `style` - -Achievement type (`TASK` regular, `GOAL` goal, `CHALLENGE` challenge) - -::::: \ No newline at end of file diff --git a/pulse/en/parts/fcolor.md b/pulse/en/parts/fcolor.md deleted file mode 100644 index 9a028184..00000000 --- a/pulse/en/parts/fcolor.md +++ /dev/null @@ -1,16 +0,0 @@ -::: info HOW DOES `` WORK? - -`` is a placeholder that gets replaced with values from [`default_colors`](/docs/message/format/fcolor/#default-colors) or, if the player has their own, with the player's colors. - -The value of `` can be anything, but the command only allows colors in any format and ``. There can be as many of these values as needed, with the maximum being the highest digit from [`default_colors`](/docs/message/format/fcolor/#default-colors). - -Each digit represents a specific color. By default: `` is used for the primary color, `` for the primary color with highlighting (e.g., names), `` for messages in local chat, and `` for messages in global chat. - -`` has several states. By default, it's `see`—colors that the player will see for ALL messages ONLY for themselves, unless replaced by `out`—colors that ALL players will see for THIS player's messages (i.e., the personal colors of this specific player). - -Still confused? There's an explanation in the image below, or here's an example: A player enters the command `/chatcolor see red red red red`. This means the player sees all messages in red for themselves, but other players see messages according to their own settings. Now, suppose the player writes `/chatcolor out green green green green`. This means all messages from this player will be green for both them and other players. It's important to understand that `out` overrides colors from `see` if they exist, meaning the player will also see other messages in green for themselves. - -For beginners: `see` is for personalizing YOUR OWN colors, while `out` is for colors that OTHER players will see. - -![fcolor](/fcolor.png) -::: \ No newline at end of file diff --git a/pulse/en/parts/legacyColors.md b/pulse/en/parts/legacyColors.md deleted file mode 100644 index 15e6fbea..00000000 --- a/pulse/en/parts/legacyColors.md +++ /dev/null @@ -1,6 +0,0 @@ -| **Input Color** | **Converted to** | -|-------------------------------------------------------|---------------------------------------------------------------| -| `&0`-`&9`, `&a`-`&f` | ``, `` ... `` | -| `&l`/`&m`/`&n`/`&o`/`&k`/`&r` | `` / `` / `` / `` / `` / `` | -| `&#rrggbb`, `#rrggbb`, `&x&r&r&g&g&b&b`, `<##rrggbb>` | `<#rrggbb>` | -| MiniMessage Tags | ``, ``, ``, ``, etc. | \ No newline at end of file diff --git a/pulse/en/parts/messageTag.md b/pulse/en/parts/messageTag.md deleted file mode 100644 index 45669b0b..00000000 --- a/pulse/en/parts/messageTag.md +++ /dev/null @@ -1,38 +0,0 @@ -#### Message Types - -| Type | Explanation | -|-------------------------------|----------------------------------------------| -| `CHAT_GLOBAL` | `global` chat message | -| `CHAT_LOCAL` | `local` chat message | -| `AFK` | Message from the `afk` action | -| `ADVANCEMENT` | Achievement message | -| `DEATH` | Death message | -| `JOIN` | Message when a player joins the server | -| `QUIT` | Message when a player leaves the server | -| `FROM_DISCORD_TO_MINECRAFT` | Message from Discord to Minecraft | -| `FROM_TWITCH_TO_MINECRAFT` | Message from Twitch to Minecraft | -| `FROM_TELEGRAM_TO_MINECRAFT` | Message from Telegram to Minecraft | -| `COMMAND_ME` | Message from the `/me` command | -| `COMMAND_BALL` | Message from the `/ball` command | -| `COMMAND_BAN` | Message from the `/ban` command | -| `COMMAND_BROADCAST` | Message from the `/broadcast` command | -| `COMMAND_COIN` | Message from the `/coin` command | -| `COMMAND_DICE` | Message from the `/dice` command | -| `COMMAND_DO` | Message from the `/do` command | -| `COMMAND_HELPER` | Message from the `/helper` command | -| `COMMAND_MUTE` | Message from the `/mute` command | -| `COMMAND_POLL_CREATE_MESSAGE` | Message from the `/poll` command | -| `COMMAND_SPY` | Player messages tracking for `/spy` command | -| `COMMAND_STREAM` | Message from the `/stream` command | -| `COMMAND_TRANSLATETO` | Message from the `/translateto` command | -| `COMMAND_TRY` | Message from the `/try` command | -| `COMMAND_WARN` | Message from the `/warn` command | -| `COMMAND_KICK` | Message from the `/kick` command | -| `SERVER_ENABLE` | Message when the server starts | -| `SERVER_DISABLE` | Message when the server shuts down | - -::: info NOTE - -If you have custom chats with their own names, for example `admin`, you will need to specify `CHAT_ADMIN`. If you have custom groups from the `vanilla` module, you need to specify their name - -::: \ No newline at end of file diff --git a/pulse/en/parts/objective.md b/pulse/en/parts/objective.md deleted file mode 100644 index 987f191a..00000000 --- a/pulse/en/parts/objective.md +++ /dev/null @@ -1,8 +0,0 @@ -| Mode | What it returns | -|----------|--------------------------------------| -| `HEALTH` | Current player's HP value | -| `LEVEL` | Current player's level value | -| `FOOD` | Current player's saturation value | -| `PING` | Current player's ping | -| `ARMOR` | Current player's armor value | -| `ATTACK` | Current player's attack damage value | \ No newline at end of file diff --git a/pulse/en/parts/perPage.md b/pulse/en/parts/perPage.md deleted file mode 100644 index fbc9ff9a..00000000 --- a/pulse/en/parts/perPage.md +++ /dev/null @@ -1,3 +0,0 @@ -### `per_page` - -Number of components per page \ No newline at end of file diff --git a/pulse/en/parts/permission/cooldown.md b/pulse/en/parts/permission/cooldown.md deleted file mode 100644 index d8227074..00000000 --- a/pulse/en/parts/permission/cooldown.md +++ /dev/null @@ -1,3 +0,0 @@ -### `cooldown_bypass` - -Permission to bypass the cooldown between uses \ No newline at end of file diff --git a/pulse/en/parts/permission/other.md b/pulse/en/parts/permission/other.md deleted file mode 100644 index 246e6935..00000000 --- a/pulse/en/parts/permission/other.md +++ /dev/null @@ -1,3 +0,0 @@ -### `other` - -Permission to use on another player \ No newline at end of file diff --git a/pulse/en/parts/permission/permissionTier3.md b/pulse/en/parts/permission/permissionTier3.md deleted file mode 100644 index 550d3b0f..00000000 --- a/pulse/en/parts/permission/permissionTier3.md +++ /dev/null @@ -1,14 +0,0 @@ -### `name` - -Permission name - -### `type` - -Permission type - -| Type | Explanation | -|-----------|-----------------------------------------------------------------------------| -| `TRUE` | Available to any player | -| `FALSE` | Not available to anyone, must be granted separately (e.g., using LuckPerms) | -| `OP` | Available to server operators | -| `NOT_OP` | Available to not server operators | \ No newline at end of file diff --git a/pulse/en/parts/permission/permissionTier4.md b/pulse/en/parts/permission/permissionTier4.md deleted file mode 100644 index 2e7a09cf..00000000 --- a/pulse/en/parts/permission/permissionTier4.md +++ /dev/null @@ -1,14 +0,0 @@ -#### `name` - -Permission name - -#### `type` - -Permission type - -| Type | Explanation | -|-----------|-----------------------------------------------------------------------------| -| `TRUE` | Available to any player | -| `FALSE` | Not available to anyone, must be granted separately (e.g., using LuckPerms) | -| `OP` | Available to server operators | -| `NOT_OP` | Available to not server operators | \ No newline at end of file diff --git a/pulse/en/parts/permission/sound.md b/pulse/en/parts/permission/sound.md deleted file mode 100644 index 6daa5955..00000000 --- a/pulse/en/parts/permission/sound.md +++ /dev/null @@ -1,3 +0,0 @@ -### `sound` - -Permission to use sound \ No newline at end of file diff --git a/pulse/en/parts/random.md b/pulse/en/parts/random.md deleted file mode 100644 index e0e9f3a0..00000000 --- a/pulse/en/parts/random.md +++ /dev/null @@ -1,3 +0,0 @@ -### `random` - -If enabled, messages will be selected randomly; otherwise, they will be selected in order \ No newline at end of file diff --git a/pulse/en/parts/range.md b/pulse/en/parts/range.md deleted file mode 100644 index c2bf4cd1..00000000 --- a/pulse/en/parts/range.md +++ /dev/null @@ -1,14 +0,0 @@ -### `range` - -::: details How far in blocks the message will be displayed - -| Value | Explanation | -|--------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `WORLD_TYPE` | The message will only be sent to players who have the permission `flectonepulse.world.type.dimension_name` | -| `WORLD_NAME` | The message will only be sent to players who have the permission `flectonepulse.world.name.world_folder_name` | -| `PROXY` | The message will be sent to all players on the server and on [Proxy](/docs/config/#bungeecord) | -| `SERVER` | The message will be sent to all players on the server | -| `PLAYER` | The message will only be sent to the sender | -| Any number greater than `0` (e.g., `range: 100`) | The message will be sent to players whose distance from the sender is **less** than this number. Players must also be in the same world as the sender | - -::: \ No newline at end of file diff --git a/pulse/en/parts/sound.md b/pulse/en/parts/sound.md deleted file mode 100644 index 550e9455..00000000 --- a/pulse/en/parts/sound.md +++ /dev/null @@ -1,26 +0,0 @@ -### `sound` - -::: details Sound playback - -How to use? - -Replace `false` with `true` and restart `FlectonePulse` using the `/flectonepulse reload` command. Additional sound settings will appear AUTOMATICALLY - -```yaml -sound: - enable: true - volume: 1.0 - pitch: 1.0 - category: "HOSTILE" - name: "minecraft:entity.llama.spit" -``` - -| Field | Type | Explanation | -|-------------|------------|--------------------------------------------------------------------------------------------------------------------| -| `enable` | `boolean` | Enables sound functionality | -| `volume` | `float` | Sound volume from `0` to `1.0` | -| `pitch` | `float` | Sound pitch from `0` to `1.0` | -| `category` | `String` | Category from `MASTER`, `MUSIC`, `RECORD`, `WEATHER`, `BLOCK`, `HOSTILE`, `NEUTRAL`, `PLAYER`, `AMBIENT`, `VOICE` | -| `name` | `String` | Sound name, for example `minecraft:entity.llama.spit` | - -::: \ No newline at end of file diff --git a/pulse/en/parts/suggestOfflinePlayers.md b/pulse/en/parts/suggestOfflinePlayers.md deleted file mode 100644 index ad9dc01e..00000000 --- a/pulse/en/parts/suggestOfflinePlayers.md +++ /dev/null @@ -1,6 +0,0 @@ -### `suggest_offline_players` - -If enabled, it suggests all player nicknames who have been on the server; otherwise, only nicknames of players who are online. -::: info NOTE -This only affects text suggestions -::: \ No newline at end of file diff --git a/pulse/en/parts/ticker.md b/pulse/en/parts/ticker.md deleted file mode 100644 index 7d9f7316..00000000 --- a/pulse/en/parts/ticker.md +++ /dev/null @@ -1,15 +0,0 @@ -### `ticker` - -Updates every certain interval of time - -::: info HOW TO USE TICKER? -Change false to true and restart FlectonePulse using the /flectonepulse reload command. Additional ticker settings will appear AUTOMATICALLY - -#### `enable` - -Whether to update or not - -#### `period` - -How often in [ticks](https://minecraft.fandom.com/wiki/Tick) it should update -::: \ No newline at end of file diff --git a/pulse/en/parts/vanillaWarn.md b/pulse/en/parts/vanillaWarn.md deleted file mode 100644 index 167c96ae..00000000 --- a/pulse/en/parts/vanillaWarn.md +++ /dev/null @@ -1,15 +0,0 @@ - -::: warning WARNING - -This is not a new message added by FlectonePulse. This is a modification (customization) of messages that are displayed by Minecraft itself - -::: - - - -::: warning WARNING - -This is not a new command added by FlectonePulse. This is a modification (customization) of messages that are displayed when using a vanilla Minecraft command - -::: - \ No newline at end of file diff --git a/pulse/en/parts/words.md b/pulse/en/parts/words.md deleted file mode 100644 index 13d07c9c..00000000 --- a/pulse/en/parts/words.md +++ /dev/null @@ -1,19 +0,0 @@ - -**Path** - - - -## 🌍 Localization - - - -## ⚙️ Setting - - - -## 🔐 Permissions - - - -### `Default` - \ No newline at end of file diff --git a/pulse/en/scripts/region.py b/pulse/en/scripts/region.py deleted file mode 100644 index d94f39a0..00000000 --- a/pulse/en/scripts/region.py +++ /dev/null @@ -1,36 +0,0 @@ -import yaml -import re -import sys - -def process_yaml_with_regions(input_file, output_file): - with open(input_file, "r", encoding="utf-8") as f: - lines = f.readlines() - - output_lines = [] - current_region = None - - for i, line in enumerate(lines): - match = re.match(r'# https://.*/([^/]+)/$', line.strip()) - if match: - if current_region: - output_lines.append(f"#endregion {current_region}\n") - current_region = match.group(1) - output_lines.append(f"#region {current_region}\n") - continue - - output_lines.append(line) - - if current_region: - output_lines.append(f"#endregion {current_region}\n") - - with open(output_file, "w", encoding="utf-8") as f: - f.writelines(output_lines) - -if __name__ == "__main__": - if len(sys.argv) != 3: - print("Использование: python script.py input.yml output.yml") - sys.exit(1) - - input_file = sys.argv[1] - output_file = sys.argv[2] - process_yaml_with_regions(input_file, output_file) \ No newline at end of file diff --git a/pulse/ru/.vitepress/config.mts b/pulse/ru/.vitepress/config.mts deleted file mode 100644 index 842dc3d0..00000000 --- a/pulse/ru/.vitepress/config.mts +++ /dev/null @@ -1,179 +0,0 @@ -import {defineConfig} from 'vitepress' -import {generateSidebar} from 'vitepress-sidebar' - -import {InlineLinkPreviewElementTransform} from '@nolebase/vitepress-plugin-inline-link-preview/markdown-it' - -const modrinth = '' -const boosty = '' - -export default defineConfig({ - vite: { - plugins: [ - { - name: 'api-to-string', - enforce: 'pre', - - resolveId(id) { - if (/^\/api\//.test(id) && !id.endsWith('.md')) { - return id - } - return null - }, - - load(id) { - if (/^\/api\//.test(id) && !id.endsWith('.md')) { - return `export default ${JSON.stringify(id)};` - } - return null - } - }, - ], - optimizeDeps: { - exclude: [ - '@nolebase/vitepress-plugin-enhanced-readabilities/client', - 'vitepress', - '@nolebase/ui', - '@nolebase/vitepress-plugin-inline-link-preview/client', - - ], - }, - ssr: { - noExternal: [ - '@nolebase/vitepress-plugin-enhanced-readabilities', - '@nolebase/ui', - '@nolebase/vitepress-plugin-inline-link-preview', - ], - }, - }, - - lang: "ru-RU", - base: '/pulse/', - title: "FlectonePulse", - description: "Каждое сообщение под вашим контролем!", - lastUpdated: true, - ignoreDeadLinks: true, - cleanUrls: true, - metaChunk: true, - - head: [ - ['link', { rel: "apple-touch-icon", sizes: "180x180", href: "/assets/favicons/apple-touch-icon.png"}], - ['link', { rel: "icon", type: "image/png", sizes: "32x32", href: "/assets/favicons/favicon-32x32.png"}], - ['link', { rel: "icon", type: "image/png", sizes: "16x16", href: "/assets/favicons/favicon-16x16.png"}], - ['link', { rel: "manifest", href: "/assets/favicons/site.webmanifest"}], - ['link', { rel: "shortcut icon", href: "/assets/favicons/favicon.ico"}], - ['meta', { property: 'og:title', content: 'FlectonePulse' }], - ['meta', { property: 'og:description', content: 'Каждое сообщение под вашим контролем!' }], - ['meta', { property: 'og:type', content: 'website' }], - ['meta', { property: 'og:url', content: 'https://flectone.net/pulse/' }], - ['meta', { property: 'og:image', content: '/assets/favicons/favicon.ico' }] - ], - - themeConfig: { - logo: '/logo.png', - socialLinks: [ - { - icon: { svg: boosty }, - link: 'https://boosty.to/thefaser', - ariaLabel: 'Boosty', - }, - { icon: 'github', link: 'https://github.com/flectone/FlectonePulse' }, - { - icon: { svg: modrinth }, - link: 'https://modrinth.com/plugin/flectonepulse', - ariaLabel: 'Modrinth', - }, - { icon: 'discord', link: 'https://discord.flectone.net' }, - ], - - nav: [ - { text: 'Документация', link: '/docs/' }, - { text: 'Аналитика', link: '/metrics/' }, - { text: 'API', link: '/api/' }, - { - text: 'Языки', - items: [ - { text: "Русский", link: 'https://flectone.net/pulse/'}, - { text: "English", link: 'https://flectone.net/en/pulse/'} - ] - }, - ], - - lastUpdated: { - text: 'Обновлено' - }, - outline: { - label: "Содержание страницы", - level: [2, 3] - }, - - docFooter: { - prev: 'Предыдущая страница', - next: 'Следующая страница' - }, - - darkModeSwitchLabel: 'Оформление', - darkModeSwitchTitle: "Переключить на тёмную тему", - lightModeSwitchTitle: "Переключить на светлую тему", - sidebarMenuLabel: 'Меню', - returnToTopLabel: 'Вернуться к началу', - langMenuLabel: 'Изменить язык', - editLink: { - pattern: 'https://github.com/Flectone/FlectonePulseWeb/edit/master/pulse/ru/:path', - text: 'Редактировать эту страницу на GitHub' - }, - - search: { - provider: 'local', - options: { - translations: { - button: { - buttonText: 'Поиск', - buttonAriaLabel: 'Поиск' - }, - modal: { - displayDetails: 'Отобразить подробный список', - resetButtonTitle: 'Сбросить поиск', - backButtonTitle: 'Закрыть поиск', - noResultsText: 'Нет результатов по запросу', - footer: { - selectText: 'выбрать', - selectKeyAriaLabel: 'выбрать', - navigateText: 'перейти', - navigateUpKeyAriaLabel: 'стрелка вверх', - navigateDownKeyAriaLabel: 'стрелка вниз', - closeText: 'закрыть', - closeKeyAriaLabel: 'esc' - } - } - } - }, - }, - - notFound: { - title: 'СТРАНИЦА НЕ НАЙДЕНА', - quote: 'Но если вы не измените направление и продолжите искать, вы можете оказаться там, куда направляетесь.', - linkLabel: 'вернуться на главную', - linkText: 'Вернуться на главную', - code: '404' - }, - - sidebar: generateSidebar({ - collapseDepth: 1, - capitalizeFirst: true, - - useTitleFromFileHeading: true, - useFolderTitleFromIndexFile: true, - useFolderLinkFromIndexFile: true, - useTitleFromFrontmatter: true, - - sortMenusByFrontmatterOrder: true, - excludePattern: ['parts/'] - }), - }, - - markdown: { - config(md) { - md.use(InlineLinkPreviewElementTransform) - } - }, -}) diff --git a/pulse/ru/.vitepress/theme/author/PageAuthors.vue b/pulse/ru/.vitepress/theme/author/PageAuthors.vue deleted file mode 100644 index 61ff0754..00000000 --- a/pulse/ru/.vitepress/theme/author/PageAuthors.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/pulse/ru/.vitepress/theme/index.ts b/pulse/ru/.vitepress/theme/index.ts deleted file mode 100644 index b07c234b..00000000 --- a/pulse/ru/.vitepress/theme/index.ts +++ /dev/null @@ -1,255 +0,0 @@ -import {h} from 'vue'; -import type {Theme} from 'vitepress'; -import DefaultTheme from 'vitepress/theme'; -import './style.css'; - -import { - LayoutMode, - NolebaseEnhancedReadabilitiesMenu, - NolebaseEnhancedReadabilitiesPlugin, - NolebaseEnhancedReadabilitiesScreenMenu, - SpotlightStyle, -} from '@nolebase/vitepress-plugin-enhanced-readabilities/client' - -import '@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css' - -import {NolebaseInlineLinkPreviewPlugin,} from '@nolebase/vitepress-plugin-inline-link-preview/client' - -import '@nolebase/vitepress-plugin-inline-link-preview/client/style.css' - -import AuthorsComponent from "./author/PageAuthors.vue" - -const EMOJI_MAP = { - tip: '💡', - info: 'ℹ️', - warning: '⚠️', - danger: '🔥', - details: '📜', -} as const; - -const YAML_CLASS = 'language-yaml'; -const HIGHLIGHT_CLASS = 'hash-highlight'; -let isHandlerAttached = false; - -const postRenderTasks = () => { - if (import.meta.env.SSR) return; - - injectEmojis(); - highlightHashElement(); - processYamlBlocks(); -}; - -function injectEmojis() { - const processBlock = (block: Element, emoji: string) => { - const title = block.querySelector('.custom-block-title, summary') as HTMLElement | null; - if (!title || title.dataset.emojiAdded) return; - - title.dataset.emojiAdded = 'true'; - title.insertAdjacentHTML('afterbegin', `${emoji} `); - }; - - Object.entries(EMOJI_MAP).forEach(([type, emoji]) => { - const selector = type === 'details' ? 'details.custom-block.details' : `.custom-block.${type}`; - document.querySelectorAll(selector).forEach((block) => { - processBlock(block, emoji); - }); - }); -} - -function highlightHashElement() { - if (import.meta.env.SSR) return; - - document.querySelectorAll(`.${HIGHLIGHT_CLASS}`).forEach((el) => { - el.classList.remove(HIGHLIGHT_CLASS); - }); - - const hash = decodeURIComponent(window.location.hash); - if (!hash) return; - - const target = document.querySelector(hash); - if (!target) return; - - target.classList.add(HIGHLIGHT_CLASS); - - const header = document.querySelector('.VPNavBar') as HTMLElement | null; - const headerHeight = header?.offsetHeight || 60; - const targetPosition = target.getBoundingClientRect().top + window.scrollY - headerHeight; - - window.scrollTo({ - top: targetPosition, - behavior: 'smooth', - }); -} - -function processYamlBlocks() { - if (import.meta.env.SSR) return; - - document.querySelectorAll(`div[class*="${YAML_CLASS}"] pre`).forEach((pre) => { - pre.classList.add('yaml-lines'); - - pre.querySelectorAll('.line').forEach((line) => { - if (line.querySelector('.line-content')) return; - - const wrapper = document.createElement('span'); - wrapper.className = 'line-content'; - wrapper.innerHTML = line.innerHTML; - line.innerHTML = ''; - line.appendChild(wrapper); - }); - }); -} - -const scheduleTask = (fn: () => void) => { - if (import.meta.env.SSR) { - fn(); - } else { - requestAnimationFrame(fn); - } -}; - -export default { - extends: DefaultTheme, - - Layout: () => h(DefaultTheme.Layout, null, { - 'nav-bar-content-after': () => h(NolebaseEnhancedReadabilitiesMenu), - 'nav-screen-content-after': () => h(NolebaseEnhancedReadabilitiesScreenMenu), - 'page-after': () => scheduleTask(postRenderTasks), - "aside-outline-after": () => h(AuthorsComponent), - }), - - enhanceApp({ app, router }) { - app.use(NolebaseEnhancedReadabilitiesPlugin, { - locales: { - 'ru-RU': { - title: { - title: 'Режим чтения', - titleAriaLabel: 'Режим чтения' - }, - layoutSwitch: { - title: 'Переключение макета', - titleAriaLabel: 'Переключение макета', - titleHelpMessage: 'Настройте ширину контента и боковой панели', - titleScreenNavWarningMessage: 'Навигационное меню может быть скрыто при изменении макета', - - optionFullWidth: 'Полная ширина', - optionFullWidthAriaLabel: 'Полная ширина контента и боковой панели', - optionFullWidthHelpMessage: 'Максимально расширяет контент и боковую панель', - - optionSidebarWidthAdjustableOnly: 'Только боковая панель', - optionSidebarWidthAdjustableOnlyAriaLabel: 'Регулируемая только боковая панель', - optionSidebarWidthAdjustableOnlyHelpMessage: 'Регулируется только ширина боковой панели', - - optionBothWidthAdjustable: 'Обе регулируемые', - optionBothWidthAdjustableAriaLabel: 'Регулируемые контент и боковая панель', - optionBothWidthAdjustableHelpMessage: 'Регулируется ширина и контента и боковой панели', - - optionOriginalWidth: 'Оригинальная ширина', - optionOriginalWidthAriaLabel: 'Оригинальная ширина макета', - optionOriginalWidthHelpMessage: 'Стандартная ширина как в VitePress', - - contentLayoutMaxWidth: { - title: 'Макс. ширина контента', - titleAriaLabel: 'Максимальная ширина контента', - titleHelpMessage: 'Регулировка максимальной ширины области контента', - titleScreenNavWarningMessage: 'Навигация может быть скрыта при увеличении ширины', - slider: 'Ширина контента', - sliderAriaLabel: 'Регулировка ширины контента', - sliderHelpMessage: 'Перетащите для изменения ширины контента' - }, - - pageLayoutMaxWidth: { - title: 'Макс. ширина страницы', - titleAriaLabel: 'Максимальная ширина страницы', - titleHelpMessage: 'Регулировка максимальной ширины всей страницы', - titleScreenNavWarningMessage: 'Навигация может быть скрыта при увеличении ширины', - slider: 'Ширина страницы', - sliderAriaLabel: 'Регулировка ширины страницы', - sliderHelpMessage: 'Перетащите для изменения ширины всей страницы' - } - }, - spotlight: { - title: 'Подсветка', - titleAriaLabel: 'Режим подсветки', - titleHelpMessage: 'Подсвечивает текущий абзац для лучшей читаемости', - titleScreenNavWarningMessage: 'Навигация может быть скрыта при включенной подсветке', - - optionOn: 'Включить', - optionOnAriaLabel: 'Включить подсветку', - optionOnHelpMessage: 'Активирует режим подсветки', - - optionOff: 'Выключить', - optionOffAriaLabel: 'Выключить подсветку', - optionOffHelpMessage: 'Деактивирует режим подсветки', - - styles: { - title: 'Стиль подсветки', - titleAriaLabel: 'Стиль подсветки текста', - titleHelpMessage: 'Выберите стиль подсветки текущего абзаца', - titleScreenNavWarningMessage: 'Навигация может быть скрыта при изменении стиля подсветки', - - optionUnder: 'Подчеркивание', - optionUnderAriaLabel: 'Подсветка в виде подчеркивания', - optionUnderHelpMessage: 'Подсвечивает текст подчеркиванием', - - optionAside: 'Боковая полоса', - optionAsideAriaLabel: 'Подсветка в виде боковой полосы', - optionAsideHelpMessage: 'Подсвечивает текст боковой полосой' - } - }, - } - }, - layoutSwitch: { - disableHelp: false, - defaultMode: LayoutMode.BothWidthAdjustable, - contentLayoutMaxWidth: { - disableHelp: false, - defaultMaxWidth: 100 - }, - pageLayoutMaxWidth: { - disableHelp: false, - defaultMaxWidth: 100 - } - }, - spotlight: { - disableHelp: false, - hoverBlockColor: 'rgb(240 197 52 / 10%)', - defaultToggle: true, - defaultStyle: SpotlightStyle.Aside, - } - }); - - app.use(NolebaseInlineLinkPreviewPlugin, { - popupWidth: 800, - popupHeight: 400, - locales: { - 'ru-RU': { - popup: { - loading: 'Загружаем превью...', - loadingAriaLabel: 'Превью страницы загружается', - openInCurrentPage: 'Нажмите, чтобы перейти на страницу', - openInCurrentPageAriaLabel: 'Открыть оригинал страницы', - iframeAriaLabel: 'Предпросмотр связанной страницы' - } - }, - } - }); - - app.provide('post-render', postRenderTasks); - - router.onAfterRouteChanged = () => { - scheduleTask(postRenderTasks); - }; - - if (!isHandlerAttached && !import.meta.env.SSR) { - window.addEventListener('hashchange', highlightHashElement); - document.addEventListener('click', (e) => { - const target = e.target as HTMLElement; - if (target.closest('.header-anchor, a[href^="#"]')) { - scheduleTask(highlightHashElement); - } - }); - isHandlerAttached = true; - } - }, - -} satisfies Theme; \ No newline at end of file diff --git a/pulse/ru/.vitepress/theme/style.css b/pulse/ru/.vitepress/theme/style.css deleted file mode 100644 index 24206812..00000000 --- a/pulse/ru/.vitepress/theme/style.css +++ /dev/null @@ -1,250 +0,0 @@ -:root { - --vp-c-brand-1: #0076c7; - --vp-c-brand-2: #ADD8E6; - --vp-c-indigo-1: #8ec5f6; - --vp-c-indigo-2: #0b94ee; - --vp-c-indigo-3: #0076c7; - --vp-c-indigo-soft: rgba(0, 118, 199, 0.18); - --vp-custom-block-tip-bg: rgba(0, 140, 227, 0.27); - --vp-custom-block-tip-code-bg: rgba(1, 137, 210, 0.19); -} - -:root.dark { - --vp-c-brand-1: #87CEFA; - --vp-c-brand-2: #ADD8E6; - --vp-c-indigo-1: #8ec5f6; - --vp-c-indigo-2: #0b94ee; - --vp-c-indigo-3: #0076c7; - --vp-c-indigo-soft: rgba(0, 118, 199, 0.18); - --vp-c-bg: #1b1b1b; - --vp-c-bg-alt: #222222; - --vp-c-bg-elv: #1b1b1b; - --vp-c-bg-soft: #222222; - --vp-c-gutter: #2e2e32; - --vp-custom-block-info-bg: #222222; - - [bg~="\$vp-nolebase-enhanced-readabilities-menu-background-color"] { - background-color: #222222; - } -} - -.VPButton.medium[data-v-a6f37409] { - border-radius: 8px; -} - -.VPButton.alt[data-v-a6f37409] { - background-color: var(--vp-c-gutter); -} - -.box[data-v-e8895942] { - border-radius: 13px; - border: 1px solid var(--vp-c-divider); -} - -.VPSocialLinks.VPNavBarSocialLinks.social-links { - margin-right: 0; -} - -.vp-code-group .tabs { - box-shadow: none; - border: 1px solid var(--vp-c-divider); -} - -.vp-doc div[class*='language-'], -.vp-block { - border: 1px solid var(--vp-c-divider); -} - -.vp-doc .custom-block { - border: 1px solid var(--vp-c-divider); -} - -.vp-doc table { - display: table; - width: 100%; - border-collapse: separate; - margin: 24px 0; - font-size: 14px; - overflow: hidden; - border-radius: 8px; - line-height: 1.6; - border-spacing: 0; -} - -.vp-doc tr:first-child th:first-child { - border-top-left-radius: 8px; -} - -.vp-doc tr:first-child th:last-child { - border-top-right-radius: 8px; -} - -.vp-doc tr:last-child td:first-child { - border-bottom-left-radius: 8px; -} - -.vp-doc tr:last-child td:last-child { - border-bottom-right-radius: 8px; -} - -.vp-doc th { - background-color: var(--vp-c-bg-soft); - text-align: left; - font-weight: 600; - padding: 12px 16px; - border: 1px solid var(--vp-c-divider); -} - -.vp-doc td { - padding: 12px 16px; - border: 1px solid var(--vp-c-divider); - vertical-align: top; -} - -.vp-doc :not(pre) > code { - background-color: var(--vp-c-bg-alt); -} - -.custom-block.details code, .vp-doc td > code { - background-color: var(--vp-c-gutter); -} - -img { - border-radius: 8px; -} - -div[class*='language-yaml'], -div[class*='language-yml'] { - position: relative; -} - -div[class*='language-yaml'] .line, -div[class*='language-yml'] .line { - position: relative; - display: inline-block; - width: 100%; - z-index: 1; -} - -div[class*='language-yaml'] .line::after, -div[class*='language-yml'] .line::after { - content: ''; - position: absolute; - left: -1.5rem; - right: -1.5rem; - top: 0; - bottom: 0; - background: rgba(66, 185, 131, 0.08); - z-index: -1; - opacity: 0; - transition: opacity 0.15s ease; -} - -div[class*='language-yaml'] .line:hover::after, -div[class*='language-yml'] .line:hover::after { - opacity: 1; -} - -div[class*='language-yaml'] .line::before, -div[class*='language-yml'] .line::before { - content: ''; - position: absolute; - left: -1.5rem; - top: 0; - bottom: 0; - width: 2px; - background: #42b983; - opacity: 0; - transition: opacity 0.15s ease; -} - -div[class*='language-yaml'] .line:hover::before, -div[class*='language-yml'] .line:hover::before { - opacity: 1; -} - -div[class*='language-yaml'] .line > span, -div[class*='language-yml'] .line > span { - display: inline-block; - padding: 0.1rem 0; - white-space: pre; -} - -.dark div[class*='language-yaml'] .line::after, -.dark div[class*='language-yml'] .line::after { - background: rgba(66, 185, 131, 0.15); -} - -.hash-highlight { - position: relative; - overflow: hidden; -} - -.hash-highlight::after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - width: 100%; - height: 2px; - background: var(--vp-c-brand-1); - animation: hash-line 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); - transform-origin: left; - opacity: 0.8; -} - -.hash-highlight .header-anchor { - color: var(--vp-c-brand-1) !important; - transition: color 0.3s ease; -} - -.dark .hash-highlight::after { - background: var(--vp-c-brand-2); -} - -.dark .hash-highlight .header-anchor { - color: var(--vp-c-brand-2) !important; -} - -@keyframes hash-line { - 0% { - transform: scaleX(0); - opacity: 0; - } - 40% { - transform: scaleX(1); - opacity: 1; - } - 100% { - transform: scaleX(1); - opacity: 0.8; - } -} - -kbd:not(.DocSearch-Button-Key) { - background-color: #eee !important; - border-radius: 3px; - border: 1px solid #b4b4b4; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), - 0 2px 0 0 rgba(255, 255, 255, 0.7) inset; - color: #333; - display: inline-block; - font-size: 0.85em; - font-weight: 700; - line-height: 1; - padding: 5px; - white-space: nowrap; -} - -.DocSearch-Button { - background-color: transparent; -} - -.DocSearch-Button-Key { - display: none; -} - -.DocSearch-Button:active, .DocSearch-Button:focus, .DocSearch-Button:hover { - background-color: transparent; - border-color: transparent; -} \ No newline at end of file diff --git a/pulse/ru/api/index.md b/pulse/ru/api/index.md deleted file mode 100644 index f46fc6fc..00000000 --- a/pulse/ru/api/index.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -order: 100 -authors: - - TheFaser ---- - -# API - -FlectonePulse — это мощный плагин для Minecraft, позволяющий настраивать сообщения сервера, чат, команды и интеграции. Поддерживает платформы Bukkit, Spigot, Paper, Purpur, Folia, BungeeCord, Velocity и Fabric. Использует Google Guice для внедрения зависимостей, при этом большинство классов (кроме моделей) помечены аннотацией `@Singleton` - -## Подключение зависимости - -FlectonePulse доступен в Maven Central. Ниже приведены конфигурации для подключения в проекте через Maven, Gradle (Groovy) или Gradle (Kotlin DSL) - -::: code-group - -```xml - - net.flectone.pulse - core - 1.7.3 - provided - -``` - -```groovy -repositories { - mavenCentral() -} - -dependencies { - compileOnly 'net.flectone.pulse:core:1.7.3' // Замените на актуальную версию -} -``` - -```kotlin -repositories { - mavenCentral() -} - -dependencies { - compileOnly("net.flectone.pulse:core:1.7.3") // Замените на актуальную версию -} -``` - -::: - -Для snapshot-версий: - -::: code-group - -```xml - - net.flectone.pulse - core - 1.7.4-SNAPSHOT - provided - -``` - -```groovy -repositories { - maven { url 'https://central.sonatype.com/repository/maven-snapshots/' } -} - -dependencies { - compileOnly 'net.flectone.pulse:core:1.7.4-SNAPSHOT' // Замените на актуальную версию -} -``` - -```kotlin -repositories { - maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") } -} - -dependencies { - compileOnly("net.flectone.pulse:core:1.7.4-SNAPSHOT") // Замените на актуальную версию -} -``` - -::: - -## Пример для Bukkit - -Пример плагина для Bukkit, использующего FlectonePulse для вывода сообщения "Hello from FlectonePulse" - -### plugin.yml -```yaml -name: MyPlugin -version: 1.0.0 -main: com.example.myplugin.MyPlugin -api-version: 1.13 -softdepend: - - FlectonePulse -``` - -### Пример кода плагина -```java -package com.example.myplugin; - -import net.flectone.pulse.FlectonePulse; -import net.flectone.pulse.FlectonePulseAPI; -import net.flectone.pulse.util.logging.FLogger; -import org.bukkit.Bukkit; -import org.bukkit.plugin.java.JavaPlugin; - -public class MyPlugin extends JavaPlugin { - - @Override - public void onEnable() { - if (Bukkit.getPluginManager().getPlugin("FlectonePulse") != null) { - FlectonePulse flectonePulse = FlectonePulseAPI.getInstance(); - - FLogger fLogger = flectonePulse.get(FLogger.class); - fLogger.info("Hello from FlectonePulse"); - } - } -} -``` - -## Ключевые методы API - -```java -FlectonePulse flectonePulse = FlectonePulseAPI.getInstance(); - -// Получение singleton-экземпляр указанного класса через внедрение зависимостей Guice -// Class clazz = ... -// flectonePulse.get(clazz); -FLogger fLogger = flectonePulse.get(FLogger.class); - -// Проверка, готов ли инжектор к работе -flectonePulse.isReady(); - -// Перезагружает плагин, выбрасывая `ReloadException` при ошибках -flectonePulse.reload(); -``` - -## Примечания - -- Убедитесь, что FlectonePulse установлен на сервере и указан как softdepend в `plugin.yml` -- Используйте `isReady()`, чтобы проверить готовность инжектора перед вызовом `get()` -- Для регистрации слушателей, используйте `ListenerRegistry.class` и метод `registerPermanent()` \ No newline at end of file diff --git a/pulse/ru/docs/command/afk/index.md b/pulse/ru/docs/command/afk/index.md deleted file mode 100644 index 1e6d2b78..00000000 --- a/pulse/ru/docs/command/afk/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/afk` - -Комманда для смены режима AFK -![afk](/afkglobalmessage.png) - -::: danger ВНИМАТЕЛЬНО -Комманда не будет работать, если модуль [`AFK`](/docs/message/afk/) выключен -::: - -[//]: # (command.yml) - - `command.yml → afk` - -<<< @/files/command.yml#afk - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.afk` - -<<< @/files/permission.yml#afk - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/anon/index.md b/pulse/ru/docs/command/anon/index.md deleted file mode 100644 index 9feae23f..00000000 --- a/pulse/ru/docs/command/anon/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/anon` - -Комманда для анонимного сообщения -![command anon](/commandanon.png) - -[//]: # (localization) - - `localizations → язык.yml → command.anon` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#anon -<<< @/files/localizations/en_us.yml#anon -::: - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → anon` - - -<<< @/files/command.yml#anon - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.anon` - - -<<< @/files/permission.yml#anon - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/ball/index.md b/pulse/ru/docs/command/ball/index.md deleted file mode 100644 index 1aea766e..00000000 --- a/pulse/ru/docs/command/ball/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/ball` - -Комманда для того, чтобы задать вопрос Магическому Шару -![command ball](/commandball.png) - -[//]: # (localization) - - `localizations → язык.yml → command.ball` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ball -<<< @/files/localizations/en_us.yml#ball -::: - -### `format` - -Формат сообщения, которое будет отправлено - -### `answers` - -Список возможных ответов - -[//]: # (command.yml) - - `command.yml → ball` - -<<< @/files/command.yml#ball - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ball` - -<<< @/files/permission.yml#ball - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/ban/index.md b/pulse/ru/docs/command/ban/index.md deleted file mode 100644 index 51b80eed..00000000 --- a/pulse/ru/docs/command/ban/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/ban` - -Комманда для того, чтобы заблокировать игрока -![command ban](/commandban.png) - -[//]: # (localization) - - `localizations → язык.yml → command.ban` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ban -<<< @/files/localizations/en_us.yml#ban -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `null_time` - -Сообщение, если введено невозможное время - -### `lower_weight_group` - -Сообщение, если комманда исполняется от игрока с группой ниже, чем у игрока на которого применяется модерация - -### `reasons` - -Список с ключами и значениями, где ключом является слово, а значением конкретная причина - -::: info Можно вписывать свои причины, например -```yaml -random_kek: "Random reason" -``` -Тогда если я напишу `/ban player 1d random_kek`, то причиной будет `Random reason` - -Если причина не указана, будет использоваться `default` -::: - -### `server` - -Сообщение для всех - -### `person` - -Сообщение для игрока - -### `connection_attempt` - -Сообщение, если заблокированный игрок пытался подключиться - -[//]: # (command.yml) - - `command.yml → ban` - -<<< @/files/command.yml#ban - - - - -### `check_group_weight` - -Будут ли проверяться группы игроков. Если игрок, на которого применяется модерация, имеет роль выше, чем отправитель комманды, то комманда не выполнится и будет ошибка `lower_weight_group` - -### `show_connection_attempts` - -Если включено, то будет показывать сообщение, что заблокированный игрок пытался подключиться -![command ban connect](/commandbanconnect.png) - - - -### `time_limits` - -Лимиты по времени в зависимости от группы отправителя. Ключом является вес группы, а значением - максимальное количество времени модерации в милисекундах (`1` секунда = `1000` милисекунд) - -::: info ПРИМЕР - -```yaml - time_limits: - 20: 35000 - 50: 100000 -``` - -- Если игрок имеет вес группы `10`, команда НЕ будет выполнена -- Если игрок имеет вес группы `20`, максимальное количество времени будет `35000` -- Если игрок имеет вес группы `40`, максимальное количество времени также будет `35000` -- Если игрок имеет вес группы `50` и выше, то будет `100000` - -Для безграничного времени нужно использовать значение `-1` - -::: - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ban` - -<<< @/files/permission.yml#ban - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/banlist/index.md b/pulse/ru/docs/command/banlist/index.md deleted file mode 100644 index bab8e9c6..00000000 --- a/pulse/ru/docs/command/banlist/index.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/banlist` - -Комманда для того, чтобы посмотреть список блокировок -![command banlist](/commandbanlist.png) - -[//]: # (localization) - - `localizations → язык.yml → command.banlist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#banlist -<<< @/files/localizations/en_us.yml#banlist -::: - -### `empty` - -Сообщение, если список заблокированных игроков пуст - -### `null_page` - -Сообщение, если введённая страница не существует - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `global` - -::: details Сообщения для глобальных блокировок - -#### `header` - -Верхняя часть сообщения списка - -#### `line` - -Формат каждого бана из списка - -#### `footer` - -Нижняя часть сообщения списка -::: - -### `player` - -::: details Сообщения для блокировок игрока - -#### `header` - -Верхняя часть сообщения списка - -#### `line` - -Формат каждого бана из списка - -#### `footer` - -Нижняя часть сообщения списка -::: - -[//]: # (command.yml) - - `command.yml → banlist` - -<<< @/files/command.yml#banlist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.banlist` - -<<< @/files/permission.yml#banlist - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/broadcast/index.md b/pulse/ru/docs/command/broadcast/index.md deleted file mode 100644 index 28692d70..00000000 --- a/pulse/ru/docs/command/broadcast/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/broadcast` - -Комманда для глобального оповещения -![command broadcast](/commandbroadcast.png) - -[//]: # (localization) - - `localizations → язык.yml → command.broadcast` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#broadcast -<<< @/files/localizations/en_us.yml#broadcast -::: - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → broadcast` - - -<<< @/files/command.yml#broadcast - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.broadcast` - - -<<< @/files/permission.yml#broadcast - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/chatcolor/index.md b/pulse/ru/docs/command/chatcolor/index.md deleted file mode 100644 index ef494ba3..00000000 --- a/pulse/ru/docs/command/chatcolor/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/chatcolor` - -Комманда для смены [цветов](/docs/message/format/fcolor/) -![command chatcolor](/commandchatcolor.png) - - - -::: info ИНФОРМАЦИЯ - -Можно пропускать цвета с помощью `null`, чтобы их не заменять. Например `/chatcolor see null null ` заменит только `` и ``, а первые два нет - -Если есть пермишен `other`, то можно изменять цвета других игроков, дописывая их ник в конце команды, например `/chatcolor see null TheFaser`. Нужно указывать все цвета и только после этого ник игрока, но вы можете пропускать цвета, как об этом написано выше - -::: - -[//]: # (localization) - - `localizations → язык.yml → command.chatcolor` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#chatcolor -<<< @/files/localizations/en_us.yml#chatcolor -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `null_color` - -Сообщение, если неправильно введены цвета - -### `null_type` - -Сообщение, если неправильно введён тип - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → chatcolor` - - -<<< @/files/command.yml#chatcolor - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.chatcolor` - - -<<< @/files/permission.yml#chatcolor - - - - - - -### `colors` - -Список прав для изменения конкретных видов цветов: `SEE` или `OUT` \ No newline at end of file diff --git a/pulse/ru/docs/command/chatsetting/index.md b/pulse/ru/docs/command/chatsetting/index.md deleted file mode 100644 index bc69af76..00000000 --- a/pulse/ru/docs/command/chatsetting/index.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/chatsetting` - -Комманда для настройки чата -![command chatsetting](/commandchatsetting.gif) - -::: info ПРИМЕЧАНИЕ - -Можно открыть чужие настройки с помощью `/chatsetting TheFaser` - -Если ты хочешь сделать своё меню через другой плагин, то ты можешь изменять значения с помощью `/chatsetting TheFaser ADVANCEMENT`. Это включит или выключит показ достижений в зависимости от состояния. Узнать состояние можно через плейсхолдер `%flectonepulse_advancement%`. - -Некоторым настройкам можно назначать значения, например `/chatsetting TheFaser STREAM_PREFIX kek` поставит игроку префикс стримера `kek`. - -| Настройка | -|---------------------| -| `ADVANCEMENT` | -| `AFK` | -| `AFK_SUFFIX` | -| `AUTO` | -| `BALL` | -| `BAN` | -| `BROADCAST` | -| `CHAT` | -| `COIN` | -| `DEATH` | -| `DICE` | -| `DISCORD` | -| `DO` | -| `GREETING` | -| `JOIN` | -| `KICK` | -| `LOCALE` | -| `MAIL` | -| `ME` | -| `MUTE` | -| `POLL` | -| `QUIT` | -| `REPLY` | -| `ROCKPAPERSCISSORS` | -| `SPY` | -| `STREAM` | -| `STREAM_PREFIX` | -| `TELEGRAM` | -| `TELL` | -| `TICTACTOE` | -| `TRANSLATETO` | -| `TRY` | -| `TWITCH` | -| `WARN` | -| `WORLD_PREFIX` | -| `ANON` | - -::: - -[//]: # (localization) - - `localizations → язык.yml → command.chatsetting` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#chatsetting -<<< @/files/localizations/en_us.yml#chatsetting -::: - -::: tip ПРИМЕЧАНИЕ - -Название и описание предметов находятся в одной строчке, переход на новую строчку осуществляется с помощью `
` - -::: - -### `no_permission` - -Сообщение, если для изменения настройки требуется определённое право - -### `disable` - -::: details Сообщения об отключении -#### `you` - -Сообщение, если отправитель отключил комманду в `/chatsetting` - -#### `he` - -Сообщение, если получатель отключил комманду в `/chatsetting` - -#### `server` - -Сообщение, если сервер отключил комманду для `/chatsetting` -::: - -### `inventory` - -Название для основного GUI - -### `checkbox` - -::: details Настройка переключателей - -#### `enabled_color` - -Цвет, если настройка включена. Заменяет `` - -#### `enabled_hover` - -Сообщение, если настройка включена - -#### `disabled_color` - -Цвет, если настройка выключена. Заменяет `` - -#### `disabled_hover` - -Сообщение, если настройка выключена - -#### `types` - -Список типов настроек и их названий - -::: - -### `menu` - -Каждое дополнительное меню имеет: - -::: details Настройка дополнительных меню - -#### `item` - -Название и описание предмета, который будет в основном меню - -#### `inventory` - -Название GUI в дополнительном меню - -#### `types` - -Список предметов с их названием и описанием - -::: - -[//]: # (command.yml) - - `command.yml → chatsetting` - - -<<< @/files/command.yml#chatsetting - - - - -### `modern` - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Работает только для версий `1.21.6` и новее, в старых будет использоваться инвентарь - -::: - -::: details Настройка нового меню - -#### `enable` - -Включает использование диалгов, вместо инвентарей - -#### `button_width` - -Ширина каждой кнопки - -#### `columns` - -Количество кнопок на одной строчке - -::: - -### `checkbox` - -::: details Настройка переключателей - -#### `disabled_material` - -Материал, если настройка выключена - -#### `enabled_material` - -Материал, если настройка включена - -#### `types` - -Список типов настроек и их слот в инвентаре - -::: - -### `menu` - -Дополнительные меню - -#### `material` - -Предмет который будет перекидывать в дополнительные меню - -::: details Настройка дополнительных меню - -#### `slot` - -Какой слот будет в основном инвентаре - -#### `types` - -Список типов настроек с их параметрами - -| Вид | Описание | -|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| у `CHAT` | Поле `name` является названием, а `material` тип предмета, который будет в инвентаре у этого чата | -| у `SEE` и `OUT` | Поле `name` является названием, а `material` тип предмета, который будет в инвентаре у этого чата. Также имеет `colors`, где ключом является цифра, а значением цвет, который применится. Используй `""` для того, чтобы цвет не изменялся | - -::: - -[//]: # (permission.yml) - - `permission.yml → command.chatsetting` - - -<<< @/files/permission.yml#chatsetting - - - -### `settings` - -Список настроек и их прав - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/clearchat/index.md b/pulse/ru/docs/command/clearchat/index.md deleted file mode 100644 index a3ae8d4a..00000000 --- a/pulse/ru/docs/command/clearchat/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/clearchat` - -Комманда для очищения чата -![command clearchat](/commandclearchat.png) - -[//]: # (localization) - - `localizations → язык.yml → command.clearchat` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#clearchat -<<< @/files/localizations/en_us.yml#clearchat -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `format` - -Сообщение после очищения чата - -[//]: # (command.yml) - - `command.yml → clearchat` - - -<<< @/files/command.yml#clearchat - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.clearchat` - - -<<< @/files/permission.yml#clearchat - - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/clearmail/index.md b/pulse/ru/docs/command/clearmail/index.md deleted file mode 100644 index acb56635..00000000 --- a/pulse/ru/docs/command/clearmail/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/clearmail` - -Комманда для удаления отправленных [писем](/docs/command/mail/) -![command clearmail](/commandclearmail.png) - -[//]: # (localization) - - `localizations → язык.yml → command.clearmail` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#clearmail -<<< @/files/localizations/en_us.yml#clearmail -::: - -### `null_mail` - -Сообщение, если введённое письмо не найдено - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → clearmail` - - -<<< @/files/command.yml#clearmail - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.clearmail` - - -<<< @/files/permission.yml#clearmail - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/coin/index.md b/pulse/ru/docs/command/coin/index.md deleted file mode 100644 index db0ef4c0..00000000 --- a/pulse/ru/docs/command/coin/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/coin` - -Комманда для подбрасывания монетки -![command coin](/commandcoin.png) - -[//]: # (localization) - - `localizations → язык.yml → command.coin` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#coin -<<< @/files/localizations/en_us.yml#coin -::: - -### `head` - -Название стороны монетки - -### `tail` - -Название другой стороны монетки - -### `format` - -Формат сообщения, которое будет отправлено - -### `format_draw` - -Сообщение, если монетка упала на ребро - -[//]: # (command.yml) - - `command.yml → coin` - - -<<< @/files/command.yml#coin - - - -### `draw` - -Включает шанс (`1%`) выпадения монетки на ребро - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.coin` - - -<<< @/files/permission.yml#coin - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/deletemessage/index.md b/pulse/ru/docs/command/deletemessage/index.md deleted file mode 100644 index 3d203b91..00000000 --- a/pulse/ru/docs/command/deletemessage/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/deletemessage` - -Комманда для удаления сообщения в чате, используется автоматически при наведении на значок с удалением -![command deletemessage](/commanddeletemessage.png) - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Команда будет бесполезной, если выключен основной модуль [`Delete`](/docs/message/format/moderation/delete/) - -::: - -[//]: # (localization) - - `localizations → язык.yml → command.deletemessage` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#deletemessage -<<< @/files/localizations/en_us.yml#deletemessage -::: - -### `null_message` - -Сообщение, если при удалении сообщения не существует - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → deletemessage` - - -<<< @/files/command.yml#deletemessage - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.deletemessage` - - -<<< @/files/permission.yml#deletemessage - - - - diff --git a/pulse/ru/docs/command/dice/index.md b/pulse/ru/docs/command/dice/index.md deleted file mode 100644 index 36ec6aec..00000000 --- a/pulse/ru/docs/command/dice/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/dice` - -Комманда для броска кубиков на удачу -![command dice](/commanddice.png) - -[//]: # (localization) - - `localizations → язык.yml → command.dice` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#dice -<<< @/files/localizations/en_us.yml#dice -::: - -### `symbols` - -Список индексов (выпавшее число) и символов (кубики) - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → dice` - - -<<< @/files/command.yml#dice - - - - -### `min` - -Минимальное количество кубиков - -### `max` - -Максимальное количество кубиков - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.dice` - - -<<< @/files/permission.yml#dice - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/do/index.md b/pulse/ru/docs/command/do/index.md deleted file mode 100644 index 622f7715..00000000 --- a/pulse/ru/docs/command/do/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/do` - -Комманда для РП выполнения действия -![command do](/commanddo.png) - -[//]: # (localization) - - `localizations → язык.yml → command.do` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#do -<<< @/files/localizations/en_us.yml#do -::: - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → do` - - -<<< @/files/command.yml#do - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.do` - - -<<< @/files/permission.yml#do - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/emit/index.md b/pulse/ru/docs/command/emit/index.md deleted file mode 100644 index efe55621..00000000 --- a/pulse/ru/docs/command/emit/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/emit` - -Комманда для использования любого `destination` с текстом -![command emit](/commandemit.png) - -Комманда доступна по умолчанию только админам сервера и создана только для них. -Выдавать обычным игрокам её не стоит. -Эту комманду можно использовать через консоль, другой плагин или датапак, что удобно, если вам хочется использовать инструменты от FlectonePulse (любые плейсхолдеры и теги также будут работать) - -Чтобы отобразить текст всем игрокам сразу, можно использовать `all`, например `/emit all CHAT hello world`. -У некоторых `destination` есть аргументы, которые можно изменять через `{}`. -Эти аргументы назваются точно также, как и в конфиг файлах. - -Примеры -- `/emit TheFaser ACTION_BAR{times={stay=40}} hello world` -- `/emit TheFaser BOSS_BAR{color=RED} hello world` -- `/emit TheFaser BRAND hello world` -- `/emit TheFaser CHAT hello world` -- `/emit TheFaser TITLE hello world` -- `/emit TheFaser SUBTITLE hello world` -- `/emit TheFaser TAB_FOOTER hello world` -- `/emit TheFaser TAB_HEADER hello world` -- `/emit TheFaser TEXT_SCREEN{offset_x=-0.3, offset_y=-0.2} hello world` -- `/emit TheFaser TOAST{icon="minecraft:iron_ingot", style=CHALLENGE} hello world` - -Аргументы, которые пропущены, будут дефолтными и их необязательно вписывать все. Если `destination` введён неправильно, сообщение будет отправлено в обычный чат - - - -[//]: # (localization) - - `localizations → язык.yml → command.emit` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#emit -<<< @/files/localizations/en_us.yml#emit -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → emit` - - -<<< @/files/command.yml#emit - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.emit` - - -<<< @/files/permission.yml#emit - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/flectonepulse/index.md b/pulse/ru/docs/command/flectonepulse/index.md deleted file mode 100644 index ed05b552..00000000 --- a/pulse/ru/docs/command/flectonepulse/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/flectonepulse` - -Главная комманда плагина `FlectonePulse` -![command flectonepulse](/commandflectonepulse.png) - -::: warning ПРЕДУПРЕЖДЕНИЕ - -На старых версиях (1.9 и 1.10 точно) было замечено, что игроков при перезагрузки может кикать с сервера, но на работу плагина это не влияет - -::: - -[//]: # (localization) - - `localizations → язык.yml → command.flectonepulse` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#flectonepulse -<<< @/files/localizations/en_us.yml#flectonepulse -::: - -### `null_host_editor` - -Сообщение, когда поле `host` в config.yml пустое - -### `null_port_editor` - -Сообщение, когда `port`, который указан в config.yml, занят или недоступен - -### `format_false` - -Сообщение при возникновении ошибки - -### `format_true` - -Формат сообщения, которое будет отправлено при перезагрузке всего `FlectonePulse` - -### `format_web_starting` - -Формат сообщения, которое будет отправлено при старте веб-сервера - -### `format_editor` - -Формат сообщения, которое будет отправлено при успешном запуске веб-сервера - -[//]: # (command.yml) - - `command.yml → flectonepulse` - - -<<< @/files/command.yml#flectonepulse - - - -### `execute_in_main_thread` - -Будет ли выполняться вся перезагрузка в главном потоке сервера - -::: info ИНФОРМАЦИЯ - -Это может решить проблемы на `Bukkit`, `Spigot`, `Mohist` или других старых/нестандартных ядрах при перезагрузке - -::: - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.flectonepulse` - - -<<< @/files/permission.yml#flectonepulse - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/geolocate/index.md b/pulse/ru/docs/command/geolocate/index.md deleted file mode 100644 index cf0faabd..00000000 --- a/pulse/ru/docs/command/geolocate/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/geolocate` - -Комманда для отслеживания IP-адреса и получения информации об игроке -![command geolocate](/commandgeolocate.png) - -[//]: # (localization) - - `localizations → язык.yml → command.geolocate` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#geolocate -<<< @/files/localizations/en_us.yml#geolocate -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `null_or_error` - -Сообщение, если произошла ошибка при получении информации - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → geolocate` - - -<<< @/files/command.yml#geolocate - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.geolocate` - - -<<< @/files/permission.yml#geolocate - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/helper/index.md b/pulse/ru/docs/command/helper/index.md deleted file mode 100644 index 4b41028f..00000000 --- a/pulse/ru/docs/command/helper/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/helper` - -Комманда для того, чтобы попросить помощь -![command helper](/commandhelper.png) - -От лица помощника -![command helper player](/commandhelperadmin.png) - -[//]: # (localization) - - `localizations → язык.yml → command.helper` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#helper -<<< @/files/localizations/en_us.yml#helper -::: - -### `null_helper` - -Сообщение, если на сервере нет людей, которые смогут помочь - -### `global` - -Сообщение для тех, кто должен помочь - -### `player` - -Сообщение для игрока - -[//]: # (command.yml) - - `command.yml → helper` - - -<<< @/files/command.yml#helper - - - -### `null_helper` - -Будет ли проверяться, что на сервере нет людей, способные ответить на запрос - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.helper` - - -<<< @/files/permission.yml#helper - - - -### `see` - -Право для просмотра запросов о помощи - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/ignore/index.md b/pulse/ru/docs/command/ignore/index.md deleted file mode 100644 index d9473136..00000000 --- a/pulse/ru/docs/command/ignore/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/ignore` - -Комманда для игнорирования всех сообщений от игрока -![command ignore](/commandignore.png) - -Убирается игнорирование с помощью повторного использования -![command unignore](/commandunignore.png) - -[//]: # (localization) - - `localizations → язык.yml → command.ignore` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ignore -<<< @/files/localizations/en_us.yml#ignore -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `myself` - -Сообщение, если игрок пытается игнорировать самого себя - -### `he` - -Сообщение, если получатель игнорирует отправителя - -### `you` - -Сообщение, если отправитель игнорирует получателя - -### `format_true` - -Сообщение при успешном игнорировании - -### `format_false` - -Сообщение при снятии игнорирования - -[//]: # (command.yml) - - `command.yml → ignore` - - -<<< @/files/command.yml#ignore - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ignore` - - -<<< @/files/permission.yml#ignore - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/ignorelist/index.md b/pulse/ru/docs/command/ignorelist/index.md deleted file mode 100644 index 96f90f6b..00000000 --- a/pulse/ru/docs/command/ignorelist/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/ignorelist` - -Комманда для того, чтобы посмотреть список своих игнорирований -![command ignorelist](/commandignorelist.png) - -[//]: # (localization) - - `localizations → язык.yml → command.ignorelist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ignorelist -<<< @/files/localizations/en_us.yml#ignorelist -::: - -### `empty` - -Сообщение, если список игнорируемых игроков пуст - -### `null_page` - -Сообщение, если введённая страница не существует - -### `header` - -Верхняя часть сообщения списка - -### `line` - -Формат каждого игнорирования из списка - -### `footer` - -Нижняя часть сообщения списка - -[//]: # (command.yml) - - `command.yml → ignorelist` - - -<<< @/files/command.yml#ignorelist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ignorelist` - - -<<< @/files/permission.yml#ignorelist - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/index.md b/pulse/ru/docs/command/index.md deleted file mode 100644 index 782df392..00000000 --- a/pulse/ru/docs/command/index.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Комманды - -Категория, отвечающая за настройку всех комманд - -[//]: # (localization) - - `localizations → язык.yml → command` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#command -<<< @/files/localizations/en_us.yml#command -::: - -### `exception` - -::: details Сообщения при неправильном использовании команды - -#### `execution` - -Сообщение, если во время выполнении команды произошла ошибка - -#### `parse_unknown` - -Сообщение, если введён неизвестный аргумент - -#### `parse_boolean` - -Сообщение, если ожидался аргумент `boolean` - -#### `parse_number` - -Сообщение, если ожидался аргумент `number` - -#### `parse_string` - -Сообщение, если ожидался аргумент `string` - -#### `permission` - -Сообщение, если у игрока нет прав для этой комманды - -#### `syntax` - -Сообщение, если введена неполная комманда -![command syntax](/commandsyntax.png) - -::: - -### `prompt` - -::: details Форматирование подсказок - -#### `message` - -Подсказка для комманд, в которых вводится сообщение - -#### `hard` - -Подсказка для комманд, в которых спрашивается про сложность - -#### `accept` - -Подсказка для комманд, в которых что-то принимается или отклоняется - -#### `turn` - -Подсказка для комманд, в которых что-то включается или выключается - -#### `type` - -Подсказка для комманд, в которые вводится тип - -#### `reason` - -Подсказка для комманд, в которых вводится причина - -#### `category` - -Подсказка для комманд, в которых выбирается категория - -#### `id` - -Подсказка для комманд, в которых вводится айди - -#### `time` - -Подсказка для комманд, в которых вводится время - -#### `repeat_time` - -Подсказка для комманд, в которых вводится время для повторения - -#### `multiple_vote` - -Подсказка для комманд, в которых спрашивается про мульти голосование - -#### `player` - -Подсказка для комманд, в которых вводится игрок - -#### `number` - -Подсказка для комманд, в которых вводится число - -#### `color` - -Подсказка для комманд, в которых вводится цвет - -#### `language` - -Подсказка для комманд, в которых вводится язык - -#### `url` - -Подсказка для комманд, в которых вводится ссылка - -#### `move` - -Подсказка для комманд, в которых выбирается ход - -#### `value` - -Подсказка для комманд, в которых выбирает значение -::: - -[//]: # (command.yml) - - `command.yml` - - -<<< @/files/command.yml#command - - - -### `suggest_invisible_players` - -Если включено, то всем игрокам будут показываться все другие игроки. Но если выключено, то игроку нужно отдельное право, чтобы видеть других игроков под зельем невидимости в коммандах - -[//]: # (permission.yml) - - `permission.yml → command` - - -<<< @/files/permission.yml#command - - - -### `see_invisible_players_in_suggest` - -Право для того, чтобы видеть игроков под зельем невидимости в подсказках комманд - diff --git a/pulse/ru/docs/command/kick/index.md b/pulse/ru/docs/command/kick/index.md deleted file mode 100644 index dbcf2066..00000000 --- a/pulse/ru/docs/command/kick/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/kick` - -Комманда для исключения игрока с сервера -![command kick](/commandkick.png) - -[//]: # (localization) - - `localizations → язык.yml → command.kick` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#kick -<<< @/files/localizations/en_us.yml#kick -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `reasons` - -Список с ключами и значениями, где ключом является слово, а значением конкретная причина - -::: info Можно вписывать свои причины, например -```yaml -random_kek: "Random reason" -``` -Тогда если я напишу `/kick player random_kek`, то причиной будет `Random reason` - -Если причина не указана, будет использоваться `default` - -::: - -### `server` - -Сообщение для всех - -### `person` - -Сообщение для игрока - -[//]: # (command.yml) - - `command.yml → kick` - - -<<< @/files/command.yml#kick - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.kick` - - -<<< @/files/permission.yml#kick - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/mail/index.md b/pulse/ru/docs/command/mail/index.md deleted file mode 100644 index bc27af15..00000000 --- a/pulse/ru/docs/command/mail/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/mail` - -Комманда для того, чтобы написать оффлайн игроку письмо -![command mail](/commandmail.png) - -Когда игрок, которому написали письмо, зайдёт на сервер, он увидит это -![command mail player](/commandmailplayer.png) - -Если игрок уже на сервере и модуль [Tell](/docs/command/tell/) включен, то он будет использован -![command tell](/commandtell.png) - -[//]: # (localization) - - `localizations → язык.yml → command.mail` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mail -<<< @/files/localizations/en_us.yml#mail -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `sender` - -Сообщение для отправителя - -### `receiver` - -Сообщение для получателя - -[//]: # (command.yml) - - `command.yml → mail` - - -<<< @/files/command.yml#mail - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.mail` - - -<<< @/files/permission.yml#mail - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/maintenance/index.md b/pulse/ru/docs/command/maintenance/index.md deleted file mode 100644 index 28eb845d..00000000 --- a/pulse/ru/docs/command/maintenance/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/maintenance` - -Комманда для включения технических работ -![command maintenance](/commandmaintenance.png) -![command maintenance server](/commandmaintenanceserver.png) - -[//]: # (localization) - - `localizations → язык.yml → command.maintenance` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#maintenance -<<< @/files/localizations/en_us.yml#maintenance -::: - -### `server_description` - -Сообщения при просмотре сервера, если включены технические работы - -### `server_version` - -Название версии сервера, если включены технические работы - -### `kick` - -Причина исключения с сервера при включении технических работ - -### `format_true` - -Сообщение при включении технических работ - -### `format_false` - -Сообщение при отключении технических работ - -[//]: # (command.yml) - - `command.yml → maintenance` - - -<<< @/files/command.yml#maintenance - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.maintenance` - - -<<< @/files/permission.yml#maintenance - - - -### `join` - -Право для подключения к серверу во время технических работ - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/me/index.md b/pulse/ru/docs/command/me/index.md deleted file mode 100644 index ea06be9e..00000000 --- a/pulse/ru/docs/command/me/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/me` - -Комманда для отображения действия -![command me](/commandme.png) - -[//]: # (localization) - - `localizations → язык.yml → command.me` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#me -<<< @/files/localizations/en_us.yml#me -::: - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → me` - - -<<< @/files/command.yml#me - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.me` - - -<<< @/files/permission.yml#me - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/mute/index.md b/pulse/ru/docs/command/mute/index.md deleted file mode 100644 index 0c03327a..00000000 --- a/pulse/ru/docs/command/mute/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/mute` - -Комманда для того, чтобы замутить игрока -![command mute](/commandmute.png) - -[//]: # (localization) - - `localizations → язык.yml → command.mute` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mute -<<< @/files/localizations/en_us.yml#mute -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `null_time` - -Сообщение, если введено невозможное время - -### `lower_weight_group` - -Сообщение, если комманда исполняется от игрока с группой ниже, чем у игрока на которого применяется модерация - -### `suffix` - -Формат суффикса, который будет отображаться, если игрок имеет активный мут, иначе будет пустота - -### `reasons` - -Список с ключами и значениями, где ключом является слово, а значением конкретная причина - -::: info МОЖНО ВПИСЫВАТЬ СВОИ ПРИЧИНЫ -```yaml -random_kek: "Random reason" -``` -Тогда если я напишу `/mute player 1d random_kek`, то причиной будет `Random reason` - -Если причина не указана, будет использоваться `default` -::: - -### `server` - -Сообщение для всех - -### `person` - -Сообщение для игрока - -[//]: # (command.yml) - - `command.yml → mute` - - -<<< @/files/command.yml#mute - - - - -### `check_group_weight` - -Будут ли проверяться группы игроков. Если игрок, на которого применяется модерация, имеет роль выше, чем отправитель комманды, то комманды не выполнится и будет ошибка `lower_weight_group` - - - -### `time_limits` - -Лимиты по времени в зависимости от группы отправителя. Ключом является вес группы, а значением - максимальное количество времени модерации в милисекундах (`1` секунда = `1000` милисекунд) - -::: info ПРИМЕР - -```yaml - time_limits: - 20: 35000 - 50: 100000 -``` - -- Если игрок имеет вес группы `10`, команда НЕ будет выполнена -- Если игрок имеет вес группы `20`, максимальное количество времени будет `35000` -- Если игрок имеет вес группы `40`, максимальное количество времени также будет `35000` -- Если игрок имеет вес группы `50` и выше, то будет `100000` - -Для безграничного времени нужно использовать значение `-1` - -::: - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.mute` - - -<<< @/files/permission.yml#mute - - - - - diff --git a/pulse/ru/docs/command/mutelist/index.md b/pulse/ru/docs/command/mutelist/index.md deleted file mode 100644 index 273156ba..00000000 --- a/pulse/ru/docs/command/mutelist/index.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/mutelist` - -Комманда для того, чтобы посмотреть список мутов -![command mutelist](/commandmutelist.png) - -[//]: # (localization) - - `localizations → язык.yml → command.mutelist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mutelist -<<< @/files/localizations/en_us.yml#mutelist -::: - -### `empty` - -Сообщение, если список игроков с мутами пуст - -### `null_page` - -Сообщение, если введённая страница не существует - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `global` - -::: details Сообщения для глобальных мутов - -#### `header` - -Верхняя часть сообщения списка - -#### `line` - -Формат каждого мута из списка - -#### `footer` - -Нижняя часть сообщения списка -::: - -### `player` - -::: details Сообщения для мутов игрока - -#### `header` - -Верхняя часть сообщения списка - -#### `line` - -Формат каждого мута из списка - -#### `footer` - -Нижняя часть сообщения списка -::: - -[//]: # (command.yml) - - `command.yml → mutelist` - - -<<< @/files/command.yml#mutelist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.mutelist` - - -<<< @/files/permission.yml#mutelist - - - - - diff --git a/pulse/ru/docs/command/online/index.md b/pulse/ru/docs/command/online/index.md deleted file mode 100644 index ff58da6e..00000000 --- a/pulse/ru/docs/command/online/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/online` - -Комманда для того, чтобы узнать информацию об онлайне игрока -![command online](/commandonline.png) - -[//]: # (localization) - - `localizations → язык.yml → command.online` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#online -<<< @/files/localizations/en_us.yml#online -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `format_current` - -Сообщение, если введённый игрок на сервере - -### `format_first` - -Формат сообщения `/online first`, которое будет отправлено - -### `format_last` - -Формат сообщения `/online last`, которое будет отправлено - -### `format_total` - -Формат сообщения `/online total`, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → online` - - -<<< @/files/command.yml#online - - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.online` - - -<<< @/files/permission.yml#online - - - - - diff --git a/pulse/ru/docs/command/ping/index.md b/pulse/ru/docs/command/ping/index.md deleted file mode 100644 index 4c93951a..00000000 --- a/pulse/ru/docs/command/ping/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/ping` - -Комманда для того, чтобы узнать информацию об задержке игрока -![command ping](/commandping.png) - -[//]: # (localization) - - `localizations → язык.yml → command.ping` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#ping -<<< @/files/localizations/en_us.yml#ping -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → ping` - - -<<< @/files/command.yml#ping - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.ping` - - -<<< @/files/permission.yml#ping - - - - - diff --git a/pulse/ru/docs/command/poll/index.md b/pulse/ru/docs/command/poll/index.md deleted file mode 100644 index 2eecf74f..00000000 --- a/pulse/ru/docs/command/poll/index.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/poll` - -Комманда для проведения голосований -![command pollgui](/commandpollgui.gif) - -Это также можно делать через комманду в чате -![command poll](/commandpoll.png) - - -::: info ИНФОРМАЦИЯ - -Интервал указывается для того, чтобы повторно отправить сообщение в чат о существующем голосовании - -::: - -[//]: # (localization) - - `localizations → язык.yml → command.poll` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#poll -<<< @/files/localizations/en_us.yml#poll -::: - -### `null_poll` - -Сообщение, если голосование не найдено - -### `expired` - -Сообщение, если игрок пытается проголосовать в голосовании, которое закончилось - -### `already` - -Сообщение, если игрок пытается проголосовать в голосовании ещё один раз - -### `vote_true` - -Сообщение, если игрок проголосовал за какой-то вариант - -### `vote_false` - -Сообщение, если игрок убрал свой голос - -### `format` - -Формат сообщения, которое будет отправлено - -### `answer_template` - -Шаблон для каждого ответа - -### `status` - -::: details Заголовки для каждого статуса голосования - -#### `start` - -Заголовок при старте голосования - -#### `run` - -Заголовок при повторном сообщении голосования - -#### `end` - -Заголовок при конце голосования - -::: - -### `modern` - -::: details Система диалогов для создания голосования - -#### `header` - -Имя диалога - -#### `input_name` - -Название для поля "название" - -#### `input_initial` - -Текст по умолчанию для поля "название" - -#### `multiple_name` - -Название для поля-переключателя "разрешить несколько ответов" - -#### `end_time_name` - -Название для поля с длительностью - -#### `repeat_time_name` - -Название для поля с интервалом - -#### `new_answer_button_name` - -Название для кнопки, которая создаёт новый ответ - -#### `remove_answer_button_name` - -Название для кнопки, которая удаляет последний ответ - -#### `input_answer_name` - -Название для нового поля с ответом - -#### `input_answers_initial` - -Текст по умолчанию для поля с ответом - -#### `create_button_name` - -Название для кнопки, которая создаёт голосование - -::: - -[//]: # (command.yml) - - `command.yml → poll` - - -<<< @/files/command.yml#poll - - - -### `enable_gui` - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Работает только для версий `1.21.6` и новее, в старых версиях команда не будет зарегистрирована - -::: - -Добавляет новую команду `/pollgui` (зависит от названия самой команды, т.е. `/название` + `gui`) - - - -### `last_id` - -Последний номер созданного голосования - - - - - -[//]: # (permission.yml) - - `permission.yml → command.poll` - - -<<< @/files/permission.yml#poll - - - -### `create` - -Право для создания голосований - - - - diff --git a/pulse/ru/docs/command/reply/index.md b/pulse/ru/docs/command/reply/index.md deleted file mode 100644 index 5ddba144..00000000 --- a/pulse/ru/docs/command/reply/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/reply` - -Комманда для того, чтобы написать личное сообщение последнему написавшему игроку -![command reply](/commandreply.png) - -::: danger ВНИМАТЕЛЬНО -Комманда не будет работать, если модуль [`Tell`](/docs/command/tell/) выключен -::: - -[//]: # (localization) - - `localizations → язык.yml → command.reply` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#reply -<<< @/files/localizations/en_us.yml#reply -::: - -### `null_receiver` - -Сообщение, если получатель не найден - -[//]: # (command.yml) - - `command.yml → reply` - - -<<< @/files/command.yml#reply - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.reply` - - -<<< @/files/permission.yml#reply - - - - - diff --git a/pulse/ru/docs/command/rockpaperscissors/index.md b/pulse/ru/docs/command/rockpaperscissors/index.md deleted file mode 100644 index 54f1222d..00000000 --- a/pulse/ru/docs/command/rockpaperscissors/index.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/rockpaperscissors` - -Комманда для того, чтобы предложить поиграть в камень-ножницы-бумага -![command rockpaperscissors](/commandrockpaperscissors.png) - -[//]: # (localization) - - `localizations → язык.yml → command.rockpaperscissors` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#rockpaperscissors -<<< @/files/localizations/en_us.yml#rockpaperscissors -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `null_game` - -Сообщение, если игры не существует - -### `wrong_move` - -Сообщение при невозможном ходе - -### `already` - -Сообщение, если игрок уже сделал ход - -### `myself` - -Сообщение, если игрок решил поиграть с самим собой - -### `sender` - -Сообщение для отправителя - -### `receiver` - -Сообщение для получателя - -### `format_move` - -Сообщение при ходе - -### `format_win` - -Сообщение при победе - -### `forma_draw` - -Сообщение при ничье - -### `strategies` - -Список стратегий и их названий - -[//]: # (command.yml) - - `command.yml → rockpaperscissors` - - -<<< @/files/command.yml#rockpaperscissors - - - - -### `strategy` - -Стратегии, где `ключом` является тот, кто побеждает `значение` - -::: info Например я хочу, чтобы `ножницы` побеждали `paper` -Значит я должен написать -```yaml -scissors: - - "paper" -``` - -Значений может быть несколько т.е. -```yaml -scissors: - - "paper" - - "newitem" -``` - -Можно сделать свои ключи и значения -```yaml -customvalue: - - "customobject" -``` -::: - - - - -[//]: # (permission.yml) - - `permission.yml → command.rockpaperscissors` - - -<<< @/files/permission.yml#rockpaperscissors - - - - - diff --git a/pulse/ru/docs/command/sprite/index.md b/pulse/ru/docs/command/sprite/index.md deleted file mode 100644 index 21665e13..00000000 --- a/pulse/ru/docs/command/sprite/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/sprite` - -Комманда для поиска спрайтов из атласов майнкрафта -![sprite](/commandsprite.png) - -[//]: # (localization) - - `localizations → язык.yml → command.sprite` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#sprite -<<< @/files/localizations/en_us.yml#sprite -::: - -### `null_atlas` - -Сообщение, если введённый атлас не существует - -### `null_page` - -Сообщение, если введённая страница не существует - -### `download_error` - -Сообщение при неудачной загрузки файла атласа из интернета. На разных версиях атласы могут отличаться и не существовать, поэтому ошибку нужно воспринимать нормально - -### `atlas_downloading` - -Сообщение при начале загрузки файла атласа из интернета - -### `header` - -Верхняя часть сообщения списка - -### `line_element` - -Формат для каждого компонента, они будут добавляться друг за другом - -#### `footer` - -Нижняя часть сообщения списка - -[//]: # (command.yml) - - `command.yml → sprite` - - -<<< @/files/command.yml#sprite - - - - - -### `categories` - -Список категорий т.е. доступных атласов - -::: info ИНФОРМАЦИЯ -- Каждый атлас скачивается только один раз, если он не существует в папке `FlectonePulse/minecraft//atlases/` -- Каждый атлас имеет итоговый формат `minecraft_textures_atlas_.png.txt` -- Каждый атлас скачивается с собственного веб-сервера Flectone по ссылке `https://flectone.net/files/r/minecraft//atlases/minecraft_textures_atlas_.png.txt` -- Атласы необязательно скачивать с веб-сервера, ты можешь их поместить заранее сам в папку `FlectonePulse/minecraft//atlases/`, получив их с помощью комбинации `F3 + S` в майнкрафте -::: - - - - -[//]: # (permission.yml) - - `permission.yml → command.sprite` - - -<<< @/files/permission.yml#sprite - - - - \ No newline at end of file diff --git a/pulse/ru/docs/command/spy/index.md b/pulse/ru/docs/command/spy/index.md deleted file mode 100644 index ade291b0..00000000 --- a/pulse/ru/docs/command/spy/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/spy` - -Комманда для отслеживания за действиями игроков -![command spy](/commandspy.gif) - -[//]: # (localization) - - `localizations → язык.yml → command.spy` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#spy -<<< @/files/localizations/en_us.yml#spy -::: - -### `format_true` - -Сообщение при включении слежки - -### `format_false` - -Сообщение при выключении слежки - -### `format_log` - -Формат сообщения, которое будет отправлено при слежке за действием - -[//]: # (command.yml) - - `command.yml → spy` - - -<<< @/files/command.yml#spy - - - - - - -### `categories` - -Список категорий с действиями, за которыми происходит слежка - - - - -[//]: # (permission.yml) - - `permission.yml → command.spy` - - -<<< @/files/permission.yml#spy - - - - - diff --git a/pulse/ru/docs/command/stream/index.md b/pulse/ru/docs/command/stream/index.md deleted file mode 100644 index ed05d1f2..00000000 --- a/pulse/ru/docs/command/stream/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/stream` - -Комманда для оповещения о запуске трансляции -![command stream](/commandstream.png) - -Если игрок имеет право на комманду, то ему выдаётся префикс при включении/выключении -![command stream prefix](/commandstreamprefix.png) - -[//]: # (localization) - - `localizations → язык.yml → command.stream` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#stream -<<< @/files/localizations/en_us.yml#stream -::: - -### `already` - -Сообщение, если игрок, который ведёт трансляцию, пытается запустить ещё одну трансляцию - -### `not` - -Сообщение, если игрок, который не ведёт трансляцию, пытается закончить трансляцию - -### `prefix_true` - -Префикс игрока, который в данный момент ведёт трансляцию - -### `prefix_false` - -Префикс игрока, который имеет право вести трансляцию, но в данный момент не ведёт её - -### `url_tag` - -Формат каждой ссылки в оповещении - -### `format_start` - -Оповещение о начале трансляции - -### `format_end` - -Сообщение, если игрок закончил трансляцию - -[//]: # (command.yml) - - `command.yml → stream` - - -<<< @/files/command.yml#stream - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.stream` - - -<<< @/files/permission.yml#stream - - - - - diff --git a/pulse/ru/docs/command/symbol/index.md b/pulse/ru/docs/command/symbol/index.md deleted file mode 100644 index 68a0b821..00000000 --- a/pulse/ru/docs/command/symbol/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/symbol` - -Комманда для поиска unicode символа -![symbol](/commandsymbol.png) - -Огромное спасибо @replaceitem за право использования [списками](https://github.com/replaceitem/symbol-chat) символов - -[//]: # (localization) - - `localizations → язык.yml → command.symbol` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#symbol -<<< @/files/localizations/en_us.yml#symbol -::: - -### `null_category` - -Сообщение, если введённая категория не существует - -### `null_page` - -Сообщение, если введённая страница не существует - -### `header` - -Верхняя часть сообщения списка - -### `line_element` - -Формат для каждого компонента, они будут добавляться друг за другом - -#### `footer` - -Нижняя часть сообщения списка - -[//]: # (command.yml) - - `command.yml → symbol` - - -<<< @/files/command.yml#symbol - - - - - -### `categories` - -Список категорий и символов разделённых пробелами - -::: info ЧТО МОЖНО С ЭТИМ ДЕЛАТЬ? -1. Добавлять свои символы к уже текущим через пробел -2. Переименовывать категории или добавлять свои -::: - - - - -[//]: # (permission.yml) - - `permission.yml → command.symbol` - - -<<< @/files/permission.yml#symbol - - - - - diff --git a/pulse/ru/docs/command/tell/index.md b/pulse/ru/docs/command/tell/index.md deleted file mode 100644 index bd074311..00000000 --- a/pulse/ru/docs/command/tell/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/tell` - -Комманда для того, чтобы написать личное сообщение игроку -![command tell](/commandtell.png) - -Можно использовать для заметок, если вписать свой же ник -![command tell myself](/commandtellmyself.png) - -[//]: # (localization) - - `localizations → язык.yml → command.tell` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#tell -<<< @/files/localizations/en_us.yml#tell -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `sender` - -Сообщение для отправителя - -### `receiver` - -Сообщение для получателя - -### `myself` - -Сообщение для отправителя, если он и есть получатель т.е. для себя - -[//]: # (command.yml) - - `command.yml → tell` - - -<<< @/files/command.yml#tell - - - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.tell` - - -<<< @/files/permission.yml#tell - - - - - diff --git a/pulse/ru/docs/command/tictactoe/index.md b/pulse/ru/docs/command/tictactoe/index.md deleted file mode 100644 index 9630b4e7..00000000 --- a/pulse/ru/docs/command/tictactoe/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/tictactoe` - -Комманда для того, чтобы предложить поиграть в крестики-нолики -![command tictactoe](/commandtictactoe.png) - -По умолчанию кидается запрос в [китайские крестики-нолики](#правила-китайских-крестиков-ноликов), если хочешь в обычные, то используй `/tictactoe ник false` -![command tictactoe default](/commandtictactoedefault.png) - -### Правила китайских крестиков-ноликов - -1. Каждый игрок может поставить только `3` своих метки -2. Если игра не закончилась, то первая метка, которая была поставлена игроком, убирается и ставится новая -3. И так по кругу, пока игра не закончится - -В итоге игра становится сложной и со стратегией! - -[//]: # (localization) - - `localizations → язык.yml → command.tictactoe` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#tictactoe -<<< @/files/localizations/en_us.yml#tictactoe -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `myself` - -Сообщение, если введённый игрок пытается поиграть сам с собой - -### `wrong_game` - -Сообщение, если указанной игры не существует - -### `wrong_move` - -Сообщение, если такой ход невозможен - -### `wrong_by_player` - -Сообщение, если один из игроков, участвующий в игре, вышел - -### `symbol` - -::: details Сообщения для символов -#### `empty` - -Формат сообщения для пустой клетки - -#### `first` - -Формат сообщения для клетки первого игрока - -#### `first_remove` - -Формат сообщения для удаления клетки первого игрока - -#### `first_win` - -Формат сообщения для победной клетки первого игрока - -#### `second` - -Формат сообщения для клетки второго игрока - -#### `second_remove` - -Формат сообщения для удаления клетки второго игрока - -#### `second_win` - -Формат сообщения для победной клетки второго игрока -::: - -### `field` - -Формат сообщения для игрового поля - -### `current_move` - -Формат сообщения для информации о текущем ходе - -### `last_move` - -Форма сообщения для информации о прошлом ходе - -### `format_move` - -Формат сообщения для оповещения о ходе - -### `format_win` - -Сообщение при победе - -### `format_draw` - -Сообщение при ничье - -### `sender` - -Сообщение для отправителя при запросе - -### `format_create` - -Сообщение для получателя при запросе - -[//]: # (command.yml) - - `command.yml → tictactoe` - - -<<< @/files/command.yml#tictactoe - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.tictactoe` - - -<<< @/files/permission.yml#tictactoe - - - - - diff --git a/pulse/ru/docs/command/toponline/index.md b/pulse/ru/docs/command/toponline/index.md deleted file mode 100644 index e5d9dd22..00000000 --- a/pulse/ru/docs/command/toponline/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/toponline` - -Комманда для того, чтобы посмотреть топ игроков по наигранному времени -![command toponline](/commandtoponline.png) - -[//]: # (localization) - - `localizations → язык.yml → command.toponline` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#toponline -<<< @/files/localizations/en_us.yml#toponline -::: - -### `null_page` - -Сообщение, если введённая страница не существует - -#### `header` - -Верхняя часть сообщения списка - -#### `line` - -Формат каждого мута из списка - -#### `footer` - -Нижняя часть сообщения списка - -[//]: # (command.yml) - - `command.yml → toponline` - - -<<< @/files/command.yml#toponline - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.toponline` - - -<<< @/files/permission.yml#toponline - - - - - diff --git a/pulse/ru/docs/command/translateto/index.md b/pulse/ru/docs/command/translateto/index.md deleted file mode 100644 index a153a63c..00000000 --- a/pulse/ru/docs/command/translateto/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/translateto` - -Комманда для перевода сообщения с одного языка на другой -![command translateto](/commandtranslateto.png) - -[//]: # (localization) - - `localizations → язык.yml → command.translateto` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#translateto -<<< @/files/localizations/en_us.yml#translateto -::: - -### `null_or_error` - -Сообщение, если произошла ошибка при переводе - -### `format` - -Формат сообщения, которое будет отправлено - -[//]: # (command.yml) - - `command.yml → translateto` - - -<<< @/files/command.yml#translateto - - - - -### `service` - -Вид АПИ (`DEEPL`, `GOOGLE`, `YANDEX`), который будет использоваться при переводе - -::: danger ВНИМАТЕЛЬНО -`DEEPL` и `YANDEX` требуют **токен** и отдельную настройку в `integration.yml` -::: - - - -### `languages` - -Список языков, который используется только для подсказки при использовании комманды - - - - - -[//]: # (permission.yml) - - `permission.yml → command.translateto` - - -<<< @/files/permission.yml#translateto - - - - - diff --git a/pulse/ru/docs/command/try/index.md b/pulse/ru/docs/command/try/index.md deleted file mode 100644 index 28390e6a..00000000 --- a/pulse/ru/docs/command/try/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/try` - -Комманда для отображения выполнения действия с шансом -![command try](/commandtry.png) - -[//]: # (localization) - - `localizations → язык.yml → command.try` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#try -<<< @/files/localizations/en_us.yml#try -::: - -### `format_true` - -Формат сообщения, которое будет отправлено, если действие выполнено успешно - -### `format_false` - -Формат сообщения, которое будет отправлено, если действие выполнено неуспешно - -[//]: # (command.yml) - - `command.yml → try` - - -<<< @/files/command.yml#try - - - - -### `min` - -Минимальный шанс выполнения действия - -### `max` - -Максимальный шанс выполнения действия - -### `good` - -Шанс выполнения действия, с которого считается, что оно выполнено успешно - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.try` - - -<<< @/files/permission.yml#try - - - - - diff --git a/pulse/ru/docs/command/unban/index.md b/pulse/ru/docs/command/unban/index.md deleted file mode 100644 index 690af165..00000000 --- a/pulse/ru/docs/command/unban/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/unban` - -Комманда для того, чтобы разблокировать игрока -![command unban](/commandunban.png) - -[//]: # (localization) - - `localizations → язык.yml → command.unban` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#unban -<<< @/files/localizations/en_us.yml#unban -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `not_banned` - -Сообщение, если введённый игрок не заблокирован - -### `lower_weight_group` - -Сообщение, если комманда исполняется от игрока с группой ниже, чем у игрока на которого применяется модерация - -### `format` - -Сообщение при разблокировке - -[//]: # (command.yml) - - `command.yml → unban` - - -<<< @/files/command.yml#unban - - - -### `check_group_weight` - -Будут ли проверяться группы игроков. Если игрок, на которого применяется модерация, имеет роль выше, чем отправитель комманды, то комманда не выполнится и будет ошибка `lower_weight_group` - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.unban` - - -<<< @/files/permission.yml#unban - - - - - diff --git a/pulse/ru/docs/command/unmute/index.md b/pulse/ru/docs/command/unmute/index.md deleted file mode 100644 index 9a07a1c3..00000000 --- a/pulse/ru/docs/command/unmute/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/unmute` - -Комманда для того, чтобы размутить игрока -![command unmute](/commandunmute.png) - -[//]: # (localization) - - `localizations → язык.yml → command.unmute` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#unmute -<<< @/files/localizations/en_us.yml#unmute -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `not_muted` - -Сообщение, если введённый игрок не замучен - -### `lower_weight_group` - -Сообщение, если комманда исполняется от игрока с группой ниже, чем у игрока на которого применяется модерация - -### `format` - -Сообщение при размуте - -[//]: # (command.yml) - - `command.yml → unmute` - - -<<< @/files/command.yml#unmute - - - -### `check_group_weight` - -Будут ли проверяться группы игроков. Если игрок, на которого применяется модерация, имеет роль выше, чем отправитель комманды, то комманда не выполнится и будет ошибка `lower_weight_group` - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.unmute` - - -<<< @/files/permission.yml#unmute - - - - - diff --git a/pulse/ru/docs/command/unwarn/index.md b/pulse/ru/docs/command/unwarn/index.md deleted file mode 100644 index 0ced2cdf..00000000 --- a/pulse/ru/docs/command/unwarn/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/unwarn` - -Комманда для того, чтобы снять предупреждение с игрока -![command unwarn](/commandunwarn.png) - -[//]: # (localization) - - `localizations → язык.yml → command.unwarn` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#unwarn -<<< @/files/localizations/en_us.yml#unwarn -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `not_warned` - -Сообщение, если введённый игрок не имеет предупреждения - -### `lower_weight_group` - -Сообщение, если комманда исполняется от игрока с группой ниже, чем у игрока на которого применяется модерация - -### `format` - -Сообщение при снятии предупреждения - -[//]: # (command.yml) - - `command.yml → unwarn` - - -<<< @/files/command.yml#unwarn - - - -### `check_group_weight` - -Будут ли проверяться группы игроков. Если игрок, на которого применяется модерация, имеет роль выше, чем отправитель комманды, то комманда не выполнится и будет ошибка `lower_weight_group` - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.unwarn` - - -<<< @/files/permission.yml#unwarn - - - - - diff --git a/pulse/ru/docs/command/warn/index.md b/pulse/ru/docs/command/warn/index.md deleted file mode 100644 index 18d808a7..00000000 --- a/pulse/ru/docs/command/warn/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/warn` - -Комманда для того, чтобы дать предупреждение игроку -![command warn](/commandwarn.png) - -[//]: # (localization) - - `localizations → язык.yml → command.warn` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#warn -<<< @/files/localizations/en_us.yml#warn -::: - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `null_time` - -Сообщение, если введено невозможное время - -### `lower_weight_group` - -Сообщение, если комманда исполняется от игрока с группой ниже, чем у игрока на которого применяется модерация - -### `reasons` - -Список с ключами и значениями, где ключом является слово, а значением конкретная причина - -::: info Можно вписывать свои причины, например -```yaml -random_kek: "Random reason" -``` -Тогда если я напишу `/warn player 1d random_kek`, то причиной будет `Random reason` - -Если причина не указана, будет использоваться `default` -::: - -### `server` - -Сообщение для всех - -### `person` - -Сообщение для игрока - -[//]: # (command.yml) - - `command.yml → warn` - - -<<< @/files/command.yml#warn - - - - -### `check_group_weight` - -Будут ли проверяться группы игроков. Если игрок, на которого применяется модерация, имеет роль выше, чем отправитель комманды, то комманды не выполнится и будет ошибка `lower_weight_group` - - - -### `time_limits` - -Лимиты по времени в зависимости от группы отправителя. Ключом является вес группы, а значением - максимальное количество времени модерации в милисекундах (`1` секунда = `1000` милисекунд) - -::: info ПРИМЕР - -```yaml - time_limits: - 20: 35000 - 50: 100000 -``` - -- Если игрок имеет вес группы `10`, команда НЕ будет выполнена -- Если игрок имеет вес группы `20`, максимальное количество времени будет `35000` -- Если игрок имеет вес группы `40`, максимальное количество времени также будет `35000` -- Если игрок имеет вес группы `50` и выше, то будет `100000` - -Для безграничного времени нужно использовать значение `-1` - -::: - - - -### `actions` - -Список, где ключом является `количество` предупреждений и значением `действие`, которое должно выполниться - -::: info Например я хочу, чтобы при `10` варнов игрока банило -Тогда я должен вписать `10: ban ohh`. Действие выполнится если у игрока будет `10` активных предупреждений -::: - - - - - -[//]: # (permission.yml) - - `permission.yml → command.warn` - - -<<< @/files/permission.yml#warn - - - - - diff --git a/pulse/ru/docs/command/warnlist/index.md b/pulse/ru/docs/command/warnlist/index.md deleted file mode 100644 index 53e1f833..00000000 --- a/pulse/ru/docs/command/warnlist/index.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -authors: - - TheFaser ---- - -# `/warnlist` - -Комманда для того, чтобы посмотреть список предупреждений -![command warnlist](/commandwarnlist.png) - -[//]: # (localization) - - `localizations → язык.yml → command.warnlist` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#warnlist -<<< @/files/localizations/en_us.yml#warnlist -::: - -### `empty` - -Сообщение, если список игроков предупреждений пуст - -### `null_page` - -Сообщение, если введённая страница не существует - -### `null_player` - -Сообщение, если введённый игрок не найден - -### `global` - -::: details Сообщения для глобальных предупреждений - -#### `header` - -Верхняя часть сообщения списка - -#### `line` - -Формат каждого предупреждения из списка - -#### `footer` - -Нижняя часть сообщения списка -::: - -### `player` - -::: details Сообщения для предупреждений игрока - -#### `header` - -Верхняя часть сообщения списка - -#### `line` - -Формат каждого предупреждения из списка - -#### `footer` - -Нижняя часть сообщения списка -::: - -[//]: # (command.yml) - - `command.yml → warnlist` - - -<<< @/files/command.yml#warnlist - - - - - - - -[//]: # (permission.yml) - - `permission.yml → command.warnlist` - - -<<< @/files/permission.yml#warnlist - - - - - diff --git a/pulse/ru/docs/config/cache/index.md b/pulse/ru/docs/config/cache/index.md deleted file mode 100644 index 7a19c088..00000000 --- a/pulse/ru/docs/config/cache/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -order: 30 -authors: - - TheFaser ---- - -# Кэш - -Настройка размера и времени жизни кэша - -::: warning ПРЕДУПРЕЖДЕНИЕ - -НЕЛЬЗЯ удалять какой-либо из кэшов, даже если ты думаешь, что он не будет использоваться, кэш должен быть создан как объект - -::: - -[//]: # (config.yml) - - `config.yml → cache` - - -<<< @/files/config.yml#cache - -### `types` - -Список всех кэшов, которые используются в `FlectonePulse` - -| Тип | Описание | -|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `COOLDOWN` | Для хранения задержек, которые выдаются игрокам при использовании модуля. Например задержка сообщений в чат или в команде `/me`. Это место для хранения, а не включения задержки, каждая задержка включается внутри модуля отдельно | -| `DIALOG_CLICK` | Для отслеживания количество кликов в кастомных диалогах, например у `/chatsetting`. Это позволяет закрывать диалог у людей, которые слишком часто в них кликают т.е. спамят | -| `OFFLINE_PLAYERS` | Для хранения оффлайн игроков, которые вышли с сервера, но могут зайти обратно. А также здесь хранятся ники, которые могли бы быть игроками, например `/tell Notch`, очевидно `Notch` нет на сервере, но для поиска такого игрока `FlectonePulse` использует ряд операций и в конце обращается к базе данных, если он будет найден, то сохранится уже с этими данными, иначе будет неизвестным игроком. При следующих `/tell Notch` он сразу будет взят из кэша, избегая всех проверок | -| `MODERATION` | Для хранения результатов модерации об игроках. Чаще всего используется, чтобы при входе игрока на сервер каждый раз не обращаться к базе данных | -| `LEGACY_COLOR_MESSAGE` | Для хранения результатов форматирования строк, содержащих устаревшее форматирование, например зачем каждый раз заменять `&c` на ``, если это можно взять из кэша. Это необходимо, потому что для каждого игрока форматируется собственное сообщение, которые чаще всего одинаковые | -| `MENTION_MESSAGE` | Для хранения результатов форматирования сообщений у модуля `mention`. Это необходимо, потому что для каждого игрока форматируется собственное сообщение, которые чаще всего одинаковые | -| `SWEAR_MESSAGE` | Для хранения результатов форматирования сообщений у модуля `swear`. Это необходимо, потому что для каждого игрока форматируется собственное сообщение, которые чаще всего одинаковые | -| `REPLACEMENT_MESSAGE` | Для хранения результатов форматирования сообщений у модуля `replacement`. Это необходимо, потому что для каждого игрока форматируется собственное сообщение, которые чаще всего одинаковые | -| `REPLACEMENT_IMAGE` | Для хранения отформатированных изображений у модуля `replacement` | -| `TRANSLATE_MESSAGE` | Для хранения сообщений, которые должны быть переведены | -| `PROFILE_PROPERTY` | Для хранения профилей игроков с их скинами, чтобы каждый раз не обращаться к `SkinsRestorer` и не создавать их вручную | - -::: info ПАРАМЕТРЫ -#### `duration` - -Время жизни неиспользуемого объекта в кэше, после которого он будет удалён - -#### `time_unit` - -Тип времени жизни неиспользуемого объекта кэша - -#### `size` - -Максимальный размер кэша - -::: \ No newline at end of file diff --git a/pulse/ru/docs/config/command/index.md b/pulse/ru/docs/config/command/index.md deleted file mode 100644 index 7eb993d4..00000000 --- a/pulse/ru/docs/config/command/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -order: 15 -authors: - - TheFaser ---- - -# Команда - -::: warning ПРЕДУПРЕЖДЕНИЕ -Это не связано с модулем комманд, для их настройки нужно перейти в [command](/docs/command/) -::: - -[//]: # (config.yml) - - `config.yml → command` - - -<<< @/files/config.yml#command - -### `unregister_on_reload` - -::: warning ПРЕДУПРЕЖДЕНИЕ -Не рекомендуется включать на старых версиях майнкрафта, иначе могут быть ошибки/предупреждения в консоли от сервера, но они никак не влияют на работу плагина -::: - -- Если включено, то `FlectonePulse` будет удалять и снова добавлять собственные команды при `/flectonepulse reload`. Это может вызывать просадки по `tps` и `mspt` из-за большого количество пакетов, поэтому лучше выключить эту настройку если вы сталкиваетесь с подобной проблемой. -- Если выключено, то для корректного отключения комманды из `FlectonePulse` (в `commands.yml`) нужно будет перезагружать сервер. - -### `disabled_fabric` - -Список команд **не** из `FlectonePulse`, которые должны быть отключены при старте `Fabric` сервера. Это даёт возможность заменять уже занятые команды на `Fabric`, например `/me` или `/ban` \ No newline at end of file diff --git a/pulse/ru/docs/config/database/index.md b/pulse/ru/docs/config/database/index.md deleted file mode 100644 index a5727bda..00000000 --- a/pulse/ru/docs/config/database/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -order: 5 -authors: - - TheFaser ---- - -# База данных - -Место для хранения важной информации об игроках - -::: tip ИНФОРМАЦИЯ -В полях для датабазы можно использовать environment variables, например `${VALUE}` -::: - -[//]: # (config.yml) - - `config.yml → database` - - -<<< @/files/config.yml#database - -### `ignore_existing_driver` - -Нужно ли скачивать библиотеку для базы данных, даже если эта библиотека уже существует на сервере - -::: info ИНФОРМАЦИЯ - -Это может решить проблему, когда другие плагины используют устаревшую библиотеку и `FlectonePulse` не может правильно запуститься - -::: - -### `type` - -Тип используемой базы данных, в данный момент поддерживаются: - -| Вид | Объяснение | -|--------------|-----------------------------------| -| `SQLite` | Локальная, в виде файла | -| `MySQL` | Серверная, требуется подключение | -| `MariaDB` | Серверная, требуется подключение | -| `H2` | Локальная, в виде файла | -| `PostgreSQL` | Серверная, требуется подключение | - -### `name` - -Название базы данных - -### `host` - -Адрес сервера, на котором расположена база данных - -### `port` - -Порт подключения к базе данных на сервере - -### `user` - -Название пользователя, который будет использован для подключения к базе данных - -### `password` - -Пароль для подключения к базе данных - -### `parameters` - -Параметры подключения к базе данных - -### `prefix` - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Если ты изменишь префикс, значит таблицы будут новые и прошлые данные игроков не будут использоваться - -::: - -Префикс таблиц базы данных, если пусто, то будет использован префикс `fp_` \ No newline at end of file diff --git a/pulse/ru/docs/config/editor/index.md b/pulse/ru/docs/config/editor/index.md deleted file mode 100644 index 4fb08e9a..00000000 --- a/pulse/ru/docs/config/editor/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -order: 20 -authors: - - TheFaser ---- - -# Веб-редактор - -Веб-редактирование для `FlectonePulse`. Backend сервер запускается тамже, где установлен `FlectonePuls` - -![editor](/flectonepulseeditor.gif) - -[//]: # (config.yml) - - `config.yml → editor` - - -<<< @/files/config.yml#editor - -### `host` - -Хост (айпи) текущего сервера, можно указывать и домен - -### `https` - -Включает работу `https`, вместо `http` - -### `port` - -Незанятый порт текущего сервера - diff --git a/pulse/ru/docs/config/index.md b/pulse/ru/docs/config/index.md deleted file mode 100644 index 4d1623f2..00000000 --- a/pulse/ru/docs/config/index.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -order: -1 -authors: - - TheFaser ---- - -# Конфигурация - -Основная конфигурация `FlectonePulse`, без которой невозможна работа - -[//]: # (config.yml) - - `config.yml` - - -<<< @/files/config.yml#version - -### `version` - -Текущая версия плагина, используемая для корректного перехода между версиями плагина - -::: warning ПРЕДУПРЕЖДЕНИЕ -Не изменяй версию плагина, если не знаешь, что делаешь! -::: \ No newline at end of file diff --git a/pulse/ru/docs/config/language/index.md b/pulse/ru/docs/config/language/index.md deleted file mode 100644 index 7bc64bd5..00000000 --- a/pulse/ru/docs/config/language/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -order: 1 -authors: - - TheFaser ---- - -# Язык - -Настройка языка и поведени - -[//]: # (config.yml) - - `config.yml → language` - - -<<< @/files/config.yml#language - -### `type` - -Локализация, используемая для всех сообщений плагина - -::: warning ПРЕДУПРЕЖДЕНИЕ -Выбираемая локализация должна быть из папки `localizations` -::: - -Можно создавать и использовать свои локализации, для этого: -1. Скопируй один файл локализации, например `ru_ru.yml` -2. Переименуй его, желательно так, как в [игре](https://minecraft.wiki/w/Language) -3. Теперь можно изменять любые сообщения внутри этого файла - -::: info ПРИМЕР -Я хочу перевести плагин на Беларуский -1. Копирую файл `ru_ru.yml` -2. Переименовываю его в `be_by.yml` - ![locale](/locale.png) -3. Готово! -::: - -### `by_player` - -Если включено, то у каждого игрока будет проверяться его локализация майнкрафта и взависимости от этого будет показываться [сообщение](/docs/message/) - -::: tip ИНФОРМАЦИЯ - -Если ты изменяешь сообщения с включенным `by_player`, то не забывай это делать ВО ВСЕХ файлах локализации - -::: - -![locale](/locale.gif) - -Если такой локализации нет, то будет использована локализация из `type` \ No newline at end of file diff --git a/pulse/ru/docs/config/logger/index.md b/pulse/ru/docs/config/logger/index.md deleted file mode 100644 index a74db969..00000000 --- a/pulse/ru/docs/config/logger/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -order: 25 -authors: - - TheFaser ---- - -# Логгер - -Настройка всего, что связано с консолью и логами - -::: warning ПРЕДУПРЕЖДЕНИЕ -Здесь используются `ANSI` цвета для сообщений, обычные цвета не будут работать -::: - -[//]: # (config.yml) - - `config.yml → logger` - - -<<< @/files/config.yml#logger - -### `console` - -Используется для отображения имени, когда сообщения создано консолью -![console](/console.gif) - -### `prefix` - -Префикс у всех сообщений, которые пишет `FlectonePulse` в консоль - -### `description` - -Сообщение при успешном старте, `` заменится на текущую версию `FlectonePulse` - -### `warn` - -Цвет для сообщений с предупреждением - -### `info` - -Цвет для сообщений с информацией - -### `filter` - -Идея взята [отсюда](https://github.com/Whitescan/ConsoleFilter/blob/master/src/main/java/dev/whitescan/consolefilter/share/LogFilter.java), спасибо @Whitescan - -Списком указываются сообщения, которые нужно не показывать, используя ключевые слова, встречающиеся в сообщении - -::: info НАПРИМЕР Я ХОЧУ ОТФИЛЬТРОВАТЬ -![filter](/filter.png) - -Значит нужно вписать: -`Unknown or incomplete command` или `command` или `Unknown` -::: \ No newline at end of file diff --git a/pulse/ru/docs/config/metrics/index.md b/pulse/ru/docs/config/metrics/index.md deleted file mode 100644 index 68415efc..00000000 --- a/pulse/ru/docs/config/metrics/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -order: 35 -authors: - - TheFaser ---- - -# Метрика - -Сбор анонимной информации о сервере - -::: tip ИНФОРМАЦИЯ - -`FlectonePulse` не собирает ники ваших игроков, не собирает айпи вашего сервера, не собирает ничего личного о сервере. Ваш сервер не возможно опознать по этой информации, вам не о чем беспокоиться. Всю информацию, которая собирается, можно посмотреть в [серверной аналитике](/metrics/) - -::: - -[//]: # (config.yml) - - `config.yml → metrics` - - -<<< @/files/config.yml#metrics - -### `enable` - -Включение/Отключение сбора анонимной информации - -::: info СПАСИБО! - -Если у вас включена метрика, вы сильно помогаете разработке `FlectonePulse` - -::: \ No newline at end of file diff --git a/pulse/ru/docs/config/module/index.md b/pulse/ru/docs/config/module/index.md deleted file mode 100644 index 05c5215e..00000000 --- a/pulse/ru/docs/config/module/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -order: 15 -authors: - - TheFaser ---- - -# Модуль - -Настройка самого главного модуля `FlectonePulse` - -[//]: # (config.yml) - - `config.yml → module` - - -<<< @/files/config.yml#module - -### `enable` - -Включает или выключает работу всех модулей - -- Каждый модуль имеет родителя (тот, кто выше находится) - -::: info НАПРИМЕР -```yaml -house: - door: - chair: -``` - -`house` является родителем для `door` и `chair` -::: - -- Каждый модуль зависит от `enable` родителя - -::: info НАПРИМЕР -```yaml -house: - enable: false - door: - enable: true - chair: - enable: true -``` - -`house` выключен, значит внезависимости от того, включены ли `door` и `chair` - они тоже будут выключены -::: - -### `use_paper_message_sender` - -Если включено, `FlectonePulse` будет использовать `Paper`, как инструмент для отправки сообщения в чат игроку. Как это работает? Сначала плагин создаёт сообщение внутри себя и получает `FlectonePulse.Component`, этот объект преобразуется в обычную строчку `String`. Далее используется сам `Paper`, чтобы из этой строчки получить `Paper.Component` и отправить его игроку - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Чтобы это работало, на сервере должен быть установлен `PacketEvents` отдельным плагином и ядро сервера должно быть `Paper` или его форк - -::: - -[//]: # (permission.yml) - - `permission.yml` - - -<<< @/files/permission.yml#module - - \ No newline at end of file diff --git a/pulse/ru/docs/config/proxy/index.md b/pulse/ru/docs/config/proxy/index.md deleted file mode 100644 index 9abf9c29..00000000 --- a/pulse/ru/docs/config/proxy/index.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -order: 10 -authors: - - TheFaser ---- - -# Прокси - -Используется для синхронизации нескольких серверов с помощью BungeeCord/Velocity или Redis - -::: tip ИНФОРМАЦИЯ -Это работает на любой платформе, где есть FlectonePulse. Для Bukkit и Fabric серверов. -::: - -[//]: # (config.yml) - - `config.yml → proxy` - - -<<< @/files/config.yml#proxy - -### `clusters` - -Список кластеров, к которым должен быть подключён сервер. Используется только тогда, когда включен режим прокси. -Если список пустой, то сервер получает все сообщения с других серверов - -::: info КАК ИСПОЛЬЗОВАТЬ? -Нужно вписать название кластера на всех серверах, где сообщение будет получено и отправлено -```yaml -clusters: - - "test_cluster" -``` - -Так сервера связываются между собой и сообщения будут только между этими серверами -::: - -### `bungeecord` - -Включает связь с `BungeeCord` - -::: tip КАК ЭТО НАСТРОИТЬ? -1. Файл `FlectonePulse-bukkit.jar` нужно поставить на `BungeeCord` в папку `plugins`. Даже если у вас Fabric сервер, на `BungeeCord` нужно ставить именно `FlectonePulse-bukkit.jar` -2. На всех серверах, где должна быть связь с `BungeeCord`, должен быть включен `bungeecord: true` в FlectonePulse -3. Выбранная датабаза должна быть `MySQL` или `MariaDB` или `PostgreSQL` (т.е. серверная) -::: - -### `velocity` - -Включает связь с `Velocity` - -::: tip КАК ЭТО НАСТРОИТЬ? -1. Файл `FlectonePulse-bukkit.jar` нужно поставить на `Velocity` в папку `plugins`. Даже если у вас Fabric сервер, на `Velocity` нужно ставить именно `FlectonePulse-bukkit.jar` -2. На всех серверах, где должна быть связь с `Velocity`, должен быть включен `velocity: true` в FlectonePulse -3. Выбранная датабаза должна быть `MySQL` или `MariaDB` или `PostgreSQL` (т.е. серверная) -::: - -### `redis` - -Используется в качестве коммуникаций между разными серверами. Для `user` и `password` можно использовать environment variables, например `${VALUE}` - -::: details НАСТРОЙКА REDIS - -#### `enable` - -Включает работу `Redis` - -#### `host` - -Хост (айпи) сервера, на котором запущен `Redis` - - -#### `port` - -Порт сервера, на котором запущен `Redis` - -#### `ssl` - -Включает использование `SSL` - -#### `user` - -Имя пользователя в `Redis`, если его нет, то можно оставить пустым - -#### `password` - -Пароль пользователя в `Redis`, если его нет, то можно оставить пустым - -::: \ No newline at end of file diff --git a/pulse/ru/docs/index.md b/pulse/ru/docs/index.md deleted file mode 100644 index 48cca3fa..00000000 --- a/pulse/ru/docs/index.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: "Документация" -authors: - - TheFaser ---- - -
- flectone -
-

FlectonePulse — документация

-

Полное руководство по настройке и использованию FlectonePulse

-
- -## Часто задаваемые вопросы (FAQ) - -### 1. Что такое FlectonePulse и для чего он нужен? -FlectonePulse — это плагин для серверов Minecraft, который позволяет полностью настраивать сообщения, чат, команды и интеграции. Он поддерживает все популярные платформы (Bukkit, Spigot, Paper, Purpur, Folia, BungeeCord, Velocity и даже Fabric) и предоставляет гибкую систему форматирования текста, автоматическое определение языка игроков и интеграции с Discord, Telegram и Twitch. FlectonePulse работает на всех версиях начиная с 1.8.8 и заканчивая самой последней - -### 2. Как установить FlectonePulse? - -- #### Bukkit -1. Скачайте плагин с [Modrinth](https://modrinth.com/plugin/flectonepulse) -2. Поместите файл плагина в папку `plugins` вашего сервера -3. Перезапустите сервер -4. Настройте конфигурацию в файлах - -- #### Fabric -1. Скачайте мод с [Modrinth](https://modrinth.com/plugin/flectonepulse) -2. Поместите файл мода в папку `mods` вашего сервера, а также установите `PacketEvents` и `Fabric-API` -3. Перезапустите сервер -4. Настройте конфигурацию в файлах - -| Файл | Ссылка на документацию | Объяснение | -|---------------------|--------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `config.yml` | [Конфигурация](/docs/config/) | Основная конфигурация FlectonePulse, без которой невозможна правильная работа. Здесь настраиваются база данных, язык плагина, режим прокси и т.д. | -| `command.yml` | [Команды](/docs/command/) | Настройка всех **собственных** команд. Их можно использовать, набрав в Minecraft `/flectonepulse:название`. | -| `integration.yml` | [Интеграции](/docs/integration/) | Настройка взаимодействий с внешними плагинами и сервисами. | -| `message.yml` | [Сообщения](/docs/message/) | Настройка сообщений FlectonePulse (условия их появления и содержание).
**Не путать с настройкой формата сообщений**, которая выполняется в файлах `/localizations/...`. | -| `localizations/...` | Указано в каждом пункте документации команд и сообщений | В этой папке находятся файлы с настройками для каждого языка игроков ([см. язык](/docs/config/language/)). Здесь настраивается **формат** сообщений, т.е. текст. | -| `permission.yml` | Указано в каждом пункте документации команд, сообщений и интеграций | Настройка прав доступа. По умолчанию права настроены так, чтобы большинство функций были доступны всем игрокам без необходимости дополнительной настройки. | - -### 3. Как настроить форматирование сообщений? -FlectonePulse обладает универсальной системой форматирования текста, поддерживающей различные цветовые форматы — от классических кодов до современных градиентов. - - - -*Для гибкости вы можете использовать `&` или `§` как взаимозаменяемые символы.* - -```yaml -welcome-message: "&lПривет
!" -``` - -![welcome message](/welcomemessage.png) - -### 4. Можно ли отключить определённые функции плагина? -Да, FlectonePulse использует модульную систему. Любую функцию (команды, сообщения или интеграции) можно отключить в файлах `command.yml`, `message.yml` или `integration.yml` соответственно. После внесения изменений перезапустите плагин командой `/flectonepulse reload`. - -### 5. Как работает автоматическое определение языка? -Если в `config.yml` включена опция `by_player`, плагин автоматически определяет язык Minecraft игрока и отображает сообщения из папки `localizations/...` на этом языке. Если локализация недоступна, используется язык по умолчанию из конфигурации. Подробности в [документации по локализации](/docs/config/language/). - -### 6. Какие интеграции поддерживает FlectonePulse? -Плагин интегрируется с Discord, Telegram и Twitch, позволяя игрокам общаться через разные платформы. Также поддерживаются сторонние плагины Minecraft, например, для запрета игрокам с мутом говорить в PlasmoVoice и SimpleVoice. Настройка интеграций выполняется в файле `integration.yml`. Подробности в [документации по интеграциям](/docs/integration/). - -### 7. Как использовать команду `/chatsetting`? -Введите в чат команду `/chatsetting`, чтобы настроить чат и связанные функции (например, цвет, стиль, уведомления). - -![commandchatsetting](/commandchatsetting.gif) - -### 8. Поддерживает ли FlectonePulse PlaceholderAPI? -Да, FlectonePulse полностью совместим с PlaceholderAPI и MiniPlaceholders. Используйте плейсхолдеры в сообщениях. - -### 9. Как использовать команду `/symbol`? -Введите в чат команду `/symbol`, чтобы искать и использовать Unicode-эмодзи. - -![commandsymbol](/commandsymbol.png) - -### 10. Есть ли поддержка мини-игр в чате? -Да, игроки могут использовать встроенные мини-игры, такие как крестики-нолики или камень-ножницы-бумага. - -![commandtictactoe](/commandtictactoe.png) - -![commandrockpaperscissors](/commandrockpaperscissors.png) - -### 11. Чем FlectonePulse отличается от FlectoneChat? -FlectonePulse — это новый проект, а не улучшенная версия FlectoneChat. FlectoneChat был экспериментом, а FlectonePulse создан с учётом прошлых ошибок, предлагая больше возможностей и кастомизации. - -### 12. Как включить ототображение имени над игроком? -Включите настройку `name_visible` в файле `message.yml`: - -<<< @/files/message.yml#scoreboard - -После изменения выполните команду `/flectonepulse reload`. Подробности в [документации по настройке](/docs/message/format/scoreboard/). - -### 13. Как настроить отображение имени игрока? -Настройка имени игрока (`display`) выполняется в файле `localizations/...`: - -::: code-group -<<< @/files/localizations/ru_ru.yml#names -<<< @/files/localizations/en_us.yml#names -::: - -После изменений выполните `/flectonepulse reload`. Подробности в [документации по локализации](/docs/message/format/names/). - -### 14. Как настроить цвета в сообщениях и интерфейсе? -Настройка цветов выполняется в файле `message.yml` с помощью модуля `fcolor`: - -<<< @/files/message.yml#fcolor - -Здесь задаются цвета по умолчанию, если игрок не выбрал свои в `/chatsetting` или `/chatcolor`. Можно запретить изменение цветов в соответствующих командах. Подробности в [руководстве по форматированию](/docs/message/format/fcolor/). - -::: tip СОВЕТ -Проще изменить 4 цвета здесь, чем заменять `` во всех настройках плагина. -::: - -### 15. Как настроить ТАБ (список игроков)? -Для включения/отключения модулей ТАБа настройте файл `message.yml`: - -```yaml -tab: - enable: true - header: - enable: true - footer: - enable: true - playerlistname: - enable: true -``` - -Для изменения сообщений отредактируйте файл локализации `localizations/...`: - -```yaml -tab: - header: - lists: - - - " " - - "👾" - - " " - - - " " - - "❤" - - " " - footer: - lists: - - - " " - - "ТПС , Онлайн " - - " " - - - " " - - "Привет !" - - " " - playerlistname: - format: "" -``` - -::: warning ВАЖНО -Для сортировки ТАБа по донатным группам включите [`tab_sort`](/docs/integration/luckperms/#tab-sort). -::: - -После изменений выполните `/flectonepulse reload`. Подробности в [документации по ТАБ](/docs/message/tab/). - -### 16. Что делать, если возникают ошибки? -1. Проверьте консоль сервера на наличие ошибок и отправите их в [Discord-сообщество](https://discord.com/channels/861147957365964810/1271850075064369152) для помощи. -2. Убедитесь, что используете последнюю версию плагина. -3. Ознакомьтесь с документацией или получите персональную техническую поддержку для бустеров на [Boosty](https://boosty.to/thefaser). - -### 17. Как связаться с разработчиками? -Присоединяйтесь к [Discord-сообществу](https://discord.flectone.net/) для поддержки и предложений. Оставьте звезду на [GitHub](https://github.com/Flectone/FlectonePulse) или отзыв на [SpigotMC](https://www.spigotmc.org/resources/flectonepulse.121618/). - -### 18. Когда выйдет новая версия FlectonePulse с поддержкой последней версии Minecraft? -Скорее всего, FlectonePulse уже поддерживает новейшую версию Minecraft. Экспериментальные версии доступны для скачивания на [GitHub](https://github.com/Flectone/FlectonePulse/actions/) или в [Discord-канале для тестеров](https://discord.com/channels/861147957365964810/1357058707011272926). Если версия Minecraft уже вышла, а обновление FlectonePulse отсутствует, это связано с ожиданием релиза PacketEvents — основной библиотеки, используемой FlectonePulse для взаимодействия с сервером. Как только PacketEvents выйдет в релиз, FlectonePulse будет обновлён. - -::: danger ВНИМАТЕЛЬНО -Тестовые версии используйте на свой страх и риск. Эти версии чаще всего не созданы для того, чтобы использовать их в продакшене, они могут быть сломаны или сломать вам прошлую версию FlectonePulse -::: - -### 19. Работает ли FlectonePulse с прокси и как его настроить? -FlectonePulse поддерживает прокси-серверы, включая BungeeCord и Velocity. Для работы плагина необходимо установить один и тот же файл плагина как на прокси, так и на сервер. На прокси файлы конфигурации не создаются — оно выступает в роли моста. Все настройки выполняются в файлах на серверах. Для корректной работы обязательно подключение к базе данных MySQL, которая должна быть настроена в файле `config.yml` на серверах. Также нужно включить один из режимов `velocity` или `bungeecord`, подробности в [документации по конфигурации](/docs/config/proxy/). - -### 20. Поддерживает ли FlectonePulse ядра, работающие одновременно с модами и плагинами, такие как Arclight или Mohist, а также работает ли он на Fabric? - -FlectonePulse не тестировался на ядрах, поддерживающих одновременно моды и плагины (например, Arclight или Mohist), и их поддержка не предполагается. Основная проблема заключается в библиотеке Libby, используемой для загрузки зависимостей, которая не работает на таких ядрах. Теоретически можно собрать FlectonePulse со всеми необходимыми зависимостями для запуска на этих ядрах, но нет гарантии корректной работы PacketEvents. FlectonePulse работает на Fabric, но только на самой последней версии Майнкрафта из-за сложности поддержки мульти-версий. - -::: info ИНФОРМАЦИЯ - -На последних версиях Mohist была исправлена основная проблема, поэтому там FlectonePulse работает без явных проблем - -::: - -### 21. Твой плагин, использующий чат, и FlectonePulse несовместимы? - -По умолчанию `FlectonePulse` имеет настройку `mode: "PACKET"` для [чатов](/docs/message/chat/#mode). Это не позволяет твоему плагину работать правильно - -::: info ИНФОРМАЦИЯ - -Это можно изменить на `mode: "BUKKIT"`, чтобы другие плагины могли работать с чатом. В редких случаях ты можешь использовать `mode: "PAPER"`, если твой плагин использует `Paper`-слушатели. - -::: - -
-

🚀 Начни использовать FlectonePulse уже сегодня!

-
- modrinth - discord -
\ No newline at end of file diff --git a/pulse/ru/docs/integration/advancedban/index.md b/pulse/ru/docs/integration/advancedban/index.md deleted file mode 100644 index bd0075c6..00000000 --- a/pulse/ru/docs/integration/advancedban/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser ---- - -# AdvancedBan - -Интеграция с плагином `AdvancedBan` проверяет мут игрока и не позволяет ему писать сообщение, а также отключает команды модерации `FlectonePulse` - -::: warning ПРЕДУПРЕЖДЕНИЕ -Лучше выключить команды самому в `command.yml`, потому что не всегда команды выключаются сами -::: - -[//]: # (integration.yml) - - `integration.yml → advancedban` - - -<<< @/files/integration.yml#advancedban - - - -### `disable_flectonepulse_ban` - -Выключает команды `/ban`, `/banlist` и `/unban` в `FlectonePulse` - -### `disable_flectonepulse_mute` - -Выключает команды `/mute`, `/mutelist` и `/unmute` в `FlectonePulse` - -### `disable_flectonepulse_warn` - -Выключает команды `/warn`, `/warnlist` и `/unwarn` в `FlectonePulse` - -### `disable_flectonepulse_kick` - -Выключает команды `/kick` в `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.advancedban` - - -<<< @/files/permission.yml#advancedban - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/deepl/index.md b/pulse/ru/docs/integration/deepl/index.md deleted file mode 100644 index 8ce8fb74..00000000 --- a/pulse/ru/docs/integration/deepl/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Deepl - -Интеграция с Deepl позволяет переводить сообщения с одного языка на другой, используется модулем [перевода](/docs/command/translateto#service) - -[//]: # (integration.yml) - - `integration.yml → deepl` - - -<<< @/files/integration.yml#deepl - - - -### `auth_key` - -Токен авторизации для Deepl - -[//]: # (permission.yml) - - `permission.yml → integration.deepl` - - -<<< @/files/permission.yml#deepl - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/discord/index.md b/pulse/ru/docs/integration/discord/index.md deleted file mode 100644 index 899e2de4..00000000 --- a/pulse/ru/docs/integration/discord/index.md +++ /dev/null @@ -1,357 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Дискорд - -Интеграция с Discord позволяет отправлять сообщения: -- из Minecraft в Discord -- из Discord в Minecraft - -![discord message](/discordmessage.png) -![minecraft message](/discordminecraftmessage.png) - -::: info ИНФОРМАЦИЯ - -Для корректной работы бота, включи три настройки для твоего бота в [Discord Developer Portal](https://discord.com/developers/applications/) - - -![develop](/discorddevelopers.png) - -А также выдай права боту на `чтение сообщений`, `создание сообщений` и `использование webhooks` - -::: - - - -[//]: # (localization) - - `localizations → язык.yml → integration.discord` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#discord -<<< @/files/localizations/en_us.yml#discord -::: - -### `null_player` - -Сообщение, если введённый игрок через `custom_command` не найден - -### `format_reply` - -Формат сообщения для тега ``, когда сообщение является ответом на другое - -### `custom_command` - -Список кастомных комманд интеграции, где ключом является название комманды, а значением её формат сообщения - -::: info ПРИМЕР - -```yaml -custom_command: - tps: - content: "" -``` - -Комманда, чтобы получить значение `tps` на сервере. **Не забудь сделать её в inegration.yml** - -::: - -### `Плейсхолдеры` - -Ты можешь использовать все плейсхолдеры, которые используются в начальном сообщении для майнкрафта -::: info НАПРИМЕР ДЛЯ СООБЩЕНИЯ О БЛОКИРОВКЕ -Там есть плейсхолдер ``, значит я могу использовать `` внутри дискорд сообщений -::: - -Также есть плейсхолдеры, которые ТОЧНО будут заменяться в любом сообщении -- `` сообщение, отправленное в майнкрафт -- `` сообщение, отправленное в майнкрафт без unicode-смайлов -- `` ник игрока, который отправил сообщение -- `` сырое сообщение, которое написал игрок -- `` отформатированное сообщение, которое написал игрок -- `` отформатированное сообщение-ответ, оно будет пустым, если основное сообщение не ответ -- Очевидно, что все плейсхолдеры из `PlaceholderAPI` и `FlectonePulse` тоже будут работать - -
-У сообщения, которое будет отправлено из Дискорда в Майнкрафт есть свои плейсхолдеры: - -| Плейсхолдер | Что возвращает | -|------------------|--------------------------------------| -| `` | Глобальное имя участника в Discord | -| `` | Глобальное имя участника в Discord | -| `` | Никнейм участника в Discord | -| `` | Отображаемое имя участника в Discord | -| `` | Тег участника в Discord | - -### `info_channel` - -Список айди каналов и их названий, для отображения какой-нибудь информации, например `TPS` - -### `message_channel` - -Список сообщений с их настройкой - -::::: details Настройка сообщения - -::: tip ИНФОРМАЦИЯ - -Если параметр пустой или он не написан, то он не будет использован в итоговом сообщении - -::: - -#### `content` - -Содержание сообщения -![discord content](/discordcontent.png) - -#### `webhook_avatar` - -Включение дискорд вебхука с аватаром игрока. Лучше всего использовать `https://mc-heads.net/avatar//32.png` -![discord webhook](/discordwebhook.png) - -#### `embed` - -Дискорд эмбед сообщение -![discord embed](/discordembed.png) - -##### `color` - -Цвет `embed` сообщения - -##### `title` - -Название `embed` сообщения - -##### `url` - -Ссылка для `embed` сообщения - -##### `author` - -Автор `embed` сообщения - -###### `name` - -Название автора `embed` сообщения - -###### `url` - -Ссылка на автора `embed` сообщения - -###### `icon_url` - -Ссылка на аватарку автора `embed` сообщения. Если будешь менять на свою, то ссылка должна содержать `` - -##### `description` - -Описание `embed` сообщения - -##### `thumbnail` - -Маленькое изображение внутри `embed` сообщения - -##### `fields` - -Нижние поля внутри `embed` сообщения - -###### `name` - -Название поля внутри `embed` сообщения - -###### `value` - -Значение поля внутри `embed` сообщения - -###### `inline` - -Если включено, то поле будет расположен в столбик с другими полями - -##### `image` - -Главное изображение `embed` сообщения - -##### `timestamp` - -Если включено, то `embed` сообщение будет включать время создания - -##### `footer` - -Нижняя часть `embed` сообщения - -###### `text` - -Текст в нижней части `embed` сообщения - -###### `icon_url` - -Изображение в нижней части `embed` сообщения - -::::: - -::: info ИНФОРМАЦИЯ - -Сообщение со всеми параметрами -![discord](https://docs.discord4j.com/img/embed-preview.png) - -```yaml -название_сообщения: - content: "" - webhook_avatar: "https://mc-heads.net/avatar//32.png" - embed: - color: "" - title: "" - url: "" - author: - name: "" - url: "" - icon_url: "https://mc-heads.net/avatar//16.png" - description: "" - thumbnail: "" - fields: - - name: "" - value: "" - inline: false - image: "" - timestamp: true - footer: - text: "" - icon_url: "https://mc-heads.net/avatar//16.png" -``` -::: - -[//]: # (integration.yml) - - `integration.yml → discord` - - -<<< @/files/integration.yml#discord - - - -::: warning ПРЕДУПРЕЖДЕНИЕ -- Перед включением, вставь **токен** бота Discord -- После включения, **ЖЕЛАТЕЛЬНО** перезагрузить сервер, иначе плагин может вызвать зависание -::: - -### `token` - -[Токен](https://discordgsm.com/guide/how-to-get-a-discord-bot-token) дискорд бота для подключения. Можно использовать environment variables, например `${VALUE}` - -### `custom_command` - -Список кастомных комманд интеграции, ключом является название комманды и оно может быть любым. Комманды могут быть ТОЛЬКО информационными, на сервере они ничего не выполняют и не будут выполнять - -| Параметр | Пояснение | -|---------------|--------------------------------------------------------------------------------| -| `need_player` | Проверять ли первый аргумент комманды на имя игрока, например `!ping TheFaser` | -| `aliases` | Список псевдонимов для использования комманды | - - -::: info ПРИМЕР - -```yaml -custom_command: - tps: - need_player: false - aliases: - - "!tps" - - "!tickpersecond" -``` - -Комманда, чтобы получить значение `tps` на сервере с помощью `!tps` или `!tickpersecond`. **Не забудь сделать сообщение в локализации** - -::: - -### `presence` - -![discord presence](/discordpresence.png) - -::: details Настройка статуса бота -#### `enable` - -Включает или выключает кастомный статус бота - -#### `status` - -| Режим | Пояснение | -|------------------|---------------------------------| -| `UNKNOWN` | - | -| `ONLINE` | В сети | -| `DO_NOT_DISTURB` | В сети, с режимом не беспокоить | -| `IDLE` | В сети, но отошёл | -| `INVISIBLE` | Невидимый | -| `OFFLINE` | Не в сети | - -#### `activity` - -Активность бота в дискорде - -##### `enable` - -Включает или выключает активность - -##### `type` - -| Тип | Пояснение | -|-------------|-------------| -| `UNKNOWN` | - | -| `STREAMING` | Стримит | -| `LISTENING` | Слушает | -| `WATCHING` | Смотрит | -| `CUSTOM` | - | -| `COMPETING` | Соревнуется | - -##### `name` - -Название активности - -##### `url` - -Ссылка на активности - -::: - -### `channel_info` - -![discord channel info](/discordchannelinfo.png) - -::: details Настройка каналов с информацией -#### `enable` - -Нужен ли канал информации - - - -### `message_channel` - -Список типов сообщений и [ID каналов](https://support.discord.com/hc/ru/articles/206346498-%D0%93%D0%B4%D0%B5-%D0%BC%D0%BD%D0%B5-%D0%BD%D0%B0%D0%B9%D1%82%D0%B8-ID-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F) в Discord - -::: info Например я хочу, чтобы из Minecraft отправлялось сообщение комманды `/ban` в Discord -1. Копирую ID канала в дискорде `1286666844358316083` -2. Прописываю `COMMAND_BAN: "1286666844358316083"` - -```yaml -message_channel: - COMMAND_BAN: - - "1286666844358316083" -``` - -Локализацию можно не настраивать, по умолчанию сообщение будет отправляться с форматом `` -::: - - - - -[//]: # (permission.yml) - - `permission.yml → integration.discord` - - -<<< @/files/permission.yml#discord - - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/floodgate/index.md b/pulse/ru/docs/integration/floodgate/index.md deleted file mode 100644 index bb8f21b2..00000000 --- a/pulse/ru/docs/integration/floodgate/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Floodgate - -Интеграция с Floodgate позволяет правильно форматировать сообщения для `bedrock` игроков, когда Geyser стоит на Proxy, а сам Floodgate на конкретном сервере - -[//]: # (integration.yml) - - `integration.yml → floodgate` - - -<<< @/files/integration.yml#floodgate - - - -[//]: # (permission.yml) - - `permission.yml → integration.floodgate` - - -<<< @/files/permission.yml#floodgate - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/geyser/index.md b/pulse/ru/docs/integration/geyser/index.md deleted file mode 100644 index 7c099f29..00000000 --- a/pulse/ru/docs/integration/geyser/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Geyser - -Интеграция с Geyser позволяет правильно форматировать сообщения для `bedrock` игроков - -[//]: # (integration.yml) - - `integration.yml → geyser` - - -<<< @/files/integration.yml#geyser - - - -[//]: # (permission.yml) - - `permission.yml → integration.geyser` - - -<<< @/files/permission.yml#geyser - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/index.md b/pulse/ru/docs/integration/index.md deleted file mode 100644 index 7e362e6d..00000000 --- a/pulse/ru/docs/integration/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Интеграции - -Категория, отвечающая за настройку всех интеграций - -[//]: # (integration.yml) - - `integration.yml` - - -<<< @/files/integration.yml#integration - - - -### `avatar_api_url` - -Ссылка на API для отображения головы игрока. Итоговая ссылка будет выглядеть так https://mc-heads.net/avatar/59c987a2-4ef3-48e5-a291-00abe9ca8f12/8.png - -### `body_api_url` - -Ссылка на API для отображения всего скина игрока. Итоговая ссылка будет выглядеть так https://mc-heads.net/player/59c987a2-4ef3-48e5-a291-00abe9ca8f12/8.png - -[//]: # (permission.yml) - - `permission.yml → integration` - - -<<< @/files/permission.yml#integration - - - diff --git a/pulse/ru/docs/integration/interactivechat/index.md b/pulse/ru/docs/integration/interactivechat/index.md deleted file mode 100644 index 2a5eabd5..00000000 --- a/pulse/ru/docs/integration/interactivechat/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -authors: - - TheFaser ---- - -# InteractiveChat - -Интеграция с плагином `InteractiveChat` правильно форматирует кастомные плейсхолдеры от `InteractiveChat` - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Полной поддержки `InteractiveChat` нет и не будет, если не показываются достижения, смерти и т.д., то это проблема `InteractiveChat` и его изменения всех пакетов. Это можно исправить, отключив некоторые функции в самом конфиге `InteractiveChat`. - -::: - -::: warning ПРЕДУПРЕЖДЕНИЕ - -С включенным `InteractiveChat` не будет работать модуль на удаление сообщений или будут дублироваться сообщения. - -::: - -Мой личный совет, как автора `FlectonePulse`, не используйте `InteractiveChat` на своём сервере, пока его автор не решится написать его нормально. Он банально создаёт задержку для сообщений в чате, что очень хорошо видно - -[//]: # (integration.yml) - - `integration.yml → interactivechat` - - -<<< @/files/integration.yml#interactivechat - - - -[//]: # (permission.yml) - - `permission.yml → integration.interactivechat` - - -<<< @/files/permission.yml#interactivechat - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/itemsadder/index.md b/pulse/ru/docs/integration/itemsadder/index.md deleted file mode 100644 index f9847b32..00000000 --- a/pulse/ru/docs/integration/itemsadder/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# ItemsAdder - -Интеграция с плагином `ItemsAdder` правильно форматирует кастомные font смайлики - -[//]: # (integration.yml) - - `integration.yml → itemsadder` - - -<<< @/files/integration.yml#itemsadder - - - -[//]: # (permission.yml) - - `permission.yml → integration.itemsadder` - - -<<< @/files/permission.yml#itemsadder - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/libertybans/index.md b/pulse/ru/docs/integration/libertybans/index.md deleted file mode 100644 index 058cf5e2..00000000 --- a/pulse/ru/docs/integration/libertybans/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser ---- - -# LibertyBans - -Интеграция с плагином `LibertyBans` проверяет мут игрока и не позволяет ему писать сообщение, а также отключает команды модерации `FlectonePulse` - -::: warning ПРЕДУПРЕЖДЕНИЕ -Лучше выключить команды самому в `command.yml`, потому что не всегда команды выключаются сами -::: - -[//]: # (integration.yml) - - `integration.yml → libertybans` - - -<<< @/files/integration.yml#libertybans - - - -### `disable_flectonepulse_ban` - -Выключает команды `/ban`, `/banlist` и `/unban` в `FlectonePulse` - -### `disable_flectonepulse_mute` - -Выключает команды `/mute`, `/mutelist` и `/unmute` в `FlectonePulse` - -### `disable_flectonepulse_warn` - -Выключает команды `/warn`, `/warnlist` и `/unwarn` в `FlectonePulse` - -### `disable_flectonepulse_kick` - -Выключает команды `/kick` в `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.libertybans` - - -<<< @/files/permission.yml#libertybans - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/litebans/index.md b/pulse/ru/docs/integration/litebans/index.md deleted file mode 100644 index 66572b71..00000000 --- a/pulse/ru/docs/integration/litebans/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser ---- - -# LiteBans - -Интеграция с плагином `LiteBans` проверяет мут игрока и не позволяет ему писать сообщение, а также отключает команды модерации `FlectonePulse` - -::: warning ПРЕДУПРЕЖДЕНИЕ -Лучше выключить команды самому в `command.yml`, потому что не всегда команды выключаются сами -::: - -[//]: # (integration.yml) - - `integration.yml → litebans` - - -<<< @/files/integration.yml#litebans - - - -### `disable_flectonepulse_ban` - -Выключает команды `/ban`, `/banlist` и `/unban` в `FlectonePulse` - -### `disable_flectonepulse_mute` - -Выключает команды `/mute`, `/mutelist` и `/unmute` в `FlectonePulse` - -### `disable_flectonepulse_warn` - -Выключает команды `/warn`, `/warnlist` и `/unwarn` в `FlectonePulse` - -### `disable_flectonepulse_kick` - -Выключает команды `/kick` в `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.litebans` - - -<<< @/files/permission.yml#litebans - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/luckperms/index.md b/pulse/ru/docs/integration/luckperms/index.md deleted file mode 100644 index 9b193b24..00000000 --- a/pulse/ru/docs/integration/luckperms/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -authors: - - TheFaser ---- - -# LuckPerms - -Интеграция с плагином LuckPerms позволяет: -- Проверять права у **оффлайн игроков** -- Сортировать игроков в ТАБе по [весу группы](https://luckperms.net/wiki/Weight) - -[//]: # (integration.yml) - - `integration.yml → luckperms` - - -<<< @/files/integration.yml#luckperms - - - -### `tab_sort` - -Включает или выключает сортировку в ТАБе по [весу группы](https://luckperms.net/wiki/Weight) - -[//]: # (permission.yml) - - `permission.yml → integration.luckperms` - - -<<< @/files/permission.yml#luckperms - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/maintenance/index.md b/pulse/ru/docs/integration/maintenance/index.md deleted file mode 100644 index 15d1a867..00000000 --- a/pulse/ru/docs/integration/maintenance/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Maintenance - -Интеграция с плагином Maintenance позволяет отключать `MOTD` у `FlectonePulse` в нужный момент, а также отключает команду `/maintenance` от `FlectonePulse` - -[//]: # (integration.yml) - - `integration.yml → maintenance` - - -<<< @/files/integration.yml#maintenance - - - -### `disable_flectonepulse_maintenance` - -Выключает команду `/maintenance` в `FlectonePulse` - -[//]: # (permission.yml) - - `permission.yml → integration.maintenance` - - -<<< @/files/permission.yml#integrationmaintenance - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/mineplaceholders/index.md b/pulse/ru/docs/integration/mineplaceholders/index.md deleted file mode 100644 index ca69de89..00000000 --- a/pulse/ru/docs/integration/mineplaceholders/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -authors: - - TheFaser ---- - -# MiniPlaceholders - -Интеграция с плагином MiniPlaceholders позволяет использовать любые [мини-плейсхолдеры](https://github.com/MiniPlaceholders/MiniPlaceholders/wiki/Placeholders) - -::: warning ПРЕДУПРЕЖДЕНИЕ -Чтобы использовать мини-плейсхолдер, его обязательно нужно обернуть в `{}` - -Пример `{}` -::: - -[//]: # (integration.yml) - - `integration.yml → miniplaceholders` - - -<<< @/files/integration.yml#miniplaceholders - - - -[//]: # (permission.yml) - - `permission.yml → integration.miniplaceholders` - - -<<< @/files/permission.yml#miniplaceholders - - - -### `use` - -Право для использования плейсхолдеров из MiniPlaceholders в сообщении \ No newline at end of file diff --git a/pulse/ru/docs/integration/minimotd/index.md b/pulse/ru/docs/integration/minimotd/index.md deleted file mode 100644 index 374974c1..00000000 --- a/pulse/ru/docs/integration/minimotd/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -authors: - - TheFaser ---- - -# MiniMOTD - -Интеграция с плагином `MiniMOTD` отключает модуль [Статус](/docs/message/status/) в `FlectonePulse` - -[//]: # (integration.yml) - - `integration.yml → minimotd` - - -<<< @/files/integration.yml#minimotd - - - -### `disable_flectonepulse_status` - -Выключает модуль [Статус](/docs/message/status/) - -[//]: # (permission.yml) - - `permission.yml → integration.minimotd` - - -<<< @/files/permission.yml#minimotd - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/motd/index.md b/pulse/ru/docs/integration/motd/index.md deleted file mode 100644 index 1f35c8bb..00000000 --- a/pulse/ru/docs/integration/motd/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -authors: - - TheFaser ---- - -# MOTD - -::: warning ВНИМАТЕЛЬНО -Это интеграция с другим плагином на `MOTD`, настроить сам `MOTD` можно [тут](/docs/message/status/motd/) -::: - -Интеграция с плагином `MOTD` отключает модуль [Статус](/docs/message/status/) в `FlectonePulse` - -[//]: # (integration.yml) - - `integration.yml → motd` - - -<<< @/files/integration.yml#motd - - - -### `disable_flectonepulse_status` - -Выключает модуль [Статус](/docs/message/status/) - -[//]: # (permission.yml) - - `permission.yml → integration.motd` - - -<<< @/files/permission.yml#motd - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/placeholderapi/index.md b/pulse/ru/docs/integration/placeholderapi/index.md deleted file mode 100644 index b81568b1..00000000 --- a/pulse/ru/docs/integration/placeholderapi/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -authors: - - TheFaser ---- - -# PlaceholderAPI - -Интеграция с плагином PlaceholderAPI: -- Позволяет использовать любые [плейсхолдеры](https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders) - -::: info НАПРИМЕР -`%server_tps%`, `%server_online%` и т.д., если установлен соответствующий модуль с помощью `/papi ecloud download модуль` -::: - -- Добавляет свои плейсхолдеры - -| Плейсхолдер | Что возвращает | -|---------------------------------------------|----------------------------------------------------------------------| -| `%flectonepulse_advancement%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_afk%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_afk_suffix%` | Возвращает [AFK суффикс](/docs/command/afk/) | -| `%flectonepulse_auto%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_chat_name%` | Возвращает тип выбранного чата, по умолчанию `default` | -| `%flectonepulse_death%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_discord%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_fcolor_number%` | Возвращает [кастомный цвет](/docs/message/format/fcolor/) игрока | -| `%flectonepulse_fcolor_out_number%` | Возвращает [кастомный цвет OUT](/docs/message/format/fcolor/) игрока | -| `%flectonepulse_fcolor_see_number%` | Возвращает [кастомный цвет SEE](/docs/message/format/fcolor/) игрока | -| `%flectonepulse_greeting%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_ip%` | Возвращает IP-адрес игрока | -| `%flectonepulse_join%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_locale%` | Возвращает текущую локаль игрока | -| `%flectonepulse_online%` | Возвращает количество игроков на сервере | -| `%flectonepulse_ping%` | Возвращает пинг игрока | -| `%flectonepulse_player%` | Возвращает обычное имя игрока | -| `%flectonepulse_quit%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_stream_prefix%` | Возвращает [стрим префикс](/docs/message/command/stream/) игрока | -| `%flectonepulse_spy_status` | Возвращает строку, если включен режим слежки, иначе пусто | -| `%flectonepulse_telegram%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_tps%` | Возвращает TPS сервера | -| `%flectonepulse_twitch%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_world_prefix%` | Возвращает [префикс мира](/docs/message/format/world/) игрока | -| `%flectonepulse_mute_suffix%` | Возвращает [суффикс мута](/docs/command/mute/) игрока | -| `%flectonepulse_command_ball%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_ban%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_broadcast%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_coin%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_dice%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_do%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_kick%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_mail%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_me%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_mute%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_poll%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_reply%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_rockpaperscissors%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_spy%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_stream%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_tell%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_tictactoe%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_translateto%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_try%` | Возвращает `true` если отображение включено, иначе пусто | -| `%flectonepulse_command_warn%` | Возвращает `true` если отображение включено, иначе пусто | - -[//]: # (integration.yml) - - `integration.yml → placeholderapi` - - -<<< @/files/integration.yml#placeholderapi - - - -[//]: # (permission.yml) - - `permission.yml → integration.placeholderapi` - - -<<< @/files/permission.yml#placeholderapi - - - -### `use` - -Право для использования плейсхолдеров из PlaceholderAPI в сообщении \ No newline at end of file diff --git a/pulse/ru/docs/integration/plasmovoice/index.md b/pulse/ru/docs/integration/plasmovoice/index.md deleted file mode 100644 index 17eace8f..00000000 --- a/pulse/ru/docs/integration/plasmovoice/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser ---- - -# PlasmoVoice - -Интеграция с плагином PlasmoVoice позволяет мутить игроков, которые были замучены с помощью `/mute`. Также, если один игрок заигнорировал другого с помощью `/ignore`, он его не будет слышать. -![mute](/mute.png) - -[//]: # (integration.yml) - - `integration.yml → plasmovoice` - - -<<< @/files/integration.yml#plasmovoice - - - -[//]: # (permission.yml) - - `permission.yml → integration.plasmovoice` - - -<<< @/files/permission.yml#plasmovoice - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/simplevoice/index.md b/pulse/ru/docs/integration/simplevoice/index.md deleted file mode 100644 index 89bac72b..00000000 --- a/pulse/ru/docs/integration/simplevoice/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser ---- - -# SimpleVoice - -Интеграция с плагином SimpleVoice позволяет мутить игроков, которые были замучены с помощью `/mute`. Также, если один игрок заигнорировал другого с помощью `/ignore`, он его не будет слышать. -![mute](/mute.png) - -[//]: # (integration.yml) - - `integration.yml → simplevoice` - - -<<< @/files/integration.yml#simplevoice - - - -[//]: # (permission.yml) - - `permission.yml → integration.simplevoice` - - -<<< @/files/permission.yml#simplevoice - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/skinsrestorer/index.md b/pulse/ru/docs/integration/skinsrestorer/index.md deleted file mode 100644 index 0411ba02..00000000 --- a/pulse/ru/docs/integration/skinsrestorer/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser ---- - -# SkinsRestorer - -Интеграция с плагином SkinsRestorer позволяет получать скины **оффлайн игроков** -![skinsrestorer](/skinsrestorer.png) - -[//]: # (integration.yml) - - `integration.yml → skinsrestorer` - - -<<< @/files/integration.yml#skinsrestorer - - - -[//]: # (permission.yml) - - `permission.yml → integration.skinsrestorer` - - -<<< @/files/permission.yml#skinsrestorer - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/supervanish/index.md b/pulse/ru/docs/integration/supervanish/index.md deleted file mode 100644 index bcf3af6a..00000000 --- a/pulse/ru/docs/integration/supervanish/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# SuperVanish - -Интеграция с плагином SuperVanish (и PremiumVanish) скрывает действия игроков в ванише - -[//]: # (integration.yml) - - `integration.yml → supervanish` - - -<<< @/files/integration.yml#supervanish - - - -[//]: # (permission.yml) - - `permission.yml → integration.supervanish` - - -<<< @/files/permission.yml#supervanish - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/tab/index.md b/pulse/ru/docs/integration/tab/index.md deleted file mode 100644 index e7c48039..00000000 --- a/pulse/ru/docs/integration/tab/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -authors: - - TheFaser ---- - -# TAB - -::: warning ВНИМАТЕЛЬНО -Это интеграция с другим плагином на `TAB`, настроить сам `TAB` можно [тут](/docs/message/tab/) -::: - -Интеграция с плагином `TAB` устраняет проблемы совместимости, выключая работу некоторых модулей в `FlectonePulse`: -- [Скорборд](/docs/message/format/scoreboard/) -- [Верхнее](/docs/message/tab/header/) -- [Нижнее](/docs/message/tab/footer/) -- [Имя в списке](/docs/message/tab/playerlistname/) - -[//]: # (integration.yml) - - `integration.yml → tab` - - -<<< @/files/integration.yml#tab - - - -### `disable_flectonepulse_scorebord` - -Выключает модуль [Скорборд](/docs/message/format/scoreboard/) - -### `disable_flectonepulse_header` - -Выключает модуль [Верхнее](/docs/message/tab/header/) - -### `disable_flectonepulse_footer` - -Выключает модуль [Нижнее](/docs/message/tab/footer/) - -### `disable_flectonepulse_playerlistname` - -Выключает модуль [Имя в списке](/docs/message/tab/playerlistname/) - -[//]: # (permission.yml) - - `permission.yml → integration.tab` - - -<<< @/files/permission.yml#integrationtab - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/telegram/index.md b/pulse/ru/docs/integration/telegram/index.md deleted file mode 100644 index ceea3093..00000000 --- a/pulse/ru/docs/integration/telegram/index.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Телеграм - -Интеграция с Telegram позволяет отправлять сообщения: -- из Minecraft в Telegram -- из Telegram в Minecraft - -![telegram message 1](/telegrammessage1.png) -![telegram message 2](/telegrammessage2.png) -![minecraft message](/telegramminecraftmessage.png) - - - -[//]: # (localization) - - `localizations → язык.yml → integration.telegram` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#telegram -<<< @/files/localizations/en_us.yml#telegram -::: - -### `null_player` - -Сообщение, если введённый игрок через `custom_command` не найден - -### `format_reply` - -Формат сообщения для тега ``, когда сообщение является ответом на другое - -### `custom_command` - -Список кастомных комманд интеграции, где ключом является название комманды, а значением её формат сообщения - -::: info ПРИМЕР - -```yaml -custom_command: - tps: - content: "" -``` - -Комманда, чтобы получить значение `tps` на сервере. **Не забудь сделать её в inegration.yml** - -::: - -### `Плейсхолдеры` - -Ты можешь использовать все плейсхолдеры, которые используются в начальном сообщении для майнкрафта -::: info НАПРИМЕР ДЛЯ СООБЩЕНИЯ О БЛОКИРОВКЕ -Там есть плейсхолдер ``, значит я могу использовать `` внутри телеграм сообщений -::: - -Также есть плейсхолдеры, которые ТОЧНО будут заменяться в любом сообщении -- `` сообщение, отправленное в майнкрафт -- `` сообщение, отправленное в майнкрафт без unicode-смайлов -- `` ник игрока, который отправил сообщение -- `` сырое сообщение, которое написал игрок -- `` отформатированное сообщение, которое написал игрок -- `` отформатированное сообщение-ответ, оно будет пустым, если основное сообщение не ответ -- Очевидно, что все плейсхолдеры из `PlaceholderAPI` и `FlectonePulse` тоже будут работать - -
-У сообщения, которое будет отправлено из Телеграма в Майнкрафт есть свои плейсхолдеры: - -| Плейсхолдер | Что возвращает | -|----------------|-----------------------------------------------------------| -| `` | Тег пользователя в Telegram | -| `` | Тег пользователя в Telegram | -| `` | Имя пользователя в Telegram | -| `` | Фамилия пользователя в Telegram | -| `` | Названия чата Telegram (откуда было отправлено сообщение) | - -### `info_channel` - -Список айди каналов и их названий, для отображения какой-нибудь информации, например `TPS` - -### `message_channel` - -Список сообщений с форматом итогового сообщения - -::: info ЕСЛИ ХОЧЕШЬ ДОБАВИТЬ ДРУГОЕ СООБЩЕНИЕ: -1. Возьми название из списка `типы сообщений` -2. Вставь в `message_channel` -```yaml -название_сообщения: "" -``` -::: - -[//]: # (integration.yml) - - `integration.yml → telegram` - - -<<< @/files/integration.yml#telegram - - - -::: warning ПРЕДУПРЕЖДЕНИЕ -- Перед включением, вставь **токен** бота Telegram -- После включения, **ЖЕЛАТЕЛЬНО** перезагрузить сервер -::: - -### `parse_mode` - -В каком режиме будет отправляться сообщение в телеграм - -| Режим | Что будет? | -|---------------|---------------------------------------------------------------------------| -| `MARKDOWN` | Сообщение будет отформатировано относительно устаревшего формата Markdown | -| `MARKDOWN_V2` | Сообщение будет отформатировано относительно нового формата Markdown | -| `HTML` | Сообщение будет отформатировано относительно формата HTML | -| `NONE` | Сообщение никак не будет отформатировано | - -### `token` - -[Токен](https://core.telegram.org/bots/faq#how-do-i-create-a-bot) бота для подключения. Можно использовать environment variables, например `${VALUE}` - -### `custom_command` - -Список кастомных комманд интеграции, ключом является название комманды и оно может быть любым. Комманды могут быть ТОЛЬКО информационными, на сервере они ничего не выполняют и не будут выполнять - -| Параметр | Пояснение | -|---------------|--------------------------------------------------------------------------------| -| `need_player` | Проверять ли первый аргумент комманды на имя игрока, например `!ping TheFaser` | -| `aliases` | Список псевдонимов для использования комманды | - - -::: info ПРИМЕР - -```yaml -custom_command: - tps: - need_player: false - aliases: - - "!tps" - - "!tickpersecond" -``` - -Комманда, чтобы получить значение `tps` на сервере с помощью `!tps` или `!tickpersecond`. **Не забудь сделать сообщение в локализации** - -::: - -### `channel_info` - -::: details Настройка каналов с информацией -#### `enable` - -Нужен ли канал информации - - - -### `message_channel` - -Список типов сообщений и айди чатов в Telegram - -::: info Например я хочу, чтобы из Minecraft отправлялось сообщение комманды `/ban` в Telegram -1. Копирую айди чата, в которое нужно отправить сообщение (`-1002341720267_49`) - -Если бот подключён и добавлен в канал, то можно использовать команду `/id` в телеграме, чтобы узнать айди канала - -2. Прописываю: -```yaml -message_channel: - COMMAND_BAN: - - "-1002341720267_49" -``` - -Чатов может быть сколько угодно, главное, чтобы к ним был доступ у бота из [секреты](/docs/secrets/telegram/). Локализацию можно не настраивать, по умолчанию сообщение будет отправляться с форматом `` -::: - -::: danger ВАЖНО - -Если ваш канал является Форумом (Топиком), то айди **ГЛАВНОГО** канала нужно указывать без `_` - -1. Айди моего главного канала (он всегда заканчивается на `_1`) это `-1002341720267_1` -2. Значит вписывать нужно **ТОЛЬКО** `-1002341720267` - -Для других чатов из форума это правило не действует и нужно вписывать **ПОЛНЫЙ** айди - -::: - - - - -[//]: # (permission.yml) - - `permission.yml → integration.telegram` - - -<<< @/files/permission.yml#telegram - - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/triton/index.md b/pulse/ru/docs/integration/triton/index.md deleted file mode 100644 index 9e8157f1..00000000 --- a/pulse/ru/docs/integration/triton/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Triton - -Интеграция с Triton позволяет использовать кастомную локализацию **игроков** - -[//]: # (integration.yml) - - `integration.yml → triton` - - -<<< @/files/integration.yml#triton - - - -[//]: # (permission.yml) - - `permission.yml → integration.triton` - - -<<< @/files/permission.yml#triton - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/twitch/index.md b/pulse/ru/docs/integration/twitch/index.md deleted file mode 100644 index acebd84a..00000000 --- a/pulse/ru/docs/integration/twitch/index.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Твич - -Интеграция с Twitch позволяет: -- отправлять сообщения из Minecraft в Twitch -- отправлять сообщения из Twitch в Minecraft -- подписываться на начало трансляции Twitch - -![twitch message](/twitchmessage.png) -![minecraft message](/twitchminecraftmessage.png) - - - -[//]: # (localization) - - `localizations → язык.yml → integration.twitch` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#twitch -<<< @/files/localizations/en_us.yml#twitch -::: - -### `null_player` - -Сообщение, если введённый игрок через `custom_command` не найден - -### `format_reply` - -Формат сообщения для тега ``, когда сообщение является ответом на другое - -### `custom_command` - -Список кастомных комманд интеграции, где ключом является название комманды, а значением её формат сообщения - -::: info ПРИМЕР - -```yaml -custom_command: - tps: - content: "" -``` - -Комманда, чтобы получить значение `tps` на сервере. **Не забудь сделать её в inegration.yml** - -::: - -### `Плейсхолдеры` - -Ты можешь использовать все плейсхолдеры, которые используются в начальном сообщении для майнкрафта -::: info НАПРИМЕР ДЛЯ СООБЩЕНИЯ О БЛОКИРОВКЕ -Там есть плейсхолдер ``, значит я могу использовать `` внутри твич сообщений -::: - -Также есть плейсхолдеры, которые ТОЧНО будут заменяться в любом сообщении -- `` сообщение, отправленное в майнкрафт -- `` сообщение, отправленное в майнкрафт без unicode-смайлов -- `` ник игрока, который отправил сообщение -- `` сырое сообщение, которое написал игрок -- `` отформатированное сообщение, которое написал игрок -- `` отформатированное сообщение-ответ, оно будет пустым, если основное сообщение не ответ -- Очевидно, что все плейсхолдеры из `PlaceholderAPI` и `FlectonePulse` тоже будут работать - -
-У сообщения, которое будет отправлено из Твича в Майнкрафт есть свои плейсхолдеры: - -| Плейсхолдер | Что возвращает | -|----------------|-----------------------------------------------------------| -| `` | Ник пользователя на Twitch | - -### `message_channel` - -Список сообщений с форматом итогового сообщения - -::: info ЕСЛИ ХОЧЕШЬ ДОБАВИТЬ ДРУГОЕ СООБЩЕНИЕ: -1. Возьми название из списка `типы сообщений` -2. Вставь в `message_channel` -```yaml -название_сообщения: "" -``` -::: - -[//]: # (integration.yml) - - `integration.yml → twitch` - - -<<< @/files/integration.yml#twitch - - - -::: warning ПРЕДУПРЕЖДЕНИЕ -- Перед включением, вставь **токен** и **ID клиента** Twitch -- После включения, **ЖЕЛАТЕЛЬНО** перезагрузить сервер, иначе плагин может вызвать зависание -::: - -### `client_id` - -[Идентификатор](https://twitchtokengenerator.com/) пользователя. Можно использовать environment variables, например `${VALUE}` -![client id](/twitchclientid.png) - -### `token` - -[Токен](https://twitchtokengenerator.com/) пользователя для подключения. Можно использовать environment variables, например `${VALUE}` -![token](/twitchtoken.png) - -### `custom_command` - -Список кастомных комманд интеграции, ключом является название комманды и оно может быть любым. Комманды могут быть ТОЛЬКО информационными, на сервере они ничего не выполняют и не будут выполнять - -| Параметр | Пояснение | -|---------------|--------------------------------------------------------------------------------| -| `need_player` | Проверять ли первый аргумент комманды на имя игрока, например `!ping TheFaser` | -| `aliases` | Список псевдонимов для использования комманды | - - -::: info ПРИМЕР - -```yaml -custom_command: - tps: - need_player: false - aliases: - - "!tps" - - "!tickpersecond" -``` - -Комманда, чтобы получить значение `tps` на сервере с помощью `!tps` или `!tickpersecond`. **Не забудь сделать сообщение в локализации** - -::: - -### `message_channel` - -Список типов сообщений и названий каналов на Twitch - -::: info Например я хочу, чтобы из Minecraft отправлялось сообщение комманды `/ban` в Twitch -1. Копирую названия каналов Twitch, в которые нужно отправить сообщение (`faseri4ka`) -2. Прописываю: -```yaml -message_channel: - COMMAND_BAN: - - "faseri4ka" -``` - -Каналов может быть сколько угодно, главное, чтобы к ним был доступ у подключенного аккаунта. Локализацию можно не настраивать, по умолчанию сообщение будет отправляться с форматом `` -::: - -### `follow_channel` - -Список, где ключом является имя канала, а значением список комманд, которые выполняться при старте трансляции - -::: info Например я хочу отслеживать начало стрима у `faseri4ka` и писать `stream start https://twitch.tv/faseri4ka` -1. Копирую названия канала `faseri4ka` -2. Прописываю: -```yaml -follow_channel: - faseri4ka: - - "stream start https://twitch.tv/faseri4ka" -``` - -- Каналов может быть до 10 одновременно, главное, чтобы к ним был доступ у подключенного аккаунта -- Комманд, при начале трансляции, может быть сколько угодно и какие угодно -::: - - - - -[//]: # (permission.yml) - - `permission.yml → integration.twitch` - - -<<< @/files/permission.yml#twitch - - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/vault/index.md b/pulse/ru/docs/integration/vault/index.md deleted file mode 100644 index 7ac17948..00000000 --- a/pulse/ru/docs/integration/vault/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Vault - -Интеграция с Vault позволяет проверять права у **оффлайн игроков** - -[//]: # (integration.yml) - - `integration.yml → vault` - - -<<< @/files/integration.yml#vault - - - -[//]: # (permission.yml) - - `permission.yml → integration.vault` - - -<<< @/files/permission.yml#vault - - \ No newline at end of file diff --git a/pulse/ru/docs/integration/yandex/index.md b/pulse/ru/docs/integration/yandex/index.md deleted file mode 100644 index f02da146..00000000 --- a/pulse/ru/docs/integration/yandex/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Яндекс - -Интеграция с Яндексом позволяет переводить сообщения с одного языка на другой, используется модулем [перевода](/docs/command/translateto#service) - -[//]: # (integration.yml) - - `integration.yml → yandex` - - -<<< @/files/integration.yml#yandex - - - -### `token` - -Токен авторизации для Яндекса [`iam_token`](https://yandex.cloud/ru/docs/translate/api-ref/authentication) - -### `folder_id` - -Идентификатор папки, к которой есть доступ - -[//]: # (permission.yml) - - `permission.yml → integration.yandex` - - -<<< @/files/permission.yml#yandex - - \ No newline at end of file diff --git a/pulse/ru/docs/message/afk/index.md b/pulse/ru/docs/message/afk/index.md deleted file mode 100644 index 21447a3f..00000000 --- a/pulse/ru/docs/message/afk/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Афк - -Игрок становится АФК, если ничего не делает какой-то промежуток времени -![afk global message](/afkglobalmessage.png) - -Если человек АФК, то ему выдаётся определённый суффикс -![afk suffix](/afksuffix.png) - -[//]: # (localization) - - `localizations → язык.yml → message.afk` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#afk -<<< @/files/localizations/en_us.yml#afk -::: - -### `suffix` - -Суффикс, который выдаётся игроку, если он встал в АФК -![afksuffix](/afksuffix.png) - -### `format_true` - -Сообщение, если игрок отошёл - -### `format_false` - -Сообщение, если игрок вернулся - -[//]: # (message.yml) - - `message.yml → afk` - - -<<< @/files/message.yml#afk - - - - -### `delay` - -Сколько времени в [тиках](https://ru.minecraft.wiki/w/%D0%A2%D0%B0%D0%BA%D1%82) игрок ничего не должен делать, чтобы встать в АФК - -### `ignore` - -Список действий, которые игнорируются и не влияют на режим АФК - -| Действия, которые можно игнорировать | -|--------------------------------------| -| Любые названия комманд | -| `chat` - когда игрок пишет в чат | -| `quit` - когда игрок выходит | - -::: info НАПРИМЕР -Если я впишу в список комманду `tell` и игрок будет в режиме АФК, то он сможет использовать комманду `tell` и его не выкинет с режима АФК -::: - - - - - -[//]: # (permission.yml) - - `permission.yml → message.afk` - - -<<< @/files/permission.yml#afk - - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/anvil/index.md b/pulse/ru/docs/message/anvil/index.md deleted file mode 100644 index dda5e891..00000000 --- a/pulse/ru/docs/message/anvil/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Наковальня - -Модуль, отвечающий за сообщения в наковальне при переименовании -![anvil](/anvil.gif) - -[//]: # (message.yml) - - `message.yml → anvil` - - -<<< @/files/message.yml#anvil - - - -[//]: # (permission.yml) - - `permission.yml → message.anvil` - - -<<< @/files/permission.yml#anvil - - \ No newline at end of file diff --git a/pulse/ru/docs/message/auto/index.md b/pulse/ru/docs/message/auto/index.md deleted file mode 100644 index 4e7b0886..00000000 --- a/pulse/ru/docs/message/auto/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Автоматическое - -Сообщение от сервера раз в какой-то промежуток времени -![auto](/auto.png) - -[//]: # (localization) - - `localizations → язык.yml → message.auto` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#auto -<<< @/files/localizations/en_us.yml#auto -::: - -### `types` - -Виды автоматических сообщений со списком - -[//]: # (message.yml) - - `message.yml → auto` - - -<<< @/files/message.yml#auto - - - -### `types` - -Виды автоматических сообщений - -::: info МОЖНО СОЗДАВАТЬ СВОИ -```yaml - types: - newauto: - random: true - destination: - type: "CHAT" - ticker: - enable: true - period: 9000 - sound: - enable: false -``` -::: - -- -- -- -- - -[//]: # (permission.yml) - - `permission.yml → message.auto` - - -<<< @/files/permission.yml#auto - - - -### `types` - -Виды автоматических сообщений и их прав на звуки - -- \ No newline at end of file diff --git a/pulse/ru/docs/message/book/index.md b/pulse/ru/docs/message/book/index.md deleted file mode 100644 index 29fd4c2e..00000000 --- a/pulse/ru/docs/message/book/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Книга - -Модуль, отвечающий за сообщения в книге и названии этой книги -![book](/book.gif) - -[//]: # (message.yml) - - `message.yml → book` - - -<<< @/files/message.yml#book - - - -[//]: # (permission.yml) - - `permission.yml → message.book` - - -<<< @/files/permission.yml#book - - \ No newline at end of file diff --git a/pulse/ru/docs/message/bossbar/index.md b/pulse/ru/docs/message/bossbar/index.md deleted file mode 100644 index 83476d1e..00000000 --- a/pulse/ru/docs/message/bossbar/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Босс бар - -Модуль, отвечающий за сообщения в ванильных боссбарах -![bossbar raid](/bossbar_raid.png) -![bossbar wither](/bossbar_wither.png) -![bossbar enderdragon](/bossbar_enderdragon.png) - -[//]: # (localization) - - `localizations → язык.yml → message.bossbar` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#bossbar -<<< @/files/localizations/en_us.yml#bossbar -::: - -### `announce` - -Список сообщений при входе в определённый боссбар, где ключом является название боссбара (например `entity.minecraft.ender_dragon`) - -### `types` - -Список сообщений ванильных боссбаров. Ключ `event.minecraft.raid.raiders_remaining` особенный, он добавляется автоматически к сообщениям рейда, если это необходимо - - -[//]: # (message.yml) - - `message.yml → bossbar` - - -<<< @/files/message.yml#bossbar - - - -### `announce` - -Может быть использовано для того, чтобы оповестить игрока, что он вошёл в зону "дракона" (или любую другую). Это не влияет на основной боссбар, а только дополняет функционал. Будет срабатывать каждый раз, когда игрок входит в зону боссбара - -Ключом является название боссбара (например `entity.minecraft.ender_dragon`), а значением то, куда будет отправлено - -::: info ПРИМЕР - -Я хочу, чтобы игроку писало сообщение в чат "Это дракон!", когда игрок входит в зону боссбара дракона -```yaml -announce: - entity.minecraft.ender_dragon: - destination: - type: "CHAT" - sound: - enable: false -``` - -В локализации нужно также добавить сообщение - -```yaml -announce: - entity.minecraft.ender_dragon: "Это дракон!" -``` - -::: - - -[//]: # (permission.yml) - - `permission.yml → message.bossbar` - - -<<< @/files/permission.yml#bossbar - - \ No newline at end of file diff --git a/pulse/ru/docs/message/brand/index.md b/pulse/ru/docs/message/brand/index.md deleted file mode 100644 index 49fd2a48..00000000 --- a/pulse/ru/docs/message/brand/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Бренд - -Модуль, отвечающий за сообщение бренда в F3 -![brand](/brand.png) - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Если используется прокси (Velocity или BungeeCord), то изменение brand полностью невозможно - -::: - -[//]: # (localization) - - `localizations → язык.yml → message.brand` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#brand -<<< @/files/localizations/en_us.yml#brand -::: - -### `values` - -Список сообщений для бренда - -::: warning МОЖНО ИСПОЛЬЗОВАТЬ ТОЛЬКО ОБЫЧНЫЕ ЦВЕТА - -::: - - -[//]: # (message.yml) - - `message.yml → brand` - - -<<< @/files/message.yml#brand - - - - - - -[//]: # (permission.yml) - - `permission.yml → message.brand` - - -<<< @/files/permission.yml#brand - - \ No newline at end of file diff --git a/pulse/ru/docs/message/bubble/index.md b/pulse/ru/docs/message/bubble/index.md deleted file mode 100644 index 3af67b17..00000000 --- a/pulse/ru/docs/message/bubble/index.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Над головой - -Модуль, отвечающий за сообщения над головой -![bubble](/bubble.gif) - -Идея взята из [LightChatBubbles](https://github.com/atesin/LightChatBubbles) - -### Формула длительности - -```java -long duration = (countWords + handicapChars) / readSpeed * 60; -``` - -[//]: # (localization) - - `localizations → язык.yml → message.bubble` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#bubble -<<< @/files/localizations/en_us.yml#bubble -::: - -### `format` - -Формат сообщения над головой - -[//]: # (message.yml) - - `message.yml → bubble` - - -<<< @/files/message.yml#bubble - - - -### `max_count` - -Максимальное количество сообщений над головой одновременно - -### `max_length` - -Максимальная длинна одного сообщения над головой. Если текст длиннее, то он будет разделён на несколько - -### `elevation` - -Насколько высоко над головой будет сообщение - -### `distance` - -Насколько далеко можно увидеть сообщение над головой у игрока - -### `read_speed` - -Скорость чтения слов в минуту - -### `handicap_chars` - -Дополнительное время для коротких сообщений - -### `word_break_hint` - -Символ-подсказка, который ставится когда слово разрывается на две строки - -### `interaction` - -Позволяет изменять расстояние между сообщениями друг от друга, иначе используется устаревший `area effect cloud` - -::: warning ПРЕДУПРЕЖДЕНИЕ -Это будет использовано только для серверов, где версия `1.21.3` и выше -::: - -::: details НАСТРОЙКА -#### `enable` - -Включает работоспособность - -#### `height` - -Расстояние между каждым сообщением друг от друга -::: - -### `modern` - -Сообщения над головой через Text Display - -::: warning ПРЕДУПРЕЖДЕНИЕ -Это будет использовано только для серверов, где версия `1.19.4` и выше -::: - -::: details НАСТРОЙКА -#### `enable` - -Включает работоспособность - -#### `has_shadow` - -Включает тень у текста - -#### `see_through` - -Включает прозрачность текста на фоне воды и облаков (чтобы нельзя было смотреть сквозь воду) - -#### `scale` - -Насколько большим будет сообщение - -#### `background` - -Цвет фона сообщения, он имеет прозрачность т.е. альфа-канал. [Сайт для выбора цвета](https://rgbacolorpicker.com/color-wheel-picker) - -#### `billboard` - -| Тип | Пояснение | -|----------------|-----------------------------------------------------------| -| `FIXED` | Положение не изменяется | -| `VERTICAL` | Положение изменяется относительно вертикали | -| `HORIZONTAL` | Положение изменяется относительно горизонтали | -| `CENTER` | Положение изменяется относительно горизонтали и вертикали | -::: - -[//]: # (permission.yml) - - `permission.yml → message.bubble` - - -<<< @/files/permission.yml#bubble - - \ No newline at end of file diff --git a/pulse/ru/docs/message/chat/index.md b/pulse/ru/docs/message/chat/index.md deleted file mode 100644 index 939da69f..00000000 --- a/pulse/ru/docs/message/chat/index.md +++ /dev/null @@ -1,211 +0,0 @@ ---- -authors: - - TheFaser - - Bakinu ---- - -# Чат - -Модуль, отвечающий за отправленные сообщения игроком в чат -![chat](/chat.png) - - -::: info КАК ОТКЛЮЧИТЬ ЛОКАЛЬНЫЙ ЧАТ? - -Внутри `message.yml` выключи `local` с помощью `enable: false`, а также сделай пустой `trigger: ""` для `global` - -```yaml -chat: - enable: true - mode: "BUKKIT" - priority: "NORMAL" - types: - local: - enable: false # поставь false - global: - enable: true - cancel: false - range: "PROXY" - priority: 5 - trigger: "" # сделай пусто - null_receiver: - enable: true - destination: - type: "ACTION_BAR" - times: - stay: 20 - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -``` - -::: - -[//]: # (localization) - - `localizations → язык.yml → message.chat` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#chat -<<< @/files/localizations/en_us.yml#chat -::: - -### `null_chat` - -Сообщение, если в чат ничего не удалось отправить - -### `null_receiver` - -Сообщение, если никто не увидел сообщение игрока - -### `types` - -Список чатов и их формат - -[//]: # (message.yml) - - `message.yml → chat` - - -<<< @/files/message.yml#chat - - - -### `mode` - -Режим обработки чата - -| Тип | Объяснение | -|-----------|------------------------------------------------------------------------------------------| -| `PACKET` | Сообщения чата обрабатываются через пакеты (полностью асинхронно) | -| `BUKKIT` | Сообщения чата обрабатываются через `Bukkit` (асинхронно, но только в одном потоке чата) | -| `PAPER` | Сообщения чата обрабатываются через `Paper` (асинхронно, но только в одном потоке чата) | - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Если тебе нужно, чтобы твой другой плагин видел сообщения чата, поставь `mode: "BUKKIT"`. В редком случае, если плагин работает через `Paper` слушатели, то нужно поставить `mode: "PAPER"` - -::: - -### `event_priority` - -Приоритет ивента сообщения в чате. Измените это значение, если есть конфликт с другими плагинами, использующие чат - -| Тип | Объяснение | -|-----------|---------------------------------------------------------------------------------| -| `LOWEST` | Сообщение в чате будет обработано быстрее всех плагинов | -| `LOW` | Сообщение в чате будет обработано после плагинов, у которых приоритет `LOWEST` | -| `NORMAL` | Сообщение в чате будет обработано после плагинов, у которых приоритет `LOW` | -| `HIGH` | Сообщение в чате будет обработано после плагинов, у которых приоритет `NORMAL` | -| `HIGHEST` | Сообщение в чате будет обработано после плагинов, у которых приоритет `HIGHEST` | -| `MONITOR` | Сообщение в чате будет только просмотрено | - -### `types` - -Список всех чатов с их настройкой. Любой чат по умолчанию выглядит так и ты можешь добавлять свои - -```yaml -название_чата: - enable: true - cancel: true - range: PROXY - priority: число - trigger: "триггер" - null-receiver: - enable: true - destination: - type: "ACTION_BAR" - times: - stay: 20 - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -``` - -### `enable` - -Включает работоспособность чата - -### `null_recipient` - -![null recipient](/nullrecipient.png) - -Включает сообщение о том, что отправленное сообщение никто не увидел - -::: details НАСТРОЙКА - -#### `enable` - -Включает работоспособность - -#### `destination` - -Куда отправится сообщение - -::: - - -### `cancel` - -- Если `true`, то ивент сообщения чата отменяется для других плагинов -- Если необходимо, чтобы другой плагин, связанный с чатом (DiscordSRV например) - работал, то нужно ставить `false` -- Если `false`, то это также вызывает дублирование в консоль - ![chat console](/chatconsole.png) - - - -### `priority` - -Приоритет чата, который используется для выбора, когда у нескольких чатов одинаковый `trigger`. Выбирается тот, у кого приоритет больше - -::: info НАПРИМЕР ЕСТЬ ЧАТЫ -```yaml -admin: - priority: 20 - trigger: "!" // [!code highlight] -helper: - priority: 10 - trigger: "!" // [!code highlight] -``` - -Если игрок имеет право на оба чата, то плагином выбран будет `admin` т.к. у него больше `priority` -::: - -### `trigger` - -Сообщение, с которого должно начинаться отправленное сообщение для чата - -::: info ЗНАЧЕНИЕ `trigger` МОЖЕТ БЫТЬ ЛЮБЫМ: -- `!`, `admin`, `.f` и т.д. -- пустым т.е. `trigger: ""`, тогда для этого чата подходит любое сообщение - ::: - -В итоговом сообщении `trigger` удаляется, т.е. если игрок отправил `!привет`, в итоге будет `привет` без `!` - - - - - -[//]: # (permission.yml) - - `permission.yml → message.chat` - - -<<< @/files/permission.yml#chat - - - -### `types` - -Список чатов и их прав - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/fcolor/index.md b/pulse/ru/docs/message/format/fcolor/index.md deleted file mode 100644 index 2289cf4d..00000000 --- a/pulse/ru/docs/message/format/fcolor/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Цвета - -Тег `fcolor` используется для индивидуальных настроек цвета у каждого игрока - -Использование: `` - -![color message](/colormessage.png) - - - -[//]: # (message.yml) - - `message.yml → format.fcolor` - - -<<< @/files/message.yml#fcolor - - - -### `default_colors` - -Список всех используемых цветов по умолчанию. Каждая цифра обозначает конкретный цвет, по умолчанию: `` используется для основного цвета, `` используется для основного цвета с выделением (например имени), `` для сообщений в локальном чате, `` для сообщений в глобальном чате. - -::: info Например есть цвет -```yaml -1: "" -``` -`1` - номер для цвета ``

-Чтобы такой тег использовать, нужно писать `` -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.fcolor` - - -<<< @/files/permission.yml#fcolor - - - -### `colors` - -Варианты `` и их права \ No newline at end of file diff --git a/pulse/ru/docs/message/format/fixation/index.md b/pulse/ru/docs/message/format/fixation/index.md deleted file mode 100644 index bc614fc2..00000000 --- a/pulse/ru/docs/message/format/fixation/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Фиксация - -Модуль форматирует сообщение игрока так, что первая буква - заглавная, а в конце есть точка - -![fixation](/fixation.png) - -[//]: # (message.yml) - - `message.yml → format.fixation` - - -<<< @/files/message.yml#fixation - - - -### `end_dot` - -Будет ли в конце сообщения добавлена точка, если её нет - -### `first_letter_uppercase` - -Будет ли первая буква в сообщении всегда заглавной - -### `non_dot_symbols` - -Список символов (могут быть и слова), после которых не нужно ставить точку - -[//]: # (permission.yml) - - `permission.yml → message.format.fixation` - - -<<< @/files/permission.yml#fixation - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/index.md b/pulse/ru/docs/message/format/index.md deleted file mode 100644 index 1efacd5f..00000000 --- a/pulse/ru/docs/message/format/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Форматирование - -Модуль, форматирующий отправленные сообщения - -[//]: # (message.yml) - - `message.yml → format` - - -<<< @/files/message.yml#format - - - -### `convert_legacy_color` - -Включает форматирование устаревших цветов - - - -### `adventure_tags` - -Это [Kyori теги](https://docs.advntr.dev/minimessage/format.html#standard-tags), которые могут быть в сообщениях - -| Тег | Использование | Описание | -|---------------------------|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------| -| `` | [Hover](https://docs.advntr.dev/minimessage/format.html#hover) | Текст при наведении | -| `` | [Click](https://docs.advntr.dev/minimessage/format.html#click) | Действие при нажатии | -| `` | [Color](https://docs.advntr.dev/minimessage/format.html#color) | Цвет | -| `` | [Keybind](https://docs.advntr.dev/minimessage/format.html#keybind) | Настройка клавиш для сообщения | -| `` | [Translatable](https://docs.advntr.dev/minimessage/format.html#translatable) | Сообщение с использованием локали игрока | -| `` | [Translatable](https://docs.advntr.dev/minimessage/format.html#translatable) | Сообщение с использованием локали игрока | -| `` | [Insertion](https://docs.advntr.dev/minimessage/format.html#insertion) | Вставка текста в чат с помощью ШИФТ | -| `` | [Font](https://docs.advntr.dev/minimessage/format.html#font) | Изменение шрифта текста | -| `` | [Decoration](https://docs.advntr.dev/minimessage/format.html#decoration) | Стандартные украшения майнкрафта `bold`, `italic`, `underlined`, `strikethrough`, `obfuscated` | -| `` | [Gradient](https://docs.advntr.dev/minimessage/format.html#gradient) | Градиентный цвет текста | -| `` | [Rainbow](https://docs.advntr.dev/minimessage/format.html#rainbow) | Радужный цвет текста | -| `` | [Reset](https://docs.advntr.dev/minimessage/format.html#reset) | Сброс всех тегов и декораций | -| `` | [Newline](https://docs.advntr.dev/minimessage/format.html#newline) | Переход на новую строку, замена `\n` | -| `` | [Transition](https://docs.advntr.dev/minimessage/format.html#transition) | Переход между двумя цветами | -| `` | [Selector](https://docs.advntr.dev/minimessage/format.html#selector) | Селектор мобов | -| `` | [Score](https://docs.advntr.dev/minimessage/format.html#score) | Значение у команды (scoreboard) | -| `` | [NBT](https://docs.advntr.dev/minimessage/format.html#nbt) | Вставка NBT компонента | -| ... | ... | ... | - -[//]: # (permission.yml) - - `permission.yml → message.format` - - -<<< @/files/permission.yml#format - - - -### `legacy_colors` - -Это позволит игроку использовать устаревшие цвета в своих сообщениях - - - -::: tip ПРИМЕЧАНИЕ - -Если тебе нужно, чтобы цвета игрока в чате форматировались, используй ``flectonepulse.module.message.format.color`` - -::: - -### `adventure_tags` - -Список тегов и их прав для использования \ No newline at end of file diff --git a/pulse/ru/docs/message/format/mention/index.md b/pulse/ru/docs/message/format/mention/index.md deleted file mode 100644 index 02c0376f..00000000 --- a/pulse/ru/docs/message/format/mention/index.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Упоминание - -::: warning ПРЕДУПРЕЖДЕНИЕ - -По умолчанию администраторов сервера нельзя упоминать из-за права `bypass` - -::: - -Это форматирование позволяет упоминать (пинговать) человека в сообщении. Также можно упоминать и донатные группы, например `@default` -![mention](/mention.png) - -[//]: # (localization) - - `localizations → язык.yml → message.format.mention` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#mention -<<< @/files/localizations/en_us.yml#mention -::: - -### `person` - -Сообщение игроку при упоминании - -### `format` - -Сообщение, если это упоминание игрока - -[//]: # (message.yml) - - `message.yml → format.mention` - - -<<< @/files/message.yml#mention - - - -### `trigger` - -Символ, с которого должно начинаться сообщение упоминания -::: info НАПРИМЕР -Если я хочу упомянуть `Flectone`, то я должен написать `@Flectone` -![mention](/mention.png) -::: - -### `everyone_tag` - -Слово, которое в сочетании с `trigger` будет упоминать всех игроков на сервере. Чтобы это использовать, необходимо иметь право `flectonepulse.module.message.format.mention.group.default` - - - - -[//]: # (permission.yml) - - `permission.yml → message.format.mention` - - -<<< @/files/permission.yml#mention - - - -### `group` - -Право для упоминания донатной группы, например `@default` - -::: tip ИНФОРМАЦИЯ - -Для каждой группы проверяется своё право `flectonepulse.module.message.format.mention.group.название_группы` - -::: - -### `bypass` - -Право для игнорирования упоминания - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/moderation/caps/index.md b/pulse/ru/docs/message/format/moderation/caps/index.md deleted file mode 100644 index 7cc868ba..00000000 --- a/pulse/ru/docs/message/format/moderation/caps/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Капс - -Это форматирование убирает капс в сообщении -![caps](/caps.png) - -[//]: # (message.yml) - - `message.yml → format.moderation.caps` - - -<<< @/files/message.yml#caps - - - -### `trigger` - -Процент букв, которые должны быть в верхнем регистре, чтобы сообщение было изменено - -::: info КАК ПРАВИЛЬНО НАПИСАТЬ ПРОЦЕНТ -`0.7` это `70%`, а `1.0` это `100%` т.е всё сообщение -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.caps` - - -<<< @/files/permission.yml#caps - - - -### `bypass` - -Право для игнорирования форматирования \ No newline at end of file diff --git a/pulse/ru/docs/message/format/moderation/delete/index.md b/pulse/ru/docs/message/format/moderation/delete/index.md deleted file mode 100644 index 9a7a6a64..00000000 --- a/pulse/ru/docs/message/format/moderation/delete/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Удаление - -Это форматирование заменяет `` и позволяет удалять сообщения в чате -![delete](/delete.gif) - -::: warning ПРЕДУПРЕЖДЕНИЕ - -При большом количестве игроков может вызывать немного больше потребление памяти из-за хранения сообщений. По примерным расчётам 100 игроков = 5-10 мбайт - -::: - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Этот модуль несовместим с плагином InteractiveChat - -::: - -[//]: # (localization) - - `localizations → язык.yml → message.format.moderation.delete` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#delete -<<< @/files/localizations/en_us.yml#delete -::: - -### `placeholder` - -Плейсхолдер, которым заменяется каждый ``, если у игрока есть права на удаление сообщения, иначе будет пусто - -### `format` - -Формат сообщения, которое будет отправлено при удалении - -[//]: # (message.yml) - - `message.yml → format.moderation.delete` - - -<<< @/files/message.yml#delete - - - -### `history_length` - -Сколько максимально сообщений будет храниться в истории у каждого игрока - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.delete` - - -<<< @/files/permission.yml#delete - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/moderation/flood/index.md b/pulse/ru/docs/message/format/moderation/flood/index.md deleted file mode 100644 index 7a6396bd..00000000 --- a/pulse/ru/docs/message/format/moderation/flood/index.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Флуд - -Это форматирование удаляет флуд в сообщении -![caps](/caps.png) - -[//]: # (message.yml) - - `message.yml → format.moderation.flood` - - -<<< @/files/message.yml#flood - - - -### `trim_to_single` - -Заменять ли ВЕСЬ флуд на одну букву/слово или просто сокращать до лимита `max_repeated_symbols`/`max_repeated_words` - -### `max_repeated_symbols` - -Максимальное количество одинаковых букв подряд - -### `max_repeated_words` - -Максимальное количество одинаковых слов подряд - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.flood` - - -<<< @/files/permission.yml#flood - - - -### `bypass` -Право на обход данного форматирования \ No newline at end of file diff --git a/pulse/ru/docs/message/format/moderation/index.md b/pulse/ru/docs/message/format/moderation/index.md deleted file mode 100644 index ddc2e42a..00000000 --- a/pulse/ru/docs/message/format/moderation/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Модерация - -Модуль, отвечающий за модерацию сообщений - -[//]: # (message.yml) - - `message.yml → format.moderation` - - -<<< @/files/message.yml#moderation - - - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation` - - -<<< @/files/permission.yml#moderation - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/moderation/newbie/index.md b/pulse/ru/docs/message/format/moderation/newbie/index.md deleted file mode 100644 index 419edd15..00000000 --- a/pulse/ru/docs/message/format/moderation/newbie/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Новичок - -Этот модуль запрещает новичкам сервера писать сообщение определённое время - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Новичком сервера считается тот игрок, который никогда не был на сервере - -::: - -[//]: # (localization) - - `localizations → язык.yml → message.format.moderation.newbie` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#newbie -<<< @/files/localizations/en_us.yml#newbie -::: - -### `reason` - -Причина, которая будет использована для сообщения в муте - -[//]: # (message.yml) - - `message.yml → format.moderation.newbie` - - -<<< @/files/message.yml#newbie - - - -### `mode` - -| Режим | Объяснение | -|-----------------|----------------------------------------------------------------| -| `PLAYED_TIME` | Сколько наиграно времени на сервере | -| `SINCE_JOIN` | Сколько прошло времени с момента первого подключения на сервер | - -### `timeout` - -Время в секундах, сколько новичку нельзя писать сообщение - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.newbie` - - -<<< @/files/permission.yml#newbie - - - -### `bypass` - -Право для игнорирования этого модуля \ No newline at end of file diff --git a/pulse/ru/docs/message/format/moderation/swear/index.md b/pulse/ru/docs/message/format/moderation/swear/index.md deleted file mode 100644 index 021904a8..00000000 --- a/pulse/ru/docs/message/format/moderation/swear/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Ругательство - -Это форматирование скрывает ругательство игрока -![swear](/swear.png) - -[//]: # (localization) - - `localizations → язык.yml → message.format.moderation.swear` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#swear -<<< @/files/localizations/en_us.yml#swear -::: - -### `symbol` - -Символ, которым заменяется каждая буква ругательства - -[//]: # (message.yml) - - `message.yml → format.moderation.swear` - - -<<< @/files/message.yml#swear - - - -### `trigger` - -Список [регулярных выражений](https://javarush.com/groups/posts/regulyarnye-vyrazheniya-v-java) для того, чтобы определять ругательство - -::: info НАПРИМЕР -- Для цифренного айпи `\\b((?:\\d{1,3}\\.){3}\\d{1,3})\\b` -- Для буквенного айпи `(?i)\\b((https?:\\/\\/)?([\\w\\.а-яА-Я-]+\\.([a-z]{2,4}|[рР][фФ]|[уУ][кК][рР]))\\b(:\\d{2,7})?(\\/\\S+)?)` -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.moderation.swear` - - -<<< @/files/permission.yml#swear - - - -### `bypass` - -Право для игнорирования форматирования - -### `see` - -Право для просмотра содержимого в запрещённом слове \ No newline at end of file diff --git a/pulse/ru/docs/message/format/names/index.md b/pulse/ru/docs/message/format/names/index.md deleted file mode 100644 index 18e876fc..00000000 --- a/pulse/ru/docs/message/format/names/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Имя - -Модуль, отвечающий за имя игрока -![name tab](/nametab.png) -![name display](/namedisplay.png) - -[//]: # (localization) - - `localizations → язык.yml → message.format.names` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#names -<<< @/files/localizations/en_us.yml#names -::: - -### `constant` - -Сообщение, которое будет форматироваться от отправителя на сервере, откуда было отправлено. Его можно использовать в любом сообщении с помощью `` - -::: info ПРИМЕЧАНИЕ -Если у тебя возникают проблемы в сообщениях для `Velocity` или `BungeeCord`, то это решение твоей проблемы: - -```yaml -constant: "%player_name%" -display: "" -``` - -::: - - -### `display` - -Отвечает за имя игрока -![name display](/namedisplay.png) - -### `entity` - -Отвечает за имя сущности - -### `unknown` - -Отвечает за имя сущности, если его не удалось узнать - -### `invisible` - -Отвечает за имя игрока, если он под зельем невидимости - -[//]: # (message.yml) - - `message.yml → format.names` - - -<<< @/files/message.yml#names - - - -### `should_check_invisibility` - -Нужно ли проверять, что игрок под зельем невидимости. Если да, то будет использовано имя `invisible` - -[//]: # (permission.yml) - - `permission.yml → message.format.names` - - -<<< @/files/permission.yml#names - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/object/index.md b/pulse/ru/docs/message/format/object/index.md deleted file mode 100644 index 56b01e06..00000000 --- a/pulse/ru/docs/message/format/object/index.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Объект - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Модуль будет работать только для игроков, которые играют с версии `1.21.9` и выше. Для других это не будет отображаться - -::: - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Головы и иконки могут краситься в конфиг файлах, чтобы такого не происходило, нужно использовать белый цвет перед ними. Например `` - -::: - -Модуль, отвечающий за головы и символы в чате -![object](/object.png) - -[//]: # (localization) - - `localizations → язык.yml → message.format.object` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#object -<<< @/files/localizations/en_us.yml#object -::: - -### `default_symbol` - -Символ для обычных `` и ``, если получатель не может увидеть итоговый объект (для `` и `` это указывается вручную) - -[//]: # (message.yml) - - `message.yml → format.object` - - -<<< @/files/message.yml#object - - - -### `player_head` - -Включает форматирования плейсхолдера ``. Его можно использовать по разному -- `` вернёт голову игрока, от которого было написано сообщение -- `` вернёт голову игрока, ник которого был написан внутри -- `` вернёт голову игрока с выключенным вторым слоем, ник которого был написан внутри -- Если указанный ник не существует, то голова будет с рандомным скином по умолчанию -- `` вернёт голову игрока или текст, указанный первым аргументом, если получатель не может видеть головы в чате. Например `` вернёт голову Нотча, а в консоли будет слово `hello` - -::: tip ЗАМЕЧАНИЕ - -В модуль `playerlistname` уже встроен по умолчанию `` и он работает только для игроков, которые имеют неофициальную игру. Для лицензий таб будет обычным - -::: - -### `sprite` - -Включает форматирование плейсхолдера ``. Его можно использовать по разному -- ``, возвращает иконку из атласа `blocks`, например `` (это тоже самое, что и ``) -- ``, возвращает иконку из написанного атласа, например `` -- Если спрайт будет указан неверно, он будет неизвестной текстурой. С помощью ресурспака вы можете делать свои спрайты -- `` возвращает иконку или текст, указанный первым аргументом, если получатель не может видеть иконки в чате. Например `` возвращает иконку дуба, а в консоли будет слово `hello` - -Легче всего названия атласов и иконок находить с помощью [комманды /sprite](/docs/command/sprite/) -![command sprite](/commandsprite.png) - -Также это можно находить в папке, которая создаётся с помощью комбинации `F3 + S` внутри майнкрафта. Там будут файлы `minecraft_textures_atlas_...` с `.txt` и `.png` форматом, с помощью этого можно найти подходящий спрайт -::: info НАПРИМЕР - -Есть атлас `gui` с названием `minecraft_textures_atlas_gui.png.txt`. В нём можно найти строчку с `minecraft:container/slot x=494 y=54 w=18 h=18` - -По этим координатам его можно визуально найти в `.png` атласе (чтобы посмотреть как он выглядит). Для того, чтобы его отобразить внутри майнкрафта, нужно убрать префикс `minecraft:` - -В итоге получаем `` -![object slot](/objectslot.png) - -::: - -### `need_extra_space` - -Включает добавление дополнительного пробела для `` и ``, которые написаны в конфиг файлах. В сообщения игроков пробел не добавляется - -[//]: # (permission.yml) - - `permission.yml → message.format.object` - - -<<< @/files/permission.yml#object - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/questionanswer/index.md b/pulse/ru/docs/message/format/questionanswer/index.md deleted file mode 100644 index 8c11ed7d..00000000 --- a/pulse/ru/docs/message/format/questionanswer/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Вопрос-Ответ - -Модуль, отвечающий за ответ на вопрос игрока -![question](/questionanswer.png) - -[//]: # (localization) - - `localizations → язык.yml → message.format.question_answer` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#questionanswer -<<< @/files/localizations/en_us.yml#questionanswer -::: - -### `questions` - -Список вопросов и ответов на эти вопросы - - -[//]: # (message.yml) - - `message.yml → format.questionanswer` - - -<<< @/files/message.yml#questionanswer - - - -### `questions` - -Список вопросов с их настройкой - - - - - -### `target` - -[Регулярное выражение](https://javarush.com/groups/posts/regulyarnye-vyrazheniya-v-java) для поиска вопроса - -[//]: # (permission.yml) - - `permission.yml → message.format.question_answer` - - -<<< @/files/permission.yml#questionanswer - - - -### `questions` - -Список вопросов с правами - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/replacement/index.md b/pulse/ru/docs/message/format/replacement/index.md deleted file mode 100644 index 1ea6dfb1..00000000 --- a/pulse/ru/docs/message/format/replacement/index.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Замена - -Используется для замены триггеров на определённые значения - -![ping](/ping.png) - - -![tps](/tps.png) - - -![online](/online.png) - - -![coords](/coords.png) - - -![stats](/stats.png) - - -![skin](/skin.png) - - -![item](/item.png) - -::: warning ПРЕДУПРЕЖДЕНИЕ - -`PacketEvents` в данный момент не поддерживает при наведении правильное отображение подробной информации о предмете. Предмет будет иметь "пустое" описание без зачарований. Чтобы решить эту проблему, можно включить [use_paper_message_sender](/docs/config/module/#use_paper_message_sender), но это костыль - -::: - -![url](/url.png) - - -![image](/image.png) - - -![spoiler](/spoiler.png) - - -![bold](/bold.png) - - -![italic](/italic.png) - - -![underline](/underline.png) - - -![obfuscated](/obfuscated.png) - - -![strikethrough](/strikethrough.png) - -[//]: # (localization) - - `localizations → язык.yml → message.format.replacement` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#replacement -<<< @/files/localizations/en_us.yml#replacement -::: - -### `spoiler_symbol` - -Символ, который будет заменять каждую букву слов у `spoiler` - -### `values` - -Список сообщений, где ключом является название, а значением, что будет показано вместо триггера - -[//]: # (message.yml) - - `message.yml → format.replacement` - - -<<< @/files/message.yml#replacement - - - -### `triggers` - -Список всех доступных триггеров, где ключом является название, а значением сам `trigger` в формате регулярного выражения - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Если ты добавляшеь новый триггер, то обязательно добавь его также и в файл локализации, т.е. на что он будет заменяться - -::: - -[//]: # (permission.yml) - - `permission.yml → message.format.replacement` - - -<<< @/files/permission.yml#replacement - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/scoreboard/index.md b/pulse/ru/docs/message/format/scoreboard/index.md deleted file mode 100644 index 04334648..00000000 --- a/pulse/ru/docs/message/format/scoreboard/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Скорборд - -Модуль, отвечающий правильную работу `team` и модулей -- [Значения](/docs/message/objective/) -- [Таб](/docs/message/tab/) - -::: warning ПРЕДУПРЕЖДЕНИЕ -Если возникают проблемы с `TAB` (например сортировка в ТАБе) или другим плагином, использующим `scoreboard`, нужно выключить этот модуль -::: - -[//]: # (message.yml) - - `message.yml → format.scoreboard` - - -<<< @/files/message.yml#scoreboard - - - -### `name_visible` - -Включает отображение имени над игроком - -### `color` - -Цвет команды игрока, если включено `name_visible`, то имя будет такого же цвета - -### `prefix` - -Сообщение перед именем над головой - -### `suffix` - -Сообщение после имени над головой - - - -[//]: # (permission.yml) - - `permission.yml → message.format.scoreboard` - - -<<< @/files/permission.yml#scoreboard - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/translate/index.md b/pulse/ru/docs/message/format/translate/index.md deleted file mode 100644 index f696b699..00000000 --- a/pulse/ru/docs/message/format/translate/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Перевод - -Тег `translate` используется для перевода сообщения на другой язык - -![translate](/translate.png) - -[//]: # (localization) - - `localizations → язык.yml → message.format.translate` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#translate -<<< @/files/localizations/en_us.yml#translate -::: - -### `action` - -Сообщение для перевода, в котором прописано выполнение комманды при нажатии - -[//]: # (message.yml) - - `message.yml → format.translate` - - -<<< @/files/message.yml#translate - - - -[//]: # (permission.yml) - - `permission.yml → message.format.translate` - - -<<< @/files/permission.yml#translate - - \ No newline at end of file diff --git a/pulse/ru/docs/message/format/world/index.md b/pulse/ru/docs/message/format/world/index.md deleted file mode 100644 index 424db68f..00000000 --- a/pulse/ru/docs/message/format/world/index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Измерение - -Модуль, отвечающий за тег `` т.е. за цвет измерения -![world tab](/worldtab.png) -![world chat](/worldchat.png) - -[//]: # (message.yml) - - `message.yml → format.world` - - -<<< @/files/message.yml#world - - - -### `mode` - -Режим определения мира из доступных - -| Режим | Описание | -|----------|--------------------------------------------------------------------------| -| `TYPE` | Мир определяется по названию его типа, например обычный мир это `normal` | -| `NAME` | Мир определяется по названию его папки | - -### `values` - -Список миров и их `` - -[//]: # (permission.yml) - - `permission.yml → message.format.world` - - -<<< @/files/permission.yml#world - - \ No newline at end of file diff --git a/pulse/ru/docs/message/greeting/index.md b/pulse/ru/docs/message/greeting/index.md deleted file mode 100644 index bebf8bef..00000000 --- a/pulse/ru/docs/message/greeting/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Приветствие - -Сообщение от сервера лично игроку, когда он подключился -![greeting](/greeting.png) - -[//]: # (localization) - - `localizations → язык.yml → message.greeting` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#greeting -<<< @/files/localizations/en_us.yml#greeting -::: - -### `format` - -Личное сообщение игроку при подключении - -[//]: # (message.yml) - - `message.yml → greeting` - - -<<< @/files/message.yml#greeting - - - - - -[//]: # (permission.yml) - - `permission.yml → message.greeting` - - -<<< @/files/permission.yml#greeting - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/index.md b/pulse/ru/docs/message/index.md deleted file mode 100644 index 24c210a9..00000000 --- a/pulse/ru/docs/message/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Сообщения - -Настройка сообщений `FlectonePulse` (из-за чего появляются и как) - -[//]: # (localization) - - `localizations → язык.yml` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#message -<<< @/files/localizations/en_us.yml#message -::: - -### `cooldown` - -Сообщение, которое показывается при слишком частом использовании, если включен `cooldown` - -### `time` - -Сообщения времени - -- #### `format` - -Форматирование времени ([Apache DurationFormatUtils](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DurationFormatUtils.html)) - -- #### `permanent` - -Форматирование времени, если оно `-1` т.е. навсегда - -- #### `zero` - -Форматирование времени, если оно равно нулю - -[//]: # (message.yml) - - `message.yml` - - -<<< @/files/message.yml#message - - - -[//]: # (permission.yml) - - `permission.yml → message` - - -<<< @/files/permission.yml#message - - \ No newline at end of file diff --git a/pulse/ru/docs/message/join/index.md b/pulse/ru/docs/message/join/index.md deleted file mode 100644 index 9ac12f27..00000000 --- a/pulse/ru/docs/message/join/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Подключение - -Сообщение от сервера, когда игрок подключился -![join](/join.png) - -[//]: # (localization) - - `localizations → язык.yml → message.join` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#join -<<< @/files/localizations/en_us.yml#join -::: - -### `format` - -Сообщение при подключении на сервер - -### `format_first_time` - -Сообщение при первом подключении на сервер - -[//]: # (message.yml) - - `message.yml → join` - - -<<< @/files/message.yml#join - - - -### `first` - -Включает сообщение о самом первом подключении игрока на сервер - - - - - -[//]: # (permission.yml) - - `permission.yml → message.join` - - -<<< @/files/permission.yml#join - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/objective/belowname/index.md b/pulse/ru/docs/message/objective/belowname/index.md deleted file mode 100644 index 6b2f8401..00000000 --- a/pulse/ru/docs/message/objective/belowname/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Под ником - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Если в модуле `scoreboard` отображение имени выключен (`name_visible: false`), то значение под ником не будет показываться - -::: - -[ScoreBoard значение](https://ru.minecraft.wiki/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D1%91%D1%82%D0%B0_%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D1%85_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9) игрока под его ником -![below name](/belowname.png) - -[//]: # (localization) - - `localizations → язык.yml → message.belowname` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#belowname -<<< @/files/localizations/en_us.yml#belowname -::: - -### `format` - -Сообщение, которое будет показано под ником - -[//]: # (message.yml) - - `message.yml → objective.belowname` - - -<<< @/files/message.yml#belowname - - - -### `mode` - -Режим цифрового отображения значения из доступных - - - -::: info НАПРИМЕР РЕЖИМ `PING` -Значит будет возвращаться пинг игрока -![below name](/belowname.png) -::: - - - -[//]: # (permission.yml) - - `permission.yml → message.objective.belowname` - - -<<< @/files/permission.yml#belowname - - \ No newline at end of file diff --git a/pulse/ru/docs/message/objective/index.md b/pulse/ru/docs/message/objective/index.md deleted file mode 100644 index 6a879d2b..00000000 --- a/pulse/ru/docs/message/objective/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Значения - -Модуль, отвечающий за [ScoreBoard значения](https://ru.minecraft.wiki/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D1%91%D1%82%D0%B0_%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D1%85_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9) игрока - -[//]: # (message.yml) - - `message.yml → objective` - - -<<< @/files/message.yml#objective - - - -[//]: # (permission.yml) - - `permission.yml → message.objective` - - -<<< @/files/permission.yml#objective - - \ No newline at end of file diff --git a/pulse/ru/docs/message/objective/tabname/index.md b/pulse/ru/docs/message/objective/tabname/index.md deleted file mode 100644 index 0a5babfb..00000000 --- a/pulse/ru/docs/message/objective/tabname/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -authors: - - TheFaser ---- - -# В табе - -[ScoreBoard значение](https://ru.minecraft.wiki/w/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D1%91%D1%82%D0%B0_%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D1%85_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9) игрока в ТАБе -![player list](/playerlist.png) - -[//]: # (localization) - - `localizations → язык.yml → message.tabname` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#tabname -<<< @/files/localizations/en_us.yml#tabname -::: - -### `format` - -Сообщение, которое будет показано после ника - -[//]: # (message.yml) - - `message.yml → objective.tabname` - - -<<< @/files/message.yml#tabname - - - -### `mode` - -Режим цифрового отображения значения из доступных - - - -::: info НАПРИМЕР РЕЖИМ `PING` -Значит будет возвращаться пинг игрока -![player list](/playerlist.png) -::: - - - -[//]: # (permission.yml) - - `permission.yml → message.objective.tabname` - - -<<< @/files/permission.yml#tabname - - \ No newline at end of file diff --git a/pulse/ru/docs/message/quit/index.md b/pulse/ru/docs/message/quit/index.md deleted file mode 100644 index 12a7035e..00000000 --- a/pulse/ru/docs/message/quit/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Отключение - -Сообщение от сервера, когда игрок отключился -![quit](/quit.png) - -[//]: # (localization) - - `localizations → язык.yml → message.quit` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#quit -<<< @/files/localizations/en_us.yml#quit -::: - -### `format` - -Сообщение при отключении с сервера - -[//]: # (message.yml) - - `message.yml → quit` - - -<<< @/files/message.yml#quit - - - - - - -[//]: # (permission.yml) - - `permission.yml → message.quit` - - -<<< @/files/permission.yml#quit - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/rightclick/index.md b/pulse/ru/docs/message/rightclick/index.md deleted file mode 100644 index 6d6d0fd6..00000000 --- a/pulse/ru/docs/message/rightclick/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Правое нажатие - -Модуль, при котором **ПКМ** по игроку создаёт сообщение над инвентарём игрока -![right click](/rightclick.png) - -[//]: # (localization) - - `localizations → язык.yml → message.rightclick` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#rightclick -<<< @/files/localizations/en_us.yml#rightclick -::: - -### `format` - -Сообщение, которое будет отправлено игроку, нажавшему на другого игрока - -[//]: # (message.yml) - - `message.yml → rightclick` - - -<<< @/files/message.yml#rightclick - - - -### `should_check_sneaking` - -Нужно ли проверять, что игрок нажимает шифт, во время ПКМ - -### `hide_name_when_invisible` - -Нужно ли скрывать ник игрока, который находится в невидимости - - - - - -[//]: # (permission.yml) - - `permission.yml → message.rightclick` - - -<<< @/files/permission.yml#rightclick - - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/sidebar/index.md b/pulse/ru/docs/message/sidebar/index.md deleted file mode 100644 index b03563d7..00000000 --- a/pulse/ru/docs/message/sidebar/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Сайдбар - -Сообщения в правой части экрана -![scoreboard](/scoreboard.png) - -[//]: # (localization) - - `localizations → язык.yml → message.sidebar` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#sidebar -<<< @/files/localizations/en_us.yml#sidebar -::: - -### `values` - -Список сообщений, где `- -` разделяет разные форматы - -[//]: # (message.yml) - - `message.yml → sidebar` - - -<<< @/files/message.yml#sidebar - - - - - -[//]: # (permission.yml) - - `permission.yml → message.sidebar` - - -<<< @/files/permission.yml#sidebar - - \ No newline at end of file diff --git a/pulse/ru/docs/message/sign/index.md b/pulse/ru/docs/message/sign/index.md deleted file mode 100644 index f8651ba9..00000000 --- a/pulse/ru/docs/message/sign/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Табличка - -Модуль, отвечающий за сообщения на табличке -![sign](/signoak.gif) - -[//]: # (message.yml) - - `message.yml → sign` - - -<<< @/files/message.yml#sign - - - -[//]: # (permission.yml) - - `permission.yml → message.sign` - - -<<< @/files/permission.yml#sign - - \ No newline at end of file diff --git a/pulse/ru/docs/message/status/icon/index.md b/pulse/ru/docs/message/status/icon/index.md deleted file mode 100644 index 139ef9ec..00000000 --- a/pulse/ru/docs/message/status/icon/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Иконка - -Модуль отвечающий за изображение сервера -![server icon](/servericon.png) - -[//]: # (message.yml) - - `message.yml → status.icon` - - -<<< @/files/message.yml#icon - - - -### `random` - -Если включено, то изображение будет выбираться случайным образом, иначе по порядку - -### `values` - -`server-icon-1.png` ![server icon 1](/server-icon-1.png) - - -`server-icon-2.png` ![server icon 2](/server-icon-2.png) - -Список названий изображений, которые должны отображаться - -::: danger ИЗОБРАЖЕНИЕ ДОЛЖНО -1. Находиться внутри папки `/FlectonePulse/images/` -2. Иметь размер **ТОЛЬКО** `64x64` - ::: - -[//]: # (permission.yml) - - `permission.yml → message.status.icon` - - -<<< @/files/permission.yml#icon - - \ No newline at end of file diff --git a/pulse/ru/docs/message/status/index.md b/pulse/ru/docs/message/status/index.md deleted file mode 100644 index 33853218..00000000 --- a/pulse/ru/docs/message/status/index.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Статус - -Модуль, который отвечает за всё, что происходит при просмотре сервера перед подключением - -[//]: # (message.yml) - - `message.yml → status` - - -<<< @/files/message.yml#status - - - -[//]: # (permission.yml) - - `permission.yml → message.status` - - -<<< @/files/permission.yml#status - - \ No newline at end of file diff --git a/pulse/ru/docs/message/status/motd/index.md b/pulse/ru/docs/message/status/motd/index.md deleted file mode 100644 index 8818a8b4..00000000 --- a/pulse/ru/docs/message/status/motd/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Описание - -Модуль отвечающий за приветственное сообщение сервера -![motd](/motd.png) - -[//]: # (localization) - - `localizations → язык.yml → message.status.motd` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#motd -<<< @/files/localizations/en_us.yml#motd -::: - -### `values` - -Список сообщений, которые будут показываться - -[//]: # (message.yml) - - `message.yml → status.motd` - - -<<< @/files/message.yml#motd - - - - -[//]: # (permission.yml) - - `permission.yml → message.status.motd` - - -<<< @/files/permission.yml#motd - - \ No newline at end of file diff --git a/pulse/ru/docs/message/status/players/index.md b/pulse/ru/docs/message/status/players/index.md deleted file mode 100644 index 44e54f3d..00000000 --- a/pulse/ru/docs/message/status/players/index.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Игроки - -Модуль отвечающий за количество игроков на сервере -![player count](/playercount.png) - -[//]: # (localization) - - `localizations → язык.yml → message.status.players` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#players -<<< @/files/localizations/en_us.yml#players -::: - -### `samples` - -Список игроков сервера. Плейсхолдер `` добавляет всех игроков сервера к списку - -::: info ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ - -Можно добавлять любые сообщения -```yaml -samples: - - name: "Это сервер в майнкрафте!" - id: null - - name: "" - id: null -``` -![sample1](/sample1.png) - -или создавать фейковых игроков -```yaml -samples: - - name: "Notch" - id: null - - name: "" - id: null -``` -![sample2](/sample2.png) -::: - -::: warning ПРЕДУПРЕЖДЕНИЕ - -Можно использовать только доступные цвета - -::: - -### `full` - -Сообщение при подключении на полный сервер - -[//]: # (message.yml) - - `message.yml → status.players` - - -<<< @/files/message.yml#players - - - -### `control` - -Если включено, то игрока не будет впускать на сервер при большем количестве игроков, чем [указано](#max) - -### `max` - -Максимальное количество игроков на сервере - -### `online` - -Число, которое позволяет указать любой онлайн на сервере - -::: info ИНФОРМАЦИЯ - -Число может быть любым, но `-69` указывает на текущий онлайн - -::: - -[//]: # (permission.yml) - - `permission.yml → message.status.players` - - -<<< @/files/permission.yml#players - - - -### `bypass` - -Право для подключения на полный сервер \ No newline at end of file diff --git a/pulse/ru/docs/message/status/version/index.md b/pulse/ru/docs/message/status/version/index.md deleted file mode 100644 index ff66164f..00000000 --- a/pulse/ru/docs/message/status/version/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Версия - -Модуль отвечающий за версию сервера -![version](/version.png) - -[//]: # (localization) - - `localizations → язык.yml → message.status.version` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#version -<<< @/files/localizations/en_us.yml#version -::: - -### `name` - -Название версии сервера - -[//]: # (message.yml) - - `message.yml → status.version` - - -<<< @/files/message.yml#version - - - -### `protocol` - -[Протокол](https://minecraft.wiki/w/Protocol_version) сервера - -::: info ИНФОРМАЦИЯ - -Число может быть любым, но `-1` указывает на текущий протокол - -::: - -[//]: # (permission.yml) - - `permission.yml → message.status.version` - - -<<< @/files/permission.yml#version - - \ No newline at end of file diff --git a/pulse/ru/docs/message/tab/footer/index.md b/pulse/ru/docs/message/tab/footer/index.md deleted file mode 100644 index ba72f5be..00000000 --- a/pulse/ru/docs/message/tab/footer/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Нижнее - -Модуль, отвечающий за текст в нижней части ТАБа -![footer](/footer.png) - -[//]: # (localization) - - `localizations → язык.yml → message.tab.footer` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#footer -<<< @/files/localizations/en_us.yml#footer -::: - -### `lists` - -Список сообщений, где `- -` разделяет разные форматы - -[//]: # (message.yml) - - `message.yml → tab.footer` - - -<<< @/files/message.yml#footer - - - - - - -[//]: # (permission.yml) - - `permission.yml → message.tab.footer` - - -<<< @/files/permission.yml#footer - - \ No newline at end of file diff --git a/pulse/ru/docs/message/tab/header/index.md b/pulse/ru/docs/message/tab/header/index.md deleted file mode 100644 index 65051080..00000000 --- a/pulse/ru/docs/message/tab/header/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Верхнее - -Модуль, отвечающий за текст в верхней части ТАБа -![header](/header.png) - -[//]: # (localization) - - `localizations → язык.yml → message.tab.header` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#header -<<< @/files/localizations/en_us.yml#header -::: - -### `lists` - -Список сообщений, где `- -` разделяет разные форматы - -[//]: # (message.yml) - - `message.yml → tab.header` - - -<<< @/files/message.yml#header - - - - - - -[//]: # (permission.yml) - - `permission.yml → message.tab.header` - - -<<< @/files/permission.yml#header - - \ No newline at end of file diff --git a/pulse/ru/docs/message/tab/index.md b/pulse/ru/docs/message/tab/index.md deleted file mode 100644 index cad4e46c..00000000 --- a/pulse/ru/docs/message/tab/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Таб - -Категория, отвечающая за сообщения в ТАБе - -::: warning ВАЖНО -Чтобы ТАБ сортировался в зависимости от донатной группы, включи [`tab_sort`](/docs/integration/luckperms/#tab-sort) -::: - -[//]: # (message.yml) - - `message.yml → tab` - - -<<< @/files/message.yml#tab - - - -[//]: # (permission.yml) - - `permission.yml → message.tab` - - -<<< @/files/permission.yml#tab - - \ No newline at end of file diff --git a/pulse/ru/docs/message/tab/playerlistname/index.md b/pulse/ru/docs/message/tab/playerlistname/index.md deleted file mode 100644 index bebb8aea..00000000 --- a/pulse/ru/docs/message/tab/playerlistname/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Имя в списке - -Модуль, отвечающий за имя игрока в ТАБе -![player list name](/playerlistname.png) - -[//]: # (localization) - - `localizations → язык.yml → message.tab.playerlistname` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#playerlistname -<<< @/files/localizations/en_us.yml#playerlistname -::: - -### `format` - -Сообщение в списке ТАБа - -[//]: # (message.yml) - - `message.yml → tab.playerlistname` - - -<<< @/files/message.yml#playerlistname - - - -### `proxy_mode` - -Если включено, то игроки на разных серверах будут синхронизированы в одном ТАБе. Для этого требуется включение прокси режима в `FlectonePulse` - -::: warning ПРЕДУПРЕЖДЕНИЕ -1. Это работает на версиях 1.19.4 и выше -2. Между серверами игроки не смогут по ТАБу узнать пинг другого игрока (он всегда будет -1, если игрок на другом сервере) -3. Для корректного отображения скинов требуется SkinsRestorer в режиме прокси -::: - - - -[//]: # (permission.yml) - - `permission.yml → message.tab.playerlistname` - - -<<< @/files/permission.yml#playerlistname - - \ No newline at end of file diff --git a/pulse/ru/docs/message/update/index.md b/pulse/ru/docs/message/update/index.md deleted file mode 100644 index 38a55d21..00000000 --- a/pulse/ru/docs/message/update/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Обновление - -Оповещение о том, что вышла новая версия `FlectonePulse`. Пишется только админам и в консоль -![update](/update.png) - -[//]: # (localization) - - `localizations → язык.yml → message.update` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#update -<<< @/files/localizations/en_us.yml#update -::: - -### `format_player` - -Сообщение для игрока админа - -### `format_console` - -Сообщение для консоли - -[//]: # (message.yml) - - `message.yml → update` - - -<<< @/files/message.yml#update - - - - - -[//]: # (permission.yml) - - `permission.yml → message.update` - - -<<< @/files/permission.yml#update - - - \ No newline at end of file diff --git a/pulse/ru/docs/message/vanilla/index.md b/pulse/ru/docs/message/vanilla/index.md deleted file mode 100644 index efd7a7fe..00000000 --- a/pulse/ru/docs/message/vanilla/index.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -authors: - - TheFaser ---- - -# Ванилла - -Любое сообщение от сервера, которое получает игрок -![death server](/deathserver.png) \ -![task](/task.png)\ -![weather](/weather.png)\ -![debugstick](/debugstick.png) - -## Возможные проблемы с - -### `Достижениями` - -Проверь и включи геймрул на отправление достижений с помощью `/gamerule announceAdvancements true` - -### `Blaze and Caves` - -Чтобы достижения из `Blaze and Caves` правильно отображались, нужно включить в нём ванильное отображение достижений -![advancement1](/advancement1.png)\ -![advancement2](/advancement2.png)\ -![advancement3](/advancement3.png) - -### `Командами` - -Проверь и включи геймрул на отправление ответов от команд с помощью `/gamerule sendCommandFeedback true` - - -[//]: # (localization) - - `localizations → язык.yml → message.vanilla` - - - -::: code-group -<<< @/files/localizations/ru_ru.yml#vanilla -<<< @/files/localizations/en_us.yml#vanilla -::: - -### `format_player` - -Формат отображения игрока в аргументах - -### `format_entity` - -Формат отображения моба в аргументах - -### `types` - -Список сообщений, где ключом является ключ перевода - -::: tip ТЫ МОЖЕШЬ ДОБАВИТЬ ЛЮБОЕ СООБЩЕНИЕ -1. Возьмём команду `/random roll 1..100` - -![roll 1](/roll_1.png) - -2. Его ключ перевода будет `commands.random.roll`, который можно посмотреть на [этом сайте](https://mcasset.cloud/1.21.8/assets/minecraft/lang/en_us.json) - -![roll 2](/roll_2.png) - -3. Впишем в `types` этот ключ, заменяя каждый аргумент `%s` на ``, `` и т.д. - -```yaml -types: - commands.random.roll: " rolled (from to )" -``` - -4. После перезагрузки с помощью `/flectonepuse reload`, сообщение будет изменяться так, как мы сделали - -![roll 3](/roll_3.png) - -::: - -::: info ИНФОРМАЦИЯ - -- `` вернёт внутренний текст аргумента -- `` вернёт внутренний текст аргумента без скобок `[]` -- `` вернёт внутренний стиль аргумента -- `` вернёт главный внутренний компонент текста при наведении -- `` вернёт `другая_цифра` внутренний компонент текста при наведении -- `` вернёт стиль ховера компонента -- Если у сообщения нет аргументов, `` писать не нужно -- Если у сообщения не будет аргумента, который вписан, например ``, он будет заменён на пустоту -- Аргументы всегда идут в том порядке, в котором указаны в английской локализации майнкрафта. Если добавлять другую локализацию, то нужно использовать тотже порядок аргументов, как и в английской, но их можно менять местами. Например `` может идти раньше, чем ``, это не проблема - -Например, для настройки сообщения с достижением можно сделать так: `🌠 -> «» - ` - -![advancement showcase](/argument_showcase.png) - -::: - -[//]: # (message.yml) - - `message.yml → vanilla` - - -<<< @/files/message.yml#vanilla - - - -### `types` - -Список групп сообщений, которые объединены по какому-то общему признаку. Каждый параметр внутри необязателен - -::::: details НАСТРОЙКА ГРУППЫ - -#### `multi_message` - -Является ли это сообщение глобальным для всех. Если включено, то будет отправлено 1 раз от отправителя, а все другие сообщения отменены. Визуально это никак не видно, но используется для правильной интеграцией с `Proxy` и внешними сервисами. - -::: info НАПРИМЕР - -Сообщение о получении достижения отправляется каждому игроку отдельно. Если включить `multi_message`, то сообщение будет отправлено тогда, когда сообщение о достижении получит сам игрок, получивший это достижение. Тогда это сообщение отправится всем от его имени, позволяя корректно отправить это на `Proxy` и в интеграции - -::: - -#### `name` - -Название группы большими буквами. Используется, чтобы указывать эти сообщения в интеграциях (например в `Discord`) и в `/chatsetting` для включения/отключения отображения - - - - - -::::: - -[//]: # (permission.yml) - - `permission.yml → message.vanilla` - - -<<< @/files/permission.yml#vanilla - - - \ No newline at end of file diff --git a/pulse/ru/files/command.yml b/pulse/ru/files/command.yml deleted file mode 100644 index 987bd179..00000000 --- a/pulse/ru/files/command.yml +++ /dev/null @@ -1,955 +0,0 @@ -# ___ ___ __ ___ __ ___ -# |__ | |__ / ` | / \ |\ | |__ -# | |___ |___ \__, | \__/ | \| |___ -# __ __ ___ -# |__) | | | /__` |__ -# | \__/ |___ .__/ |___ /\ -# / \ -# __/\___ ____/\_____ ___/ \______ -# \/ \/ -# -#region command -enable: true -suggest_invisible_players: true -#endregion command -#region afk -afk: - enable: true - aliases: - - "afk" - cooldown: - enable: false - sound: - enable: false -#endregion afk -#region anon -anon: - enable: true - range: "PROXY" - aliases: - - "anon" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion anon -#region ball -ball: - enable: true - range: "PROXY" - aliases: - - "ball" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion ball -#region ban -ban: - enable: true - suggest_offline_players: true - show_connection_attempts: true - check_group_weight: true - range: "PROXY" - time_limits: - 0: -1 - aliases: - - "ban" - - "tempban" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion ban -#region banlist -banlist: - enable: true - per_page: 4 - aliases: - - "banlist" - cooldown: - enable: false - sound: - enable: false -#endregion banlist -#region broadcast -broadcast: - enable: true - range: "PROXY" - aliases: - - "broadcast" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion broadcast -#region chatcolor -chatcolor: - enable: true - aliases: - - "chatcolor" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion chatcolor -#region chatsetting -chatsetting: - enable: true - aliases: - - "chatsetting" - modern: - enable: true - button_width: 100 - columns: 5 - checkbox: - disabled_material: "RED_DYE" - enabled_material: "LIME_DYE" - types: - AFK: 9 - ADVANCEMENT: 10 - CHAT: 11 - COMMAND_ANON: 12 - COMMAND_BALL: 13 - COMMAND_BROADCAST: 14 - COMMAND_COIN: 15 - COMMAND_DICE: 16 - COMMAND_DO: 17 - COMMAND_MAIL: 18 - COMMAND_ME: 19 - COMMAND_POLL: 20 - COMMAND_ROCKPAPERSCISSORS: 21 - COMMAND_STREAM: 22 - COMMAND_TELL: 23 - COMMAND_TICTACTOE: 24 - COMMAND_TRY: 25 - DEATH: 26 - FROM_DISCORD_TO_MINECRAFT: 27 - FROM_TELEGRAM_TO_MINECRAFT: 28 - FROM_TWITCH_TO_MINECRAFT: 29 - JOIN: 30 - QUIT: 31 - SLEEP: 32 - menu: - material: "LIGHT_BLUE_DYE" - chat: - slot: 0 - types: - - name: "default" - material: "ARROW" - - name: "local" - material: "WHITE_DYE" - - name: "global" - material: "BLACK_DYE" - see: - slot: 1 - types: - - name: "default" - material: "ARROW" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "white" - material: "WHITE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "light_gray" - material: "LIGHT_GRAY_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "gray" - material: "GRAY_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "black" - material: "BLACK_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "brown" - material: "BROWN_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "red" - material: "RED_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "orange" - material: "ORANGE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "yellow" - material: "YELLOW_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "lime" - material: "LIME_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "green" - material: "GREEN_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "cyan" - material: "CYAN_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "light_blue" - material: "LIGHT_BLUE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "blue" - material: "BLUE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "purple" - material: "PURPLE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "magenta" - material: "MAGENTA_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "pink" - material: "PINK_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - out: - slot: 2 - types: - - name: "default" - material: "ARROW" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "white" - material: "WHITE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "light_gray" - material: "LIGHT_GRAY_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "gray" - material: "GRAY_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "black" - material: "BLACK_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "brown" - material: "BROWN_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "red" - material: "RED_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "orange" - material: "ORANGE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "yellow" - material: "YELLOW_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "lime" - material: "LIME_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "green" - material: "GREEN_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "cyan" - material: "CYAN_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "light_blue" - material: "LIGHT_BLUE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "blue" - material: "BLUE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "purple" - material: "PURPLE_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "magenta" - material: "MAGENTA_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - - name: "pink" - material: "PINK_DYE" - colors: - 1: "" - 2: "" - 3: "" - 4: "" - cooldown: - enable: false - sound: - enable: false -#endregion chatsetting -#region clearchat -clearchat: - enable: true - aliases: - - "clearchat" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion clearchat -#region clearmail -clearmail: - enable: true - aliases: - - "clearmail" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion clearmail -#region coin -coin: - enable: true - draw: true - range: "PROXY" - aliases: - - "coin" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion coin -#region deletemessage -deletemessage: - enable: true - aliases: - - "deletemessage" - destination: - type: "ACTION_BAR" - times: - stay: 60 - cooldown: - enable: false - sound: - enable: false -#endregion deletemessage -#region dice -dice: - enable: true - range: "PROXY" - min: 1 - max: 6 - aliases: - - "dice" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion dice -#region do -do: - enable: true - range: "PROXY" - aliases: - - "do" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion do -#region emit -emit: - enable: true - aliases: - - "emit" - cooldown: - enable: false - sound: - enable: false -#endregion emit -#region flectonepulse -flectonepulse: - enable: true - execute_in_main_thread: false - aliases: - - "flectonepulse" - - "fp" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion flectonepulse -#region geolocate -geolocate: - enable: true - suggest_offline_players: true - aliases: - - "geolocate" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion geolocate -#region helper -helper: - enable: true - null_helper: true - range: "PROXY" - aliases: - - "helper" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion helper -#region ignore -ignore: - enable: true - suggest_offline_players: true - aliases: - - "ignore" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion ignore -#region ignorelist -ignorelist: - enable: true - per_page: 4 - aliases: - - "ignorelist" - cooldown: - enable: false - sound: - enable: false -#endregion ignorelist -#region kick -kick: - enable: true - range: "PROXY" - aliases: - - "kick" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion kick -#region mail -mail: - enable: true - aliases: - - "mail" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion mail -#region maintenance -maintenance: - enable: true - turned_on: false - aliases: - - "maintenance" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion maintenance -#region me -me: - enable: true - range: "PROXY" - aliases: - - "me" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion me -#region mute -mute: - enable: true - suggest_offline_players: true - check_group_weight: true - range: "PROXY" - time_limits: - 0: -1 - aliases: - - "mute" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion mute -#region mutelist -mutelist: - enable: true - per_page: 4 - aliases: - - "mutelist" - cooldown: - enable: false - sound: - enable: false -#endregion mutelist -#region online -online: - enable: true - suggest_offline_players: true - range: "PROXY" - aliases: - - "online" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion online -#region ping -ping: - enable: true - aliases: - - "ping" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion ping -#region poll -poll: - enable: true - enable_gui: true - last_id: 1 - range: "PROXY" - aliases: - - "poll" - cooldown: - enable: false - sound: - enable: false -#endregion poll -#region reply -reply: - enable: true - aliases: - - "reply" - - "r" - cooldown: - enable: false - sound: - enable: false -#endregion reply -#region rockpaperscissors -rockpaperscissors: - enable: true - aliases: - - "rockpaperscissors" - - "rps" - strategies: - rock: - - "scissors" - paper: - - "rock" - scissors: - - "paper" - cooldown: - enable: false - sound: - enable: false -#endregion rockpaperscissors -#region sprite -sprite: - enable: true - per_page: 16 - aliases: - - "sprite" - categories: - - "armor_trims" - - "banner_patterns" - - "beds" - - "blocks" - - "celestials" - - "chest" - - "decorated_pot" - - "gui" - - "items" - - "map_decorations" - - "paintings" - - "particles" - - "shield_patterns" - - "shulker_boxes" - - "signs" - cooldown: - enable: false - sound: - enable: false -#endregion sprite -#region spy -spy: - enable: true - range: "PROXY" - aliases: - - "spy" - categories: - command: - - "tell" - - "msg" - - "w" - - "message" - - "send" - - "m" - - "anon" - action: - - "anvil" - - "book" - - "sign" - - "local" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion spy -#region stream -stream: - enable: true - range: "PROXY" - aliases: - - "stream" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: true - volume: 1.0 - pitch: 1.0 - category: "BLOCK" - name: "minecraft:block.note_block.bell" -#endregion stream -#region symbol -symbol: - enable: true - per_page: 16 - aliases: - - "symbol" - categories: - activities: "⚽ ⚾ ⛷ ⛸ ⛹ ⛺ 🎘 🎙 🎤 🎞 🎟 🎠 🎡 🎢 🎥 🎦 🎧 🎨 🎩 🎪 🎫 🎬 🎭 🎮 🕹 🎯 🎰 🎱 🎲 🎳 🎴 🎽 🎾 🎿 🏀 🏁 🏂 🏃 🏄 🏇 🏈 🏉 🏊 🏋 🏌 🏍 🏎 🏏 🏐 🏑 🏒 🏓 🥊 🥋 🥌 🥍 🥎 🥏 🪀 🪁 🪂 🪃 🪄 🪅 🪆 🤺 🤻 🤼 🤽 🤾 🤿 🧗 🧘 🤳 🤷 🤸 🤹 🏕 🏖 🏸 🏹 💒 🎀 🎁 🧧 🎂 🎃 🎄 🎅 🎆 🎇 🎈 🎉 🎊 🎋 🎌 🎍 🎎 🎏 🎐 🎑" - animals: "🐀 🐁 🐂 🐃 🐄 🐅 🐆 🐇 🐈 🐉 🐊 🐋 🐌 🐍 🐎 🐏 🐐 🐑 🐒 🐓 🐔 🐕 🐖 🐗 🐘 🐙 🐚 🐛 🐜 🐝 🐞 🐟 🐠 🐡 🐢 🐣 🐤 🐥 🐦 🐧 🐨 🐩 🐪 🐫 🐬 🐭 🐮 🐯 🐰 🐱 🐲 🐳 🐴 🐵 🐶 🐷 🐸 🐹 🐺 🐻 🐼 🐽 🐾 🐿 🕷 🕸 🦀 🦁 🦂 🦃 🦄 🦅 🦆 🦇 🦈 🦉 🦊 🦋 🦌 🦍 🦎 🦏 🦐 🦑 🦒 🦓 🦔 🦕 🦖 🦗 🦘 🦙 🦚 🦛 🦜 🦝 🦞 🦟 🦠 🦡 🦢 🦣 🦤 🦥 🦦 🦧 🦨 🦩 🦪 🦫 🦬 🦭 🦮 🪰 🪱 🪲 🪳 🪹 🪺 🪼 🪿 🫎 🫏" - arrows: "🡠 🡡 🡢 🡣 🡤 🡥 🡦 🡧 🡨 🡩 🡪 🡫 🡬 🡭 🡮 🡯 🢀 🢁 🢂 🢃 🢄 🢅 🢆 🢇 ← ↑ → ↓ ↔ ⇄ ⇵ ⇏ ⇒ ⇔ 🠘 🠙 🠚 🠛 🔙 🔚 🔛 🔜 🔝 🗘 🢴 🢵 🢶 🢷 🢸 🢹 🢺 🢻" - body: "👀 👁 👂 🦻 👃 👄 👅 💋 🗢 🫆 💪 🦴 🦵 🦶 🦷 🦾 🦿 🧠 🫀 🫁 🫦" - clothes: "👑 👒 👓 🕶 👔 👕 👖 👗 👘 👙 👚 👛 👜 👝 👞 👟 👠 👡 👢 🥻 🥼 🥽 🥾 🥿 🦺 🦯 🧢 🧣 🧤 🧥 🧦 🩰 🩱 🩲 🩳 🩴 🪖" - environment: "☼ ☽ ☾ ☀ 🌄 🌅 ☁ ☂ ☔ 🌂 ☄ ★ ☆ ⛅ ⛆ ☃ ⛄ ⛇ ⛈ ❄ 🌀 🌁 🌈 🌊 🌋 🌢 💧 🌣 🌤 🌥 🌦 🌧 🌨 🌩 🌪 🌫 🌬 🌆 🌇 🌉 ⭐ ⭑ ⭒ ⯪ ⯫ 🔯 🌃 🌌 🌞 🌟 🌠 🌍 🌎 🌏 🌐 🗺 🪐 🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘 🌙 🌚 🌛 🌜 🌝 🏔 🏜 🏝 🏞" - faces: "☹ ☺ ☻ 😀 😁 😂 😃 😄 😅 😆 😇 😈 😉 😊 😋 😌 😍 😎 😏 😐 😑 😒 😓 😔 😕 😖 😗 😘 😙 😚 😛 😜 😝 😞 😟 😠 😡 😢 😣 😤 😥 😦 😧 😨 😩 😪 😫 😬 😭 😮 😯 😰 😱 😲 😳 😴 🫩 😵 😶 😷 😸 😹 😺 😻 😼 😽 😾 😿 🙀 🙁 🙂 🙃 🙄 🙅 🙆 🙇 🙈 🙉 🙊 🙋 🙌 🙍 🙎 🙏 🤐 🤑 🤒 🤓 🤔 🤕 🤗 🤠 🤡 🤢 🤣 🤤 🤥 🤦 🤧 🤨 🤩 🤪 🤫 🤬 🤭 🤮 🤯 🥰 🥱 🥲 🥳 🥴 🥵 🥶 🥷 🥸 🥹 🥺 🧐 🫠 🫡 🫢 🫣 🫤 🫥 🫨" - food: "☕ 🌭 🌮 🌯 🌰 🌶 🍅 🍆 🍇 🍈 🍉 🍊 🍋 🍌 🍍 🍎 🍏 🍐 🍑 🍒 🍓 🍔 🍕 🍖 🍗 🍘 🍙 🍚 🍛 🍜 🍝 🍞 🍟 🍠 🍡 🍢 🍣 🍤 🍥 🍦 🍧 🍨 🍩 🍪 🍫 🍬 🍭 🍮 🍯 🍰 🍱 🍲 🍳 🍴 🍵 🍶 🍷 🍸 🍹 🍺 🍻 🍼 🍽 🍾 🍿 🥐 🥑 🥒 🥓 🥔 🥕 🫜 🥖 🥗 🥘 🥙 🥚 🥛 🥜 🥝 🥞 🥟 🥠 🥡 🥢 🥣 🥤 🥥 🥦 🥧 🥨 🥩 🥪 🥫 🥬 🥭 🥮 🥯 🧀 🧁 🧂 🧃 🧄 🧅 🧆 🧇 🧈 🧉 🧊 🧋 🫐 🫑 🫒 🫓 🫔 🫕 🫖 🫗 🫘 🫙 🫚 🫛" - greenery: "🌱 🌲 🌳 🌴 🌵 🌷 ⚘ 🌸 🌹 🥀 💮 🌺 🌻 🌼 🌽 🌾 🌿 🍀 🍁 🍂 🍃 🍄 🪾 🏵 🏶 🪴 🪷 🪸 🪻" - hands: "☜ ☝ ☞ ☟ ✊ ✋ ✌ ✍ 👆 👇 👈 👉 👊 👋 👌 👍 👎 👏 👐 🖎 🖏 🖐 🖑 🖒 🖓 🖔 🖕 🖖 🖗 🖘 🖙 🖚 🖛 🖜 🖝 🖞 🖟 🖠 🖡 🖢 🖣 🤌 🤏 🤘 🤙 🤚 🤛 🤜 🤝 🤞 🤟 🤲 🫰 🫱 🫲 🫳 🫴 🫵 🫶 🫷 🫸" - misc: "⏏ ⏩ ⏪ ⏫ ⏬ ⏭ ⏮ ⏯ ⏰ ⏱ ⏲ ⏳ ⏴ ⏵ ⏶ ⏷ ⏸ ⏹ ⏺ ⏻ ⏼ ⌚ ⌛ 🕐 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕚 🕛 🕜 🕝 🕞 🕟 🕠 🕡 🕢 🕣 🕤 🕥 🕦 🕧 🔅 🔆 🔇 🔈 🔉 🔊 🕨 🕩 🕪 🕫 🕬 🕭 🔋 🪫 🔌 🔍 🔎 🛜 🗔 🗕 🗖 🗗 🗘 🗙 🗚 🗛 ✉ 💌 📧 📨 📩 🖂 🖃 🖄 🖅 🖆 🪪 ⚐ ⚑ ⚕ ⚖ ⚙ ⛭ ⛮ ⚠ ⚡ ⚰ ⚱ ♔ ♕ ♖ ♗ ♘ ♙ ♚ ♛ ♜ ♝ ♞ ♟ ♠ ♡ ♢ ♣ ♤ ♥ ♦ ♧ ⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ⛀ ⛁ ⛂ ⛃ 💠 🔰 💢 💤 💥 🔥 💦 💨 🫧 🫟 💫 💬 💭 🗨 🗩 🗪 🗫 🗬 🗭 🗮 🗯 🗰 🗱 🗲 💱 💲 💳 💴 💵 💶 💷 💸 🪙 💹 📈 📉 📊 🗠" - numbers: "🯰 🯱 🯲 🯳 🯴 🯵 🯶 🯷 🯸 🯹 ½ ↉ ⅓ ⅔ ¼ ¾ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅐ ⅛ ⅜ ⅝ ⅞ ⅑ ⅒ ⅟ ⓪ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ ⓿ ➊ ➋ ➌ ➍ ➎ ➏ ➐ ➑ ➒ ➓ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ Ⅼ Ⅽ Ⅾ Ⅿ" - people: "👣 👤 👥 👦 👧 👨 👩 🧑 🧒 🧓 🧔 🧕 👪 👫 👬 👭 🧍 🧎 🚹 🚺 🚼 🛉 🛊 🧏 👮 👯 👰 👱 👲 🤶 👳 👴 👵 👶 👷 👸 👹 👺 👼 🤰 🫂 🫃 🫄 🤱 🧖 👻 👽 👾 🤖 🧌 👿 ☠ 💀 🕱 💁 💂 🤴 🫅 🤵 💃 🕺 💆 💇 💏 💑 🗣 🦸 🦹 🕴 🕵 🧙 🧚 🧛 🧜 🧝 🧞 🧟" - shapes: "🔲 🔳 🔴 🔵 🔶 🔷 🔸 🔹 🔺 🔻 🔼 🔽 💓 💔 💕 💖 💗 💘 💙 💚 💛 💜 🖤 💝 💞 💟 🤍 🤎 🧡 🩵 🩶 🩷 ❣ ❤ ❥ ❦ ❧ 🎔 │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐ └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ ▁ ▂ ▃ ▄ ▅ ▆ ▇ █ ▉ ▊ ▋ ▌ ▍ ▎ ▏ ▕ ▐ ▔ ▀ ▝ ▖ ▗ ▘ ▙ ▛ ▜ ▟ ▞ ▚" - symbols: "♩ ♪ ♫ ♬ ♭ ♮ ♯ 🎜 🎝 🎵 🎶 🎼 ♲ ♻ ☮ ☯ 🕆 🕇 🕈 🕉 🕊 🕎 🕏 ☐ ☑ ☒ ✓ ✔ ✕ ✖ ✗ ✘ ❌ ❎ 🗴 🗵 🗶 🗷 🗸 🗹 ♿ 🔞 ⛔ 🕲 🚫 🚬 🚭 🚮 🚯 🚰 🚱 🛆 🛇 🛈 🛑 🔟 🔠 🔡 🔢 🔣 🔤 🆑 🆒 🆓 🆔 🆕 🆖 🆗 🆘 🆙 🆚 ❓ ❔ ❕ ❗ ❛ ❜ ❝ ❞ ❟ ❠ 💯 🏱 🏲 🏳 🏴 🚩" - things: "⛏ 🪓 🪏 ⚒ ⚓ ⚔ 🎣 🗡 🔱 ⚗ ⛓ 🛠 🛡 🪚 🪛 ✀ ✁ ✂ ✃ ✄ ✎ ✏ ✐ ✑ ✒ 🖉 🖊 🖋 🖌 🖍 🌡 🏷 🎒 🎓 🎕 💐 🎖 🎗 🏅 🥇 🥈 🥉 🏆 🎚 🎛 🎷 🎸 🎹 🎺 🎻 🪇 🪈 🪕 🪗 🪘 🪉 🏺 💄 💅 🪨 🪵 🪶 🪽 💈 💉 💊 🧪 🧫 🩸 🩹 🩺 🩻 🩼 🧬 🧭 🧮 🧯 🧰 🧱 🧲 🧳 🧴 🧵 🧶 🧷 🧸 🧹 🧺 🧻 🧼 🧽 🧾 🧿 💍 💎 💡 💣 🧨 🥁 🥂 🥃 🥄 🥅 🥆 🧩 🪠 🪡 🪢 🪣 🪤 🪥 🪦 🪧 💩 💰 💺 💻 💼 💽 🖭 🖴 💾 🖪 🖫 🖬 💿 📀 🖸 📁 📂 🖿 🗀 🗁 🗂 🗃 🗄 📃 📄 📅 📆 📇 🖹 🖺 🖻 🖼 🖽 🖾 📋 📌 📍 🖈 📎 🖇 📏 📐 📑 📒 📓 📔 📕 📖 📗 📘 📙 📚 📛 📜 📝 🗅 🗆 🗇 🗈 🗉 🗊 🗋 🗌 🗍 🗎 🗏 🗐 🗑 🗒 🗓 📞 📟 📠 📡 📢 📣 📤 📥 📦 📪 📫 📬 📭 📮 📯 📰 📱 📲 📳 📴 📵 📶 🕻 🕼 🕽 🕾 🕿 🖀 🖁 📷 📸 📹 📺 📻 📼 📽 📾 📿 🖥 🖦 🖧 🖨 🖩 🖮 🖯 🖰 🖱 🖲 🖳 🖵 🖶 🖷 🔏 🔐 🔑 🔒 🔓 🔔 🔕 🔖 🔗 🔘 🔦 🔧 🔨 🔩 🔪 🔫 🔬 🔭 🔮 🪒 🪔 🕮 🕯 🕰 🗳 🛍 🛎 🛢 🗜 🗝 🗞 🗟 🕳" - transport: "⛟ ⛴ ⛵ ✈ ⛩ ⛪ ⛫ ⛰ ⛱ ⛲ ⛳ ⛽ 🗻 🗼 🗽 🗾 🗿 🚀 🚁 🚂 🚃 🚄 🚅 🚆 🚇 🚈 🚉 🚊 🛲 🚋 🚌 🚍 🚎 🚏 🚐 🚑 🚒 🛱 🚓 🚔 🚕 🚖 🚗 🛻 🚘 🚙 🚚 🚛 🚜 🚝 🚞 🚟 🚠 🚡 🚢 🛳 🚣 🚤 🛶 🛥 🛦 🛧 🛨 🛩 🛪 🛫 🛬 🛰 🛴 🛵 🛹 🛼 🛺 🛷 🦼 🦽 🛸 🛒 🚥 🚦 🚧 🚨 🏗 🏘 🏙 🏚 🏛 🏟 🏠 🏡 🏢 🏣 🏤 🏥 🏦 🏧 🏨 🏩 🏪 🏫 🏬 🏭 🏮 🏯 🏰 🕋 🕌 🕍 🛐 🛓 🛔 🛕 🛖 🚲 🚳 🚴 🚵 🚶 🚷 🚸 🚪 🪑 🪟 🪜 🪝 🪞 🚻 🚽 🚾 🚿 🛀 🛁 🛂 🛃 🛄 🛅 🛋 🛌 🛏 🛗 🛝 🛞 🛟 🛣 🛤" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion symbol -#region tell -tell: - enable: true - suggest_offline_players: false - range: "PROXY" - aliases: - - "tell" - - "msg" - - "w" - - "message" - - "send" - - "m" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion tell -#region tictactoe -tictactoe: - enable: true - aliases: - - "tictactoe" - - "ttt" - cooldown: - enable: false - sound: - enable: false -#endregion tictactoe -#region toponline -toponline: - enable: true - per_page: 10 - aliases: - - "toponline" - cooldown: - enable: false - sound: - enable: false -#endregion toponline -#region translateto -translateto: - enable: true - range: "PLAYER" - service: "GOOGLE" - aliases: - - "translateto" - languages: - - "en_us" - - "ru_ru" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion translateto -#region try -try: - enable: true - range: "PROXY" - min: 0 - max: 100 - good: 50 - aliases: - - "try" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion try -#region unban -unban: - enable: true - check_group_weight: true - range: "PROXY" - aliases: - - "unban" - - "pardon" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion unban -#region unmute -unmute: - enable: true - check_group_weight: true - range: "PROXY" - aliases: - - "unmute" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion unmute -#region unwarn -unwarn: - enable: true - check_group_weight: true - range: "PROXY" - aliases: - - "unwarn" - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion unwarn -#region warn -warn: - enable: true - suggest_offline_players: true - check_group_weight: true - range: "PROXY" - time_limits: - 0: -1 - aliases: - - "warn" - actions: - 2: "mute 1h" - 3: "ban 1h" - 5: "ban " - destination: - type: "CHAT" - cooldown: - enable: false - sound: - enable: false -#endregion warn -#region warnlist -warnlist: - enable: true - per_page: 4 - aliases: - - "warnlist" - cooldown: - enable: false - sound: - enable: false -#endregion warnlist diff --git a/pulse/ru/files/config.yml b/pulse/ru/files/config.yml deleted file mode 100644 index 6ff09eed..00000000 --- a/pulse/ru/files/config.yml +++ /dev/null @@ -1,143 +0,0 @@ -# ___ ___ __ ___ __ ___ -# |__ | |__ / ` | / \ |\ | |__ -# | |___ |___ \__, | \__/ | \| |___ -# __ __ ___ -# |__) | | | /__` |__ -# | \__/ |___ .__/ |___ /\ -# / \ -# __/\___ ____/\_____ ___/ \______ -# \/ \/ -# -# region version -version: "1.7.3" -# endregion version -#region language -language: - type: "en_us" - by_player: true -#endregion language -#region database -database: - ignore_existing_driver: false - type: "H2" - name: "flectonepulse" - host: "127.0.0.1" - port: "3306" - user: "root" - password: "1234" - parameters: "?autoReconnect=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8" - prefix: "" -#endregion database -#region proxy -proxy: - clusters: [] - bungeecord: false - velocity: false - redis: - enable: false - host: "127.0.0.1" - port: 6379 - ssl: false - user: "" - password: "" -#endregion proxy -#region command -command: - unregister_on_reload: false - disabled_fabric: - - "msg" - - "banlist" - - "kick" - - "w" - - "tell" - - "me" - - "pardon" - - "ban" -#endregion command -#region module -module: - enable: true - use_paper_message_sender: false -#endregion module -#region editor -editor: - host: "" - https: false - port: 25566 -#endregion editor -#region logger -logger: - console: "Console" - prefix: "\e[0;34m(FlectonePulse) \e[0m" - description: - - " \e[0;34m ___ ___ __ ___ __ ___ \e[0m" - - " \e[0;34m|__ | |__ / ` | / \\ |\\ | |__ \e[0m" - - " \e[0;34m| |___ |___ \\__, | \\__/ | \\| |___ \e[0m" - - " \e[0;34m __ __ ___ \e[0;96m \e[0m" - - " \e[0;34m|__) | | | /__` |__ \e[0;96m \e[0m" - - " \e[0;34m| \\__/ |___ .__/ |___\e[0;96m /\\ \e[0m" - - " \e[0;96m / \\ v \e[0m" - - " \e[0;96m__/\\___ ____/\\_____ ___/ \\______ \e[0m" - - " \e[0;96m \\/ \\/ \e[0m" - warn: "\e[0;93m" - info: "\e[0;96m" - filter: - - "Paper Async Command Builder" - - "Caught previously unhandled exception :" - - "Error received from Telegram GetUpdates Request" - - "OkHttp TaskRunner" - - "Exception in thread \"ForkJoinPool" - - "FlectonePulseDatabase - " -#endregion logger -#region cache -cache: - types: - COOLDOWN: - duration: 5 - time_unit: "HOURS" - size: 5000 - DIALOG_CLICK: - duration: 1 - time_unit: "SECONDS" - size: 100 - OFFLINE_PLAYERS: - duration: 1 - time_unit: "HOURS" - size: 1000 - MODERATION: - duration: 1 - time_unit: "HOURS" - size: 5000 - LEGACY_COLOR_MESSAGE: - duration: 10 - time_unit: "MINUTES" - size: 100000 - MENTION_MESSAGE: - duration: 10 - time_unit: "MINUTES" - size: 1000 - SWEAR_MESSAGE: - duration: 10 - time_unit: "MINUTES" - size: 100000 - REPLACEMENT_MESSAGE: - duration: 10 - time_unit: "MINUTES" - size: 100000 - REPLACEMENT_IMAGE: - duration: 10 - time_unit: "MINUTES" - size: 100 - TRANSLATE_MESSAGE: - duration: 1 - time_unit: "HOURS" - size: 5000 - PROFILE_PROPERTY: - duration: 1 - time_unit: "HOURS" - size: 1000 -#endregion cache -#region metrics -metrics: - enable: true -#endregion metrics diff --git a/pulse/ru/files/integration.yml b/pulse/ru/files/integration.yml deleted file mode 100644 index 2c3c85cc..00000000 --- a/pulse/ru/files/integration.yml +++ /dev/null @@ -1,210 +0,0 @@ -# ___ ___ __ ___ __ ___ -# |__ | |__ / ` | / \ |\ | |__ -# | |___ |___ \__, | \__/ | \| |___ -# __ __ ___ -# |__) | | | /__` |__ -# | \__/ |___ .__/ |___ /\ -# / \ -# __/\___ ____/\_____ ___/ \______ -# \/ \/ -# -#region integration -enable: true -avatar_api_url: "https://mc-heads.net/avatar//8.png" -body_api_url: "https://mc-heads.net/player//16.png" -#endregion integration -#region advancedban -advancedban: - enable: true - disable_flectonepulse_ban: true - disable_flectonepulse_mute: true - disable_flectonepulse_warn: true - disable_flectonepulse_kick: true -#endregion advancedban -#region deepl -deepl: - enable: false - auth_key: "" -#endregion deepl -#region discord -discord: - enable: false - token: "" - custom_command: - ping: - need_player: true - aliases: - - "!ping" - presence: - enable: true - status: "ONLINE" - activity: - enable: true - type: "PLAYING" - name: "FlectonePulse" - url: "https://flectone.net/pulse/" - channel_info: - enable: false - ticker: - enable: true - period: 1200 - message_channel: - FROM_DISCORD_TO_MINECRAFT: - - "123456" - CHAT_GLOBAL: - - "123456" - destination: - type: "CHAT" - sound: - enable: false -#endregion discord -#region floodgate -floodgate: - enable: true -#endregion floodgate -#region geyser -geyser: - enable: true -#endregion geyser -#region interactivechat -interactivechat: - enable: true -#endregion interactivechat -#region itemsadder -itemsadder: - enable: true -#endregion itemsadder -#region libertybans -libertybans: - enable: true - disable_flectonepulse_ban: true - disable_flectonepulse_mute: true - disable_flectonepulse_warn: true - disable_flectonepulse_kick: true -#endregion libertybans -#region litebans -litebans: - enable: true - disable_flectonepulse_ban: true - disable_flectonepulse_mute: true - disable_flectonepulse_warn: true - disable_flectonepulse_kick: true -#endregion litebans -#region luckperms -luckperms: - enable: true - tab_sort: true -#endregion luckperms -#region maintenance -maintenance: - enable: true - disable_flectonepulse_maintenance: true -#endregion maintenance -#region minimotd -minimotd: - enable: true - disable_flectonepulse_status: true -#endregion minimotd -#region miniplaceholders -miniplaceholders: - enable: true -#endregion miniplaceholders -#region motd -motd: - enable: true - disable_flectonepulse_status: true -#endregion motd -#region placeholderapi -placeholderapi: - enable: true -#endregion placeholderapi -#region plasmovoice -plasmovoice: - enable: true -#endregion plasmovoice -#region simplevoice -simplevoice: - enable: true -#endregion simplevoice -#region skinsrestorer -skinsrestorer: - enable: true -#endregion skinsrestorer -#region supervanish -supervanish: - enable: true -#endregion supervanish -#region tab -tab: - enable: true - disable_flectonepulse_scoreboard: true - disable_flectonepulse_header: true - disable_flectonepulse_footer: true - disable_flectonepulse_playerlistname: false -#endregion tab -#region telegram -telegram: - enable: false - parse_mode: "NONE" - token: "" - custom_command: - id: - need_player: false - aliases: - - "!id" - ping: - need_player: true - aliases: - - "!ping" - channel_info: - enable: false - ticker: - enable: true - period: 1200 - message_channel: - FROM_TELEGRAM_TO_MINECRAFT: - - "123456" - CHAT_GLOBAL: - - "123456" - destination: - type: "CHAT" - sound: - enable: false -#endregion telegram -#region triton -triton: - enable: true -#endregion triton -#region twitch -twitch: - enable: false - client_id: "" - token: "" - custom_command: - ping: - need_player: true - aliases: - - "!ping" - message_channel: - FROM_TWITCH_TO_MINECRAFT: - - "faseri4ka" - CHAT_GLOBAL: - - "faseri4ka" - follow_channel: - faseri4ka: - - "stream start https://twitch.tv/faseri4ka" - destination: - type: "CHAT" - sound: - enable: false -#endregion twitch -#region vault -vault: - enable: true -#endregion vault -#region yandex -yandex: - enable: false - token: "" - folder_id: "" -#endregion yandex diff --git a/pulse/ru/files/localizations/en_us.yml b/pulse/ru/files/localizations/en_us.yml deleted file mode 100644 index a39ab094..00000000 --- a/pulse/ru/files/localizations/en_us.yml +++ /dev/null @@ -1,1074 +0,0 @@ -# ___ ___ __ ___ __ ___ -# |__ | |__ / ` | / \ |\ | |__ -# | |___ |___ \__, | \__/ | \| |___ -# __ __ ___ -# |__) | | | /__` |__ -# | \__/ |___ .__/ |___ /\ -# / \ -# __/\___ ____/\_____ ___/ \______ -# \/ \/ -# -#region message -cooldown: "Too fast, you'll be able to use it in " - person: "🔒 BAN 🔒

Date:

Time:
" -#endregion ban -#region banlist - banlist: - empty: "☺ No bans found" - null_page: "This page doesn't exist" - null_player: "This player does not exist" - global: - header: "▋ Bans:
" - line: "Click to unban \">\"> ID:
Date:
Time: