pstream is dead; long live pstream taciturnaxolotl.github.io/pstream-ng/

docs: add docs

dunkirk.sh b3b42aa5 2cd8dc00

verified
+8932
+52
.github/workflows/docs.yml
··· 1 + name: Docs 2 + 3 + on: 4 + push: 5 + branches: 6 + - main 7 + paths: 8 + - docs/** 9 + workflow_dispatch: 10 + 11 + permissions: 12 + contents: read 13 + pages: write 14 + id-token: write 15 + 16 + concurrency: 17 + group: pages 18 + cancel-in-progress: true 19 + 20 + jobs: 21 + build: 22 + runs-on: ubuntu-latest 23 + steps: 24 + - uses: actions/checkout@v4 25 + 26 + - uses: pnpm/action-setup@v4 27 + 28 + - uses: actions/setup-node@v4 29 + with: 30 + node-version: 20 31 + cache: pnpm 32 + cache-dependency-path: docs/pnpm-lock.yaml 33 + 34 + - run: pnpm install --frozen-lockfile 35 + working-directory: docs 36 + 37 + - run: pnpm run build 38 + working-directory: docs 39 + 40 + - uses: actions/upload-pages-artifact@v3 41 + with: 42 + path: docs/out 43 + 44 + deploy: 45 + needs: build 46 + runs-on: ubuntu-latest 47 + environment: 48 + name: github-pages 49 + url: ${{ steps.deployment.outputs.page_url }} 50 + steps: 51 + - id: deployment 52 + uses: actions/deploy-pages@v4
+4
README.md
··· 18 18 19 19 Then visit [localhost:5173](http://localhost:5173). 20 20 21 + ## Docs 22 + 23 + Original P-Stream documentation is included in the [`docs/`](docs/) directory. 24 + 21 25 ## Upstream 22 26 23 27 To pull in updates from the original P-Stream repo:
+7
docs/.editorconfig
··· 1 + root = true 2 + 3 + [*] 4 + end_of_line = lf 5 + insert_final_newline = true 6 + indent_size = 2 7 + indent_style = space
+6
docs/.eslintignore
··· 1 + dist 2 + node_modules 3 + .output 4 + public 5 + # Ignore index due to prettier removing setext headers 6 + *.index.md
+6
docs/.eslintrc.cjs
··· 1 + module.exports = { 2 + extends: ['next', 'plugin:prettier/recommended'], 3 + rules: { 4 + '@next/next/no-img-element': 'off', 5 + }, 6 + };
+1
docs/.gitattributes
··· 1 + * text=auto eol=lf
+12
docs/.gitignore
··· 1 + node_modules 2 + *.iml 3 + .idea 4 + *.log* 5 + .vscode 6 + .DS_Store 7 + coverage 8 + dist 9 + sw.* 10 + .env 11 + out 12 + .next
+3
docs/.prettierignore
··· 1 + # Ignore index due to prettier removing setext headers 2 + *.index.md 3 + .github/CODEOWNERS
+4
docs/.prettierrc
··· 1 + { 2 + "trailingComma": "all", 3 + "singleQuote": true 4 + }
+21
docs/LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2025 movie-web 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+3
docs/README.md
··· 1 + # P-Stream docs 2 + 3 + Find it at: idk i got a C&D
+20
docs/components/Logo.module.css
··· 1 + .logo { 2 + border-radius: 0.6rem; 3 + margin-left: -0.5rem; 4 + padding: 0.65rem; 5 + transition: 6 + transform 100ms ease-in-out, 7 + background-color 100ms ease-in-out; 8 + } 9 + 10 + .logo > img { 11 + height: 1.5rem; 12 + } 13 + 14 + .logo:hover { 15 + background-color: rgba(var(--colors-bgLightest)); 16 + } 17 + 18 + .logo:active { 19 + transform: scale(1.05); 20 + }
+11
docs/components/Logo.tsx
··· 1 + import Link from 'next/link'; 2 + import classes from './Logo.module.css'; 3 + import logoUrl from '../public/icon-light.png'; 4 + 5 + export function Logo() { 6 + return ( 7 + <Link href="/" className={classes.logo}> 8 + <img src={logoUrl.src} alt="Logo of P-Stream" /> 9 + </Link> 10 + ); 11 + }
+5
docs/next-env.d.ts
··· 1 + /// <reference types="next" /> 2 + /// <reference types="next/image-types/global" /> 3 + 4 + // NOTE: This file should not be edited 5 + // see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
+10
docs/next.config.mjs
··· 1 + import { guider } from '@neato/guider'; 2 + 3 + const withGuider = guider({ 4 + themeConfig: './theme.config.tsx', 5 + }); 6 + 7 + export default withGuider({ 8 + output: 'export', 9 + basePath: '/pstream-ng/docs', 10 + });
+30
docs/package.json
··· 1 + { 2 + "name": "P-Stream-docs", 3 + "version": "0.2.0", 4 + "private": true, 5 + "scripts": { 6 + "dev": "next dev", 7 + "build": "next build", 8 + "start": "next start", 9 + "lint": "next lint", 10 + "lint:fix": "next lint --fix" 11 + }, 12 + "devDependencies": { 13 + "@mdx-js/loader": "^3.0.0", 14 + "@mdx-js/react": "^3.0.0", 15 + "@types/react": "18.2.73", 16 + "eslint": "^8.57.1", 17 + "eslint-config-next": "^14.2.26", 18 + "eslint-config-prettier": "^9.1.0", 19 + "eslint-plugin-prettier": "^5.2.6", 20 + "prettier": "^3.5.3", 21 + "typescript": "5.4.3" 22 + }, 23 + "dependencies": { 24 + "@neato/guider": "^1.1.0", 25 + "next": "^14.2.26", 26 + "next-seo": "^6.6.0", 27 + "react": "^18.3.1", 28 + "react-dom": "^18.3.1" 29 + } 30 + }
+3
docs/pages/404.tsx
··· 1 + import { createNotFoundPage } from '@neato/guider/client'; 2 + 3 + export default createNotFoundPage();
+4
docs/pages/_app.tsx
··· 1 + import '@neato/guider/style.css'; 2 + import { createGuiderApp } from '@neato/guider/client'; 3 + 4 + export default createGuiderApp();
+34
docs/pages/backend/.changelog.mdx
··· 1 + --- 2 + title: 'Changelog' 3 + --- 4 + 5 + # Version 1.3.1 6 + 7 + - Fixed bug where "false" env variables weren't treated as false for booleans 8 + - Added ARM support for hosted docker container 9 + - Stopped using JSON for recaptcha verifications. 10 + 11 + # Version 1.3.0 12 + 13 + For this update, you will need to run migrations. 14 + 15 + - proxy url syncing 16 + - remove npm usage, replace with pnpm 17 + - add postgresql ssl support 18 + 19 + # Version 1.2.0 20 + 21 + <Warning>For this update, you will need to run migrations.</Warning> 22 + 23 + - [Added option to trust Cloudflare IP headers for ratelimits](./configuration.mdx#server-trust-cloudflare) 24 + - Removed unused table 25 + - Optimized prometheus metrics, should make less indexes 26 + 27 + # Version 1.1.5 28 + 29 + - Prometheus metrics endpoint 30 + - Account creation/deletion endpoints 31 + - Endpoints for importing old account data 32 + - Endpoints for syncing data 33 + - [Ratelimit system](./configuration.mdx#ratelimits) 34 + - [Captcha system](./configuration.mdx#captcha)
+154
docs/pages/backend/configuration.mdx
··· 1 + --- 2 + title: 'Configuration' 3 + --- 4 + 5 + # Backend Config Reference 6 + 7 + The backend can be configured in 2 different ways: 8 + 9 + - Make a `.env` file in the working directory of the application (root of repository) 10 + - Add environment variables to your system (or container) 11 + 12 + These different config options are all mutually inclusive, so you can use multiple at the same time if you want to. 13 + 14 + <Warning> 15 + With any of these configurations, you have to have atleast three variables set 16 + for the server to function: [`DATABASE_URL`](#database-url-⚠), 17 + [`CRYPTO_SECRET`](#crypto-secret-⚠) and 18 + [`META_NAME`](#meta-name-⚠) 19 + </Warning> 20 + 21 + ### Method 1 - `.env` 22 + Example: 23 + ```sh 24 + CRYPTO_SECRET=6abkbIoK3CPU6EVI2wa26WG26VCb7z8v 25 + ``` 26 + 27 + ### Method 2 - Environment 28 + 29 + This method is identical to the `.env` method listed above, but you add the variables to the environment instead of writing it in a file. 30 + 31 + # Reference 32 + ## Postgres 33 + 34 + ### `PG_USER` 35 + - Type: `string` 36 + - Example: `pstream_user` 37 + 38 + Username for Postgres 39 + 40 + ### `PG_PASSWORD` 41 + - Type: `string` 42 + - Example: `Iamaweakpassword` 43 + 44 + Password for Postgres using something strong. Generate one [here](https://www.random.org/strings/) 45 + 46 + ### `PG_DB` 47 + - Type: `string` 48 + - Example: `p-stream_backend` 49 + 50 + Database name for Postgres 51 + 52 + ## Backend 53 + 54 + All configurations related to how the backend functions. 55 + 56 + ### `DATABASE_URL` ⚠ 57 + 58 + - Type: `string` 59 + - Example: `postgresql://pstream_user:6abkbIoK3CPU6EVI2wa26WG26VCb7z8ve@localhost:5432/p-stream_backend` 60 + - Str: postgresql://PG_USER:PG_PASSWORD@postgres(or localhost):PGPORT/PG_DB 61 + 62 + Connection URL for postgres instance, should contain the database in the URL. 63 + 64 + <Caution> 65 + **Required. The backend will not start if this is not configured.** 66 + </Caution> 67 + 68 + ## Cryptography 69 + 70 + All configurations related to cryptography. 71 + 72 + ### `CRYPTO_SECRET` ⚠ 73 + 74 + - Type: `string` 75 + 76 + The secret used to sign sessions. **Must be at least 32 characters long. [Generate here](https://www.random.org/strings/)** 77 + 78 + <Caution> 79 + **Required. The backend will not start if this is not configured.** 80 + </Caution> 81 + 82 + ## Meta 83 + 84 + These options configure how the server will display itself to the frontend. 85 + 86 + ### `META_NAME` ⚠ 87 + 88 + - Type: `string` 89 + - Example: `"Unofficial backend"` 90 + 91 + The name of the backend instance, this will be displayed to users who try to create an account. 92 + 93 + <Caution> 94 + **Required. The backend will not start if this is not configured.** 95 + </Caution> 96 + 97 + ### `META_DESCRIPTION` 98 + 99 + - Type: `string` 100 + - Default: `""` 101 + - Example: `"This is not an official instance of the backend"` 102 + 103 + The description of the backend instance, this will be displayed to users who try to create an account. 104 + 105 + ## Captcha 106 + 107 + All configurations related to adding captcha functionality. Captchas' help to protect your server from bot attacks. 108 + 109 + ### `CAPTCHA` 110 + 111 + - Type: `boolean` 112 + - Default: `false` 113 + 114 + Enables [Recaptcha](https://www.google.com/recaptcha/about/) support for user registration and login. [You can follow this guide to create a Recaptcha key](https://cloud.google.com/recaptcha-enterprise/docs/create-key-website#create-key). 115 + 116 + <Warning> 117 + If this is enabled, all other captcha related settings are required. 118 + </Warning> 119 + 120 + ### `CAPTCHA_CLIENT_KEY` 121 + 122 + - Type: `string` 123 + - Default: `""` 124 + - Example: `"sjgaJ@3djasFVx"` 125 + 126 + [Google Recaptcha](https://www.google.com/recaptcha/about/) secret key. 127 + 128 + ## TMBD 129 + All configurations related to adding a private TMBD key. 130 + Get your [TMBD API KEY](https://www.themoviedb.org/settings/api). 131 + 132 + ### `TMDB_API_KEY` 133 + 134 + - Type: `string` 135 + - Default: `""` 136 + - Example: `"sjgaJ@3djasFVefihdjasidygyuiiii9382222222222ahdlx"` 137 + 138 + ## TRAKT 139 + 140 + ### `TRAKT_CLIENT_ID` 141 + 142 + - Type: `string` 143 + - Default: `""` 144 + - Example: `"sjgaJ@3djasFVefihdjasidygyuiiii9382222222222ahdlx"` 145 + 146 + ### `TRAKT_CLIENT_SECRET` 147 + 148 + - Type: `string` 149 + - Default: `""` 150 + - Example: `"sjgaJ@3djasFVefihdjasidygyuiiii9382222222222ahdlx"` 151 + 152 + Get your [TRAKT API KEY](https://trakt.tv/oauth/applications). 153 + Click New Application after you've logged in, enter the name of the app, which doesnt matter, and for redirect url, just do https://google.com, it doesnt matter. 154 +
+113
docs/pages/backend/deploy.mdx
··· 1 + --- 2 + title: 'Deploy' 3 + --- 4 + 5 + # Deploying the backend 6 + 7 + The only officially recognized hosting method is through Docker (or similar container runtimes). It can be scaled horizontally to all your heart's content and is the safest way to host the backend. 8 + 9 + For configuration, check out the [configuration reference](./configuration.mdx). 10 + 11 + ## Method 1 - Docker Deployment 12 + 13 + This method provides a straightforward setup with minimal configuration. For more extensive customization, see the [Configuration Reference](./configuration.mdx). 14 + 15 + **Prerequisites** 16 + 17 + - **Docker:** If you don't have Docker installed, download it from the official website: [Docker installation](https://www.docker.com/get-started) 18 + **Setup** 19 + 20 + <Steps> 21 + <Steps.Step> 22 + **Create `docker-compose.yml`:** 23 + ```yaml 24 + services: 25 + postgres: 26 + image: postgres 27 + environment: 28 + POSTGRES_USER: pstream_user 29 + POSTGRES_DB: pstream 30 + POSTGRES_PASSWORD: YourPasswordHere 31 + ports: 32 + - "5432:5432" 33 + networks: 34 + - p-stream-network 35 + p-stream: 36 + image: ghcr.io/dumbutdumber/backend:latest 37 + environment: 38 + DATABASE_URL: postgresql://pstream_user:YourPasswordHere@postgres:5432/pstream 39 + CRYPTO_SECRET: 32CharacterLongStringHere 40 + META_NAME: unofficial-backend 41 + ports: 42 + - "80:80" 43 + depends_on: 44 + - postgres 45 + networks: 46 + - p-stream-network 47 + networks: 48 + p-stream-network: 49 + driver: bridge 50 + ``` 51 + **Important:** 52 + * Replace `YourPasswordHere` with your secure database password. 53 + * Generate a strong session secret and replace `32CharacterLongStringHere`. 54 + </Steps.Step> 55 + 56 + <Steps.Step> 57 + **Start the Backend:** Open a terminal in the directory containing `docker-compose.yml` and execute: 58 + 59 + ```bash 60 + docker-compose up -d 61 + ``` 62 + 63 + </Steps.Step> 64 + </Steps> 65 + 66 + ### Accessing Your Backend 67 + 68 + Your backend should be accessible on `(YourPrivateIP):80`. To share it outside your local network, you'll need to configure port forwarding or cloudflared tunnel. 69 + 70 + ## Method 2 - Railway (Easy) 71 + 72 + Railway offers a 30-day free trial that includes a one-time $5 credit. After the trial, you receive $1 in usage credits for free each month. 73 + 74 + [![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/pstreambackend?referralCode=zvXFZF) 75 + 76 + <Steps> 77 + <Steps.Step> 78 + Login to your [Railway](https://railway.app) account if you have one, 79 + otherwise create one [here](https://railway.app/login). - If you are signing 80 + up, then verify your account by clicking the link in the email Railway sends 81 + you. Ensure you setup your server location [here](https://railway.com/workspace) 82 + to the closest one possible. 83 + </Steps.Step> 84 + 85 + <Steps.Step> 86 + Click the [`Deploy on 87 + Railway`](https://railway.com/deploy/pstreambackend?referralCode=zvXFZF) 88 + button above. 89 + </Steps.Step> 90 + 91 + <Steps.Step>Click on configure For the one that says Backend.</Steps.Step> 92 + 93 + <Steps.Step> 94 + Fill in the required variable META_NAME the rest are optional and can be set 95 + later on. 96 + </Steps.Step> 97 + 98 + <Steps.Step> 99 + The `Deploy` button at the bottom of the template should be active, click on 100 + it. 101 + </Steps.Step> 102 + 103 + <Steps.Step> 104 + Once the `Backend` service has deployed, copy the URL from the `Deployments` 105 + page. (Might take a second for it to be available after the service has 106 + deployed) 107 + </Steps.Step> 108 + 109 + <Steps.Step> 110 + Congratulations! You have deployed the backend, you can now [set up the 111 + client](../self-hosting/use-backend.mdx). 112 + </Steps.Step> 113 + </Steps>
+3
docs/pages/backend/index.tsx
··· 1 + import { createRedirect } from '@neato/guider/client'; 2 + 3 + export default createRedirect({ to: '/backend/introduction' });
+34
docs/pages/backend/introduction.mdx
··· 1 + --- 2 + title: 'Introduction' 3 + --- 4 + 5 + # Introduction to the backend 6 + 7 + Backend is a service you can run and use that syncs user data, for example what movie you watched, your settings, and your color theme. Along with other data like collecting metrics on things like a source's success rate. 8 + 9 + ## Should you selfhost? 10 + 11 + There are pros and cons to selfhosting. If you're not a technical user, selfhosting the backend may be quite the chore, and involve more hassle than it's worth. On the flipside if you are technical, it can be a quite rewarding experience. 12 + 13 + If you host your own instance of P-Stream, it's best paired with your own backend, the latency could be better than using the community backend, you have more accurate metrics that measure what your instance's users are experience, and you control your own data! 14 + 15 + Another reason to selfhost is reliability. The community backend gets a lot of users, with that it can have higher latency, and is the target of DDoS attacks, which can lead to it being practically unusable on the occasion it is DDoS'd. 16 + 17 + ## Metrics 18 + 19 + The backend exposes an endpoint for [Prometheus metrics](https://prometheus.io/) which allows you to keep track of the backend more easily, it can be accessed on `/metrics`. 20 + Ex: https://server.fifthwit.net/metrics 21 + 22 + To view these metrics properly, you can use the [P-Stream Metrics Dash](https://github.com/p-stream/metrics-dash/). Or use a more powerful tool like [Prometheus](https://prometheus.io/) and [Grafana](https://grafana.com/) to better visualize data. 23 + 24 + <Warning> 25 + Prometheus + Grafana typically require a VPS, which usually aren't free, so we 26 + don't recommend you use Prometheus + Grafana unless you already have a VPS, or 27 + solution to host them. 28 + </Warning> 29 + 30 + ## Security 31 + 32 + Currently we are working on integration with Cloudflare Turnstile to limit bot traffic. 33 + 34 + If you have a domain with Cloudflare you can also use WAF to help secure your backend in the event it's being targeted.
+7
docs/pages/backend/upgrade.mdx
··· 1 + --- 2 + title: 'Upgrade guide' 3 + --- 4 + 5 + # Upgrade guide 6 + 7 + There is only one major version, there is nothing to write here yet.
+292
docs/pages/client/changelog.mdx
··· 1 + --- 2 + title: 'Changelog' 3 + --- 4 + 5 + # Version 4.7.0 6 + 7 + - Updated providers to 2.3.0 8 + - Keyboard shortcuts now also work with uppercase keys 9 + - Audio language now defaults to your language preference 10 + - The "Back to home" button in the video player can now be opened in a new tab using middle click 11 + - The "Next episode" button now turns into a "Next season" button if you are on the last episode 12 + - Added a fallback TMDB API if the first one cannot be reached. This should fix an issue for some users that are not able to search. 13 + - Added autoplay. This can be turned on for extension users, users with a custom proxy, or can be turned on for all users for self-hosters using a environment variable. 14 + - Improved translations: Persion (Mehdi), French (Erwann) 15 + 16 + # Version 4.6.6 17 + 18 + - Updated providers to 2.2.9 19 + - Fixes for VidSrcTo and RidoMovies 20 + - Improved translations: German, Persian, Hindi, Korean, Nepali (macrolanguage), Dutch, Chinese (Han (Simplified variant)) 21 + 22 + # Version 4.6.5 23 + 24 + - Updated providers to 2.2.7 25 + 26 + # Version 4.6.4 27 + 28 + - Updated providers to 2.2.6 29 + - Fixed Ridomovies not playing for extension users 30 + - Added a default workflow for syncing forks 31 + - Improved translations: Persian, Indonesian, Portuguese (Brazil), Russian 32 + 33 + # Version 4.6.3 34 + 35 + - Updated providers to 2.2.5 36 + - Fixed vercel routing 37 + - Fixed TV browsers crashing because of MediaSession 38 + - Fixed Chinese (traditional) translation 39 + - Optimized all images 40 + - Fixed page scrolling when adjusting the volume using the scroll wheel 41 + - Added support for HLS audio tracks (You now have the option to change the audio language for RidoMovies) 42 + - Admin page no longer leaks the worker url. 43 + - Added the ability to drag and drop your subtitle files. 44 + - Improved the error message when the extension has not whitelisted the domain. It should now ask you to grant permission. 45 + - Fixed an issue where the episode progression would not save after clicking the 'Next episode' button 46 + - Improved translations: Catalan, Czech, German, Spanish, Estonian, Persian, French, Galician, Indonesian, Italian, Dutch, Polish, Portuguese (Brazil), Romanian, Russian, Turkish, Chinese (Han (Traditional variant)) 47 + 48 + # Version 4.6.2 49 + 50 + - Updated providers to 2.2.3 51 + - Added defaults for extension store links 52 + - Onboarding now defaults to true for self-hosters. 53 + - Support for embedded HLS subtitles (This fixes Ridomovies having default subtitles that could not be changed). 54 + - Improved translations: Polish, Toki Pona 55 + 56 + # Version 4.6.1 57 + 58 + - Fixed subtitle blur settings loading as NaN 59 + - Improved translations: Czech, German, Persian, French, Italian, Dutch, Russian, Slovenian, Ukrainian, Chinese (Han (Simplified variant)) 60 + 61 + # Version 4.6.0 62 + 63 + - Implemented media session support! 64 + - Added option to blur background in subtitles 65 + - Added vercel config to properly support using non-hash routing 66 + - Fixed a bug in config that treated empty environment variables as being set, causing config.js to be ignored 67 + - Fixed a bug in the button component that meant our own pages opened in a new tab 68 + - Added new translations: Catalan 69 + - Improved translations: Catalan, Spanish, Persian, French, Hindi, Icelandic, Italian, Nepali (macrolanguage), Dutch, Panjabi, Slovenian, Chinese (Han (Simplified variant)), Russian, Estonian, Korean 70 + 71 + # Version 4.5.1 72 + 73 + - Improved translations: Catalan, Czech, Spanish, Persian, French, Italian, Portuguese (Brazil), Russian, Tamil, Vietnamese, Chinese (Han (Simplified variant)) 74 + - Update providers to 2.2.2 75 + - Update Dockerfile to have build-time arguments and add a Docker compose file 76 + - Allow banners to be dismissible 77 + - Update extension logic to process all URLs in a HLS playlist 78 + - Automatically prefix backend URL with https:// if not provided 79 + 80 + # Version 4.5.0 81 + 82 + - Improved translations: Estonian, Persian, Toki Pona, Vietnamese. 83 + - Route subtitles through extension if installed. 84 + - Fix Docker build failing when PWA is enabled. 85 + - Add randomised placeholders for search bar. 86 + - Add preview to the theme selector. 87 + - Remove references to the official domain. 88 + - Update admin page to run worker tests in parallel. 89 + - Disable creating account when backend server isn't set. 90 + - Remove default setup option if no default proxy set. 91 + - Remove extension help text when extension succeeded. 92 + - Allow configuration of Google Analytics - removed our default one. 93 + - Fix media download button redirection to incorrect URL on main tab. 94 + - Allow users to change volume with scroll wheel. 95 + 96 + # Version 4.4.0 97 + 98 + - Changed behaviour of HLS playlists to have a copy button instead of a download button for more compatibility. 99 + - Improve the appearance of the "active" pill under theme settings - it now has better padding and matches the theme it represents. 100 + - If a user selects a proxy during onboarding, it is now saved to the backend if the user is signed in. 101 + - Fixed sorting of shows that caused the "continue watching" to not update properly when syncing with the backend. 102 + - Added an "x" button to clear the search query. 103 + - Improve mobile layout for setup component. 104 + - Fix HLS issue with throwing 403 error. 105 + - Improved translations: Arabic, German, Persian, Finnish, Galician, Italian, Japanese, Korean, Panjabi, Russian, Turkish, Ukrainian, Chinese (Han (Simplified variant)). 106 + - Update providers package to 2.2. 107 + 108 + # Version 4.3.3 109 + 110 + - Fixed body not being transferred properly to the extension (needs latest version of extension) 111 + - Added new translations: Finnish 112 + - Improved translations: Czech, German, English, Spanish, Persian, French, Galician, Gujarati, Hebrew, Hindi, Icelandic, Navajo, Portuguese (Brazil), Russian, Ukrainian, Chinese (Han (Simplified variant)) 113 + 114 + # Version 4.3.2 115 + 116 + - Run account server data fetching in parallel. 117 + - Added specific text per browser for extension setup screen 118 + - Fix bug where first load the page couldn't talk to extension 119 + - Fix too short of a timeout when checking for proxy response 120 + - Move start of bolding for HLS disclaimer 121 + - Fix app crash when opening download screen on lower RAM browsers 122 + - Make onboarding start screen more mobile friendly 123 + - Separate extension install links into two settings (firefox & chrome) 124 + - Added new translations: Icelandic 125 + - Improved translations: German, Spanish, Persian, French, Hebrew, Italian, Nepali (macrolanguage), Dutch, Polish, Portuguese (Brazil), Romanian, Chinese (Han (Simplified variant)) 126 + 127 + # Version 4.3.1 128 + 129 + - Fix provider API interaction with extension. 130 + 131 + # Version 4.3.0 132 + 133 + - Add onboarding process to P-Stream, triggable manually through settings. This needs to be turned when selfhosting. 134 + - Added settings to toggle generated thumbnails, disabled by default 135 + - Fix multiple subtitles with same language all showing as selected 136 + - Add docker support, a hosted container image included (with ARM support) 137 + - Added extension support, run P-Stream without setting up a custom proxy 138 + - Add disabled cursor for disabled buttons 139 + - Add instruction link to custom proxy and custom server settings 140 + - Added backdrop blur to navigation buttons 141 + - Updated provider package (Re-enabled showbox/febbox subtitles) 142 + - Added new translations: Catalan 143 + - Improved translations: Bengali, Czech, German, Spanish, Persian, French, Galician, Italian, Nepali, Dutch, Polish, Portuguese, Portuguese, Russian, Turkish, Ukrainian, Vietnamese, Chinese 144 + 145 + # Version 4.2.5 146 + 147 + <Warning>This release requires a new version of simple-proxy: 2.1.3</Warning> 148 + 149 + - Update provider package, with fixes for febbox-mp4 150 + 151 + # Version 4.2.4 152 + 153 + <Warning>This release requires a new version of simple-proxy: 2.1.1</Warning> 154 + 155 + - Add meta tag for PWA's for apple devices 156 + - Add galician flag 157 + - Fix language fallback, this fixes weird dot notation instead of english language fallback 158 + - Add Docker image for frontend 159 + - Fix Brazilian portuguese flag in language selector 160 + - Add profile picture preview in register and update 161 + - Update Provider package to 2.0.4 162 + - Added new translations: Catalan 163 + - Improved translations: Czech, Greek, French, Gujarati, Hebrew, Hindi, Italian, Khmer (Central), Nepali, Dutch, Punjabi, Polish, Portuguese (Brazil), Romanian, Russian, Ukrainian, Vietnamese, Chinese (Simplified), pirate (generated), minion (generated) 164 + 165 + # Version 4.2.3 166 + 167 + - Fix player UI not disappearing 168 + - Implement new locale system to support regional and alternative languages 169 + - Add Turnstile interactive challenge and Turnstile loading screen 170 + - Added new translations: Galician, Punjabi, Romanian 171 + - Improved translations: Arabic, Czech, German, Spanish, Estonian, Gujarati, Hindi, Russian, Chinese (Simplified) 172 + 173 + # Version 4.2.2 174 + 175 + - Add worker URL syncing for accounts 176 + - Fix broken hero title during the day 177 + - Move search items with no poster to the end of the search results 178 + - disable episodes if they have not been aired yet 179 + - update provider package: disable febbox HLS, irreparable 180 + - Added new translations: Bulgarian, Bengali, Greek, Persian, Gujarati, Indonesian, Japanese, Korean, Slovenian, Tamil, Chinese (Traditional) 181 + - Improved translations: Arabic, Czech, German, Spanish, Estonian, French, Hebrew, Hindi, Italian, Nepali, Dutch, Polish, Portuguese (Brazil), Russian, Thai, Toki Pona, Turkish, Ukrainian, Chinese (Simplified), pirate (generated), minion (generated) 182 + 183 + # Version 4.2.1 184 + 185 + - Fix the scrape screen showing success when it shouldn't 186 + - Fix some more [Object object] showing in the error dialogue 187 + - Updated translations: Czech, German, French, Polish, Italian, Thai, Hebrew, Nepali, Estonian, Toki Pona, Portuguese, Pirate 188 + - Fix Ukrainian, Hindi and Toki Pona flags 189 + 190 + # Version 4.2.0 191 + 192 + - Add splashscreens for PWA 193 + - Renamed captions to subtitles in translations 194 + - Add youtube-esque shortcuts for navigating video 195 + - Fix error dialogue not showing actual error message but instead shows [Object object] 196 + - Gray subtitle color 197 + - Hide settings button on mobile when it shouldnt have shown 198 + - Fix Estonia and Nepal flag 199 + - Update provider package to 2.0.1 200 + - Superstream now split into showbox and febbox. 201 + - Fixed sidebar not highlighting last item on high screens 202 + - New translations: Hindi, Polish, Portuguese - Brazillian, Ukrainian 203 + - Updates to translations: Czech, Estonian, German, Hebrew, Cambodian, Nepali, Swedish, Thai, Chinese, Minion 204 + 205 + # Version 4.1.3 206 + 207 + - Add support for downloading HLS playlists 208 + - Added cdn replacements configuration option 209 + - new translations: estonian, toki pona, spanish 210 + - Translation improvements: german, turkish, nepali, chinese 211 + 212 + # Version 4.1.2 213 + 214 + - Improve bundle chunking 215 + - Add millionjs for faster react 216 + - Update all dependency versions 217 + - Translation improvements: czech, hebrew, german 218 + - Fix mobile controls not going away after some time 219 + - Improve poster quality 220 + - Fix "media not found" error not being shown 221 + - Add more information to the error details modal 222 + 223 + # Version 4.1.1 224 + 225 + - Fixed bug where settings toggles sometimes weren't usable 226 + - Fixed bug where captions were permanently enabled 227 + - Fixed some missing translations 228 + - Translation improvements: arabic, french, nepali, chinese 229 + 230 + # Version 4.1.0 231 + 232 + - Added new translations: arabic, chinese, latvian, thai, nepali, dutch 233 + - Translation improvements: turkish, hebrew 234 + - Fixed text directions for captions 235 + - Anti-tamper script has been removed and replaced with turnstile (this is the devtools blocked, you can use devtools again) 236 + - Added way to add the providers-API instead of proxies 237 + 238 + # Version 4.0.2 239 + 240 + - Added new translations: Hebrew, French, German, Swedish, Turkish. 241 + - Added minion joke language. Blame @jip\_. 242 + - Thumbnail preview no longer goes under the next episode button. 243 + - Passphrase inputs are now actual password fields, so they may act nicer with password managers. 244 + - The player now remembers what your subtitle settings were, so no longer you need to keep selecting english every time you watch. 245 + - Fix home link not working with /s/:term shortcut. 246 + - Swedish flag is now an actual Swedish flag. 247 + - Fix for various layout issues with small width mobile screens. 248 + 249 + # Version 4.0.0 250 + 251 + <Note> 252 + If you are upgrading from a previous version, make sure to read [the upgrade 253 + guide](./upgrade.mdx). 254 + </Note> 255 + 256 + ### Bug fixes 257 + 258 + - Fixed bug where video player overlays the controls on IOS. 259 + - Fixed bug where you are kicked out of the fullscreen when switching episode. 260 + - Fixed bug where you cannot select a different episode if first episode fails to load. 261 + 262 + ### Enhancements 263 + 264 + - Completely redesigned look and feel for the entire website. 265 + - Added FAQ and DMCA pages. 266 + - Source loading page is more detailed. 267 + - Video player has been remade from scratch, all internal workings are brand new. 268 + - You can now input numbers manually into the subtitle customization menu. 269 + - Subtitle delay can now be increased outside of the slider range by inputting manual numbers. 270 + - Movie and show URL's now include the name of the media in the link, makes it easier at a glance to see what a link is about. 271 + - Instructions on how to download are now given inside the app. 272 + - Chromecasting no longer shows captions on the web player (still doesnt show on cast receiver) 273 + - Chromecasting now supports HLS 274 + 275 + ### New features 276 + 277 + - Quality selector! You can now switch qualities. 278 + - Search bar no longer requires you to choose between shows or movies. 279 + - Visit `/s/:term` to quickly watch something. For example `https://P-Stream.lol/s/hamilton`. 280 + - You can now add P-Stream as a search provider in your browser. 281 + - Safari now has subtitles when fullscreening. 282 + - A next episode button will appear when close to the end of an episode, allowing quick switching to next episode. 283 + - When seeking and hovering over progress bar, you will now see a thumbnail for the place you're hovering. 284 + - Subtitles now have language flag next to them. 285 + - Your subtitle preference gets saved. 286 + - Turn on subtitles using keyboard shortcut `C`. 287 + - Self-hosters can now test their configurations at the `/admin` page. 288 + - Subtitles can now be downloaded. 289 + - Sync your data through online accounts (using passphrases for maximum privacy) 290 + - You can now choose your own worker URL set in the settings page. 291 + - A custom backend server URL can be set on the settings page. 292 + - On the settings page, you can now choose between multiple themes.
+237
docs/pages/client/configuration.mdx
··· 1 + --- 2 + title: 'Configuration' 3 + --- 4 + 5 + # Client Config Reference 6 + 7 + The config for the P-Stream can be provided in 2 different ways, depending on how you are hosting P-Stream: 8 + 9 + - If you are using a static web hoster (such as Vercel, Netlify or Cloudflare Pages), you can use [environment variables](#method-1-environment-variables). 10 + - If you are hosting P-Stream using shared hosting (such as cPanel or FTP), please use [the config file](#method-2-config-file). 11 + 12 + Both methods can specify any of the keys listed in the [Shared Config](#config-reference-shared-config) section. 13 + 14 + ## Method 1 - Environment Variables 15 + 16 + The P-Stream client can be configured using environment variables **at build time**. You cannot use this method if hosting the pre-built `P-Stream.zip` files! 17 + 18 + Using environment variables to configure P-Stream also allows configuration of some [environment variable specific keys](#config-reference-environment-variables-only). 19 + 20 + ## Method 2 - Config File 21 + 22 + When using the pre-built `P-Stream.zip`, you can set the configuration in the `config.js` file. 23 + 24 + The `config.js` file contains a JavaScript object which must be set to the correct values: 25 + 26 + ```js 27 + window.__CONFIG__ = { 28 + // ... Config variables go here ... 29 + }; 30 + ``` 31 + 32 + ## Required Config Reference: 33 + --- 34 + 35 + ### `VITE_TMDB_READ_API_KEY` ⚠ 36 + 37 + - Type: `string` 38 + - Default: `""` 39 + 40 + This is the **read** API key from TMDB to allow P-Stream to search for media. [Get one by following our guide](./tmdb.mdx). 41 + 42 + <Caution> 43 + **Required. The client will not work properly if this is not configured.** 44 + </Caution> 45 + 46 + ### `VITE_CORS_PROXY_URL` 47 + 48 + - Type: `string` 49 + - Default: `""` 50 + - Example: `"https://example1.example.com,https://example2.example.com"` 51 + 52 + This is where you put proxy URLs. [Get some by following our guides](../proxy/deploy.mdx). 53 + 54 + If left empty, the client onboarding will not provide a "default setup" and the user will have to manually configure their own proxy or use the extension. 55 + 56 + You can add multiple Workers by separating them with a comma, they will be load balanced using round robin method on the client. 57 + **Worker URL entries must not end with a slash.** 58 + 59 + <Caution> 60 + **Required. The client will not work properly if this is not configured.** 61 + </Caution> 62 + 63 + ### `VITE_M3U8_PROXY_URL` 64 + 65 + - Type: `string` 66 + - Default: `""` 67 + - Example: `"https://example1.example.com,https://example2.example.com"` 68 + 69 + **The same proxy as above**, but used to proxy streams. However, it **must** be hosted on a server that is NOT blocked by FlixHQ. See this [explainer](../proxy/introduction.mdx). 70 + 71 + If left empty, some streams, notibly streams from FlixHQ, WILL NOT work. 72 + 73 + You can add multiple Workers by separating them with a comma, they will be load balanced using round robin method on the client. 74 + **Worker URL entries must not end with a slash.** 75 + 76 + <Caution> 77 + **Required. The client will not work properly if this is not configured.** 78 + </Caution> 79 + 80 + ## Optional Config Reference: 81 + --- 82 + 83 + ### `VITE_DMCA_EMAIL` 84 + 85 + - Type: `string` 86 + - Default: `""` 87 + - Example: `"dmca@example.com"` 88 + 89 + This is the DMCA email for on the DMCA page. If this config value is present, a new page will be made and linked in the footer, where it will mention how to handle DMCA take-down requests. If the configuration value is left empty, the page will not exist. 90 + 91 + ### `VITE_NORMAL_ROUTER` 92 + 93 + - Type: `boolean` 94 + - Default: `false` 95 + 96 + The application has two routing modes: hash-router and history-router. 97 + Hash router means that every page is linked with a hash like so: `https://example.com/#/browse`. 98 + 99 + History router does routing without a hash like so: `https://example.com/browse`, this looks a lot nicer, but it requires that your hosting environment supports Single-Page-Application (SPA) redirects (Vercel supports this feature). If you don't know what that means, don't enable this. 100 + 101 + Setting this configuration value to `true` will enable the history-router. 102 + 103 + ### `VITE_BACKEND_URL` 104 + 105 + - Type: `string` 106 + - Default: `""` 107 + - Example: `"https://backend.example.com"` 108 + 109 + This is the URL for the P-Stream backend server which handles cross-device syncing. 110 + 111 + The backend server can be found at https://github.com/p-stream/backend and is offered as a [Docker](https://docs.docker.com/get-started/overview/) image for deployment. 112 + 113 + Backend URL must **not** end with a slash. 114 + 115 + ### `VITE_HAS_ONBOARDING` 116 + 117 + - Type: `boolean` 118 + - Default: `true` 119 + 120 + If you want your users to be prompted with an onboarding screen before they start watching, enable this. 121 + 122 + ### `VITE_ONBOARDING_CHROME_EXTENSION_INSTALL_LINK` 123 + 124 + - Type: `string` 125 + - Default: `"https://chromewebstore.google.com/detail/P-Stream-extension/hoffoikpiofojilgpofjhnkkamfnnhmm"` 126 + - Example: `"https://google.com"` 127 + 128 + When onboarding is enabled using `VITE_HAS_ONBOARDING`. This link will be used to link the proper Chrome extension to install. 129 + 130 + If omitted, this will still show the extension onboarding screen, just without an install link for the extension. 131 + 132 + ### `VITE_ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK` 133 + 134 + - Type: `string` 135 + - Default: `"https://addons.mozilla.org/en-GB/firefox/addon/P-Stream-extension"` 136 + - Example: `"https://google.com"` 137 + 138 + When onboarding is enabled using `VITE_HAS_ONBOARDING`. This link will be used to link the proper Firefox extension to install. 139 + 140 + If omitted, this will still show the extension onboarding screen, just without an install link for the extension. 141 + 142 + ### `VITE_ONBOARDING_PROXY_INSTALL_LINK` 143 + 144 + - Type: `string` 145 + - Default: `""` 146 + - Example: `"https://google.com"` 147 + 148 + When onboarding is enabled using `VITE_HAS_ONBOARDING`. This link will be used to link the user to resources to host a custom proxy. 149 + 150 + If omitted, this will still show the proxy onboarding screen, just without an documentation link for the proxy. 151 + 152 + ### `VITE_ALLOW_AUTOPLAY` 153 + 154 + - Type: `boolean` 155 + - Default: `false` 156 + 157 + Whether to allow autoplay for users that use the host provided proxies. 158 + 159 + ### `VITE_DISALLOWED_IDS` 160 + 161 + - Type: `string` 162 + - Default: `""` 163 + - Example: `"series-123,movie-456"` 164 + 165 + In the unfortunate event that you've been sent a DMCA take down notice, you'll need to disable some pages. This configuration key will allow you to disable specific ids. 166 + 167 + For shows, it needs to be in this format: `series-<TMDB_ID>`. For movies the format is this: `movie-<TMDB_ID>`. 168 + 169 + The list is comma separated, you can add as many as needed. 170 + 171 + ### `VITE_CDN_REPLACEMENTS` 172 + 173 + - Type: `string` 174 + - Default: `""` 175 + - Example: `"google.com:example.com,123movies.com:flixhq.to"` 176 + 177 + Sometimes you want to proxy a CDN. This is how you can easily replace a CDN URL with your own. 178 + 179 + The format is `<beforeA>:<afterA>,<beforeB>:<afterB>,...` 180 + 181 + ### `VITE_TURNSTILE_KEY` 182 + 183 + - Type: `string` 184 + - Default: `""` 185 + 186 + The [Turnstile key](https://dash.cloudflare.com/sign-up?to=/:account/turnstile) for Cloudflare captchas. It's used to authenticate requests to proxy workers (or providers API). 187 + 188 + [The proxy workers will need to be configured to accept these captcha tokens](../proxy/configuration.mdx#turnstile-secret), otherwise it has no effect for security. 189 + 190 + ## Config reference - Environment Variables Only 191 + 192 + <Caution> 193 + These configuration keys are specific to environment variables, they **only** 194 + work as environment variables **set at build time**. 195 + </Caution> 196 + 197 + ### `VITE_PWA_ENABLED` 198 + 199 + - Type: `boolean` 200 + - Default: `false` 201 + 202 + Set to `true` if you want to output a PWA application. Set to `false` or omit to get a normal web application. 203 + A PWA web application can be installed as an application to your phone or desktop computer, but can be tricky to manage and comes with a few footguns. 204 + 205 + <Warning> 206 + Make sure you know what you're doing before enabling this, it **cannot be 207 + disabled** after you've set it up once. 208 + </Warning> 209 + 210 + ### `VITE_GA_ID` 211 + 212 + - Type: `string` 213 + - Default: `""` 214 + - Example: `"G-1234567890"` 215 + 216 + The Google Analytics ID for tracking user behavior. If omitted, no tracking will be done. 217 + 218 + ### `VITE_APP_DOMAIN` 219 + 220 + - Type: `string` 221 + - Default: `""` 222 + - Example: `"https://P-Stream.lol"` 223 + 224 + The domain where the app lives. Only required when having the [`VITE_OPENSEARCH_ENABLED`](#vite-opensearch-enabled) option enabled. 225 + 226 + The value must include the protocol (HTTP/HTTPS) but must **not** end with a slash. 227 + 228 + ### `VITE_OPENSEARCH_ENABLED` 229 + 230 + - Type: `boolean` 231 + - Default: `false` 232 + 233 + Whether to enable [OpenSearch](https://developer.mozilla.org/en-US/docs/Web/OpenSearch), this allows a user to add a search engine to their browser. When enabling you **must** also set [`VITE_APP_DOMAIN`](#vite-app-domain). 234 + 235 + <Warning> 236 + This field is case sensitive, make sure you use the correct casing. 237 + </Warning>
+265
docs/pages/client/deploy.mdx
··· 1 + --- 2 + title: 'Deploy' 3 + --- 4 + 5 + # Deploying the client 6 + 7 + ## Method 1 - Cloudflare Pages (Best host) 8 + 9 + <Steps> 10 + <Steps.Step> 11 + [Fork P-Stream](https://github.com/p-stream/p-stream/fork) on Github. 12 + </Steps.Step> 13 + 14 + {' '} 15 + <Steps.Step> 16 + Go to [Cloudflare pages](https://pages.dev) and click "Sign Up". 17 + </Steps.Step> 18 + 19 + {' '} 20 + <Steps.Step> 21 + Create a Cloudflare account. 22 + <Note> 23 + If you already have a Cloudflare account you will be redirected to the 24 + workers and pages dashboard. 25 + </Note> 26 + </Steps.Step> 27 + 28 + {' '} 29 + <Steps.Step> 30 + Now, click the blue "Create" button at the top of the page. 31 + </Steps.Step> 32 + 33 + {' '} 34 + <Steps.Step> 35 + By default Cloudflare assumes your creating a worker instead, change the 36 + "Workers" tab to "Pages". 37 + </Steps.Step> 38 + 39 + {' '} 40 + <Steps.Step> 41 + Select the blue button that says "Connect to git" and then connect the Github 42 + account you forked P-Stream on. 43 + </Steps.Step> 44 + 45 + {' '} 46 + <Steps.Step> 47 + Now you can select repositories from your github account, select your fork of 48 + P-Stream and click "Begin setup". 49 + </Steps.Step> 50 + 51 + {' '} 52 + <Steps.Step> 53 + Give your project a silly name and select `main` as the production branch. 54 + </Steps.Step> 55 + 56 + {' '} 57 + <Steps.Step> 58 + In "Build settings" change the "Build command" to `pnpm build` and the "Build 59 + output directory" to `dist`. 60 + </Steps.Step> 61 + 62 + {' '} 63 + <Steps.Step> 64 + Select the `Environment variable` drop down and add the **[required variables](/client/configuration)**. 65 + </Steps.Step> 66 + 67 + {' '} 68 + <Steps.Step>Click "Save and Deploy" to watch your new site deploy.</Steps.Step> 69 + 70 + <Steps.Step> 71 + Congrats! You have your own version of P-Stream hosted for **FREE**. 72 + </Steps.Step> 73 + </Steps> 74 + 75 + ## Method 2 - Vercel (Might be broken idk) 76 + 77 + <Steps> 78 + <Steps.Step> 79 + Click [here](https://github.com/p-stream/p-stream/fork) to fork the P-Stream 80 + Github repository 81 + </Steps.Step> 82 + 83 + <Steps.Step>Click [here](https://vercel.com/) to go to Vercel</Steps.Step> 84 + 85 + <Steps.Step>Sign in using either a GitHub, GitLab, or Bitbucket.</Steps.Step> 86 + 87 + <Steps.Step> 88 + Clicking the "New Project" button on the top right of your dashboard and 89 + following the steps to create a new project for your self hosted version of 90 + movie web. 91 + </Steps.Step> 92 + 93 + <Steps.Step> 94 + After clicking it, you'll be presented with a list of Git repositories that 95 + the Git account you've signed up with has write access to. 96 + </Steps.Step> 97 + 98 + <Steps.Step> 99 + Select your own fork of the P-Stream Github repository. 100 + </Steps.Step> 101 + 102 + <Steps.Step> 103 + Configure the environment variables: - `VITE_CORS_PROXY_URL`: Enter your 104 + proxy URL here. Make sure to not have a slash at the end of your URL. 105 + Example (THIS IS AN EXAMPLE, IT WON'T WORK FOR YOU): 106 + `https://test-proxy.test.workers.dev` - `VITE_TMDB_READ_API_KEY`: Enter your 107 + TMDB Read Access Token here. Please read [the TMDB page](./tmdb.mdx) on how 108 + to get an API key. - `VITE_BACKEND_URL`: Only set if you have a self-hosted 109 + backend. Put in your backend URL. Check out [configuration 110 + reference](../client/configuration.mdx) for details. Make sure to not have a 111 + slash at the end of the URL. 112 + </Steps.Step> 113 + 114 + <Steps.Step>Click "Deploy"</Steps.Step> 115 + 116 + <Steps.Step> 117 + Congrats! You have your own version of P-Stream hosted. 118 + </Steps.Step> 119 + 120 + <Steps.Step> 121 + You may wish to configure a custom domain - Please consult [the Vercel docs 122 + for how to do 123 + this](https://vercel.com/docs/getting-started-with-vercel/domains). 124 + </Steps.Step> 125 + </Steps> 126 + 127 + ## Method 3 - Static Web Host 128 + 129 + <Steps> 130 + <Steps.Step> 131 + Download the file `P-Stream.zip` from the latest release: 132 + https://github.com/p-stream/p-stream/releases/latest. 133 + </Steps.Step> 134 + 135 + <Steps.Step>Extract the ZIP file so you can edit the files.</Steps.Step> 136 + 137 + <Steps.Step> 138 + Open `config.js` in an editor such as Notepad, Visual Studio Code or 139 + similar. 140 + </Steps.Step> 141 + 142 + <Steps.Step> 143 + Put your proxy URL in-between the double quotes of `VITE_CORS_PROXY_URL: 144 + ""`. Make sure to not have a slash at the end of your URL. Example (THIS IS 145 + AN EXAMPLE, IT WON'T WORK FOR YOU): `VITE_CORS_PROXY_URL: 146 + "https://test-proxy.test.workers.dev"` 147 + </Steps.Step> 148 + 149 + <Steps.Step> 150 + Put your TMDB Read Access Token inside the quotes of 151 + `VITE_TMDB_READ_API_KEY: ""`. Please read [the TMDB page](./tmdb.mdx) on how 152 + to get an API key. 153 + </Steps.Step> 154 + 155 + <Steps.Step> 156 + If you have a self-hosted backend server, enter your URL in the 157 + `VITE_BACKEND_URL` variable. Check out [configuration 158 + reference](../client/configuration.mdx) for details. Make sure to not have a 159 + slash at the end of the URL. 160 + </Steps.Step> 161 + 162 + <Steps.Step>Save the file.</Steps.Step> 163 + 164 + <Steps.Step> 165 + Upload **all** of the files to a static website hosting such as: - GitHub 166 + Pages - Netlify - Vercel - Etc, [there are lots of 167 + options](https://www.staticwebsitehosting.org/). 168 + </Steps.Step> 169 + 170 + <Steps.Step> 171 + Congrats! You have your own version of P-Stream hosted. 172 + </Steps.Step> 173 + </Steps> 174 + 175 + ## Method 4 - Docker Compose - Home Network 176 + 177 + Docker is not recommended! It's much easier to host the static site and use a proxy like nginx to access. 178 + 179 + This method is meant for those using a desktop device or single board computer with a minimum of 4GB of RAM such as a [Raspberry Pi](https://www.raspberrypi.com/) to run P-Stream on there home network for network connected devices. 180 + 181 + <Steps> 182 + <Steps.Step> 183 + 1. Ensure you have [docker](https://docs.docker.com/get-docker/) installed. In a newly created directory called `P-Stream` create a file called `docker-compose.yaml`. Paste the contents of the code block below into this file. 184 + 185 + ```yaml 186 + version: "3.8" 187 + 188 + services: 189 + 190 + movieweb: 191 + build: 192 + context: https://github.com/p-stream/p-stream.git#production 193 + # args: 194 + # TMDB_READ_API_KEY: "" 195 + # CORS_PROXY_URL: "" 196 + # BACKEND_URL: "" 197 + ports: 198 + - "80:80" 199 + restart: unless-stopped 200 + ``` 201 + </Steps.Step> 202 + 203 + <Steps.Step> 204 + Within the `docker-compose.yaml` file uncomment `args`, `TMDB_READ_API_KEY`, `CORS_PROXY_URL`. 205 + - Make sure `args` is in-line with `context` 206 + - Make sure `TMDB_READ_API_KEY` and `CORS_PROXY_URL` are tabbed once to the right of `args`. 207 + </Steps.Step> 208 + 209 + <Steps.Step> 210 + Put your proxy URL in-between the double quotes of `CORS_PROXY_URL: ""`. Make sure to not have a slash at the end of your URL. 211 + 212 + Example (THIS IS AN EXAMPLE, IT WON'T WORK FOR YOU): `CORS_PROXY_URL: "https://test-proxy.test.workers.dev"` 213 + </Steps.Step> 214 + 215 + <Steps.Step> 216 + Put your TMDB Read Access Token inside the quotes of `TMDB_READ_API_KEY: ""`. Please read [the TMDB page](./tmdb.mdx) on how to get an API key. 217 + </Steps.Step> 218 + 219 + <Steps.Step> 220 + Uncomment and add any [additional environment variables](configuration.mdx) you may need. Remove the `VITE_` prefix when adding an environment variable to `args`. 221 + </Steps.Step> 222 + 223 + <Steps.Step> 224 + Save the file! 225 + </Steps.Step> 226 + 227 + <Steps.Step> 228 + Now use [docker](https://docs.docker.com/get-docker/) to run `movieweb` as background service. 229 + 230 + ```bash 231 + # P-Stream is the current working directory 232 + $ docker compose up --detach 233 + ``` 234 + </Steps.Step> 235 + 236 + <Steps.Step> 237 + Verify that setup was successful 238 + - Navigate to `http://localhost`. You should see the UI for `P-Stream`. Find something to watch and make sure that it plays. 239 + - View logs with 240 + 241 + ```bash 242 + $ docker compose logs --follow movieweb 243 + ``` 244 + </Steps.Step> 245 + 246 + <Steps.Step> 247 + Set a static IP address for your device. 248 + - For Raspberry Pi: [guide](https://www.makeuseof.com/raspberry-pi-set-static-ip/) 249 + - For Mac: [guide](https://www.macinstruct.com/tutorials/how-to-set-a-static-ip-address-on-a-mac/) 250 + - For Windows: [guide](https://www.pcmag.com/how-to/how-to-set-up-a-static-ip-address) 251 + </Steps.Step> 252 + 253 + <Steps.Step> 254 + Navigate to movie web at `http://<static-ip-address` from another device connected to your network. 255 + </Steps.Step> 256 + </Steps> 257 + 258 + ### To Perform Updates For New Releases of Movie Web 259 + 260 + Make sure `P-Stream` is your current working directory and run: 261 + 262 + ```bash 263 + # Re-build the image and start the container 264 + $ docker compose up --build --detach 265 + ```
+3
docs/pages/client/index.tsx
··· 1 + import { createRedirect } from '@neato/guider/client'; 2 + 3 + export default createRedirect({ to: '/client/introduction' });
+23
docs/pages/client/introduction.mdx
··· 1 + --- 2 + title: 'Introduction' 3 + --- 4 + 5 + <Warning> 6 + ### Self Hosters READ: 7 + 8 + Selfhosting is only recommended if you use the extension or are experienced in developing your own scrapers! 9 + </Warning> 10 + 11 + # Introduction to the client 12 + 13 + The client is what users sees when navigating to your domain, it's the main part of the application and houses the interface and all of the scraping logic. 14 + 15 + ## Progressive Web App 16 + 17 + The client can be optionally ran as a [PWA](https://web.dev/explore/progressive-web-apps), which allows it to be installed on a mobile device. **This can be hard to do correctly and really hard if not almost impossible to reverse**, so it's generally not recommended to do so if you don't have experience hosting PWAs. If you understand the risks and still want to continue, then read more about it [here](../self-hosting/about-pwa.mdx). 18 + 19 + ## Configuration 20 + 21 + The client features various configuration options, some of which are required for the client to function. [If you are using Vercel to host the client](./deploy.mdx#method-1-vercel-recommended), then the required variables are a necessary part of creating the site, if you're using another host, or hosting it for yourself, you'll need to set them up yourself. 22 + 23 + You can view all of the configuration options on the [configurations page](./configuration.mdx).
+36
docs/pages/client/tmdb.mdx
··· 1 + --- 2 + title: 'TMDB API Key' 3 + --- 4 + 5 + # Getting an API Key 6 + 7 + In order to search for movies and TV shows, we use an API called ["The Movie Database" (TMDB)](https://www.themoviedb.org/). For your client to be able to search, you need to generate an API key for yourself. 8 + 9 + <Note>The API key is **free**, you just need to create an account.</Note> 10 + 11 + <Steps> 12 + <Steps.Step> 13 + Create an account at https://www.themoviedb.org/signup 14 + </Steps.Step> 15 + 16 + <Steps.Step> 17 + You will be required to verify your email; click the link that you get sent 18 + to verify your account. 19 + </Steps.Step> 20 + 21 + <Steps.Step> 22 + Go to https://www.themoviedb.org/settings/api/request to create a developer 23 + account. 24 + </Steps.Step> 25 + <Steps.Step>Read the terms and conditions and accept them.</Steps.Step> 26 + 27 + <Steps.Step> 28 + Fill out your details: - Select "Website" as type of use. - For the other 29 + details can put any values; they are not important. 30 + </Steps.Step> 31 + 32 + <Steps.Step> 33 + Copy the "API Read Access Token" - **DO NOT COPY THE API Key - IT WILL NOT 34 + WORK** 35 + </Steps.Step> 36 + </Steps>
+84
docs/pages/client/upgrade.mdx
··· 1 + --- 2 + title: 'Update guide' 3 + --- 4 + 5 + # Keeping your instance synced 6 + 7 + Keeping your instance up-to-date with the latest features and bug fixes can enhance your instance's functionality and ensure it stays current. When updates are released, you have the option to adopt them using either one of the guides. Below is a automatic and an manual guide on updating your instance. 8 + 9 + ## Automatic update 10 + 11 + You can also setup a scheduled workflow to automatically update your instance. This will allow you to keep your instance up to date without manual intervention. 12 + 13 + To do this, you will need to follow the guide below... 14 + 15 + <Warning> 16 + This upgrade method will only work if your repository is a fork! 17 + </Warning> 18 + 19 + <Steps> 20 + <Steps.Step> 21 + If you have not already, click [here](https://github.com/p-stream/p-stream/fork) to fork the P-Stream Github repository. 22 + </Steps.Step> 23 + <Steps.Step> 24 + Paste the below file into your repository's root `/.github/workflows` directory 25 + 26 + ```yaml 27 + # File: .github/workflows/sync.yml 28 + name: Sync fork 29 + 30 + permissions: 31 + contents: write 32 + 33 + on: 34 + schedule: 35 + - cron: "0 0 * * *" 36 + workflow_dispatch: 37 + 38 + jobs: 39 + sync: 40 + name: Sync fork 41 + runs-on: ubuntu-latest 42 + if: ${{ github.event.repository.fork }} 43 + 44 + steps: 45 + - name: Checkout code 46 + uses: actions/checkout@v4 47 + 48 + - name: Sync fork 49 + run: gh repo sync ${{ github.repository }} 50 + env: 51 + GH_TOKEN: ${{ github.token }} 52 + 53 + - uses: gautamkrishnar/keepalive-workflow@v1 54 + ``` 55 + 56 + </Steps.Step> 57 + <Steps.Step> 58 + Commit and push the changes to your repository. 59 + </Steps.Step> 60 + </Steps> 61 + 62 + Your instance should now be automatically updated to the latest version. 63 + 64 + ## Manual update 65 + 66 + You can manually update by executing the following commands in the root directory of the repository you have created, you would have to do this every time a push occurs to stay up-to-date: 67 + 68 + ```bash 69 + git remote add P-Stream https://github.com/p-stream/p-stream.git 70 + git fetch P-Stream 71 + # Change `dev` to `master` if you want a stable experience 72 + git merge P-Stream/dev --allow-unrelated-histories 73 + git push -f # Force push to your origin main branch 74 + ``` 75 + 76 + # Upgrade version 77 + 78 + ## From `3.X` to `4.X` 79 + 80 + You will need the latest version of the proxy worker. Redeploy a new worker using [our self-hosting guide](../proxy/deploy.md). 81 + 82 + After you have the new worker, you will need to [get the new P-Stream deployment files](https://github.com/p-stream/p-stream/releases/latest). **You CANNOT use the non-PWA version**. To upgrade safely without any complications, you need to update with `P-Stream.pwa.zip`, Not the non-PWA version. 83 + 84 + In the future, you will **ALWAYS** need to go with the PWA option. You cannot downgrade to non-PWA version without facing many caching complications.
+134
docs/pages/extension.mdx
··· 1 + --- 2 + title: 'Browser Extension' 3 + --- 4 + 5 + # Browser Extension 6 + 7 + The P-Stream browser extension enhances streaming quality and makes it possible to scrape more sources. 8 + 9 + Check out this [explanation](https://rentry.co/htagcrv4) about what the extension does. 10 + 11 + ## [Chrome Webstore](https://chromewebstore.google.com/detail/p-stream-extension/gnheenieicoichghfmjlpofcaebbgclh) 12 + 13 + <Warning> 14 + ## Firefox AOM 15 + The extension is not listed on the Firefox AOM, so you'll need to install the `.xpi` manually. 16 + 17 + Sorry, some loser keeps reporting the extension and getting it taken down. ˙◠˙ 18 + </Warning> 19 + 20 + # Manual Installation 21 + 22 + - [Chromium-based Installation](#chromium-based-installation) 23 + - [Firefox-based Installation](#firefox-based-installation) 24 + 25 + Select one of the following methods to install the extension. Ensure that you download the files compatible with your browser. 26 + 27 + ## Chromium-based Installation 28 + 29 + These installation steps are for any chromium-based browsers such as Microsoft Edge, Google Chrome, Vivaldi, Brave, Arc or Opera. 30 + 31 + ### Loading a ZIP file 32 + 33 + <Steps> 34 + <Steps.Step> 35 + Download and **unpack** the ZIP file from [here](https://github.com/p-stream/extension/releases). 36 + </Steps.Step> 37 + 38 + <Steps.Step> 39 + Go to your extensions page by typing the corresponding URL into your browser 40 + from the table below. 41 + 42 + | Browser | URL | 43 + |---------|-----| 44 + | Microsoft Edge | `edge://extensions` | 45 + | Google Chrome | `chrome://extensions` | 46 + | Vivaldi | `vivaldi://extensions` | 47 + | Opera | `opera://extensions` | 48 + </Steps.Step> 49 + 50 + <Steps.Step>Enable `Developer mode` toggle.</Steps.Step> 51 + 52 + <Steps.Step>Click the `Load unpacked` button.</Steps.Step> 53 + 54 + <Steps.Step> 55 + Select the **extracted** folder from the ZIP file from **Step 1**. 56 + </Steps.Step> 57 + </Steps> 58 + 59 + ## Firefox-based Installation 60 + 61 + This extension requires disabling `xpinstall.signatures.required` in `about:config` in the following supported browsers: 62 + 63 + ### Supported Browsers 64 + - **Librewolf** (recommended) 65 + - **Iceraven** (Android) 66 + - **Floorp** 67 + - **Firefox Nightly** (May have some issues) 68 + - **Firefox Developer Edition** 69 + - **Zen Browser** 70 + 71 + ### Installation Steps 72 + 73 + <Steps> 74 + <Steps.Step> 75 + Open your supported Firefox browser and type `about:config` into the address bar. 76 + </Steps.Step> 77 + 78 + <Steps.Step>Click the `Accept the Risk and Continue` button.</Steps.Step> 79 + 80 + <Steps.Step> 81 + Search for `xpinstall.signatures.required` and set it to `false` by clicking 82 + the toggle. 83 + </Steps.Step> 84 + 85 + <Steps.Step> 86 + Download the XPI file from 87 + [here](https://github.com/p-stream/extension/releases). 88 + It should automatically start the installation process. 89 + </Steps.Step> 90 + 91 + <Steps.Step> 92 + When prompted, choose `Continue to Installation` and then `Add`. 93 + </Steps.Step> 94 + </Steps> 95 + 96 + ## Workarounds for Unsupported Browsers 97 + 98 + This extension works with unsupported browsers, but requires additional steps. Please see below. 99 + 100 + ### Regular Firefox Tutorial 101 + 102 + #### How to use CRX Installer with regular Firefox 103 + Complete guide for disabling signature verification in standard Firefox 104 + 105 + In the regular version of Firefox, setting `xpinstall.signatures.required` to `false` does not work correctly. This document explains how to disable this restriction. 106 + 107 + 1. **Identify the path of omni.ja** 108 + 109 + omni.ja is located in the Firefox installation directory. 110 + 111 + The typical path is as follows: 112 + ``` 113 + C:/Program Files/Mozilla Firefox/omni.ja 114 + C:/Program Files (x86)/Mozilla Firefox/omni.ja 115 + /Applications/Firefox.app/omni.ja 116 + /usr/lib/firefox/omni.ja 117 + /usr/lib64/firefox/omni.ja 118 + /opt/firefox/omni.ja 119 + ``` 120 + 121 + You can also check the location of the installation directory from the `about:support` page. 122 + 123 + 2. **Patch omni.ja** 124 + 125 + Download [omniPatcher.py](https://gist.github.com/Pasithea0/217edad61004d21a5a5e46454cdd6256) and run it as follows: 126 + ``` 127 + python omniPatcher.py /path/to/omni.ja 128 + ``` 129 + 130 + 3. **Remove startup cache** 131 + 132 + To apply the changes, open `about:support` and delete the startup cache from the button at the top right. 133 + 134 + This allows you to disable signature verification in the regular version of Firefox based on the value of `xpinstall.signatures.required`.
+3
docs/pages/extra/index.tsx
··· 1 + import { createRedirect } from '@neato/guider/client'; 2 + 3 + export default createRedirect({ to: '/extra/streaming' });
+95
docs/pages/extra/selfhost.mdx
··· 1 + # Guide to Self-Deployment with Docker Compose 2 + 3 + <Steps> 4 + <Steps.Step> 5 + **Install Docker and Docker Compose:** 6 + 7 + Ensure that Docker and Docker Compose are installed on your system. You can follow the official Docker documentation for installation instructions: 8 + - [Install Docker](https://docs.docker.com/get-docker/) 9 + </Steps.Step> 10 + 11 + <Steps.Step> 12 + **Create a Docker Compose file:** 13 + 14 + Create a new file named `docker-compose.yml` in your project directory and paste the following content into it: 15 + 16 + ```yaml 17 + services: 18 + postgres: 19 + image: postgres 20 + environment: 21 + POSTGRES_USER: pstream_user 22 + POSTGRES_DB: pstream 23 + POSTGRES_PASSWORD: YourPasswordHere 24 + ports: 25 + - "5432:5432" 26 + networks: 27 + - p-stream-network 28 + p-stream: 29 + image: ghcr.io/dumbutdumber/backend:latest 30 + environment: 31 + DATABASE_URL: postgresql://pstream_user:YourPasswordHere@postgres:5432/pstream 32 + CRYPTO_SECRET: 32CharacterLongStringHere 33 + META_NAME: unofficial-backend 34 + ports: 35 + - "80:80" 36 + depends_on: 37 + - postgres 38 + networks: 39 + - p-stream-network 40 + 41 + p-stream-frontend: 42 + build: 43 + context: https://github.com/p-stream/p-stream.git 44 + args: 45 + TMDB_READ_API_KEY: "YourTMDBReadAPIKeyHere" 46 + CORS_PROXY_URL: "https://cors.example.tld https://second.cors.example.tld" 47 + BACKEND_URL: "https://backend.example.tld" 48 + DMCA_EMAIL: "YourEmail" 49 + PWA_ENABLED: "true" 50 + APP_DOMAIN: "YourDomainHere" 51 + OPENSEARCH_ENABLED: "true" 52 + GA_ID: "Google ID Here" 53 + ports: 54 + - "80:80" 55 + networks: 56 + - p-stream-network 57 + restart: unless-stopped 58 + 59 + p-stream-proxy: 60 + image: ghcr.io/p-stream/simple-proxy:latest 61 + ports: 62 + - "3000:3000" 63 + networks: 64 + - p-stream-network 65 + restart: unless-stopped 66 + 67 + networks: 68 + p-stream-network: 69 + driver: bridge 70 + ``` 71 + **Important:** 72 + * Replace `YourPasswordHere` with your secure database password. 73 + * Generate a strong session secret and replace `32CharacterLongStringHere`. 74 + * Replace `TMDBReadAPIKey` with your api key learn more [here](../client/tmdb.mdx). 75 + * replace `yourDomainHere` with whatever you'll be using to access your main site, like pstream.mov 76 + * replace `meta__name` and `meta__description` 77 + 78 + </Steps.Step> 79 + 80 + <Steps.Step> 81 + **Start the Backend:** Open a terminal in the directory containing `docker-compose.yml` and execute: 82 + 83 + ```bash 84 + docker compose up --detach 85 + ``` 86 + 87 + </Steps.Step> 88 + </Steps> 89 + ### Accessing Your Backend 90 + 91 + Your services should be accessible on `(YourPrivateIP):port`. To share it outside your local network, you'll need to configure port forwarding or cloudflared tunnel. 92 + 93 + ### Optional: Implementing a Reverse Proxy 94 + 95 + To enhance your SSL and domain configuration, it's advisable to establish a reverse proxy, such as Nginx. For an optimal choice in this regard, Cloudflare Zero Trust Tunnel is recommended. You can find more information [here](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/create-remote-tunnel/).
+60
docs/pages/extra/streaming.mdx
··· 1 + --- 2 + title: 'Streaming' 3 + --- 4 + 5 + # Streaming 6 + 7 + This page explains all the different ways you can enable P-Stream to stream your favorite movies & TV shows, each with their own pros and cons. 8 + 9 + {/* ## Method 1 - Browser extension 10 + 11 + The P-Stream browser extension is the easiest way to be able to watch media with fast streaming speeds, it is available for both [Chrome] and [Firefox]. 12 + 13 + This method is great if you only use P-Stream on your computer. If you use a mobile device or smart TV, you'll unfortunately have to stick to using a proxy since these devices don't usually support browser extensions. 14 + 15 + Since this method uses your own IP, it is undetectable by streaming services, so you can use it to watch your favorite shows without worrying about getting blocked by their servers. 16 + */} 17 + 18 + ## Method 1 - Self-hosted proxy 19 + 20 + Self-hosting a proxy is an easy way to get faster streaming speeds, [we have a guide](../proxy/deploy.mdx) that explains how to set up one for **free**. 21 + 22 + This method is recommended if you want to host a proxy for your friends and or family to use, as it is the faster than using the public proxy and the most reliable way to stream media at the moment. 23 + 24 + {/* This method is recommended if you want to host a proxy for your friends and family to use, or if you want to use P-Stream on a device that doesn't support the [browser extension](#method-1---browser-extension), such as a smart TV or mobile device. */} 25 + 26 + <Steps> 27 + <Steps.Step> 28 + Set up a proxy using one of our [guides](../proxy/deploy.mdx), [though we recommend Netlify](../proxy/deploy.mdx#method-1-netlify-easy). 29 + </Steps.Step> 30 + 31 + <Steps.Step> 32 + Once that's done, go to the **Connections** section of the **Settings page** 33 + on your P-Stream instance of choice. 34 + </Steps.Step> 35 + 36 + <Steps.Step> 37 + Enable `Use custom proxy workers` if it's not already enabled. 38 + </Steps.Step> 39 + 40 + <Steps.Step>Add a new custom proxy by clicking `Add new worker`.</Steps.Step> 41 + 42 + <Steps.Step> 43 + Copy the URL of the proxy you deployed before, and paste it into the empty text box. 44 + ![Example of settings page](/assets/proxy-url-example.gif) 45 + </Steps.Step> 46 + </Steps> 47 + 48 + <Note> 49 + If you're self-hosting the client, you can use the 50 + [`VITE_CORS_PROXY_URL`](../client/configuration.mdx#vite-cors-proxy-url) 51 + variable to set the proxy URL for everyone who uses your client. 52 + </Note> 53 + 54 + ## Method 2 - Public proxy 55 + 56 + The public proxy is the easiest way to get started with P-Stream as it is the default, it is hosted by us and is completely free to use. 57 + 58 + If you are using the main website, then you are most likely already using the public proxy. Unfortunately you will most likely be getting slower speeds and your video might be buffering more often, which is why we recommend using a self-hosted proxy if you can. 59 + 60 + This is not the case with self-hosted clients, there is no proxy set up by default on self-hosted clients and you will need to [set up one yourself](../proxy/deploy.mdx).
+75
docs/pages/index.tsx
··· 1 + import { 2 + Button, 3 + Card, 4 + CardGrid, 5 + GuiderLayout, 6 + Hero, 7 + Frame, 8 + } from '@neato/guider/client'; 9 + import logoUrl from '../public/transparent-logo.png'; 10 + 11 + export default function LandingPage() { 12 + return ( 13 + <GuiderLayout meta={{ layout: 'page' }}> 14 + <Hero> 15 + <div style={{ paddingBottom: '0.7em' }}> 16 + <Frame> 17 + <img src={logoUrl.src} alt="Logo of P-Stream" /> 18 + </Frame> 19 + </div> 20 + <Hero.Title>P-Stream</Hero.Title> 21 + <Hero.Subtitle> 22 + A cutesy app for watching your favorite movies and shows. Totally free 23 + and open source, forever! 24 + </Hero.Subtitle> 25 + <Hero.Actions> 26 + <div style={{ display: 'flex', gap: '1em' }}> 27 + <Button to="/self-hosting/hosting-intro">Get Started</Button> 28 + <Button to="https://github.com/p-stream/p-stream" type="secondary"> 29 + Open on GitHub 30 + </Button> 31 + </div> 32 + </Hero.Actions> 33 + </Hero> 34 + <Frame plain={true}> 35 + <CardGrid> 36 + <Card icon="material-symbols:hangout-video-off" title="No Ads"> 37 + P-Stream will never show ads, enjoy watching without interruptions. 38 + </Card> 39 + <Card icon="ic:baseline-ondemand-video" title="Custom Player"> 40 + Enjoy a fully custom video player including streaming integration, 41 + subtitle customization and easy TV season navigation. 42 + </Card> 43 + <Card icon="mdi:content-save" title="Saves your progress"> 44 + Will remember your progress in movies and TV shows, so you can 45 + easily continue where you left off. 46 + </Card> 47 + <Card icon="mdi:bookmark" title="Bookmarking"> 48 + Allows you to bookmark your favorite movies and TV shows, so you can 49 + easily find them again. 50 + </Card> 51 + <Card icon="mdi:cloud-refresh" title="Syncing across devices"> 52 + Enjoy uninterrupted streaming as your progress, proxies, and 53 + bookmarks sync effortlessly across all your devices. 54 + </Card> 55 + <Card icon="mdi:power-plug-outline" title="Modular by design"> 56 + Mix and match different parts of the P-Stream service, host your 57 + backend or use ours, it&apos;ll work either way. 58 + </Card> 59 + <Card icon="mdi:flag" title="Multiple Languages"> 60 + Supports over 25 languages, including English, German, French, 61 + Spanish, Italian, Czech, Hindi, Arabic, Hebrew and more. 62 + </Card> 63 + <Card icon="mdi:brush-variant" title="Customizable"> 64 + Supports various themes, subtitle colors and subtitle sizes so you 65 + can make it look however you want. 66 + </Card> 67 + <Card icon="mdi:cellphone" title="Progressive Web App Support"> 68 + Supports PWA, so you can install it on your phone and use it just 69 + like a native app. 70 + </Card> 71 + </CardGrid> 72 + </Frame> 73 + </GuiderLayout> 74 + ); 75 + }
+18
docs/pages/instances.mdx
··· 1 + --- 2 + title: 'Instances' 3 + --- 4 + 5 + # Instances 6 + 7 + This page showcases P-Stream instances hosted by the community. 8 + 9 + <Note> 10 + * Sites with a `⭐` next to them are the best ones to use. 11 + * Sites with a `🪞` next to them are mirrors of P-Stream without changes. 12 + * Sites with a `💾` next to them use the sudo-backend meaning your data is synced across these sites. 13 + * Sites with a `📱` next to them have PWA support meaning you can use the site as a native app on your phone. 14 + </Note> 15 + 16 + | Site | Host | Stats | 17 + | :------------------------------------------- | :----------------- | :------- | 18 + | | | |
+141
docs/pages/links/discord.tsx
··· 1 + import { useEffect, useState } from 'react'; 2 + 3 + const redirectTitle = 'Discord'; 4 + const redirectUrl = 'https://discord.gg/jZ6kkzADWS'; 5 + 6 + export default function WeblateRedirect() { 7 + const [countdown, setCountdown] = useState(5); 8 + 9 + useEffect(() => { 10 + const interval = setInterval(() => { 11 + setCountdown((currentCountdown) => { 12 + if (currentCountdown <= 0) { 13 + return currentCountdown; 14 + } 15 + return currentCountdown - 1; 16 + }); 17 + }, 1000); 18 + 19 + const timer = setTimeout(() => { 20 + window.location.href = redirectUrl; 21 + }, 5000); 22 + 23 + return () => { 24 + clearTimeout(timer); 25 + clearInterval(interval); 26 + }; 27 + }, []); 28 + 29 + return ( 30 + <div 31 + style={{ 32 + justifyContent: 'center', 33 + alignItems: 'center', 34 + height: '100vh', 35 + width: '100%', 36 + background: '#0C0B13', 37 + }} 38 + > 39 + <div style={{ textAlign: 'center' }}> 40 + <h1 41 + style={{ fontSize: '2.5em', paddingBlock: '0.6em', color: '#A6A4AE' }} 42 + > 43 + P-Stream {redirectTitle} 44 + </h1> 45 + <hr 46 + style={{ 47 + marginInline: '2em', 48 + border: 'solid 0.1em #33344CFF', 49 + }} 50 + /> 51 + </div> 52 + <div 53 + style={{ 54 + display: 'flex', 55 + justifyContent: 'center', 56 + alignItems: 'center', 57 + height: '80vh', 58 + }} 59 + > 60 + <div 61 + style={{ 62 + padding: '1em', 63 + marginInline: '2.5em', 64 + border: 'solid 0.1em #33334CFF', 65 + borderRadius: '0.35em', 66 + alignItems: 'center', 67 + textAlign: 'center', 68 + }} 69 + > 70 + <div 71 + style={{ 72 + fontSize: '1.65em', 73 + color: '#A6A4AE', 74 + display: 'flex', 75 + flexDirection: 'column', 76 + alignItems: 'center', 77 + }} 78 + > 79 + {countdown > 0 80 + ? `Redirecting you to our ${redirectTitle} in:` 81 + : `Redirecting you now...`} 82 + {countdown <= 0 ? ( 83 + <a 84 + href={redirectUrl} 85 + style={{ color: '#8C899A', fontSize: '0.6em' }} 86 + onMouseEnter={(e) => 87 + (e.currentTarget.style.textDecoration = 'underline') 88 + } 89 + onMouseLeave={(e) => 90 + (e.currentTarget.style.textDecoration = 'none') 91 + } 92 + > 93 + *Click here if you&#39;re not redirected 94 + </a> 95 + ) : ( 96 + <span style={{ fontWeight: 700 }}>{countdown}</span> 97 + )} 98 + </div> 99 + </div> 100 + </div> 101 + <div 102 + style={{ 103 + display: 'flex', 104 + flexDirection: 'column', 105 + alignItems: 'center', 106 + color: '#8C899A', 107 + fontSize: '0.7em', 108 + }} 109 + > 110 + <p>© 2025 P-Stream</p> 111 + <p> 112 + {/* Follow us on{' '} 113 + <a 114 + href="https://x.com/sudoFlix" 115 + onMouseEnter={(e) => 116 + (e.currentTarget.style.textDecoration = 'underline') 117 + } 118 + onMouseLeave={(e) => 119 + (e.currentTarget.style.textDecoration = 'none') 120 + } 121 + > 122 + Twitter 123 + </a>{' '} 124 + and check out our{' '} */} 125 + <a 126 + href="https://github.com/Pasiteha0" 127 + onMouseEnter={(e) => 128 + (e.currentTarget.style.textDecoration = 'underline') 129 + } 130 + onMouseLeave={(e) => 131 + (e.currentTarget.style.textDecoration = 'none') 132 + } 133 + > 134 + Github 135 + </a> 136 + {/* . */} 137 + </p> 138 + </div> 139 + </div> 140 + ); 141 + }
+127
docs/pages/links/weblate.tsx
··· 1 + import { useEffect, useState } from 'react'; 2 + 3 + const redirectTitle = 'Weblate'; 4 + const redirectUrl = 'https://github.com/p-stream/p-stream'; 5 + 6 + export default function WeblateRedirect() { 7 + const [countdown, setCountdown] = useState(5); 8 + 9 + useEffect(() => { 10 + const interval = setInterval(() => { 11 + setCountdown((currentCountdown) => { 12 + if (currentCountdown <= 0) { 13 + return currentCountdown; 14 + } 15 + return currentCountdown - 1; 16 + }); 17 + }, 1000); 18 + 19 + const timer = setTimeout(() => { 20 + window.location.href = redirectUrl; 21 + }, 5000); 22 + 23 + return () => { 24 + clearTimeout(timer); 25 + clearInterval(interval); 26 + }; 27 + }, []); 28 + 29 + return ( 30 + <div 31 + style={{ 32 + justifyContent: 'center', 33 + alignItems: 'center', 34 + height: '100vh', 35 + width: '100%', 36 + background: '#0C0B13', 37 + }} 38 + > 39 + <div style={{ textAlign: 'center' }}> 40 + <h1 41 + style={{ fontSize: '2.5em', paddingBlock: '0.6em', color: '#A6A4AE' }} 42 + > 43 + P-Stream {redirectTitle} 44 + </h1> 45 + <hr 46 + style={{ 47 + marginInline: '2em', 48 + border: 'solid 0.1em #37334C', 49 + }} 50 + /> 51 + </div> 52 + <div 53 + style={{ 54 + display: 'flex', 55 + justifyContent: 'center', 56 + alignItems: 'center', 57 + height: '80vh', 58 + }} 59 + > 60 + <div 61 + style={{ 62 + padding: '1em', 63 + marginInline: '2.5em', 64 + border: 'solid 0.1em #37334C', 65 + borderRadius: '0.35em', 66 + alignItems: 'center', 67 + textAlign: 'center', 68 + }} 69 + > 70 + <div 71 + style={{ 72 + fontSize: '1.65em', 73 + color: '#A6A4AE', 74 + display: 'flex', 75 + flexDirection: 'column', 76 + alignItems: 'center', 77 + }} 78 + > 79 + {countdown > 0 80 + ? `Redirecting you to our ${redirectTitle} in:` 81 + : `Redirecting you now...`} 82 + {countdown <= 0 ? ( 83 + <a 84 + href={redirectUrl} 85 + style={{ color: '#8C899A', fontSize: '0.6em' }} 86 + onMouseEnter={(e) => 87 + (e.currentTarget.style.textDecoration = 'underline') 88 + } 89 + onMouseLeave={(e) => 90 + (e.currentTarget.style.textDecoration = 'none') 91 + } 92 + > 93 + *Click here if you&#39;re not redirected 94 + </a> 95 + ) : ( 96 + <span style={{ fontWeight: 700 }}>{countdown}</span> 97 + )} 98 + </div> 99 + </div> 100 + </div> 101 + <div 102 + style={{ 103 + display: 'flex', 104 + flexDirection: 'column', 105 + alignItems: 'center', 106 + color: '#8C899A', 107 + fontSize: '0.7em', 108 + }} 109 + > 110 + <p> 111 + <a 112 + href="https://github.com/p-stream" 113 + onMouseEnter={(e) => 114 + (e.currentTarget.style.textDecoration = 'underline') 115 + } 116 + onMouseLeave={(e) => 117 + (e.currentTarget.style.textDecoration = 'none') 118 + } 119 + > 120 + Github 121 + </a> 122 + . 123 + </p> 124 + </div> 125 + </div> 126 + ); 127 + }
+34
docs/pages/proxy/changelog.mdx
··· 1 + --- 2 + title: 'Changelog' 3 + --- 4 + 5 + # Version 2.1.3 6 + 7 + - Upgrade nitro, which fixes issues on AWS lambda 8 + 9 + # Version 2.1.2 10 + 11 + - Block more headers, be more anonymous (only works on non-cloudflare platforms) 12 + - Add package version to route `/` for debugging purposes 13 + - Add REQ_DEBUG=true variable to allow for logging all requests made. 14 + - Remove old console.log 15 + 16 + # Version 2.1.1 17 + 18 + - Fix support for JWT on non-Cloudflare platforms 19 + - Fix header copying logic so User-Agent, Referer and Origin work properly 20 + - Upgrade h3 21 + 22 + # Version 2.1.0 23 + 24 + - [Added Turnstile integration](./configuration.mdx#turnstile-secret) to secure your workers from abuse. 25 + 26 + # Version 2.0.1 27 + 28 + - Bugfix where sometimes body would double read 29 + - Bugfix where sometimes no response would be given at all due to race condition 30 + 31 + # Version 2.0.0 32 + 33 + - Full rewrite, now supports multiple platforms: nodejs, Cloudflare, AWS lambda 34 + - Standard proxy headers are no longer sent through. Which now doesn't send a client ip through anymore.
+29
docs/pages/proxy/configuration.mdx
··· 1 + --- 2 + title: 'Configuration' 3 + --- 4 + 5 + # Proxy Config Reference 6 + 7 + Adding environment variables is different for every platform, [here's a guide on how to add environment variables on Cloudflare](https://developers.cloudflare.com/workers/configuration/environment-variables/#add-environment-variables-via-the-dashboard). You'll have to do some research on your own if you aren't hosting the proxy on Cloudflare. 8 + 9 + # Reference 10 + 11 + ### `TURNSTILE_SECRET` 12 + 13 + - Type: `string` 14 + - Default: `""` 15 + 16 + Turnstile secret key from the [Cloudflare dashboard](https://dash.cloudflare.com/sign-up?to=/:account/turnstile). 17 + 18 + <Warning> 19 + Keep in mind that you will also need to [configure the Turnstile key on the 20 + client](../client/configuration.mdx#vite-turnstile-key) and **configure the 21 + [`JWT_SECRET`](#jwt-secret) below.** 22 + </Warning> 23 + 24 + ### `JWT_SECRET` 25 + 26 + - Type: `string` 27 + - Default: `""` 28 + 29 + A [JWT](https://jwt.io/) secret key. This can be any random secret, but **must be 32 characters long.**
+221
docs/pages/proxy/deploy.mdx
··· 1 + --- 2 + title: 'Deploy' 3 + --- 4 + 5 + # Deploying the proxy 6 + 7 + <Warning> 8 + **USERS!** 9 + 10 + Please use the extension instead unless you are familiar with self hosting Docker images! 11 + </Warning> 12 + 13 + 14 + <Warning> 15 + **Selfhosting the client as well?** 16 + 17 + Please read [THIS](./introduction.mdx) and use Method 1 (Docker) or Method 2 (Manual)! 18 + 19 + Cloudflare and Netlify's IPs are blocked by most sites and the proxy MUST be hosted on a VPS or other server that is not IP/ASN banned. 20 + 21 + </Warning> 22 + 23 + ## Method 1 - Docker (Recommended) 24 + 25 + This is the recommended method for deploying on a VPS or home server. Experience with Docker, domains and web hosting is recommended. 26 + 27 + <Warning> 28 + Experience with Docker, domains and web hosting is **highly recommended** for 29 + this method. <br /> 30 + You are exposing your server at your own risk! 31 + </Warning> 32 + 33 + P-Stream does not have a Docker image for the proxy, but there is a Dockerfile within the repo. 34 + 35 + <Steps> 36 + <Steps.Step> 37 + Clone the repo on your server: 38 + <code>git clone https://github.com/p-stream/simple-proxy</code> 39 + </Steps.Step> 40 + 41 + <Steps.Step> 42 + Locate the <code>Dockerfile</code> in the root folder. 43 + </Steps.Step> 44 + 45 + <Steps.Step> 46 + Build the Docker image: 47 + <code>docker build -t p-stream-proxy ./simple-proxy</code> 48 + </Steps.Step> 49 + 50 + <Steps.Step> 51 + (Optional) Create and edit a <code>.env</code> file in the <code>simple-proxy</code> directory to configure secrets such as <code>JWT_SECRET</code> and other environment variables as documented in the configuration guide. 52 + </Steps.Step> 53 + 54 + <Steps.Step> 55 + Run the Docker container (replace values as needed): 56 + <code>docker run -d --name p-stream-proxy -p 3000:3000 --env-file .env p-stream-proxy</code> 57 + </Steps.Step> 58 + 59 + <Steps.Step> 60 + (Optional) Configure your firewall or reverse proxy (such as NGINX or Caddy) to expose port <code>3000</code> or your desired HTTP/HTTPS port. 61 + </Steps.Step> 62 + </Steps> 63 + 64 + 65 + The container exposes the HTTP port (Without TLS/SSL) as `3000/TCP`. 66 + 67 + ## Method 2 - Manual (Advanced) 68 + 69 + This method is for advanced users who want full control over their deployment. We recommend using automated package managers like nixpacks for easier deployment. 70 + 71 + Manually installing the proxy on your server. You may want to use an automated package manager like nixpacks to do this. 72 + 73 + <Steps> 74 + <Steps.Step> 75 + Clone the repo on your server `git clone https://github.com/p-stream/simple-proxy` 76 + </Steps.Step> 77 + 78 + <Steps.Step> 79 + Navigate to the directory `cd simple-proxy` 80 + </Steps.Step> 81 + 82 + <Steps.Step> 83 + Install packages `pnpm i` 84 + </Steps.Step> 85 + 86 + <Steps.Step> 87 + Build the app `pnpm build` 88 + </Steps.Step> 89 + 90 + <Steps.Step> 91 + Start the proxy `pnpm start` 92 + </Steps.Step> 93 + </Steps> 94 + 95 + You'll need to configure port forwarding and firewall settings. Good luck. 96 + 97 + --- 98 + 99 + # Deprecated Methods 100 + 101 + <Warning> 102 + **These methods are DEPRECATED** and should not be used for new deployments. Cloudflare, Netlify, and Railway IPs have been heavily abused and are now blocked by most streaming sites. Use Docker or Manual deployment on a VPS or home server with a residential/private IP instead. 103 + </Warning> 104 + 105 + ## Method 3 - Cloudflare (DEPRECATED) 106 + 107 + Cloudflare has a generous free plan, so you don't need to pay anything unless you get thousands of users. 108 + 109 + [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/p-stream/simple-proxy) 110 + 111 + <Steps> 112 + <Steps.Step> 113 + Create a GitHub account at https://github.com if you don't have one. 114 + </Steps.Step> 115 + 116 + <Steps.Step>Click the `Deploy with workers` button above.</Steps.Step> 117 + 118 + <Steps.Step>Configure any aditional settings if desired.</Steps.Step> 119 + 120 + <Steps.Step>Click `Deploy` to deploy to Cloudflare Workers.</Steps.Step> 121 + 122 + <Steps.Step> 123 + Congratulations! Your worker is now deploying. Please wait for the GitHub 124 + Action to build and publish your worker. 125 + </Steps.Step> 126 + 127 + <Steps.Step> 128 + You can click the [`Worker 129 + dash`](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages) 130 + and `GitHub repo` buttons to see the status of the deploy. 131 + </Steps.Step> 132 + 133 + <Steps.Step> 134 + When the worker has deployed, you will need to take note of the URL. This 135 + can be found on Cloudflare under [Workers and Pages -> 136 + Overview](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages) 137 + -> Proxy. 138 + </Steps.Step> 139 + 140 + <Steps.Step> 141 + Use the URL you took note of and [set up a custom proxy in the 142 + client](../extra/streaming.mdx#method-1-self-hosted-proxy). 143 + </Steps.Step> 144 + </Steps> 145 + 146 + ## Method 4 - Netlify (DEPRECATED) 147 + 148 + Netlify has a very generous free plan, so you'll be able to host your proxy for free unless you get hundreds of users. 149 + 150 + [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/p-stream/simple-proxy) 151 + 152 + <Steps> 153 + <Steps.Step> 154 + Create a GitHub account at https://github.com/signup if you don't have one already. 155 + </Steps.Step> 156 + 157 + {' '} 158 + <Steps.Step> 159 + Click on the `Deploy to Netlify` button above. - Authorize Netlify to connect 160 + with GitHub by clicking the `Connect to GitHub` button. 161 + </Steps.Step> 162 + 163 + {' '} 164 + <Steps.Step>There should now be a `Save & Deploy` button, click it.</Steps.Step> 165 + 166 + {' '} 167 + <Steps.Step> 168 + Once the deployment is complete, click on the `Get Started` button that pops 169 + up, this will redirect you to the dashboard of your site. 170 + </Steps.Step> 171 + 172 + {' '} 173 + <Steps.Step> 174 + Click on the only site in the `Sites` section of your dashboard. 175 + </Steps.Step> 176 + 177 + <Steps.Step> 178 + Find the link of your site near the top of the page, it should look something like `https://<random-words>.netlify.app`. Right click the link, click `Copy link address`. [Now you'll just have to set up the client](../extra/streaming.mdx#method-1-self-hosted-proxy)! 179 + </Steps.Step> 180 + </Steps> 181 + 182 + ## Method 5 - Railway (DEPRECATED) 183 + 184 + Railway provides $5 in free credits once you verify your account. These credits expire after 1 month and are usually enough to keep the proxy running for about that time. 185 + (Tip: You can delete your account and create a new one to receive additional credits.) 186 + 187 + [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/dyYHq1) 188 + 189 + <Steps> 190 + <Steps.Step> 191 + Login to your [Railway](https://railway.app) account if you have one, otherwise create one [here](https://railway.app/login). 192 + - If you are signing up, then verify your account by clicking the link in the email Railway sends you. 193 + - If you created your account with an email, then to verify your account further, go to your account, then plans and verify your account with a GitHub account. 194 + </Steps.Step> 195 + 196 + {' '} 197 + <Steps.Step> 198 + Click the [`Deploy on Railway`](https://railway.app/template/dyYHq1) button 199 + above. 200 + </Steps.Step> 201 + 202 + {' '} 203 + <Steps.Step> 204 + If a `Configure` button is displayed, click on it and allow Railway to access 205 + your GitHub account. 206 + </Steps.Step> 207 + 208 + {' '} 209 + <Steps.Step> 210 + The `Deploy` button at the bottom of the template should be active, click on 211 + it. 212 + </Steps.Step> 213 + 214 + <Steps.Step> 215 + Once the proxy has deployed, copy the URL from the `Deployments` page. 216 + </Steps.Step> 217 + 218 + <Steps.Step> 219 + Congratulations! You have deployed the proxy, [you can now set up the client](../extra/streaming.mdx#method-1-self-hosted-proxy). 220 + </Steps.Step> 221 + </Steps>
+3
docs/pages/proxy/index.tsx
··· 1 + import { createRedirect } from '@neato/guider/client'; 2 + 3 + export default createRedirect({ to: '/proxy/introduction' });
+18
docs/pages/proxy/introduction.mdx
··· 1 + --- 2 + title: 'Introduction' 3 + --- 4 + 5 + # Introduction to the proxy 6 + 7 + The proxy has **two** functions and is **required** to self host the project entirely. However, you do NOT need to set it up if all your users use the extension instead as it replaces this! 8 + 9 + 1. The proxy is used to bypass CORS-protected URLs on the client side, allowing users to make requests to CORS protected endpoints without a backend server. 10 + The proxy is made using [Nitro by UnJS](https://nitro.unjs.io/) which supports building the proxy to work on multiple providers including Cloudflare Workers, AWS Lambda and [more...](https://nitro.unjs.io/deploy) 11 + 12 + 2. For site admins (self hosters), the proxy is also used to bypass m3u8 stream header restrictions for sites with origin locked streams. Because of this active restriction, this proxy needs to be hosted on a VPS, platform, or home server that's IP is **NOT** blocked by the desired stream. 13 + 14 + On the following page there are guides to set up the proxy on VPS, home servers, or other hosting platforms. 15 + 16 + <Warning> 17 + Cloudflare and Netlify solutions are no longer effective because they have been heavily abused and most streaming sites now block their IPs. Instead, users and self-hosters should deploy the proxy on residential or private VPS IPs to avoid these ASN bans. 18 + </Warning>
+24
docs/pages/self-hosting/about-pwa.mdx
··· 1 + --- 2 + title: 'PWA vs no-PWA' 3 + --- 4 + 5 + # About Self-hosting PWA 6 + 7 + So that clients can have a more native app-like experience on mobile, P-Stream has a function to support Progressive Web Apps (PWA). You can learn more about what a PWA is [here](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/What_is_a_progressive_web_app). 8 + 9 + In P-Stream version 3, PWAs were enabled by default. Unfortunately, PWAs tend to come with caching complications that can be tricky to resolve. That's why we have **disabled** PWAs by default in P-Stream version 4. If you are upgrading from version 3, please [read our upgrade guide](../client/upgrade.mdx) for more information. 10 + 11 + <Warning> 12 + Enabling PWAs means that you cannot disable it again - Please only proceed if 13 + you know what you are doing! 14 + </Warning> 15 + 16 + ## If you are running P-Stream on a hosting platform such as Vercel 17 + 18 + If your hosting is building P-Stream from the source, you can enable PWAs using the [`VITE_PWA_ENABLED`](../client/configuration.mdx#vite-pwa-enabled) environment variable. 19 + 20 + Setting [`VITE_PWA_ENABLED`](../client/configuration.mdx#vite-pwa-enabled) to `true` will generate a [service worker file](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#service_worker) and a [web app manifest](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#the_web_app_manifest) which enable the website to be installed from a [web browser both on Desktop and on Mobile](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#installation_from_the_web). 21 + 22 + ## If you are running P-Stream using the .zip files 23 + 24 + If you are downloading the P-Stream `zip` files from our GitHub and installing them on a static website host, then all you need to do is to make sure to download the [`P-Stream.pwa.zip`](https://github.com/p-stream/p-stream/releases/latest/download/P-Stream.pwa.zip) file instead of the `P-Stream.zip` file!
+43
docs/pages/self-hosting/hosting-intro.mdx
··· 1 + --- 2 + title: 'Start self-hosting' 3 + --- 4 + 5 + # How to self-host 6 + 7 + <Note> 8 + We provide support and answer questions. If you have any enquiries, feel free 9 + to ask in our [Discord server](/links/discord). 10 + </Note> 11 + 12 + Since P-Stream has many different components, there are a few configurations of how you can host it. Each of these configurations has their own benefits, whether that be having complete control over your data or customizing your experience. 13 + **If you don't know what to choose, go with [method 1.](#method-1-only-host-the-frontend)** 14 + 15 + --- 16 + 17 + ## Method 1 - Only host the frontend 18 + 19 + With this method, you only host the essential parts that make P-Stream work. But keep using the account server from official P-Stream. 20 + This method is the easiest to self-host and is recommended for most users. 21 + 22 + 1. [Set up the Proxy!](../proxy/introduction.mdx) 23 + 2. [Set up the Client!](../client/introduction.mdx) 24 + 25 + --- 26 + 27 + ## Method 2 - Only host the account server 28 + 29 + If you want to own your own data, it's possible to self-host just the account server and nothing else. 30 + This method is only recommended if you have experience hosting databases or other similar stateful applications. 31 + 32 + 1. [Set up the Backend!](../backend/introduction.mdx) 33 + 2. [Configure the Client!](../client/introduction.mdx) 34 + 35 + --- 36 + 37 + ## Method 3 - Host everything 38 + 39 + If you want an instance that's completely isolated from the official P-Stream. You can self-host all of the parts yourself, though this method is not recommended for inexperienced hosters. 40 + 41 + 1. [Set up the Proxy!](../proxy/introduction.mdx) 42 + 2. [Set up the Backend!](../backend/introduction.mdx) 43 + 3. [Set up the Client!](../client/introduction.mdx)
+3
docs/pages/self-hosting/index.tsx
··· 1 + import { createRedirect } from '@neato/guider/client'; 2 + 3 + export default createRedirect({ to: '/self-hosting/hosting-intro' });
+45
docs/pages/self-hosting/troubleshooting.mdx
··· 1 + --- 2 + title: 'Troubleshooting' 3 + --- 4 + 5 + # Troubleshooting 6 + 7 + There is always a possibility for something to go wrong while trying to deploy your own instance of P-Stream. This page will contain common issues people have come across while self-hosting and their solutions. 8 + 9 + ## "Failed to find media, try again!" while searching 10 + 11 + **This is likely a misconfigured TMDB API key.** To verify that TMDB is the issue, visit `/admin` or `/#/admin` and click on the `Test TMDB` button. 12 + 13 + If the test succeeds, then your TMDB configuration is correct and the issue is with something else. 14 + 15 + If the test fails, then you should recheck your credentials. [**Make sure you're using the Read Access Token, not the normal API Key.**](https://www.themoviedb.org/settings/api#v4_auth_key) 16 + 17 + ## Everything I try to watch fails 18 + 19 + **This is likely a misconfigured Worker.** To make sure that the Workers are the issue, visit `/admin` or `/#/admin`, then click on the `Test workers` button. 20 + 21 + You should have at least 1 Worker registered, if you don't, you should [deploy a worker](../proxy/deploy.mdx) and [set it up in the client](../client/configuration.mdx#vite-cors-proxy-url). 22 + 23 + If any Worker fails the test, you should double check its URL and see if its up to date with the latest updates. 24 + 25 + ## I can't make an account or login 26 + 27 + **This is likely misconfigured or broken backend.** To verify that the backend is the issue, visit `/admin` or `/#/admin`, then click on the `Test backend` button. 28 + 29 + If the backend is online and properly configured it should display the name and version of the backend. If the name and description of the test don't match your own instance, [make sure you have your backend URL set correctly.](../client/configuration.mdx#vite-backend-url) 30 + 31 + If the test gives you an error, your [backend URL configuration option](../client/configuration.mdx#vite-backend-url) likely has a typo. 32 + 33 + If the version that shows up on your backend is not the latest version, you should update your backend to keep up with the latest changes. 34 + 35 + ## I updated from version 3 to version 4 but I still see the old version 36 + 37 + It is likely that you haven't installed the PWA version of P-Stream. Please read the [upgrade guide](../client/upgrade.mdx) for more details on the matter. 38 + 39 + ## I'm getting SSL issues when using a hosted postgres database 40 + 41 + You are most likely missing the [`postgres.ssl`](../backend/configuration.mdx#postgres-ssl) variable on your backend, enable it and the connection should work. 42 + 43 + ## Permission denied to set parameter "session_replication_role" 44 + 45 + Set the `MIKRO_ORM_MIGRATIONS_DISABLE_FOREIGN_KEYS` option to `false` in either your `.env` or your Docker command.
+31
docs/pages/self-hosting/use-backend.mdx
··· 1 + --- 2 + title: 'Configure backend' 3 + --- 4 + 5 + # Configure your client with the backend 6 + 7 + If you would like to use an alternative backend server (the server responsible for saving user data across devices) then you can specify your own URL **without needing to host your own P-Stream frontend!** 8 + 9 + <Caution> 10 + Changing your backend server will log you out of your account - make sure you 11 + have a copy of your 12-word passphrase saved in case you need to go back! 12 + </Caution> 13 + 14 + <Steps> 15 + <Steps.Step> 16 + On P-Stream, click the menu icon at the top right and then `Settings`. 17 + </Steps.Step> 18 + 19 + {' '} 20 + <Steps.Step>Scroll down the page to the `Connections` section.</Steps.Step> 21 + 22 + {' '} 23 + <Steps.Step> 24 + Enable the `Custom server` toggle and enter your backend URL in the input box 25 + that appears. 26 + </Steps.Step> 27 + 28 + <Steps.Step> 29 + Click `Save` at the bottom right corner of your screen. 30 + </Steps.Step> 31 + </Steps>
+20
docs/pages/support.mdx
··· 1 + --- 2 + title: 'Support' 3 + --- 4 + 5 + # Support 6 + 7 + We provide support to users and hosters in our discord server. Though we have some rules about the questions you can ask. 8 + 9 + <Frame> 10 + 1. Don't ask to be put on the [instances list](/instances) 11 + 2. No asking developers to help you code 12 + 3. No duplicate tickets 13 + 14 + <Button to='/links/discord'>Join the Discord</Button> 15 + </Frame> 16 + 17 + <Note> 18 + Only ask questions in designated support tickets, otherwise they will most 19 + likely not be seen or answered seriously. 20 + </Note>
+6165
docs/pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + dependencies: 11 + '@neato/guider': 12 + specifier: ^1.1.0 13 + version: 1.1.0(@types/react@18.2.73)(acorn@8.14.1)(next@14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.3) 14 + next: 15 + specifier: ^14.2.26 16 + version: 14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 17 + next-seo: 18 + specifier: ^6.6.0 19 + version: 6.6.0(next@14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 20 + react: 21 + specifier: ^18.3.1 22 + version: 18.3.1 23 + react-dom: 24 + specifier: ^18.3.1 25 + version: 18.3.1(react@18.3.1) 26 + devDependencies: 27 + '@mdx-js/loader': 28 + specifier: ^3.0.0 29 + version: 3.1.0(acorn@8.14.1)(webpack@5.99.0) 30 + '@mdx-js/react': 31 + specifier: ^3.0.0 32 + version: 3.1.0(@types/react@18.2.73)(react@18.3.1) 33 + '@types/react': 34 + specifier: 18.2.73 35 + version: 18.2.73 36 + eslint: 37 + specifier: ^8.57.1 38 + version: 8.57.1 39 + eslint-config-next: 40 + specifier: ^14.2.26 41 + version: 14.2.26(eslint@8.57.1)(typescript@5.4.3) 42 + eslint-config-prettier: 43 + specifier: ^9.1.0 44 + version: 9.1.0(eslint@8.57.1) 45 + eslint-plugin-prettier: 46 + specifier: ^5.2.6 47 + version: 5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.3) 48 + prettier: 49 + specifier: ^3.5.3 50 + version: 3.5.3 51 + typescript: 52 + specifier: 5.4.3 53 + version: 5.4.3 54 + 55 + packages: 56 + 57 + '@alloc/quick-lru@5.2.0': 58 + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 59 + engines: {node: '>=10'} 60 + 61 + '@emnapi/core@1.4.0': 62 + resolution: {integrity: sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==} 63 + 64 + '@emnapi/runtime@1.4.0': 65 + resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} 66 + 67 + '@emnapi/wasi-threads@1.0.1': 68 + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} 69 + 70 + '@eslint-community/eslint-utils@4.5.1': 71 + resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} 72 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 73 + peerDependencies: 74 + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 75 + 76 + '@eslint-community/regexpp@4.12.1': 77 + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 78 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 79 + 80 + '@eslint/eslintrc@2.1.4': 81 + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 82 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 83 + 84 + '@eslint/js@8.57.1': 85 + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} 86 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 87 + 88 + '@headlessui/react@1.7.19': 89 + resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==} 90 + engines: {node: '>=10'} 91 + peerDependencies: 92 + react: ^16 || ^17 || ^18 93 + react-dom: ^16 || ^17 || ^18 94 + 95 + '@humanwhocodes/config-array@0.13.0': 96 + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} 97 + engines: {node: '>=10.10.0'} 98 + deprecated: Use @eslint/config-array instead 99 + 100 + '@humanwhocodes/module-importer@1.0.1': 101 + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 102 + engines: {node: '>=12.22'} 103 + 104 + '@humanwhocodes/object-schema@2.0.3': 105 + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 106 + deprecated: Use @eslint/object-schema instead 107 + 108 + '@iconify-icon/react@2.3.0': 109 + resolution: {integrity: sha512-7at8wGF+igiCS2XMaIrkZokD0zxz0pNa5SZn5tJAkZMJezeJlYiFXI5rYkiEpUpMaNYhYTqGLB90I/0sKJZkUw==} 110 + peerDependencies: 111 + react: '>=16' 112 + 113 + '@iconify/types@2.0.0': 114 + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} 115 + 116 + '@isaacs/cliui@8.0.2': 117 + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 118 + engines: {node: '>=12'} 119 + 120 + '@jridgewell/gen-mapping@0.3.8': 121 + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 122 + engines: {node: '>=6.0.0'} 123 + 124 + '@jridgewell/resolve-uri@3.1.2': 125 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 126 + engines: {node: '>=6.0.0'} 127 + 128 + '@jridgewell/set-array@1.2.1': 129 + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 130 + engines: {node: '>=6.0.0'} 131 + 132 + '@jridgewell/source-map@0.3.6': 133 + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} 134 + 135 + '@jridgewell/sourcemap-codec@1.5.0': 136 + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 137 + 138 + '@jridgewell/trace-mapping@0.3.25': 139 + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 140 + 141 + '@mdx-js/loader@3.1.0': 142 + resolution: {integrity: sha512-xU/lwKdOyfXtQGqn3VnJjlDrmKXEvMi1mgYxVmukEUtVycIz1nh7oQ40bKTd4cA7rLStqu0740pnhGYxGoqsCg==} 143 + peerDependencies: 144 + webpack: '>=5' 145 + peerDependenciesMeta: 146 + webpack: 147 + optional: true 148 + 149 + '@mdx-js/mdx@3.1.0': 150 + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} 151 + 152 + '@mdx-js/react@3.1.0': 153 + resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} 154 + peerDependencies: 155 + '@types/react': '>=16' 156 + react: '>=16' 157 + 158 + '@napi-rs/wasm-runtime@0.2.8': 159 + resolution: {integrity: sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==} 160 + 161 + '@neato/guider@1.1.0': 162 + resolution: {integrity: sha512-FZW3yagav5n8qbCVg7m7zdwZZ5rZE6gCvj9tGDe4UJQ9j9NeoFXsLdRvf17qbjTCllMw1oS9usXIXPxHGK6Iwg==} 163 + engines: {node: '>=20'} 164 + peerDependencies: 165 + next: '>=14.1.0' 166 + react: ^18.2.0 167 + react-dom: ^18.2.0 168 + 169 + '@next/env@14.2.26': 170 + resolution: {integrity: sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA==} 171 + 172 + '@next/eslint-plugin-next@14.2.26': 173 + resolution: {integrity: sha512-SPEj1O5DAVTPaWD9XPupelfT2APNIgcDYD2OzEm328BEmHaglhmYNUvxhzfJYDr12AgAfW4V3UHSV93qaeELJA==} 174 + 175 + '@next/swc-darwin-arm64@14.2.26': 176 + resolution: {integrity: sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==} 177 + engines: {node: '>= 10'} 178 + cpu: [arm64] 179 + os: [darwin] 180 + 181 + '@next/swc-darwin-x64@14.2.26': 182 + resolution: {integrity: sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==} 183 + engines: {node: '>= 10'} 184 + cpu: [x64] 185 + os: [darwin] 186 + 187 + '@next/swc-linux-arm64-gnu@14.2.26': 188 + resolution: {integrity: sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==} 189 + engines: {node: '>= 10'} 190 + cpu: [arm64] 191 + os: [linux] 192 + 193 + '@next/swc-linux-arm64-musl@14.2.26': 194 + resolution: {integrity: sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==} 195 + engines: {node: '>= 10'} 196 + cpu: [arm64] 197 + os: [linux] 198 + 199 + '@next/swc-linux-x64-gnu@14.2.26': 200 + resolution: {integrity: sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==} 201 + engines: {node: '>= 10'} 202 + cpu: [x64] 203 + os: [linux] 204 + 205 + '@next/swc-linux-x64-musl@14.2.26': 206 + resolution: {integrity: sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==} 207 + engines: {node: '>= 10'} 208 + cpu: [x64] 209 + os: [linux] 210 + 211 + '@next/swc-win32-arm64-msvc@14.2.26': 212 + resolution: {integrity: sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==} 213 + engines: {node: '>= 10'} 214 + cpu: [arm64] 215 + os: [win32] 216 + 217 + '@next/swc-win32-ia32-msvc@14.2.26': 218 + resolution: {integrity: sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==} 219 + engines: {node: '>= 10'} 220 + cpu: [ia32] 221 + os: [win32] 222 + 223 + '@next/swc-win32-x64-msvc@14.2.26': 224 + resolution: {integrity: sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==} 225 + engines: {node: '>= 10'} 226 + cpu: [x64] 227 + os: [win32] 228 + 229 + '@nodelib/fs.scandir@2.1.5': 230 + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 231 + engines: {node: '>= 8'} 232 + 233 + '@nodelib/fs.stat@2.0.5': 234 + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 235 + engines: {node: '>= 8'} 236 + 237 + '@nodelib/fs.walk@1.2.8': 238 + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 239 + engines: {node: '>= 8'} 240 + 241 + '@nolyfill/is-core-module@1.0.39': 242 + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} 243 + engines: {node: '>=12.4.0'} 244 + 245 + '@pkgjs/parseargs@0.11.0': 246 + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 247 + engines: {node: '>=14'} 248 + 249 + '@pkgr/core@0.2.1': 250 + resolution: {integrity: sha512-VzgHzGblFmUeBmmrk55zPyrQIArQN4vujc9shWytaPdB3P7qhi0cpaiKIr7tlCmFv2lYUwnLospIqjL9ZSAhhg==} 251 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 252 + 253 + '@rtsao/scc@1.1.0': 254 + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} 255 + 256 + '@rushstack/eslint-patch@1.11.0': 257 + resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} 258 + 259 + '@shikijs/core@1.29.2': 260 + resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} 261 + 262 + '@shikijs/engine-javascript@1.29.2': 263 + resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} 264 + 265 + '@shikijs/engine-oniguruma@1.29.2': 266 + resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} 267 + 268 + '@shikijs/langs@1.29.2': 269 + resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} 270 + 271 + '@shikijs/themes@1.29.2': 272 + resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} 273 + 274 + '@shikijs/transformers@1.29.2': 275 + resolution: {integrity: sha512-NHQuA+gM7zGuxGWP9/Ub4vpbwrYCrho9nQCLcCPfOe3Yc7LOYwmSuhElI688oiqIXk9dlZwDiyAG9vPBTuPJMA==} 276 + 277 + '@shikijs/types@1.29.2': 278 + resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} 279 + 280 + '@shikijs/vscode-textmate@10.0.2': 281 + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 282 + 283 + '@swc/counter@0.1.3': 284 + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 285 + 286 + '@swc/helpers@0.5.5': 287 + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} 288 + 289 + '@tanstack/react-virtual@3.13.6': 290 + resolution: {integrity: sha512-WT7nWs8ximoQ0CDx/ngoFP7HbQF9Q2wQe4nh2NB+u2486eX3nZRE40P9g6ccCVq7ZfTSH5gFOuCoVH5DLNS/aA==} 291 + peerDependencies: 292 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 293 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 294 + 295 + '@tanstack/virtual-core@3.13.6': 296 + resolution: {integrity: sha512-cnQUeWnhNP8tJ4WsGcYiX24Gjkc9ALstLbHcBj1t3E7EimN6n6kHH+DPV4PpDnuw00NApQp+ViojMj1GRdwYQg==} 297 + 298 + '@theguild/remark-npm2yarn@0.3.3': 299 + resolution: {integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==} 300 + 301 + '@tybys/wasm-util@0.9.0': 302 + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} 303 + 304 + '@types/debug@4.1.12': 305 + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} 306 + 307 + '@types/eslint-scope@3.7.7': 308 + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} 309 + 310 + '@types/eslint@9.6.1': 311 + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} 312 + 313 + '@types/estree-jsx@1.0.5': 314 + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} 315 + 316 + '@types/estree@1.0.7': 317 + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} 318 + 319 + '@types/hast@3.0.4': 320 + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 321 + 322 + '@types/json-schema@7.0.15': 323 + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 324 + 325 + '@types/json5@0.0.29': 326 + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 327 + 328 + '@types/mdast@3.0.15': 329 + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} 330 + 331 + '@types/mdast@4.0.4': 332 + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 333 + 334 + '@types/mdx@2.0.13': 335 + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} 336 + 337 + '@types/ms@2.1.0': 338 + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} 339 + 340 + '@types/node@22.14.0': 341 + resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} 342 + 343 + '@types/prop-types@15.7.14': 344 + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} 345 + 346 + '@types/react@18.2.73': 347 + resolution: {integrity: sha512-XcGdod0Jjv84HOC7N5ziY3x+qL0AfmubvKOZ9hJjJ2yd5EE+KYjWhdOjt387e9HPheHkdggF9atTifMRtyAaRA==} 348 + 349 + '@types/unist@2.0.11': 350 + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} 351 + 352 + '@types/unist@3.0.3': 353 + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 354 + 355 + '@typescript-eslint/eslint-plugin@8.29.0': 356 + resolution: {integrity: sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==} 357 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 358 + peerDependencies: 359 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 360 + eslint: ^8.57.0 || ^9.0.0 361 + typescript: '>=4.8.4 <5.9.0' 362 + 363 + '@typescript-eslint/parser@8.29.0': 364 + resolution: {integrity: sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==} 365 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 366 + peerDependencies: 367 + eslint: ^8.57.0 || ^9.0.0 368 + typescript: '>=4.8.4 <5.9.0' 369 + 370 + '@typescript-eslint/scope-manager@8.29.0': 371 + resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} 372 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 373 + 374 + '@typescript-eslint/type-utils@8.29.0': 375 + resolution: {integrity: sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==} 376 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 377 + peerDependencies: 378 + eslint: ^8.57.0 || ^9.0.0 379 + typescript: '>=4.8.4 <5.9.0' 380 + 381 + '@typescript-eslint/types@8.29.0': 382 + resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} 383 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 384 + 385 + '@typescript-eslint/typescript-estree@8.29.0': 386 + resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==} 387 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 388 + peerDependencies: 389 + typescript: '>=4.8.4 <5.9.0' 390 + 391 + '@typescript-eslint/utils@8.29.0': 392 + resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==} 393 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 394 + peerDependencies: 395 + eslint: ^8.57.0 || ^9.0.0 396 + typescript: '>=4.8.4 <5.9.0' 397 + 398 + '@typescript-eslint/visitor-keys@8.29.0': 399 + resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} 400 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 401 + 402 + '@ungap/structured-clone@1.3.0': 403 + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 404 + 405 + '@unrs/resolver-binding-darwin-arm64@1.4.1': 406 + resolution: {integrity: sha512-8Tv+Bsd0BjGwfEedIyor4inw8atppRxM5BdUnIt+3mAm/QXUm7Dw74CHnXpfZKXkp07EXJGiA8hStqCINAWhdw==} 407 + cpu: [arm64] 408 + os: [darwin] 409 + 410 + '@unrs/resolver-binding-darwin-x64@1.4.1': 411 + resolution: {integrity: sha512-X8c3PhWziEMKAzZz+YAYWfwawi5AEgzy/hmfizAB4C70gMHLKmInJcp1270yYAOs7z07YVFI220pp50z24Jk3A==} 412 + cpu: [x64] 413 + os: [darwin] 414 + 415 + '@unrs/resolver-binding-freebsd-x64@1.4.1': 416 + resolution: {integrity: sha512-UUr/nREy1UdtxXQnmLaaTXFGOcGxPwNIzeJdb3KXai3TKtC1UgNOB9s8KOA4TaxOUBR/qVgL5BvBwmUjD5yuVA==} 417 + cpu: [x64] 418 + os: [freebsd] 419 + 420 + '@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1': 421 + resolution: {integrity: sha512-e3pII53dEeS8inkX6A1ad2UXE0nuoWCqik4kOxaDnls0uJUq0ntdj5d9IYd+bv5TDwf9DSge/xPOvCmRYH+Tsw==} 422 + cpu: [arm] 423 + os: [linux] 424 + 425 + '@unrs/resolver-binding-linux-arm-musleabihf@1.4.1': 426 + resolution: {integrity: sha512-e/AKKd9gR+HNmVyDEPI/PIz2t0DrA3cyonHNhHVjrkxe8pMCiYiqhtn1+h+yIpHUtUlM6Y1FNIdivFa+r7wrEQ==} 427 + cpu: [arm] 428 + os: [linux] 429 + 430 + '@unrs/resolver-binding-linux-arm64-gnu@1.4.1': 431 + resolution: {integrity: sha512-vtIu34luF1jRktlHtiwm2mjuE8oJCsFiFr8hT5+tFQdqFKjPhbJXn83LswKsOhy0GxAEevpXDI4xxEwkjuXIPA==} 432 + cpu: [arm64] 433 + os: [linux] 434 + 435 + '@unrs/resolver-binding-linux-arm64-musl@1.4.1': 436 + resolution: {integrity: sha512-H3PaOuGyhFXiyJd+09uPhGl4gocmhyi1BRzvsP8Lv5AQO3p3/ZY7WjV4t2NkBksm9tMjf3YbOVHyPWi2eWsNYw==} 437 + cpu: [arm64] 438 + os: [linux] 439 + 440 + '@unrs/resolver-binding-linux-ppc64-gnu@1.4.1': 441 + resolution: {integrity: sha512-4+GmJcaaFntCi1S01YByqp8wLMjV/FyQyHVGm0vedIhL1Vfx7uHkz/sZmKsidRwokBGuxi92GFmSzqT2O8KcNA==} 442 + cpu: [ppc64] 443 + os: [linux] 444 + 445 + '@unrs/resolver-binding-linux-s390x-gnu@1.4.1': 446 + resolution: {integrity: sha512-6RDQVCmtFYTlhy89D5ixTqo9bTQqFhvNN0Ey1wJs5r+01Dq15gPHRXv2jF2bQATtMrOfYwv+R2ZR9ew1N1N3YQ==} 447 + cpu: [s390x] 448 + os: [linux] 449 + 450 + '@unrs/resolver-binding-linux-x64-gnu@1.4.1': 451 + resolution: {integrity: sha512-XpU9uzIkD86+19NjCXxlVPISMUrVXsXo5htxtuG+uJ59p5JauSRZsIxQxzzfKzkxEjdvANPM/lS1HFoX6A6QeA==} 452 + cpu: [x64] 453 + os: [linux] 454 + 455 + '@unrs/resolver-binding-linux-x64-musl@1.4.1': 456 + resolution: {integrity: sha512-3CDjG/spbTKCSHl66QP2ekHSD+H34i7utuDIM5gzoNBcZ1gTO0Op09Wx5cikXnhORRf9+HyDWzm37vU1PLSM1A==} 457 + cpu: [x64] 458 + os: [linux] 459 + 460 + '@unrs/resolver-binding-wasm32-wasi@1.4.1': 461 + resolution: {integrity: sha512-50tYhvbCTnuzMn7vmP8IV2UKF7ITo1oihygEYq9wW2DUb/Y+QMqBHJUSCABRngATjZ4shOK6f2+s0gQX6ElENQ==} 462 + engines: {node: '>=14.0.0'} 463 + cpu: [wasm32] 464 + 465 + '@unrs/resolver-binding-win32-arm64-msvc@1.4.1': 466 + resolution: {integrity: sha512-KyJiIne/AqV4IW0wyQO34wSMuJwy3VxVQOfIXIPyQ/Up6y/zi2P/WwXb78gHsLiGRUqCA9LOoCX+6dQZde0g1g==} 467 + cpu: [arm64] 468 + os: [win32] 469 + 470 + '@unrs/resolver-binding-win32-ia32-msvc@1.4.1': 471 + resolution: {integrity: sha512-y2NUD7pygrBolN2NoXUrwVqBpKPhF8DiSNE5oB5/iFO49r2DpoYqdj5HPb3F42fPBH5qNqj6Zg63+xCEzAD2hw==} 472 + cpu: [ia32] 473 + os: [win32] 474 + 475 + '@unrs/resolver-binding-win32-x64-msvc@1.4.1': 476 + resolution: {integrity: sha512-hVXaObGI2lGFmrtT77KSbPQ3I+zk9IU500wobjk0+oX59vg/0VqAzABNtt3YSQYgXTC2a/LYxekLfND/wlt0yQ==} 477 + cpu: [x64] 478 + os: [win32] 479 + 480 + '@vcarl/remark-headings@0.1.0': 481 + resolution: {integrity: sha512-ffQxJUcapJ9Bk+fiGN49YJ9RaYMibrSTSezB1Fcrtu+0YSZxA3bsaLlIv1u/4sjPIeW/BKrs4xtMT3l3P9Ba5Q==} 482 + 483 + '@webassemblyjs/ast@1.14.1': 484 + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} 485 + 486 + '@webassemblyjs/floating-point-hex-parser@1.13.2': 487 + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} 488 + 489 + '@webassemblyjs/helper-api-error@1.13.2': 490 + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} 491 + 492 + '@webassemblyjs/helper-buffer@1.14.1': 493 + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} 494 + 495 + '@webassemblyjs/helper-numbers@1.13.2': 496 + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} 497 + 498 + '@webassemblyjs/helper-wasm-bytecode@1.13.2': 499 + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} 500 + 501 + '@webassemblyjs/helper-wasm-section@1.14.1': 502 + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} 503 + 504 + '@webassemblyjs/ieee754@1.13.2': 505 + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} 506 + 507 + '@webassemblyjs/leb128@1.13.2': 508 + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} 509 + 510 + '@webassemblyjs/utf8@1.13.2': 511 + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} 512 + 513 + '@webassemblyjs/wasm-edit@1.14.1': 514 + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} 515 + 516 + '@webassemblyjs/wasm-gen@1.14.1': 517 + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} 518 + 519 + '@webassemblyjs/wasm-opt@1.14.1': 520 + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} 521 + 522 + '@webassemblyjs/wasm-parser@1.14.1': 523 + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} 524 + 525 + '@webassemblyjs/wast-printer@1.14.1': 526 + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} 527 + 528 + '@xtuc/ieee754@1.2.0': 529 + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} 530 + 531 + '@xtuc/long@4.2.2': 532 + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} 533 + 534 + acorn-jsx@5.3.2: 535 + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 536 + peerDependencies: 537 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 538 + 539 + acorn@8.14.1: 540 + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} 541 + engines: {node: '>=0.4.0'} 542 + hasBin: true 543 + 544 + ajv-formats@2.1.1: 545 + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 546 + peerDependencies: 547 + ajv: ^8.0.0 548 + peerDependenciesMeta: 549 + ajv: 550 + optional: true 551 + 552 + ajv-keywords@3.5.2: 553 + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} 554 + peerDependencies: 555 + ajv: ^6.9.1 556 + 557 + ajv-keywords@5.1.0: 558 + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} 559 + peerDependencies: 560 + ajv: ^8.8.2 561 + 562 + ajv@6.12.6: 563 + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 564 + 565 + ajv@8.17.1: 566 + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} 567 + 568 + ansi-regex@5.0.1: 569 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 570 + engines: {node: '>=8'} 571 + 572 + ansi-regex@6.1.0: 573 + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 574 + engines: {node: '>=12'} 575 + 576 + ansi-styles@4.3.0: 577 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 578 + engines: {node: '>=8'} 579 + 580 + ansi-styles@6.2.1: 581 + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 582 + engines: {node: '>=12'} 583 + 584 + any-promise@1.3.0: 585 + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 586 + 587 + anymatch@3.1.3: 588 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 589 + engines: {node: '>= 8'} 590 + 591 + approximate-number@2.1.1: 592 + resolution: {integrity: sha512-JAP0WOktu68l1TQoBq9SvwSPOJBLVnlEOchHcPg/brZKiswxGtTbZcd5vXQLjIb1xxD3Q+AOtwNyBU4zt4RP2A==} 593 + 594 + arg@5.0.2: 595 + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 596 + 597 + argparse@1.0.10: 598 + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 599 + 600 + argparse@2.0.1: 601 + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 602 + 603 + aria-query@5.3.2: 604 + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 605 + engines: {node: '>= 0.4'} 606 + 607 + array-buffer-byte-length@1.0.2: 608 + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 609 + engines: {node: '>= 0.4'} 610 + 611 + array-includes@3.1.8: 612 + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 613 + engines: {node: '>= 0.4'} 614 + 615 + array.prototype.findlast@1.2.5: 616 + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 617 + engines: {node: '>= 0.4'} 618 + 619 + array.prototype.findlastindex@1.2.6: 620 + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} 621 + engines: {node: '>= 0.4'} 622 + 623 + array.prototype.flat@1.3.3: 624 + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 625 + engines: {node: '>= 0.4'} 626 + 627 + array.prototype.flatmap@1.3.3: 628 + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} 629 + engines: {node: '>= 0.4'} 630 + 631 + array.prototype.tosorted@1.1.4: 632 + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 633 + engines: {node: '>= 0.4'} 634 + 635 + arraybuffer.prototype.slice@1.0.4: 636 + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 637 + engines: {node: '>= 0.4'} 638 + 639 + ast-types-flow@0.0.8: 640 + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 641 + 642 + astring@1.9.0: 643 + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 644 + hasBin: true 645 + 646 + async-function@1.0.0: 647 + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 648 + engines: {node: '>= 0.4'} 649 + 650 + available-typed-arrays@1.0.7: 651 + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 652 + engines: {node: '>= 0.4'} 653 + 654 + axe-core@4.10.3: 655 + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} 656 + engines: {node: '>=4'} 657 + 658 + axobject-query@4.1.0: 659 + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 660 + engines: {node: '>= 0.4'} 661 + 662 + bail@2.0.2: 663 + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 664 + 665 + balanced-match@1.0.2: 666 + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 667 + 668 + binary-extensions@2.3.0: 669 + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 670 + engines: {node: '>=8'} 671 + 672 + brace-expansion@1.1.11: 673 + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 674 + 675 + brace-expansion@2.0.1: 676 + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 677 + 678 + braces@3.0.3: 679 + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 680 + engines: {node: '>=8'} 681 + 682 + browserslist@4.24.4: 683 + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} 684 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 685 + hasBin: true 686 + 687 + buffer-from@1.1.2: 688 + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 689 + 690 + busboy@1.6.0: 691 + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 692 + engines: {node: '>=10.16.0'} 693 + 694 + call-bind-apply-helpers@1.0.2: 695 + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 696 + engines: {node: '>= 0.4'} 697 + 698 + call-bind@1.0.8: 699 + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 700 + engines: {node: '>= 0.4'} 701 + 702 + call-bound@1.0.4: 703 + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 704 + engines: {node: '>= 0.4'} 705 + 706 + callsites@3.1.0: 707 + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 708 + engines: {node: '>=6'} 709 + 710 + camelcase-css@2.0.1: 711 + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 712 + engines: {node: '>= 6'} 713 + 714 + caniuse-lite@1.0.30001712: 715 + resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} 716 + 717 + ccount@2.0.1: 718 + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 719 + 720 + chalk@4.1.2: 721 + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 722 + engines: {node: '>=10'} 723 + 724 + character-entities-html4@2.1.0: 725 + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 726 + 727 + character-entities-legacy@3.0.0: 728 + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 729 + 730 + character-entities@2.0.2: 731 + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 732 + 733 + character-reference-invalid@2.0.1: 734 + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} 735 + 736 + chokidar@3.6.0: 737 + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 738 + engines: {node: '>= 8.10.0'} 739 + 740 + chrome-trace-event@1.0.4: 741 + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} 742 + engines: {node: '>=6.0'} 743 + 744 + classnames@2.5.1: 745 + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} 746 + 747 + client-only@0.0.1: 748 + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 749 + 750 + collapse-white-space@2.1.0: 751 + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} 752 + 753 + color-convert@2.0.1: 754 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 755 + engines: {node: '>=7.0.0'} 756 + 757 + color-name@1.1.4: 758 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 759 + 760 + color-string@1.9.1: 761 + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 762 + 763 + color@4.2.3: 764 + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 765 + engines: {node: '>=12.5.0'} 766 + 767 + comma-separated-tokens@2.0.3: 768 + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 769 + 770 + commander@2.20.3: 771 + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 772 + 773 + commander@4.1.1: 774 + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 775 + engines: {node: '>= 6'} 776 + 777 + concat-map@0.0.1: 778 + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 779 + 780 + cross-spawn@7.0.6: 781 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 782 + engines: {node: '>= 8'} 783 + 784 + cssesc@3.0.0: 785 + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 786 + engines: {node: '>=4'} 787 + hasBin: true 788 + 789 + csstype@3.1.3: 790 + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 791 + 792 + damerau-levenshtein@1.0.8: 793 + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 794 + 795 + data-view-buffer@1.0.2: 796 + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 797 + engines: {node: '>= 0.4'} 798 + 799 + data-view-byte-length@1.0.2: 800 + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 801 + engines: {node: '>= 0.4'} 802 + 803 + data-view-byte-offset@1.0.1: 804 + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 805 + engines: {node: '>= 0.4'} 806 + 807 + debug@3.2.7: 808 + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 809 + peerDependencies: 810 + supports-color: '*' 811 + peerDependenciesMeta: 812 + supports-color: 813 + optional: true 814 + 815 + debug@4.4.0: 816 + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 817 + engines: {node: '>=6.0'} 818 + peerDependencies: 819 + supports-color: '*' 820 + peerDependenciesMeta: 821 + supports-color: 822 + optional: true 823 + 824 + decode-named-character-reference@1.1.0: 825 + resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} 826 + 827 + deep-is@0.1.4: 828 + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 829 + 830 + define-data-property@1.1.4: 831 + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 832 + engines: {node: '>= 0.4'} 833 + 834 + define-properties@1.2.1: 835 + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 836 + engines: {node: '>= 0.4'} 837 + 838 + dequal@2.0.3: 839 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 840 + engines: {node: '>=6'} 841 + 842 + devlop@1.1.0: 843 + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 844 + 845 + didyoumean@1.2.2: 846 + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 847 + 848 + dlv@1.1.3: 849 + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 850 + 851 + doctrine@2.1.0: 852 + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 853 + engines: {node: '>=0.10.0'} 854 + 855 + doctrine@3.0.0: 856 + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 857 + engines: {node: '>=6.0.0'} 858 + 859 + dunder-proto@1.0.1: 860 + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 861 + engines: {node: '>= 0.4'} 862 + 863 + eastasianwidth@0.2.0: 864 + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 865 + 866 + electron-to-chromium@1.5.132: 867 + resolution: {integrity: sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==} 868 + 869 + emoji-regex-xs@1.0.0: 870 + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} 871 + 872 + emoji-regex@8.0.0: 873 + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 874 + 875 + emoji-regex@9.2.2: 876 + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 877 + 878 + enhanced-resolve@5.18.1: 879 + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} 880 + engines: {node: '>=10.13.0'} 881 + 882 + entities@4.5.0: 883 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 884 + engines: {node: '>=0.12'} 885 + 886 + es-abstract@1.23.9: 887 + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} 888 + engines: {node: '>= 0.4'} 889 + 890 + es-define-property@1.0.1: 891 + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 892 + engines: {node: '>= 0.4'} 893 + 894 + es-errors@1.3.0: 895 + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 896 + engines: {node: '>= 0.4'} 897 + 898 + es-iterator-helpers@1.2.1: 899 + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} 900 + engines: {node: '>= 0.4'} 901 + 902 + es-module-lexer@1.6.0: 903 + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} 904 + 905 + es-object-atoms@1.1.1: 906 + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 907 + engines: {node: '>= 0.4'} 908 + 909 + es-set-tostringtag@2.1.0: 910 + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 911 + engines: {node: '>= 0.4'} 912 + 913 + es-shim-unscopables@1.1.0: 914 + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} 915 + engines: {node: '>= 0.4'} 916 + 917 + es-to-primitive@1.3.0: 918 + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 919 + engines: {node: '>= 0.4'} 920 + 921 + esast-util-from-estree@2.0.0: 922 + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} 923 + 924 + esast-util-from-js@2.0.1: 925 + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} 926 + 927 + escalade@3.2.0: 928 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 929 + engines: {node: '>=6'} 930 + 931 + escape-string-regexp@4.0.0: 932 + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 933 + engines: {node: '>=10'} 934 + 935 + escape-string-regexp@5.0.0: 936 + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 937 + engines: {node: '>=12'} 938 + 939 + eslint-config-next@14.2.26: 940 + resolution: {integrity: sha512-KZNh1xvWG1ZDFD2f2WkvvnMpp7Sjsl6xJXCsvfEe8GH1FLXn6GtXo7lY9S8xDcn6oBWmKA0hSrlrp1DNQ9QDnQ==} 941 + peerDependencies: 942 + eslint: ^7.23.0 || ^8.0.0 943 + typescript: '>=3.3.1' 944 + peerDependenciesMeta: 945 + typescript: 946 + optional: true 947 + 948 + eslint-config-prettier@9.1.0: 949 + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} 950 + hasBin: true 951 + peerDependencies: 952 + eslint: '>=7.0.0' 953 + 954 + eslint-import-resolver-node@0.3.9: 955 + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 956 + 957 + eslint-import-resolver-typescript@3.10.0: 958 + resolution: {integrity: sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==} 959 + engines: {node: ^14.18.0 || >=16.0.0} 960 + peerDependencies: 961 + eslint: '*' 962 + eslint-plugin-import: '*' 963 + eslint-plugin-import-x: '*' 964 + peerDependenciesMeta: 965 + eslint-plugin-import: 966 + optional: true 967 + eslint-plugin-import-x: 968 + optional: true 969 + 970 + eslint-module-utils@2.12.0: 971 + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} 972 + engines: {node: '>=4'} 973 + peerDependencies: 974 + '@typescript-eslint/parser': '*' 975 + eslint: '*' 976 + eslint-import-resolver-node: '*' 977 + eslint-import-resolver-typescript: '*' 978 + eslint-import-resolver-webpack: '*' 979 + peerDependenciesMeta: 980 + '@typescript-eslint/parser': 981 + optional: true 982 + eslint: 983 + optional: true 984 + eslint-import-resolver-node: 985 + optional: true 986 + eslint-import-resolver-typescript: 987 + optional: true 988 + eslint-import-resolver-webpack: 989 + optional: true 990 + 991 + eslint-plugin-import@2.31.0: 992 + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} 993 + engines: {node: '>=4'} 994 + peerDependencies: 995 + '@typescript-eslint/parser': '*' 996 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 997 + peerDependenciesMeta: 998 + '@typescript-eslint/parser': 999 + optional: true 1000 + 1001 + eslint-plugin-jsx-a11y@6.10.2: 1002 + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} 1003 + engines: {node: '>=4.0'} 1004 + peerDependencies: 1005 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 1006 + 1007 + eslint-plugin-prettier@5.2.6: 1008 + resolution: {integrity: sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==} 1009 + engines: {node: ^14.18.0 || >=16.0.0} 1010 + peerDependencies: 1011 + '@types/eslint': '>=8.0.0' 1012 + eslint: '>=8.0.0' 1013 + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' 1014 + prettier: '>=3.0.0' 1015 + peerDependenciesMeta: 1016 + '@types/eslint': 1017 + optional: true 1018 + eslint-config-prettier: 1019 + optional: true 1020 + 1021 + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: 1022 + resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} 1023 + engines: {node: '>=10'} 1024 + peerDependencies: 1025 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1026 + 1027 + eslint-plugin-react@7.37.5: 1028 + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} 1029 + engines: {node: '>=4'} 1030 + peerDependencies: 1031 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 1032 + 1033 + eslint-scope@5.1.1: 1034 + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1035 + engines: {node: '>=8.0.0'} 1036 + 1037 + eslint-scope@7.2.2: 1038 + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1039 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1040 + 1041 + eslint-visitor-keys@3.4.3: 1042 + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1043 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1044 + 1045 + eslint-visitor-keys@4.2.0: 1046 + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 1047 + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1048 + 1049 + eslint@8.57.1: 1050 + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} 1051 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1052 + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. 1053 + hasBin: true 1054 + 1055 + espree@9.6.1: 1056 + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1057 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1058 + 1059 + esprima@4.0.1: 1060 + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1061 + engines: {node: '>=4'} 1062 + hasBin: true 1063 + 1064 + esquery@1.6.0: 1065 + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 1066 + engines: {node: '>=0.10'} 1067 + 1068 + esrecurse@4.3.0: 1069 + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1070 + engines: {node: '>=4.0'} 1071 + 1072 + estraverse@4.3.0: 1073 + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1074 + engines: {node: '>=4.0'} 1075 + 1076 + estraverse@5.3.0: 1077 + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1078 + engines: {node: '>=4.0'} 1079 + 1080 + estree-util-attach-comments@3.0.0: 1081 + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} 1082 + 1083 + estree-util-build-jsx@3.0.1: 1084 + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} 1085 + 1086 + estree-util-is-identifier-name@3.0.0: 1087 + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} 1088 + 1089 + estree-util-scope@1.0.0: 1090 + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} 1091 + 1092 + estree-util-to-js@2.0.0: 1093 + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} 1094 + 1095 + estree-util-visit@2.0.0: 1096 + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} 1097 + 1098 + estree-walker@3.0.3: 1099 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1100 + 1101 + esutils@2.0.3: 1102 + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1103 + engines: {node: '>=0.10.0'} 1104 + 1105 + events@3.3.0: 1106 + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1107 + engines: {node: '>=0.8.x'} 1108 + 1109 + extend-shallow@2.0.1: 1110 + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} 1111 + engines: {node: '>=0.10.0'} 1112 + 1113 + extend@3.0.2: 1114 + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1115 + 1116 + extra-watch-webpack-plugin@1.0.3: 1117 + resolution: {integrity: sha512-ZScQdMH6hNofRRN6QMQFg+aa5vqimfBgnPXmRDhdaLpttT6hrzpY9Oyren3Gh/FySPrgsvKCNbx/NFA7XNdIsg==} 1118 + 1119 + fast-deep-equal@3.1.3: 1120 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1121 + 1122 + fast-diff@1.3.0: 1123 + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} 1124 + 1125 + fast-glob@3.3.3: 1126 + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 1127 + engines: {node: '>=8.6.0'} 1128 + 1129 + fast-json-stable-stringify@2.1.0: 1130 + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1131 + 1132 + fast-levenshtein@2.0.6: 1133 + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1134 + 1135 + fast-uri@3.0.6: 1136 + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} 1137 + 1138 + fastq@1.19.1: 1139 + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 1140 + 1141 + fault@2.0.1: 1142 + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} 1143 + 1144 + fdir@6.4.3: 1145 + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} 1146 + peerDependencies: 1147 + picomatch: ^3 || ^4 1148 + peerDependenciesMeta: 1149 + picomatch: 1150 + optional: true 1151 + 1152 + file-entry-cache@6.0.1: 1153 + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1154 + engines: {node: ^10.12.0 || >=12.0.0} 1155 + 1156 + fill-range@7.1.1: 1157 + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1158 + engines: {node: '>=8'} 1159 + 1160 + find-up@5.0.0: 1161 + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1162 + engines: {node: '>=10'} 1163 + 1164 + flat-cache@3.2.0: 1165 + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1166 + engines: {node: ^10.12.0 || >=12.0.0} 1167 + 1168 + flatted@3.3.3: 1169 + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1170 + 1171 + flexsearch@0.7.43: 1172 + resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} 1173 + 1174 + for-each@0.3.5: 1175 + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} 1176 + engines: {node: '>= 0.4'} 1177 + 1178 + foreground-child@3.3.1: 1179 + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 1180 + engines: {node: '>=14'} 1181 + 1182 + format@0.2.2: 1183 + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} 1184 + engines: {node: '>=0.4.x'} 1185 + 1186 + fs.realpath@1.0.0: 1187 + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1188 + 1189 + fsevents@2.3.3: 1190 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1191 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1192 + os: [darwin] 1193 + 1194 + function-bind@1.1.2: 1195 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1196 + 1197 + function.prototype.name@1.1.8: 1198 + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 1199 + engines: {node: '>= 0.4'} 1200 + 1201 + functions-have-names@1.2.3: 1202 + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1203 + 1204 + get-intrinsic@1.3.0: 1205 + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 1206 + engines: {node: '>= 0.4'} 1207 + 1208 + get-proto@1.0.1: 1209 + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1210 + engines: {node: '>= 0.4'} 1211 + 1212 + get-symbol-description@1.1.0: 1213 + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 1214 + engines: {node: '>= 0.4'} 1215 + 1216 + get-tsconfig@4.10.0: 1217 + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} 1218 + 1219 + git-up@7.0.0: 1220 + resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} 1221 + 1222 + git-url-parse@14.1.0: 1223 + resolution: {integrity: sha512-8xg65dTxGHST3+zGpycMMFZcoTzAdZ2dOtu4vmgIfkTFnVHBxHMzBC2L1k8To7EmrSiHesT8JgPLT91VKw1B5g==} 1224 + 1225 + glob-parent@5.1.2: 1226 + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1227 + engines: {node: '>= 6'} 1228 + 1229 + glob-parent@6.0.2: 1230 + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1231 + engines: {node: '>=10.13.0'} 1232 + 1233 + glob-to-regexp@0.4.1: 1234 + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1235 + 1236 + glob@10.3.10: 1237 + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 1238 + engines: {node: '>=16 || 14 >=14.17'} 1239 + hasBin: true 1240 + 1241 + glob@10.4.5: 1242 + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1243 + hasBin: true 1244 + 1245 + glob@7.2.3: 1246 + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1247 + deprecated: Glob versions prior to v9 are no longer supported 1248 + 1249 + globals@13.24.0: 1250 + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1251 + engines: {node: '>=8'} 1252 + 1253 + globalthis@1.0.4: 1254 + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 1255 + engines: {node: '>= 0.4'} 1256 + 1257 + gopd@1.2.0: 1258 + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1259 + engines: {node: '>= 0.4'} 1260 + 1261 + graceful-fs@4.2.11: 1262 + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1263 + 1264 + graphemer@1.4.0: 1265 + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1266 + 1267 + gray-matter@4.0.3: 1268 + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} 1269 + engines: {node: '>=6.0'} 1270 + 1271 + has-bigints@1.1.0: 1272 + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 1273 + engines: {node: '>= 0.4'} 1274 + 1275 + has-flag@4.0.0: 1276 + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1277 + engines: {node: '>=8'} 1278 + 1279 + has-property-descriptors@1.0.2: 1280 + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1281 + 1282 + has-proto@1.2.0: 1283 + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 1284 + engines: {node: '>= 0.4'} 1285 + 1286 + has-symbols@1.1.0: 1287 + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1288 + engines: {node: '>= 0.4'} 1289 + 1290 + has-tostringtag@1.0.2: 1291 + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1292 + engines: {node: '>= 0.4'} 1293 + 1294 + hasown@2.0.2: 1295 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1296 + engines: {node: '>= 0.4'} 1297 + 1298 + hast-util-from-html@2.0.3: 1299 + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} 1300 + 1301 + hast-util-from-parse5@8.0.3: 1302 + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} 1303 + 1304 + hast-util-parse-selector@4.0.0: 1305 + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} 1306 + 1307 + hast-util-to-estree@3.1.3: 1308 + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} 1309 + 1310 + hast-util-to-html@9.0.5: 1311 + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} 1312 + 1313 + hast-util-to-jsx-runtime@2.3.6: 1314 + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} 1315 + 1316 + hast-util-to-string@3.0.1: 1317 + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} 1318 + 1319 + hast-util-whitespace@3.0.0: 1320 + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 1321 + 1322 + hastscript@9.0.1: 1323 + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} 1324 + 1325 + html-void-elements@3.0.0: 1326 + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 1327 + 1328 + iconify-icon@2.3.0: 1329 + resolution: {integrity: sha512-C0beI9oTDxQz6voI5CKl7MiJf0Lw4UU8K4G4t6pcUDClLmCvuMOpcvd8MAztQ2SfoH0iv7WHdxBFjekKPFKH2Q==} 1330 + 1331 + ignore@5.3.2: 1332 + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1333 + engines: {node: '>= 4'} 1334 + 1335 + import-fresh@3.3.1: 1336 + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 1337 + engines: {node: '>=6'} 1338 + 1339 + imurmurhash@0.1.4: 1340 + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1341 + engines: {node: '>=0.8.19'} 1342 + 1343 + inflight@1.0.6: 1344 + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1345 + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1346 + 1347 + inherits@2.0.4: 1348 + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1349 + 1350 + inline-style-parser@0.2.4: 1351 + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} 1352 + 1353 + internal-slot@1.1.0: 1354 + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 1355 + engines: {node: '>= 0.4'} 1356 + 1357 + invariant@2.2.4: 1358 + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 1359 + 1360 + is-alphabetical@2.0.1: 1361 + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} 1362 + 1363 + is-alphanumerical@2.0.1: 1364 + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} 1365 + 1366 + is-array-buffer@3.0.5: 1367 + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 1368 + engines: {node: '>= 0.4'} 1369 + 1370 + is-arrayish@0.3.2: 1371 + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1372 + 1373 + is-async-function@2.1.1: 1374 + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} 1375 + engines: {node: '>= 0.4'} 1376 + 1377 + is-bigint@1.1.0: 1378 + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 1379 + engines: {node: '>= 0.4'} 1380 + 1381 + is-binary-path@2.1.0: 1382 + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1383 + engines: {node: '>=8'} 1384 + 1385 + is-boolean-object@1.2.2: 1386 + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} 1387 + engines: {node: '>= 0.4'} 1388 + 1389 + is-bun-module@2.0.0: 1390 + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} 1391 + 1392 + is-callable@1.2.7: 1393 + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1394 + engines: {node: '>= 0.4'} 1395 + 1396 + is-core-module@2.16.1: 1397 + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1398 + engines: {node: '>= 0.4'} 1399 + 1400 + is-data-view@1.0.2: 1401 + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 1402 + engines: {node: '>= 0.4'} 1403 + 1404 + is-date-object@1.1.0: 1405 + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 1406 + engines: {node: '>= 0.4'} 1407 + 1408 + is-decimal@2.0.1: 1409 + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} 1410 + 1411 + is-extendable@0.1.1: 1412 + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 1413 + engines: {node: '>=0.10.0'} 1414 + 1415 + is-extglob@2.1.1: 1416 + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1417 + engines: {node: '>=0.10.0'} 1418 + 1419 + is-finalizationregistry@1.1.1: 1420 + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 1421 + engines: {node: '>= 0.4'} 1422 + 1423 + is-fullwidth-code-point@3.0.0: 1424 + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1425 + engines: {node: '>=8'} 1426 + 1427 + is-generator-function@1.1.0: 1428 + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} 1429 + engines: {node: '>= 0.4'} 1430 + 1431 + is-glob@4.0.3: 1432 + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1433 + engines: {node: '>=0.10.0'} 1434 + 1435 + is-hexadecimal@2.0.1: 1436 + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} 1437 + 1438 + is-map@2.0.3: 1439 + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 1440 + engines: {node: '>= 0.4'} 1441 + 1442 + is-number-object@1.1.1: 1443 + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 1444 + engines: {node: '>= 0.4'} 1445 + 1446 + is-number@7.0.0: 1447 + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1448 + engines: {node: '>=0.12.0'} 1449 + 1450 + is-path-inside@3.0.3: 1451 + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1452 + engines: {node: '>=8'} 1453 + 1454 + is-plain-obj@4.1.0: 1455 + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 1456 + engines: {node: '>=12'} 1457 + 1458 + is-regex@1.2.1: 1459 + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 1460 + engines: {node: '>= 0.4'} 1461 + 1462 + is-set@2.0.3: 1463 + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 1464 + engines: {node: '>= 0.4'} 1465 + 1466 + is-shared-array-buffer@1.0.4: 1467 + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 1468 + engines: {node: '>= 0.4'} 1469 + 1470 + is-ssh@1.4.1: 1471 + resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} 1472 + 1473 + is-string@1.1.1: 1474 + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 1475 + engines: {node: '>= 0.4'} 1476 + 1477 + is-symbol@1.1.1: 1478 + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 1479 + engines: {node: '>= 0.4'} 1480 + 1481 + is-typed-array@1.1.15: 1482 + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 1483 + engines: {node: '>= 0.4'} 1484 + 1485 + is-weakmap@2.0.2: 1486 + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1487 + engines: {node: '>= 0.4'} 1488 + 1489 + is-weakref@1.1.1: 1490 + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} 1491 + engines: {node: '>= 0.4'} 1492 + 1493 + is-weakset@2.0.4: 1494 + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 1495 + engines: {node: '>= 0.4'} 1496 + 1497 + isarray@2.0.5: 1498 + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1499 + 1500 + isexe@2.0.0: 1501 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1502 + 1503 + iterator.prototype@1.1.5: 1504 + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} 1505 + engines: {node: '>= 0.4'} 1506 + 1507 + jackspeak@2.3.6: 1508 + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 1509 + engines: {node: '>=14'} 1510 + 1511 + jackspeak@3.4.3: 1512 + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1513 + 1514 + jest-worker@27.5.1: 1515 + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} 1516 + engines: {node: '>= 10.13.0'} 1517 + 1518 + jiti@1.21.7: 1519 + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 1520 + hasBin: true 1521 + 1522 + js-tokens@4.0.0: 1523 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1524 + 1525 + js-yaml@3.14.1: 1526 + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1527 + hasBin: true 1528 + 1529 + js-yaml@4.1.0: 1530 + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1531 + hasBin: true 1532 + 1533 + json-buffer@3.0.1: 1534 + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1535 + 1536 + json-parse-even-better-errors@2.3.1: 1537 + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1538 + 1539 + json-schema-traverse@0.4.1: 1540 + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1541 + 1542 + json-schema-traverse@1.0.0: 1543 + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1544 + 1545 + json-stable-stringify-without-jsonify@1.0.1: 1546 + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1547 + 1548 + json5@1.0.2: 1549 + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1550 + hasBin: true 1551 + 1552 + jsx-ast-utils@3.3.5: 1553 + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1554 + engines: {node: '>=4.0'} 1555 + 1556 + just-unique@4.2.0: 1557 + resolution: {integrity: sha512-cxQGGUiit6CGUpuuiezY8N4m1wgF4o7127rXEXDFcxeDUFfdV7gSkwA26Fe2wWBiNQq2SZOgN4gSmMxB/StA8Q==} 1558 + 1559 + keyv@4.5.4: 1560 + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1561 + 1562 + kind-of@6.0.3: 1563 + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1564 + engines: {node: '>=0.10.0'} 1565 + 1566 + language-subtag-registry@0.3.23: 1567 + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} 1568 + 1569 + language-tags@1.0.9: 1570 + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 1571 + engines: {node: '>=0.10'} 1572 + 1573 + levn@0.4.1: 1574 + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1575 + engines: {node: '>= 0.8.0'} 1576 + 1577 + lilconfig@2.1.0: 1578 + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1579 + engines: {node: '>=10'} 1580 + 1581 + lilconfig@3.1.3: 1582 + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 1583 + engines: {node: '>=14'} 1584 + 1585 + lines-and-columns@1.2.4: 1586 + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1587 + 1588 + loader-runner@4.3.0: 1589 + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} 1590 + engines: {node: '>=6.11.5'} 1591 + 1592 + locate-path@6.0.0: 1593 + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1594 + engines: {node: '>=10'} 1595 + 1596 + lodash.merge@4.6.2: 1597 + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1598 + 1599 + lodash.mergewith@4.6.2: 1600 + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} 1601 + 1602 + lodash.uniq@4.5.0: 1603 + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} 1604 + 1605 + lodash@4.17.21: 1606 + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1607 + 1608 + longest-streak@3.1.0: 1609 + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 1610 + 1611 + loose-envify@1.4.0: 1612 + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1613 + hasBin: true 1614 + 1615 + lru-cache@10.4.3: 1616 + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1617 + 1618 + markdown-extensions@2.0.0: 1619 + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} 1620 + engines: {node: '>=16'} 1621 + 1622 + markdown-table@3.0.4: 1623 + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} 1624 + 1625 + math-intrinsics@1.1.0: 1626 + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1627 + engines: {node: '>= 0.4'} 1628 + 1629 + mdast-util-find-and-replace@3.0.2: 1630 + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} 1631 + 1632 + mdast-util-from-markdown@2.0.2: 1633 + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} 1634 + 1635 + mdast-util-frontmatter@2.0.1: 1636 + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} 1637 + 1638 + mdast-util-gfm-autolink-literal@2.0.1: 1639 + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} 1640 + 1641 + mdast-util-gfm-footnote@2.1.0: 1642 + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} 1643 + 1644 + mdast-util-gfm-strikethrough@2.0.0: 1645 + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} 1646 + 1647 + mdast-util-gfm-table@2.0.0: 1648 + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} 1649 + 1650 + mdast-util-gfm-task-list-item@2.0.0: 1651 + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} 1652 + 1653 + mdast-util-gfm@3.1.0: 1654 + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} 1655 + 1656 + mdast-util-mdx-expression@2.0.1: 1657 + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} 1658 + 1659 + mdast-util-mdx-jsx@3.2.0: 1660 + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} 1661 + 1662 + mdast-util-mdx@3.0.0: 1663 + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} 1664 + 1665 + mdast-util-mdxjs-esm@2.0.1: 1666 + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} 1667 + 1668 + mdast-util-phrasing@4.1.0: 1669 + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} 1670 + 1671 + mdast-util-to-hast@13.2.0: 1672 + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} 1673 + 1674 + mdast-util-to-markdown@2.1.2: 1675 + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} 1676 + 1677 + mdast-util-to-string@3.2.0: 1678 + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} 1679 + 1680 + mdast-util-to-string@4.0.0: 1681 + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1682 + 1683 + merge-stream@2.0.0: 1684 + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1685 + 1686 + merge2@1.4.1: 1687 + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1688 + engines: {node: '>= 8'} 1689 + 1690 + micromark-core-commonmark@2.0.3: 1691 + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} 1692 + 1693 + micromark-extension-frontmatter@2.0.0: 1694 + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} 1695 + 1696 + micromark-extension-gfm-autolink-literal@2.1.0: 1697 + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} 1698 + 1699 + micromark-extension-gfm-footnote@2.1.0: 1700 + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} 1701 + 1702 + micromark-extension-gfm-strikethrough@2.1.0: 1703 + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} 1704 + 1705 + micromark-extension-gfm-table@2.1.1: 1706 + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} 1707 + 1708 + micromark-extension-gfm-tagfilter@2.0.0: 1709 + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} 1710 + 1711 + micromark-extension-gfm-task-list-item@2.1.0: 1712 + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} 1713 + 1714 + micromark-extension-gfm@3.0.0: 1715 + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} 1716 + 1717 + micromark-extension-mdx-expression@3.0.1: 1718 + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} 1719 + 1720 + micromark-extension-mdx-jsx@3.0.2: 1721 + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} 1722 + 1723 + micromark-extension-mdx-md@2.0.0: 1724 + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} 1725 + 1726 + micromark-extension-mdxjs-esm@3.0.0: 1727 + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} 1728 + 1729 + micromark-extension-mdxjs@3.0.0: 1730 + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} 1731 + 1732 + micromark-factory-destination@2.0.1: 1733 + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} 1734 + 1735 + micromark-factory-label@2.0.1: 1736 + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} 1737 + 1738 + micromark-factory-mdx-expression@2.0.3: 1739 + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} 1740 + 1741 + micromark-factory-space@2.0.1: 1742 + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} 1743 + 1744 + micromark-factory-title@2.0.1: 1745 + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} 1746 + 1747 + micromark-factory-whitespace@2.0.1: 1748 + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} 1749 + 1750 + micromark-util-character@2.1.1: 1751 + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 1752 + 1753 + micromark-util-chunked@2.0.1: 1754 + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} 1755 + 1756 + micromark-util-classify-character@2.0.1: 1757 + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} 1758 + 1759 + micromark-util-combine-extensions@2.0.1: 1760 + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} 1761 + 1762 + micromark-util-decode-numeric-character-reference@2.0.2: 1763 + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} 1764 + 1765 + micromark-util-decode-string@2.0.1: 1766 + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} 1767 + 1768 + micromark-util-encode@2.0.1: 1769 + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 1770 + 1771 + micromark-util-events-to-acorn@2.0.3: 1772 + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} 1773 + 1774 + micromark-util-html-tag-name@2.0.1: 1775 + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} 1776 + 1777 + micromark-util-normalize-identifier@2.0.1: 1778 + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} 1779 + 1780 + micromark-util-resolve-all@2.0.1: 1781 + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} 1782 + 1783 + micromark-util-sanitize-uri@2.0.1: 1784 + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 1785 + 1786 + micromark-util-subtokenize@2.1.0: 1787 + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} 1788 + 1789 + micromark-util-symbol@2.0.1: 1790 + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 1791 + 1792 + micromark-util-types@2.0.2: 1793 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 1794 + 1795 + micromark@4.0.2: 1796 + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} 1797 + 1798 + micromatch@4.0.8: 1799 + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1800 + engines: {node: '>=8.6'} 1801 + 1802 + mime-db@1.52.0: 1803 + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1804 + engines: {node: '>= 0.6'} 1805 + 1806 + mime-types@2.1.35: 1807 + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1808 + engines: {node: '>= 0.6'} 1809 + 1810 + minimatch@3.1.2: 1811 + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1812 + 1813 + minimatch@9.0.5: 1814 + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1815 + engines: {node: '>=16 || 14 >=14.17'} 1816 + 1817 + minimist@1.2.8: 1818 + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1819 + 1820 + minipass@7.1.2: 1821 + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1822 + engines: {node: '>=16 || 14 >=14.17'} 1823 + 1824 + ms@2.1.3: 1825 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1826 + 1827 + mz@2.7.0: 1828 + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1829 + 1830 + nanoid@3.3.11: 1831 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1832 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1833 + hasBin: true 1834 + 1835 + natural-compare@1.4.0: 1836 + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1837 + 1838 + neo-async@2.6.2: 1839 + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 1840 + 1841 + next-seo@6.6.0: 1842 + resolution: {integrity: sha512-0VSted/W6XNtgAtH3D+BZrMLLudqfm0D5DYNJRXHcDgan/1ZF1tDFIsWrmvQlYngALyphPfZ3ZdOqlKpKdvG6w==} 1843 + peerDependencies: 1844 + next: ^8.1.1-canary.54 || >=9.0.0 1845 + react: '>=16.0.0' 1846 + react-dom: '>=16.0.0' 1847 + 1848 + next@14.2.26: 1849 + resolution: {integrity: sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==} 1850 + engines: {node: '>=18.17.0'} 1851 + hasBin: true 1852 + peerDependencies: 1853 + '@opentelemetry/api': ^1.1.0 1854 + '@playwright/test': ^1.41.2 1855 + react: ^18.2.0 1856 + react-dom: ^18.2.0 1857 + sass: ^1.3.0 1858 + peerDependenciesMeta: 1859 + '@opentelemetry/api': 1860 + optional: true 1861 + '@playwright/test': 1862 + optional: true 1863 + sass: 1864 + optional: true 1865 + 1866 + node-releases@2.0.19: 1867 + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1868 + 1869 + normalize-path@3.0.0: 1870 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1871 + engines: {node: '>=0.10.0'} 1872 + 1873 + npm-to-yarn@3.0.1: 1874 + resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} 1875 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1876 + 1877 + object-assign@4.1.1: 1878 + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1879 + engines: {node: '>=0.10.0'} 1880 + 1881 + object-hash@3.0.0: 1882 + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1883 + engines: {node: '>= 6'} 1884 + 1885 + object-inspect@1.13.4: 1886 + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 1887 + engines: {node: '>= 0.4'} 1888 + 1889 + object-keys@1.1.1: 1890 + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1891 + engines: {node: '>= 0.4'} 1892 + 1893 + object.assign@4.1.7: 1894 + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1895 + engines: {node: '>= 0.4'} 1896 + 1897 + object.entries@1.1.9: 1898 + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} 1899 + engines: {node: '>= 0.4'} 1900 + 1901 + object.fromentries@2.0.8: 1902 + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1903 + engines: {node: '>= 0.4'} 1904 + 1905 + object.groupby@1.0.3: 1906 + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1907 + engines: {node: '>= 0.4'} 1908 + 1909 + object.values@1.2.1: 1910 + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1911 + engines: {node: '>= 0.4'} 1912 + 1913 + once@1.4.0: 1914 + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1915 + 1916 + oniguruma-to-es@2.3.0: 1917 + resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} 1918 + 1919 + optionator@0.9.4: 1920 + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1921 + engines: {node: '>= 0.8.0'} 1922 + 1923 + own-keys@1.0.1: 1924 + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} 1925 + engines: {node: '>= 0.4'} 1926 + 1927 + p-limit@3.1.0: 1928 + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1929 + engines: {node: '>=10'} 1930 + 1931 + p-locate@5.0.0: 1932 + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1933 + engines: {node: '>=10'} 1934 + 1935 + package-json-from-dist@1.0.1: 1936 + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1937 + 1938 + parent-module@1.0.1: 1939 + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1940 + engines: {node: '>=6'} 1941 + 1942 + parse-entities@4.0.2: 1943 + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} 1944 + 1945 + parse-numeric-range@1.3.0: 1946 + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} 1947 + 1948 + parse-path@7.0.1: 1949 + resolution: {integrity: sha512-6ReLMptznuuOEzLoGEa+I1oWRSj2Zna5jLWC+l6zlfAI4dbbSaIES29ThzuPkbhNahT65dWzfoZEO6cfJw2Ksg==} 1950 + 1951 + parse-url@8.1.0: 1952 + resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} 1953 + 1954 + parse5@7.2.1: 1955 + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} 1956 + 1957 + path-exists@4.0.0: 1958 + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1959 + engines: {node: '>=8'} 1960 + 1961 + path-is-absolute@1.0.1: 1962 + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1963 + engines: {node: '>=0.10.0'} 1964 + 1965 + path-key@3.1.1: 1966 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1967 + engines: {node: '>=8'} 1968 + 1969 + path-parse@1.0.7: 1970 + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1971 + 1972 + path-scurry@1.11.1: 1973 + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1974 + engines: {node: '>=16 || 14 >=14.18'} 1975 + 1976 + picocolors@1.1.1: 1977 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1978 + 1979 + picomatch@2.3.1: 1980 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1981 + engines: {node: '>=8.6'} 1982 + 1983 + picomatch@4.0.2: 1984 + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1985 + engines: {node: '>=12'} 1986 + 1987 + pify@2.3.0: 1988 + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1989 + engines: {node: '>=0.10.0'} 1990 + 1991 + pirates@4.0.7: 1992 + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} 1993 + engines: {node: '>= 6'} 1994 + 1995 + possible-typed-array-names@1.1.0: 1996 + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} 1997 + engines: {node: '>= 0.4'} 1998 + 1999 + postcss-import@15.1.0: 2000 + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 2001 + engines: {node: '>=14.0.0'} 2002 + peerDependencies: 2003 + postcss: ^8.0.0 2004 + 2005 + postcss-js@4.0.1: 2006 + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 2007 + engines: {node: ^12 || ^14 || >= 16} 2008 + peerDependencies: 2009 + postcss: ^8.4.21 2010 + 2011 + postcss-load-config@4.0.2: 2012 + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 2013 + engines: {node: '>= 14'} 2014 + peerDependencies: 2015 + postcss: '>=8.0.9' 2016 + ts-node: '>=9.0.0' 2017 + peerDependenciesMeta: 2018 + postcss: 2019 + optional: true 2020 + ts-node: 2021 + optional: true 2022 + 2023 + postcss-nested@6.2.0: 2024 + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 2025 + engines: {node: '>=12.0'} 2026 + peerDependencies: 2027 + postcss: ^8.2.14 2028 + 2029 + postcss-selector-parser@6.1.2: 2030 + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 2031 + engines: {node: '>=4'} 2032 + 2033 + postcss-value-parser@4.2.0: 2034 + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2035 + 2036 + postcss@8.4.31: 2037 + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 2038 + engines: {node: ^10 || ^12 || >=14} 2039 + 2040 + postcss@8.5.3: 2041 + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 2042 + engines: {node: ^10 || ^12 || >=14} 2043 + 2044 + prelude-ls@1.2.1: 2045 + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2046 + engines: {node: '>= 0.8.0'} 2047 + 2048 + prettier-linter-helpers@1.0.0: 2049 + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 2050 + engines: {node: '>=6.0.0'} 2051 + 2052 + prettier@3.5.3: 2053 + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} 2054 + engines: {node: '>=14'} 2055 + hasBin: true 2056 + 2057 + prop-types@15.8.1: 2058 + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2059 + 2060 + property-information@7.0.0: 2061 + resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} 2062 + 2063 + protocols@2.0.2: 2064 + resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} 2065 + 2066 + punycode@2.3.1: 2067 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2068 + engines: {node: '>=6'} 2069 + 2070 + queue-microtask@1.2.3: 2071 + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2072 + 2073 + randombytes@2.1.0: 2074 + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 2075 + 2076 + react-dom@18.3.1: 2077 + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 2078 + peerDependencies: 2079 + react: ^18.3.1 2080 + 2081 + react-fast-compare@3.2.2: 2082 + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} 2083 + 2084 + react-helmet-async@2.0.5: 2085 + resolution: {integrity: sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==} 2086 + peerDependencies: 2087 + react: ^16.6.0 || ^17.0.0 || ^18.0.0 2088 + 2089 + react-is@16.13.1: 2090 + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2091 + 2092 + react@18.3.1: 2093 + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 2094 + engines: {node: '>=0.10.0'} 2095 + 2096 + read-cache@1.0.0: 2097 + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 2098 + 2099 + readdirp@3.6.0: 2100 + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2101 + engines: {node: '>=8.10.0'} 2102 + 2103 + recma-build-jsx@1.0.0: 2104 + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} 2105 + 2106 + recma-jsx@1.0.0: 2107 + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} 2108 + 2109 + recma-parse@1.0.0: 2110 + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} 2111 + 2112 + recma-stringify@1.0.0: 2113 + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} 2114 + 2115 + reflect.getprototypeof@1.0.10: 2116 + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 2117 + engines: {node: '>= 0.4'} 2118 + 2119 + regex-recursion@5.1.1: 2120 + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} 2121 + 2122 + regex-utilities@2.3.0: 2123 + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 2124 + 2125 + regex@5.1.1: 2126 + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} 2127 + 2128 + regexp.prototype.flags@1.5.4: 2129 + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 2130 + engines: {node: '>= 0.4'} 2131 + 2132 + rehype-extract-excerpt@0.3.1: 2133 + resolution: {integrity: sha512-i3RaHbpqdbDzZNXujAalGdb2rVI4EK4IdIXP6thviQPP0d2jIB5vK8EmEPQv5vnVXZyW+GP11j4HIgK+Vcr0wQ==} 2134 + 2135 + rehype-parse@9.0.1: 2136 + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} 2137 + 2138 + rehype-pretty-code@0.13.2: 2139 + resolution: {integrity: sha512-F+PaFMscfJOcSHcR2b//+hk/0jT56hmGDqXcVD6VC9j0CUSGiqv8YxaWUyhR7qEIRRSbzAVxx+0uxzk+akXs+w==} 2140 + engines: {node: '>=18'} 2141 + peerDependencies: 2142 + shiki: ^1.3.0 2143 + 2144 + rehype-recma@1.0.0: 2145 + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} 2146 + 2147 + remark-frontmatter@5.0.0: 2148 + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} 2149 + 2150 + remark-gfm@4.0.1: 2151 + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} 2152 + 2153 + remark-heading-id@1.0.1: 2154 + resolution: {integrity: sha512-GmJjuCeEkYvwFlvn/Skjc/1Qafj71412gbQnrwUmP/tKskmAf1cMRlZRNoovV+aIvsSRkTb2rCmGv2b9RdoJbQ==} 2155 + engines: {node: '>=8'} 2156 + 2157 + remark-link-rewrite@1.0.7: 2158 + resolution: {integrity: sha512-jfmXL8VL3O7Ca4g+Ya0A0S9LIpVhCUSqMHiei4N8Z8Mx9z/oEI1HDoa1ZcF9/tS0I7NwydGsPkw2zT4eeoD6+Q==} 2159 + engines: {node: '>=12.20'} 2160 + 2161 + remark-mdx@3.1.0: 2162 + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} 2163 + 2164 + remark-parse@11.0.0: 2165 + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} 2166 + 2167 + remark-rehype@11.1.2: 2168 + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} 2169 + 2170 + remark-stringify@11.0.0: 2171 + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} 2172 + 2173 + require-from-string@2.0.2: 2174 + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 2175 + engines: {node: '>=0.10.0'} 2176 + 2177 + resolve-from@4.0.0: 2178 + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2179 + engines: {node: '>=4'} 2180 + 2181 + resolve-pkg-maps@1.0.0: 2182 + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 2183 + 2184 + resolve@1.22.10: 2185 + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 2186 + engines: {node: '>= 0.4'} 2187 + hasBin: true 2188 + 2189 + resolve@2.0.0-next.5: 2190 + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 2191 + hasBin: true 2192 + 2193 + reusify@1.1.0: 2194 + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 2195 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2196 + 2197 + rimraf@3.0.2: 2198 + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2199 + deprecated: Rimraf versions prior to v4 are no longer supported 2200 + hasBin: true 2201 + 2202 + run-parallel@1.2.0: 2203 + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2204 + 2205 + safe-array-concat@1.1.3: 2206 + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 2207 + engines: {node: '>=0.4'} 2208 + 2209 + safe-buffer@5.2.1: 2210 + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2211 + 2212 + safe-push-apply@1.0.0: 2213 + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} 2214 + engines: {node: '>= 0.4'} 2215 + 2216 + safe-regex-test@1.1.0: 2217 + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 2218 + engines: {node: '>= 0.4'} 2219 + 2220 + scheduler@0.23.2: 2221 + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 2222 + 2223 + schema-utils@0.4.7: 2224 + resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==} 2225 + engines: {node: '>= 4'} 2226 + 2227 + schema-utils@4.3.0: 2228 + resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} 2229 + engines: {node: '>= 10.13.0'} 2230 + 2231 + section-matter@1.0.0: 2232 + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} 2233 + engines: {node: '>=4'} 2234 + 2235 + semver@6.3.1: 2236 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2237 + hasBin: true 2238 + 2239 + semver@7.7.1: 2240 + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 2241 + engines: {node: '>=10'} 2242 + hasBin: true 2243 + 2244 + serialize-javascript@6.0.2: 2245 + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 2246 + 2247 + set-function-length@1.2.2: 2248 + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 2249 + engines: {node: '>= 0.4'} 2250 + 2251 + set-function-name@2.0.2: 2252 + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 2253 + engines: {node: '>= 0.4'} 2254 + 2255 + set-proto@1.0.0: 2256 + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 2257 + engines: {node: '>= 0.4'} 2258 + 2259 + shallowequal@1.1.0: 2260 + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} 2261 + 2262 + shebang-command@2.0.0: 2263 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2264 + engines: {node: '>=8'} 2265 + 2266 + shebang-regex@3.0.0: 2267 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2268 + engines: {node: '>=8'} 2269 + 2270 + shiki@1.29.2: 2271 + resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} 2272 + 2273 + side-channel-list@1.0.0: 2274 + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 2275 + engines: {node: '>= 0.4'} 2276 + 2277 + side-channel-map@1.0.1: 2278 + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 2279 + engines: {node: '>= 0.4'} 2280 + 2281 + side-channel-weakmap@1.0.2: 2282 + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 2283 + engines: {node: '>= 0.4'} 2284 + 2285 + side-channel@1.1.0: 2286 + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 2287 + engines: {node: '>= 0.4'} 2288 + 2289 + signal-exit@4.1.0: 2290 + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 2291 + engines: {node: '>=14'} 2292 + 2293 + simple-swizzle@0.2.2: 2294 + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 2295 + 2296 + source-map-js@1.2.1: 2297 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 2298 + engines: {node: '>=0.10.0'} 2299 + 2300 + source-map-support@0.5.21: 2301 + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2302 + 2303 + source-map@0.6.1: 2304 + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2305 + engines: {node: '>=0.10.0'} 2306 + 2307 + source-map@0.7.4: 2308 + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 2309 + engines: {node: '>= 8'} 2310 + 2311 + space-separated-tokens@2.0.2: 2312 + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 2313 + 2314 + sprintf-js@1.0.3: 2315 + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 2316 + 2317 + stable-hash@0.0.5: 2318 + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} 2319 + 2320 + streamsearch@1.1.0: 2321 + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 2322 + engines: {node: '>=10.0.0'} 2323 + 2324 + string-width@4.2.3: 2325 + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2326 + engines: {node: '>=8'} 2327 + 2328 + string-width@5.1.2: 2329 + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2330 + engines: {node: '>=12'} 2331 + 2332 + string.prototype.includes@2.0.1: 2333 + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} 2334 + engines: {node: '>= 0.4'} 2335 + 2336 + string.prototype.matchall@4.0.12: 2337 + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} 2338 + engines: {node: '>= 0.4'} 2339 + 2340 + string.prototype.repeat@1.0.0: 2341 + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} 2342 + 2343 + string.prototype.trim@1.2.10: 2344 + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 2345 + engines: {node: '>= 0.4'} 2346 + 2347 + string.prototype.trimend@1.0.9: 2348 + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 2349 + engines: {node: '>= 0.4'} 2350 + 2351 + string.prototype.trimstart@1.0.8: 2352 + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 2353 + engines: {node: '>= 0.4'} 2354 + 2355 + stringify-entities@4.0.4: 2356 + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 2357 + 2358 + strip-ansi@6.0.1: 2359 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2360 + engines: {node: '>=8'} 2361 + 2362 + strip-ansi@7.1.0: 2363 + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 2364 + engines: {node: '>=12'} 2365 + 2366 + strip-bom-string@1.0.0: 2367 + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} 2368 + engines: {node: '>=0.10.0'} 2369 + 2370 + strip-bom@3.0.0: 2371 + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2372 + engines: {node: '>=4'} 2373 + 2374 + strip-json-comments@3.1.1: 2375 + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2376 + engines: {node: '>=8'} 2377 + 2378 + style-to-js@1.1.16: 2379 + resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} 2380 + 2381 + style-to-object@1.0.8: 2382 + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} 2383 + 2384 + styled-jsx@5.1.1: 2385 + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 2386 + engines: {node: '>= 12.0.0'} 2387 + peerDependencies: 2388 + '@babel/core': '*' 2389 + babel-plugin-macros: '*' 2390 + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 2391 + peerDependenciesMeta: 2392 + '@babel/core': 2393 + optional: true 2394 + babel-plugin-macros: 2395 + optional: true 2396 + 2397 + sucrase@3.35.0: 2398 + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 2399 + engines: {node: '>=16 || 14 >=14.17'} 2400 + hasBin: true 2401 + 2402 + supports-color@7.2.0: 2403 + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2404 + engines: {node: '>=8'} 2405 + 2406 + supports-color@8.1.1: 2407 + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 2408 + engines: {node: '>=10'} 2409 + 2410 + supports-preserve-symlinks-flag@1.0.0: 2411 + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2412 + engines: {node: '>= 0.4'} 2413 + 2414 + synckit@0.11.3: 2415 + resolution: {integrity: sha512-szhWDqNNI9etJUvbZ1/cx1StnZx8yMmFxme48SwR4dty4ioSY50KEZlpv0qAfgc1fpRzuh9hBXEzoCpJ779dLg==} 2416 + engines: {node: ^14.18.0 || >=16.0.0} 2417 + 2418 + tailwindcss-themer@4.1.1: 2419 + resolution: {integrity: sha512-1dXGQwr3p8G78Qh3ORaNsXofnAQi6CSjVaSEJ8G4R9pjFvS/lNIA+xznRbYoYATbXaQcYBYrvc9v8hwY7WzwWw==} 2420 + peerDependencies: 2421 + tailwindcss: ^3.1.0 2422 + 2423 + tailwindcss@3.4.3: 2424 + resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} 2425 + engines: {node: '>=14.0.0'} 2426 + hasBin: true 2427 + 2428 + tapable@2.2.1: 2429 + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2430 + engines: {node: '>=6'} 2431 + 2432 + terser-webpack-plugin@5.3.14: 2433 + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} 2434 + engines: {node: '>= 10.13.0'} 2435 + peerDependencies: 2436 + '@swc/core': '*' 2437 + esbuild: '*' 2438 + uglify-js: '*' 2439 + webpack: ^5.1.0 2440 + peerDependenciesMeta: 2441 + '@swc/core': 2442 + optional: true 2443 + esbuild: 2444 + optional: true 2445 + uglify-js: 2446 + optional: true 2447 + 2448 + terser@5.39.0: 2449 + resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} 2450 + engines: {node: '>=10'} 2451 + hasBin: true 2452 + 2453 + text-table@0.2.0: 2454 + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2455 + 2456 + thenify-all@1.6.0: 2457 + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2458 + engines: {node: '>=0.8'} 2459 + 2460 + thenify@3.3.1: 2461 + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2462 + 2463 + tinyglobby@0.2.12: 2464 + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} 2465 + engines: {node: '>=12.0.0'} 2466 + 2467 + to-regex-range@5.0.1: 2468 + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2469 + engines: {node: '>=8.0'} 2470 + 2471 + trim-lines@3.0.1: 2472 + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 2473 + 2474 + trough@2.2.0: 2475 + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} 2476 + 2477 + ts-api-utils@2.1.0: 2478 + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 2479 + engines: {node: '>=18.12'} 2480 + peerDependencies: 2481 + typescript: '>=4.8.4' 2482 + 2483 + ts-interface-checker@0.1.13: 2484 + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2485 + 2486 + tsconfig-paths@3.15.0: 2487 + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 2488 + 2489 + tslib@2.8.1: 2490 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2491 + 2492 + type-check@0.4.0: 2493 + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2494 + engines: {node: '>= 0.8.0'} 2495 + 2496 + type-fest@0.20.2: 2497 + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2498 + engines: {node: '>=10'} 2499 + 2500 + type-fest@4.39.1: 2501 + resolution: {integrity: sha512-uW9qzd66uyHYxwyVBYiwS4Oi0qZyUqwjU+Oevr6ZogYiXt99EOYtwvzMSLw1c3lYo2HzJsep/NB23iEVEgjG/w==} 2502 + engines: {node: '>=16'} 2503 + 2504 + typed-array-buffer@1.0.3: 2505 + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 2506 + engines: {node: '>= 0.4'} 2507 + 2508 + typed-array-byte-length@1.0.3: 2509 + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 2510 + engines: {node: '>= 0.4'} 2511 + 2512 + typed-array-byte-offset@1.0.4: 2513 + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 2514 + engines: {node: '>= 0.4'} 2515 + 2516 + typed-array-length@1.0.7: 2517 + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 2518 + engines: {node: '>= 0.4'} 2519 + 2520 + typescript@5.4.3: 2521 + resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} 2522 + engines: {node: '>=14.17'} 2523 + hasBin: true 2524 + 2525 + unbox-primitive@1.1.0: 2526 + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 2527 + engines: {node: '>= 0.4'} 2528 + 2529 + undici-types@6.21.0: 2530 + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} 2531 + 2532 + unified@11.0.5: 2533 + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} 2534 + 2535 + unist-util-is@3.0.0: 2536 + resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} 2537 + 2538 + unist-util-is@5.2.1: 2539 + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} 2540 + 2541 + unist-util-is@6.0.0: 2542 + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} 2543 + 2544 + unist-util-position-from-estree@2.0.0: 2545 + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} 2546 + 2547 + unist-util-position@5.0.0: 2548 + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 2549 + 2550 + unist-util-stringify-position@4.0.0: 2551 + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 2552 + 2553 + unist-util-visit-parents@2.1.2: 2554 + resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} 2555 + 2556 + unist-util-visit-parents@5.1.3: 2557 + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} 2558 + 2559 + unist-util-visit-parents@6.0.1: 2560 + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} 2561 + 2562 + unist-util-visit@1.4.1: 2563 + resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} 2564 + 2565 + unist-util-visit@4.1.2: 2566 + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} 2567 + 2568 + unist-util-visit@5.0.0: 2569 + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} 2570 + 2571 + unrs-resolver@1.4.1: 2572 + resolution: {integrity: sha512-MhPB3wBI5BR8TGieTb08XuYlE8oFVEXdSAgat3psdlRyejl8ojQ8iqPcjh094qCZ1r+TnkxzP6BeCd/umfHckQ==} 2573 + 2574 + update-browserslist-db@1.1.3: 2575 + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 2576 + hasBin: true 2577 + peerDependencies: 2578 + browserslist: '>= 4.21.0' 2579 + 2580 + uri-js@4.4.1: 2581 + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2582 + 2583 + use-sync-external-store@1.5.0: 2584 + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} 2585 + peerDependencies: 2586 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 2587 + 2588 + util-deprecate@1.0.2: 2589 + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2590 + 2591 + vfile-location@5.0.3: 2592 + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} 2593 + 2594 + vfile-message@4.0.2: 2595 + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} 2596 + 2597 + vfile@6.0.3: 2598 + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 2599 + 2600 + watchpack@2.4.2: 2601 + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} 2602 + engines: {node: '>=10.13.0'} 2603 + 2604 + web-namespaces@2.0.1: 2605 + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 2606 + 2607 + webpack-sources@3.2.3: 2608 + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 2609 + engines: {node: '>=10.13.0'} 2610 + 2611 + webpack-virtual-modules@0.6.2: 2612 + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} 2613 + 2614 + webpack@5.99.0: 2615 + resolution: {integrity: sha512-//MpHjkKV7dhKheJ1lJuHkR6tv8ycfYy7YVzVhhIpwKuKCu5/Zty/vGpFi0fV2RRAWTYDuj6oKn4vYyLzRh55g==} 2616 + engines: {node: '>=10.13.0'} 2617 + hasBin: true 2618 + peerDependencies: 2619 + webpack-cli: '*' 2620 + peerDependenciesMeta: 2621 + webpack-cli: 2622 + optional: true 2623 + 2624 + which-boxed-primitive@1.1.1: 2625 + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 2626 + engines: {node: '>= 0.4'} 2627 + 2628 + which-builtin-type@1.2.1: 2629 + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 2630 + engines: {node: '>= 0.4'} 2631 + 2632 + which-collection@1.0.2: 2633 + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 2634 + engines: {node: '>= 0.4'} 2635 + 2636 + which-typed-array@1.1.19: 2637 + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} 2638 + engines: {node: '>= 0.4'} 2639 + 2640 + which@2.0.2: 2641 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2642 + engines: {node: '>= 8'} 2643 + hasBin: true 2644 + 2645 + word-wrap@1.2.5: 2646 + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2647 + engines: {node: '>=0.10.0'} 2648 + 2649 + wrap-ansi@7.0.0: 2650 + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2651 + engines: {node: '>=10'} 2652 + 2653 + wrap-ansi@8.1.0: 2654 + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2655 + engines: {node: '>=12'} 2656 + 2657 + wrappy@1.0.2: 2658 + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2659 + 2660 + yaml@2.7.1: 2661 + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} 2662 + engines: {node: '>= 14'} 2663 + hasBin: true 2664 + 2665 + yocto-queue@0.1.0: 2666 + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2667 + engines: {node: '>=10'} 2668 + 2669 + zustand@4.5.6: 2670 + resolution: {integrity: sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==} 2671 + engines: {node: '>=12.7.0'} 2672 + peerDependencies: 2673 + '@types/react': '>=16.8' 2674 + immer: '>=9.0.6' 2675 + react: '>=16.8' 2676 + peerDependenciesMeta: 2677 + '@types/react': 2678 + optional: true 2679 + immer: 2680 + optional: true 2681 + react: 2682 + optional: true 2683 + 2684 + zwitch@2.0.4: 2685 + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 2686 + 2687 + snapshots: 2688 + 2689 + '@alloc/quick-lru@5.2.0': {} 2690 + 2691 + '@emnapi/core@1.4.0': 2692 + dependencies: 2693 + '@emnapi/wasi-threads': 1.0.1 2694 + tslib: 2.8.1 2695 + optional: true 2696 + 2697 + '@emnapi/runtime@1.4.0': 2698 + dependencies: 2699 + tslib: 2.8.1 2700 + optional: true 2701 + 2702 + '@emnapi/wasi-threads@1.0.1': 2703 + dependencies: 2704 + tslib: 2.8.1 2705 + optional: true 2706 + 2707 + '@eslint-community/eslint-utils@4.5.1(eslint@8.57.1)': 2708 + dependencies: 2709 + eslint: 8.57.1 2710 + eslint-visitor-keys: 3.4.3 2711 + 2712 + '@eslint-community/regexpp@4.12.1': {} 2713 + 2714 + '@eslint/eslintrc@2.1.4': 2715 + dependencies: 2716 + ajv: 6.12.6 2717 + debug: 4.4.0 2718 + espree: 9.6.1 2719 + globals: 13.24.0 2720 + ignore: 5.3.2 2721 + import-fresh: 3.3.1 2722 + js-yaml: 4.1.0 2723 + minimatch: 3.1.2 2724 + strip-json-comments: 3.1.1 2725 + transitivePeerDependencies: 2726 + - supports-color 2727 + 2728 + '@eslint/js@8.57.1': {} 2729 + 2730 + '@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2731 + dependencies: 2732 + '@tanstack/react-virtual': 3.13.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2733 + client-only: 0.0.1 2734 + react: 18.3.1 2735 + react-dom: 18.3.1(react@18.3.1) 2736 + 2737 + '@humanwhocodes/config-array@0.13.0': 2738 + dependencies: 2739 + '@humanwhocodes/object-schema': 2.0.3 2740 + debug: 4.4.0 2741 + minimatch: 3.1.2 2742 + transitivePeerDependencies: 2743 + - supports-color 2744 + 2745 + '@humanwhocodes/module-importer@1.0.1': {} 2746 + 2747 + '@humanwhocodes/object-schema@2.0.3': {} 2748 + 2749 + '@iconify-icon/react@2.3.0(react@18.3.1)': 2750 + dependencies: 2751 + iconify-icon: 2.3.0 2752 + react: 18.3.1 2753 + 2754 + '@iconify/types@2.0.0': {} 2755 + 2756 + '@isaacs/cliui@8.0.2': 2757 + dependencies: 2758 + string-width: 5.1.2 2759 + string-width-cjs: string-width@4.2.3 2760 + strip-ansi: 7.1.0 2761 + strip-ansi-cjs: strip-ansi@6.0.1 2762 + wrap-ansi: 8.1.0 2763 + wrap-ansi-cjs: wrap-ansi@7.0.0 2764 + 2765 + '@jridgewell/gen-mapping@0.3.8': 2766 + dependencies: 2767 + '@jridgewell/set-array': 1.2.1 2768 + '@jridgewell/sourcemap-codec': 1.5.0 2769 + '@jridgewell/trace-mapping': 0.3.25 2770 + 2771 + '@jridgewell/resolve-uri@3.1.2': {} 2772 + 2773 + '@jridgewell/set-array@1.2.1': {} 2774 + 2775 + '@jridgewell/source-map@0.3.6': 2776 + dependencies: 2777 + '@jridgewell/gen-mapping': 0.3.8 2778 + '@jridgewell/trace-mapping': 0.3.25 2779 + 2780 + '@jridgewell/sourcemap-codec@1.5.0': {} 2781 + 2782 + '@jridgewell/trace-mapping@0.3.25': 2783 + dependencies: 2784 + '@jridgewell/resolve-uri': 3.1.2 2785 + '@jridgewell/sourcemap-codec': 1.5.0 2786 + 2787 + '@mdx-js/loader@3.1.0(acorn@8.14.1)(webpack@5.99.0)': 2788 + dependencies: 2789 + '@mdx-js/mdx': 3.1.0(acorn@8.14.1) 2790 + source-map: 0.7.4 2791 + optionalDependencies: 2792 + webpack: 5.99.0 2793 + transitivePeerDependencies: 2794 + - acorn 2795 + - supports-color 2796 + 2797 + '@mdx-js/mdx@3.1.0(acorn@8.14.1)': 2798 + dependencies: 2799 + '@types/estree': 1.0.7 2800 + '@types/estree-jsx': 1.0.5 2801 + '@types/hast': 3.0.4 2802 + '@types/mdx': 2.0.13 2803 + collapse-white-space: 2.1.0 2804 + devlop: 1.1.0 2805 + estree-util-is-identifier-name: 3.0.0 2806 + estree-util-scope: 1.0.0 2807 + estree-walker: 3.0.3 2808 + hast-util-to-jsx-runtime: 2.3.6 2809 + markdown-extensions: 2.0.0 2810 + recma-build-jsx: 1.0.0 2811 + recma-jsx: 1.0.0(acorn@8.14.1) 2812 + recma-stringify: 1.0.0 2813 + rehype-recma: 1.0.0 2814 + remark-mdx: 3.1.0 2815 + remark-parse: 11.0.0 2816 + remark-rehype: 11.1.2 2817 + source-map: 0.7.4 2818 + unified: 11.0.5 2819 + unist-util-position-from-estree: 2.0.0 2820 + unist-util-stringify-position: 4.0.0 2821 + unist-util-visit: 5.0.0 2822 + vfile: 6.0.3 2823 + transitivePeerDependencies: 2824 + - acorn 2825 + - supports-color 2826 + 2827 + '@mdx-js/react@3.1.0(@types/react@18.2.73)(react@18.3.1)': 2828 + dependencies: 2829 + '@types/mdx': 2.0.13 2830 + '@types/react': 18.2.73 2831 + react: 18.3.1 2832 + 2833 + '@napi-rs/wasm-runtime@0.2.8': 2834 + dependencies: 2835 + '@emnapi/core': 1.4.0 2836 + '@emnapi/runtime': 1.4.0 2837 + '@tybys/wasm-util': 0.9.0 2838 + optional: true 2839 + 2840 + '@neato/guider@1.1.0(@types/react@18.2.73)(acorn@8.14.1)(next@14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.3)': 2841 + dependencies: 2842 + '@headlessui/react': 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2843 + '@iconify-icon/react': 2.3.0(react@18.3.1) 2844 + '@mdx-js/loader': 3.1.0(acorn@8.14.1)(webpack@5.99.0) 2845 + '@mdx-js/mdx': 3.1.0(acorn@8.14.1) 2846 + '@shikijs/transformers': 1.29.2 2847 + '@theguild/remark-npm2yarn': 0.3.3 2848 + '@types/unist': 3.0.3 2849 + '@vcarl/remark-headings': 0.1.0 2850 + approximate-number: 2.1.1 2851 + classnames: 2.5.1 2852 + color: 4.2.3 2853 + extra-watch-webpack-plugin: 1.0.3 2854 + flexsearch: 0.7.43 2855 + git-url-parse: 14.1.0 2856 + glob: 10.4.5 2857 + gray-matter: 4.0.3 2858 + mdast-util-phrasing: 4.1.0 2859 + next: 14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2860 + next-seo: 6.6.0(next@14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2861 + react: 18.3.1 2862 + react-dom: 18.3.1(react@18.3.1) 2863 + react-helmet-async: 2.0.5(react@18.3.1) 2864 + rehype-extract-excerpt: 0.3.1 2865 + rehype-pretty-code: 0.13.2(shiki@1.29.2) 2866 + remark-frontmatter: 5.0.0 2867 + remark-gfm: 4.0.1 2868 + remark-heading-id: 1.0.1 2869 + remark-link-rewrite: 1.0.7 2870 + shiki: 1.29.2 2871 + tailwindcss-themer: 4.1.1(tailwindcss@3.4.3) 2872 + type-fest: 4.39.1 2873 + unified: 11.0.5 2874 + unist-util-visit: 5.0.0 2875 + webpack: 5.99.0 2876 + webpack-virtual-modules: 0.6.2 2877 + zustand: 4.5.6(@types/react@18.2.73)(react@18.3.1) 2878 + transitivePeerDependencies: 2879 + - '@swc/core' 2880 + - '@types/react' 2881 + - acorn 2882 + - esbuild 2883 + - immer 2884 + - supports-color 2885 + - tailwindcss 2886 + - uglify-js 2887 + - webpack-cli 2888 + 2889 + '@next/env@14.2.26': {} 2890 + 2891 + '@next/eslint-plugin-next@14.2.26': 2892 + dependencies: 2893 + glob: 10.3.10 2894 + 2895 + '@next/swc-darwin-arm64@14.2.26': 2896 + optional: true 2897 + 2898 + '@next/swc-darwin-x64@14.2.26': 2899 + optional: true 2900 + 2901 + '@next/swc-linux-arm64-gnu@14.2.26': 2902 + optional: true 2903 + 2904 + '@next/swc-linux-arm64-musl@14.2.26': 2905 + optional: true 2906 + 2907 + '@next/swc-linux-x64-gnu@14.2.26': 2908 + optional: true 2909 + 2910 + '@next/swc-linux-x64-musl@14.2.26': 2911 + optional: true 2912 + 2913 + '@next/swc-win32-arm64-msvc@14.2.26': 2914 + optional: true 2915 + 2916 + '@next/swc-win32-ia32-msvc@14.2.26': 2917 + optional: true 2918 + 2919 + '@next/swc-win32-x64-msvc@14.2.26': 2920 + optional: true 2921 + 2922 + '@nodelib/fs.scandir@2.1.5': 2923 + dependencies: 2924 + '@nodelib/fs.stat': 2.0.5 2925 + run-parallel: 1.2.0 2926 + 2927 + '@nodelib/fs.stat@2.0.5': {} 2928 + 2929 + '@nodelib/fs.walk@1.2.8': 2930 + dependencies: 2931 + '@nodelib/fs.scandir': 2.1.5 2932 + fastq: 1.19.1 2933 + 2934 + '@nolyfill/is-core-module@1.0.39': {} 2935 + 2936 + '@pkgjs/parseargs@0.11.0': 2937 + optional: true 2938 + 2939 + '@pkgr/core@0.2.1': {} 2940 + 2941 + '@rtsao/scc@1.1.0': {} 2942 + 2943 + '@rushstack/eslint-patch@1.11.0': {} 2944 + 2945 + '@shikijs/core@1.29.2': 2946 + dependencies: 2947 + '@shikijs/engine-javascript': 1.29.2 2948 + '@shikijs/engine-oniguruma': 1.29.2 2949 + '@shikijs/types': 1.29.2 2950 + '@shikijs/vscode-textmate': 10.0.2 2951 + '@types/hast': 3.0.4 2952 + hast-util-to-html: 9.0.5 2953 + 2954 + '@shikijs/engine-javascript@1.29.2': 2955 + dependencies: 2956 + '@shikijs/types': 1.29.2 2957 + '@shikijs/vscode-textmate': 10.0.2 2958 + oniguruma-to-es: 2.3.0 2959 + 2960 + '@shikijs/engine-oniguruma@1.29.2': 2961 + dependencies: 2962 + '@shikijs/types': 1.29.2 2963 + '@shikijs/vscode-textmate': 10.0.2 2964 + 2965 + '@shikijs/langs@1.29.2': 2966 + dependencies: 2967 + '@shikijs/types': 1.29.2 2968 + 2969 + '@shikijs/themes@1.29.2': 2970 + dependencies: 2971 + '@shikijs/types': 1.29.2 2972 + 2973 + '@shikijs/transformers@1.29.2': 2974 + dependencies: 2975 + '@shikijs/core': 1.29.2 2976 + '@shikijs/types': 1.29.2 2977 + 2978 + '@shikijs/types@1.29.2': 2979 + dependencies: 2980 + '@shikijs/vscode-textmate': 10.0.2 2981 + '@types/hast': 3.0.4 2982 + 2983 + '@shikijs/vscode-textmate@10.0.2': {} 2984 + 2985 + '@swc/counter@0.1.3': {} 2986 + 2987 + '@swc/helpers@0.5.5': 2988 + dependencies: 2989 + '@swc/counter': 0.1.3 2990 + tslib: 2.8.1 2991 + 2992 + '@tanstack/react-virtual@3.13.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2993 + dependencies: 2994 + '@tanstack/virtual-core': 3.13.6 2995 + react: 18.3.1 2996 + react-dom: 18.3.1(react@18.3.1) 2997 + 2998 + '@tanstack/virtual-core@3.13.6': {} 2999 + 3000 + '@theguild/remark-npm2yarn@0.3.3': 3001 + dependencies: 3002 + npm-to-yarn: 3.0.1 3003 + unist-util-visit: 5.0.0 3004 + 3005 + '@tybys/wasm-util@0.9.0': 3006 + dependencies: 3007 + tslib: 2.8.1 3008 + optional: true 3009 + 3010 + '@types/debug@4.1.12': 3011 + dependencies: 3012 + '@types/ms': 2.1.0 3013 + 3014 + '@types/eslint-scope@3.7.7': 3015 + dependencies: 3016 + '@types/eslint': 9.6.1 3017 + '@types/estree': 1.0.7 3018 + 3019 + '@types/eslint@9.6.1': 3020 + dependencies: 3021 + '@types/estree': 1.0.7 3022 + '@types/json-schema': 7.0.15 3023 + 3024 + '@types/estree-jsx@1.0.5': 3025 + dependencies: 3026 + '@types/estree': 1.0.7 3027 + 3028 + '@types/estree@1.0.7': {} 3029 + 3030 + '@types/hast@3.0.4': 3031 + dependencies: 3032 + '@types/unist': 3.0.3 3033 + 3034 + '@types/json-schema@7.0.15': {} 3035 + 3036 + '@types/json5@0.0.29': {} 3037 + 3038 + '@types/mdast@3.0.15': 3039 + dependencies: 3040 + '@types/unist': 2.0.11 3041 + 3042 + '@types/mdast@4.0.4': 3043 + dependencies: 3044 + '@types/unist': 3.0.3 3045 + 3046 + '@types/mdx@2.0.13': {} 3047 + 3048 + '@types/ms@2.1.0': {} 3049 + 3050 + '@types/node@22.14.0': 3051 + dependencies: 3052 + undici-types: 6.21.0 3053 + 3054 + '@types/prop-types@15.7.14': {} 3055 + 3056 + '@types/react@18.2.73': 3057 + dependencies: 3058 + '@types/prop-types': 15.7.14 3059 + csstype: 3.1.3 3060 + 3061 + '@types/unist@2.0.11': {} 3062 + 3063 + '@types/unist@3.0.3': {} 3064 + 3065 + '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3))(eslint@8.57.1)(typescript@5.4.3)': 3066 + dependencies: 3067 + '@eslint-community/regexpp': 4.12.1 3068 + '@typescript-eslint/parser': 8.29.0(eslint@8.57.1)(typescript@5.4.3) 3069 + '@typescript-eslint/scope-manager': 8.29.0 3070 + '@typescript-eslint/type-utils': 8.29.0(eslint@8.57.1)(typescript@5.4.3) 3071 + '@typescript-eslint/utils': 8.29.0(eslint@8.57.1)(typescript@5.4.3) 3072 + '@typescript-eslint/visitor-keys': 8.29.0 3073 + eslint: 8.57.1 3074 + graphemer: 1.4.0 3075 + ignore: 5.3.2 3076 + natural-compare: 1.4.0 3077 + ts-api-utils: 2.1.0(typescript@5.4.3) 3078 + typescript: 5.4.3 3079 + transitivePeerDependencies: 3080 + - supports-color 3081 + 3082 + '@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3)': 3083 + dependencies: 3084 + '@typescript-eslint/scope-manager': 8.29.0 3085 + '@typescript-eslint/types': 8.29.0 3086 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.4.3) 3087 + '@typescript-eslint/visitor-keys': 8.29.0 3088 + debug: 4.4.0 3089 + eslint: 8.57.1 3090 + typescript: 5.4.3 3091 + transitivePeerDependencies: 3092 + - supports-color 3093 + 3094 + '@typescript-eslint/scope-manager@8.29.0': 3095 + dependencies: 3096 + '@typescript-eslint/types': 8.29.0 3097 + '@typescript-eslint/visitor-keys': 8.29.0 3098 + 3099 + '@typescript-eslint/type-utils@8.29.0(eslint@8.57.1)(typescript@5.4.3)': 3100 + dependencies: 3101 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.4.3) 3102 + '@typescript-eslint/utils': 8.29.0(eslint@8.57.1)(typescript@5.4.3) 3103 + debug: 4.4.0 3104 + eslint: 8.57.1 3105 + ts-api-utils: 2.1.0(typescript@5.4.3) 3106 + typescript: 5.4.3 3107 + transitivePeerDependencies: 3108 + - supports-color 3109 + 3110 + '@typescript-eslint/types@8.29.0': {} 3111 + 3112 + '@typescript-eslint/typescript-estree@8.29.0(typescript@5.4.3)': 3113 + dependencies: 3114 + '@typescript-eslint/types': 8.29.0 3115 + '@typescript-eslint/visitor-keys': 8.29.0 3116 + debug: 4.4.0 3117 + fast-glob: 3.3.3 3118 + is-glob: 4.0.3 3119 + minimatch: 9.0.5 3120 + semver: 7.7.1 3121 + ts-api-utils: 2.1.0(typescript@5.4.3) 3122 + typescript: 5.4.3 3123 + transitivePeerDependencies: 3124 + - supports-color 3125 + 3126 + '@typescript-eslint/utils@8.29.0(eslint@8.57.1)(typescript@5.4.3)': 3127 + dependencies: 3128 + '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.1) 3129 + '@typescript-eslint/scope-manager': 8.29.0 3130 + '@typescript-eslint/types': 8.29.0 3131 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.4.3) 3132 + eslint: 8.57.1 3133 + typescript: 5.4.3 3134 + transitivePeerDependencies: 3135 + - supports-color 3136 + 3137 + '@typescript-eslint/visitor-keys@8.29.0': 3138 + dependencies: 3139 + '@typescript-eslint/types': 8.29.0 3140 + eslint-visitor-keys: 4.2.0 3141 + 3142 + '@ungap/structured-clone@1.3.0': {} 3143 + 3144 + '@unrs/resolver-binding-darwin-arm64@1.4.1': 3145 + optional: true 3146 + 3147 + '@unrs/resolver-binding-darwin-x64@1.4.1': 3148 + optional: true 3149 + 3150 + '@unrs/resolver-binding-freebsd-x64@1.4.1': 3151 + optional: true 3152 + 3153 + '@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1': 3154 + optional: true 3155 + 3156 + '@unrs/resolver-binding-linux-arm-musleabihf@1.4.1': 3157 + optional: true 3158 + 3159 + '@unrs/resolver-binding-linux-arm64-gnu@1.4.1': 3160 + optional: true 3161 + 3162 + '@unrs/resolver-binding-linux-arm64-musl@1.4.1': 3163 + optional: true 3164 + 3165 + '@unrs/resolver-binding-linux-ppc64-gnu@1.4.1': 3166 + optional: true 3167 + 3168 + '@unrs/resolver-binding-linux-s390x-gnu@1.4.1': 3169 + optional: true 3170 + 3171 + '@unrs/resolver-binding-linux-x64-gnu@1.4.1': 3172 + optional: true 3173 + 3174 + '@unrs/resolver-binding-linux-x64-musl@1.4.1': 3175 + optional: true 3176 + 3177 + '@unrs/resolver-binding-wasm32-wasi@1.4.1': 3178 + dependencies: 3179 + '@napi-rs/wasm-runtime': 0.2.8 3180 + optional: true 3181 + 3182 + '@unrs/resolver-binding-win32-arm64-msvc@1.4.1': 3183 + optional: true 3184 + 3185 + '@unrs/resolver-binding-win32-ia32-msvc@1.4.1': 3186 + optional: true 3187 + 3188 + '@unrs/resolver-binding-win32-x64-msvc@1.4.1': 3189 + optional: true 3190 + 3191 + '@vcarl/remark-headings@0.1.0': 3192 + dependencies: 3193 + mdast-util-to-string: 3.2.0 3194 + unist-util-visit: 4.1.2 3195 + 3196 + '@webassemblyjs/ast@1.14.1': 3197 + dependencies: 3198 + '@webassemblyjs/helper-numbers': 1.13.2 3199 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 3200 + 3201 + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} 3202 + 3203 + '@webassemblyjs/helper-api-error@1.13.2': {} 3204 + 3205 + '@webassemblyjs/helper-buffer@1.14.1': {} 3206 + 3207 + '@webassemblyjs/helper-numbers@1.13.2': 3208 + dependencies: 3209 + '@webassemblyjs/floating-point-hex-parser': 1.13.2 3210 + '@webassemblyjs/helper-api-error': 1.13.2 3211 + '@xtuc/long': 4.2.2 3212 + 3213 + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} 3214 + 3215 + '@webassemblyjs/helper-wasm-section@1.14.1': 3216 + dependencies: 3217 + '@webassemblyjs/ast': 1.14.1 3218 + '@webassemblyjs/helper-buffer': 1.14.1 3219 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 3220 + '@webassemblyjs/wasm-gen': 1.14.1 3221 + 3222 + '@webassemblyjs/ieee754@1.13.2': 3223 + dependencies: 3224 + '@xtuc/ieee754': 1.2.0 3225 + 3226 + '@webassemblyjs/leb128@1.13.2': 3227 + dependencies: 3228 + '@xtuc/long': 4.2.2 3229 + 3230 + '@webassemblyjs/utf8@1.13.2': {} 3231 + 3232 + '@webassemblyjs/wasm-edit@1.14.1': 3233 + dependencies: 3234 + '@webassemblyjs/ast': 1.14.1 3235 + '@webassemblyjs/helper-buffer': 1.14.1 3236 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 3237 + '@webassemblyjs/helper-wasm-section': 1.14.1 3238 + '@webassemblyjs/wasm-gen': 1.14.1 3239 + '@webassemblyjs/wasm-opt': 1.14.1 3240 + '@webassemblyjs/wasm-parser': 1.14.1 3241 + '@webassemblyjs/wast-printer': 1.14.1 3242 + 3243 + '@webassemblyjs/wasm-gen@1.14.1': 3244 + dependencies: 3245 + '@webassemblyjs/ast': 1.14.1 3246 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 3247 + '@webassemblyjs/ieee754': 1.13.2 3248 + '@webassemblyjs/leb128': 1.13.2 3249 + '@webassemblyjs/utf8': 1.13.2 3250 + 3251 + '@webassemblyjs/wasm-opt@1.14.1': 3252 + dependencies: 3253 + '@webassemblyjs/ast': 1.14.1 3254 + '@webassemblyjs/helper-buffer': 1.14.1 3255 + '@webassemblyjs/wasm-gen': 1.14.1 3256 + '@webassemblyjs/wasm-parser': 1.14.1 3257 + 3258 + '@webassemblyjs/wasm-parser@1.14.1': 3259 + dependencies: 3260 + '@webassemblyjs/ast': 1.14.1 3261 + '@webassemblyjs/helper-api-error': 1.13.2 3262 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 3263 + '@webassemblyjs/ieee754': 1.13.2 3264 + '@webassemblyjs/leb128': 1.13.2 3265 + '@webassemblyjs/utf8': 1.13.2 3266 + 3267 + '@webassemblyjs/wast-printer@1.14.1': 3268 + dependencies: 3269 + '@webassemblyjs/ast': 1.14.1 3270 + '@xtuc/long': 4.2.2 3271 + 3272 + '@xtuc/ieee754@1.2.0': {} 3273 + 3274 + '@xtuc/long@4.2.2': {} 3275 + 3276 + acorn-jsx@5.3.2(acorn@8.14.1): 3277 + dependencies: 3278 + acorn: 8.14.1 3279 + 3280 + acorn@8.14.1: {} 3281 + 3282 + ajv-formats@2.1.1(ajv@8.17.1): 3283 + optionalDependencies: 3284 + ajv: 8.17.1 3285 + 3286 + ajv-keywords@3.5.2(ajv@6.12.6): 3287 + dependencies: 3288 + ajv: 6.12.6 3289 + 3290 + ajv-keywords@5.1.0(ajv@8.17.1): 3291 + dependencies: 3292 + ajv: 8.17.1 3293 + fast-deep-equal: 3.1.3 3294 + 3295 + ajv@6.12.6: 3296 + dependencies: 3297 + fast-deep-equal: 3.1.3 3298 + fast-json-stable-stringify: 2.1.0 3299 + json-schema-traverse: 0.4.1 3300 + uri-js: 4.4.1 3301 + 3302 + ajv@8.17.1: 3303 + dependencies: 3304 + fast-deep-equal: 3.1.3 3305 + fast-uri: 3.0.6 3306 + json-schema-traverse: 1.0.0 3307 + require-from-string: 2.0.2 3308 + 3309 + ansi-regex@5.0.1: {} 3310 + 3311 + ansi-regex@6.1.0: {} 3312 + 3313 + ansi-styles@4.3.0: 3314 + dependencies: 3315 + color-convert: 2.0.1 3316 + 3317 + ansi-styles@6.2.1: {} 3318 + 3319 + any-promise@1.3.0: {} 3320 + 3321 + anymatch@3.1.3: 3322 + dependencies: 3323 + normalize-path: 3.0.0 3324 + picomatch: 2.3.1 3325 + 3326 + approximate-number@2.1.1: {} 3327 + 3328 + arg@5.0.2: {} 3329 + 3330 + argparse@1.0.10: 3331 + dependencies: 3332 + sprintf-js: 1.0.3 3333 + 3334 + argparse@2.0.1: {} 3335 + 3336 + aria-query@5.3.2: {} 3337 + 3338 + array-buffer-byte-length@1.0.2: 3339 + dependencies: 3340 + call-bound: 1.0.4 3341 + is-array-buffer: 3.0.5 3342 + 3343 + array-includes@3.1.8: 3344 + dependencies: 3345 + call-bind: 1.0.8 3346 + define-properties: 1.2.1 3347 + es-abstract: 1.23.9 3348 + es-object-atoms: 1.1.1 3349 + get-intrinsic: 1.3.0 3350 + is-string: 1.1.1 3351 + 3352 + array.prototype.findlast@1.2.5: 3353 + dependencies: 3354 + call-bind: 1.0.8 3355 + define-properties: 1.2.1 3356 + es-abstract: 1.23.9 3357 + es-errors: 1.3.0 3358 + es-object-atoms: 1.1.1 3359 + es-shim-unscopables: 1.1.0 3360 + 3361 + array.prototype.findlastindex@1.2.6: 3362 + dependencies: 3363 + call-bind: 1.0.8 3364 + call-bound: 1.0.4 3365 + define-properties: 1.2.1 3366 + es-abstract: 1.23.9 3367 + es-errors: 1.3.0 3368 + es-object-atoms: 1.1.1 3369 + es-shim-unscopables: 1.1.0 3370 + 3371 + array.prototype.flat@1.3.3: 3372 + dependencies: 3373 + call-bind: 1.0.8 3374 + define-properties: 1.2.1 3375 + es-abstract: 1.23.9 3376 + es-shim-unscopables: 1.1.0 3377 + 3378 + array.prototype.flatmap@1.3.3: 3379 + dependencies: 3380 + call-bind: 1.0.8 3381 + define-properties: 1.2.1 3382 + es-abstract: 1.23.9 3383 + es-shim-unscopables: 1.1.0 3384 + 3385 + array.prototype.tosorted@1.1.4: 3386 + dependencies: 3387 + call-bind: 1.0.8 3388 + define-properties: 1.2.1 3389 + es-abstract: 1.23.9 3390 + es-errors: 1.3.0 3391 + es-shim-unscopables: 1.1.0 3392 + 3393 + arraybuffer.prototype.slice@1.0.4: 3394 + dependencies: 3395 + array-buffer-byte-length: 1.0.2 3396 + call-bind: 1.0.8 3397 + define-properties: 1.2.1 3398 + es-abstract: 1.23.9 3399 + es-errors: 1.3.0 3400 + get-intrinsic: 1.3.0 3401 + is-array-buffer: 3.0.5 3402 + 3403 + ast-types-flow@0.0.8: {} 3404 + 3405 + astring@1.9.0: {} 3406 + 3407 + async-function@1.0.0: {} 3408 + 3409 + available-typed-arrays@1.0.7: 3410 + dependencies: 3411 + possible-typed-array-names: 1.1.0 3412 + 3413 + axe-core@4.10.3: {} 3414 + 3415 + axobject-query@4.1.0: {} 3416 + 3417 + bail@2.0.2: {} 3418 + 3419 + balanced-match@1.0.2: {} 3420 + 3421 + binary-extensions@2.3.0: {} 3422 + 3423 + brace-expansion@1.1.11: 3424 + dependencies: 3425 + balanced-match: 1.0.2 3426 + concat-map: 0.0.1 3427 + 3428 + brace-expansion@2.0.1: 3429 + dependencies: 3430 + balanced-match: 1.0.2 3431 + 3432 + braces@3.0.3: 3433 + dependencies: 3434 + fill-range: 7.1.1 3435 + 3436 + browserslist@4.24.4: 3437 + dependencies: 3438 + caniuse-lite: 1.0.30001712 3439 + electron-to-chromium: 1.5.132 3440 + node-releases: 2.0.19 3441 + update-browserslist-db: 1.1.3(browserslist@4.24.4) 3442 + 3443 + buffer-from@1.1.2: {} 3444 + 3445 + busboy@1.6.0: 3446 + dependencies: 3447 + streamsearch: 1.1.0 3448 + 3449 + call-bind-apply-helpers@1.0.2: 3450 + dependencies: 3451 + es-errors: 1.3.0 3452 + function-bind: 1.1.2 3453 + 3454 + call-bind@1.0.8: 3455 + dependencies: 3456 + call-bind-apply-helpers: 1.0.2 3457 + es-define-property: 1.0.1 3458 + get-intrinsic: 1.3.0 3459 + set-function-length: 1.2.2 3460 + 3461 + call-bound@1.0.4: 3462 + dependencies: 3463 + call-bind-apply-helpers: 1.0.2 3464 + get-intrinsic: 1.3.0 3465 + 3466 + callsites@3.1.0: {} 3467 + 3468 + camelcase-css@2.0.1: {} 3469 + 3470 + caniuse-lite@1.0.30001712: {} 3471 + 3472 + ccount@2.0.1: {} 3473 + 3474 + chalk@4.1.2: 3475 + dependencies: 3476 + ansi-styles: 4.3.0 3477 + supports-color: 7.2.0 3478 + 3479 + character-entities-html4@2.1.0: {} 3480 + 3481 + character-entities-legacy@3.0.0: {} 3482 + 3483 + character-entities@2.0.2: {} 3484 + 3485 + character-reference-invalid@2.0.1: {} 3486 + 3487 + chokidar@3.6.0: 3488 + dependencies: 3489 + anymatch: 3.1.3 3490 + braces: 3.0.3 3491 + glob-parent: 5.1.2 3492 + is-binary-path: 2.1.0 3493 + is-glob: 4.0.3 3494 + normalize-path: 3.0.0 3495 + readdirp: 3.6.0 3496 + optionalDependencies: 3497 + fsevents: 2.3.3 3498 + 3499 + chrome-trace-event@1.0.4: {} 3500 + 3501 + classnames@2.5.1: {} 3502 + 3503 + client-only@0.0.1: {} 3504 + 3505 + collapse-white-space@2.1.0: {} 3506 + 3507 + color-convert@2.0.1: 3508 + dependencies: 3509 + color-name: 1.1.4 3510 + 3511 + color-name@1.1.4: {} 3512 + 3513 + color-string@1.9.1: 3514 + dependencies: 3515 + color-name: 1.1.4 3516 + simple-swizzle: 0.2.2 3517 + 3518 + color@4.2.3: 3519 + dependencies: 3520 + color-convert: 2.0.1 3521 + color-string: 1.9.1 3522 + 3523 + comma-separated-tokens@2.0.3: {} 3524 + 3525 + commander@2.20.3: {} 3526 + 3527 + commander@4.1.1: {} 3528 + 3529 + concat-map@0.0.1: {} 3530 + 3531 + cross-spawn@7.0.6: 3532 + dependencies: 3533 + path-key: 3.1.1 3534 + shebang-command: 2.0.0 3535 + which: 2.0.2 3536 + 3537 + cssesc@3.0.0: {} 3538 + 3539 + csstype@3.1.3: {} 3540 + 3541 + damerau-levenshtein@1.0.8: {} 3542 + 3543 + data-view-buffer@1.0.2: 3544 + dependencies: 3545 + call-bound: 1.0.4 3546 + es-errors: 1.3.0 3547 + is-data-view: 1.0.2 3548 + 3549 + data-view-byte-length@1.0.2: 3550 + dependencies: 3551 + call-bound: 1.0.4 3552 + es-errors: 1.3.0 3553 + is-data-view: 1.0.2 3554 + 3555 + data-view-byte-offset@1.0.1: 3556 + dependencies: 3557 + call-bound: 1.0.4 3558 + es-errors: 1.3.0 3559 + is-data-view: 1.0.2 3560 + 3561 + debug@3.2.7: 3562 + dependencies: 3563 + ms: 2.1.3 3564 + 3565 + debug@4.4.0: 3566 + dependencies: 3567 + ms: 2.1.3 3568 + 3569 + decode-named-character-reference@1.1.0: 3570 + dependencies: 3571 + character-entities: 2.0.2 3572 + 3573 + deep-is@0.1.4: {} 3574 + 3575 + define-data-property@1.1.4: 3576 + dependencies: 3577 + es-define-property: 1.0.1 3578 + es-errors: 1.3.0 3579 + gopd: 1.2.0 3580 + 3581 + define-properties@1.2.1: 3582 + dependencies: 3583 + define-data-property: 1.1.4 3584 + has-property-descriptors: 1.0.2 3585 + object-keys: 1.1.1 3586 + 3587 + dequal@2.0.3: {} 3588 + 3589 + devlop@1.1.0: 3590 + dependencies: 3591 + dequal: 2.0.3 3592 + 3593 + didyoumean@1.2.2: {} 3594 + 3595 + dlv@1.1.3: {} 3596 + 3597 + doctrine@2.1.0: 3598 + dependencies: 3599 + esutils: 2.0.3 3600 + 3601 + doctrine@3.0.0: 3602 + dependencies: 3603 + esutils: 2.0.3 3604 + 3605 + dunder-proto@1.0.1: 3606 + dependencies: 3607 + call-bind-apply-helpers: 1.0.2 3608 + es-errors: 1.3.0 3609 + gopd: 1.2.0 3610 + 3611 + eastasianwidth@0.2.0: {} 3612 + 3613 + electron-to-chromium@1.5.132: {} 3614 + 3615 + emoji-regex-xs@1.0.0: {} 3616 + 3617 + emoji-regex@8.0.0: {} 3618 + 3619 + emoji-regex@9.2.2: {} 3620 + 3621 + enhanced-resolve@5.18.1: 3622 + dependencies: 3623 + graceful-fs: 4.2.11 3624 + tapable: 2.2.1 3625 + 3626 + entities@4.5.0: {} 3627 + 3628 + es-abstract@1.23.9: 3629 + dependencies: 3630 + array-buffer-byte-length: 1.0.2 3631 + arraybuffer.prototype.slice: 1.0.4 3632 + available-typed-arrays: 1.0.7 3633 + call-bind: 1.0.8 3634 + call-bound: 1.0.4 3635 + data-view-buffer: 1.0.2 3636 + data-view-byte-length: 1.0.2 3637 + data-view-byte-offset: 1.0.1 3638 + es-define-property: 1.0.1 3639 + es-errors: 1.3.0 3640 + es-object-atoms: 1.1.1 3641 + es-set-tostringtag: 2.1.0 3642 + es-to-primitive: 1.3.0 3643 + function.prototype.name: 1.1.8 3644 + get-intrinsic: 1.3.0 3645 + get-proto: 1.0.1 3646 + get-symbol-description: 1.1.0 3647 + globalthis: 1.0.4 3648 + gopd: 1.2.0 3649 + has-property-descriptors: 1.0.2 3650 + has-proto: 1.2.0 3651 + has-symbols: 1.1.0 3652 + hasown: 2.0.2 3653 + internal-slot: 1.1.0 3654 + is-array-buffer: 3.0.5 3655 + is-callable: 1.2.7 3656 + is-data-view: 1.0.2 3657 + is-regex: 1.2.1 3658 + is-shared-array-buffer: 1.0.4 3659 + is-string: 1.1.1 3660 + is-typed-array: 1.1.15 3661 + is-weakref: 1.1.1 3662 + math-intrinsics: 1.1.0 3663 + object-inspect: 1.13.4 3664 + object-keys: 1.1.1 3665 + object.assign: 4.1.7 3666 + own-keys: 1.0.1 3667 + regexp.prototype.flags: 1.5.4 3668 + safe-array-concat: 1.1.3 3669 + safe-push-apply: 1.0.0 3670 + safe-regex-test: 1.1.0 3671 + set-proto: 1.0.0 3672 + string.prototype.trim: 1.2.10 3673 + string.prototype.trimend: 1.0.9 3674 + string.prototype.trimstart: 1.0.8 3675 + typed-array-buffer: 1.0.3 3676 + typed-array-byte-length: 1.0.3 3677 + typed-array-byte-offset: 1.0.4 3678 + typed-array-length: 1.0.7 3679 + unbox-primitive: 1.1.0 3680 + which-typed-array: 1.1.19 3681 + 3682 + es-define-property@1.0.1: {} 3683 + 3684 + es-errors@1.3.0: {} 3685 + 3686 + es-iterator-helpers@1.2.1: 3687 + dependencies: 3688 + call-bind: 1.0.8 3689 + call-bound: 1.0.4 3690 + define-properties: 1.2.1 3691 + es-abstract: 1.23.9 3692 + es-errors: 1.3.0 3693 + es-set-tostringtag: 2.1.0 3694 + function-bind: 1.1.2 3695 + get-intrinsic: 1.3.0 3696 + globalthis: 1.0.4 3697 + gopd: 1.2.0 3698 + has-property-descriptors: 1.0.2 3699 + has-proto: 1.2.0 3700 + has-symbols: 1.1.0 3701 + internal-slot: 1.1.0 3702 + iterator.prototype: 1.1.5 3703 + safe-array-concat: 1.1.3 3704 + 3705 + es-module-lexer@1.6.0: {} 3706 + 3707 + es-object-atoms@1.1.1: 3708 + dependencies: 3709 + es-errors: 1.3.0 3710 + 3711 + es-set-tostringtag@2.1.0: 3712 + dependencies: 3713 + es-errors: 1.3.0 3714 + get-intrinsic: 1.3.0 3715 + has-tostringtag: 1.0.2 3716 + hasown: 2.0.2 3717 + 3718 + es-shim-unscopables@1.1.0: 3719 + dependencies: 3720 + hasown: 2.0.2 3721 + 3722 + es-to-primitive@1.3.0: 3723 + dependencies: 3724 + is-callable: 1.2.7 3725 + is-date-object: 1.1.0 3726 + is-symbol: 1.1.1 3727 + 3728 + esast-util-from-estree@2.0.0: 3729 + dependencies: 3730 + '@types/estree-jsx': 1.0.5 3731 + devlop: 1.1.0 3732 + estree-util-visit: 2.0.0 3733 + unist-util-position-from-estree: 2.0.0 3734 + 3735 + esast-util-from-js@2.0.1: 3736 + dependencies: 3737 + '@types/estree-jsx': 1.0.5 3738 + acorn: 8.14.1 3739 + esast-util-from-estree: 2.0.0 3740 + vfile-message: 4.0.2 3741 + 3742 + escalade@3.2.0: {} 3743 + 3744 + escape-string-regexp@4.0.0: {} 3745 + 3746 + escape-string-regexp@5.0.0: {} 3747 + 3748 + eslint-config-next@14.2.26(eslint@8.57.1)(typescript@5.4.3): 3749 + dependencies: 3750 + '@next/eslint-plugin-next': 14.2.26 3751 + '@rushstack/eslint-patch': 1.11.0 3752 + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3))(eslint@8.57.1)(typescript@5.4.3) 3753 + '@typescript-eslint/parser': 8.29.0(eslint@8.57.1)(typescript@5.4.3) 3754 + eslint: 8.57.1 3755 + eslint-import-resolver-node: 0.3.9 3756 + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) 3757 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) 3758 + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) 3759 + eslint-plugin-react: 7.37.5(eslint@8.57.1) 3760 + eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) 3761 + optionalDependencies: 3762 + typescript: 5.4.3 3763 + transitivePeerDependencies: 3764 + - eslint-import-resolver-webpack 3765 + - eslint-plugin-import-x 3766 + - supports-color 3767 + 3768 + eslint-config-prettier@9.1.0(eslint@8.57.1): 3769 + dependencies: 3770 + eslint: 8.57.1 3771 + 3772 + eslint-import-resolver-node@0.3.9: 3773 + dependencies: 3774 + debug: 3.2.7 3775 + is-core-module: 2.16.1 3776 + resolve: 1.22.10 3777 + transitivePeerDependencies: 3778 + - supports-color 3779 + 3780 + eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): 3781 + dependencies: 3782 + '@nolyfill/is-core-module': 1.0.39 3783 + debug: 4.4.0 3784 + eslint: 8.57.1 3785 + get-tsconfig: 4.10.0 3786 + is-bun-module: 2.0.0 3787 + stable-hash: 0.0.5 3788 + tinyglobby: 0.2.12 3789 + unrs-resolver: 1.4.1 3790 + optionalDependencies: 3791 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) 3792 + transitivePeerDependencies: 3793 + - supports-color 3794 + 3795 + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1): 3796 + dependencies: 3797 + debug: 3.2.7 3798 + optionalDependencies: 3799 + '@typescript-eslint/parser': 8.29.0(eslint@8.57.1)(typescript@5.4.3) 3800 + eslint: 8.57.1 3801 + eslint-import-resolver-node: 0.3.9 3802 + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) 3803 + transitivePeerDependencies: 3804 + - supports-color 3805 + 3806 + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1): 3807 + dependencies: 3808 + '@rtsao/scc': 1.1.0 3809 + array-includes: 3.1.8 3810 + array.prototype.findlastindex: 1.2.6 3811 + array.prototype.flat: 1.3.3 3812 + array.prototype.flatmap: 1.3.3 3813 + debug: 3.2.7 3814 + doctrine: 2.1.0 3815 + eslint: 8.57.1 3816 + eslint-import-resolver-node: 0.3.9 3817 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.1)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) 3818 + hasown: 2.0.2 3819 + is-core-module: 2.16.1 3820 + is-glob: 4.0.3 3821 + minimatch: 3.1.2 3822 + object.fromentries: 2.0.8 3823 + object.groupby: 1.0.3 3824 + object.values: 1.2.1 3825 + semver: 6.3.1 3826 + string.prototype.trimend: 1.0.9 3827 + tsconfig-paths: 3.15.0 3828 + optionalDependencies: 3829 + '@typescript-eslint/parser': 8.29.0(eslint@8.57.1)(typescript@5.4.3) 3830 + transitivePeerDependencies: 3831 + - eslint-import-resolver-typescript 3832 + - eslint-import-resolver-webpack 3833 + - supports-color 3834 + 3835 + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): 3836 + dependencies: 3837 + aria-query: 5.3.2 3838 + array-includes: 3.1.8 3839 + array.prototype.flatmap: 1.3.3 3840 + ast-types-flow: 0.0.8 3841 + axe-core: 4.10.3 3842 + axobject-query: 4.1.0 3843 + damerau-levenshtein: 1.0.8 3844 + emoji-regex: 9.2.2 3845 + eslint: 8.57.1 3846 + hasown: 2.0.2 3847 + jsx-ast-utils: 3.3.5 3848 + language-tags: 1.0.9 3849 + minimatch: 3.1.2 3850 + object.fromentries: 2.0.8 3851 + safe-regex-test: 1.1.0 3852 + string.prototype.includes: 2.0.1 3853 + 3854 + eslint-plugin-prettier@5.2.6(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.5.3): 3855 + dependencies: 3856 + eslint: 8.57.1 3857 + prettier: 3.5.3 3858 + prettier-linter-helpers: 1.0.0 3859 + synckit: 0.11.3 3860 + optionalDependencies: 3861 + '@types/eslint': 9.6.1 3862 + eslint-config-prettier: 9.1.0(eslint@8.57.1) 3863 + 3864 + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1): 3865 + dependencies: 3866 + eslint: 8.57.1 3867 + 3868 + eslint-plugin-react@7.37.5(eslint@8.57.1): 3869 + dependencies: 3870 + array-includes: 3.1.8 3871 + array.prototype.findlast: 1.2.5 3872 + array.prototype.flatmap: 1.3.3 3873 + array.prototype.tosorted: 1.1.4 3874 + doctrine: 2.1.0 3875 + es-iterator-helpers: 1.2.1 3876 + eslint: 8.57.1 3877 + estraverse: 5.3.0 3878 + hasown: 2.0.2 3879 + jsx-ast-utils: 3.3.5 3880 + minimatch: 3.1.2 3881 + object.entries: 1.1.9 3882 + object.fromentries: 2.0.8 3883 + object.values: 1.2.1 3884 + prop-types: 15.8.1 3885 + resolve: 2.0.0-next.5 3886 + semver: 6.3.1 3887 + string.prototype.matchall: 4.0.12 3888 + string.prototype.repeat: 1.0.0 3889 + 3890 + eslint-scope@5.1.1: 3891 + dependencies: 3892 + esrecurse: 4.3.0 3893 + estraverse: 4.3.0 3894 + 3895 + eslint-scope@7.2.2: 3896 + dependencies: 3897 + esrecurse: 4.3.0 3898 + estraverse: 5.3.0 3899 + 3900 + eslint-visitor-keys@3.4.3: {} 3901 + 3902 + eslint-visitor-keys@4.2.0: {} 3903 + 3904 + eslint@8.57.1: 3905 + dependencies: 3906 + '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.1) 3907 + '@eslint-community/regexpp': 4.12.1 3908 + '@eslint/eslintrc': 2.1.4 3909 + '@eslint/js': 8.57.1 3910 + '@humanwhocodes/config-array': 0.13.0 3911 + '@humanwhocodes/module-importer': 1.0.1 3912 + '@nodelib/fs.walk': 1.2.8 3913 + '@ungap/structured-clone': 1.3.0 3914 + ajv: 6.12.6 3915 + chalk: 4.1.2 3916 + cross-spawn: 7.0.6 3917 + debug: 4.4.0 3918 + doctrine: 3.0.0 3919 + escape-string-regexp: 4.0.0 3920 + eslint-scope: 7.2.2 3921 + eslint-visitor-keys: 3.4.3 3922 + espree: 9.6.1 3923 + esquery: 1.6.0 3924 + esutils: 2.0.3 3925 + fast-deep-equal: 3.1.3 3926 + file-entry-cache: 6.0.1 3927 + find-up: 5.0.0 3928 + glob-parent: 6.0.2 3929 + globals: 13.24.0 3930 + graphemer: 1.4.0 3931 + ignore: 5.3.2 3932 + imurmurhash: 0.1.4 3933 + is-glob: 4.0.3 3934 + is-path-inside: 3.0.3 3935 + js-yaml: 4.1.0 3936 + json-stable-stringify-without-jsonify: 1.0.1 3937 + levn: 0.4.1 3938 + lodash.merge: 4.6.2 3939 + minimatch: 3.1.2 3940 + natural-compare: 1.4.0 3941 + optionator: 0.9.4 3942 + strip-ansi: 6.0.1 3943 + text-table: 0.2.0 3944 + transitivePeerDependencies: 3945 + - supports-color 3946 + 3947 + espree@9.6.1: 3948 + dependencies: 3949 + acorn: 8.14.1 3950 + acorn-jsx: 5.3.2(acorn@8.14.1) 3951 + eslint-visitor-keys: 3.4.3 3952 + 3953 + esprima@4.0.1: {} 3954 + 3955 + esquery@1.6.0: 3956 + dependencies: 3957 + estraverse: 5.3.0 3958 + 3959 + esrecurse@4.3.0: 3960 + dependencies: 3961 + estraverse: 5.3.0 3962 + 3963 + estraverse@4.3.0: {} 3964 + 3965 + estraverse@5.3.0: {} 3966 + 3967 + estree-util-attach-comments@3.0.0: 3968 + dependencies: 3969 + '@types/estree': 1.0.7 3970 + 3971 + estree-util-build-jsx@3.0.1: 3972 + dependencies: 3973 + '@types/estree-jsx': 1.0.5 3974 + devlop: 1.1.0 3975 + estree-util-is-identifier-name: 3.0.0 3976 + estree-walker: 3.0.3 3977 + 3978 + estree-util-is-identifier-name@3.0.0: {} 3979 + 3980 + estree-util-scope@1.0.0: 3981 + dependencies: 3982 + '@types/estree': 1.0.7 3983 + devlop: 1.1.0 3984 + 3985 + estree-util-to-js@2.0.0: 3986 + dependencies: 3987 + '@types/estree-jsx': 1.0.5 3988 + astring: 1.9.0 3989 + source-map: 0.7.4 3990 + 3991 + estree-util-visit@2.0.0: 3992 + dependencies: 3993 + '@types/estree-jsx': 1.0.5 3994 + '@types/unist': 3.0.3 3995 + 3996 + estree-walker@3.0.3: 3997 + dependencies: 3998 + '@types/estree': 1.0.7 3999 + 4000 + esutils@2.0.3: {} 4001 + 4002 + events@3.3.0: {} 4003 + 4004 + extend-shallow@2.0.1: 4005 + dependencies: 4006 + is-extendable: 0.1.1 4007 + 4008 + extend@3.0.2: {} 4009 + 4010 + extra-watch-webpack-plugin@1.0.3: 4011 + dependencies: 4012 + glob: 7.2.3 4013 + is-glob: 4.0.3 4014 + lodash.uniq: 4.5.0 4015 + schema-utils: 0.4.7 4016 + 4017 + fast-deep-equal@3.1.3: {} 4018 + 4019 + fast-diff@1.3.0: {} 4020 + 4021 + fast-glob@3.3.3: 4022 + dependencies: 4023 + '@nodelib/fs.stat': 2.0.5 4024 + '@nodelib/fs.walk': 1.2.8 4025 + glob-parent: 5.1.2 4026 + merge2: 1.4.1 4027 + micromatch: 4.0.8 4028 + 4029 + fast-json-stable-stringify@2.1.0: {} 4030 + 4031 + fast-levenshtein@2.0.6: {} 4032 + 4033 + fast-uri@3.0.6: {} 4034 + 4035 + fastq@1.19.1: 4036 + dependencies: 4037 + reusify: 1.1.0 4038 + 4039 + fault@2.0.1: 4040 + dependencies: 4041 + format: 0.2.2 4042 + 4043 + fdir@6.4.3(picomatch@4.0.2): 4044 + optionalDependencies: 4045 + picomatch: 4.0.2 4046 + 4047 + file-entry-cache@6.0.1: 4048 + dependencies: 4049 + flat-cache: 3.2.0 4050 + 4051 + fill-range@7.1.1: 4052 + dependencies: 4053 + to-regex-range: 5.0.1 4054 + 4055 + find-up@5.0.0: 4056 + dependencies: 4057 + locate-path: 6.0.0 4058 + path-exists: 4.0.0 4059 + 4060 + flat-cache@3.2.0: 4061 + dependencies: 4062 + flatted: 3.3.3 4063 + keyv: 4.5.4 4064 + rimraf: 3.0.2 4065 + 4066 + flatted@3.3.3: {} 4067 + 4068 + flexsearch@0.7.43: {} 4069 + 4070 + for-each@0.3.5: 4071 + dependencies: 4072 + is-callable: 1.2.7 4073 + 4074 + foreground-child@3.3.1: 4075 + dependencies: 4076 + cross-spawn: 7.0.6 4077 + signal-exit: 4.1.0 4078 + 4079 + format@0.2.2: {} 4080 + 4081 + fs.realpath@1.0.0: {} 4082 + 4083 + fsevents@2.3.3: 4084 + optional: true 4085 + 4086 + function-bind@1.1.2: {} 4087 + 4088 + function.prototype.name@1.1.8: 4089 + dependencies: 4090 + call-bind: 1.0.8 4091 + call-bound: 1.0.4 4092 + define-properties: 1.2.1 4093 + functions-have-names: 1.2.3 4094 + hasown: 2.0.2 4095 + is-callable: 1.2.7 4096 + 4097 + functions-have-names@1.2.3: {} 4098 + 4099 + get-intrinsic@1.3.0: 4100 + dependencies: 4101 + call-bind-apply-helpers: 1.0.2 4102 + es-define-property: 1.0.1 4103 + es-errors: 1.3.0 4104 + es-object-atoms: 1.1.1 4105 + function-bind: 1.1.2 4106 + get-proto: 1.0.1 4107 + gopd: 1.2.0 4108 + has-symbols: 1.1.0 4109 + hasown: 2.0.2 4110 + math-intrinsics: 1.1.0 4111 + 4112 + get-proto@1.0.1: 4113 + dependencies: 4114 + dunder-proto: 1.0.1 4115 + es-object-atoms: 1.1.1 4116 + 4117 + get-symbol-description@1.1.0: 4118 + dependencies: 4119 + call-bound: 1.0.4 4120 + es-errors: 1.3.0 4121 + get-intrinsic: 1.3.0 4122 + 4123 + get-tsconfig@4.10.0: 4124 + dependencies: 4125 + resolve-pkg-maps: 1.0.0 4126 + 4127 + git-up@7.0.0: 4128 + dependencies: 4129 + is-ssh: 1.4.1 4130 + parse-url: 8.1.0 4131 + 4132 + git-url-parse@14.1.0: 4133 + dependencies: 4134 + git-up: 7.0.0 4135 + 4136 + glob-parent@5.1.2: 4137 + dependencies: 4138 + is-glob: 4.0.3 4139 + 4140 + glob-parent@6.0.2: 4141 + dependencies: 4142 + is-glob: 4.0.3 4143 + 4144 + glob-to-regexp@0.4.1: {} 4145 + 4146 + glob@10.3.10: 4147 + dependencies: 4148 + foreground-child: 3.3.1 4149 + jackspeak: 2.3.6 4150 + minimatch: 9.0.5 4151 + minipass: 7.1.2 4152 + path-scurry: 1.11.1 4153 + 4154 + glob@10.4.5: 4155 + dependencies: 4156 + foreground-child: 3.3.1 4157 + jackspeak: 3.4.3 4158 + minimatch: 9.0.5 4159 + minipass: 7.1.2 4160 + package-json-from-dist: 1.0.1 4161 + path-scurry: 1.11.1 4162 + 4163 + glob@7.2.3: 4164 + dependencies: 4165 + fs.realpath: 1.0.0 4166 + inflight: 1.0.6 4167 + inherits: 2.0.4 4168 + minimatch: 3.1.2 4169 + once: 1.4.0 4170 + path-is-absolute: 1.0.1 4171 + 4172 + globals@13.24.0: 4173 + dependencies: 4174 + type-fest: 0.20.2 4175 + 4176 + globalthis@1.0.4: 4177 + dependencies: 4178 + define-properties: 1.2.1 4179 + gopd: 1.2.0 4180 + 4181 + gopd@1.2.0: {} 4182 + 4183 + graceful-fs@4.2.11: {} 4184 + 4185 + graphemer@1.4.0: {} 4186 + 4187 + gray-matter@4.0.3: 4188 + dependencies: 4189 + js-yaml: 3.14.1 4190 + kind-of: 6.0.3 4191 + section-matter: 1.0.0 4192 + strip-bom-string: 1.0.0 4193 + 4194 + has-bigints@1.1.0: {} 4195 + 4196 + has-flag@4.0.0: {} 4197 + 4198 + has-property-descriptors@1.0.2: 4199 + dependencies: 4200 + es-define-property: 1.0.1 4201 + 4202 + has-proto@1.2.0: 4203 + dependencies: 4204 + dunder-proto: 1.0.1 4205 + 4206 + has-symbols@1.1.0: {} 4207 + 4208 + has-tostringtag@1.0.2: 4209 + dependencies: 4210 + has-symbols: 1.1.0 4211 + 4212 + hasown@2.0.2: 4213 + dependencies: 4214 + function-bind: 1.1.2 4215 + 4216 + hast-util-from-html@2.0.3: 4217 + dependencies: 4218 + '@types/hast': 3.0.4 4219 + devlop: 1.1.0 4220 + hast-util-from-parse5: 8.0.3 4221 + parse5: 7.2.1 4222 + vfile: 6.0.3 4223 + vfile-message: 4.0.2 4224 + 4225 + hast-util-from-parse5@8.0.3: 4226 + dependencies: 4227 + '@types/hast': 3.0.4 4228 + '@types/unist': 3.0.3 4229 + devlop: 1.1.0 4230 + hastscript: 9.0.1 4231 + property-information: 7.0.0 4232 + vfile: 6.0.3 4233 + vfile-location: 5.0.3 4234 + web-namespaces: 2.0.1 4235 + 4236 + hast-util-parse-selector@4.0.0: 4237 + dependencies: 4238 + '@types/hast': 3.0.4 4239 + 4240 + hast-util-to-estree@3.1.3: 4241 + dependencies: 4242 + '@types/estree': 1.0.7 4243 + '@types/estree-jsx': 1.0.5 4244 + '@types/hast': 3.0.4 4245 + comma-separated-tokens: 2.0.3 4246 + devlop: 1.1.0 4247 + estree-util-attach-comments: 3.0.0 4248 + estree-util-is-identifier-name: 3.0.0 4249 + hast-util-whitespace: 3.0.0 4250 + mdast-util-mdx-expression: 2.0.1 4251 + mdast-util-mdx-jsx: 3.2.0 4252 + mdast-util-mdxjs-esm: 2.0.1 4253 + property-information: 7.0.0 4254 + space-separated-tokens: 2.0.2 4255 + style-to-js: 1.1.16 4256 + unist-util-position: 5.0.0 4257 + zwitch: 2.0.4 4258 + transitivePeerDependencies: 4259 + - supports-color 4260 + 4261 + hast-util-to-html@9.0.5: 4262 + dependencies: 4263 + '@types/hast': 3.0.4 4264 + '@types/unist': 3.0.3 4265 + ccount: 2.0.1 4266 + comma-separated-tokens: 2.0.3 4267 + hast-util-whitespace: 3.0.0 4268 + html-void-elements: 3.0.0 4269 + mdast-util-to-hast: 13.2.0 4270 + property-information: 7.0.0 4271 + space-separated-tokens: 2.0.2 4272 + stringify-entities: 4.0.4 4273 + zwitch: 2.0.4 4274 + 4275 + hast-util-to-jsx-runtime@2.3.6: 4276 + dependencies: 4277 + '@types/estree': 1.0.7 4278 + '@types/hast': 3.0.4 4279 + '@types/unist': 3.0.3 4280 + comma-separated-tokens: 2.0.3 4281 + devlop: 1.1.0 4282 + estree-util-is-identifier-name: 3.0.0 4283 + hast-util-whitespace: 3.0.0 4284 + mdast-util-mdx-expression: 2.0.1 4285 + mdast-util-mdx-jsx: 3.2.0 4286 + mdast-util-mdxjs-esm: 2.0.1 4287 + property-information: 7.0.0 4288 + space-separated-tokens: 2.0.2 4289 + style-to-js: 1.1.16 4290 + unist-util-position: 5.0.0 4291 + vfile-message: 4.0.2 4292 + transitivePeerDependencies: 4293 + - supports-color 4294 + 4295 + hast-util-to-string@3.0.1: 4296 + dependencies: 4297 + '@types/hast': 3.0.4 4298 + 4299 + hast-util-whitespace@3.0.0: 4300 + dependencies: 4301 + '@types/hast': 3.0.4 4302 + 4303 + hastscript@9.0.1: 4304 + dependencies: 4305 + '@types/hast': 3.0.4 4306 + comma-separated-tokens: 2.0.3 4307 + hast-util-parse-selector: 4.0.0 4308 + property-information: 7.0.0 4309 + space-separated-tokens: 2.0.2 4310 + 4311 + html-void-elements@3.0.0: {} 4312 + 4313 + iconify-icon@2.3.0: 4314 + dependencies: 4315 + '@iconify/types': 2.0.0 4316 + 4317 + ignore@5.3.2: {} 4318 + 4319 + import-fresh@3.3.1: 4320 + dependencies: 4321 + parent-module: 1.0.1 4322 + resolve-from: 4.0.0 4323 + 4324 + imurmurhash@0.1.4: {} 4325 + 4326 + inflight@1.0.6: 4327 + dependencies: 4328 + once: 1.4.0 4329 + wrappy: 1.0.2 4330 + 4331 + inherits@2.0.4: {} 4332 + 4333 + inline-style-parser@0.2.4: {} 4334 + 4335 + internal-slot@1.1.0: 4336 + dependencies: 4337 + es-errors: 1.3.0 4338 + hasown: 2.0.2 4339 + side-channel: 1.1.0 4340 + 4341 + invariant@2.2.4: 4342 + dependencies: 4343 + loose-envify: 1.4.0 4344 + 4345 + is-alphabetical@2.0.1: {} 4346 + 4347 + is-alphanumerical@2.0.1: 4348 + dependencies: 4349 + is-alphabetical: 2.0.1 4350 + is-decimal: 2.0.1 4351 + 4352 + is-array-buffer@3.0.5: 4353 + dependencies: 4354 + call-bind: 1.0.8 4355 + call-bound: 1.0.4 4356 + get-intrinsic: 1.3.0 4357 + 4358 + is-arrayish@0.3.2: {} 4359 + 4360 + is-async-function@2.1.1: 4361 + dependencies: 4362 + async-function: 1.0.0 4363 + call-bound: 1.0.4 4364 + get-proto: 1.0.1 4365 + has-tostringtag: 1.0.2 4366 + safe-regex-test: 1.1.0 4367 + 4368 + is-bigint@1.1.0: 4369 + dependencies: 4370 + has-bigints: 1.1.0 4371 + 4372 + is-binary-path@2.1.0: 4373 + dependencies: 4374 + binary-extensions: 2.3.0 4375 + 4376 + is-boolean-object@1.2.2: 4377 + dependencies: 4378 + call-bound: 1.0.4 4379 + has-tostringtag: 1.0.2 4380 + 4381 + is-bun-module@2.0.0: 4382 + dependencies: 4383 + semver: 7.7.1 4384 + 4385 + is-callable@1.2.7: {} 4386 + 4387 + is-core-module@2.16.1: 4388 + dependencies: 4389 + hasown: 2.0.2 4390 + 4391 + is-data-view@1.0.2: 4392 + dependencies: 4393 + call-bound: 1.0.4 4394 + get-intrinsic: 1.3.0 4395 + is-typed-array: 1.1.15 4396 + 4397 + is-date-object@1.1.0: 4398 + dependencies: 4399 + call-bound: 1.0.4 4400 + has-tostringtag: 1.0.2 4401 + 4402 + is-decimal@2.0.1: {} 4403 + 4404 + is-extendable@0.1.1: {} 4405 + 4406 + is-extglob@2.1.1: {} 4407 + 4408 + is-finalizationregistry@1.1.1: 4409 + dependencies: 4410 + call-bound: 1.0.4 4411 + 4412 + is-fullwidth-code-point@3.0.0: {} 4413 + 4414 + is-generator-function@1.1.0: 4415 + dependencies: 4416 + call-bound: 1.0.4 4417 + get-proto: 1.0.1 4418 + has-tostringtag: 1.0.2 4419 + safe-regex-test: 1.1.0 4420 + 4421 + is-glob@4.0.3: 4422 + dependencies: 4423 + is-extglob: 2.1.1 4424 + 4425 + is-hexadecimal@2.0.1: {} 4426 + 4427 + is-map@2.0.3: {} 4428 + 4429 + is-number-object@1.1.1: 4430 + dependencies: 4431 + call-bound: 1.0.4 4432 + has-tostringtag: 1.0.2 4433 + 4434 + is-number@7.0.0: {} 4435 + 4436 + is-path-inside@3.0.3: {} 4437 + 4438 + is-plain-obj@4.1.0: {} 4439 + 4440 + is-regex@1.2.1: 4441 + dependencies: 4442 + call-bound: 1.0.4 4443 + gopd: 1.2.0 4444 + has-tostringtag: 1.0.2 4445 + hasown: 2.0.2 4446 + 4447 + is-set@2.0.3: {} 4448 + 4449 + is-shared-array-buffer@1.0.4: 4450 + dependencies: 4451 + call-bound: 1.0.4 4452 + 4453 + is-ssh@1.4.1: 4454 + dependencies: 4455 + protocols: 2.0.2 4456 + 4457 + is-string@1.1.1: 4458 + dependencies: 4459 + call-bound: 1.0.4 4460 + has-tostringtag: 1.0.2 4461 + 4462 + is-symbol@1.1.1: 4463 + dependencies: 4464 + call-bound: 1.0.4 4465 + has-symbols: 1.1.0 4466 + safe-regex-test: 1.1.0 4467 + 4468 + is-typed-array@1.1.15: 4469 + dependencies: 4470 + which-typed-array: 1.1.19 4471 + 4472 + is-weakmap@2.0.2: {} 4473 + 4474 + is-weakref@1.1.1: 4475 + dependencies: 4476 + call-bound: 1.0.4 4477 + 4478 + is-weakset@2.0.4: 4479 + dependencies: 4480 + call-bound: 1.0.4 4481 + get-intrinsic: 1.3.0 4482 + 4483 + isarray@2.0.5: {} 4484 + 4485 + isexe@2.0.0: {} 4486 + 4487 + iterator.prototype@1.1.5: 4488 + dependencies: 4489 + define-data-property: 1.1.4 4490 + es-object-atoms: 1.1.1 4491 + get-intrinsic: 1.3.0 4492 + get-proto: 1.0.1 4493 + has-symbols: 1.1.0 4494 + set-function-name: 2.0.2 4495 + 4496 + jackspeak@2.3.6: 4497 + dependencies: 4498 + '@isaacs/cliui': 8.0.2 4499 + optionalDependencies: 4500 + '@pkgjs/parseargs': 0.11.0 4501 + 4502 + jackspeak@3.4.3: 4503 + dependencies: 4504 + '@isaacs/cliui': 8.0.2 4505 + optionalDependencies: 4506 + '@pkgjs/parseargs': 0.11.0 4507 + 4508 + jest-worker@27.5.1: 4509 + dependencies: 4510 + '@types/node': 22.14.0 4511 + merge-stream: 2.0.0 4512 + supports-color: 8.1.1 4513 + 4514 + jiti@1.21.7: {} 4515 + 4516 + js-tokens@4.0.0: {} 4517 + 4518 + js-yaml@3.14.1: 4519 + dependencies: 4520 + argparse: 1.0.10 4521 + esprima: 4.0.1 4522 + 4523 + js-yaml@4.1.0: 4524 + dependencies: 4525 + argparse: 2.0.1 4526 + 4527 + json-buffer@3.0.1: {} 4528 + 4529 + json-parse-even-better-errors@2.3.1: {} 4530 + 4531 + json-schema-traverse@0.4.1: {} 4532 + 4533 + json-schema-traverse@1.0.0: {} 4534 + 4535 + json-stable-stringify-without-jsonify@1.0.1: {} 4536 + 4537 + json5@1.0.2: 4538 + dependencies: 4539 + minimist: 1.2.8 4540 + 4541 + jsx-ast-utils@3.3.5: 4542 + dependencies: 4543 + array-includes: 3.1.8 4544 + array.prototype.flat: 1.3.3 4545 + object.assign: 4.1.7 4546 + object.values: 1.2.1 4547 + 4548 + just-unique@4.2.0: {} 4549 + 4550 + keyv@4.5.4: 4551 + dependencies: 4552 + json-buffer: 3.0.1 4553 + 4554 + kind-of@6.0.3: {} 4555 + 4556 + language-subtag-registry@0.3.23: {} 4557 + 4558 + language-tags@1.0.9: 4559 + dependencies: 4560 + language-subtag-registry: 0.3.23 4561 + 4562 + levn@0.4.1: 4563 + dependencies: 4564 + prelude-ls: 1.2.1 4565 + type-check: 0.4.0 4566 + 4567 + lilconfig@2.1.0: {} 4568 + 4569 + lilconfig@3.1.3: {} 4570 + 4571 + lines-and-columns@1.2.4: {} 4572 + 4573 + loader-runner@4.3.0: {} 4574 + 4575 + locate-path@6.0.0: 4576 + dependencies: 4577 + p-locate: 5.0.0 4578 + 4579 + lodash.merge@4.6.2: {} 4580 + 4581 + lodash.mergewith@4.6.2: {} 4582 + 4583 + lodash.uniq@4.5.0: {} 4584 + 4585 + lodash@4.17.21: {} 4586 + 4587 + longest-streak@3.1.0: {} 4588 + 4589 + loose-envify@1.4.0: 4590 + dependencies: 4591 + js-tokens: 4.0.0 4592 + 4593 + lru-cache@10.4.3: {} 4594 + 4595 + markdown-extensions@2.0.0: {} 4596 + 4597 + markdown-table@3.0.4: {} 4598 + 4599 + math-intrinsics@1.1.0: {} 4600 + 4601 + mdast-util-find-and-replace@3.0.2: 4602 + dependencies: 4603 + '@types/mdast': 4.0.4 4604 + escape-string-regexp: 5.0.0 4605 + unist-util-is: 6.0.0 4606 + unist-util-visit-parents: 6.0.1 4607 + 4608 + mdast-util-from-markdown@2.0.2: 4609 + dependencies: 4610 + '@types/mdast': 4.0.4 4611 + '@types/unist': 3.0.3 4612 + decode-named-character-reference: 1.1.0 4613 + devlop: 1.1.0 4614 + mdast-util-to-string: 4.0.0 4615 + micromark: 4.0.2 4616 + micromark-util-decode-numeric-character-reference: 2.0.2 4617 + micromark-util-decode-string: 2.0.1 4618 + micromark-util-normalize-identifier: 2.0.1 4619 + micromark-util-symbol: 2.0.1 4620 + micromark-util-types: 2.0.2 4621 + unist-util-stringify-position: 4.0.0 4622 + transitivePeerDependencies: 4623 + - supports-color 4624 + 4625 + mdast-util-frontmatter@2.0.1: 4626 + dependencies: 4627 + '@types/mdast': 4.0.4 4628 + devlop: 1.1.0 4629 + escape-string-regexp: 5.0.0 4630 + mdast-util-from-markdown: 2.0.2 4631 + mdast-util-to-markdown: 2.1.2 4632 + micromark-extension-frontmatter: 2.0.0 4633 + transitivePeerDependencies: 4634 + - supports-color 4635 + 4636 + mdast-util-gfm-autolink-literal@2.0.1: 4637 + dependencies: 4638 + '@types/mdast': 4.0.4 4639 + ccount: 2.0.1 4640 + devlop: 1.1.0 4641 + mdast-util-find-and-replace: 3.0.2 4642 + micromark-util-character: 2.1.1 4643 + 4644 + mdast-util-gfm-footnote@2.1.0: 4645 + dependencies: 4646 + '@types/mdast': 4.0.4 4647 + devlop: 1.1.0 4648 + mdast-util-from-markdown: 2.0.2 4649 + mdast-util-to-markdown: 2.1.2 4650 + micromark-util-normalize-identifier: 2.0.1 4651 + transitivePeerDependencies: 4652 + - supports-color 4653 + 4654 + mdast-util-gfm-strikethrough@2.0.0: 4655 + dependencies: 4656 + '@types/mdast': 4.0.4 4657 + mdast-util-from-markdown: 2.0.2 4658 + mdast-util-to-markdown: 2.1.2 4659 + transitivePeerDependencies: 4660 + - supports-color 4661 + 4662 + mdast-util-gfm-table@2.0.0: 4663 + dependencies: 4664 + '@types/mdast': 4.0.4 4665 + devlop: 1.1.0 4666 + markdown-table: 3.0.4 4667 + mdast-util-from-markdown: 2.0.2 4668 + mdast-util-to-markdown: 2.1.2 4669 + transitivePeerDependencies: 4670 + - supports-color 4671 + 4672 + mdast-util-gfm-task-list-item@2.0.0: 4673 + dependencies: 4674 + '@types/mdast': 4.0.4 4675 + devlop: 1.1.0 4676 + mdast-util-from-markdown: 2.0.2 4677 + mdast-util-to-markdown: 2.1.2 4678 + transitivePeerDependencies: 4679 + - supports-color 4680 + 4681 + mdast-util-gfm@3.1.0: 4682 + dependencies: 4683 + mdast-util-from-markdown: 2.0.2 4684 + mdast-util-gfm-autolink-literal: 2.0.1 4685 + mdast-util-gfm-footnote: 2.1.0 4686 + mdast-util-gfm-strikethrough: 2.0.0 4687 + mdast-util-gfm-table: 2.0.0 4688 + mdast-util-gfm-task-list-item: 2.0.0 4689 + mdast-util-to-markdown: 2.1.2 4690 + transitivePeerDependencies: 4691 + - supports-color 4692 + 4693 + mdast-util-mdx-expression@2.0.1: 4694 + dependencies: 4695 + '@types/estree-jsx': 1.0.5 4696 + '@types/hast': 3.0.4 4697 + '@types/mdast': 4.0.4 4698 + devlop: 1.1.0 4699 + mdast-util-from-markdown: 2.0.2 4700 + mdast-util-to-markdown: 2.1.2 4701 + transitivePeerDependencies: 4702 + - supports-color 4703 + 4704 + mdast-util-mdx-jsx@3.2.0: 4705 + dependencies: 4706 + '@types/estree-jsx': 1.0.5 4707 + '@types/hast': 3.0.4 4708 + '@types/mdast': 4.0.4 4709 + '@types/unist': 3.0.3 4710 + ccount: 2.0.1 4711 + devlop: 1.1.0 4712 + mdast-util-from-markdown: 2.0.2 4713 + mdast-util-to-markdown: 2.1.2 4714 + parse-entities: 4.0.2 4715 + stringify-entities: 4.0.4 4716 + unist-util-stringify-position: 4.0.0 4717 + vfile-message: 4.0.2 4718 + transitivePeerDependencies: 4719 + - supports-color 4720 + 4721 + mdast-util-mdx@3.0.0: 4722 + dependencies: 4723 + mdast-util-from-markdown: 2.0.2 4724 + mdast-util-mdx-expression: 2.0.1 4725 + mdast-util-mdx-jsx: 3.2.0 4726 + mdast-util-mdxjs-esm: 2.0.1 4727 + mdast-util-to-markdown: 2.1.2 4728 + transitivePeerDependencies: 4729 + - supports-color 4730 + 4731 + mdast-util-mdxjs-esm@2.0.1: 4732 + dependencies: 4733 + '@types/estree-jsx': 1.0.5 4734 + '@types/hast': 3.0.4 4735 + '@types/mdast': 4.0.4 4736 + devlop: 1.1.0 4737 + mdast-util-from-markdown: 2.0.2 4738 + mdast-util-to-markdown: 2.1.2 4739 + transitivePeerDependencies: 4740 + - supports-color 4741 + 4742 + mdast-util-phrasing@4.1.0: 4743 + dependencies: 4744 + '@types/mdast': 4.0.4 4745 + unist-util-is: 6.0.0 4746 + 4747 + mdast-util-to-hast@13.2.0: 4748 + dependencies: 4749 + '@types/hast': 3.0.4 4750 + '@types/mdast': 4.0.4 4751 + '@ungap/structured-clone': 1.3.0 4752 + devlop: 1.1.0 4753 + micromark-util-sanitize-uri: 2.0.1 4754 + trim-lines: 3.0.1 4755 + unist-util-position: 5.0.0 4756 + unist-util-visit: 5.0.0 4757 + vfile: 6.0.3 4758 + 4759 + mdast-util-to-markdown@2.1.2: 4760 + dependencies: 4761 + '@types/mdast': 4.0.4 4762 + '@types/unist': 3.0.3 4763 + longest-streak: 3.1.0 4764 + mdast-util-phrasing: 4.1.0 4765 + mdast-util-to-string: 4.0.0 4766 + micromark-util-classify-character: 2.0.1 4767 + micromark-util-decode-string: 2.0.1 4768 + unist-util-visit: 5.0.0 4769 + zwitch: 2.0.4 4770 + 4771 + mdast-util-to-string@3.2.0: 4772 + dependencies: 4773 + '@types/mdast': 3.0.15 4774 + 4775 + mdast-util-to-string@4.0.0: 4776 + dependencies: 4777 + '@types/mdast': 4.0.4 4778 + 4779 + merge-stream@2.0.0: {} 4780 + 4781 + merge2@1.4.1: {} 4782 + 4783 + micromark-core-commonmark@2.0.3: 4784 + dependencies: 4785 + decode-named-character-reference: 1.1.0 4786 + devlop: 1.1.0 4787 + micromark-factory-destination: 2.0.1 4788 + micromark-factory-label: 2.0.1 4789 + micromark-factory-space: 2.0.1 4790 + micromark-factory-title: 2.0.1 4791 + micromark-factory-whitespace: 2.0.1 4792 + micromark-util-character: 2.1.1 4793 + micromark-util-chunked: 2.0.1 4794 + micromark-util-classify-character: 2.0.1 4795 + micromark-util-html-tag-name: 2.0.1 4796 + micromark-util-normalize-identifier: 2.0.1 4797 + micromark-util-resolve-all: 2.0.1 4798 + micromark-util-subtokenize: 2.1.0 4799 + micromark-util-symbol: 2.0.1 4800 + micromark-util-types: 2.0.2 4801 + 4802 + micromark-extension-frontmatter@2.0.0: 4803 + dependencies: 4804 + fault: 2.0.1 4805 + micromark-util-character: 2.1.1 4806 + micromark-util-symbol: 2.0.1 4807 + micromark-util-types: 2.0.2 4808 + 4809 + micromark-extension-gfm-autolink-literal@2.1.0: 4810 + dependencies: 4811 + micromark-util-character: 2.1.1 4812 + micromark-util-sanitize-uri: 2.0.1 4813 + micromark-util-symbol: 2.0.1 4814 + micromark-util-types: 2.0.2 4815 + 4816 + micromark-extension-gfm-footnote@2.1.0: 4817 + dependencies: 4818 + devlop: 1.1.0 4819 + micromark-core-commonmark: 2.0.3 4820 + micromark-factory-space: 2.0.1 4821 + micromark-util-character: 2.1.1 4822 + micromark-util-normalize-identifier: 2.0.1 4823 + micromark-util-sanitize-uri: 2.0.1 4824 + micromark-util-symbol: 2.0.1 4825 + micromark-util-types: 2.0.2 4826 + 4827 + micromark-extension-gfm-strikethrough@2.1.0: 4828 + dependencies: 4829 + devlop: 1.1.0 4830 + micromark-util-chunked: 2.0.1 4831 + micromark-util-classify-character: 2.0.1 4832 + micromark-util-resolve-all: 2.0.1 4833 + micromark-util-symbol: 2.0.1 4834 + micromark-util-types: 2.0.2 4835 + 4836 + micromark-extension-gfm-table@2.1.1: 4837 + dependencies: 4838 + devlop: 1.1.0 4839 + micromark-factory-space: 2.0.1 4840 + micromark-util-character: 2.1.1 4841 + micromark-util-symbol: 2.0.1 4842 + micromark-util-types: 2.0.2 4843 + 4844 + micromark-extension-gfm-tagfilter@2.0.0: 4845 + dependencies: 4846 + micromark-util-types: 2.0.2 4847 + 4848 + micromark-extension-gfm-task-list-item@2.1.0: 4849 + dependencies: 4850 + devlop: 1.1.0 4851 + micromark-factory-space: 2.0.1 4852 + micromark-util-character: 2.1.1 4853 + micromark-util-symbol: 2.0.1 4854 + micromark-util-types: 2.0.2 4855 + 4856 + micromark-extension-gfm@3.0.0: 4857 + dependencies: 4858 + micromark-extension-gfm-autolink-literal: 2.1.0 4859 + micromark-extension-gfm-footnote: 2.1.0 4860 + micromark-extension-gfm-strikethrough: 2.1.0 4861 + micromark-extension-gfm-table: 2.1.1 4862 + micromark-extension-gfm-tagfilter: 2.0.0 4863 + micromark-extension-gfm-task-list-item: 2.1.0 4864 + micromark-util-combine-extensions: 2.0.1 4865 + micromark-util-types: 2.0.2 4866 + 4867 + micromark-extension-mdx-expression@3.0.1: 4868 + dependencies: 4869 + '@types/estree': 1.0.7 4870 + devlop: 1.1.0 4871 + micromark-factory-mdx-expression: 2.0.3 4872 + micromark-factory-space: 2.0.1 4873 + micromark-util-character: 2.1.1 4874 + micromark-util-events-to-acorn: 2.0.3 4875 + micromark-util-symbol: 2.0.1 4876 + micromark-util-types: 2.0.2 4877 + 4878 + micromark-extension-mdx-jsx@3.0.2: 4879 + dependencies: 4880 + '@types/estree': 1.0.7 4881 + devlop: 1.1.0 4882 + estree-util-is-identifier-name: 3.0.0 4883 + micromark-factory-mdx-expression: 2.0.3 4884 + micromark-factory-space: 2.0.1 4885 + micromark-util-character: 2.1.1 4886 + micromark-util-events-to-acorn: 2.0.3 4887 + micromark-util-symbol: 2.0.1 4888 + micromark-util-types: 2.0.2 4889 + vfile-message: 4.0.2 4890 + 4891 + micromark-extension-mdx-md@2.0.0: 4892 + dependencies: 4893 + micromark-util-types: 2.0.2 4894 + 4895 + micromark-extension-mdxjs-esm@3.0.0: 4896 + dependencies: 4897 + '@types/estree': 1.0.7 4898 + devlop: 1.1.0 4899 + micromark-core-commonmark: 2.0.3 4900 + micromark-util-character: 2.1.1 4901 + micromark-util-events-to-acorn: 2.0.3 4902 + micromark-util-symbol: 2.0.1 4903 + micromark-util-types: 2.0.2 4904 + unist-util-position-from-estree: 2.0.0 4905 + vfile-message: 4.0.2 4906 + 4907 + micromark-extension-mdxjs@3.0.0: 4908 + dependencies: 4909 + acorn: 8.14.1 4910 + acorn-jsx: 5.3.2(acorn@8.14.1) 4911 + micromark-extension-mdx-expression: 3.0.1 4912 + micromark-extension-mdx-jsx: 3.0.2 4913 + micromark-extension-mdx-md: 2.0.0 4914 + micromark-extension-mdxjs-esm: 3.0.0 4915 + micromark-util-combine-extensions: 2.0.1 4916 + micromark-util-types: 2.0.2 4917 + 4918 + micromark-factory-destination@2.0.1: 4919 + dependencies: 4920 + micromark-util-character: 2.1.1 4921 + micromark-util-symbol: 2.0.1 4922 + micromark-util-types: 2.0.2 4923 + 4924 + micromark-factory-label@2.0.1: 4925 + dependencies: 4926 + devlop: 1.1.0 4927 + micromark-util-character: 2.1.1 4928 + micromark-util-symbol: 2.0.1 4929 + micromark-util-types: 2.0.2 4930 + 4931 + micromark-factory-mdx-expression@2.0.3: 4932 + dependencies: 4933 + '@types/estree': 1.0.7 4934 + devlop: 1.1.0 4935 + micromark-factory-space: 2.0.1 4936 + micromark-util-character: 2.1.1 4937 + micromark-util-events-to-acorn: 2.0.3 4938 + micromark-util-symbol: 2.0.1 4939 + micromark-util-types: 2.0.2 4940 + unist-util-position-from-estree: 2.0.0 4941 + vfile-message: 4.0.2 4942 + 4943 + micromark-factory-space@2.0.1: 4944 + dependencies: 4945 + micromark-util-character: 2.1.1 4946 + micromark-util-types: 2.0.2 4947 + 4948 + micromark-factory-title@2.0.1: 4949 + dependencies: 4950 + micromark-factory-space: 2.0.1 4951 + micromark-util-character: 2.1.1 4952 + micromark-util-symbol: 2.0.1 4953 + micromark-util-types: 2.0.2 4954 + 4955 + micromark-factory-whitespace@2.0.1: 4956 + dependencies: 4957 + micromark-factory-space: 2.0.1 4958 + micromark-util-character: 2.1.1 4959 + micromark-util-symbol: 2.0.1 4960 + micromark-util-types: 2.0.2 4961 + 4962 + micromark-util-character@2.1.1: 4963 + dependencies: 4964 + micromark-util-symbol: 2.0.1 4965 + micromark-util-types: 2.0.2 4966 + 4967 + micromark-util-chunked@2.0.1: 4968 + dependencies: 4969 + micromark-util-symbol: 2.0.1 4970 + 4971 + micromark-util-classify-character@2.0.1: 4972 + dependencies: 4973 + micromark-util-character: 2.1.1 4974 + micromark-util-symbol: 2.0.1 4975 + micromark-util-types: 2.0.2 4976 + 4977 + micromark-util-combine-extensions@2.0.1: 4978 + dependencies: 4979 + micromark-util-chunked: 2.0.1 4980 + micromark-util-types: 2.0.2 4981 + 4982 + micromark-util-decode-numeric-character-reference@2.0.2: 4983 + dependencies: 4984 + micromark-util-symbol: 2.0.1 4985 + 4986 + micromark-util-decode-string@2.0.1: 4987 + dependencies: 4988 + decode-named-character-reference: 1.1.0 4989 + micromark-util-character: 2.1.1 4990 + micromark-util-decode-numeric-character-reference: 2.0.2 4991 + micromark-util-symbol: 2.0.1 4992 + 4993 + micromark-util-encode@2.0.1: {} 4994 + 4995 + micromark-util-events-to-acorn@2.0.3: 4996 + dependencies: 4997 + '@types/estree': 1.0.7 4998 + '@types/unist': 3.0.3 4999 + devlop: 1.1.0 5000 + estree-util-visit: 2.0.0 5001 + micromark-util-symbol: 2.0.1 5002 + micromark-util-types: 2.0.2 5003 + vfile-message: 4.0.2 5004 + 5005 + micromark-util-html-tag-name@2.0.1: {} 5006 + 5007 + micromark-util-normalize-identifier@2.0.1: 5008 + dependencies: 5009 + micromark-util-symbol: 2.0.1 5010 + 5011 + micromark-util-resolve-all@2.0.1: 5012 + dependencies: 5013 + micromark-util-types: 2.0.2 5014 + 5015 + micromark-util-sanitize-uri@2.0.1: 5016 + dependencies: 5017 + micromark-util-character: 2.1.1 5018 + micromark-util-encode: 2.0.1 5019 + micromark-util-symbol: 2.0.1 5020 + 5021 + micromark-util-subtokenize@2.1.0: 5022 + dependencies: 5023 + devlop: 1.1.0 5024 + micromark-util-chunked: 2.0.1 5025 + micromark-util-symbol: 2.0.1 5026 + micromark-util-types: 2.0.2 5027 + 5028 + micromark-util-symbol@2.0.1: {} 5029 + 5030 + micromark-util-types@2.0.2: {} 5031 + 5032 + micromark@4.0.2: 5033 + dependencies: 5034 + '@types/debug': 4.1.12 5035 + debug: 4.4.0 5036 + decode-named-character-reference: 1.1.0 5037 + devlop: 1.1.0 5038 + micromark-core-commonmark: 2.0.3 5039 + micromark-factory-space: 2.0.1 5040 + micromark-util-character: 2.1.1 5041 + micromark-util-chunked: 2.0.1 5042 + micromark-util-combine-extensions: 2.0.1 5043 + micromark-util-decode-numeric-character-reference: 2.0.2 5044 + micromark-util-encode: 2.0.1 5045 + micromark-util-normalize-identifier: 2.0.1 5046 + micromark-util-resolve-all: 2.0.1 5047 + micromark-util-sanitize-uri: 2.0.1 5048 + micromark-util-subtokenize: 2.1.0 5049 + micromark-util-symbol: 2.0.1 5050 + micromark-util-types: 2.0.2 5051 + transitivePeerDependencies: 5052 + - supports-color 5053 + 5054 + micromatch@4.0.8: 5055 + dependencies: 5056 + braces: 3.0.3 5057 + picomatch: 2.3.1 5058 + 5059 + mime-db@1.52.0: {} 5060 + 5061 + mime-types@2.1.35: 5062 + dependencies: 5063 + mime-db: 1.52.0 5064 + 5065 + minimatch@3.1.2: 5066 + dependencies: 5067 + brace-expansion: 1.1.11 5068 + 5069 + minimatch@9.0.5: 5070 + dependencies: 5071 + brace-expansion: 2.0.1 5072 + 5073 + minimist@1.2.8: {} 5074 + 5075 + minipass@7.1.2: {} 5076 + 5077 + ms@2.1.3: {} 5078 + 5079 + mz@2.7.0: 5080 + dependencies: 5081 + any-promise: 1.3.0 5082 + object-assign: 4.1.1 5083 + thenify-all: 1.6.0 5084 + 5085 + nanoid@3.3.11: {} 5086 + 5087 + natural-compare@1.4.0: {} 5088 + 5089 + neo-async@2.6.2: {} 5090 + 5091 + next-seo@6.6.0(next@14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 5092 + dependencies: 5093 + next: 14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 5094 + react: 18.3.1 5095 + react-dom: 18.3.1(react@18.3.1) 5096 + 5097 + next@14.2.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 5098 + dependencies: 5099 + '@next/env': 14.2.26 5100 + '@swc/helpers': 0.5.5 5101 + busboy: 1.6.0 5102 + caniuse-lite: 1.0.30001712 5103 + graceful-fs: 4.2.11 5104 + postcss: 8.4.31 5105 + react: 18.3.1 5106 + react-dom: 18.3.1(react@18.3.1) 5107 + styled-jsx: 5.1.1(react@18.3.1) 5108 + optionalDependencies: 5109 + '@next/swc-darwin-arm64': 14.2.26 5110 + '@next/swc-darwin-x64': 14.2.26 5111 + '@next/swc-linux-arm64-gnu': 14.2.26 5112 + '@next/swc-linux-arm64-musl': 14.2.26 5113 + '@next/swc-linux-x64-gnu': 14.2.26 5114 + '@next/swc-linux-x64-musl': 14.2.26 5115 + '@next/swc-win32-arm64-msvc': 14.2.26 5116 + '@next/swc-win32-ia32-msvc': 14.2.26 5117 + '@next/swc-win32-x64-msvc': 14.2.26 5118 + transitivePeerDependencies: 5119 + - '@babel/core' 5120 + - babel-plugin-macros 5121 + 5122 + node-releases@2.0.19: {} 5123 + 5124 + normalize-path@3.0.0: {} 5125 + 5126 + npm-to-yarn@3.0.1: {} 5127 + 5128 + object-assign@4.1.1: {} 5129 + 5130 + object-hash@3.0.0: {} 5131 + 5132 + object-inspect@1.13.4: {} 5133 + 5134 + object-keys@1.1.1: {} 5135 + 5136 + object.assign@4.1.7: 5137 + dependencies: 5138 + call-bind: 1.0.8 5139 + call-bound: 1.0.4 5140 + define-properties: 1.2.1 5141 + es-object-atoms: 1.1.1 5142 + has-symbols: 1.1.0 5143 + object-keys: 1.1.1 5144 + 5145 + object.entries@1.1.9: 5146 + dependencies: 5147 + call-bind: 1.0.8 5148 + call-bound: 1.0.4 5149 + define-properties: 1.2.1 5150 + es-object-atoms: 1.1.1 5151 + 5152 + object.fromentries@2.0.8: 5153 + dependencies: 5154 + call-bind: 1.0.8 5155 + define-properties: 1.2.1 5156 + es-abstract: 1.23.9 5157 + es-object-atoms: 1.1.1 5158 + 5159 + object.groupby@1.0.3: 5160 + dependencies: 5161 + call-bind: 1.0.8 5162 + define-properties: 1.2.1 5163 + es-abstract: 1.23.9 5164 + 5165 + object.values@1.2.1: 5166 + dependencies: 5167 + call-bind: 1.0.8 5168 + call-bound: 1.0.4 5169 + define-properties: 1.2.1 5170 + es-object-atoms: 1.1.1 5171 + 5172 + once@1.4.0: 5173 + dependencies: 5174 + wrappy: 1.0.2 5175 + 5176 + oniguruma-to-es@2.3.0: 5177 + dependencies: 5178 + emoji-regex-xs: 1.0.0 5179 + regex: 5.1.1 5180 + regex-recursion: 5.1.1 5181 + 5182 + optionator@0.9.4: 5183 + dependencies: 5184 + deep-is: 0.1.4 5185 + fast-levenshtein: 2.0.6 5186 + levn: 0.4.1 5187 + prelude-ls: 1.2.1 5188 + type-check: 0.4.0 5189 + word-wrap: 1.2.5 5190 + 5191 + own-keys@1.0.1: 5192 + dependencies: 5193 + get-intrinsic: 1.3.0 5194 + object-keys: 1.1.1 5195 + safe-push-apply: 1.0.0 5196 + 5197 + p-limit@3.1.0: 5198 + dependencies: 5199 + yocto-queue: 0.1.0 5200 + 5201 + p-locate@5.0.0: 5202 + dependencies: 5203 + p-limit: 3.1.0 5204 + 5205 + package-json-from-dist@1.0.1: {} 5206 + 5207 + parent-module@1.0.1: 5208 + dependencies: 5209 + callsites: 3.1.0 5210 + 5211 + parse-entities@4.0.2: 5212 + dependencies: 5213 + '@types/unist': 2.0.11 5214 + character-entities-legacy: 3.0.0 5215 + character-reference-invalid: 2.0.1 5216 + decode-named-character-reference: 1.1.0 5217 + is-alphanumerical: 2.0.1 5218 + is-decimal: 2.0.1 5219 + is-hexadecimal: 2.0.1 5220 + 5221 + parse-numeric-range@1.3.0: {} 5222 + 5223 + parse-path@7.0.1: 5224 + dependencies: 5225 + protocols: 2.0.2 5226 + 5227 + parse-url@8.1.0: 5228 + dependencies: 5229 + parse-path: 7.0.1 5230 + 5231 + parse5@7.2.1: 5232 + dependencies: 5233 + entities: 4.5.0 5234 + 5235 + path-exists@4.0.0: {} 5236 + 5237 + path-is-absolute@1.0.1: {} 5238 + 5239 + path-key@3.1.1: {} 5240 + 5241 + path-parse@1.0.7: {} 5242 + 5243 + path-scurry@1.11.1: 5244 + dependencies: 5245 + lru-cache: 10.4.3 5246 + minipass: 7.1.2 5247 + 5248 + picocolors@1.1.1: {} 5249 + 5250 + picomatch@2.3.1: {} 5251 + 5252 + picomatch@4.0.2: {} 5253 + 5254 + pify@2.3.0: {} 5255 + 5256 + pirates@4.0.7: {} 5257 + 5258 + possible-typed-array-names@1.1.0: {} 5259 + 5260 + postcss-import@15.1.0(postcss@8.5.3): 5261 + dependencies: 5262 + postcss: 8.5.3 5263 + postcss-value-parser: 4.2.0 5264 + read-cache: 1.0.0 5265 + resolve: 1.22.10 5266 + 5267 + postcss-js@4.0.1(postcss@8.5.3): 5268 + dependencies: 5269 + camelcase-css: 2.0.1 5270 + postcss: 8.5.3 5271 + 5272 + postcss-load-config@4.0.2(postcss@8.5.3): 5273 + dependencies: 5274 + lilconfig: 3.1.3 5275 + yaml: 2.7.1 5276 + optionalDependencies: 5277 + postcss: 8.5.3 5278 + 5279 + postcss-nested@6.2.0(postcss@8.5.3): 5280 + dependencies: 5281 + postcss: 8.5.3 5282 + postcss-selector-parser: 6.1.2 5283 + 5284 + postcss-selector-parser@6.1.2: 5285 + dependencies: 5286 + cssesc: 3.0.0 5287 + util-deprecate: 1.0.2 5288 + 5289 + postcss-value-parser@4.2.0: {} 5290 + 5291 + postcss@8.4.31: 5292 + dependencies: 5293 + nanoid: 3.3.11 5294 + picocolors: 1.1.1 5295 + source-map-js: 1.2.1 5296 + 5297 + postcss@8.5.3: 5298 + dependencies: 5299 + nanoid: 3.3.11 5300 + picocolors: 1.1.1 5301 + source-map-js: 1.2.1 5302 + 5303 + prelude-ls@1.2.1: {} 5304 + 5305 + prettier-linter-helpers@1.0.0: 5306 + dependencies: 5307 + fast-diff: 1.3.0 5308 + 5309 + prettier@3.5.3: {} 5310 + 5311 + prop-types@15.8.1: 5312 + dependencies: 5313 + loose-envify: 1.4.0 5314 + object-assign: 4.1.1 5315 + react-is: 16.13.1 5316 + 5317 + property-information@7.0.0: {} 5318 + 5319 + protocols@2.0.2: {} 5320 + 5321 + punycode@2.3.1: {} 5322 + 5323 + queue-microtask@1.2.3: {} 5324 + 5325 + randombytes@2.1.0: 5326 + dependencies: 5327 + safe-buffer: 5.2.1 5328 + 5329 + react-dom@18.3.1(react@18.3.1): 5330 + dependencies: 5331 + loose-envify: 1.4.0 5332 + react: 18.3.1 5333 + scheduler: 0.23.2 5334 + 5335 + react-fast-compare@3.2.2: {} 5336 + 5337 + react-helmet-async@2.0.5(react@18.3.1): 5338 + dependencies: 5339 + invariant: 2.2.4 5340 + react: 18.3.1 5341 + react-fast-compare: 3.2.2 5342 + shallowequal: 1.1.0 5343 + 5344 + react-is@16.13.1: {} 5345 + 5346 + react@18.3.1: 5347 + dependencies: 5348 + loose-envify: 1.4.0 5349 + 5350 + read-cache@1.0.0: 5351 + dependencies: 5352 + pify: 2.3.0 5353 + 5354 + readdirp@3.6.0: 5355 + dependencies: 5356 + picomatch: 2.3.1 5357 + 5358 + recma-build-jsx@1.0.0: 5359 + dependencies: 5360 + '@types/estree': 1.0.7 5361 + estree-util-build-jsx: 3.0.1 5362 + vfile: 6.0.3 5363 + 5364 + recma-jsx@1.0.0(acorn@8.14.1): 5365 + dependencies: 5366 + acorn-jsx: 5.3.2(acorn@8.14.1) 5367 + estree-util-to-js: 2.0.0 5368 + recma-parse: 1.0.0 5369 + recma-stringify: 1.0.0 5370 + unified: 11.0.5 5371 + transitivePeerDependencies: 5372 + - acorn 5373 + 5374 + recma-parse@1.0.0: 5375 + dependencies: 5376 + '@types/estree': 1.0.7 5377 + esast-util-from-js: 2.0.1 5378 + unified: 11.0.5 5379 + vfile: 6.0.3 5380 + 5381 + recma-stringify@1.0.0: 5382 + dependencies: 5383 + '@types/estree': 1.0.7 5384 + estree-util-to-js: 2.0.0 5385 + unified: 11.0.5 5386 + vfile: 6.0.3 5387 + 5388 + reflect.getprototypeof@1.0.10: 5389 + dependencies: 5390 + call-bind: 1.0.8 5391 + define-properties: 1.2.1 5392 + es-abstract: 1.23.9 5393 + es-errors: 1.3.0 5394 + es-object-atoms: 1.1.1 5395 + get-intrinsic: 1.3.0 5396 + get-proto: 1.0.1 5397 + which-builtin-type: 1.2.1 5398 + 5399 + regex-recursion@5.1.1: 5400 + dependencies: 5401 + regex: 5.1.1 5402 + regex-utilities: 2.3.0 5403 + 5404 + regex-utilities@2.3.0: {} 5405 + 5406 + regex@5.1.1: 5407 + dependencies: 5408 + regex-utilities: 2.3.0 5409 + 5410 + regexp.prototype.flags@1.5.4: 5411 + dependencies: 5412 + call-bind: 1.0.8 5413 + define-properties: 1.2.1 5414 + es-errors: 1.3.0 5415 + get-proto: 1.0.1 5416 + gopd: 1.2.0 5417 + set-function-name: 2.0.2 5418 + 5419 + rehype-extract-excerpt@0.3.1: 5420 + dependencies: 5421 + hast-util-to-string: 3.0.1 5422 + unist-util-visit: 5.0.0 5423 + 5424 + rehype-parse@9.0.1: 5425 + dependencies: 5426 + '@types/hast': 3.0.4 5427 + hast-util-from-html: 2.0.3 5428 + unified: 11.0.5 5429 + 5430 + rehype-pretty-code@0.13.2(shiki@1.29.2): 5431 + dependencies: 5432 + '@types/hast': 3.0.4 5433 + hast-util-to-string: 3.0.1 5434 + parse-numeric-range: 1.3.0 5435 + rehype-parse: 9.0.1 5436 + shiki: 1.29.2 5437 + unified: 11.0.5 5438 + unist-util-visit: 5.0.0 5439 + 5440 + rehype-recma@1.0.0: 5441 + dependencies: 5442 + '@types/estree': 1.0.7 5443 + '@types/hast': 3.0.4 5444 + hast-util-to-estree: 3.1.3 5445 + transitivePeerDependencies: 5446 + - supports-color 5447 + 5448 + remark-frontmatter@5.0.0: 5449 + dependencies: 5450 + '@types/mdast': 4.0.4 5451 + mdast-util-frontmatter: 2.0.1 5452 + micromark-extension-frontmatter: 2.0.0 5453 + unified: 11.0.5 5454 + transitivePeerDependencies: 5455 + - supports-color 5456 + 5457 + remark-gfm@4.0.1: 5458 + dependencies: 5459 + '@types/mdast': 4.0.4 5460 + mdast-util-gfm: 3.1.0 5461 + micromark-extension-gfm: 3.0.0 5462 + remark-parse: 11.0.0 5463 + remark-stringify: 11.0.0 5464 + unified: 11.0.5 5465 + transitivePeerDependencies: 5466 + - supports-color 5467 + 5468 + remark-heading-id@1.0.1: 5469 + dependencies: 5470 + lodash: 4.17.21 5471 + unist-util-visit: 1.4.1 5472 + 5473 + remark-link-rewrite@1.0.7: 5474 + dependencies: 5475 + unist-util-visit: 4.1.2 5476 + 5477 + remark-mdx@3.1.0: 5478 + dependencies: 5479 + mdast-util-mdx: 3.0.0 5480 + micromark-extension-mdxjs: 3.0.0 5481 + transitivePeerDependencies: 5482 + - supports-color 5483 + 5484 + remark-parse@11.0.0: 5485 + dependencies: 5486 + '@types/mdast': 4.0.4 5487 + mdast-util-from-markdown: 2.0.2 5488 + micromark-util-types: 2.0.2 5489 + unified: 11.0.5 5490 + transitivePeerDependencies: 5491 + - supports-color 5492 + 5493 + remark-rehype@11.1.2: 5494 + dependencies: 5495 + '@types/hast': 3.0.4 5496 + '@types/mdast': 4.0.4 5497 + mdast-util-to-hast: 13.2.0 5498 + unified: 11.0.5 5499 + vfile: 6.0.3 5500 + 5501 + remark-stringify@11.0.0: 5502 + dependencies: 5503 + '@types/mdast': 4.0.4 5504 + mdast-util-to-markdown: 2.1.2 5505 + unified: 11.0.5 5506 + 5507 + require-from-string@2.0.2: {} 5508 + 5509 + resolve-from@4.0.0: {} 5510 + 5511 + resolve-pkg-maps@1.0.0: {} 5512 + 5513 + resolve@1.22.10: 5514 + dependencies: 5515 + is-core-module: 2.16.1 5516 + path-parse: 1.0.7 5517 + supports-preserve-symlinks-flag: 1.0.0 5518 + 5519 + resolve@2.0.0-next.5: 5520 + dependencies: 5521 + is-core-module: 2.16.1 5522 + path-parse: 1.0.7 5523 + supports-preserve-symlinks-flag: 1.0.0 5524 + 5525 + reusify@1.1.0: {} 5526 + 5527 + rimraf@3.0.2: 5528 + dependencies: 5529 + glob: 7.2.3 5530 + 5531 + run-parallel@1.2.0: 5532 + dependencies: 5533 + queue-microtask: 1.2.3 5534 + 5535 + safe-array-concat@1.1.3: 5536 + dependencies: 5537 + call-bind: 1.0.8 5538 + call-bound: 1.0.4 5539 + get-intrinsic: 1.3.0 5540 + has-symbols: 1.1.0 5541 + isarray: 2.0.5 5542 + 5543 + safe-buffer@5.2.1: {} 5544 + 5545 + safe-push-apply@1.0.0: 5546 + dependencies: 5547 + es-errors: 1.3.0 5548 + isarray: 2.0.5 5549 + 5550 + safe-regex-test@1.1.0: 5551 + dependencies: 5552 + call-bound: 1.0.4 5553 + es-errors: 1.3.0 5554 + is-regex: 1.2.1 5555 + 5556 + scheduler@0.23.2: 5557 + dependencies: 5558 + loose-envify: 1.4.0 5559 + 5560 + schema-utils@0.4.7: 5561 + dependencies: 5562 + ajv: 6.12.6 5563 + ajv-keywords: 3.5.2(ajv@6.12.6) 5564 + 5565 + schema-utils@4.3.0: 5566 + dependencies: 5567 + '@types/json-schema': 7.0.15 5568 + ajv: 8.17.1 5569 + ajv-formats: 2.1.1(ajv@8.17.1) 5570 + ajv-keywords: 5.1.0(ajv@8.17.1) 5571 + 5572 + section-matter@1.0.0: 5573 + dependencies: 5574 + extend-shallow: 2.0.1 5575 + kind-of: 6.0.3 5576 + 5577 + semver@6.3.1: {} 5578 + 5579 + semver@7.7.1: {} 5580 + 5581 + serialize-javascript@6.0.2: 5582 + dependencies: 5583 + randombytes: 2.1.0 5584 + 5585 + set-function-length@1.2.2: 5586 + dependencies: 5587 + define-data-property: 1.1.4 5588 + es-errors: 1.3.0 5589 + function-bind: 1.1.2 5590 + get-intrinsic: 1.3.0 5591 + gopd: 1.2.0 5592 + has-property-descriptors: 1.0.2 5593 + 5594 + set-function-name@2.0.2: 5595 + dependencies: 5596 + define-data-property: 1.1.4 5597 + es-errors: 1.3.0 5598 + functions-have-names: 1.2.3 5599 + has-property-descriptors: 1.0.2 5600 + 5601 + set-proto@1.0.0: 5602 + dependencies: 5603 + dunder-proto: 1.0.1 5604 + es-errors: 1.3.0 5605 + es-object-atoms: 1.1.1 5606 + 5607 + shallowequal@1.1.0: {} 5608 + 5609 + shebang-command@2.0.0: 5610 + dependencies: 5611 + shebang-regex: 3.0.0 5612 + 5613 + shebang-regex@3.0.0: {} 5614 + 5615 + shiki@1.29.2: 5616 + dependencies: 5617 + '@shikijs/core': 1.29.2 5618 + '@shikijs/engine-javascript': 1.29.2 5619 + '@shikijs/engine-oniguruma': 1.29.2 5620 + '@shikijs/langs': 1.29.2 5621 + '@shikijs/themes': 1.29.2 5622 + '@shikijs/types': 1.29.2 5623 + '@shikijs/vscode-textmate': 10.0.2 5624 + '@types/hast': 3.0.4 5625 + 5626 + side-channel-list@1.0.0: 5627 + dependencies: 5628 + es-errors: 1.3.0 5629 + object-inspect: 1.13.4 5630 + 5631 + side-channel-map@1.0.1: 5632 + dependencies: 5633 + call-bound: 1.0.4 5634 + es-errors: 1.3.0 5635 + get-intrinsic: 1.3.0 5636 + object-inspect: 1.13.4 5637 + 5638 + side-channel-weakmap@1.0.2: 5639 + dependencies: 5640 + call-bound: 1.0.4 5641 + es-errors: 1.3.0 5642 + get-intrinsic: 1.3.0 5643 + object-inspect: 1.13.4 5644 + side-channel-map: 1.0.1 5645 + 5646 + side-channel@1.1.0: 5647 + dependencies: 5648 + es-errors: 1.3.0 5649 + object-inspect: 1.13.4 5650 + side-channel-list: 1.0.0 5651 + side-channel-map: 1.0.1 5652 + side-channel-weakmap: 1.0.2 5653 + 5654 + signal-exit@4.1.0: {} 5655 + 5656 + simple-swizzle@0.2.2: 5657 + dependencies: 5658 + is-arrayish: 0.3.2 5659 + 5660 + source-map-js@1.2.1: {} 5661 + 5662 + source-map-support@0.5.21: 5663 + dependencies: 5664 + buffer-from: 1.1.2 5665 + source-map: 0.6.1 5666 + 5667 + source-map@0.6.1: {} 5668 + 5669 + source-map@0.7.4: {} 5670 + 5671 + space-separated-tokens@2.0.2: {} 5672 + 5673 + sprintf-js@1.0.3: {} 5674 + 5675 + stable-hash@0.0.5: {} 5676 + 5677 + streamsearch@1.1.0: {} 5678 + 5679 + string-width@4.2.3: 5680 + dependencies: 5681 + emoji-regex: 8.0.0 5682 + is-fullwidth-code-point: 3.0.0 5683 + strip-ansi: 6.0.1 5684 + 5685 + string-width@5.1.2: 5686 + dependencies: 5687 + eastasianwidth: 0.2.0 5688 + emoji-regex: 9.2.2 5689 + strip-ansi: 7.1.0 5690 + 5691 + string.prototype.includes@2.0.1: 5692 + dependencies: 5693 + call-bind: 1.0.8 5694 + define-properties: 1.2.1 5695 + es-abstract: 1.23.9 5696 + 5697 + string.prototype.matchall@4.0.12: 5698 + dependencies: 5699 + call-bind: 1.0.8 5700 + call-bound: 1.0.4 5701 + define-properties: 1.2.1 5702 + es-abstract: 1.23.9 5703 + es-errors: 1.3.0 5704 + es-object-atoms: 1.1.1 5705 + get-intrinsic: 1.3.0 5706 + gopd: 1.2.0 5707 + has-symbols: 1.1.0 5708 + internal-slot: 1.1.0 5709 + regexp.prototype.flags: 1.5.4 5710 + set-function-name: 2.0.2 5711 + side-channel: 1.1.0 5712 + 5713 + string.prototype.repeat@1.0.0: 5714 + dependencies: 5715 + define-properties: 1.2.1 5716 + es-abstract: 1.23.9 5717 + 5718 + string.prototype.trim@1.2.10: 5719 + dependencies: 5720 + call-bind: 1.0.8 5721 + call-bound: 1.0.4 5722 + define-data-property: 1.1.4 5723 + define-properties: 1.2.1 5724 + es-abstract: 1.23.9 5725 + es-object-atoms: 1.1.1 5726 + has-property-descriptors: 1.0.2 5727 + 5728 + string.prototype.trimend@1.0.9: 5729 + dependencies: 5730 + call-bind: 1.0.8 5731 + call-bound: 1.0.4 5732 + define-properties: 1.2.1 5733 + es-object-atoms: 1.1.1 5734 + 5735 + string.prototype.trimstart@1.0.8: 5736 + dependencies: 5737 + call-bind: 1.0.8 5738 + define-properties: 1.2.1 5739 + es-object-atoms: 1.1.1 5740 + 5741 + stringify-entities@4.0.4: 5742 + dependencies: 5743 + character-entities-html4: 2.1.0 5744 + character-entities-legacy: 3.0.0 5745 + 5746 + strip-ansi@6.0.1: 5747 + dependencies: 5748 + ansi-regex: 5.0.1 5749 + 5750 + strip-ansi@7.1.0: 5751 + dependencies: 5752 + ansi-regex: 6.1.0 5753 + 5754 + strip-bom-string@1.0.0: {} 5755 + 5756 + strip-bom@3.0.0: {} 5757 + 5758 + strip-json-comments@3.1.1: {} 5759 + 5760 + style-to-js@1.1.16: 5761 + dependencies: 5762 + style-to-object: 1.0.8 5763 + 5764 + style-to-object@1.0.8: 5765 + dependencies: 5766 + inline-style-parser: 0.2.4 5767 + 5768 + styled-jsx@5.1.1(react@18.3.1): 5769 + dependencies: 5770 + client-only: 0.0.1 5771 + react: 18.3.1 5772 + 5773 + sucrase@3.35.0: 5774 + dependencies: 5775 + '@jridgewell/gen-mapping': 0.3.8 5776 + commander: 4.1.1 5777 + glob: 10.4.5 5778 + lines-and-columns: 1.2.4 5779 + mz: 2.7.0 5780 + pirates: 4.0.7 5781 + ts-interface-checker: 0.1.13 5782 + 5783 + supports-color@7.2.0: 5784 + dependencies: 5785 + has-flag: 4.0.0 5786 + 5787 + supports-color@8.1.1: 5788 + dependencies: 5789 + has-flag: 4.0.0 5790 + 5791 + supports-preserve-symlinks-flag@1.0.0: {} 5792 + 5793 + synckit@0.11.3: 5794 + dependencies: 5795 + '@pkgr/core': 0.2.1 5796 + tslib: 2.8.1 5797 + 5798 + tailwindcss-themer@4.1.1(tailwindcss@3.4.3): 5799 + dependencies: 5800 + color: 4.2.3 5801 + just-unique: 4.2.0 5802 + lodash.merge: 4.6.2 5803 + lodash.mergewith: 4.6.2 5804 + tailwindcss: 3.4.3 5805 + 5806 + tailwindcss@3.4.3: 5807 + dependencies: 5808 + '@alloc/quick-lru': 5.2.0 5809 + arg: 5.0.2 5810 + chokidar: 3.6.0 5811 + didyoumean: 1.2.2 5812 + dlv: 1.1.3 5813 + fast-glob: 3.3.3 5814 + glob-parent: 6.0.2 5815 + is-glob: 4.0.3 5816 + jiti: 1.21.7 5817 + lilconfig: 2.1.0 5818 + micromatch: 4.0.8 5819 + normalize-path: 3.0.0 5820 + object-hash: 3.0.0 5821 + picocolors: 1.1.1 5822 + postcss: 8.5.3 5823 + postcss-import: 15.1.0(postcss@8.5.3) 5824 + postcss-js: 4.0.1(postcss@8.5.3) 5825 + postcss-load-config: 4.0.2(postcss@8.5.3) 5826 + postcss-nested: 6.2.0(postcss@8.5.3) 5827 + postcss-selector-parser: 6.1.2 5828 + resolve: 1.22.10 5829 + sucrase: 3.35.0 5830 + transitivePeerDependencies: 5831 + - ts-node 5832 + 5833 + tapable@2.2.1: {} 5834 + 5835 + terser-webpack-plugin@5.3.14(webpack@5.99.0): 5836 + dependencies: 5837 + '@jridgewell/trace-mapping': 0.3.25 5838 + jest-worker: 27.5.1 5839 + schema-utils: 4.3.0 5840 + serialize-javascript: 6.0.2 5841 + terser: 5.39.0 5842 + webpack: 5.99.0 5843 + 5844 + terser@5.39.0: 5845 + dependencies: 5846 + '@jridgewell/source-map': 0.3.6 5847 + acorn: 8.14.1 5848 + commander: 2.20.3 5849 + source-map-support: 0.5.21 5850 + 5851 + text-table@0.2.0: {} 5852 + 5853 + thenify-all@1.6.0: 5854 + dependencies: 5855 + thenify: 3.3.1 5856 + 5857 + thenify@3.3.1: 5858 + dependencies: 5859 + any-promise: 1.3.0 5860 + 5861 + tinyglobby@0.2.12: 5862 + dependencies: 5863 + fdir: 6.4.3(picomatch@4.0.2) 5864 + picomatch: 4.0.2 5865 + 5866 + to-regex-range@5.0.1: 5867 + dependencies: 5868 + is-number: 7.0.0 5869 + 5870 + trim-lines@3.0.1: {} 5871 + 5872 + trough@2.2.0: {} 5873 + 5874 + ts-api-utils@2.1.0(typescript@5.4.3): 5875 + dependencies: 5876 + typescript: 5.4.3 5877 + 5878 + ts-interface-checker@0.1.13: {} 5879 + 5880 + tsconfig-paths@3.15.0: 5881 + dependencies: 5882 + '@types/json5': 0.0.29 5883 + json5: 1.0.2 5884 + minimist: 1.2.8 5885 + strip-bom: 3.0.0 5886 + 5887 + tslib@2.8.1: {} 5888 + 5889 + type-check@0.4.0: 5890 + dependencies: 5891 + prelude-ls: 1.2.1 5892 + 5893 + type-fest@0.20.2: {} 5894 + 5895 + type-fest@4.39.1: {} 5896 + 5897 + typed-array-buffer@1.0.3: 5898 + dependencies: 5899 + call-bound: 1.0.4 5900 + es-errors: 1.3.0 5901 + is-typed-array: 1.1.15 5902 + 5903 + typed-array-byte-length@1.0.3: 5904 + dependencies: 5905 + call-bind: 1.0.8 5906 + for-each: 0.3.5 5907 + gopd: 1.2.0 5908 + has-proto: 1.2.0 5909 + is-typed-array: 1.1.15 5910 + 5911 + typed-array-byte-offset@1.0.4: 5912 + dependencies: 5913 + available-typed-arrays: 1.0.7 5914 + call-bind: 1.0.8 5915 + for-each: 0.3.5 5916 + gopd: 1.2.0 5917 + has-proto: 1.2.0 5918 + is-typed-array: 1.1.15 5919 + reflect.getprototypeof: 1.0.10 5920 + 5921 + typed-array-length@1.0.7: 5922 + dependencies: 5923 + call-bind: 1.0.8 5924 + for-each: 0.3.5 5925 + gopd: 1.2.0 5926 + is-typed-array: 1.1.15 5927 + possible-typed-array-names: 1.1.0 5928 + reflect.getprototypeof: 1.0.10 5929 + 5930 + typescript@5.4.3: {} 5931 + 5932 + unbox-primitive@1.1.0: 5933 + dependencies: 5934 + call-bound: 1.0.4 5935 + has-bigints: 1.1.0 5936 + has-symbols: 1.1.0 5937 + which-boxed-primitive: 1.1.1 5938 + 5939 + undici-types@6.21.0: {} 5940 + 5941 + unified@11.0.5: 5942 + dependencies: 5943 + '@types/unist': 3.0.3 5944 + bail: 2.0.2 5945 + devlop: 1.1.0 5946 + extend: 3.0.2 5947 + is-plain-obj: 4.1.0 5948 + trough: 2.2.0 5949 + vfile: 6.0.3 5950 + 5951 + unist-util-is@3.0.0: {} 5952 + 5953 + unist-util-is@5.2.1: 5954 + dependencies: 5955 + '@types/unist': 2.0.11 5956 + 5957 + unist-util-is@6.0.0: 5958 + dependencies: 5959 + '@types/unist': 3.0.3 5960 + 5961 + unist-util-position-from-estree@2.0.0: 5962 + dependencies: 5963 + '@types/unist': 3.0.3 5964 + 5965 + unist-util-position@5.0.0: 5966 + dependencies: 5967 + '@types/unist': 3.0.3 5968 + 5969 + unist-util-stringify-position@4.0.0: 5970 + dependencies: 5971 + '@types/unist': 3.0.3 5972 + 5973 + unist-util-visit-parents@2.1.2: 5974 + dependencies: 5975 + unist-util-is: 3.0.0 5976 + 5977 + unist-util-visit-parents@5.1.3: 5978 + dependencies: 5979 + '@types/unist': 2.0.11 5980 + unist-util-is: 5.2.1 5981 + 5982 + unist-util-visit-parents@6.0.1: 5983 + dependencies: 5984 + '@types/unist': 3.0.3 5985 + unist-util-is: 6.0.0 5986 + 5987 + unist-util-visit@1.4.1: 5988 + dependencies: 5989 + unist-util-visit-parents: 2.1.2 5990 + 5991 + unist-util-visit@4.1.2: 5992 + dependencies: 5993 + '@types/unist': 2.0.11 5994 + unist-util-is: 5.2.1 5995 + unist-util-visit-parents: 5.1.3 5996 + 5997 + unist-util-visit@5.0.0: 5998 + dependencies: 5999 + '@types/unist': 3.0.3 6000 + unist-util-is: 6.0.0 6001 + unist-util-visit-parents: 6.0.1 6002 + 6003 + unrs-resolver@1.4.1: 6004 + optionalDependencies: 6005 + '@unrs/resolver-binding-darwin-arm64': 1.4.1 6006 + '@unrs/resolver-binding-darwin-x64': 1.4.1 6007 + '@unrs/resolver-binding-freebsd-x64': 1.4.1 6008 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.4.1 6009 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.4.1 6010 + '@unrs/resolver-binding-linux-arm64-gnu': 1.4.1 6011 + '@unrs/resolver-binding-linux-arm64-musl': 1.4.1 6012 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.4.1 6013 + '@unrs/resolver-binding-linux-s390x-gnu': 1.4.1 6014 + '@unrs/resolver-binding-linux-x64-gnu': 1.4.1 6015 + '@unrs/resolver-binding-linux-x64-musl': 1.4.1 6016 + '@unrs/resolver-binding-wasm32-wasi': 1.4.1 6017 + '@unrs/resolver-binding-win32-arm64-msvc': 1.4.1 6018 + '@unrs/resolver-binding-win32-ia32-msvc': 1.4.1 6019 + '@unrs/resolver-binding-win32-x64-msvc': 1.4.1 6020 + 6021 + update-browserslist-db@1.1.3(browserslist@4.24.4): 6022 + dependencies: 6023 + browserslist: 4.24.4 6024 + escalade: 3.2.0 6025 + picocolors: 1.1.1 6026 + 6027 + uri-js@4.4.1: 6028 + dependencies: 6029 + punycode: 2.3.1 6030 + 6031 + use-sync-external-store@1.5.0(react@18.3.1): 6032 + dependencies: 6033 + react: 18.3.1 6034 + 6035 + util-deprecate@1.0.2: {} 6036 + 6037 + vfile-location@5.0.3: 6038 + dependencies: 6039 + '@types/unist': 3.0.3 6040 + vfile: 6.0.3 6041 + 6042 + vfile-message@4.0.2: 6043 + dependencies: 6044 + '@types/unist': 3.0.3 6045 + unist-util-stringify-position: 4.0.0 6046 + 6047 + vfile@6.0.3: 6048 + dependencies: 6049 + '@types/unist': 3.0.3 6050 + vfile-message: 4.0.2 6051 + 6052 + watchpack@2.4.2: 6053 + dependencies: 6054 + glob-to-regexp: 0.4.1 6055 + graceful-fs: 4.2.11 6056 + 6057 + web-namespaces@2.0.1: {} 6058 + 6059 + webpack-sources@3.2.3: {} 6060 + 6061 + webpack-virtual-modules@0.6.2: {} 6062 + 6063 + webpack@5.99.0: 6064 + dependencies: 6065 + '@types/eslint-scope': 3.7.7 6066 + '@types/estree': 1.0.7 6067 + '@webassemblyjs/ast': 1.14.1 6068 + '@webassemblyjs/wasm-edit': 1.14.1 6069 + '@webassemblyjs/wasm-parser': 1.14.1 6070 + acorn: 8.14.1 6071 + browserslist: 4.24.4 6072 + chrome-trace-event: 1.0.4 6073 + enhanced-resolve: 5.18.1 6074 + es-module-lexer: 1.6.0 6075 + eslint-scope: 5.1.1 6076 + events: 3.3.0 6077 + glob-to-regexp: 0.4.1 6078 + graceful-fs: 4.2.11 6079 + json-parse-even-better-errors: 2.3.1 6080 + loader-runner: 4.3.0 6081 + mime-types: 2.1.35 6082 + neo-async: 2.6.2 6083 + schema-utils: 4.3.0 6084 + tapable: 2.2.1 6085 + terser-webpack-plugin: 5.3.14(webpack@5.99.0) 6086 + watchpack: 2.4.2 6087 + webpack-sources: 3.2.3 6088 + transitivePeerDependencies: 6089 + - '@swc/core' 6090 + - esbuild 6091 + - uglify-js 6092 + 6093 + which-boxed-primitive@1.1.1: 6094 + dependencies: 6095 + is-bigint: 1.1.0 6096 + is-boolean-object: 1.2.2 6097 + is-number-object: 1.1.1 6098 + is-string: 1.1.1 6099 + is-symbol: 1.1.1 6100 + 6101 + which-builtin-type@1.2.1: 6102 + dependencies: 6103 + call-bound: 1.0.4 6104 + function.prototype.name: 1.1.8 6105 + has-tostringtag: 1.0.2 6106 + is-async-function: 2.1.1 6107 + is-date-object: 1.1.0 6108 + is-finalizationregistry: 1.1.1 6109 + is-generator-function: 1.1.0 6110 + is-regex: 1.2.1 6111 + is-weakref: 1.1.1 6112 + isarray: 2.0.5 6113 + which-boxed-primitive: 1.1.1 6114 + which-collection: 1.0.2 6115 + which-typed-array: 1.1.19 6116 + 6117 + which-collection@1.0.2: 6118 + dependencies: 6119 + is-map: 2.0.3 6120 + is-set: 2.0.3 6121 + is-weakmap: 2.0.2 6122 + is-weakset: 2.0.4 6123 + 6124 + which-typed-array@1.1.19: 6125 + dependencies: 6126 + available-typed-arrays: 1.0.7 6127 + call-bind: 1.0.8 6128 + call-bound: 1.0.4 6129 + for-each: 0.3.5 6130 + get-proto: 1.0.1 6131 + gopd: 1.2.0 6132 + has-tostringtag: 1.0.2 6133 + 6134 + which@2.0.2: 6135 + dependencies: 6136 + isexe: 2.0.0 6137 + 6138 + word-wrap@1.2.5: {} 6139 + 6140 + wrap-ansi@7.0.0: 6141 + dependencies: 6142 + ansi-styles: 4.3.0 6143 + string-width: 4.2.3 6144 + strip-ansi: 6.0.1 6145 + 6146 + wrap-ansi@8.1.0: 6147 + dependencies: 6148 + ansi-styles: 6.2.1 6149 + string-width: 5.1.2 6150 + strip-ansi: 7.1.0 6151 + 6152 + wrappy@1.0.2: {} 6153 + 6154 + yaml@2.7.1: {} 6155 + 6156 + yocto-queue@0.1.0: {} 6157 + 6158 + zustand@4.5.6(@types/react@18.2.73)(react@18.3.1): 6159 + dependencies: 6160 + use-sync-external-store: 1.5.0(react@18.3.1) 6161 + optionalDependencies: 6162 + '@types/react': 18.2.73 6163 + react: 18.3.1 6164 + 6165 + zwitch@2.0.4: {}
docs/public/assets/proxy-url-example.gif

This is a binary file and will not be displayed.

docs/public/cover.png

This is a binary file and will not be displayed.

docs/public/favicon.ico

This is a binary file and will not be displayed.

docs/public/icon-dark.png

This is a binary file and will not be displayed.

docs/public/icon-light.png

This is a binary file and will not be displayed.

docs/public/transparent-logo.png

This is a binary file and will not be displayed.

+138
docs/theme.config.tsx
··· 1 + import { 2 + defineTheme, 3 + directory, 4 + group, 5 + link, 6 + social, 7 + } from '@neato/guider/theme'; 8 + import { Logo } from './components/Logo'; 9 + import { NextSeo } from 'next-seo'; 10 + import coverUrl from './public/cover.png'; 11 + import faviconUrl from './public/favicon.ico'; 12 + 13 + const starLinks = [ 14 + link('GitHub', 'https://github.com/p-stream/p-stream', { 15 + style: 'star', 16 + newTab: true, 17 + icon: 'akar-icons:github-fill', 18 + }), 19 + link('Discord', '/links/discord', { 20 + style: 'star', 21 + newTab: true, 22 + icon: 'fa6-brands:discord', 23 + }), 24 + ]; 25 + 26 + export default defineTheme({ 27 + github: 'p-stream/p-stream', 28 + navigation: [ 29 + link('Discord', '/links/discord', { 30 + style: 'star', 31 + newTab: true, 32 + icon: 'mdi:discord', 33 + }), 34 + link('Check it out', '/instances', { 35 + style: 'star', 36 + newTab: true, 37 + }), 38 + ], 39 + contentFooter: { 40 + text: 'Made with :3 (sillyness)', 41 + editRepositoryBase: 'https://github.com/p-stream/docs/blob/master', 42 + socials: [ 43 + social.github('https://github.com/p-stream'), 44 + social.discord('/links/discord'), 45 + ], 46 + }, 47 + meta: (pageMeta) => ( 48 + <NextSeo 49 + {...{ 50 + title: `${pageMeta.title ?? "Watch your favorite shows and movies for free with no ads ever! (っ'ヮ'c)"} | P-Stream`, 51 + description: 52 + pageMeta.description ?? 53 + 'P-Stream is a free and open source streaming site, no ads, no tracking, no nonsense.', 54 + openGraph: { 55 + images: [ 56 + { 57 + url: coverUrl.src, 58 + }, 59 + ], 60 + title: `${pageMeta.title ?? "Watch your favorite shows and movies for free with no ads ever! (っ'ヮ'c)"} | P-Stream`, 61 + description: 62 + pageMeta.description ?? 63 + 'P-Stream is a free and open source streaming site, no ads, no tracking, no nonsense.', 64 + }, 65 + twitter: { 66 + cardType: 'summary_large_image', 67 + }, 68 + additionalLinkTags: [ 69 + { 70 + href: faviconUrl.src, 71 + rel: 'icon', 72 + type: 'image/x-icon', 73 + }, 74 + ], 75 + }} 76 + /> 77 + ), 78 + settings: { 79 + logo: () => <Logo />, 80 + backgroundPattern: 'flare', 81 + colors: { 82 + primary: '#8288FE', 83 + primaryLighter: '#B7ADDE', 84 + primaryDarker: '#656BD4', 85 + background: '#0C0B13', 86 + backgroundLighter: '#12131FFF', 87 + backgroundLightest: '#1A1B29FF', 88 + backgroundDarker: '#000000', 89 + line: '#34334CFF', 90 + text: '#8C899A', 91 + textLighter: '#A6A4AE', 92 + textHighlight: '#FFF', 93 + }, 94 + }, 95 + directories: [ 96 + directory('main', { 97 + sidebar: [ 98 + ...starLinks, 99 + group('Global', [ 100 + link('Instances', '/instances', { icon: 'mdi:web' }), 101 + link('Browser Extension', '/extension', { icon: 'mdi:extension' }), 102 + link('Support', '/support', { icon: 'mdi:help' }), 103 + ]), 104 + group('Self-Hosting', [ 105 + link('Start self-hosting', '/self-hosting/hosting-intro'), 106 + link('Configure backend', '/self-hosting/use-backend'), 107 + link('PWA vs no-PWA', '/self-hosting/about-pwa'), 108 + link('Troubleshooting', '/self-hosting/troubleshooting'), 109 + ]), 110 + group('Proxy', [ 111 + link('Introduction', '/proxy/introduction'), 112 + link('Deploy', '/proxy/deploy'), 113 + link('Configuration', '/proxy/configuration'), 114 + // link('Changelog', '/proxy/changelog'), 115 + ]), 116 + group('Client', [ 117 + link('Introduction', '/client/introduction'), 118 + link('Deploy', '/client/deploy'), 119 + link('TMDB API Key', '/client/tmdb'), 120 + link('Configuration', '/client/configuration'), 121 + // link('Changelog', '/client/changelog'), 122 + link('Update guide', '/client/upgrade'), 123 + ]), 124 + group('Backend', [ 125 + link('Introduction', '/backend/introduction'), 126 + link('Deploy', '/backend/deploy'), 127 + link('Configuration', '/backend/configuration'), 128 + // link('Changelog', '/backend/changelog'), 129 + link('Update guide', '/backend/upgrade'), 130 + ]), 131 + group('Extra', [ 132 + link('Streaming', '/extra/streaming'), 133 + link('Selfhost', '/extra/selfhost'), 134 + ]), 135 + ], 136 + }), 137 + ], 138 + });
+18
docs/tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "lib": ["dom", "dom.iterable", "esnext"], 4 + "allowJs": true, 5 + "skipLibCheck": true, 6 + "strict": false, 7 + "noEmit": true, 8 + "incremental": true, 9 + "esModuleInterop": true, 10 + "module": "esnext", 11 + "moduleResolution": "Bundler", 12 + "resolveJsonModule": true, 13 + "isolatedModules": true, 14 + "jsx": "preserve" 15 + }, 16 + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], 17 + "exclude": ["node_modules"] 18 + }