├── .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 | [](https://www.npmjs.com/package/next-recaptcha-v3)
6 | [](https://bundlephobia.com/result?p=next-recaptcha-v3)
7 | 
8 | [](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 |
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 |
115 |
116 | );
117 | };
118 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./recaptcha.types.js";
2 | export * from "./ReCaptcha.js";
3 | export * from "./ReCaptchaProvider.js";
4 | export * from "./useReCaptcha.js";
5 | export * from "./withReCaptcha.js";
6 |
--------------------------------------------------------------------------------
/src/recaptcha.types.ts:
--------------------------------------------------------------------------------
1 | // Type definitions for Google Recaptcha 3.0
2 | // Copied from: https://github.com/DefinitelyTyped/DefinitelyTyped
3 |
4 | export interface Action {
5 | /**
6 | * the name of the action. Actions may only contain alphanumeric characters and slashes, and must not be user-specific.
7 | */
8 | action: string;
9 | }
10 |
11 | export type Theme = "light" | "dark";
12 | export type Type = "image" | "audio";
13 | export type Size = "normal" | "compact" | "invisible";
14 | export type Badge = "bottomright" | "bottomleft" | "inline";
15 |
16 | export interface Parameters {
17 | /**
18 | * Your sitekey.
19 | */
20 | sitekey?: string | undefined;
21 | /**
22 | * Optional. The color theme of the widget.
23 | * Accepted values: "light", "dark"
24 | * @default "light"
25 | */
26 | theme?: Theme | undefined;
27 | /**
28 | * Optional. The type of CAPTCHA to serve.
29 | * Accepted values: "audio", "image"
30 | * @default "image"
31 | */
32 | type?: Type | undefined;
33 | /**
34 | * Optional. Forces the widget to render in a specific language.
35 | * Auto-detects the user's language if unspecified.
36 | */
37 | hl?: string | undefined;
38 | /**
39 | * Optional. The size of the widget.
40 | * Accepted values: "compact", "normal", "invisible".
41 | * @default "compact"
42 | */
43 | size?: Size | undefined;
44 | /**
45 | * Optional. The tabindex of the widget and challenge.
46 | * If other elements in your page use tabindex, it should be set to make user navigation easier.
47 | */
48 | tabindex?: number | undefined;
49 | /**
50 | * Optional. The badge location for g-recaptcha with size of "invisible".
51 | *
52 | * @default "bottomright"
53 | */
54 | badge?: Badge | undefined;
55 | /**
56 | * Optional. Enterprise checkbox reCAPTCHA only.
57 | * The action associated with the user-initiated event.
58 | */
59 | action?: string | undefined;
60 | /**
61 | * Optional. Invisible reCAPTCHA only. For plugin owners to not interfere with existing reCAPTCHA installations on a page.
62 | * If true, this reCAPTCHA instance will be part of a separate ID space.
63 | *
64 | * @default false
65 | */
66 | isolated?: boolean | undefined;
67 | /**
68 | * Optional. Your callback function that's executed when the user submits a successful CAPTCHA response.
69 | * The user's response, g-recaptcha-response, will be the input for your callback function.
70 | */
71 | callback?(response: string): void;
72 | /**
73 | * Optional. Your callback function that's executed when the reCAPTCHA response expires and the user needs to solve a new CAPTCHA.
74 | */
75 | // Notice to the reader
76 | // I need to surround this object with quotes, this will however break intellisense in VS 2013.
77 | "expired-callback"?(): void;
78 | /**
79 | * Optional. Your callback function that's executed when reCAPTCHA encounters an error (usually network connectivity) and cannot continue until connectivity is restored.
80 | * If you specify this function, you are responsible for informing the user that they should retry.
81 | */
82 | // Notice to the reader
83 | // I need to surround this object with quotes, this will however break intellisense in VS 2013.
84 | "error-callback"?(): void;
85 | }
86 |
87 | export interface IReCaptcha {
88 | /**
89 | * Renders the container as a reCAPTCHA widget and returns the ID of the newly created widget.
90 | * @param container The HTML element to render the reCAPTCHA widget. Specify either the ID of the container (string) or the DOM element itself.
91 | * @param parameters An object containing parameters as key=value pairs, for example, {"sitekey": "your_site_key", "theme": "light"}. See @see render parameters.
92 | * @param inherit Invisible reCAPTCHA only. Use existing data-* attributes on the element if the corresponding parameter is not specified.
93 | * The values in parameters will take precedence over the attributes.
94 | * @return the ID of the newly created widget.
95 | */
96 | render(container: string | HTMLElement, parameters?: Parameters, inherit?: boolean): number;
97 | /**
98 | * Resets the reCAPTCHA widget.
99 | * @param opt_widget_id Optional widget ID, defaults to the first widget created if unspecified.
100 | */
101 | reset(opt_widget_id?: number): void;
102 | /**
103 | * Gets the response for the reCAPTCHA widget.
104 | * @param opt_widget_id Optional widget ID, defaults to the first widget created if unspecified.
105 | * @return the response of the reCAPTCHA widget.
106 | */
107 | getResponse(opt_widget_id?: number): string;
108 | /**
109 | * Programatically invoke the reCAPTCHA check. Used if the invisible reCAPTCHA is on a div instead of a button.
110 | * @param opt_widget_id Optional widget ID, defaults to the first widget created if unspecified.
111 | */
112 | execute(opt_widget_id?: number): PromiseLike;
113 | /**
114 | * Programatically invoke the reCAPTCHA check. Used if the invisible reCAPTCHA is on a div instead of a button.
115 | * @param siteKey the key of your site
116 | * @param action the action
117 | *
118 | * @return a promise-like object containing the token
119 | */
120 | execute(siteKey: string, action: Action): PromiseLike;
121 | /**
122 | * will run the given function as soon as the reCAPTCHA library has loaded
123 | * @param callback the function to coll
124 | */
125 | ready(callback: () => void): void;
126 | }
127 |
128 | declare global {
129 | // eslint-disable-next-line no-var
130 | var grecaptcha: IReCaptcha & {
131 | enterprise: IReCaptcha;
132 | };
133 | }
134 |
--------------------------------------------------------------------------------
/src/useReCaptcha.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useCallback } from "react";
4 | import { useReCaptchaContext } from "./ReCaptchaProvider.js";
5 | import type { ReCaptchaContextProps } from "./ReCaptchaProvider.js";
6 | import type { IReCaptcha } from "./recaptcha.types.js";
7 | import { getGrecaptcha, useGrecaptcha } from "./utils.js";
8 |
9 | export interface useReCaptchaProps extends ReCaptchaContextProps {
10 | /** reCAPTCHA instance */
11 | grecaptcha: IReCaptcha | null;
12 | /**
13 | * Executes the reCAPTCHA verification process for a given action.
14 | * Actions may only contain alphanumeric characters and slashes, and must not be user-specific.
15 | */
16 | executeRecaptcha: (action: string) => Promise;
17 | }
18 |
19 | /**
20 | * Custom hook to use Google reCAPTCHA v3.
21 | *
22 | * @param [reCaptchaKey] - Optional reCAPTCHA site key. If not provided, it will use the key from the context.
23 | * @returns An object containing the reCAPTCHA context, grecaptcha instance, reCaptchaKey, and executeRecaptcha function.
24 | *
25 | * @example
26 | * const { executeRecaptcha } = useReCaptcha();
27 | *
28 | * const handleSubmit = async () => {
29 | * try {
30 | * const token = await executeRecaptcha('your_action');
31 | * // Use the token for verification
32 | * } catch (error) {
33 | * console.error('ReCAPTCHA error:', error);
34 | * }
35 | * };
36 | */
37 | export const useReCaptcha = (reCaptchaKey?: string): useReCaptchaProps => {
38 | const context = useReCaptchaContext();
39 |
40 | const { useEnterprise } = context;
41 |
42 | const grecaptcha = useGrecaptcha(useEnterprise);
43 |
44 | const siteKey = reCaptchaKey || context.reCaptchaKey;
45 |
46 | const executeRecaptcha = useCallback(
47 | async (action: string) => {
48 | if (!siteKey) {
49 | throw new Error("ReCaptcha sitekey is not defined");
50 | }
51 |
52 | const grecaptcha = getGrecaptcha(useEnterprise);
53 |
54 | if (typeof grecaptcha?.execute !== "function") {
55 | throw new Error("Recaptcha has not been loaded");
56 | }
57 |
58 | if (typeof grecaptcha.ready === "function") {
59 | await new Promise((resolve) => {
60 | grecaptcha.ready(resolve);
61 | });
62 | }
63 |
64 | const result = await grecaptcha.execute(siteKey, { action });
65 |
66 | return result;
67 | },
68 | [useEnterprise, siteKey],
69 | );
70 |
71 | return {
72 | ...context,
73 | grecaptcha,
74 | reCaptchaKey: siteKey,
75 | executeRecaptcha,
76 | };
77 | };
78 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | "use client";
2 | import { useSyncExternalStore } from "react";
3 | import { IReCaptcha } from "./recaptcha.types.js";
4 |
5 | export const RECAPTCHA_LOADED_EVENT = "recaptcha_loaded";
6 |
7 | /**
8 | * Function to generate the src for the script tag
9 | * Refs: https://developers.google.com/recaptcha/docs/loading
10 | */
11 | export const getRecaptchaScriptSrc = ({
12 | reCaptchaKey,
13 | language,
14 | useRecaptchaNet = false,
15 | useEnterprise = false,
16 | }: {
17 | reCaptchaKey?: string | null;
18 | language?: string | null;
19 | useRecaptchaNet?: boolean;
20 | useEnterprise?: boolean;
21 | } = {}): string => {
22 | const hostName = useRecaptchaNet ? "recaptcha.net" : "google.com";
23 | const script = useEnterprise ? "enterprise.js" : "api.js";
24 |
25 | let src = `https://www.${hostName}/recaptcha/${script}?`;
26 | if (reCaptchaKey) src += `render=${reCaptchaKey}`;
27 | if (language) src += `&hl=${language}`;
28 |
29 | return src;
30 | };
31 |
32 | export const getGrecaptcha = (useEnterprise = false): IReCaptcha | null => {
33 | if (useEnterprise && window.grecaptcha?.enterprise) return window.grecaptcha.enterprise;
34 | return window.grecaptcha || null;
35 | };
36 |
37 | /**
38 | * Hook to get the grecaptcha object
39 | * @param useEnterprise - Use ReCaptcha Enterprise
40 | */
41 | export const useGrecaptcha = (useEnterprise = false): IReCaptcha | null => {
42 | const grecaptcha = useSyncExternalStore(
43 | (callback) => {
44 | window.addEventListener(RECAPTCHA_LOADED_EVENT, callback);
45 | return () => window.removeEventListener(RECAPTCHA_LOADED_EVENT, callback);
46 | },
47 | () => getGrecaptcha(useEnterprise),
48 | () => null,
49 | );
50 |
51 | return grecaptcha;
52 | };
53 |
--------------------------------------------------------------------------------
/src/withReCaptcha.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import React from "react";
4 | import { useReCaptcha } from "./useReCaptcha.js";
5 | import type { useReCaptchaProps } from "./useReCaptcha.js";
6 |
7 | export type WithReCaptchaProps = useReCaptchaProps;
8 |
9 | /** React HOC to generate ReCaptcha token
10 | * @example
11 | * withReCaptcha(MyComponent)
12 | */
13 | export function withReCaptcha(
14 | WrappedComponent: React.ComponentType,
15 | ) {
16 | // Try to create a nice displayName for React Dev Tools.
17 | const displayName = WrappedComponent.displayName || WrappedComponent.name || "Component";
18 |
19 | // Creating the inner component. The calculated Props type here is the where the magic happens.
20 | const ComponentWithReCaptcha = (props: Omit) => {
21 | const reCaptchaProps = useReCaptcha();
22 |
23 | // Pass current token and function to generate it to the component
24 | return ;
25 | };
26 |
27 | ComponentWithReCaptcha.displayName = `withReCaptcha(${displayName})`;
28 |
29 | return ComponentWithReCaptcha;
30 | }
31 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": "src",
4 | "declaration": true,
5 | "declarationDir": "lib",
6 | "module": "node16",
7 | "target": "es2020",
8 | "sourceMap": false,
9 | "strict": true,
10 | "jsx": "react",
11 | "moduleResolution": "node16",
12 | "esModuleInterop": true,
13 | "emitDeclarationOnly": true
14 | },
15 | "include": ["src"],
16 | "exclude": ["node_modules", "lib"]
17 | }
18 |
--------------------------------------------------------------------------------