├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── dependabot.yml └── wokflows │ └── main.yml ├── .gitignore ├── .husky └── pre-commit ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── eslint.config.mjs ├── package.json ├── pnpm-lock.yaml ├── rollup.config.mjs ├── src ├── ReCaptcha.tsx ├── ReCaptchaProvider.tsx ├── index.ts ├── recaptcha.types.ts ├── useReCaptcha.tsx ├── utils.ts └── withReCaptcha.tsx └── tsconfig.json /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "" 5 | labels: "" 6 | assignees: "" 7 | --- 8 | 9 | **Describe the bug** 10 | A clear and concise description of what the bug is. 11 | 12 | **To Reproduce** 13 | Steps to reproduce the behavior: 14 | 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | 28 | - OS: [e.g. iOS] 29 | - Browser [e.g. chrome, safari] 30 | - Version [e.g. 22] 31 | 32 | **Smartphone (please complete the following information):** 33 | 34 | - Device: [e.g. iPhone6] 35 | - OS: [e.g. iOS8.1] 36 | - Browser [e.g. stock browser, safari] 37 | - Version [e.g. 22] 38 | 39 | **Additional context** 40 | Add any other context about the problem here. 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "" 5 | labels: "" 6 | assignees: "" 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 11 | 12 | **Describe the solution you'd like** 13 | A clear and concise description of what you want to happen. 14 | 15 | **Describe alternatives you've considered** 16 | A clear and concise description of any alternative solutions or features you've considered. 17 | 18 | **Additional context** 19 | Add any other context or screenshots about the feature request here. 20 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "npm" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "monthly" 12 | -------------------------------------------------------------------------------- /.github/wokflows/main.yml: -------------------------------------------------------------------------------- 1 | on: [push] 2 | 3 | jobs: 4 | lint: 5 | runs-on: ubuntu-latest 6 | name: Run eslint 7 | steps: 8 | - uses: actions/checkout@v1 9 | - uses: actions/setup-node@v1 10 | with: 11 | node-version: "16.x" 12 | - run: yarn 13 | - run: yarn lint 14 | tsc: 15 | runs-on: ubuntu-latest 16 | name: Check typescript 17 | steps: 18 | - uses: actions/checkout@v1 19 | - uses: actions/setup-node@v1 20 | with: 21 | node-version: "16.x" 22 | - run: yarn 23 | - run: yarn tsc 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | lib 3 | examples 4 | build 5 | test 6 | src/**.js 7 | *.log 8 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | npm run pre-commit 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | pnpm-lock.yaml -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "semi": true, 4 | "trailingComma": "all" 5 | } 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Roman Zhuravlov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

⭐ Next.js ReCaptcha V3

2 | 3 | Straightforward solution for using ReCaptcha in your [Next.js](https://nextjs.org/) application. 4 | 5 | [![npm package](https://img.shields.io/npm/v/next-recaptcha-v3/latest.svg)](https://www.npmjs.com/package/next-recaptcha-v3) 6 | [![Bundle Size](https://img.shields.io/bundlephobia/min/next-recaptcha-v3?style=flat-square)](https://bundlephobia.com/result?p=next-recaptcha-v3) 7 | ![type definition](https://img.shields.io/npm/types/next-recaptcha-v3) 8 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/snelsi/next-hubspot/blob/master/LICENSE) 9 | 10 | 🗜️ Tiny and Tree-Shakable 11 | 12 | 🥰 Written in TypeScript 13 | 14 | 🐅 Highly customizable 15 | 16 | 😎 Uses `next/script` component 17 | 18 | ## Install 19 | 20 | ```ssh 21 | npm i next-recaptcha-v3 22 | ``` 23 | 24 | ```ssh 25 | pnpm i next-recaptcha-v3 26 | ``` 27 | 28 | ```ssh 29 | yarn add next-recaptcha-v3 30 | ``` 31 | 32 | ## Pure ESM package 33 | 34 | This package is [pure ESM](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). It cannot be `require()`'d from CommonJS. 35 | 36 | ## Generate reCAPTCHA Key 37 | 38 | To use ReCaptcha, you need to generate a `reCAPTCHA_site_key` for your site's domain. You can get one [here](https://www.google.com/recaptcha/intro/v3.html). 39 | 40 | You can either add generated key as a [Next.js env variable](https://nextjs.org/docs/basic-features/environment-variables) 41 | 42 | ```ssh 43 | NEXT_PUBLIC_RECAPTCHA_SITE_KEY="GTM-XXXXXXX" 44 | ``` 45 | 46 | or pass it directly to the `ReCaptchaProvider` using `reCaptchaKey` attribute. 47 | 48 | ## Getting Started 49 | 50 | Wrap your application with `ReCaptchaProvider`. 51 | It will load [ReCaptcha script](https://www.google.com/recaptcha/api.js) to your document. 52 | 53 | ```tsx 54 | import { ReCaptchaProvider } from "next-recaptcha-v3"; 55 | 56 | const MyApp = ({ Component, pageProps }) => ( 57 | 58 | 59 | 60 | ); 61 | ``` 62 | 63 | `ReCaptchaProvider` uses [Next.js Script](https://nextjs.org/docs/basic-features/script) to add ReCaptcha script to the document. 64 | 65 | ## ReCaptchaProvider Props 66 | 67 | | **Prop** | **Type** | **Default** | **Required** | **Description** | 68 | | --------------- | -------- | ----------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | 69 | | reCaptchaKey | string | | ? | Your reCAPTCHA key, get one from [here](https://www.google.com/recaptcha/about) | 70 | | useEnterprise | boolean | false | | Set to `true` if you use [ReCaptcha Enterprise](https://cloud.google.com/recaptcha-enterprise) | 71 | | useRecaptchaNet | boolean | false | | Set to `true` if you want to use `recaptcha.net` to load ReCaptcha script. [docs](https://developers.google.com/recaptcha/docs/faq#can-i-use-recaptcha-globally) | 72 | | language | string | | | Optional [Language Code](https://developers.google.com/recaptcha/docs/language) | 73 | 74 | You must pass `reCaptchaKey` if `NEXT_PUBLIC_RECAPTCHA_SITE_KEY` env variable is not defined. 75 | 76 | All extra props are passed directly to the Script tag, so you can use all props from the [next/script documentation](https://nextjs.org/docs/api-reference/next/script). 77 | 78 | ## Accessing global context props 79 | 80 | You can access global `grecaptcha` object, script's loading state and other props by calling `useReCaptcha` hook: 81 | 82 | ```tsx 83 | import { useReCaptcha } from "next-recaptcha-v3"; 84 | 85 | const { 86 | /** reCAPTCHA_site_key */ 87 | reCaptchaKey, 88 | /** Global ReCaptcha object */ 89 | grecaptcha, 90 | /** If `true`, ReCaptcha script has been loaded */ 91 | isLoaded, 92 | /** If `true`, an error occurred while loading ReCaptcha script */ 93 | isError, 94 | /** Error received while loading ReCaptcha script */ 95 | error, 96 | /** Other hook props */ 97 | ...otherProps 98 | } = useReCaptcha(); 99 | ``` 100 | 101 | ### reCAPTCHA Enterprise 102 | 103 | If you're using [reCAPTCHA Enterprise](https://cloud.google.com/recaptcha-enterprise), add `useEnterprise` to your `ReCaptchaProvider`. Checkout official quickstart guide [here](https://cloud.google.com/recaptcha-enterprise/docs/quickstart). 104 | 105 | ```tsx 106 | import { ReCaptchaProvider } from "next-recaptcha-v3"; 107 | 108 | const MyApp = ({ Component, pageProps }) => ( 109 | 110 | 111 | 112 | ); 113 | ``` 114 | 115 | ## Usage 116 | 117 | When invoked, ReCaptcha will analyze the user's behavior and create a one-time [token](https://developers.google.com/recaptcha/docs/v3#programmatically_invoke_the_challenge). It can only be used once and is only valid for a couple of minutes, so you should generate it just before the actual validation. 118 | 119 | Send the resulting token to the API request to your server. You can then decrypt the token using the ReCaptcha [/siteverify](https://developers.google.com/recaptcha/docs/verify) API and ignore the call if it came from a bot. 120 | 121 | 1. React Hook: `useReCaptcha` (recommended approach) 122 | 123 | Use `executeRecaptcha` function returned from the `useReCaptcha` hook to generate token. Add a unique [action name](https://developers.google.com/recaptcha/docs/v3#actions) to better understand at what moment the token was generated. 124 | 125 | > 🛈 Note: Actions might contain only alphanumeric characters, slashes, and underscores. Actions must not be user-specific. 126 | 127 | ```tsx 128 | import { useState, useCallback } from "react"; 129 | import { useReCaptcha } from "next-recaptcha-v3"; 130 | 131 | const MyForm = () => { 132 | const [name, setName] = useState(""); 133 | 134 | // Import 'executeRecaptcha' using 'useReCaptcha' hook 135 | const { executeRecaptcha } = useReCaptcha(); 136 | 137 | const handleSubmit = useCallback( 138 | async (e) => { 139 | e.preventDefault(); 140 | 141 | // Generate ReCaptcha token 142 | const token = await executeRecaptcha("form_submit"); 143 | 144 | // Attach generated token to your API requests and validate it on the server 145 | fetch("/api/form-submit", { 146 | method: "POST", 147 | body: { 148 | data: { name }, 149 | token, 150 | }, 151 | }); 152 | }, 153 | [executeRecaptcha, name], 154 | ); 155 | 156 | return ( 157 |
158 | setName(e.target.value)} /> 159 | 160 |
161 | ); 162 | }; 163 | ``` 164 | 165 | 2. `ReCaptcha` component 166 | 167 | Alternatively, you can also generate token by using `ReCaptcha` component. 168 | 169 | ```tsx 170 | import { useEffect, useState } from "react"; 171 | import { ReCaptcha } from "next-recaptcha-v3"; 172 | import { validateToken } from "./utils"; 173 | 174 | const MyPage = () => { 175 | const [token, setToken] = useState(null); 176 | 177 | useEffect(() => { 178 | if (token) { 179 | // Validate token and make some actions if it's a bot 180 | validateToken(token); 181 | } 182 | }, [token]); 183 | 184 | return ( 185 | <> 186 | 187 |

Hello

188 | 189 | ); 190 | }; 191 | ``` 192 | 193 | 3. `withReCaptcha` HOC 194 | 195 | ```tsx 196 | import { useEffect, useState } from "react"; 197 | import { withReCaptcha, WithReCaptchaProps } from "next-recaptcha-v3"; 198 | import { validateToken } from "./utils"; 199 | 200 | interface MyPageProps extends WithReCaptchaProps {} 201 | 202 | const MyPage: React.FC = ({ isLoaded, executeRecaptcha }) => { 203 | const [token, setToken] = useState(null); 204 | 205 | useEffect(() => { 206 | if (isLoaded) { 207 | const generateToken = async () => { 208 | const newToken = await executeRecaptcha("page_view"); 209 | setToken(newToken); 210 | }; 211 | generateToken(); 212 | } 213 | }, [isLoaded, executeRecaptcha]); 214 | 215 | useEffect(() => { 216 | if (token) { 217 | // Validate token and make some actions if it's a bot 218 | validateToken(token); 219 | } 220 | }, [token]); 221 | 222 | return

Hello

; 223 | }; 224 | 225 | export default withReCaptcha(MyPage); 226 | ``` 227 | 228 | ## Helpful links 229 | 230 |
231 | 232 | List of helpful links, docs, guides and tutorials. 233 | 234 | 235 | - [Google Developers Portal](https://developers.google.com/recaptcha/) 236 | - [Video: Introducing reCAPTCHA v3](https://www.youtube.com/watch?v=tbvxFW4UJdU) 237 | - [Blog: Introducing reCAPTCHA v3](https://developers.google.com/search/blog/2018/10/introducing-recaptcha-v3-new-way-to) 238 | - [What is reCAPTCHA?](https://www.google.com/recaptcha/about/) 239 | - [How To Add Google ReCAPTCHA V3 In A Next.Js Form](https://www.techomoro.com/how-to-add-google-recaptcha-v3-in-a-next-js-form/) 240 | - [Integrating reCAPTCHA v3 with Next.js](https://dev.to/sumukhakb210/integrating-recaptcha-with-nextjs-4ig6) 241 | - [Integrating reCAPTCHA v2 with Next.js](https://prateeksurana.me/blog/integrating-recaptcha-with-next/) 242 | - [Github Repo: reCAPTCHA v3 with Next.js](https://github.com/kokou2kpadenou/recaptcha3-nextjs) 243 |
244 | 245 | ## TypeScript 246 | 247 | The module is written in TypeScript and type definitions are included. 248 | 249 | ## Contributing 250 | 251 | Contributions, issues and feature requests are welcome! 252 | 253 | ## Show your support 254 | 255 | Give a ⭐️ if you like this project! 256 | 257 | ## LICENSE 258 | 259 | [MIT](./LICENSE) 260 | -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import { FlatCompat } from "@eslint/eslintrc"; 2 | 3 | import eslint from "@eslint/js"; 4 | import tseslint from "typescript-eslint"; 5 | import prettierConfig from "eslint-config-prettier"; 6 | 7 | const compat = new FlatCompat({ 8 | baseDirectory: import.meta.dirname, 9 | }); 10 | 11 | const eslintConfig = tseslint.config( 12 | { 13 | ignores: ["**/lib/**"], 14 | }, 15 | eslint.configs.recommended, 16 | tseslint.configs.recommended, 17 | ...compat.extends("next/core-web-vitals", "next/typescript"), 18 | prettierConfig, 19 | ); 20 | 21 | export default eslintConfig; 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "next-recaptcha-v3", 3 | "version": "2.0.0-beta.1", 4 | "description": "🤖 Next.js hook to add Google ReCaptcha to your application", 5 | "license": "MIT", 6 | "author": "Roman Zhuravlov", 7 | "repository": "https://github.com/snelsi/next-recaptcha-v3", 8 | "homepage": "https://github.com/snelsi/next-recaptcha-v3", 9 | "keywords": [ 10 | "recaptcha", 11 | "recaptcha-v3", 12 | "google-recaptcha-v3", 13 | "next", 14 | "next.js", 15 | "react", 16 | "hook" 17 | ], 18 | "type": "module", 19 | "exports": "./lib/index.js", 20 | "types": "./lib/index.d.ts", 21 | "files": [ 22 | "lib" 23 | ], 24 | "scripts": { 25 | "rollup": "rollup -c", 26 | "prettier": "prettier --write .", 27 | "lint": "eslint", 28 | "lint-fix": "eslint --fix", 29 | "fix": "npm run prettier && npm run lint-fix", 30 | "pre-commit": "npm run lint && lint-staged", 31 | "prepublishOnly": "npm run rollup" 32 | }, 33 | "peerDependencies": { 34 | "next": "^13 || ^14 || ^15", 35 | "react": "^18 || ^19" 36 | }, 37 | "engines": { 38 | "node": ">=18" 39 | }, 40 | "devDependencies": { 41 | "@eslint/eslintrc": "^3.2.0", 42 | "@eslint/js": "^9.20.0", 43 | "@next/eslint-plugin-next": "^15.1.7", 44 | "@rollup/plugin-node-resolve": "^16.0.0", 45 | "@rollup/plugin-typescript": "^12.1.2", 46 | "@types/node": "^22.13.4", 47 | "@types/react": "^19.0.10", 48 | "@types/react-dom": "^19.0.4", 49 | "eslint": "^9.20.1", 50 | "eslint-config-next": "^15.1.7", 51 | "eslint-config-prettier": "^10.0.1", 52 | "eslint-plugin-react": "^7.37.4", 53 | "eslint-plugin-react-hooks": "^5.1.0", 54 | "husky": "^9.1.7", 55 | "lint-staged": "^15.4.3", 56 | "next": "^15.1.7", 57 | "prettier": "3.5.1", 58 | "pretty-quick": "^4.0.0", 59 | "react": "^19.0.0", 60 | "react-dom": "^19.0.0", 61 | "rollup": "^4.34.8", 62 | "rollup-plugin-node-externals": "^8.0.0", 63 | "rollup-plugin-preserve-directives": "^0.4.0", 64 | "typescript": "^5.7.3", 65 | "typescript-eslint": "^8.24.1" 66 | }, 67 | "lint-staged": { 68 | "**/*.{js,jsx,ts,tsx}": [ 69 | "pretty-quick --staged" 70 | ] 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@eslint/eslintrc': 12 | specifier: ^3.2.0 13 | version: 3.2.0 14 | '@eslint/js': 15 | specifier: ^9.20.0 16 | version: 9.20.0 17 | '@next/eslint-plugin-next': 18 | specifier: ^15.1.7 19 | version: 15.1.7 20 | '@rollup/plugin-node-resolve': 21 | specifier: ^16.0.0 22 | version: 16.0.0(rollup@4.34.8) 23 | '@rollup/plugin-typescript': 24 | specifier: ^12.1.2 25 | version: 12.1.2(rollup@4.34.8)(tslib@2.8.1)(typescript@5.7.3) 26 | '@types/node': 27 | specifier: ^22.13.4 28 | version: 22.13.4 29 | '@types/react': 30 | specifier: ^19.0.10 31 | version: 19.0.10 32 | '@types/react-dom': 33 | specifier: ^19.0.4 34 | version: 19.0.4(@types/react@19.0.10) 35 | eslint: 36 | specifier: ^9.20.1 37 | version: 9.20.1 38 | eslint-config-next: 39 | specifier: ^15.1.7 40 | version: 15.1.7(eslint@9.20.1)(typescript@5.7.3) 41 | eslint-config-prettier: 42 | specifier: ^10.0.1 43 | version: 10.0.1(eslint@9.20.1) 44 | eslint-plugin-react: 45 | specifier: ^7.37.4 46 | version: 7.37.4(eslint@9.20.1) 47 | eslint-plugin-react-hooks: 48 | specifier: ^5.1.0 49 | version: 5.1.0(eslint@9.20.1) 50 | husky: 51 | specifier: ^9.1.7 52 | version: 9.1.7 53 | lint-staged: 54 | specifier: ^15.4.3 55 | version: 15.4.3 56 | next: 57 | specifier: ^15.1.7 58 | version: 15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 59 | prettier: 60 | specifier: 3.5.1 61 | version: 3.5.1 62 | pretty-quick: 63 | specifier: ^4.0.0 64 | version: 4.0.0(prettier@3.5.1) 65 | react: 66 | specifier: ^19.0.0 67 | version: 19.0.0 68 | react-dom: 69 | specifier: ^19.0.0 70 | version: 19.0.0(react@19.0.0) 71 | rollup: 72 | specifier: ^4.34.8 73 | version: 4.34.8 74 | rollup-plugin-node-externals: 75 | specifier: ^8.0.0 76 | version: 8.0.0(rollup@4.34.8) 77 | rollup-plugin-preserve-directives: 78 | specifier: ^0.4.0 79 | version: 0.4.0(rollup@4.34.8) 80 | typescript: 81 | specifier: ^5.7.3 82 | version: 5.7.3 83 | typescript-eslint: 84 | specifier: ^8.24.1 85 | version: 8.24.1(eslint@9.20.1)(typescript@5.7.3) 86 | 87 | packages: 88 | 89 | '@emnapi/runtime@1.3.1': 90 | resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} 91 | 92 | '@eslint-community/eslint-utils@4.4.1': 93 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 94 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 95 | peerDependencies: 96 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 97 | 98 | '@eslint-community/regexpp@4.12.1': 99 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 100 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 101 | 102 | '@eslint/config-array@0.19.2': 103 | resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} 104 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 105 | 106 | '@eslint/core@0.11.0': 107 | resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} 108 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 109 | 110 | '@eslint/eslintrc@3.2.0': 111 | resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} 112 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 113 | 114 | '@eslint/js@9.20.0': 115 | resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} 116 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 117 | 118 | '@eslint/object-schema@2.1.6': 119 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 120 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 121 | 122 | '@eslint/plugin-kit@0.2.6': 123 | resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==} 124 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 125 | 126 | '@humanfs/core@0.19.1': 127 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 128 | engines: {node: '>=18.18.0'} 129 | 130 | '@humanfs/node@0.16.6': 131 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 132 | engines: {node: '>=18.18.0'} 133 | 134 | '@humanwhocodes/module-importer@1.0.1': 135 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 136 | engines: {node: '>=12.22'} 137 | 138 | '@humanwhocodes/retry@0.3.1': 139 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 140 | engines: {node: '>=18.18'} 141 | 142 | '@humanwhocodes/retry@0.4.1': 143 | resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} 144 | engines: {node: '>=18.18'} 145 | 146 | '@img/sharp-darwin-arm64@0.33.5': 147 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} 148 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 149 | cpu: [arm64] 150 | os: [darwin] 151 | 152 | '@img/sharp-darwin-x64@0.33.5': 153 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} 154 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 155 | cpu: [x64] 156 | os: [darwin] 157 | 158 | '@img/sharp-libvips-darwin-arm64@1.0.4': 159 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} 160 | cpu: [arm64] 161 | os: [darwin] 162 | 163 | '@img/sharp-libvips-darwin-x64@1.0.4': 164 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} 165 | cpu: [x64] 166 | os: [darwin] 167 | 168 | '@img/sharp-libvips-linux-arm64@1.0.4': 169 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} 170 | cpu: [arm64] 171 | os: [linux] 172 | 173 | '@img/sharp-libvips-linux-arm@1.0.5': 174 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} 175 | cpu: [arm] 176 | os: [linux] 177 | 178 | '@img/sharp-libvips-linux-s390x@1.0.4': 179 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} 180 | cpu: [s390x] 181 | os: [linux] 182 | 183 | '@img/sharp-libvips-linux-x64@1.0.4': 184 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} 185 | cpu: [x64] 186 | os: [linux] 187 | 188 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 189 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} 190 | cpu: [arm64] 191 | os: [linux] 192 | 193 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 194 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} 195 | cpu: [x64] 196 | os: [linux] 197 | 198 | '@img/sharp-linux-arm64@0.33.5': 199 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} 200 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 201 | cpu: [arm64] 202 | os: [linux] 203 | 204 | '@img/sharp-linux-arm@0.33.5': 205 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} 206 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 207 | cpu: [arm] 208 | os: [linux] 209 | 210 | '@img/sharp-linux-s390x@0.33.5': 211 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} 212 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 213 | cpu: [s390x] 214 | os: [linux] 215 | 216 | '@img/sharp-linux-x64@0.33.5': 217 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} 218 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 219 | cpu: [x64] 220 | os: [linux] 221 | 222 | '@img/sharp-linuxmusl-arm64@0.33.5': 223 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} 224 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 225 | cpu: [arm64] 226 | os: [linux] 227 | 228 | '@img/sharp-linuxmusl-x64@0.33.5': 229 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} 230 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 231 | cpu: [x64] 232 | os: [linux] 233 | 234 | '@img/sharp-wasm32@0.33.5': 235 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} 236 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 237 | cpu: [wasm32] 238 | 239 | '@img/sharp-win32-ia32@0.33.5': 240 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} 241 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 242 | cpu: [ia32] 243 | os: [win32] 244 | 245 | '@img/sharp-win32-x64@0.33.5': 246 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} 247 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 248 | cpu: [x64] 249 | os: [win32] 250 | 251 | '@jridgewell/sourcemap-codec@1.5.0': 252 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 253 | 254 | '@next/env@15.1.7': 255 | resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==} 256 | 257 | '@next/eslint-plugin-next@15.1.7': 258 | resolution: {integrity: sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==} 259 | 260 | '@next/swc-darwin-arm64@15.1.7': 261 | resolution: {integrity: sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==} 262 | engines: {node: '>= 10'} 263 | cpu: [arm64] 264 | os: [darwin] 265 | 266 | '@next/swc-darwin-x64@15.1.7': 267 | resolution: {integrity: sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==} 268 | engines: {node: '>= 10'} 269 | cpu: [x64] 270 | os: [darwin] 271 | 272 | '@next/swc-linux-arm64-gnu@15.1.7': 273 | resolution: {integrity: sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==} 274 | engines: {node: '>= 10'} 275 | cpu: [arm64] 276 | os: [linux] 277 | 278 | '@next/swc-linux-arm64-musl@15.1.7': 279 | resolution: {integrity: sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==} 280 | engines: {node: '>= 10'} 281 | cpu: [arm64] 282 | os: [linux] 283 | 284 | '@next/swc-linux-x64-gnu@15.1.7': 285 | resolution: {integrity: sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==} 286 | engines: {node: '>= 10'} 287 | cpu: [x64] 288 | os: [linux] 289 | 290 | '@next/swc-linux-x64-musl@15.1.7': 291 | resolution: {integrity: sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==} 292 | engines: {node: '>= 10'} 293 | cpu: [x64] 294 | os: [linux] 295 | 296 | '@next/swc-win32-arm64-msvc@15.1.7': 297 | resolution: {integrity: sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==} 298 | engines: {node: '>= 10'} 299 | cpu: [arm64] 300 | os: [win32] 301 | 302 | '@next/swc-win32-x64-msvc@15.1.7': 303 | resolution: {integrity: sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==} 304 | engines: {node: '>= 10'} 305 | cpu: [x64] 306 | os: [win32] 307 | 308 | '@nodelib/fs.scandir@2.1.5': 309 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 310 | engines: {node: '>= 8'} 311 | 312 | '@nodelib/fs.stat@2.0.5': 313 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 314 | engines: {node: '>= 8'} 315 | 316 | '@nodelib/fs.walk@1.2.8': 317 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 318 | engines: {node: '>= 8'} 319 | 320 | '@nolyfill/is-core-module@1.0.39': 321 | resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} 322 | engines: {node: '>=12.4.0'} 323 | 324 | '@rollup/plugin-node-resolve@16.0.0': 325 | resolution: {integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==} 326 | engines: {node: '>=14.0.0'} 327 | peerDependencies: 328 | rollup: ^2.78.0||^3.0.0||^4.0.0 329 | peerDependenciesMeta: 330 | rollup: 331 | optional: true 332 | 333 | '@rollup/plugin-typescript@12.1.2': 334 | resolution: {integrity: sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==} 335 | engines: {node: '>=14.0.0'} 336 | peerDependencies: 337 | rollup: ^2.14.0||^3.0.0||^4.0.0 338 | tslib: '*' 339 | typescript: '>=3.7.0' 340 | peerDependenciesMeta: 341 | rollup: 342 | optional: true 343 | tslib: 344 | optional: true 345 | 346 | '@rollup/pluginutils@5.1.4': 347 | resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} 348 | engines: {node: '>=14.0.0'} 349 | peerDependencies: 350 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 351 | peerDependenciesMeta: 352 | rollup: 353 | optional: true 354 | 355 | '@rollup/rollup-android-arm-eabi@4.34.8': 356 | resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==} 357 | cpu: [arm] 358 | os: [android] 359 | 360 | '@rollup/rollup-android-arm64@4.34.8': 361 | resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==} 362 | cpu: [arm64] 363 | os: [android] 364 | 365 | '@rollup/rollup-darwin-arm64@4.34.8': 366 | resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==} 367 | cpu: [arm64] 368 | os: [darwin] 369 | 370 | '@rollup/rollup-darwin-x64@4.34.8': 371 | resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==} 372 | cpu: [x64] 373 | os: [darwin] 374 | 375 | '@rollup/rollup-freebsd-arm64@4.34.8': 376 | resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==} 377 | cpu: [arm64] 378 | os: [freebsd] 379 | 380 | '@rollup/rollup-freebsd-x64@4.34.8': 381 | resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==} 382 | cpu: [x64] 383 | os: [freebsd] 384 | 385 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8': 386 | resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} 387 | cpu: [arm] 388 | os: [linux] 389 | 390 | '@rollup/rollup-linux-arm-musleabihf@4.34.8': 391 | resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} 392 | cpu: [arm] 393 | os: [linux] 394 | 395 | '@rollup/rollup-linux-arm64-gnu@4.34.8': 396 | resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} 397 | cpu: [arm64] 398 | os: [linux] 399 | 400 | '@rollup/rollup-linux-arm64-musl@4.34.8': 401 | resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} 402 | cpu: [arm64] 403 | os: [linux] 404 | 405 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8': 406 | resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} 407 | cpu: [loong64] 408 | os: [linux] 409 | 410 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': 411 | resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} 412 | cpu: [ppc64] 413 | os: [linux] 414 | 415 | '@rollup/rollup-linux-riscv64-gnu@4.34.8': 416 | resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} 417 | cpu: [riscv64] 418 | os: [linux] 419 | 420 | '@rollup/rollup-linux-s390x-gnu@4.34.8': 421 | resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} 422 | cpu: [s390x] 423 | os: [linux] 424 | 425 | '@rollup/rollup-linux-x64-gnu@4.34.8': 426 | resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} 427 | cpu: [x64] 428 | os: [linux] 429 | 430 | '@rollup/rollup-linux-x64-musl@4.34.8': 431 | resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} 432 | cpu: [x64] 433 | os: [linux] 434 | 435 | '@rollup/rollup-win32-arm64-msvc@4.34.8': 436 | resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} 437 | cpu: [arm64] 438 | os: [win32] 439 | 440 | '@rollup/rollup-win32-ia32-msvc@4.34.8': 441 | resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==} 442 | cpu: [ia32] 443 | os: [win32] 444 | 445 | '@rollup/rollup-win32-x64-msvc@4.34.8': 446 | resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==} 447 | cpu: [x64] 448 | os: [win32] 449 | 450 | '@rtsao/scc@1.1.0': 451 | resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} 452 | 453 | '@rushstack/eslint-patch@1.10.5': 454 | resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} 455 | 456 | '@swc/counter@0.1.3': 457 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 458 | 459 | '@swc/helpers@0.5.15': 460 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 461 | 462 | '@types/estree@1.0.6': 463 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 464 | 465 | '@types/json-schema@7.0.15': 466 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 467 | 468 | '@types/json5@0.0.29': 469 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 470 | 471 | '@types/node@22.13.4': 472 | resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} 473 | 474 | '@types/react-dom@19.0.4': 475 | resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} 476 | peerDependencies: 477 | '@types/react': ^19.0.0 478 | 479 | '@types/react@19.0.10': 480 | resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==} 481 | 482 | '@types/resolve@1.20.2': 483 | resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} 484 | 485 | '@typescript-eslint/eslint-plugin@8.24.1': 486 | resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==} 487 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 488 | peerDependencies: 489 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 490 | eslint: ^8.57.0 || ^9.0.0 491 | typescript: '>=4.8.4 <5.8.0' 492 | 493 | '@typescript-eslint/parser@8.24.1': 494 | resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==} 495 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 496 | peerDependencies: 497 | eslint: ^8.57.0 || ^9.0.0 498 | typescript: '>=4.8.4 <5.8.0' 499 | 500 | '@typescript-eslint/scope-manager@8.24.1': 501 | resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==} 502 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 503 | 504 | '@typescript-eslint/type-utils@8.24.1': 505 | resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==} 506 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 507 | peerDependencies: 508 | eslint: ^8.57.0 || ^9.0.0 509 | typescript: '>=4.8.4 <5.8.0' 510 | 511 | '@typescript-eslint/types@8.24.1': 512 | resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} 513 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 514 | 515 | '@typescript-eslint/typescript-estree@8.24.1': 516 | resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} 517 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 518 | peerDependencies: 519 | typescript: '>=4.8.4 <5.8.0' 520 | 521 | '@typescript-eslint/utils@8.24.1': 522 | resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==} 523 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 524 | peerDependencies: 525 | eslint: ^8.57.0 || ^9.0.0 526 | typescript: '>=4.8.4 <5.8.0' 527 | 528 | '@typescript-eslint/visitor-keys@8.24.1': 529 | resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} 530 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 531 | 532 | acorn-jsx@5.3.2: 533 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 534 | peerDependencies: 535 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 536 | 537 | acorn@8.14.0: 538 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 539 | engines: {node: '>=0.4.0'} 540 | hasBin: true 541 | 542 | ajv@6.12.6: 543 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 544 | 545 | ansi-escapes@7.0.0: 546 | resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} 547 | engines: {node: '>=18'} 548 | 549 | ansi-regex@6.1.0: 550 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 551 | engines: {node: '>=12'} 552 | 553 | ansi-styles@4.3.0: 554 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 555 | engines: {node: '>=8'} 556 | 557 | ansi-styles@6.2.1: 558 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 559 | engines: {node: '>=12'} 560 | 561 | argparse@2.0.1: 562 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 563 | 564 | aria-query@5.3.2: 565 | resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 566 | engines: {node: '>= 0.4'} 567 | 568 | array-buffer-byte-length@1.0.2: 569 | resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 570 | engines: {node: '>= 0.4'} 571 | 572 | array-includes@3.1.8: 573 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 574 | engines: {node: '>= 0.4'} 575 | 576 | array.prototype.findlast@1.2.5: 577 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 578 | engines: {node: '>= 0.4'} 579 | 580 | array.prototype.findlastindex@1.2.5: 581 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 582 | engines: {node: '>= 0.4'} 583 | 584 | array.prototype.flat@1.3.3: 585 | resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 586 | engines: {node: '>= 0.4'} 587 | 588 | array.prototype.flatmap@1.3.3: 589 | resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} 590 | engines: {node: '>= 0.4'} 591 | 592 | array.prototype.tosorted@1.1.4: 593 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 594 | engines: {node: '>= 0.4'} 595 | 596 | arraybuffer.prototype.slice@1.0.4: 597 | resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 598 | engines: {node: '>= 0.4'} 599 | 600 | ast-types-flow@0.0.8: 601 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 602 | 603 | async-function@1.0.0: 604 | resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 605 | engines: {node: '>= 0.4'} 606 | 607 | available-typed-arrays@1.0.7: 608 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 609 | engines: {node: '>= 0.4'} 610 | 611 | axe-core@4.10.2: 612 | resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} 613 | engines: {node: '>=4'} 614 | 615 | axobject-query@4.1.0: 616 | resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 617 | engines: {node: '>= 0.4'} 618 | 619 | balanced-match@1.0.2: 620 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 621 | 622 | brace-expansion@1.1.11: 623 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 624 | 625 | brace-expansion@2.0.1: 626 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 627 | 628 | braces@3.0.3: 629 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 630 | engines: {node: '>=8'} 631 | 632 | busboy@1.6.0: 633 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 634 | engines: {node: '>=10.16.0'} 635 | 636 | call-bind-apply-helpers@1.0.2: 637 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 638 | engines: {node: '>= 0.4'} 639 | 640 | call-bind@1.0.8: 641 | resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 642 | engines: {node: '>= 0.4'} 643 | 644 | call-bound@1.0.3: 645 | resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 646 | engines: {node: '>= 0.4'} 647 | 648 | callsites@3.1.0: 649 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 650 | engines: {node: '>=6'} 651 | 652 | caniuse-lite@1.0.30001700: 653 | resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==} 654 | 655 | chalk@4.1.2: 656 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 657 | engines: {node: '>=10'} 658 | 659 | chalk@5.4.1: 660 | resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 661 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 662 | 663 | cli-cursor@5.0.0: 664 | resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} 665 | engines: {node: '>=18'} 666 | 667 | cli-truncate@4.0.0: 668 | resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} 669 | engines: {node: '>=18'} 670 | 671 | client-only@0.0.1: 672 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 673 | 674 | color-convert@2.0.1: 675 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 676 | engines: {node: '>=7.0.0'} 677 | 678 | color-name@1.1.4: 679 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 680 | 681 | color-string@1.9.1: 682 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 683 | 684 | color@4.2.3: 685 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 686 | engines: {node: '>=12.5.0'} 687 | 688 | colorette@2.0.20: 689 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 690 | 691 | commander@13.1.0: 692 | resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} 693 | engines: {node: '>=18'} 694 | 695 | concat-map@0.0.1: 696 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 697 | 698 | cross-spawn@7.0.6: 699 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 700 | engines: {node: '>= 8'} 701 | 702 | csstype@3.1.3: 703 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 704 | 705 | damerau-levenshtein@1.0.8: 706 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 707 | 708 | data-view-buffer@1.0.2: 709 | resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 710 | engines: {node: '>= 0.4'} 711 | 712 | data-view-byte-length@1.0.2: 713 | resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 714 | engines: {node: '>= 0.4'} 715 | 716 | data-view-byte-offset@1.0.1: 717 | resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 718 | engines: {node: '>= 0.4'} 719 | 720 | debug@3.2.7: 721 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 722 | peerDependencies: 723 | supports-color: '*' 724 | peerDependenciesMeta: 725 | supports-color: 726 | optional: true 727 | 728 | debug@4.4.0: 729 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 730 | engines: {node: '>=6.0'} 731 | peerDependencies: 732 | supports-color: '*' 733 | peerDependenciesMeta: 734 | supports-color: 735 | optional: true 736 | 737 | deep-is@0.1.4: 738 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 739 | 740 | deepmerge@4.3.1: 741 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 742 | engines: {node: '>=0.10.0'} 743 | 744 | define-data-property@1.1.4: 745 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 746 | engines: {node: '>= 0.4'} 747 | 748 | define-properties@1.2.1: 749 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 750 | engines: {node: '>= 0.4'} 751 | 752 | detect-libc@2.0.3: 753 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 754 | engines: {node: '>=8'} 755 | 756 | doctrine@2.1.0: 757 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 758 | engines: {node: '>=0.10.0'} 759 | 760 | dunder-proto@1.0.1: 761 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 762 | engines: {node: '>= 0.4'} 763 | 764 | emoji-regex@10.4.0: 765 | resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} 766 | 767 | emoji-regex@9.2.2: 768 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 769 | 770 | enhanced-resolve@5.18.1: 771 | resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} 772 | engines: {node: '>=10.13.0'} 773 | 774 | environment@1.1.0: 775 | resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} 776 | engines: {node: '>=18'} 777 | 778 | es-abstract@1.23.9: 779 | resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} 780 | engines: {node: '>= 0.4'} 781 | 782 | es-define-property@1.0.1: 783 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 784 | engines: {node: '>= 0.4'} 785 | 786 | es-errors@1.3.0: 787 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 788 | engines: {node: '>= 0.4'} 789 | 790 | es-iterator-helpers@1.2.1: 791 | resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} 792 | engines: {node: '>= 0.4'} 793 | 794 | es-object-atoms@1.1.1: 795 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 796 | engines: {node: '>= 0.4'} 797 | 798 | es-set-tostringtag@2.1.0: 799 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 800 | engines: {node: '>= 0.4'} 801 | 802 | es-shim-unscopables@1.1.0: 803 | resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} 804 | engines: {node: '>= 0.4'} 805 | 806 | es-to-primitive@1.3.0: 807 | resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 808 | engines: {node: '>= 0.4'} 809 | 810 | escape-string-regexp@4.0.0: 811 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 812 | engines: {node: '>=10'} 813 | 814 | eslint-config-next@15.1.7: 815 | resolution: {integrity: sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==} 816 | peerDependencies: 817 | eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 818 | typescript: '>=3.3.1' 819 | peerDependenciesMeta: 820 | typescript: 821 | optional: true 822 | 823 | eslint-config-prettier@10.0.1: 824 | resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==} 825 | hasBin: true 826 | peerDependencies: 827 | eslint: '>=7.0.0' 828 | 829 | eslint-import-resolver-node@0.3.9: 830 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 831 | 832 | eslint-import-resolver-typescript@3.8.2: 833 | resolution: {integrity: sha512-o0nvXxsatYCDTzI1K5b3aYGQ6PjpDGJEVN86zqJw5SEewhmmggfRTotd2dqWr2t2zbeYpIEWGTCkgtUpIEIcaQ==} 834 | engines: {node: ^14.18.0 || >=16.0.0} 835 | peerDependencies: 836 | eslint: '*' 837 | eslint-plugin-import: '*' 838 | eslint-plugin-import-x: '*' 839 | peerDependenciesMeta: 840 | eslint-plugin-import: 841 | optional: true 842 | eslint-plugin-import-x: 843 | optional: true 844 | 845 | eslint-module-utils@2.12.0: 846 | resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} 847 | engines: {node: '>=4'} 848 | peerDependencies: 849 | '@typescript-eslint/parser': '*' 850 | eslint: '*' 851 | eslint-import-resolver-node: '*' 852 | eslint-import-resolver-typescript: '*' 853 | eslint-import-resolver-webpack: '*' 854 | peerDependenciesMeta: 855 | '@typescript-eslint/parser': 856 | optional: true 857 | eslint: 858 | optional: true 859 | eslint-import-resolver-node: 860 | optional: true 861 | eslint-import-resolver-typescript: 862 | optional: true 863 | eslint-import-resolver-webpack: 864 | optional: true 865 | 866 | eslint-plugin-import@2.31.0: 867 | resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} 868 | engines: {node: '>=4'} 869 | peerDependencies: 870 | '@typescript-eslint/parser': '*' 871 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 872 | peerDependenciesMeta: 873 | '@typescript-eslint/parser': 874 | optional: true 875 | 876 | eslint-plugin-jsx-a11y@6.10.2: 877 | resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} 878 | engines: {node: '>=4.0'} 879 | peerDependencies: 880 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 881 | 882 | eslint-plugin-react-hooks@5.1.0: 883 | resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} 884 | engines: {node: '>=10'} 885 | peerDependencies: 886 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 887 | 888 | eslint-plugin-react@7.37.4: 889 | resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} 890 | engines: {node: '>=4'} 891 | peerDependencies: 892 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 893 | 894 | eslint-scope@8.2.0: 895 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} 896 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 897 | 898 | eslint-visitor-keys@3.4.3: 899 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 900 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 901 | 902 | eslint-visitor-keys@4.2.0: 903 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 904 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 905 | 906 | eslint@9.20.1: 907 | resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==} 908 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 909 | hasBin: true 910 | peerDependencies: 911 | jiti: '*' 912 | peerDependenciesMeta: 913 | jiti: 914 | optional: true 915 | 916 | espree@10.3.0: 917 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 918 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 919 | 920 | esquery@1.6.0: 921 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 922 | engines: {node: '>=0.10'} 923 | 924 | esrecurse@4.3.0: 925 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 926 | engines: {node: '>=4.0'} 927 | 928 | estraverse@5.3.0: 929 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 930 | engines: {node: '>=4.0'} 931 | 932 | estree-walker@2.0.2: 933 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 934 | 935 | esutils@2.0.3: 936 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 937 | engines: {node: '>=0.10.0'} 938 | 939 | eventemitter3@5.0.1: 940 | resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 941 | 942 | execa@5.1.1: 943 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 944 | engines: {node: '>=10'} 945 | 946 | execa@8.0.1: 947 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 948 | engines: {node: '>=16.17'} 949 | 950 | fast-deep-equal@3.1.3: 951 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 952 | 953 | fast-glob@3.3.1: 954 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 955 | engines: {node: '>=8.6.0'} 956 | 957 | fast-glob@3.3.3: 958 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 959 | engines: {node: '>=8.6.0'} 960 | 961 | fast-json-stable-stringify@2.1.0: 962 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 963 | 964 | fast-levenshtein@2.0.6: 965 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 966 | 967 | fastq@1.19.0: 968 | resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} 969 | 970 | fdir@6.4.3: 971 | resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} 972 | peerDependencies: 973 | picomatch: ^3 || ^4 974 | peerDependenciesMeta: 975 | picomatch: 976 | optional: true 977 | 978 | file-entry-cache@8.0.0: 979 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 980 | engines: {node: '>=16.0.0'} 981 | 982 | fill-range@7.1.1: 983 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 984 | engines: {node: '>=8'} 985 | 986 | find-up@5.0.0: 987 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 988 | engines: {node: '>=10'} 989 | 990 | flat-cache@4.0.1: 991 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 992 | engines: {node: '>=16'} 993 | 994 | flatted@3.3.3: 995 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 996 | 997 | for-each@0.3.5: 998 | resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} 999 | engines: {node: '>= 0.4'} 1000 | 1001 | fsevents@2.3.3: 1002 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1003 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1004 | os: [darwin] 1005 | 1006 | function-bind@1.1.2: 1007 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1008 | 1009 | function.prototype.name@1.1.8: 1010 | resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 1011 | engines: {node: '>= 0.4'} 1012 | 1013 | functions-have-names@1.2.3: 1014 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1015 | 1016 | get-east-asian-width@1.3.0: 1017 | resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} 1018 | engines: {node: '>=18'} 1019 | 1020 | get-intrinsic@1.2.7: 1021 | resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} 1022 | engines: {node: '>= 0.4'} 1023 | 1024 | get-proto@1.0.1: 1025 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1026 | engines: {node: '>= 0.4'} 1027 | 1028 | get-stream@6.0.1: 1029 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1030 | engines: {node: '>=10'} 1031 | 1032 | get-stream@8.0.1: 1033 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 1034 | engines: {node: '>=16'} 1035 | 1036 | get-symbol-description@1.1.0: 1037 | resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 1038 | engines: {node: '>= 0.4'} 1039 | 1040 | get-tsconfig@4.10.0: 1041 | resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} 1042 | 1043 | glob-parent@5.1.2: 1044 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1045 | engines: {node: '>= 6'} 1046 | 1047 | glob-parent@6.0.2: 1048 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1049 | engines: {node: '>=10.13.0'} 1050 | 1051 | globals@14.0.0: 1052 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 1053 | engines: {node: '>=18'} 1054 | 1055 | globalthis@1.0.4: 1056 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 1057 | engines: {node: '>= 0.4'} 1058 | 1059 | gopd@1.2.0: 1060 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1061 | engines: {node: '>= 0.4'} 1062 | 1063 | graceful-fs@4.2.11: 1064 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1065 | 1066 | graphemer@1.4.0: 1067 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1068 | 1069 | has-bigints@1.1.0: 1070 | resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 1071 | engines: {node: '>= 0.4'} 1072 | 1073 | has-flag@4.0.0: 1074 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1075 | engines: {node: '>=8'} 1076 | 1077 | has-property-descriptors@1.0.2: 1078 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1079 | 1080 | has-proto@1.2.0: 1081 | resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 1082 | engines: {node: '>= 0.4'} 1083 | 1084 | has-symbols@1.1.0: 1085 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1086 | engines: {node: '>= 0.4'} 1087 | 1088 | has-tostringtag@1.0.2: 1089 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1090 | engines: {node: '>= 0.4'} 1091 | 1092 | hasown@2.0.2: 1093 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1094 | engines: {node: '>= 0.4'} 1095 | 1096 | human-signals@2.1.0: 1097 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1098 | engines: {node: '>=10.17.0'} 1099 | 1100 | human-signals@5.0.0: 1101 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 1102 | engines: {node: '>=16.17.0'} 1103 | 1104 | husky@9.1.7: 1105 | resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} 1106 | engines: {node: '>=18'} 1107 | hasBin: true 1108 | 1109 | ignore@5.3.2: 1110 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1111 | engines: {node: '>= 4'} 1112 | 1113 | import-fresh@3.3.1: 1114 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 1115 | engines: {node: '>=6'} 1116 | 1117 | imurmurhash@0.1.4: 1118 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1119 | engines: {node: '>=0.8.19'} 1120 | 1121 | internal-slot@1.1.0: 1122 | resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 1123 | engines: {node: '>= 0.4'} 1124 | 1125 | is-array-buffer@3.0.5: 1126 | resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 1127 | engines: {node: '>= 0.4'} 1128 | 1129 | is-arrayish@0.3.2: 1130 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1131 | 1132 | is-async-function@2.1.1: 1133 | resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} 1134 | engines: {node: '>= 0.4'} 1135 | 1136 | is-bigint@1.1.0: 1137 | resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 1138 | engines: {node: '>= 0.4'} 1139 | 1140 | is-boolean-object@1.2.2: 1141 | resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} 1142 | engines: {node: '>= 0.4'} 1143 | 1144 | is-bun-module@1.3.0: 1145 | resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} 1146 | 1147 | is-callable@1.2.7: 1148 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1149 | engines: {node: '>= 0.4'} 1150 | 1151 | is-core-module@2.16.1: 1152 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1153 | engines: {node: '>= 0.4'} 1154 | 1155 | is-data-view@1.0.2: 1156 | resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 1157 | engines: {node: '>= 0.4'} 1158 | 1159 | is-date-object@1.1.0: 1160 | resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 1161 | engines: {node: '>= 0.4'} 1162 | 1163 | is-extglob@2.1.1: 1164 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1165 | engines: {node: '>=0.10.0'} 1166 | 1167 | is-finalizationregistry@1.1.1: 1168 | resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 1169 | engines: {node: '>= 0.4'} 1170 | 1171 | is-fullwidth-code-point@4.0.0: 1172 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 1173 | engines: {node: '>=12'} 1174 | 1175 | is-fullwidth-code-point@5.0.0: 1176 | resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} 1177 | engines: {node: '>=18'} 1178 | 1179 | is-generator-function@1.1.0: 1180 | resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} 1181 | engines: {node: '>= 0.4'} 1182 | 1183 | is-glob@4.0.3: 1184 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1185 | engines: {node: '>=0.10.0'} 1186 | 1187 | is-map@2.0.3: 1188 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 1189 | engines: {node: '>= 0.4'} 1190 | 1191 | is-module@1.0.0: 1192 | resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} 1193 | 1194 | is-number-object@1.1.1: 1195 | resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 1196 | engines: {node: '>= 0.4'} 1197 | 1198 | is-number@7.0.0: 1199 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1200 | engines: {node: '>=0.12.0'} 1201 | 1202 | is-regex@1.2.1: 1203 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 1204 | engines: {node: '>= 0.4'} 1205 | 1206 | is-set@2.0.3: 1207 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 1208 | engines: {node: '>= 0.4'} 1209 | 1210 | is-shared-array-buffer@1.0.4: 1211 | resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 1212 | engines: {node: '>= 0.4'} 1213 | 1214 | is-stream@2.0.1: 1215 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1216 | engines: {node: '>=8'} 1217 | 1218 | is-stream@3.0.0: 1219 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1220 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1221 | 1222 | is-string@1.1.1: 1223 | resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 1224 | engines: {node: '>= 0.4'} 1225 | 1226 | is-symbol@1.1.1: 1227 | resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 1228 | engines: {node: '>= 0.4'} 1229 | 1230 | is-typed-array@1.1.15: 1231 | resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 1232 | engines: {node: '>= 0.4'} 1233 | 1234 | is-weakmap@2.0.2: 1235 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1236 | engines: {node: '>= 0.4'} 1237 | 1238 | is-weakref@1.1.1: 1239 | resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} 1240 | engines: {node: '>= 0.4'} 1241 | 1242 | is-weakset@2.0.4: 1243 | resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 1244 | engines: {node: '>= 0.4'} 1245 | 1246 | isarray@2.0.5: 1247 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1248 | 1249 | isexe@2.0.0: 1250 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1251 | 1252 | iterator.prototype@1.1.5: 1253 | resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} 1254 | engines: {node: '>= 0.4'} 1255 | 1256 | js-tokens@4.0.0: 1257 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1258 | 1259 | js-yaml@4.1.0: 1260 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1261 | hasBin: true 1262 | 1263 | json-buffer@3.0.1: 1264 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1265 | 1266 | json-schema-traverse@0.4.1: 1267 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1268 | 1269 | json-stable-stringify-without-jsonify@1.0.1: 1270 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1271 | 1272 | json5@1.0.2: 1273 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1274 | hasBin: true 1275 | 1276 | jsx-ast-utils@3.3.5: 1277 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1278 | engines: {node: '>=4.0'} 1279 | 1280 | keyv@4.5.4: 1281 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1282 | 1283 | language-subtag-registry@0.3.23: 1284 | resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} 1285 | 1286 | language-tags@1.0.9: 1287 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 1288 | engines: {node: '>=0.10'} 1289 | 1290 | levn@0.4.1: 1291 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1292 | engines: {node: '>= 0.8.0'} 1293 | 1294 | lilconfig@3.1.3: 1295 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 1296 | engines: {node: '>=14'} 1297 | 1298 | lint-staged@15.4.3: 1299 | resolution: {integrity: sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g==} 1300 | engines: {node: '>=18.12.0'} 1301 | hasBin: true 1302 | 1303 | listr2@8.2.5: 1304 | resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} 1305 | engines: {node: '>=18.0.0'} 1306 | 1307 | locate-path@6.0.0: 1308 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1309 | engines: {node: '>=10'} 1310 | 1311 | lodash.merge@4.6.2: 1312 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1313 | 1314 | log-update@6.1.0: 1315 | resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} 1316 | engines: {node: '>=18'} 1317 | 1318 | loose-envify@1.4.0: 1319 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1320 | hasBin: true 1321 | 1322 | magic-string@0.30.17: 1323 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1324 | 1325 | math-intrinsics@1.1.0: 1326 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1327 | engines: {node: '>= 0.4'} 1328 | 1329 | merge-stream@2.0.0: 1330 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1331 | 1332 | merge2@1.4.1: 1333 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1334 | engines: {node: '>= 8'} 1335 | 1336 | micromatch@4.0.8: 1337 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1338 | engines: {node: '>=8.6'} 1339 | 1340 | mimic-fn@2.1.0: 1341 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1342 | engines: {node: '>=6'} 1343 | 1344 | mimic-fn@4.0.0: 1345 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1346 | engines: {node: '>=12'} 1347 | 1348 | mimic-function@5.0.1: 1349 | resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} 1350 | engines: {node: '>=18'} 1351 | 1352 | minimatch@3.1.2: 1353 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1354 | 1355 | minimatch@9.0.5: 1356 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1357 | engines: {node: '>=16 || 14 >=14.17'} 1358 | 1359 | minimist@1.2.8: 1360 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1361 | 1362 | mri@1.2.0: 1363 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1364 | engines: {node: '>=4'} 1365 | 1366 | ms@2.1.3: 1367 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1368 | 1369 | nanoid@3.3.8: 1370 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1371 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1372 | hasBin: true 1373 | 1374 | natural-compare@1.4.0: 1375 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1376 | 1377 | next@15.1.7: 1378 | resolution: {integrity: sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==} 1379 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 1380 | hasBin: true 1381 | peerDependencies: 1382 | '@opentelemetry/api': ^1.1.0 1383 | '@playwright/test': ^1.41.2 1384 | babel-plugin-react-compiler: '*' 1385 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1386 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1387 | sass: ^1.3.0 1388 | peerDependenciesMeta: 1389 | '@opentelemetry/api': 1390 | optional: true 1391 | '@playwright/test': 1392 | optional: true 1393 | babel-plugin-react-compiler: 1394 | optional: true 1395 | sass: 1396 | optional: true 1397 | 1398 | npm-run-path@4.0.1: 1399 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1400 | engines: {node: '>=8'} 1401 | 1402 | npm-run-path@5.3.0: 1403 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1404 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1405 | 1406 | object-assign@4.1.1: 1407 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1408 | engines: {node: '>=0.10.0'} 1409 | 1410 | object-inspect@1.13.4: 1411 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 1412 | engines: {node: '>= 0.4'} 1413 | 1414 | object-keys@1.1.1: 1415 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1416 | engines: {node: '>= 0.4'} 1417 | 1418 | object.assign@4.1.7: 1419 | resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1420 | engines: {node: '>= 0.4'} 1421 | 1422 | object.entries@1.1.8: 1423 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 1424 | engines: {node: '>= 0.4'} 1425 | 1426 | object.fromentries@2.0.8: 1427 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1428 | engines: {node: '>= 0.4'} 1429 | 1430 | object.groupby@1.0.3: 1431 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1432 | engines: {node: '>= 0.4'} 1433 | 1434 | object.values@1.2.1: 1435 | resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1436 | engines: {node: '>= 0.4'} 1437 | 1438 | onetime@5.1.2: 1439 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1440 | engines: {node: '>=6'} 1441 | 1442 | onetime@6.0.0: 1443 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1444 | engines: {node: '>=12'} 1445 | 1446 | onetime@7.0.0: 1447 | resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} 1448 | engines: {node: '>=18'} 1449 | 1450 | optionator@0.9.4: 1451 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1452 | engines: {node: '>= 0.8.0'} 1453 | 1454 | own-keys@1.0.1: 1455 | resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} 1456 | engines: {node: '>= 0.4'} 1457 | 1458 | p-limit@3.1.0: 1459 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1460 | engines: {node: '>=10'} 1461 | 1462 | p-locate@5.0.0: 1463 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1464 | engines: {node: '>=10'} 1465 | 1466 | parent-module@1.0.1: 1467 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1468 | engines: {node: '>=6'} 1469 | 1470 | path-exists@4.0.0: 1471 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1472 | engines: {node: '>=8'} 1473 | 1474 | path-key@3.1.1: 1475 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1476 | engines: {node: '>=8'} 1477 | 1478 | path-key@4.0.0: 1479 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1480 | engines: {node: '>=12'} 1481 | 1482 | path-parse@1.0.7: 1483 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1484 | 1485 | picocolors@1.1.1: 1486 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1487 | 1488 | picomatch@2.3.1: 1489 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1490 | engines: {node: '>=8.6'} 1491 | 1492 | picomatch@3.0.1: 1493 | resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} 1494 | engines: {node: '>=10'} 1495 | 1496 | picomatch@4.0.2: 1497 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1498 | engines: {node: '>=12'} 1499 | 1500 | pidtree@0.6.0: 1501 | resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} 1502 | engines: {node: '>=0.10'} 1503 | hasBin: true 1504 | 1505 | possible-typed-array-names@1.1.0: 1506 | resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} 1507 | engines: {node: '>= 0.4'} 1508 | 1509 | postcss@8.4.31: 1510 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1511 | engines: {node: ^10 || ^12 || >=14} 1512 | 1513 | prelude-ls@1.2.1: 1514 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1515 | engines: {node: '>= 0.8.0'} 1516 | 1517 | prettier@3.5.1: 1518 | resolution: {integrity: sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==} 1519 | engines: {node: '>=14'} 1520 | hasBin: true 1521 | 1522 | pretty-quick@4.0.0: 1523 | resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==} 1524 | engines: {node: '>=14'} 1525 | hasBin: true 1526 | peerDependencies: 1527 | prettier: ^3.0.0 1528 | 1529 | prop-types@15.8.1: 1530 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1531 | 1532 | punycode@2.3.1: 1533 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1534 | engines: {node: '>=6'} 1535 | 1536 | queue-microtask@1.2.3: 1537 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1538 | 1539 | react-dom@19.0.0: 1540 | resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} 1541 | peerDependencies: 1542 | react: ^19.0.0 1543 | 1544 | react-is@16.13.1: 1545 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1546 | 1547 | react@19.0.0: 1548 | resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} 1549 | engines: {node: '>=0.10.0'} 1550 | 1551 | reflect.getprototypeof@1.0.10: 1552 | resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 1553 | engines: {node: '>= 0.4'} 1554 | 1555 | regexp.prototype.flags@1.5.4: 1556 | resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 1557 | engines: {node: '>= 0.4'} 1558 | 1559 | resolve-from@4.0.0: 1560 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1561 | engines: {node: '>=4'} 1562 | 1563 | resolve-pkg-maps@1.0.0: 1564 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1565 | 1566 | resolve@1.22.10: 1567 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1568 | engines: {node: '>= 0.4'} 1569 | hasBin: true 1570 | 1571 | resolve@2.0.0-next.5: 1572 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1573 | hasBin: true 1574 | 1575 | restore-cursor@5.1.0: 1576 | resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} 1577 | engines: {node: '>=18'} 1578 | 1579 | reusify@1.0.4: 1580 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1581 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1582 | 1583 | rfdc@1.4.1: 1584 | resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 1585 | 1586 | rollup-plugin-node-externals@8.0.0: 1587 | resolution: {integrity: sha512-2HIOpWsWn5DqBoYl6iCAmB4kd5GoGbF68PR4xKR1YBPvywiqjtYvDEjHFodyqRL51iAMDITP074Zxs0OKs6F+g==} 1588 | engines: {node: '>= 21 || ^20.6.0 || ^18.19.0'} 1589 | peerDependencies: 1590 | rollup: ^4.0.0 1591 | 1592 | rollup-plugin-preserve-directives@0.4.0: 1593 | resolution: {integrity: sha512-gx4nBxYm5BysmEQS+e2tAMrtFxrGvk+Pe5ppafRibQi0zlW7VYAbEGk6IKDw9sJGPdFWgVTE0o4BU4cdG0Fylg==} 1594 | peerDependencies: 1595 | rollup: 2.x || 3.x || 4.x 1596 | 1597 | rollup@4.34.8: 1598 | resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==} 1599 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1600 | hasBin: true 1601 | 1602 | run-parallel@1.2.0: 1603 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1604 | 1605 | safe-array-concat@1.1.3: 1606 | resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 1607 | engines: {node: '>=0.4'} 1608 | 1609 | safe-push-apply@1.0.0: 1610 | resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} 1611 | engines: {node: '>= 0.4'} 1612 | 1613 | safe-regex-test@1.1.0: 1614 | resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 1615 | engines: {node: '>= 0.4'} 1616 | 1617 | scheduler@0.25.0: 1618 | resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} 1619 | 1620 | semver@6.3.1: 1621 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1622 | hasBin: true 1623 | 1624 | semver@7.7.1: 1625 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 1626 | engines: {node: '>=10'} 1627 | hasBin: true 1628 | 1629 | set-function-length@1.2.2: 1630 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1631 | engines: {node: '>= 0.4'} 1632 | 1633 | set-function-name@2.0.2: 1634 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1635 | engines: {node: '>= 0.4'} 1636 | 1637 | set-proto@1.0.0: 1638 | resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 1639 | engines: {node: '>= 0.4'} 1640 | 1641 | sharp@0.33.5: 1642 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 1643 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1644 | 1645 | shebang-command@2.0.0: 1646 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1647 | engines: {node: '>=8'} 1648 | 1649 | shebang-regex@3.0.0: 1650 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1651 | engines: {node: '>=8'} 1652 | 1653 | side-channel-list@1.0.0: 1654 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1655 | engines: {node: '>= 0.4'} 1656 | 1657 | side-channel-map@1.0.1: 1658 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1659 | engines: {node: '>= 0.4'} 1660 | 1661 | side-channel-weakmap@1.0.2: 1662 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1663 | engines: {node: '>= 0.4'} 1664 | 1665 | side-channel@1.1.0: 1666 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1667 | engines: {node: '>= 0.4'} 1668 | 1669 | signal-exit@3.0.7: 1670 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1671 | 1672 | signal-exit@4.1.0: 1673 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1674 | engines: {node: '>=14'} 1675 | 1676 | simple-swizzle@0.2.2: 1677 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1678 | 1679 | slice-ansi@5.0.0: 1680 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 1681 | engines: {node: '>=12'} 1682 | 1683 | slice-ansi@7.1.0: 1684 | resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} 1685 | engines: {node: '>=18'} 1686 | 1687 | source-map-js@1.2.1: 1688 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1689 | engines: {node: '>=0.10.0'} 1690 | 1691 | stable-hash@0.0.4: 1692 | resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} 1693 | 1694 | streamsearch@1.1.0: 1695 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1696 | engines: {node: '>=10.0.0'} 1697 | 1698 | string-argv@0.3.2: 1699 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 1700 | engines: {node: '>=0.6.19'} 1701 | 1702 | string-width@7.2.0: 1703 | resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1704 | engines: {node: '>=18'} 1705 | 1706 | string.prototype.includes@2.0.1: 1707 | resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} 1708 | engines: {node: '>= 0.4'} 1709 | 1710 | string.prototype.matchall@4.0.12: 1711 | resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} 1712 | engines: {node: '>= 0.4'} 1713 | 1714 | string.prototype.repeat@1.0.0: 1715 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} 1716 | 1717 | string.prototype.trim@1.2.10: 1718 | resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 1719 | engines: {node: '>= 0.4'} 1720 | 1721 | string.prototype.trimend@1.0.9: 1722 | resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 1723 | engines: {node: '>= 0.4'} 1724 | 1725 | string.prototype.trimstart@1.0.8: 1726 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1727 | engines: {node: '>= 0.4'} 1728 | 1729 | strip-ansi@7.1.0: 1730 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1731 | engines: {node: '>=12'} 1732 | 1733 | strip-bom@3.0.0: 1734 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1735 | engines: {node: '>=4'} 1736 | 1737 | strip-final-newline@2.0.0: 1738 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1739 | engines: {node: '>=6'} 1740 | 1741 | strip-final-newline@3.0.0: 1742 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 1743 | engines: {node: '>=12'} 1744 | 1745 | strip-json-comments@3.1.1: 1746 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1747 | engines: {node: '>=8'} 1748 | 1749 | styled-jsx@5.1.6: 1750 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 1751 | engines: {node: '>= 12.0.0'} 1752 | peerDependencies: 1753 | '@babel/core': '*' 1754 | babel-plugin-macros: '*' 1755 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 1756 | peerDependenciesMeta: 1757 | '@babel/core': 1758 | optional: true 1759 | babel-plugin-macros: 1760 | optional: true 1761 | 1762 | supports-color@7.2.0: 1763 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1764 | engines: {node: '>=8'} 1765 | 1766 | supports-preserve-symlinks-flag@1.0.0: 1767 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1768 | engines: {node: '>= 0.4'} 1769 | 1770 | tapable@2.2.1: 1771 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1772 | engines: {node: '>=6'} 1773 | 1774 | tinyglobby@0.2.11: 1775 | resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==} 1776 | engines: {node: '>=12.0.0'} 1777 | 1778 | to-regex-range@5.0.1: 1779 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1780 | engines: {node: '>=8.0'} 1781 | 1782 | ts-api-utils@2.0.1: 1783 | resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} 1784 | engines: {node: '>=18.12'} 1785 | peerDependencies: 1786 | typescript: '>=4.8.4' 1787 | 1788 | tsconfig-paths@3.15.0: 1789 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 1790 | 1791 | tslib@2.8.1: 1792 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1793 | 1794 | type-check@0.4.0: 1795 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1796 | engines: {node: '>= 0.8.0'} 1797 | 1798 | typed-array-buffer@1.0.3: 1799 | resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 1800 | engines: {node: '>= 0.4'} 1801 | 1802 | typed-array-byte-length@1.0.3: 1803 | resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 1804 | engines: {node: '>= 0.4'} 1805 | 1806 | typed-array-byte-offset@1.0.4: 1807 | resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 1808 | engines: {node: '>= 0.4'} 1809 | 1810 | typed-array-length@1.0.7: 1811 | resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 1812 | engines: {node: '>= 0.4'} 1813 | 1814 | typescript-eslint@8.24.1: 1815 | resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==} 1816 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1817 | peerDependencies: 1818 | eslint: ^8.57.0 || ^9.0.0 1819 | typescript: '>=4.8.4 <5.8.0' 1820 | 1821 | typescript@5.7.3: 1822 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 1823 | engines: {node: '>=14.17'} 1824 | hasBin: true 1825 | 1826 | unbox-primitive@1.1.0: 1827 | resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 1828 | engines: {node: '>= 0.4'} 1829 | 1830 | undici-types@6.20.0: 1831 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1832 | 1833 | uri-js@4.4.1: 1834 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1835 | 1836 | which-boxed-primitive@1.1.1: 1837 | resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 1838 | engines: {node: '>= 0.4'} 1839 | 1840 | which-builtin-type@1.2.1: 1841 | resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 1842 | engines: {node: '>= 0.4'} 1843 | 1844 | which-collection@1.0.2: 1845 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 1846 | engines: {node: '>= 0.4'} 1847 | 1848 | which-typed-array@1.1.18: 1849 | resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} 1850 | engines: {node: '>= 0.4'} 1851 | 1852 | which@2.0.2: 1853 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1854 | engines: {node: '>= 8'} 1855 | hasBin: true 1856 | 1857 | word-wrap@1.2.5: 1858 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1859 | engines: {node: '>=0.10.0'} 1860 | 1861 | wrap-ansi@9.0.0: 1862 | resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} 1863 | engines: {node: '>=18'} 1864 | 1865 | yaml@2.7.0: 1866 | resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} 1867 | engines: {node: '>= 14'} 1868 | hasBin: true 1869 | 1870 | yocto-queue@0.1.0: 1871 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1872 | engines: {node: '>=10'} 1873 | 1874 | snapshots: 1875 | 1876 | '@emnapi/runtime@1.3.1': 1877 | dependencies: 1878 | tslib: 2.8.1 1879 | optional: true 1880 | 1881 | '@eslint-community/eslint-utils@4.4.1(eslint@9.20.1)': 1882 | dependencies: 1883 | eslint: 9.20.1 1884 | eslint-visitor-keys: 3.4.3 1885 | 1886 | '@eslint-community/regexpp@4.12.1': {} 1887 | 1888 | '@eslint/config-array@0.19.2': 1889 | dependencies: 1890 | '@eslint/object-schema': 2.1.6 1891 | debug: 4.4.0 1892 | minimatch: 3.1.2 1893 | transitivePeerDependencies: 1894 | - supports-color 1895 | 1896 | '@eslint/core@0.11.0': 1897 | dependencies: 1898 | '@types/json-schema': 7.0.15 1899 | 1900 | '@eslint/eslintrc@3.2.0': 1901 | dependencies: 1902 | ajv: 6.12.6 1903 | debug: 4.4.0 1904 | espree: 10.3.0 1905 | globals: 14.0.0 1906 | ignore: 5.3.2 1907 | import-fresh: 3.3.1 1908 | js-yaml: 4.1.0 1909 | minimatch: 3.1.2 1910 | strip-json-comments: 3.1.1 1911 | transitivePeerDependencies: 1912 | - supports-color 1913 | 1914 | '@eslint/js@9.20.0': {} 1915 | 1916 | '@eslint/object-schema@2.1.6': {} 1917 | 1918 | '@eslint/plugin-kit@0.2.6': 1919 | dependencies: 1920 | '@eslint/core': 0.11.0 1921 | levn: 0.4.1 1922 | 1923 | '@humanfs/core@0.19.1': {} 1924 | 1925 | '@humanfs/node@0.16.6': 1926 | dependencies: 1927 | '@humanfs/core': 0.19.1 1928 | '@humanwhocodes/retry': 0.3.1 1929 | 1930 | '@humanwhocodes/module-importer@1.0.1': {} 1931 | 1932 | '@humanwhocodes/retry@0.3.1': {} 1933 | 1934 | '@humanwhocodes/retry@0.4.1': {} 1935 | 1936 | '@img/sharp-darwin-arm64@0.33.5': 1937 | optionalDependencies: 1938 | '@img/sharp-libvips-darwin-arm64': 1.0.4 1939 | optional: true 1940 | 1941 | '@img/sharp-darwin-x64@0.33.5': 1942 | optionalDependencies: 1943 | '@img/sharp-libvips-darwin-x64': 1.0.4 1944 | optional: true 1945 | 1946 | '@img/sharp-libvips-darwin-arm64@1.0.4': 1947 | optional: true 1948 | 1949 | '@img/sharp-libvips-darwin-x64@1.0.4': 1950 | optional: true 1951 | 1952 | '@img/sharp-libvips-linux-arm64@1.0.4': 1953 | optional: true 1954 | 1955 | '@img/sharp-libvips-linux-arm@1.0.5': 1956 | optional: true 1957 | 1958 | '@img/sharp-libvips-linux-s390x@1.0.4': 1959 | optional: true 1960 | 1961 | '@img/sharp-libvips-linux-x64@1.0.4': 1962 | optional: true 1963 | 1964 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 1965 | optional: true 1966 | 1967 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 1968 | optional: true 1969 | 1970 | '@img/sharp-linux-arm64@0.33.5': 1971 | optionalDependencies: 1972 | '@img/sharp-libvips-linux-arm64': 1.0.4 1973 | optional: true 1974 | 1975 | '@img/sharp-linux-arm@0.33.5': 1976 | optionalDependencies: 1977 | '@img/sharp-libvips-linux-arm': 1.0.5 1978 | optional: true 1979 | 1980 | '@img/sharp-linux-s390x@0.33.5': 1981 | optionalDependencies: 1982 | '@img/sharp-libvips-linux-s390x': 1.0.4 1983 | optional: true 1984 | 1985 | '@img/sharp-linux-x64@0.33.5': 1986 | optionalDependencies: 1987 | '@img/sharp-libvips-linux-x64': 1.0.4 1988 | optional: true 1989 | 1990 | '@img/sharp-linuxmusl-arm64@0.33.5': 1991 | optionalDependencies: 1992 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 1993 | optional: true 1994 | 1995 | '@img/sharp-linuxmusl-x64@0.33.5': 1996 | optionalDependencies: 1997 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 1998 | optional: true 1999 | 2000 | '@img/sharp-wasm32@0.33.5': 2001 | dependencies: 2002 | '@emnapi/runtime': 1.3.1 2003 | optional: true 2004 | 2005 | '@img/sharp-win32-ia32@0.33.5': 2006 | optional: true 2007 | 2008 | '@img/sharp-win32-x64@0.33.5': 2009 | optional: true 2010 | 2011 | '@jridgewell/sourcemap-codec@1.5.0': {} 2012 | 2013 | '@next/env@15.1.7': {} 2014 | 2015 | '@next/eslint-plugin-next@15.1.7': 2016 | dependencies: 2017 | fast-glob: 3.3.1 2018 | 2019 | '@next/swc-darwin-arm64@15.1.7': 2020 | optional: true 2021 | 2022 | '@next/swc-darwin-x64@15.1.7': 2023 | optional: true 2024 | 2025 | '@next/swc-linux-arm64-gnu@15.1.7': 2026 | optional: true 2027 | 2028 | '@next/swc-linux-arm64-musl@15.1.7': 2029 | optional: true 2030 | 2031 | '@next/swc-linux-x64-gnu@15.1.7': 2032 | optional: true 2033 | 2034 | '@next/swc-linux-x64-musl@15.1.7': 2035 | optional: true 2036 | 2037 | '@next/swc-win32-arm64-msvc@15.1.7': 2038 | optional: true 2039 | 2040 | '@next/swc-win32-x64-msvc@15.1.7': 2041 | optional: true 2042 | 2043 | '@nodelib/fs.scandir@2.1.5': 2044 | dependencies: 2045 | '@nodelib/fs.stat': 2.0.5 2046 | run-parallel: 1.2.0 2047 | 2048 | '@nodelib/fs.stat@2.0.5': {} 2049 | 2050 | '@nodelib/fs.walk@1.2.8': 2051 | dependencies: 2052 | '@nodelib/fs.scandir': 2.1.5 2053 | fastq: 1.19.0 2054 | 2055 | '@nolyfill/is-core-module@1.0.39': {} 2056 | 2057 | '@rollup/plugin-node-resolve@16.0.0(rollup@4.34.8)': 2058 | dependencies: 2059 | '@rollup/pluginutils': 5.1.4(rollup@4.34.8) 2060 | '@types/resolve': 1.20.2 2061 | deepmerge: 4.3.1 2062 | is-module: 1.0.0 2063 | resolve: 1.22.10 2064 | optionalDependencies: 2065 | rollup: 4.34.8 2066 | 2067 | '@rollup/plugin-typescript@12.1.2(rollup@4.34.8)(tslib@2.8.1)(typescript@5.7.3)': 2068 | dependencies: 2069 | '@rollup/pluginutils': 5.1.4(rollup@4.34.8) 2070 | resolve: 1.22.10 2071 | typescript: 5.7.3 2072 | optionalDependencies: 2073 | rollup: 4.34.8 2074 | tslib: 2.8.1 2075 | 2076 | '@rollup/pluginutils@5.1.4(rollup@4.34.8)': 2077 | dependencies: 2078 | '@types/estree': 1.0.6 2079 | estree-walker: 2.0.2 2080 | picomatch: 4.0.2 2081 | optionalDependencies: 2082 | rollup: 4.34.8 2083 | 2084 | '@rollup/rollup-android-arm-eabi@4.34.8': 2085 | optional: true 2086 | 2087 | '@rollup/rollup-android-arm64@4.34.8': 2088 | optional: true 2089 | 2090 | '@rollup/rollup-darwin-arm64@4.34.8': 2091 | optional: true 2092 | 2093 | '@rollup/rollup-darwin-x64@4.34.8': 2094 | optional: true 2095 | 2096 | '@rollup/rollup-freebsd-arm64@4.34.8': 2097 | optional: true 2098 | 2099 | '@rollup/rollup-freebsd-x64@4.34.8': 2100 | optional: true 2101 | 2102 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8': 2103 | optional: true 2104 | 2105 | '@rollup/rollup-linux-arm-musleabihf@4.34.8': 2106 | optional: true 2107 | 2108 | '@rollup/rollup-linux-arm64-gnu@4.34.8': 2109 | optional: true 2110 | 2111 | '@rollup/rollup-linux-arm64-musl@4.34.8': 2112 | optional: true 2113 | 2114 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8': 2115 | optional: true 2116 | 2117 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': 2118 | optional: true 2119 | 2120 | '@rollup/rollup-linux-riscv64-gnu@4.34.8': 2121 | optional: true 2122 | 2123 | '@rollup/rollup-linux-s390x-gnu@4.34.8': 2124 | optional: true 2125 | 2126 | '@rollup/rollup-linux-x64-gnu@4.34.8': 2127 | optional: true 2128 | 2129 | '@rollup/rollup-linux-x64-musl@4.34.8': 2130 | optional: true 2131 | 2132 | '@rollup/rollup-win32-arm64-msvc@4.34.8': 2133 | optional: true 2134 | 2135 | '@rollup/rollup-win32-ia32-msvc@4.34.8': 2136 | optional: true 2137 | 2138 | '@rollup/rollup-win32-x64-msvc@4.34.8': 2139 | optional: true 2140 | 2141 | '@rtsao/scc@1.1.0': {} 2142 | 2143 | '@rushstack/eslint-patch@1.10.5': {} 2144 | 2145 | '@swc/counter@0.1.3': {} 2146 | 2147 | '@swc/helpers@0.5.15': 2148 | dependencies: 2149 | tslib: 2.8.1 2150 | 2151 | '@types/estree@1.0.6': {} 2152 | 2153 | '@types/json-schema@7.0.15': {} 2154 | 2155 | '@types/json5@0.0.29': {} 2156 | 2157 | '@types/node@22.13.4': 2158 | dependencies: 2159 | undici-types: 6.20.0 2160 | 2161 | '@types/react-dom@19.0.4(@types/react@19.0.10)': 2162 | dependencies: 2163 | '@types/react': 19.0.10 2164 | 2165 | '@types/react@19.0.10': 2166 | dependencies: 2167 | csstype: 3.1.3 2168 | 2169 | '@types/resolve@1.20.2': {} 2170 | 2171 | '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3)': 2172 | dependencies: 2173 | '@eslint-community/regexpp': 4.12.1 2174 | '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 2175 | '@typescript-eslint/scope-manager': 8.24.1 2176 | '@typescript-eslint/type-utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 2177 | '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 2178 | '@typescript-eslint/visitor-keys': 8.24.1 2179 | eslint: 9.20.1 2180 | graphemer: 1.4.0 2181 | ignore: 5.3.2 2182 | natural-compare: 1.4.0 2183 | ts-api-utils: 2.0.1(typescript@5.7.3) 2184 | typescript: 5.7.3 2185 | transitivePeerDependencies: 2186 | - supports-color 2187 | 2188 | '@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3)': 2189 | dependencies: 2190 | '@typescript-eslint/scope-manager': 8.24.1 2191 | '@typescript-eslint/types': 8.24.1 2192 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) 2193 | '@typescript-eslint/visitor-keys': 8.24.1 2194 | debug: 4.4.0 2195 | eslint: 9.20.1 2196 | typescript: 5.7.3 2197 | transitivePeerDependencies: 2198 | - supports-color 2199 | 2200 | '@typescript-eslint/scope-manager@8.24.1': 2201 | dependencies: 2202 | '@typescript-eslint/types': 8.24.1 2203 | '@typescript-eslint/visitor-keys': 8.24.1 2204 | 2205 | '@typescript-eslint/type-utils@8.24.1(eslint@9.20.1)(typescript@5.7.3)': 2206 | dependencies: 2207 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) 2208 | '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 2209 | debug: 4.4.0 2210 | eslint: 9.20.1 2211 | ts-api-utils: 2.0.1(typescript@5.7.3) 2212 | typescript: 5.7.3 2213 | transitivePeerDependencies: 2214 | - supports-color 2215 | 2216 | '@typescript-eslint/types@8.24.1': {} 2217 | 2218 | '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)': 2219 | dependencies: 2220 | '@typescript-eslint/types': 8.24.1 2221 | '@typescript-eslint/visitor-keys': 8.24.1 2222 | debug: 4.4.0 2223 | fast-glob: 3.3.3 2224 | is-glob: 4.0.3 2225 | minimatch: 9.0.5 2226 | semver: 7.7.1 2227 | ts-api-utils: 2.0.1(typescript@5.7.3) 2228 | typescript: 5.7.3 2229 | transitivePeerDependencies: 2230 | - supports-color 2231 | 2232 | '@typescript-eslint/utils@8.24.1(eslint@9.20.1)(typescript@5.7.3)': 2233 | dependencies: 2234 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1) 2235 | '@typescript-eslint/scope-manager': 8.24.1 2236 | '@typescript-eslint/types': 8.24.1 2237 | '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3) 2238 | eslint: 9.20.1 2239 | typescript: 5.7.3 2240 | transitivePeerDependencies: 2241 | - supports-color 2242 | 2243 | '@typescript-eslint/visitor-keys@8.24.1': 2244 | dependencies: 2245 | '@typescript-eslint/types': 8.24.1 2246 | eslint-visitor-keys: 4.2.0 2247 | 2248 | acorn-jsx@5.3.2(acorn@8.14.0): 2249 | dependencies: 2250 | acorn: 8.14.0 2251 | 2252 | acorn@8.14.0: {} 2253 | 2254 | ajv@6.12.6: 2255 | dependencies: 2256 | fast-deep-equal: 3.1.3 2257 | fast-json-stable-stringify: 2.1.0 2258 | json-schema-traverse: 0.4.1 2259 | uri-js: 4.4.1 2260 | 2261 | ansi-escapes@7.0.0: 2262 | dependencies: 2263 | environment: 1.1.0 2264 | 2265 | ansi-regex@6.1.0: {} 2266 | 2267 | ansi-styles@4.3.0: 2268 | dependencies: 2269 | color-convert: 2.0.1 2270 | 2271 | ansi-styles@6.2.1: {} 2272 | 2273 | argparse@2.0.1: {} 2274 | 2275 | aria-query@5.3.2: {} 2276 | 2277 | array-buffer-byte-length@1.0.2: 2278 | dependencies: 2279 | call-bound: 1.0.3 2280 | is-array-buffer: 3.0.5 2281 | 2282 | array-includes@3.1.8: 2283 | dependencies: 2284 | call-bind: 1.0.8 2285 | define-properties: 1.2.1 2286 | es-abstract: 1.23.9 2287 | es-object-atoms: 1.1.1 2288 | get-intrinsic: 1.2.7 2289 | is-string: 1.1.1 2290 | 2291 | array.prototype.findlast@1.2.5: 2292 | dependencies: 2293 | call-bind: 1.0.8 2294 | define-properties: 1.2.1 2295 | es-abstract: 1.23.9 2296 | es-errors: 1.3.0 2297 | es-object-atoms: 1.1.1 2298 | es-shim-unscopables: 1.1.0 2299 | 2300 | array.prototype.findlastindex@1.2.5: 2301 | dependencies: 2302 | call-bind: 1.0.8 2303 | define-properties: 1.2.1 2304 | es-abstract: 1.23.9 2305 | es-errors: 1.3.0 2306 | es-object-atoms: 1.1.1 2307 | es-shim-unscopables: 1.1.0 2308 | 2309 | array.prototype.flat@1.3.3: 2310 | dependencies: 2311 | call-bind: 1.0.8 2312 | define-properties: 1.2.1 2313 | es-abstract: 1.23.9 2314 | es-shim-unscopables: 1.1.0 2315 | 2316 | array.prototype.flatmap@1.3.3: 2317 | dependencies: 2318 | call-bind: 1.0.8 2319 | define-properties: 1.2.1 2320 | es-abstract: 1.23.9 2321 | es-shim-unscopables: 1.1.0 2322 | 2323 | array.prototype.tosorted@1.1.4: 2324 | dependencies: 2325 | call-bind: 1.0.8 2326 | define-properties: 1.2.1 2327 | es-abstract: 1.23.9 2328 | es-errors: 1.3.0 2329 | es-shim-unscopables: 1.1.0 2330 | 2331 | arraybuffer.prototype.slice@1.0.4: 2332 | dependencies: 2333 | array-buffer-byte-length: 1.0.2 2334 | call-bind: 1.0.8 2335 | define-properties: 1.2.1 2336 | es-abstract: 1.23.9 2337 | es-errors: 1.3.0 2338 | get-intrinsic: 1.2.7 2339 | is-array-buffer: 3.0.5 2340 | 2341 | ast-types-flow@0.0.8: {} 2342 | 2343 | async-function@1.0.0: {} 2344 | 2345 | available-typed-arrays@1.0.7: 2346 | dependencies: 2347 | possible-typed-array-names: 1.1.0 2348 | 2349 | axe-core@4.10.2: {} 2350 | 2351 | axobject-query@4.1.0: {} 2352 | 2353 | balanced-match@1.0.2: {} 2354 | 2355 | brace-expansion@1.1.11: 2356 | dependencies: 2357 | balanced-match: 1.0.2 2358 | concat-map: 0.0.1 2359 | 2360 | brace-expansion@2.0.1: 2361 | dependencies: 2362 | balanced-match: 1.0.2 2363 | 2364 | braces@3.0.3: 2365 | dependencies: 2366 | fill-range: 7.1.1 2367 | 2368 | busboy@1.6.0: 2369 | dependencies: 2370 | streamsearch: 1.1.0 2371 | 2372 | call-bind-apply-helpers@1.0.2: 2373 | dependencies: 2374 | es-errors: 1.3.0 2375 | function-bind: 1.1.2 2376 | 2377 | call-bind@1.0.8: 2378 | dependencies: 2379 | call-bind-apply-helpers: 1.0.2 2380 | es-define-property: 1.0.1 2381 | get-intrinsic: 1.2.7 2382 | set-function-length: 1.2.2 2383 | 2384 | call-bound@1.0.3: 2385 | dependencies: 2386 | call-bind-apply-helpers: 1.0.2 2387 | get-intrinsic: 1.2.7 2388 | 2389 | callsites@3.1.0: {} 2390 | 2391 | caniuse-lite@1.0.30001700: {} 2392 | 2393 | chalk@4.1.2: 2394 | dependencies: 2395 | ansi-styles: 4.3.0 2396 | supports-color: 7.2.0 2397 | 2398 | chalk@5.4.1: {} 2399 | 2400 | cli-cursor@5.0.0: 2401 | dependencies: 2402 | restore-cursor: 5.1.0 2403 | 2404 | cli-truncate@4.0.0: 2405 | dependencies: 2406 | slice-ansi: 5.0.0 2407 | string-width: 7.2.0 2408 | 2409 | client-only@0.0.1: {} 2410 | 2411 | color-convert@2.0.1: 2412 | dependencies: 2413 | color-name: 1.1.4 2414 | 2415 | color-name@1.1.4: {} 2416 | 2417 | color-string@1.9.1: 2418 | dependencies: 2419 | color-name: 1.1.4 2420 | simple-swizzle: 0.2.2 2421 | optional: true 2422 | 2423 | color@4.2.3: 2424 | dependencies: 2425 | color-convert: 2.0.1 2426 | color-string: 1.9.1 2427 | optional: true 2428 | 2429 | colorette@2.0.20: {} 2430 | 2431 | commander@13.1.0: {} 2432 | 2433 | concat-map@0.0.1: {} 2434 | 2435 | cross-spawn@7.0.6: 2436 | dependencies: 2437 | path-key: 3.1.1 2438 | shebang-command: 2.0.0 2439 | which: 2.0.2 2440 | 2441 | csstype@3.1.3: {} 2442 | 2443 | damerau-levenshtein@1.0.8: {} 2444 | 2445 | data-view-buffer@1.0.2: 2446 | dependencies: 2447 | call-bound: 1.0.3 2448 | es-errors: 1.3.0 2449 | is-data-view: 1.0.2 2450 | 2451 | data-view-byte-length@1.0.2: 2452 | dependencies: 2453 | call-bound: 1.0.3 2454 | es-errors: 1.3.0 2455 | is-data-view: 1.0.2 2456 | 2457 | data-view-byte-offset@1.0.1: 2458 | dependencies: 2459 | call-bound: 1.0.3 2460 | es-errors: 1.3.0 2461 | is-data-view: 1.0.2 2462 | 2463 | debug@3.2.7: 2464 | dependencies: 2465 | ms: 2.1.3 2466 | 2467 | debug@4.4.0: 2468 | dependencies: 2469 | ms: 2.1.3 2470 | 2471 | deep-is@0.1.4: {} 2472 | 2473 | deepmerge@4.3.1: {} 2474 | 2475 | define-data-property@1.1.4: 2476 | dependencies: 2477 | es-define-property: 1.0.1 2478 | es-errors: 1.3.0 2479 | gopd: 1.2.0 2480 | 2481 | define-properties@1.2.1: 2482 | dependencies: 2483 | define-data-property: 1.1.4 2484 | has-property-descriptors: 1.0.2 2485 | object-keys: 1.1.1 2486 | 2487 | detect-libc@2.0.3: 2488 | optional: true 2489 | 2490 | doctrine@2.1.0: 2491 | dependencies: 2492 | esutils: 2.0.3 2493 | 2494 | dunder-proto@1.0.1: 2495 | dependencies: 2496 | call-bind-apply-helpers: 1.0.2 2497 | es-errors: 1.3.0 2498 | gopd: 1.2.0 2499 | 2500 | emoji-regex@10.4.0: {} 2501 | 2502 | emoji-regex@9.2.2: {} 2503 | 2504 | enhanced-resolve@5.18.1: 2505 | dependencies: 2506 | graceful-fs: 4.2.11 2507 | tapable: 2.2.1 2508 | 2509 | environment@1.1.0: {} 2510 | 2511 | es-abstract@1.23.9: 2512 | dependencies: 2513 | array-buffer-byte-length: 1.0.2 2514 | arraybuffer.prototype.slice: 1.0.4 2515 | available-typed-arrays: 1.0.7 2516 | call-bind: 1.0.8 2517 | call-bound: 1.0.3 2518 | data-view-buffer: 1.0.2 2519 | data-view-byte-length: 1.0.2 2520 | data-view-byte-offset: 1.0.1 2521 | es-define-property: 1.0.1 2522 | es-errors: 1.3.0 2523 | es-object-atoms: 1.1.1 2524 | es-set-tostringtag: 2.1.0 2525 | es-to-primitive: 1.3.0 2526 | function.prototype.name: 1.1.8 2527 | get-intrinsic: 1.2.7 2528 | get-proto: 1.0.1 2529 | get-symbol-description: 1.1.0 2530 | globalthis: 1.0.4 2531 | gopd: 1.2.0 2532 | has-property-descriptors: 1.0.2 2533 | has-proto: 1.2.0 2534 | has-symbols: 1.1.0 2535 | hasown: 2.0.2 2536 | internal-slot: 1.1.0 2537 | is-array-buffer: 3.0.5 2538 | is-callable: 1.2.7 2539 | is-data-view: 1.0.2 2540 | is-regex: 1.2.1 2541 | is-shared-array-buffer: 1.0.4 2542 | is-string: 1.1.1 2543 | is-typed-array: 1.1.15 2544 | is-weakref: 1.1.1 2545 | math-intrinsics: 1.1.0 2546 | object-inspect: 1.13.4 2547 | object-keys: 1.1.1 2548 | object.assign: 4.1.7 2549 | own-keys: 1.0.1 2550 | regexp.prototype.flags: 1.5.4 2551 | safe-array-concat: 1.1.3 2552 | safe-push-apply: 1.0.0 2553 | safe-regex-test: 1.1.0 2554 | set-proto: 1.0.0 2555 | string.prototype.trim: 1.2.10 2556 | string.prototype.trimend: 1.0.9 2557 | string.prototype.trimstart: 1.0.8 2558 | typed-array-buffer: 1.0.3 2559 | typed-array-byte-length: 1.0.3 2560 | typed-array-byte-offset: 1.0.4 2561 | typed-array-length: 1.0.7 2562 | unbox-primitive: 1.1.0 2563 | which-typed-array: 1.1.18 2564 | 2565 | es-define-property@1.0.1: {} 2566 | 2567 | es-errors@1.3.0: {} 2568 | 2569 | es-iterator-helpers@1.2.1: 2570 | dependencies: 2571 | call-bind: 1.0.8 2572 | call-bound: 1.0.3 2573 | define-properties: 1.2.1 2574 | es-abstract: 1.23.9 2575 | es-errors: 1.3.0 2576 | es-set-tostringtag: 2.1.0 2577 | function-bind: 1.1.2 2578 | get-intrinsic: 1.2.7 2579 | globalthis: 1.0.4 2580 | gopd: 1.2.0 2581 | has-property-descriptors: 1.0.2 2582 | has-proto: 1.2.0 2583 | has-symbols: 1.1.0 2584 | internal-slot: 1.1.0 2585 | iterator.prototype: 1.1.5 2586 | safe-array-concat: 1.1.3 2587 | 2588 | es-object-atoms@1.1.1: 2589 | dependencies: 2590 | es-errors: 1.3.0 2591 | 2592 | es-set-tostringtag@2.1.0: 2593 | dependencies: 2594 | es-errors: 1.3.0 2595 | get-intrinsic: 1.2.7 2596 | has-tostringtag: 1.0.2 2597 | hasown: 2.0.2 2598 | 2599 | es-shim-unscopables@1.1.0: 2600 | dependencies: 2601 | hasown: 2.0.2 2602 | 2603 | es-to-primitive@1.3.0: 2604 | dependencies: 2605 | is-callable: 1.2.7 2606 | is-date-object: 1.1.0 2607 | is-symbol: 1.1.1 2608 | 2609 | escape-string-regexp@4.0.0: {} 2610 | 2611 | eslint-config-next@15.1.7(eslint@9.20.1)(typescript@5.7.3): 2612 | dependencies: 2613 | '@next/eslint-plugin-next': 15.1.7 2614 | '@rushstack/eslint-patch': 1.10.5 2615 | '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3) 2616 | '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 2617 | eslint: 9.20.1 2618 | eslint-import-resolver-node: 0.3.9 2619 | eslint-import-resolver-typescript: 3.8.2(eslint-plugin-import@2.31.0)(eslint@9.20.1) 2620 | eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.2)(eslint@9.20.1) 2621 | eslint-plugin-jsx-a11y: 6.10.2(eslint@9.20.1) 2622 | eslint-plugin-react: 7.37.4(eslint@9.20.1) 2623 | eslint-plugin-react-hooks: 5.1.0(eslint@9.20.1) 2624 | optionalDependencies: 2625 | typescript: 5.7.3 2626 | transitivePeerDependencies: 2627 | - eslint-import-resolver-webpack 2628 | - eslint-plugin-import-x 2629 | - supports-color 2630 | 2631 | eslint-config-prettier@10.0.1(eslint@9.20.1): 2632 | dependencies: 2633 | eslint: 9.20.1 2634 | 2635 | eslint-import-resolver-node@0.3.9: 2636 | dependencies: 2637 | debug: 3.2.7 2638 | is-core-module: 2.16.1 2639 | resolve: 1.22.10 2640 | transitivePeerDependencies: 2641 | - supports-color 2642 | 2643 | eslint-import-resolver-typescript@3.8.2(eslint-plugin-import@2.31.0)(eslint@9.20.1): 2644 | dependencies: 2645 | '@nolyfill/is-core-module': 1.0.39 2646 | debug: 4.4.0 2647 | enhanced-resolve: 5.18.1 2648 | eslint: 9.20.1 2649 | get-tsconfig: 4.10.0 2650 | is-bun-module: 1.3.0 2651 | stable-hash: 0.0.4 2652 | tinyglobby: 0.2.11 2653 | optionalDependencies: 2654 | eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.2)(eslint@9.20.1) 2655 | transitivePeerDependencies: 2656 | - supports-color 2657 | 2658 | eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.2)(eslint@9.20.1): 2659 | dependencies: 2660 | debug: 3.2.7 2661 | optionalDependencies: 2662 | '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 2663 | eslint: 9.20.1 2664 | eslint-import-resolver-node: 0.3.9 2665 | eslint-import-resolver-typescript: 3.8.2(eslint-plugin-import@2.31.0)(eslint@9.20.1) 2666 | transitivePeerDependencies: 2667 | - supports-color 2668 | 2669 | eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.2)(eslint@9.20.1): 2670 | dependencies: 2671 | '@rtsao/scc': 1.1.0 2672 | array-includes: 3.1.8 2673 | array.prototype.findlastindex: 1.2.5 2674 | array.prototype.flat: 1.3.3 2675 | array.prototype.flatmap: 1.3.3 2676 | debug: 3.2.7 2677 | doctrine: 2.1.0 2678 | eslint: 9.20.1 2679 | eslint-import-resolver-node: 0.3.9 2680 | eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.2)(eslint@9.20.1) 2681 | hasown: 2.0.2 2682 | is-core-module: 2.16.1 2683 | is-glob: 4.0.3 2684 | minimatch: 3.1.2 2685 | object.fromentries: 2.0.8 2686 | object.groupby: 1.0.3 2687 | object.values: 1.2.1 2688 | semver: 6.3.1 2689 | string.prototype.trimend: 1.0.9 2690 | tsconfig-paths: 3.15.0 2691 | optionalDependencies: 2692 | '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 2693 | transitivePeerDependencies: 2694 | - eslint-import-resolver-typescript 2695 | - eslint-import-resolver-webpack 2696 | - supports-color 2697 | 2698 | eslint-plugin-jsx-a11y@6.10.2(eslint@9.20.1): 2699 | dependencies: 2700 | aria-query: 5.3.2 2701 | array-includes: 3.1.8 2702 | array.prototype.flatmap: 1.3.3 2703 | ast-types-flow: 0.0.8 2704 | axe-core: 4.10.2 2705 | axobject-query: 4.1.0 2706 | damerau-levenshtein: 1.0.8 2707 | emoji-regex: 9.2.2 2708 | eslint: 9.20.1 2709 | hasown: 2.0.2 2710 | jsx-ast-utils: 3.3.5 2711 | language-tags: 1.0.9 2712 | minimatch: 3.1.2 2713 | object.fromentries: 2.0.8 2714 | safe-regex-test: 1.1.0 2715 | string.prototype.includes: 2.0.1 2716 | 2717 | eslint-plugin-react-hooks@5.1.0(eslint@9.20.1): 2718 | dependencies: 2719 | eslint: 9.20.1 2720 | 2721 | eslint-plugin-react@7.37.4(eslint@9.20.1): 2722 | dependencies: 2723 | array-includes: 3.1.8 2724 | array.prototype.findlast: 1.2.5 2725 | array.prototype.flatmap: 1.3.3 2726 | array.prototype.tosorted: 1.1.4 2727 | doctrine: 2.1.0 2728 | es-iterator-helpers: 1.2.1 2729 | eslint: 9.20.1 2730 | estraverse: 5.3.0 2731 | hasown: 2.0.2 2732 | jsx-ast-utils: 3.3.5 2733 | minimatch: 3.1.2 2734 | object.entries: 1.1.8 2735 | object.fromentries: 2.0.8 2736 | object.values: 1.2.1 2737 | prop-types: 15.8.1 2738 | resolve: 2.0.0-next.5 2739 | semver: 6.3.1 2740 | string.prototype.matchall: 4.0.12 2741 | string.prototype.repeat: 1.0.0 2742 | 2743 | eslint-scope@8.2.0: 2744 | dependencies: 2745 | esrecurse: 4.3.0 2746 | estraverse: 5.3.0 2747 | 2748 | eslint-visitor-keys@3.4.3: {} 2749 | 2750 | eslint-visitor-keys@4.2.0: {} 2751 | 2752 | eslint@9.20.1: 2753 | dependencies: 2754 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1) 2755 | '@eslint-community/regexpp': 4.12.1 2756 | '@eslint/config-array': 0.19.2 2757 | '@eslint/core': 0.11.0 2758 | '@eslint/eslintrc': 3.2.0 2759 | '@eslint/js': 9.20.0 2760 | '@eslint/plugin-kit': 0.2.6 2761 | '@humanfs/node': 0.16.6 2762 | '@humanwhocodes/module-importer': 1.0.1 2763 | '@humanwhocodes/retry': 0.4.1 2764 | '@types/estree': 1.0.6 2765 | '@types/json-schema': 7.0.15 2766 | ajv: 6.12.6 2767 | chalk: 4.1.2 2768 | cross-spawn: 7.0.6 2769 | debug: 4.4.0 2770 | escape-string-regexp: 4.0.0 2771 | eslint-scope: 8.2.0 2772 | eslint-visitor-keys: 4.2.0 2773 | espree: 10.3.0 2774 | esquery: 1.6.0 2775 | esutils: 2.0.3 2776 | fast-deep-equal: 3.1.3 2777 | file-entry-cache: 8.0.0 2778 | find-up: 5.0.0 2779 | glob-parent: 6.0.2 2780 | ignore: 5.3.2 2781 | imurmurhash: 0.1.4 2782 | is-glob: 4.0.3 2783 | json-stable-stringify-without-jsonify: 1.0.1 2784 | lodash.merge: 4.6.2 2785 | minimatch: 3.1.2 2786 | natural-compare: 1.4.0 2787 | optionator: 0.9.4 2788 | transitivePeerDependencies: 2789 | - supports-color 2790 | 2791 | espree@10.3.0: 2792 | dependencies: 2793 | acorn: 8.14.0 2794 | acorn-jsx: 5.3.2(acorn@8.14.0) 2795 | eslint-visitor-keys: 4.2.0 2796 | 2797 | esquery@1.6.0: 2798 | dependencies: 2799 | estraverse: 5.3.0 2800 | 2801 | esrecurse@4.3.0: 2802 | dependencies: 2803 | estraverse: 5.3.0 2804 | 2805 | estraverse@5.3.0: {} 2806 | 2807 | estree-walker@2.0.2: {} 2808 | 2809 | esutils@2.0.3: {} 2810 | 2811 | eventemitter3@5.0.1: {} 2812 | 2813 | execa@5.1.1: 2814 | dependencies: 2815 | cross-spawn: 7.0.6 2816 | get-stream: 6.0.1 2817 | human-signals: 2.1.0 2818 | is-stream: 2.0.1 2819 | merge-stream: 2.0.0 2820 | npm-run-path: 4.0.1 2821 | onetime: 5.1.2 2822 | signal-exit: 3.0.7 2823 | strip-final-newline: 2.0.0 2824 | 2825 | execa@8.0.1: 2826 | dependencies: 2827 | cross-spawn: 7.0.6 2828 | get-stream: 8.0.1 2829 | human-signals: 5.0.0 2830 | is-stream: 3.0.0 2831 | merge-stream: 2.0.0 2832 | npm-run-path: 5.3.0 2833 | onetime: 6.0.0 2834 | signal-exit: 4.1.0 2835 | strip-final-newline: 3.0.0 2836 | 2837 | fast-deep-equal@3.1.3: {} 2838 | 2839 | fast-glob@3.3.1: 2840 | dependencies: 2841 | '@nodelib/fs.stat': 2.0.5 2842 | '@nodelib/fs.walk': 1.2.8 2843 | glob-parent: 5.1.2 2844 | merge2: 1.4.1 2845 | micromatch: 4.0.8 2846 | 2847 | fast-glob@3.3.3: 2848 | dependencies: 2849 | '@nodelib/fs.stat': 2.0.5 2850 | '@nodelib/fs.walk': 1.2.8 2851 | glob-parent: 5.1.2 2852 | merge2: 1.4.1 2853 | micromatch: 4.0.8 2854 | 2855 | fast-json-stable-stringify@2.1.0: {} 2856 | 2857 | fast-levenshtein@2.0.6: {} 2858 | 2859 | fastq@1.19.0: 2860 | dependencies: 2861 | reusify: 1.0.4 2862 | 2863 | fdir@6.4.3(picomatch@4.0.2): 2864 | optionalDependencies: 2865 | picomatch: 4.0.2 2866 | 2867 | file-entry-cache@8.0.0: 2868 | dependencies: 2869 | flat-cache: 4.0.1 2870 | 2871 | fill-range@7.1.1: 2872 | dependencies: 2873 | to-regex-range: 5.0.1 2874 | 2875 | find-up@5.0.0: 2876 | dependencies: 2877 | locate-path: 6.0.0 2878 | path-exists: 4.0.0 2879 | 2880 | flat-cache@4.0.1: 2881 | dependencies: 2882 | flatted: 3.3.3 2883 | keyv: 4.5.4 2884 | 2885 | flatted@3.3.3: {} 2886 | 2887 | for-each@0.3.5: 2888 | dependencies: 2889 | is-callable: 1.2.7 2890 | 2891 | fsevents@2.3.3: 2892 | optional: true 2893 | 2894 | function-bind@1.1.2: {} 2895 | 2896 | function.prototype.name@1.1.8: 2897 | dependencies: 2898 | call-bind: 1.0.8 2899 | call-bound: 1.0.3 2900 | define-properties: 1.2.1 2901 | functions-have-names: 1.2.3 2902 | hasown: 2.0.2 2903 | is-callable: 1.2.7 2904 | 2905 | functions-have-names@1.2.3: {} 2906 | 2907 | get-east-asian-width@1.3.0: {} 2908 | 2909 | get-intrinsic@1.2.7: 2910 | dependencies: 2911 | call-bind-apply-helpers: 1.0.2 2912 | es-define-property: 1.0.1 2913 | es-errors: 1.3.0 2914 | es-object-atoms: 1.1.1 2915 | function-bind: 1.1.2 2916 | get-proto: 1.0.1 2917 | gopd: 1.2.0 2918 | has-symbols: 1.1.0 2919 | hasown: 2.0.2 2920 | math-intrinsics: 1.1.0 2921 | 2922 | get-proto@1.0.1: 2923 | dependencies: 2924 | dunder-proto: 1.0.1 2925 | es-object-atoms: 1.1.1 2926 | 2927 | get-stream@6.0.1: {} 2928 | 2929 | get-stream@8.0.1: {} 2930 | 2931 | get-symbol-description@1.1.0: 2932 | dependencies: 2933 | call-bound: 1.0.3 2934 | es-errors: 1.3.0 2935 | get-intrinsic: 1.2.7 2936 | 2937 | get-tsconfig@4.10.0: 2938 | dependencies: 2939 | resolve-pkg-maps: 1.0.0 2940 | 2941 | glob-parent@5.1.2: 2942 | dependencies: 2943 | is-glob: 4.0.3 2944 | 2945 | glob-parent@6.0.2: 2946 | dependencies: 2947 | is-glob: 4.0.3 2948 | 2949 | globals@14.0.0: {} 2950 | 2951 | globalthis@1.0.4: 2952 | dependencies: 2953 | define-properties: 1.2.1 2954 | gopd: 1.2.0 2955 | 2956 | gopd@1.2.0: {} 2957 | 2958 | graceful-fs@4.2.11: {} 2959 | 2960 | graphemer@1.4.0: {} 2961 | 2962 | has-bigints@1.1.0: {} 2963 | 2964 | has-flag@4.0.0: {} 2965 | 2966 | has-property-descriptors@1.0.2: 2967 | dependencies: 2968 | es-define-property: 1.0.1 2969 | 2970 | has-proto@1.2.0: 2971 | dependencies: 2972 | dunder-proto: 1.0.1 2973 | 2974 | has-symbols@1.1.0: {} 2975 | 2976 | has-tostringtag@1.0.2: 2977 | dependencies: 2978 | has-symbols: 1.1.0 2979 | 2980 | hasown@2.0.2: 2981 | dependencies: 2982 | function-bind: 1.1.2 2983 | 2984 | human-signals@2.1.0: {} 2985 | 2986 | human-signals@5.0.0: {} 2987 | 2988 | husky@9.1.7: {} 2989 | 2990 | ignore@5.3.2: {} 2991 | 2992 | import-fresh@3.3.1: 2993 | dependencies: 2994 | parent-module: 1.0.1 2995 | resolve-from: 4.0.0 2996 | 2997 | imurmurhash@0.1.4: {} 2998 | 2999 | internal-slot@1.1.0: 3000 | dependencies: 3001 | es-errors: 1.3.0 3002 | hasown: 2.0.2 3003 | side-channel: 1.1.0 3004 | 3005 | is-array-buffer@3.0.5: 3006 | dependencies: 3007 | call-bind: 1.0.8 3008 | call-bound: 1.0.3 3009 | get-intrinsic: 1.2.7 3010 | 3011 | is-arrayish@0.3.2: 3012 | optional: true 3013 | 3014 | is-async-function@2.1.1: 3015 | dependencies: 3016 | async-function: 1.0.0 3017 | call-bound: 1.0.3 3018 | get-proto: 1.0.1 3019 | has-tostringtag: 1.0.2 3020 | safe-regex-test: 1.1.0 3021 | 3022 | is-bigint@1.1.0: 3023 | dependencies: 3024 | has-bigints: 1.1.0 3025 | 3026 | is-boolean-object@1.2.2: 3027 | dependencies: 3028 | call-bound: 1.0.3 3029 | has-tostringtag: 1.0.2 3030 | 3031 | is-bun-module@1.3.0: 3032 | dependencies: 3033 | semver: 7.7.1 3034 | 3035 | is-callable@1.2.7: {} 3036 | 3037 | is-core-module@2.16.1: 3038 | dependencies: 3039 | hasown: 2.0.2 3040 | 3041 | is-data-view@1.0.2: 3042 | dependencies: 3043 | call-bound: 1.0.3 3044 | get-intrinsic: 1.2.7 3045 | is-typed-array: 1.1.15 3046 | 3047 | is-date-object@1.1.0: 3048 | dependencies: 3049 | call-bound: 1.0.3 3050 | has-tostringtag: 1.0.2 3051 | 3052 | is-extglob@2.1.1: {} 3053 | 3054 | is-finalizationregistry@1.1.1: 3055 | dependencies: 3056 | call-bound: 1.0.3 3057 | 3058 | is-fullwidth-code-point@4.0.0: {} 3059 | 3060 | is-fullwidth-code-point@5.0.0: 3061 | dependencies: 3062 | get-east-asian-width: 1.3.0 3063 | 3064 | is-generator-function@1.1.0: 3065 | dependencies: 3066 | call-bound: 1.0.3 3067 | get-proto: 1.0.1 3068 | has-tostringtag: 1.0.2 3069 | safe-regex-test: 1.1.0 3070 | 3071 | is-glob@4.0.3: 3072 | dependencies: 3073 | is-extglob: 2.1.1 3074 | 3075 | is-map@2.0.3: {} 3076 | 3077 | is-module@1.0.0: {} 3078 | 3079 | is-number-object@1.1.1: 3080 | dependencies: 3081 | call-bound: 1.0.3 3082 | has-tostringtag: 1.0.2 3083 | 3084 | is-number@7.0.0: {} 3085 | 3086 | is-regex@1.2.1: 3087 | dependencies: 3088 | call-bound: 1.0.3 3089 | gopd: 1.2.0 3090 | has-tostringtag: 1.0.2 3091 | hasown: 2.0.2 3092 | 3093 | is-set@2.0.3: {} 3094 | 3095 | is-shared-array-buffer@1.0.4: 3096 | dependencies: 3097 | call-bound: 1.0.3 3098 | 3099 | is-stream@2.0.1: {} 3100 | 3101 | is-stream@3.0.0: {} 3102 | 3103 | is-string@1.1.1: 3104 | dependencies: 3105 | call-bound: 1.0.3 3106 | has-tostringtag: 1.0.2 3107 | 3108 | is-symbol@1.1.1: 3109 | dependencies: 3110 | call-bound: 1.0.3 3111 | has-symbols: 1.1.0 3112 | safe-regex-test: 1.1.0 3113 | 3114 | is-typed-array@1.1.15: 3115 | dependencies: 3116 | which-typed-array: 1.1.18 3117 | 3118 | is-weakmap@2.0.2: {} 3119 | 3120 | is-weakref@1.1.1: 3121 | dependencies: 3122 | call-bound: 1.0.3 3123 | 3124 | is-weakset@2.0.4: 3125 | dependencies: 3126 | call-bound: 1.0.3 3127 | get-intrinsic: 1.2.7 3128 | 3129 | isarray@2.0.5: {} 3130 | 3131 | isexe@2.0.0: {} 3132 | 3133 | iterator.prototype@1.1.5: 3134 | dependencies: 3135 | define-data-property: 1.1.4 3136 | es-object-atoms: 1.1.1 3137 | get-intrinsic: 1.2.7 3138 | get-proto: 1.0.1 3139 | has-symbols: 1.1.0 3140 | set-function-name: 2.0.2 3141 | 3142 | js-tokens@4.0.0: {} 3143 | 3144 | js-yaml@4.1.0: 3145 | dependencies: 3146 | argparse: 2.0.1 3147 | 3148 | json-buffer@3.0.1: {} 3149 | 3150 | json-schema-traverse@0.4.1: {} 3151 | 3152 | json-stable-stringify-without-jsonify@1.0.1: {} 3153 | 3154 | json5@1.0.2: 3155 | dependencies: 3156 | minimist: 1.2.8 3157 | 3158 | jsx-ast-utils@3.3.5: 3159 | dependencies: 3160 | array-includes: 3.1.8 3161 | array.prototype.flat: 1.3.3 3162 | object.assign: 4.1.7 3163 | object.values: 1.2.1 3164 | 3165 | keyv@4.5.4: 3166 | dependencies: 3167 | json-buffer: 3.0.1 3168 | 3169 | language-subtag-registry@0.3.23: {} 3170 | 3171 | language-tags@1.0.9: 3172 | dependencies: 3173 | language-subtag-registry: 0.3.23 3174 | 3175 | levn@0.4.1: 3176 | dependencies: 3177 | prelude-ls: 1.2.1 3178 | type-check: 0.4.0 3179 | 3180 | lilconfig@3.1.3: {} 3181 | 3182 | lint-staged@15.4.3: 3183 | dependencies: 3184 | chalk: 5.4.1 3185 | commander: 13.1.0 3186 | debug: 4.4.0 3187 | execa: 8.0.1 3188 | lilconfig: 3.1.3 3189 | listr2: 8.2.5 3190 | micromatch: 4.0.8 3191 | pidtree: 0.6.0 3192 | string-argv: 0.3.2 3193 | yaml: 2.7.0 3194 | transitivePeerDependencies: 3195 | - supports-color 3196 | 3197 | listr2@8.2.5: 3198 | dependencies: 3199 | cli-truncate: 4.0.0 3200 | colorette: 2.0.20 3201 | eventemitter3: 5.0.1 3202 | log-update: 6.1.0 3203 | rfdc: 1.4.1 3204 | wrap-ansi: 9.0.0 3205 | 3206 | locate-path@6.0.0: 3207 | dependencies: 3208 | p-locate: 5.0.0 3209 | 3210 | lodash.merge@4.6.2: {} 3211 | 3212 | log-update@6.1.0: 3213 | dependencies: 3214 | ansi-escapes: 7.0.0 3215 | cli-cursor: 5.0.0 3216 | slice-ansi: 7.1.0 3217 | strip-ansi: 7.1.0 3218 | wrap-ansi: 9.0.0 3219 | 3220 | loose-envify@1.4.0: 3221 | dependencies: 3222 | js-tokens: 4.0.0 3223 | 3224 | magic-string@0.30.17: 3225 | dependencies: 3226 | '@jridgewell/sourcemap-codec': 1.5.0 3227 | 3228 | math-intrinsics@1.1.0: {} 3229 | 3230 | merge-stream@2.0.0: {} 3231 | 3232 | merge2@1.4.1: {} 3233 | 3234 | micromatch@4.0.8: 3235 | dependencies: 3236 | braces: 3.0.3 3237 | picomatch: 2.3.1 3238 | 3239 | mimic-fn@2.1.0: {} 3240 | 3241 | mimic-fn@4.0.0: {} 3242 | 3243 | mimic-function@5.0.1: {} 3244 | 3245 | minimatch@3.1.2: 3246 | dependencies: 3247 | brace-expansion: 1.1.11 3248 | 3249 | minimatch@9.0.5: 3250 | dependencies: 3251 | brace-expansion: 2.0.1 3252 | 3253 | minimist@1.2.8: {} 3254 | 3255 | mri@1.2.0: {} 3256 | 3257 | ms@2.1.3: {} 3258 | 3259 | nanoid@3.3.8: {} 3260 | 3261 | natural-compare@1.4.0: {} 3262 | 3263 | next@15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0): 3264 | dependencies: 3265 | '@next/env': 15.1.7 3266 | '@swc/counter': 0.1.3 3267 | '@swc/helpers': 0.5.15 3268 | busboy: 1.6.0 3269 | caniuse-lite: 1.0.30001700 3270 | postcss: 8.4.31 3271 | react: 19.0.0 3272 | react-dom: 19.0.0(react@19.0.0) 3273 | styled-jsx: 5.1.6(react@19.0.0) 3274 | optionalDependencies: 3275 | '@next/swc-darwin-arm64': 15.1.7 3276 | '@next/swc-darwin-x64': 15.1.7 3277 | '@next/swc-linux-arm64-gnu': 15.1.7 3278 | '@next/swc-linux-arm64-musl': 15.1.7 3279 | '@next/swc-linux-x64-gnu': 15.1.7 3280 | '@next/swc-linux-x64-musl': 15.1.7 3281 | '@next/swc-win32-arm64-msvc': 15.1.7 3282 | '@next/swc-win32-x64-msvc': 15.1.7 3283 | sharp: 0.33.5 3284 | transitivePeerDependencies: 3285 | - '@babel/core' 3286 | - babel-plugin-macros 3287 | 3288 | npm-run-path@4.0.1: 3289 | dependencies: 3290 | path-key: 3.1.1 3291 | 3292 | npm-run-path@5.3.0: 3293 | dependencies: 3294 | path-key: 4.0.0 3295 | 3296 | object-assign@4.1.1: {} 3297 | 3298 | object-inspect@1.13.4: {} 3299 | 3300 | object-keys@1.1.1: {} 3301 | 3302 | object.assign@4.1.7: 3303 | dependencies: 3304 | call-bind: 1.0.8 3305 | call-bound: 1.0.3 3306 | define-properties: 1.2.1 3307 | es-object-atoms: 1.1.1 3308 | has-symbols: 1.1.0 3309 | object-keys: 1.1.1 3310 | 3311 | object.entries@1.1.8: 3312 | dependencies: 3313 | call-bind: 1.0.8 3314 | define-properties: 1.2.1 3315 | es-object-atoms: 1.1.1 3316 | 3317 | object.fromentries@2.0.8: 3318 | dependencies: 3319 | call-bind: 1.0.8 3320 | define-properties: 1.2.1 3321 | es-abstract: 1.23.9 3322 | es-object-atoms: 1.1.1 3323 | 3324 | object.groupby@1.0.3: 3325 | dependencies: 3326 | call-bind: 1.0.8 3327 | define-properties: 1.2.1 3328 | es-abstract: 1.23.9 3329 | 3330 | object.values@1.2.1: 3331 | dependencies: 3332 | call-bind: 1.0.8 3333 | call-bound: 1.0.3 3334 | define-properties: 1.2.1 3335 | es-object-atoms: 1.1.1 3336 | 3337 | onetime@5.1.2: 3338 | dependencies: 3339 | mimic-fn: 2.1.0 3340 | 3341 | onetime@6.0.0: 3342 | dependencies: 3343 | mimic-fn: 4.0.0 3344 | 3345 | onetime@7.0.0: 3346 | dependencies: 3347 | mimic-function: 5.0.1 3348 | 3349 | optionator@0.9.4: 3350 | dependencies: 3351 | deep-is: 0.1.4 3352 | fast-levenshtein: 2.0.6 3353 | levn: 0.4.1 3354 | prelude-ls: 1.2.1 3355 | type-check: 0.4.0 3356 | word-wrap: 1.2.5 3357 | 3358 | own-keys@1.0.1: 3359 | dependencies: 3360 | get-intrinsic: 1.2.7 3361 | object-keys: 1.1.1 3362 | safe-push-apply: 1.0.0 3363 | 3364 | p-limit@3.1.0: 3365 | dependencies: 3366 | yocto-queue: 0.1.0 3367 | 3368 | p-locate@5.0.0: 3369 | dependencies: 3370 | p-limit: 3.1.0 3371 | 3372 | parent-module@1.0.1: 3373 | dependencies: 3374 | callsites: 3.1.0 3375 | 3376 | path-exists@4.0.0: {} 3377 | 3378 | path-key@3.1.1: {} 3379 | 3380 | path-key@4.0.0: {} 3381 | 3382 | path-parse@1.0.7: {} 3383 | 3384 | picocolors@1.1.1: {} 3385 | 3386 | picomatch@2.3.1: {} 3387 | 3388 | picomatch@3.0.1: {} 3389 | 3390 | picomatch@4.0.2: {} 3391 | 3392 | pidtree@0.6.0: {} 3393 | 3394 | possible-typed-array-names@1.1.0: {} 3395 | 3396 | postcss@8.4.31: 3397 | dependencies: 3398 | nanoid: 3.3.8 3399 | picocolors: 1.1.1 3400 | source-map-js: 1.2.1 3401 | 3402 | prelude-ls@1.2.1: {} 3403 | 3404 | prettier@3.5.1: {} 3405 | 3406 | pretty-quick@4.0.0(prettier@3.5.1): 3407 | dependencies: 3408 | execa: 5.1.1 3409 | find-up: 5.0.0 3410 | ignore: 5.3.2 3411 | mri: 1.2.0 3412 | picocolors: 1.1.1 3413 | picomatch: 3.0.1 3414 | prettier: 3.5.1 3415 | tslib: 2.8.1 3416 | 3417 | prop-types@15.8.1: 3418 | dependencies: 3419 | loose-envify: 1.4.0 3420 | object-assign: 4.1.1 3421 | react-is: 16.13.1 3422 | 3423 | punycode@2.3.1: {} 3424 | 3425 | queue-microtask@1.2.3: {} 3426 | 3427 | react-dom@19.0.0(react@19.0.0): 3428 | dependencies: 3429 | react: 19.0.0 3430 | scheduler: 0.25.0 3431 | 3432 | react-is@16.13.1: {} 3433 | 3434 | react@19.0.0: {} 3435 | 3436 | reflect.getprototypeof@1.0.10: 3437 | dependencies: 3438 | call-bind: 1.0.8 3439 | define-properties: 1.2.1 3440 | es-abstract: 1.23.9 3441 | es-errors: 1.3.0 3442 | es-object-atoms: 1.1.1 3443 | get-intrinsic: 1.2.7 3444 | get-proto: 1.0.1 3445 | which-builtin-type: 1.2.1 3446 | 3447 | regexp.prototype.flags@1.5.4: 3448 | dependencies: 3449 | call-bind: 1.0.8 3450 | define-properties: 1.2.1 3451 | es-errors: 1.3.0 3452 | get-proto: 1.0.1 3453 | gopd: 1.2.0 3454 | set-function-name: 2.0.2 3455 | 3456 | resolve-from@4.0.0: {} 3457 | 3458 | resolve-pkg-maps@1.0.0: {} 3459 | 3460 | resolve@1.22.10: 3461 | dependencies: 3462 | is-core-module: 2.16.1 3463 | path-parse: 1.0.7 3464 | supports-preserve-symlinks-flag: 1.0.0 3465 | 3466 | resolve@2.0.0-next.5: 3467 | dependencies: 3468 | is-core-module: 2.16.1 3469 | path-parse: 1.0.7 3470 | supports-preserve-symlinks-flag: 1.0.0 3471 | 3472 | restore-cursor@5.1.0: 3473 | dependencies: 3474 | onetime: 7.0.0 3475 | signal-exit: 4.1.0 3476 | 3477 | reusify@1.0.4: {} 3478 | 3479 | rfdc@1.4.1: {} 3480 | 3481 | rollup-plugin-node-externals@8.0.0(rollup@4.34.8): 3482 | dependencies: 3483 | rollup: 4.34.8 3484 | 3485 | rollup-plugin-preserve-directives@0.4.0(rollup@4.34.8): 3486 | dependencies: 3487 | '@rollup/pluginutils': 5.1.4(rollup@4.34.8) 3488 | magic-string: 0.30.17 3489 | rollup: 4.34.8 3490 | 3491 | rollup@4.34.8: 3492 | dependencies: 3493 | '@types/estree': 1.0.6 3494 | optionalDependencies: 3495 | '@rollup/rollup-android-arm-eabi': 4.34.8 3496 | '@rollup/rollup-android-arm64': 4.34.8 3497 | '@rollup/rollup-darwin-arm64': 4.34.8 3498 | '@rollup/rollup-darwin-x64': 4.34.8 3499 | '@rollup/rollup-freebsd-arm64': 4.34.8 3500 | '@rollup/rollup-freebsd-x64': 4.34.8 3501 | '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 3502 | '@rollup/rollup-linux-arm-musleabihf': 4.34.8 3503 | '@rollup/rollup-linux-arm64-gnu': 4.34.8 3504 | '@rollup/rollup-linux-arm64-musl': 4.34.8 3505 | '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 3506 | '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 3507 | '@rollup/rollup-linux-riscv64-gnu': 4.34.8 3508 | '@rollup/rollup-linux-s390x-gnu': 4.34.8 3509 | '@rollup/rollup-linux-x64-gnu': 4.34.8 3510 | '@rollup/rollup-linux-x64-musl': 4.34.8 3511 | '@rollup/rollup-win32-arm64-msvc': 4.34.8 3512 | '@rollup/rollup-win32-ia32-msvc': 4.34.8 3513 | '@rollup/rollup-win32-x64-msvc': 4.34.8 3514 | fsevents: 2.3.3 3515 | 3516 | run-parallel@1.2.0: 3517 | dependencies: 3518 | queue-microtask: 1.2.3 3519 | 3520 | safe-array-concat@1.1.3: 3521 | dependencies: 3522 | call-bind: 1.0.8 3523 | call-bound: 1.0.3 3524 | get-intrinsic: 1.2.7 3525 | has-symbols: 1.1.0 3526 | isarray: 2.0.5 3527 | 3528 | safe-push-apply@1.0.0: 3529 | dependencies: 3530 | es-errors: 1.3.0 3531 | isarray: 2.0.5 3532 | 3533 | safe-regex-test@1.1.0: 3534 | dependencies: 3535 | call-bound: 1.0.3 3536 | es-errors: 1.3.0 3537 | is-regex: 1.2.1 3538 | 3539 | scheduler@0.25.0: {} 3540 | 3541 | semver@6.3.1: {} 3542 | 3543 | semver@7.7.1: {} 3544 | 3545 | set-function-length@1.2.2: 3546 | dependencies: 3547 | define-data-property: 1.1.4 3548 | es-errors: 1.3.0 3549 | function-bind: 1.1.2 3550 | get-intrinsic: 1.2.7 3551 | gopd: 1.2.0 3552 | has-property-descriptors: 1.0.2 3553 | 3554 | set-function-name@2.0.2: 3555 | dependencies: 3556 | define-data-property: 1.1.4 3557 | es-errors: 1.3.0 3558 | functions-have-names: 1.2.3 3559 | has-property-descriptors: 1.0.2 3560 | 3561 | set-proto@1.0.0: 3562 | dependencies: 3563 | dunder-proto: 1.0.1 3564 | es-errors: 1.3.0 3565 | es-object-atoms: 1.1.1 3566 | 3567 | sharp@0.33.5: 3568 | dependencies: 3569 | color: 4.2.3 3570 | detect-libc: 2.0.3 3571 | semver: 7.7.1 3572 | optionalDependencies: 3573 | '@img/sharp-darwin-arm64': 0.33.5 3574 | '@img/sharp-darwin-x64': 0.33.5 3575 | '@img/sharp-libvips-darwin-arm64': 1.0.4 3576 | '@img/sharp-libvips-darwin-x64': 1.0.4 3577 | '@img/sharp-libvips-linux-arm': 1.0.5 3578 | '@img/sharp-libvips-linux-arm64': 1.0.4 3579 | '@img/sharp-libvips-linux-s390x': 1.0.4 3580 | '@img/sharp-libvips-linux-x64': 1.0.4 3581 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 3582 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 3583 | '@img/sharp-linux-arm': 0.33.5 3584 | '@img/sharp-linux-arm64': 0.33.5 3585 | '@img/sharp-linux-s390x': 0.33.5 3586 | '@img/sharp-linux-x64': 0.33.5 3587 | '@img/sharp-linuxmusl-arm64': 0.33.5 3588 | '@img/sharp-linuxmusl-x64': 0.33.5 3589 | '@img/sharp-wasm32': 0.33.5 3590 | '@img/sharp-win32-ia32': 0.33.5 3591 | '@img/sharp-win32-x64': 0.33.5 3592 | optional: true 3593 | 3594 | shebang-command@2.0.0: 3595 | dependencies: 3596 | shebang-regex: 3.0.0 3597 | 3598 | shebang-regex@3.0.0: {} 3599 | 3600 | side-channel-list@1.0.0: 3601 | dependencies: 3602 | es-errors: 1.3.0 3603 | object-inspect: 1.13.4 3604 | 3605 | side-channel-map@1.0.1: 3606 | dependencies: 3607 | call-bound: 1.0.3 3608 | es-errors: 1.3.0 3609 | get-intrinsic: 1.2.7 3610 | object-inspect: 1.13.4 3611 | 3612 | side-channel-weakmap@1.0.2: 3613 | dependencies: 3614 | call-bound: 1.0.3 3615 | es-errors: 1.3.0 3616 | get-intrinsic: 1.2.7 3617 | object-inspect: 1.13.4 3618 | side-channel-map: 1.0.1 3619 | 3620 | side-channel@1.1.0: 3621 | dependencies: 3622 | es-errors: 1.3.0 3623 | object-inspect: 1.13.4 3624 | side-channel-list: 1.0.0 3625 | side-channel-map: 1.0.1 3626 | side-channel-weakmap: 1.0.2 3627 | 3628 | signal-exit@3.0.7: {} 3629 | 3630 | signal-exit@4.1.0: {} 3631 | 3632 | simple-swizzle@0.2.2: 3633 | dependencies: 3634 | is-arrayish: 0.3.2 3635 | optional: true 3636 | 3637 | slice-ansi@5.0.0: 3638 | dependencies: 3639 | ansi-styles: 6.2.1 3640 | is-fullwidth-code-point: 4.0.0 3641 | 3642 | slice-ansi@7.1.0: 3643 | dependencies: 3644 | ansi-styles: 6.2.1 3645 | is-fullwidth-code-point: 5.0.0 3646 | 3647 | source-map-js@1.2.1: {} 3648 | 3649 | stable-hash@0.0.4: {} 3650 | 3651 | streamsearch@1.1.0: {} 3652 | 3653 | string-argv@0.3.2: {} 3654 | 3655 | string-width@7.2.0: 3656 | dependencies: 3657 | emoji-regex: 10.4.0 3658 | get-east-asian-width: 1.3.0 3659 | strip-ansi: 7.1.0 3660 | 3661 | string.prototype.includes@2.0.1: 3662 | dependencies: 3663 | call-bind: 1.0.8 3664 | define-properties: 1.2.1 3665 | es-abstract: 1.23.9 3666 | 3667 | string.prototype.matchall@4.0.12: 3668 | dependencies: 3669 | call-bind: 1.0.8 3670 | call-bound: 1.0.3 3671 | define-properties: 1.2.1 3672 | es-abstract: 1.23.9 3673 | es-errors: 1.3.0 3674 | es-object-atoms: 1.1.1 3675 | get-intrinsic: 1.2.7 3676 | gopd: 1.2.0 3677 | has-symbols: 1.1.0 3678 | internal-slot: 1.1.0 3679 | regexp.prototype.flags: 1.5.4 3680 | set-function-name: 2.0.2 3681 | side-channel: 1.1.0 3682 | 3683 | string.prototype.repeat@1.0.0: 3684 | dependencies: 3685 | define-properties: 1.2.1 3686 | es-abstract: 1.23.9 3687 | 3688 | string.prototype.trim@1.2.10: 3689 | dependencies: 3690 | call-bind: 1.0.8 3691 | call-bound: 1.0.3 3692 | define-data-property: 1.1.4 3693 | define-properties: 1.2.1 3694 | es-abstract: 1.23.9 3695 | es-object-atoms: 1.1.1 3696 | has-property-descriptors: 1.0.2 3697 | 3698 | string.prototype.trimend@1.0.9: 3699 | dependencies: 3700 | call-bind: 1.0.8 3701 | call-bound: 1.0.3 3702 | define-properties: 1.2.1 3703 | es-object-atoms: 1.1.1 3704 | 3705 | string.prototype.trimstart@1.0.8: 3706 | dependencies: 3707 | call-bind: 1.0.8 3708 | define-properties: 1.2.1 3709 | es-object-atoms: 1.1.1 3710 | 3711 | strip-ansi@7.1.0: 3712 | dependencies: 3713 | ansi-regex: 6.1.0 3714 | 3715 | strip-bom@3.0.0: {} 3716 | 3717 | strip-final-newline@2.0.0: {} 3718 | 3719 | strip-final-newline@3.0.0: {} 3720 | 3721 | strip-json-comments@3.1.1: {} 3722 | 3723 | styled-jsx@5.1.6(react@19.0.0): 3724 | dependencies: 3725 | client-only: 0.0.1 3726 | react: 19.0.0 3727 | 3728 | supports-color@7.2.0: 3729 | dependencies: 3730 | has-flag: 4.0.0 3731 | 3732 | supports-preserve-symlinks-flag@1.0.0: {} 3733 | 3734 | tapable@2.2.1: {} 3735 | 3736 | tinyglobby@0.2.11: 3737 | dependencies: 3738 | fdir: 6.4.3(picomatch@4.0.2) 3739 | picomatch: 4.0.2 3740 | 3741 | to-regex-range@5.0.1: 3742 | dependencies: 3743 | is-number: 7.0.0 3744 | 3745 | ts-api-utils@2.0.1(typescript@5.7.3): 3746 | dependencies: 3747 | typescript: 5.7.3 3748 | 3749 | tsconfig-paths@3.15.0: 3750 | dependencies: 3751 | '@types/json5': 0.0.29 3752 | json5: 1.0.2 3753 | minimist: 1.2.8 3754 | strip-bom: 3.0.0 3755 | 3756 | tslib@2.8.1: {} 3757 | 3758 | type-check@0.4.0: 3759 | dependencies: 3760 | prelude-ls: 1.2.1 3761 | 3762 | typed-array-buffer@1.0.3: 3763 | dependencies: 3764 | call-bound: 1.0.3 3765 | es-errors: 1.3.0 3766 | is-typed-array: 1.1.15 3767 | 3768 | typed-array-byte-length@1.0.3: 3769 | dependencies: 3770 | call-bind: 1.0.8 3771 | for-each: 0.3.5 3772 | gopd: 1.2.0 3773 | has-proto: 1.2.0 3774 | is-typed-array: 1.1.15 3775 | 3776 | typed-array-byte-offset@1.0.4: 3777 | dependencies: 3778 | available-typed-arrays: 1.0.7 3779 | call-bind: 1.0.8 3780 | for-each: 0.3.5 3781 | gopd: 1.2.0 3782 | has-proto: 1.2.0 3783 | is-typed-array: 1.1.15 3784 | reflect.getprototypeof: 1.0.10 3785 | 3786 | typed-array-length@1.0.7: 3787 | dependencies: 3788 | call-bind: 1.0.8 3789 | for-each: 0.3.5 3790 | gopd: 1.2.0 3791 | is-typed-array: 1.1.15 3792 | possible-typed-array-names: 1.1.0 3793 | reflect.getprototypeof: 1.0.10 3794 | 3795 | typescript-eslint@8.24.1(eslint@9.20.1)(typescript@5.7.3): 3796 | dependencies: 3797 | '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.20.1)(typescript@5.7.3))(eslint@9.20.1)(typescript@5.7.3) 3798 | '@typescript-eslint/parser': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 3799 | '@typescript-eslint/utils': 8.24.1(eslint@9.20.1)(typescript@5.7.3) 3800 | eslint: 9.20.1 3801 | typescript: 5.7.3 3802 | transitivePeerDependencies: 3803 | - supports-color 3804 | 3805 | typescript@5.7.3: {} 3806 | 3807 | unbox-primitive@1.1.0: 3808 | dependencies: 3809 | call-bound: 1.0.3 3810 | has-bigints: 1.1.0 3811 | has-symbols: 1.1.0 3812 | which-boxed-primitive: 1.1.1 3813 | 3814 | undici-types@6.20.0: {} 3815 | 3816 | uri-js@4.4.1: 3817 | dependencies: 3818 | punycode: 2.3.1 3819 | 3820 | which-boxed-primitive@1.1.1: 3821 | dependencies: 3822 | is-bigint: 1.1.0 3823 | is-boolean-object: 1.2.2 3824 | is-number-object: 1.1.1 3825 | is-string: 1.1.1 3826 | is-symbol: 1.1.1 3827 | 3828 | which-builtin-type@1.2.1: 3829 | dependencies: 3830 | call-bound: 1.0.3 3831 | function.prototype.name: 1.1.8 3832 | has-tostringtag: 1.0.2 3833 | is-async-function: 2.1.1 3834 | is-date-object: 1.1.0 3835 | is-finalizationregistry: 1.1.1 3836 | is-generator-function: 1.1.0 3837 | is-regex: 1.2.1 3838 | is-weakref: 1.1.1 3839 | isarray: 2.0.5 3840 | which-boxed-primitive: 1.1.1 3841 | which-collection: 1.0.2 3842 | which-typed-array: 1.1.18 3843 | 3844 | which-collection@1.0.2: 3845 | dependencies: 3846 | is-map: 2.0.3 3847 | is-set: 2.0.3 3848 | is-weakmap: 2.0.2 3849 | is-weakset: 2.0.4 3850 | 3851 | which-typed-array@1.1.18: 3852 | dependencies: 3853 | available-typed-arrays: 1.0.7 3854 | call-bind: 1.0.8 3855 | call-bound: 1.0.3 3856 | for-each: 0.3.5 3857 | gopd: 1.2.0 3858 | has-tostringtag: 1.0.2 3859 | 3860 | which@2.0.2: 3861 | dependencies: 3862 | isexe: 2.0.0 3863 | 3864 | word-wrap@1.2.5: {} 3865 | 3866 | wrap-ansi@9.0.0: 3867 | dependencies: 3868 | ansi-styles: 6.2.1 3869 | string-width: 7.2.0 3870 | strip-ansi: 7.1.0 3871 | 3872 | yaml@2.7.0: {} 3873 | 3874 | yocto-queue@0.1.0: {} 3875 | -------------------------------------------------------------------------------- /rollup.config.mjs: -------------------------------------------------------------------------------- 1 | import externals from "rollup-plugin-node-externals"; 2 | import resolve from "@rollup/plugin-node-resolve"; 3 | import typescript from "@rollup/plugin-typescript"; 4 | import preserveDirectives from "rollup-plugin-preserve-directives"; 5 | 6 | /** 7 | * @type {import('rollup').RollupOptions} 8 | */ 9 | const config = { 10 | input: "src/index.ts", 11 | output: { 12 | format: "esm", 13 | sourcemap: false, 14 | preserveModules: true, 15 | preserveModulesRoot: "src", 16 | dir: "lib", 17 | }, 18 | plugins: [externals(), resolve(), preserveDirectives(), typescript()], 19 | onwarn(warning, warn) { 20 | if (warning.code === "MODULE_LEVEL_DIRECTIVE" && warning.message.includes(`use client`)) return; 21 | warn(warning); 22 | }, 23 | }; 24 | 25 | export default config; 26 | -------------------------------------------------------------------------------- /src/ReCaptcha.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { useEffect } from "react"; 4 | import { useReCaptcha } from "./useReCaptcha.js"; 5 | 6 | export interface ReCaptchaProps { 7 | onValidate: (token: string) => void; 8 | action: string; 9 | validate?: boolean; 10 | reCaptchaKey?: string; 11 | } 12 | 13 | /** React Component to generate ReCaptcha token 14 | * @example 15 | * 16 | */ 17 | export const ReCaptcha: React.FC = ({ 18 | action, 19 | onValidate, 20 | validate = true, 21 | reCaptchaKey, 22 | }) => { 23 | const { isLoaded, executeRecaptcha } = useReCaptcha(reCaptchaKey); 24 | 25 | useEffect(() => { 26 | if (!validate || !isLoaded) return; 27 | if (typeof onValidate !== "function") return; 28 | 29 | const handleExecuteRecaptcha = async () => { 30 | const token = await executeRecaptcha(action); 31 | onValidate(token); 32 | }; 33 | 34 | handleExecuteRecaptcha(); 35 | }, [action, onValidate, validate, isLoaded, executeRecaptcha]); 36 | 37 | return null; 38 | }; 39 | -------------------------------------------------------------------------------- /src/ReCaptchaProvider.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import React, { useMemo, useState, useCallback, useContext, createContext } from "react"; 4 | import Script, { ScriptProps } from "next/script.js"; 5 | 6 | import { getRecaptchaScriptSrc, RECAPTCHA_LOADED_EVENT } from "./utils.js"; 7 | 8 | type ReCaptchaConfigProps = { 9 | /** reCAPTCHA_site_key */ 10 | readonly reCaptchaKey: string | null; 11 | /** Language code */ 12 | readonly language: string | null; 13 | /** Use ReCaptcha Enterprise */ 14 | readonly useEnterprise: boolean; 15 | /** Whether to use recaptcha.net for loading the script */ 16 | readonly useRecaptchaNet: boolean; 17 | }; 18 | 19 | type ReCaptchaStateProps = { 20 | /** If `true`, ReCaptcha script has been loaded */ 21 | readonly isLoaded: boolean; 22 | /** If `true`, an error occurred while loading ReCaptcha script */ 23 | readonly isError: boolean; 24 | /** Error received while loading ReCaptcha script */ 25 | readonly error: Error | null; 26 | }; 27 | 28 | export type ReCaptchaContextProps = ReCaptchaConfigProps & ReCaptchaStateProps; 29 | 30 | export const ReCaptchaContext = createContext({ 31 | reCaptchaKey: null, 32 | language: null, 33 | useEnterprise: false, 34 | useRecaptchaNet: false, 35 | 36 | isLoaded: false, 37 | isError: false, 38 | error: null, 39 | }); 40 | 41 | export const useReCaptchaContext = () => useContext(ReCaptchaContext); 42 | 43 | export interface ReCaptchaProviderProps extends Partial { 44 | reCaptchaKey?: string; 45 | language?: string | null; 46 | useRecaptchaNet?: boolean; 47 | useEnterprise?: boolean; 48 | children?: React.ReactNode; 49 | } 50 | 51 | export const ReCaptchaProvider: React.FC = ({ 52 | reCaptchaKey: passedReCaptchaKey, 53 | 54 | useEnterprise = false, 55 | useRecaptchaNet = false, 56 | language = null, 57 | children, 58 | 59 | strategy = "afterInteractive", 60 | 61 | src: passedSrc, 62 | onReady: passedOnReady, 63 | onError: passedOnError, 64 | 65 | ...props 66 | }) => { 67 | const [isLoaded, setIsLoaded] = useState(false); 68 | const [error, setError] = useState(null); 69 | 70 | const isError = !!error; 71 | 72 | const reCaptchaKey = passedReCaptchaKey || process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY || null; 73 | 74 | const src = 75 | passedSrc || 76 | getRecaptchaScriptSrc({ reCaptchaKey, language, useRecaptchaNet, useEnterprise }) || 77 | null; 78 | 79 | // Handle script load 80 | const onReady = useCallback(() => { 81 | setError(null); 82 | setIsLoaded(true); 83 | window.dispatchEvent(new Event(RECAPTCHA_LOADED_EVENT)); 84 | passedOnReady?.(); 85 | }, [passedOnReady]); 86 | 87 | // Handle script error 88 | const onError = useCallback( 89 | (e: Error) => { 90 | setError(e); 91 | passedOnError?.(e); 92 | }, 93 | [passedOnError], 94 | ); 95 | 96 | // Prevent unnecessary rerenders 97 | const value: ReCaptchaContextProps = useMemo( 98 | () => ({ 99 | reCaptchaKey, 100 | language, 101 | useEnterprise, 102 | useRecaptchaNet, 103 | isLoaded: isLoaded, 104 | isError, 105 | error, 106 | }), 107 | [reCaptchaKey, language, useEnterprise, useRecaptchaNet, isLoaded, isError, error], 108 | ); 109 | 110 | return ( 111 | 112 | {children} 113 | {/* @ts-expect-error: Why are you making my life so hard, Typescript? */} 114 |