├── .gitignore
├── LICENSE
├── README.md
├── package-lock.json
├── package.json
├── src
├── index.ts
└── rules
│ ├── react-component-name.test.ts
│ └── react-component-name.ts
└── tsconfig.json
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Runtime data
14 | pids
15 | *.pid
16 | *.seed
17 | *.pid.lock
18 |
19 | # Directory for instrumented libs generated by jscoverage/JSCover
20 | lib-cov
21 |
22 | # Coverage directory used by tools like istanbul
23 | coverage
24 | *.lcov
25 |
26 | # nyc test coverage
27 | .nyc_output
28 |
29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 | .grunt
31 |
32 | # Bower dependency directory (https://bower.io/)
33 | bower_components
34 |
35 | # node-waf configuration
36 | .lock-wscript
37 |
38 | # Compiled binary addons (https://nodejs.org/api/addons.html)
39 | build/Release
40 |
41 | # Dependency directories
42 | node_modules/
43 | jspm_packages/
44 |
45 | # Snowpack dependency directory (https://snowpack.dev/)
46 | web_modules/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional stylelint cache
58 | .stylelintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variable files
76 | .env
77 | .env.development.local
78 | .env.test.local
79 | .env.production.local
80 | .env.local
81 |
82 | # parcel-bundler cache (https://parceljs.org/)
83 | .cache
84 | .parcel-cache
85 |
86 | # Next.js build output
87 | .next
88 | out
89 |
90 | # Nuxt.js build / generate output
91 | .nuxt
92 | dist
93 |
94 | # Gatsby files
95 | .cache/
96 | # Comment in the public line in if your project uses Gatsby and not Next.js
97 | # https://nextjs.org/blog/next-9-1#public-directory-support
98 | # public
99 |
100 | # vuepress build output
101 | .vuepress/dist
102 |
103 | # vuepress v2.x temp and cache directory
104 | .temp
105 | .cache
106 |
107 | # Docusaurus cache and generated files
108 | .docusaurus
109 |
110 | # Serverless directories
111 | .serverless/
112 |
113 | # FuseBox cache
114 | .fusebox/
115 |
116 | # DynamoDB Local files
117 | .dynamodb/
118 |
119 | # TernJS port file
120 | .tern-port
121 |
122 | # Stores VSCode versions used for testing VSCode extensions
123 | .vscode-test
124 |
125 | # yarn v2
126 | .yarn/cache
127 | .yarn/unplugged
128 | .yarn/build-state.yml
129 | .yarn/install-state.gz
130 | .pnp.*
131 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Arutiunian Artem
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # eslint-plugin-react-component-name
2 |
3 | ## Motivation
4 |
5 | - **Autofix** based on variable name.
6 | - **Better error traces** in console for debug.
7 | - **Support for any High-order components** and compositions (e.g. MobX's `observer`, Reatom's `reatomComponent` or nesting like `memo(forwardRef(() =>
))`)
8 | - **Universal** solution based solely on ESLint.
9 |
10 | ---
11 |
12 | ## Installation
13 |
14 | Install the package using npm or yarn:
15 |
16 | ```bash
17 | npm install eslint-plugin-react-component-name --save-dev
18 | ```
19 |
20 | ## Usage
21 |
22 | Add the plugin to your `.eslintrc` configuration:
23 |
24 | ```json
25 | {
26 | "plugins": ["react-component-name"],
27 | "extends": ["plugin:react-component-name/recommended"]
28 | }
29 | ```
30 |
31 | You can change the default rule setting (`memo`, `forwardRef`) by adding `targets` option in the rules section.
32 |
33 | Also, if you are using "prefer-arrow-callback" rule, it is required to add `allowNamedFunctions` option to it.
34 |
35 | ```json
36 | {
37 | "plugins": ["react-component-name"],
38 | "rules": {
39 | "prefer-arrow-callback": ["error", { "allowNamedFunctions": true }],
40 |
41 | "react-component-name/react-component-name": [
42 | "error",
43 | {
44 | "targets": ["memo", "forwardRef", "reatomComponent" || "observer"]
45 | }
46 | ]
47 | }
48 | }
49 | ```
50 |
51 | ## Examples
52 |
53 | ### Wrong Code
54 |
55 | ```javascript
56 | const MyComponent = memo(() => {
57 | return Hello
;
58 | });
59 |
60 | const MyRef = forwardRef((props, ref) => {
61 | return ;
62 | });
63 | ```
64 |
65 | ### Fixed Code
66 |
67 | ```javascript
68 | const MyComponent = memo(function MyComponent() {
69 | return Hello
;
70 | });
71 |
72 | const MyRef = forwardRef(function MyRef(props, ref) {
73 | return ;
74 | });
75 | ```
76 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eslint-plugin-react-component-name",
3 | "version": "0.1.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "eslint-plugin-react-component-name",
9 | "version": "0.1.0",
10 | "license": "MIT",
11 | "dependencies": {
12 | "@types/eslint": "^8.56.12"
13 | },
14 | "devDependencies": {
15 | "@typescript-eslint/eslint-plugin": "^7.18.0",
16 | "@typescript-eslint/parser": "^7.18.0",
17 | "@typescript-eslint/rule-tester": "^7.18.0",
18 | "eslint": "^8.57.1",
19 | "smartbundle": "^0.14.1",
20 | "typescript": "^5.8.2",
21 | "vitest": "^3.0.9"
22 | }
23 | },
24 | "node_modules/@esbuild/aix-ppc64": {
25 | "version": "0.25.1",
26 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
27 | "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
28 | "cpu": [
29 | "ppc64"
30 | ],
31 | "dev": true,
32 | "license": "MIT",
33 | "optional": true,
34 | "os": [
35 | "aix"
36 | ],
37 | "engines": {
38 | "node": ">=18"
39 | }
40 | },
41 | "node_modules/@esbuild/android-arm": {
42 | "version": "0.25.1",
43 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
44 | "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
45 | "cpu": [
46 | "arm"
47 | ],
48 | "dev": true,
49 | "license": "MIT",
50 | "optional": true,
51 | "os": [
52 | "android"
53 | ],
54 | "engines": {
55 | "node": ">=18"
56 | }
57 | },
58 | "node_modules/@esbuild/android-arm64": {
59 | "version": "0.25.1",
60 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
61 | "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
62 | "cpu": [
63 | "arm64"
64 | ],
65 | "dev": true,
66 | "license": "MIT",
67 | "optional": true,
68 | "os": [
69 | "android"
70 | ],
71 | "engines": {
72 | "node": ">=18"
73 | }
74 | },
75 | "node_modules/@esbuild/android-x64": {
76 | "version": "0.25.1",
77 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
78 | "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
79 | "cpu": [
80 | "x64"
81 | ],
82 | "dev": true,
83 | "license": "MIT",
84 | "optional": true,
85 | "os": [
86 | "android"
87 | ],
88 | "engines": {
89 | "node": ">=18"
90 | }
91 | },
92 | "node_modules/@esbuild/darwin-arm64": {
93 | "version": "0.25.1",
94 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
95 | "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
96 | "cpu": [
97 | "arm64"
98 | ],
99 | "dev": true,
100 | "license": "MIT",
101 | "optional": true,
102 | "os": [
103 | "darwin"
104 | ],
105 | "engines": {
106 | "node": ">=18"
107 | }
108 | },
109 | "node_modules/@esbuild/darwin-x64": {
110 | "version": "0.25.1",
111 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
112 | "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
113 | "cpu": [
114 | "x64"
115 | ],
116 | "dev": true,
117 | "license": "MIT",
118 | "optional": true,
119 | "os": [
120 | "darwin"
121 | ],
122 | "engines": {
123 | "node": ">=18"
124 | }
125 | },
126 | "node_modules/@esbuild/freebsd-arm64": {
127 | "version": "0.25.1",
128 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
129 | "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
130 | "cpu": [
131 | "arm64"
132 | ],
133 | "dev": true,
134 | "license": "MIT",
135 | "optional": true,
136 | "os": [
137 | "freebsd"
138 | ],
139 | "engines": {
140 | "node": ">=18"
141 | }
142 | },
143 | "node_modules/@esbuild/freebsd-x64": {
144 | "version": "0.25.1",
145 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
146 | "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
147 | "cpu": [
148 | "x64"
149 | ],
150 | "dev": true,
151 | "license": "MIT",
152 | "optional": true,
153 | "os": [
154 | "freebsd"
155 | ],
156 | "engines": {
157 | "node": ">=18"
158 | }
159 | },
160 | "node_modules/@esbuild/linux-arm": {
161 | "version": "0.25.1",
162 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
163 | "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
164 | "cpu": [
165 | "arm"
166 | ],
167 | "dev": true,
168 | "license": "MIT",
169 | "optional": true,
170 | "os": [
171 | "linux"
172 | ],
173 | "engines": {
174 | "node": ">=18"
175 | }
176 | },
177 | "node_modules/@esbuild/linux-arm64": {
178 | "version": "0.25.1",
179 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
180 | "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
181 | "cpu": [
182 | "arm64"
183 | ],
184 | "dev": true,
185 | "license": "MIT",
186 | "optional": true,
187 | "os": [
188 | "linux"
189 | ],
190 | "engines": {
191 | "node": ">=18"
192 | }
193 | },
194 | "node_modules/@esbuild/linux-ia32": {
195 | "version": "0.25.1",
196 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
197 | "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
198 | "cpu": [
199 | "ia32"
200 | ],
201 | "dev": true,
202 | "license": "MIT",
203 | "optional": true,
204 | "os": [
205 | "linux"
206 | ],
207 | "engines": {
208 | "node": ">=18"
209 | }
210 | },
211 | "node_modules/@esbuild/linux-loong64": {
212 | "version": "0.25.1",
213 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
214 | "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
215 | "cpu": [
216 | "loong64"
217 | ],
218 | "dev": true,
219 | "license": "MIT",
220 | "optional": true,
221 | "os": [
222 | "linux"
223 | ],
224 | "engines": {
225 | "node": ">=18"
226 | }
227 | },
228 | "node_modules/@esbuild/linux-mips64el": {
229 | "version": "0.25.1",
230 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
231 | "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
232 | "cpu": [
233 | "mips64el"
234 | ],
235 | "dev": true,
236 | "license": "MIT",
237 | "optional": true,
238 | "os": [
239 | "linux"
240 | ],
241 | "engines": {
242 | "node": ">=18"
243 | }
244 | },
245 | "node_modules/@esbuild/linux-ppc64": {
246 | "version": "0.25.1",
247 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
248 | "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
249 | "cpu": [
250 | "ppc64"
251 | ],
252 | "dev": true,
253 | "license": "MIT",
254 | "optional": true,
255 | "os": [
256 | "linux"
257 | ],
258 | "engines": {
259 | "node": ">=18"
260 | }
261 | },
262 | "node_modules/@esbuild/linux-riscv64": {
263 | "version": "0.25.1",
264 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
265 | "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
266 | "cpu": [
267 | "riscv64"
268 | ],
269 | "dev": true,
270 | "license": "MIT",
271 | "optional": true,
272 | "os": [
273 | "linux"
274 | ],
275 | "engines": {
276 | "node": ">=18"
277 | }
278 | },
279 | "node_modules/@esbuild/linux-s390x": {
280 | "version": "0.25.1",
281 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
282 | "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
283 | "cpu": [
284 | "s390x"
285 | ],
286 | "dev": true,
287 | "license": "MIT",
288 | "optional": true,
289 | "os": [
290 | "linux"
291 | ],
292 | "engines": {
293 | "node": ">=18"
294 | }
295 | },
296 | "node_modules/@esbuild/linux-x64": {
297 | "version": "0.25.1",
298 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
299 | "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
300 | "cpu": [
301 | "x64"
302 | ],
303 | "dev": true,
304 | "license": "MIT",
305 | "optional": true,
306 | "os": [
307 | "linux"
308 | ],
309 | "engines": {
310 | "node": ">=18"
311 | }
312 | },
313 | "node_modules/@esbuild/netbsd-arm64": {
314 | "version": "0.25.1",
315 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
316 | "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
317 | "cpu": [
318 | "arm64"
319 | ],
320 | "dev": true,
321 | "license": "MIT",
322 | "optional": true,
323 | "os": [
324 | "netbsd"
325 | ],
326 | "engines": {
327 | "node": ">=18"
328 | }
329 | },
330 | "node_modules/@esbuild/netbsd-x64": {
331 | "version": "0.25.1",
332 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
333 | "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
334 | "cpu": [
335 | "x64"
336 | ],
337 | "dev": true,
338 | "license": "MIT",
339 | "optional": true,
340 | "os": [
341 | "netbsd"
342 | ],
343 | "engines": {
344 | "node": ">=18"
345 | }
346 | },
347 | "node_modules/@esbuild/openbsd-arm64": {
348 | "version": "0.25.1",
349 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
350 | "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
351 | "cpu": [
352 | "arm64"
353 | ],
354 | "dev": true,
355 | "license": "MIT",
356 | "optional": true,
357 | "os": [
358 | "openbsd"
359 | ],
360 | "engines": {
361 | "node": ">=18"
362 | }
363 | },
364 | "node_modules/@esbuild/openbsd-x64": {
365 | "version": "0.25.1",
366 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
367 | "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
368 | "cpu": [
369 | "x64"
370 | ],
371 | "dev": true,
372 | "license": "MIT",
373 | "optional": true,
374 | "os": [
375 | "openbsd"
376 | ],
377 | "engines": {
378 | "node": ">=18"
379 | }
380 | },
381 | "node_modules/@esbuild/sunos-x64": {
382 | "version": "0.25.1",
383 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
384 | "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
385 | "cpu": [
386 | "x64"
387 | ],
388 | "dev": true,
389 | "license": "MIT",
390 | "optional": true,
391 | "os": [
392 | "sunos"
393 | ],
394 | "engines": {
395 | "node": ">=18"
396 | }
397 | },
398 | "node_modules/@esbuild/win32-arm64": {
399 | "version": "0.25.1",
400 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
401 | "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
402 | "cpu": [
403 | "arm64"
404 | ],
405 | "dev": true,
406 | "license": "MIT",
407 | "optional": true,
408 | "os": [
409 | "win32"
410 | ],
411 | "engines": {
412 | "node": ">=18"
413 | }
414 | },
415 | "node_modules/@esbuild/win32-ia32": {
416 | "version": "0.25.1",
417 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
418 | "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
419 | "cpu": [
420 | "ia32"
421 | ],
422 | "dev": true,
423 | "license": "MIT",
424 | "optional": true,
425 | "os": [
426 | "win32"
427 | ],
428 | "engines": {
429 | "node": ">=18"
430 | }
431 | },
432 | "node_modules/@esbuild/win32-x64": {
433 | "version": "0.25.1",
434 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
435 | "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
436 | "cpu": [
437 | "x64"
438 | ],
439 | "dev": true,
440 | "license": "MIT",
441 | "optional": true,
442 | "os": [
443 | "win32"
444 | ],
445 | "engines": {
446 | "node": ">=18"
447 | }
448 | },
449 | "node_modules/@eslint-community/eslint-utils": {
450 | "version": "4.4.1",
451 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
452 | "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
453 | "dev": true,
454 | "license": "MIT",
455 | "dependencies": {
456 | "eslint-visitor-keys": "^3.4.3"
457 | },
458 | "engines": {
459 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
460 | },
461 | "funding": {
462 | "url": "https://opencollective.com/eslint"
463 | },
464 | "peerDependencies": {
465 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
466 | }
467 | },
468 | "node_modules/@eslint-community/regexpp": {
469 | "version": "4.12.1",
470 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
471 | "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
472 | "dev": true,
473 | "license": "MIT",
474 | "engines": {
475 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
476 | }
477 | },
478 | "node_modules/@eslint/eslintrc": {
479 | "version": "3.2.0",
480 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
481 | "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
482 | "dev": true,
483 | "license": "MIT",
484 | "peer": true,
485 | "dependencies": {
486 | "ajv": "^6.12.4",
487 | "debug": "^4.3.2",
488 | "espree": "^10.0.1",
489 | "globals": "^14.0.0",
490 | "ignore": "^5.2.0",
491 | "import-fresh": "^3.2.1",
492 | "js-yaml": "^4.1.0",
493 | "minimatch": "^3.1.2",
494 | "strip-json-comments": "^3.1.1"
495 | },
496 | "engines": {
497 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
498 | },
499 | "funding": {
500 | "url": "https://opencollective.com/eslint"
501 | }
502 | },
503 | "node_modules/@eslint/js": {
504 | "version": "8.57.1",
505 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
506 | "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
507 | "dev": true,
508 | "license": "MIT",
509 | "engines": {
510 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
511 | }
512 | },
513 | "node_modules/@humanwhocodes/config-array": {
514 | "version": "0.13.0",
515 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
516 | "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
517 | "deprecated": "Use @eslint/config-array instead",
518 | "dev": true,
519 | "license": "Apache-2.0",
520 | "dependencies": {
521 | "@humanwhocodes/object-schema": "^2.0.3",
522 | "debug": "^4.3.1",
523 | "minimatch": "^3.0.5"
524 | },
525 | "engines": {
526 | "node": ">=10.10.0"
527 | }
528 | },
529 | "node_modules/@humanwhocodes/module-importer": {
530 | "version": "1.0.1",
531 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
532 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
533 | "dev": true,
534 | "license": "Apache-2.0",
535 | "engines": {
536 | "node": ">=12.22"
537 | },
538 | "funding": {
539 | "type": "github",
540 | "url": "https://github.com/sponsors/nzakas"
541 | }
542 | },
543 | "node_modules/@humanwhocodes/object-schema": {
544 | "version": "2.0.3",
545 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
546 | "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
547 | "deprecated": "Use @eslint/object-schema instead",
548 | "dev": true,
549 | "license": "BSD-3-Clause"
550 | },
551 | "node_modules/@jridgewell/sourcemap-codec": {
552 | "version": "1.5.0",
553 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
554 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
555 | "dev": true,
556 | "license": "MIT"
557 | },
558 | "node_modules/@nodelib/fs.scandir": {
559 | "version": "2.1.5",
560 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
561 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
562 | "dev": true,
563 | "license": "MIT",
564 | "dependencies": {
565 | "@nodelib/fs.stat": "2.0.5",
566 | "run-parallel": "^1.1.9"
567 | },
568 | "engines": {
569 | "node": ">= 8"
570 | }
571 | },
572 | "node_modules/@nodelib/fs.stat": {
573 | "version": "2.0.5",
574 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
575 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
576 | "dev": true,
577 | "license": "MIT",
578 | "engines": {
579 | "node": ">= 8"
580 | }
581 | },
582 | "node_modules/@nodelib/fs.walk": {
583 | "version": "1.2.8",
584 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
585 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
586 | "dev": true,
587 | "license": "MIT",
588 | "dependencies": {
589 | "@nodelib/fs.scandir": "2.1.5",
590 | "fastq": "^1.6.0"
591 | },
592 | "engines": {
593 | "node": ">= 8"
594 | }
595 | },
596 | "node_modules/@poppinss/colors": {
597 | "version": "4.1.4",
598 | "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.4.tgz",
599 | "integrity": "sha512-FA+nTU8p6OcSH4tLDY5JilGYr1bVWHpNmcLr7xmMEdbWmKHa+3QZ+DqefrXKmdjO/brHTnQZo20lLSjaO7ydog==",
600 | "dev": true,
601 | "license": "MIT",
602 | "dependencies": {
603 | "kleur": "^4.1.5"
604 | },
605 | "engines": {
606 | "node": ">=18.16.0"
607 | }
608 | },
609 | "node_modules/@poppinss/dumper": {
610 | "version": "0.6.3",
611 | "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.3.tgz",
612 | "integrity": "sha512-iombbn8ckOixMtuV1p3f8jN6vqhXefNjJttoPaJDMeIk/yIGhkkL3OrHkEjE9SRsgoAx1vBUU2GtgggjvA5hCA==",
613 | "dev": true,
614 | "license": "MIT",
615 | "dependencies": {
616 | "@poppinss/colors": "^4.1.4",
617 | "@sindresorhus/is": "^7.0.1",
618 | "supports-color": "^10.0.0"
619 | }
620 | },
621 | "node_modules/@poppinss/dumper/node_modules/supports-color": {
622 | "version": "10.0.0",
623 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.0.0.tgz",
624 | "integrity": "sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==",
625 | "dev": true,
626 | "license": "MIT",
627 | "engines": {
628 | "node": ">=18"
629 | },
630 | "funding": {
631 | "url": "https://github.com/chalk/supports-color?sponsor=1"
632 | }
633 | },
634 | "node_modules/@poppinss/exception": {
635 | "version": "1.2.1",
636 | "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.1.tgz",
637 | "integrity": "sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==",
638 | "dev": true,
639 | "license": "MIT",
640 | "engines": {
641 | "node": ">=18"
642 | }
643 | },
644 | "node_modules/@rollup/rollup-android-arm-eabi": {
645 | "version": "4.37.0",
646 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.37.0.tgz",
647 | "integrity": "sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==",
648 | "cpu": [
649 | "arm"
650 | ],
651 | "dev": true,
652 | "license": "MIT",
653 | "optional": true,
654 | "os": [
655 | "android"
656 | ]
657 | },
658 | "node_modules/@rollup/rollup-android-arm64": {
659 | "version": "4.37.0",
660 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.37.0.tgz",
661 | "integrity": "sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==",
662 | "cpu": [
663 | "arm64"
664 | ],
665 | "dev": true,
666 | "license": "MIT",
667 | "optional": true,
668 | "os": [
669 | "android"
670 | ]
671 | },
672 | "node_modules/@rollup/rollup-darwin-arm64": {
673 | "version": "4.37.0",
674 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.37.0.tgz",
675 | "integrity": "sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==",
676 | "cpu": [
677 | "arm64"
678 | ],
679 | "dev": true,
680 | "license": "MIT",
681 | "optional": true,
682 | "os": [
683 | "darwin"
684 | ]
685 | },
686 | "node_modules/@rollup/rollup-darwin-x64": {
687 | "version": "4.37.0",
688 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.37.0.tgz",
689 | "integrity": "sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==",
690 | "cpu": [
691 | "x64"
692 | ],
693 | "dev": true,
694 | "license": "MIT",
695 | "optional": true,
696 | "os": [
697 | "darwin"
698 | ]
699 | },
700 | "node_modules/@rollup/rollup-freebsd-arm64": {
701 | "version": "4.37.0",
702 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.37.0.tgz",
703 | "integrity": "sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==",
704 | "cpu": [
705 | "arm64"
706 | ],
707 | "dev": true,
708 | "license": "MIT",
709 | "optional": true,
710 | "os": [
711 | "freebsd"
712 | ]
713 | },
714 | "node_modules/@rollup/rollup-freebsd-x64": {
715 | "version": "4.37.0",
716 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.37.0.tgz",
717 | "integrity": "sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==",
718 | "cpu": [
719 | "x64"
720 | ],
721 | "dev": true,
722 | "license": "MIT",
723 | "optional": true,
724 | "os": [
725 | "freebsd"
726 | ]
727 | },
728 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
729 | "version": "4.37.0",
730 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.37.0.tgz",
731 | "integrity": "sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==",
732 | "cpu": [
733 | "arm"
734 | ],
735 | "dev": true,
736 | "license": "MIT",
737 | "optional": true,
738 | "os": [
739 | "linux"
740 | ]
741 | },
742 | "node_modules/@rollup/rollup-linux-arm-musleabihf": {
743 | "version": "4.37.0",
744 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.37.0.tgz",
745 | "integrity": "sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==",
746 | "cpu": [
747 | "arm"
748 | ],
749 | "dev": true,
750 | "license": "MIT",
751 | "optional": true,
752 | "os": [
753 | "linux"
754 | ]
755 | },
756 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
757 | "version": "4.37.0",
758 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.37.0.tgz",
759 | "integrity": "sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==",
760 | "cpu": [
761 | "arm64"
762 | ],
763 | "dev": true,
764 | "license": "MIT",
765 | "optional": true,
766 | "os": [
767 | "linux"
768 | ]
769 | },
770 | "node_modules/@rollup/rollup-linux-arm64-musl": {
771 | "version": "4.37.0",
772 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.37.0.tgz",
773 | "integrity": "sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==",
774 | "cpu": [
775 | "arm64"
776 | ],
777 | "dev": true,
778 | "license": "MIT",
779 | "optional": true,
780 | "os": [
781 | "linux"
782 | ]
783 | },
784 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
785 | "version": "4.37.0",
786 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.37.0.tgz",
787 | "integrity": "sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==",
788 | "cpu": [
789 | "loong64"
790 | ],
791 | "dev": true,
792 | "license": "MIT",
793 | "optional": true,
794 | "os": [
795 | "linux"
796 | ]
797 | },
798 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
799 | "version": "4.37.0",
800 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.37.0.tgz",
801 | "integrity": "sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==",
802 | "cpu": [
803 | "ppc64"
804 | ],
805 | "dev": true,
806 | "license": "MIT",
807 | "optional": true,
808 | "os": [
809 | "linux"
810 | ]
811 | },
812 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
813 | "version": "4.37.0",
814 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.37.0.tgz",
815 | "integrity": "sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==",
816 | "cpu": [
817 | "riscv64"
818 | ],
819 | "dev": true,
820 | "license": "MIT",
821 | "optional": true,
822 | "os": [
823 | "linux"
824 | ]
825 | },
826 | "node_modules/@rollup/rollup-linux-riscv64-musl": {
827 | "version": "4.37.0",
828 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.37.0.tgz",
829 | "integrity": "sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==",
830 | "cpu": [
831 | "riscv64"
832 | ],
833 | "dev": true,
834 | "license": "MIT",
835 | "optional": true,
836 | "os": [
837 | "linux"
838 | ]
839 | },
840 | "node_modules/@rollup/rollup-linux-s390x-gnu": {
841 | "version": "4.37.0",
842 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.37.0.tgz",
843 | "integrity": "sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==",
844 | "cpu": [
845 | "s390x"
846 | ],
847 | "dev": true,
848 | "license": "MIT",
849 | "optional": true,
850 | "os": [
851 | "linux"
852 | ]
853 | },
854 | "node_modules/@rollup/rollup-linux-x64-gnu": {
855 | "version": "4.37.0",
856 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.37.0.tgz",
857 | "integrity": "sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==",
858 | "cpu": [
859 | "x64"
860 | ],
861 | "dev": true,
862 | "license": "MIT",
863 | "optional": true,
864 | "os": [
865 | "linux"
866 | ]
867 | },
868 | "node_modules/@rollup/rollup-linux-x64-musl": {
869 | "version": "4.37.0",
870 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.37.0.tgz",
871 | "integrity": "sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==",
872 | "cpu": [
873 | "x64"
874 | ],
875 | "dev": true,
876 | "license": "MIT",
877 | "optional": true,
878 | "os": [
879 | "linux"
880 | ]
881 | },
882 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
883 | "version": "4.37.0",
884 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.37.0.tgz",
885 | "integrity": "sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==",
886 | "cpu": [
887 | "arm64"
888 | ],
889 | "dev": true,
890 | "license": "MIT",
891 | "optional": true,
892 | "os": [
893 | "win32"
894 | ]
895 | },
896 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
897 | "version": "4.37.0",
898 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.37.0.tgz",
899 | "integrity": "sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==",
900 | "cpu": [
901 | "ia32"
902 | ],
903 | "dev": true,
904 | "license": "MIT",
905 | "optional": true,
906 | "os": [
907 | "win32"
908 | ]
909 | },
910 | "node_modules/@rollup/rollup-win32-x64-msvc": {
911 | "version": "4.37.0",
912 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.37.0.tgz",
913 | "integrity": "sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==",
914 | "cpu": [
915 | "x64"
916 | ],
917 | "dev": true,
918 | "license": "MIT",
919 | "optional": true,
920 | "os": [
921 | "win32"
922 | ]
923 | },
924 | "node_modules/@sindresorhus/is": {
925 | "version": "7.0.1",
926 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz",
927 | "integrity": "sha512-QWLl2P+rsCJeofkDNIT3WFmb6NrRud1SUYW8dIhXK/46XFV8Q/g7Bsvib0Askb0reRLe+WYPeeE+l5cH7SlkuQ==",
928 | "dev": true,
929 | "license": "MIT",
930 | "engines": {
931 | "node": ">=18"
932 | },
933 | "funding": {
934 | "url": "https://github.com/sindresorhus/is?sponsor=1"
935 | }
936 | },
937 | "node_modules/@speed-highlight/core": {
938 | "version": "1.2.7",
939 | "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.7.tgz",
940 | "integrity": "sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==",
941 | "dev": true,
942 | "license": "CC0-1.0"
943 | },
944 | "node_modules/@types/eslint": {
945 | "version": "8.56.12",
946 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz",
947 | "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==",
948 | "license": "MIT",
949 | "dependencies": {
950 | "@types/estree": "*",
951 | "@types/json-schema": "*"
952 | }
953 | },
954 | "node_modules/@types/estree": {
955 | "version": "1.0.6",
956 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
957 | "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
958 | "license": "MIT"
959 | },
960 | "node_modules/@types/json-schema": {
961 | "version": "7.0.15",
962 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
963 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
964 | },
965 | "node_modules/@typescript-eslint/eslint-plugin": {
966 | "version": "7.18.0",
967 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz",
968 | "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==",
969 | "dev": true,
970 | "license": "MIT",
971 | "dependencies": {
972 | "@eslint-community/regexpp": "^4.10.0",
973 | "@typescript-eslint/scope-manager": "7.18.0",
974 | "@typescript-eslint/type-utils": "7.18.0",
975 | "@typescript-eslint/utils": "7.18.0",
976 | "@typescript-eslint/visitor-keys": "7.18.0",
977 | "graphemer": "^1.4.0",
978 | "ignore": "^5.3.1",
979 | "natural-compare": "^1.4.0",
980 | "ts-api-utils": "^1.3.0"
981 | },
982 | "engines": {
983 | "node": "^18.18.0 || >=20.0.0"
984 | },
985 | "funding": {
986 | "type": "opencollective",
987 | "url": "https://opencollective.com/typescript-eslint"
988 | },
989 | "peerDependencies": {
990 | "@typescript-eslint/parser": "^7.0.0",
991 | "eslint": "^8.56.0"
992 | },
993 | "peerDependenciesMeta": {
994 | "typescript": {
995 | "optional": true
996 | }
997 | }
998 | },
999 | "node_modules/@typescript-eslint/parser": {
1000 | "version": "7.18.0",
1001 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
1002 | "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
1003 | "dev": true,
1004 | "license": "BSD-2-Clause",
1005 | "dependencies": {
1006 | "@typescript-eslint/scope-manager": "7.18.0",
1007 | "@typescript-eslint/types": "7.18.0",
1008 | "@typescript-eslint/typescript-estree": "7.18.0",
1009 | "@typescript-eslint/visitor-keys": "7.18.0",
1010 | "debug": "^4.3.4"
1011 | },
1012 | "engines": {
1013 | "node": "^18.18.0 || >=20.0.0"
1014 | },
1015 | "funding": {
1016 | "type": "opencollective",
1017 | "url": "https://opencollective.com/typescript-eslint"
1018 | },
1019 | "peerDependencies": {
1020 | "eslint": "^8.56.0"
1021 | },
1022 | "peerDependenciesMeta": {
1023 | "typescript": {
1024 | "optional": true
1025 | }
1026 | }
1027 | },
1028 | "node_modules/@typescript-eslint/rule-tester": {
1029 | "version": "7.18.0",
1030 | "resolved": "https://registry.npmjs.org/@typescript-eslint/rule-tester/-/rule-tester-7.18.0.tgz",
1031 | "integrity": "sha512-ClrFQlwen9pJcYPIBLuarzBpONQAwjmJ0+YUjAo1TGzoZFJPyUK/A7bb4Mps0u+SMJJnFXbfMN8I9feQDf0O5A==",
1032 | "dev": true,
1033 | "license": "MIT",
1034 | "dependencies": {
1035 | "@typescript-eslint/typescript-estree": "7.18.0",
1036 | "@typescript-eslint/utils": "7.18.0",
1037 | "ajv": "^6.12.6",
1038 | "json-stable-stringify-without-jsonify": "^1.0.1",
1039 | "lodash.merge": "4.6.2",
1040 | "semver": "^7.6.0"
1041 | },
1042 | "engines": {
1043 | "node": "^18.18.0 || >=20.0.0"
1044 | },
1045 | "funding": {
1046 | "type": "opencollective",
1047 | "url": "https://opencollective.com/typescript-eslint"
1048 | },
1049 | "peerDependencies": {
1050 | "@eslint/eslintrc": ">=2",
1051 | "eslint": "^8.56.0"
1052 | }
1053 | },
1054 | "node_modules/@typescript-eslint/scope-manager": {
1055 | "version": "7.18.0",
1056 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
1057 | "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
1058 | "dev": true,
1059 | "license": "MIT",
1060 | "dependencies": {
1061 | "@typescript-eslint/types": "7.18.0",
1062 | "@typescript-eslint/visitor-keys": "7.18.0"
1063 | },
1064 | "engines": {
1065 | "node": "^18.18.0 || >=20.0.0"
1066 | },
1067 | "funding": {
1068 | "type": "opencollective",
1069 | "url": "https://opencollective.com/typescript-eslint"
1070 | }
1071 | },
1072 | "node_modules/@typescript-eslint/type-utils": {
1073 | "version": "7.18.0",
1074 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
1075 | "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
1076 | "dev": true,
1077 | "license": "MIT",
1078 | "dependencies": {
1079 | "@typescript-eslint/typescript-estree": "7.18.0",
1080 | "@typescript-eslint/utils": "7.18.0",
1081 | "debug": "^4.3.4",
1082 | "ts-api-utils": "^1.3.0"
1083 | },
1084 | "engines": {
1085 | "node": "^18.18.0 || >=20.0.0"
1086 | },
1087 | "funding": {
1088 | "type": "opencollective",
1089 | "url": "https://opencollective.com/typescript-eslint"
1090 | },
1091 | "peerDependencies": {
1092 | "eslint": "^8.56.0"
1093 | },
1094 | "peerDependenciesMeta": {
1095 | "typescript": {
1096 | "optional": true
1097 | }
1098 | }
1099 | },
1100 | "node_modules/@typescript-eslint/types": {
1101 | "version": "7.18.0",
1102 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
1103 | "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
1104 | "dev": true,
1105 | "license": "MIT",
1106 | "engines": {
1107 | "node": "^18.18.0 || >=20.0.0"
1108 | },
1109 | "funding": {
1110 | "type": "opencollective",
1111 | "url": "https://opencollective.com/typescript-eslint"
1112 | }
1113 | },
1114 | "node_modules/@typescript-eslint/typescript-estree": {
1115 | "version": "7.18.0",
1116 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
1117 | "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
1118 | "dev": true,
1119 | "license": "BSD-2-Clause",
1120 | "dependencies": {
1121 | "@typescript-eslint/types": "7.18.0",
1122 | "@typescript-eslint/visitor-keys": "7.18.0",
1123 | "debug": "^4.3.4",
1124 | "globby": "^11.1.0",
1125 | "is-glob": "^4.0.3",
1126 | "minimatch": "^9.0.4",
1127 | "semver": "^7.6.0",
1128 | "ts-api-utils": "^1.3.0"
1129 | },
1130 | "engines": {
1131 | "node": "^18.18.0 || >=20.0.0"
1132 | },
1133 | "funding": {
1134 | "type": "opencollective",
1135 | "url": "https://opencollective.com/typescript-eslint"
1136 | },
1137 | "peerDependenciesMeta": {
1138 | "typescript": {
1139 | "optional": true
1140 | }
1141 | }
1142 | },
1143 | "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
1144 | "version": "2.0.1",
1145 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1146 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1147 | "dev": true,
1148 | "license": "MIT",
1149 | "dependencies": {
1150 | "balanced-match": "^1.0.0"
1151 | }
1152 | },
1153 | "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
1154 | "version": "9.0.5",
1155 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1156 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1157 | "dev": true,
1158 | "license": "ISC",
1159 | "dependencies": {
1160 | "brace-expansion": "^2.0.1"
1161 | },
1162 | "engines": {
1163 | "node": ">=16 || 14 >=14.17"
1164 | },
1165 | "funding": {
1166 | "url": "https://github.com/sponsors/isaacs"
1167 | }
1168 | },
1169 | "node_modules/@typescript-eslint/utils": {
1170 | "version": "7.18.0",
1171 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
1172 | "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
1173 | "dev": true,
1174 | "license": "MIT",
1175 | "dependencies": {
1176 | "@eslint-community/eslint-utils": "^4.4.0",
1177 | "@typescript-eslint/scope-manager": "7.18.0",
1178 | "@typescript-eslint/types": "7.18.0",
1179 | "@typescript-eslint/typescript-estree": "7.18.0"
1180 | },
1181 | "engines": {
1182 | "node": "^18.18.0 || >=20.0.0"
1183 | },
1184 | "funding": {
1185 | "type": "opencollective",
1186 | "url": "https://opencollective.com/typescript-eslint"
1187 | },
1188 | "peerDependencies": {
1189 | "eslint": "^8.56.0"
1190 | }
1191 | },
1192 | "node_modules/@typescript-eslint/visitor-keys": {
1193 | "version": "7.18.0",
1194 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
1195 | "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
1196 | "dev": true,
1197 | "license": "MIT",
1198 | "dependencies": {
1199 | "@typescript-eslint/types": "7.18.0",
1200 | "eslint-visitor-keys": "^3.4.3"
1201 | },
1202 | "engines": {
1203 | "node": "^18.18.0 || >=20.0.0"
1204 | },
1205 | "funding": {
1206 | "type": "opencollective",
1207 | "url": "https://opencollective.com/typescript-eslint"
1208 | }
1209 | },
1210 | "node_modules/@ungap/structured-clone": {
1211 | "version": "1.2.0",
1212 | "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
1213 | "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
1214 | "dev": true,
1215 | "license": "ISC"
1216 | },
1217 | "node_modules/@vitest/expect": {
1218 | "version": "3.0.9",
1219 | "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.9.tgz",
1220 | "integrity": "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==",
1221 | "dev": true,
1222 | "license": "MIT",
1223 | "dependencies": {
1224 | "@vitest/spy": "3.0.9",
1225 | "@vitest/utils": "3.0.9",
1226 | "chai": "^5.2.0",
1227 | "tinyrainbow": "^2.0.0"
1228 | },
1229 | "funding": {
1230 | "url": "https://opencollective.com/vitest"
1231 | }
1232 | },
1233 | "node_modules/@vitest/mocker": {
1234 | "version": "3.0.9",
1235 | "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.9.tgz",
1236 | "integrity": "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==",
1237 | "dev": true,
1238 | "license": "MIT",
1239 | "dependencies": {
1240 | "@vitest/spy": "3.0.9",
1241 | "estree-walker": "^3.0.3",
1242 | "magic-string": "^0.30.17"
1243 | },
1244 | "funding": {
1245 | "url": "https://opencollective.com/vitest"
1246 | },
1247 | "peerDependencies": {
1248 | "msw": "^2.4.9",
1249 | "vite": "^5.0.0 || ^6.0.0"
1250 | },
1251 | "peerDependenciesMeta": {
1252 | "msw": {
1253 | "optional": true
1254 | },
1255 | "vite": {
1256 | "optional": true
1257 | }
1258 | }
1259 | },
1260 | "node_modules/@vitest/pretty-format": {
1261 | "version": "3.0.9",
1262 | "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz",
1263 | "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==",
1264 | "dev": true,
1265 | "license": "MIT",
1266 | "dependencies": {
1267 | "tinyrainbow": "^2.0.0"
1268 | },
1269 | "funding": {
1270 | "url": "https://opencollective.com/vitest"
1271 | }
1272 | },
1273 | "node_modules/@vitest/runner": {
1274 | "version": "3.0.9",
1275 | "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.9.tgz",
1276 | "integrity": "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==",
1277 | "dev": true,
1278 | "license": "MIT",
1279 | "dependencies": {
1280 | "@vitest/utils": "3.0.9",
1281 | "pathe": "^2.0.3"
1282 | },
1283 | "funding": {
1284 | "url": "https://opencollective.com/vitest"
1285 | }
1286 | },
1287 | "node_modules/@vitest/snapshot": {
1288 | "version": "3.0.9",
1289 | "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.9.tgz",
1290 | "integrity": "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==",
1291 | "dev": true,
1292 | "license": "MIT",
1293 | "dependencies": {
1294 | "@vitest/pretty-format": "3.0.9",
1295 | "magic-string": "^0.30.17",
1296 | "pathe": "^2.0.3"
1297 | },
1298 | "funding": {
1299 | "url": "https://opencollective.com/vitest"
1300 | }
1301 | },
1302 | "node_modules/@vitest/spy": {
1303 | "version": "3.0.9",
1304 | "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz",
1305 | "integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==",
1306 | "dev": true,
1307 | "license": "MIT",
1308 | "dependencies": {
1309 | "tinyspy": "^3.0.2"
1310 | },
1311 | "funding": {
1312 | "url": "https://opencollective.com/vitest"
1313 | }
1314 | },
1315 | "node_modules/@vitest/utils": {
1316 | "version": "3.0.9",
1317 | "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz",
1318 | "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==",
1319 | "dev": true,
1320 | "license": "MIT",
1321 | "dependencies": {
1322 | "@vitest/pretty-format": "3.0.9",
1323 | "loupe": "^3.1.3",
1324 | "tinyrainbow": "^2.0.0"
1325 | },
1326 | "funding": {
1327 | "url": "https://opencollective.com/vitest"
1328 | }
1329 | },
1330 | "node_modules/acorn": {
1331 | "version": "8.14.0",
1332 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
1333 | "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
1334 | "dev": true,
1335 | "license": "MIT",
1336 | "bin": {
1337 | "acorn": "bin/acorn"
1338 | },
1339 | "engines": {
1340 | "node": ">=0.4.0"
1341 | }
1342 | },
1343 | "node_modules/acorn-jsx": {
1344 | "version": "5.3.2",
1345 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
1346 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
1347 | "dev": true,
1348 | "license": "MIT",
1349 | "peerDependencies": {
1350 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
1351 | }
1352 | },
1353 | "node_modules/ajv": {
1354 | "version": "6.12.6",
1355 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
1356 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
1357 | "dev": true,
1358 | "license": "MIT",
1359 | "dependencies": {
1360 | "fast-deep-equal": "^3.1.1",
1361 | "fast-json-stable-stringify": "^2.0.0",
1362 | "json-schema-traverse": "^0.4.1",
1363 | "uri-js": "^4.2.2"
1364 | },
1365 | "funding": {
1366 | "type": "github",
1367 | "url": "https://github.com/sponsors/epoberezkin"
1368 | }
1369 | },
1370 | "node_modules/ansi-regex": {
1371 | "version": "5.0.1",
1372 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1373 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1374 | "dev": true,
1375 | "license": "MIT",
1376 | "engines": {
1377 | "node": ">=8"
1378 | }
1379 | },
1380 | "node_modules/ansi-styles": {
1381 | "version": "4.3.0",
1382 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1383 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1384 | "dev": true,
1385 | "license": "MIT",
1386 | "dependencies": {
1387 | "color-convert": "^2.0.1"
1388 | },
1389 | "engines": {
1390 | "node": ">=8"
1391 | },
1392 | "funding": {
1393 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1394 | }
1395 | },
1396 | "node_modules/argparse": {
1397 | "version": "2.0.1",
1398 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
1399 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
1400 | "dev": true,
1401 | "license": "Python-2.0"
1402 | },
1403 | "node_modules/array-union": {
1404 | "version": "2.1.0",
1405 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
1406 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
1407 | "dev": true,
1408 | "license": "MIT",
1409 | "engines": {
1410 | "node": ">=8"
1411 | }
1412 | },
1413 | "node_modules/assertion-error": {
1414 | "version": "2.0.1",
1415 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
1416 | "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
1417 | "dev": true,
1418 | "license": "MIT",
1419 | "engines": {
1420 | "node": ">=12"
1421 | }
1422 | },
1423 | "node_modules/balanced-match": {
1424 | "version": "1.0.2",
1425 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1426 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1427 | "dev": true,
1428 | "license": "MIT"
1429 | },
1430 | "node_modules/brace-expansion": {
1431 | "version": "1.1.11",
1432 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1433 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1434 | "dev": true,
1435 | "license": "MIT",
1436 | "dependencies": {
1437 | "balanced-match": "^1.0.0",
1438 | "concat-map": "0.0.1"
1439 | }
1440 | },
1441 | "node_modules/braces": {
1442 | "version": "3.0.3",
1443 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
1444 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
1445 | "dev": true,
1446 | "license": "MIT",
1447 | "dependencies": {
1448 | "fill-range": "^7.1.1"
1449 | },
1450 | "engines": {
1451 | "node": ">=8"
1452 | }
1453 | },
1454 | "node_modules/cac": {
1455 | "version": "6.7.14",
1456 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
1457 | "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
1458 | "dev": true,
1459 | "license": "MIT",
1460 | "engines": {
1461 | "node": ">=8"
1462 | }
1463 | },
1464 | "node_modules/callsites": {
1465 | "version": "3.1.0",
1466 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1467 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1468 | "dev": true,
1469 | "license": "MIT",
1470 | "engines": {
1471 | "node": ">=6"
1472 | }
1473 | },
1474 | "node_modules/chai": {
1475 | "version": "5.2.0",
1476 | "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
1477 | "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
1478 | "dev": true,
1479 | "license": "MIT",
1480 | "dependencies": {
1481 | "assertion-error": "^2.0.1",
1482 | "check-error": "^2.1.1",
1483 | "deep-eql": "^5.0.1",
1484 | "loupe": "^3.1.0",
1485 | "pathval": "^2.0.0"
1486 | },
1487 | "engines": {
1488 | "node": ">=12"
1489 | }
1490 | },
1491 | "node_modules/chalk": {
1492 | "version": "4.1.2",
1493 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1494 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1495 | "dev": true,
1496 | "license": "MIT",
1497 | "dependencies": {
1498 | "ansi-styles": "^4.1.0",
1499 | "supports-color": "^7.1.0"
1500 | },
1501 | "engines": {
1502 | "node": ">=10"
1503 | },
1504 | "funding": {
1505 | "url": "https://github.com/chalk/chalk?sponsor=1"
1506 | }
1507 | },
1508 | "node_modules/check-error": {
1509 | "version": "2.1.1",
1510 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
1511 | "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
1512 | "dev": true,
1513 | "license": "MIT",
1514 | "engines": {
1515 | "node": ">= 16"
1516 | }
1517 | },
1518 | "node_modules/cliui": {
1519 | "version": "8.0.1",
1520 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
1521 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
1522 | "dev": true,
1523 | "license": "ISC",
1524 | "dependencies": {
1525 | "string-width": "^4.2.0",
1526 | "strip-ansi": "^6.0.1",
1527 | "wrap-ansi": "^7.0.0"
1528 | },
1529 | "engines": {
1530 | "node": ">=12"
1531 | }
1532 | },
1533 | "node_modules/color-convert": {
1534 | "version": "2.0.1",
1535 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1536 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1537 | "dev": true,
1538 | "license": "MIT",
1539 | "dependencies": {
1540 | "color-name": "~1.1.4"
1541 | },
1542 | "engines": {
1543 | "node": ">=7.0.0"
1544 | }
1545 | },
1546 | "node_modules/color-name": {
1547 | "version": "1.1.4",
1548 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1549 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1550 | "dev": true,
1551 | "license": "MIT"
1552 | },
1553 | "node_modules/concat-map": {
1554 | "version": "0.0.1",
1555 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1556 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
1557 | "dev": true,
1558 | "license": "MIT"
1559 | },
1560 | "node_modules/cookie": {
1561 | "version": "1.0.2",
1562 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
1563 | "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
1564 | "dev": true,
1565 | "license": "MIT",
1566 | "engines": {
1567 | "node": ">=18"
1568 | }
1569 | },
1570 | "node_modules/cross-spawn": {
1571 | "version": "7.0.6",
1572 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
1573 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
1574 | "dev": true,
1575 | "license": "MIT",
1576 | "dependencies": {
1577 | "path-key": "^3.1.0",
1578 | "shebang-command": "^2.0.0",
1579 | "which": "^2.0.1"
1580 | },
1581 | "engines": {
1582 | "node": ">= 8"
1583 | }
1584 | },
1585 | "node_modules/debug": {
1586 | "version": "4.4.0",
1587 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
1588 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
1589 | "dev": true,
1590 | "license": "MIT",
1591 | "dependencies": {
1592 | "ms": "^2.1.3"
1593 | },
1594 | "engines": {
1595 | "node": ">=6.0"
1596 | },
1597 | "peerDependenciesMeta": {
1598 | "supports-color": {
1599 | "optional": true
1600 | }
1601 | }
1602 | },
1603 | "node_modules/deep-eql": {
1604 | "version": "5.0.2",
1605 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
1606 | "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
1607 | "dev": true,
1608 | "license": "MIT",
1609 | "engines": {
1610 | "node": ">=6"
1611 | }
1612 | },
1613 | "node_modules/deep-is": {
1614 | "version": "0.1.4",
1615 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1616 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
1617 | "dev": true,
1618 | "license": "MIT"
1619 | },
1620 | "node_modules/dir-glob": {
1621 | "version": "3.0.1",
1622 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
1623 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
1624 | "dev": true,
1625 | "license": "MIT",
1626 | "dependencies": {
1627 | "path-type": "^4.0.0"
1628 | },
1629 | "engines": {
1630 | "node": ">=8"
1631 | }
1632 | },
1633 | "node_modules/doctrine": {
1634 | "version": "3.0.0",
1635 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1636 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1637 | "dev": true,
1638 | "license": "Apache-2.0",
1639 | "dependencies": {
1640 | "esutils": "^2.0.2"
1641 | },
1642 | "engines": {
1643 | "node": ">=6.0.0"
1644 | }
1645 | },
1646 | "node_modules/emoji-regex": {
1647 | "version": "8.0.0",
1648 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1649 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1650 | "dev": true,
1651 | "license": "MIT"
1652 | },
1653 | "node_modules/error-stack-parser-es": {
1654 | "version": "1.0.5",
1655 | "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz",
1656 | "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==",
1657 | "dev": true,
1658 | "license": "MIT",
1659 | "funding": {
1660 | "url": "https://github.com/sponsors/antfu"
1661 | }
1662 | },
1663 | "node_modules/es-module-lexer": {
1664 | "version": "1.6.0",
1665 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
1666 | "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
1667 | "dev": true,
1668 | "license": "MIT"
1669 | },
1670 | "node_modules/esbuild": {
1671 | "version": "0.25.1",
1672 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
1673 | "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
1674 | "dev": true,
1675 | "hasInstallScript": true,
1676 | "license": "MIT",
1677 | "bin": {
1678 | "esbuild": "bin/esbuild"
1679 | },
1680 | "engines": {
1681 | "node": ">=18"
1682 | },
1683 | "optionalDependencies": {
1684 | "@esbuild/aix-ppc64": "0.25.1",
1685 | "@esbuild/android-arm": "0.25.1",
1686 | "@esbuild/android-arm64": "0.25.1",
1687 | "@esbuild/android-x64": "0.25.1",
1688 | "@esbuild/darwin-arm64": "0.25.1",
1689 | "@esbuild/darwin-x64": "0.25.1",
1690 | "@esbuild/freebsd-arm64": "0.25.1",
1691 | "@esbuild/freebsd-x64": "0.25.1",
1692 | "@esbuild/linux-arm": "0.25.1",
1693 | "@esbuild/linux-arm64": "0.25.1",
1694 | "@esbuild/linux-ia32": "0.25.1",
1695 | "@esbuild/linux-loong64": "0.25.1",
1696 | "@esbuild/linux-mips64el": "0.25.1",
1697 | "@esbuild/linux-ppc64": "0.25.1",
1698 | "@esbuild/linux-riscv64": "0.25.1",
1699 | "@esbuild/linux-s390x": "0.25.1",
1700 | "@esbuild/linux-x64": "0.25.1",
1701 | "@esbuild/netbsd-arm64": "0.25.1",
1702 | "@esbuild/netbsd-x64": "0.25.1",
1703 | "@esbuild/openbsd-arm64": "0.25.1",
1704 | "@esbuild/openbsd-x64": "0.25.1",
1705 | "@esbuild/sunos-x64": "0.25.1",
1706 | "@esbuild/win32-arm64": "0.25.1",
1707 | "@esbuild/win32-ia32": "0.25.1",
1708 | "@esbuild/win32-x64": "0.25.1"
1709 | }
1710 | },
1711 | "node_modules/escalade": {
1712 | "version": "3.2.0",
1713 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
1714 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
1715 | "dev": true,
1716 | "license": "MIT",
1717 | "engines": {
1718 | "node": ">=6"
1719 | }
1720 | },
1721 | "node_modules/escape-string-regexp": {
1722 | "version": "4.0.0",
1723 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1724 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1725 | "dev": true,
1726 | "license": "MIT",
1727 | "engines": {
1728 | "node": ">=10"
1729 | },
1730 | "funding": {
1731 | "url": "https://github.com/sponsors/sindresorhus"
1732 | }
1733 | },
1734 | "node_modules/eslint": {
1735 | "version": "8.57.1",
1736 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
1737 | "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
1738 | "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
1739 | "dev": true,
1740 | "license": "MIT",
1741 | "dependencies": {
1742 | "@eslint-community/eslint-utils": "^4.2.0",
1743 | "@eslint-community/regexpp": "^4.6.1",
1744 | "@eslint/eslintrc": "^2.1.4",
1745 | "@eslint/js": "8.57.1",
1746 | "@humanwhocodes/config-array": "^0.13.0",
1747 | "@humanwhocodes/module-importer": "^1.0.1",
1748 | "@nodelib/fs.walk": "^1.2.8",
1749 | "@ungap/structured-clone": "^1.2.0",
1750 | "ajv": "^6.12.4",
1751 | "chalk": "^4.0.0",
1752 | "cross-spawn": "^7.0.2",
1753 | "debug": "^4.3.2",
1754 | "doctrine": "^3.0.0",
1755 | "escape-string-regexp": "^4.0.0",
1756 | "eslint-scope": "^7.2.2",
1757 | "eslint-visitor-keys": "^3.4.3",
1758 | "espree": "^9.6.1",
1759 | "esquery": "^1.4.2",
1760 | "esutils": "^2.0.2",
1761 | "fast-deep-equal": "^3.1.3",
1762 | "file-entry-cache": "^6.0.1",
1763 | "find-up": "^5.0.0",
1764 | "glob-parent": "^6.0.2",
1765 | "globals": "^13.19.0",
1766 | "graphemer": "^1.4.0",
1767 | "ignore": "^5.2.0",
1768 | "imurmurhash": "^0.1.4",
1769 | "is-glob": "^4.0.0",
1770 | "is-path-inside": "^3.0.3",
1771 | "js-yaml": "^4.1.0",
1772 | "json-stable-stringify-without-jsonify": "^1.0.1",
1773 | "levn": "^0.4.1",
1774 | "lodash.merge": "^4.6.2",
1775 | "minimatch": "^3.1.2",
1776 | "natural-compare": "^1.4.0",
1777 | "optionator": "^0.9.3",
1778 | "strip-ansi": "^6.0.1",
1779 | "text-table": "^0.2.0"
1780 | },
1781 | "bin": {
1782 | "eslint": "bin/eslint.js"
1783 | },
1784 | "engines": {
1785 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1786 | },
1787 | "funding": {
1788 | "url": "https://opencollective.com/eslint"
1789 | }
1790 | },
1791 | "node_modules/eslint-scope": {
1792 | "version": "7.2.2",
1793 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
1794 | "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
1795 | "dev": true,
1796 | "license": "BSD-2-Clause",
1797 | "dependencies": {
1798 | "esrecurse": "^4.3.0",
1799 | "estraverse": "^5.2.0"
1800 | },
1801 | "engines": {
1802 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1803 | },
1804 | "funding": {
1805 | "url": "https://opencollective.com/eslint"
1806 | }
1807 | },
1808 | "node_modules/eslint-visitor-keys": {
1809 | "version": "3.4.3",
1810 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
1811 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
1812 | "dev": true,
1813 | "license": "Apache-2.0",
1814 | "engines": {
1815 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1816 | },
1817 | "funding": {
1818 | "url": "https://opencollective.com/eslint"
1819 | }
1820 | },
1821 | "node_modules/eslint/node_modules/@eslint/eslintrc": {
1822 | "version": "2.1.4",
1823 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
1824 | "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
1825 | "dev": true,
1826 | "license": "MIT",
1827 | "dependencies": {
1828 | "ajv": "^6.12.4",
1829 | "debug": "^4.3.2",
1830 | "espree": "^9.6.0",
1831 | "globals": "^13.19.0",
1832 | "ignore": "^5.2.0",
1833 | "import-fresh": "^3.2.1",
1834 | "js-yaml": "^4.1.0",
1835 | "minimatch": "^3.1.2",
1836 | "strip-json-comments": "^3.1.1"
1837 | },
1838 | "engines": {
1839 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1840 | },
1841 | "funding": {
1842 | "url": "https://opencollective.com/eslint"
1843 | }
1844 | },
1845 | "node_modules/eslint/node_modules/espree": {
1846 | "version": "9.6.1",
1847 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
1848 | "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
1849 | "dev": true,
1850 | "license": "BSD-2-Clause",
1851 | "dependencies": {
1852 | "acorn": "^8.9.0",
1853 | "acorn-jsx": "^5.3.2",
1854 | "eslint-visitor-keys": "^3.4.1"
1855 | },
1856 | "engines": {
1857 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1858 | },
1859 | "funding": {
1860 | "url": "https://opencollective.com/eslint"
1861 | }
1862 | },
1863 | "node_modules/eslint/node_modules/globals": {
1864 | "version": "13.24.0",
1865 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
1866 | "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
1867 | "dev": true,
1868 | "license": "MIT",
1869 | "dependencies": {
1870 | "type-fest": "^0.20.2"
1871 | },
1872 | "engines": {
1873 | "node": ">=8"
1874 | },
1875 | "funding": {
1876 | "url": "https://github.com/sponsors/sindresorhus"
1877 | }
1878 | },
1879 | "node_modules/espree": {
1880 | "version": "10.3.0",
1881 | "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
1882 | "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
1883 | "dev": true,
1884 | "license": "BSD-2-Clause",
1885 | "peer": true,
1886 | "dependencies": {
1887 | "acorn": "^8.14.0",
1888 | "acorn-jsx": "^5.3.2",
1889 | "eslint-visitor-keys": "^4.2.0"
1890 | },
1891 | "engines": {
1892 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1893 | },
1894 | "funding": {
1895 | "url": "https://opencollective.com/eslint"
1896 | }
1897 | },
1898 | "node_modules/espree/node_modules/eslint-visitor-keys": {
1899 | "version": "4.2.0",
1900 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
1901 | "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
1902 | "dev": true,
1903 | "license": "Apache-2.0",
1904 | "peer": true,
1905 | "engines": {
1906 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1907 | },
1908 | "funding": {
1909 | "url": "https://opencollective.com/eslint"
1910 | }
1911 | },
1912 | "node_modules/esquery": {
1913 | "version": "1.6.0",
1914 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
1915 | "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
1916 | "dev": true,
1917 | "license": "BSD-3-Clause",
1918 | "dependencies": {
1919 | "estraverse": "^5.1.0"
1920 | },
1921 | "engines": {
1922 | "node": ">=0.10"
1923 | }
1924 | },
1925 | "node_modules/esrecurse": {
1926 | "version": "4.3.0",
1927 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1928 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1929 | "dev": true,
1930 | "license": "BSD-2-Clause",
1931 | "dependencies": {
1932 | "estraverse": "^5.2.0"
1933 | },
1934 | "engines": {
1935 | "node": ">=4.0"
1936 | }
1937 | },
1938 | "node_modules/estraverse": {
1939 | "version": "5.3.0",
1940 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1941 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1942 | "dev": true,
1943 | "license": "BSD-2-Clause",
1944 | "engines": {
1945 | "node": ">=4.0"
1946 | }
1947 | },
1948 | "node_modules/estree-walker": {
1949 | "version": "3.0.3",
1950 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
1951 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
1952 | "dev": true,
1953 | "license": "MIT",
1954 | "dependencies": {
1955 | "@types/estree": "^1.0.0"
1956 | }
1957 | },
1958 | "node_modules/esutils": {
1959 | "version": "2.0.3",
1960 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1961 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1962 | "dev": true,
1963 | "license": "BSD-2-Clause",
1964 | "engines": {
1965 | "node": ">=0.10.0"
1966 | }
1967 | },
1968 | "node_modules/expect-type": {
1969 | "version": "1.2.0",
1970 | "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.0.tgz",
1971 | "integrity": "sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==",
1972 | "dev": true,
1973 | "license": "Apache-2.0",
1974 | "engines": {
1975 | "node": ">=12.0.0"
1976 | }
1977 | },
1978 | "node_modules/fast-deep-equal": {
1979 | "version": "3.1.3",
1980 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1981 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1982 | "dev": true,
1983 | "license": "MIT"
1984 | },
1985 | "node_modules/fast-glob": {
1986 | "version": "3.3.2",
1987 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
1988 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
1989 | "dev": true,
1990 | "license": "MIT",
1991 | "dependencies": {
1992 | "@nodelib/fs.stat": "^2.0.2",
1993 | "@nodelib/fs.walk": "^1.2.3",
1994 | "glob-parent": "^5.1.2",
1995 | "merge2": "^1.3.0",
1996 | "micromatch": "^4.0.4"
1997 | },
1998 | "engines": {
1999 | "node": ">=8.6.0"
2000 | }
2001 | },
2002 | "node_modules/fast-glob/node_modules/glob-parent": {
2003 | "version": "5.1.2",
2004 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
2005 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
2006 | "dev": true,
2007 | "license": "ISC",
2008 | "dependencies": {
2009 | "is-glob": "^4.0.1"
2010 | },
2011 | "engines": {
2012 | "node": ">= 6"
2013 | }
2014 | },
2015 | "node_modules/fast-json-stable-stringify": {
2016 | "version": "2.1.0",
2017 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
2018 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
2019 | "dev": true,
2020 | "license": "MIT"
2021 | },
2022 | "node_modules/fast-levenshtein": {
2023 | "version": "2.0.6",
2024 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
2025 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
2026 | "dev": true,
2027 | "license": "MIT"
2028 | },
2029 | "node_modules/fastq": {
2030 | "version": "1.17.1",
2031 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
2032 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
2033 | "dev": true,
2034 | "license": "ISC",
2035 | "dependencies": {
2036 | "reusify": "^1.0.4"
2037 | }
2038 | },
2039 | "node_modules/file-entry-cache": {
2040 | "version": "6.0.1",
2041 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
2042 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
2043 | "dev": true,
2044 | "license": "MIT",
2045 | "dependencies": {
2046 | "flat-cache": "^3.0.4"
2047 | },
2048 | "engines": {
2049 | "node": "^10.12.0 || >=12.0.0"
2050 | }
2051 | },
2052 | "node_modules/fill-range": {
2053 | "version": "7.1.1",
2054 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
2055 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
2056 | "dev": true,
2057 | "license": "MIT",
2058 | "dependencies": {
2059 | "to-regex-range": "^5.0.1"
2060 | },
2061 | "engines": {
2062 | "node": ">=8"
2063 | }
2064 | },
2065 | "node_modules/find-up": {
2066 | "version": "5.0.0",
2067 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
2068 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
2069 | "dev": true,
2070 | "license": "MIT",
2071 | "dependencies": {
2072 | "locate-path": "^6.0.0",
2073 | "path-exists": "^4.0.0"
2074 | },
2075 | "engines": {
2076 | "node": ">=10"
2077 | },
2078 | "funding": {
2079 | "url": "https://github.com/sponsors/sindresorhus"
2080 | }
2081 | },
2082 | "node_modules/flat-cache": {
2083 | "version": "3.2.0",
2084 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
2085 | "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
2086 | "dev": true,
2087 | "license": "MIT",
2088 | "dependencies": {
2089 | "flatted": "^3.2.9",
2090 | "keyv": "^4.5.3",
2091 | "rimraf": "^3.0.2"
2092 | },
2093 | "engines": {
2094 | "node": "^10.12.0 || >=12.0.0"
2095 | }
2096 | },
2097 | "node_modules/flatted": {
2098 | "version": "3.3.2",
2099 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
2100 | "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
2101 | "dev": true,
2102 | "license": "ISC"
2103 | },
2104 | "node_modules/fs.realpath": {
2105 | "version": "1.0.0",
2106 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2107 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
2108 | "dev": true,
2109 | "license": "ISC"
2110 | },
2111 | "node_modules/fsevents": {
2112 | "version": "2.3.3",
2113 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
2114 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
2115 | "dev": true,
2116 | "hasInstallScript": true,
2117 | "license": "MIT",
2118 | "optional": true,
2119 | "os": [
2120 | "darwin"
2121 | ],
2122 | "engines": {
2123 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
2124 | }
2125 | },
2126 | "node_modules/get-caller-file": {
2127 | "version": "2.0.5",
2128 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2129 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
2130 | "dev": true,
2131 | "license": "ISC",
2132 | "engines": {
2133 | "node": "6.* || 8.* || >= 10.*"
2134 | }
2135 | },
2136 | "node_modules/glob": {
2137 | "version": "7.2.3",
2138 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
2139 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
2140 | "deprecated": "Glob versions prior to v9 are no longer supported",
2141 | "dev": true,
2142 | "license": "ISC",
2143 | "dependencies": {
2144 | "fs.realpath": "^1.0.0",
2145 | "inflight": "^1.0.4",
2146 | "inherits": "2",
2147 | "minimatch": "^3.1.1",
2148 | "once": "^1.3.0",
2149 | "path-is-absolute": "^1.0.0"
2150 | },
2151 | "engines": {
2152 | "node": "*"
2153 | },
2154 | "funding": {
2155 | "url": "https://github.com/sponsors/isaacs"
2156 | }
2157 | },
2158 | "node_modules/glob-parent": {
2159 | "version": "6.0.2",
2160 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
2161 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
2162 | "dev": true,
2163 | "license": "ISC",
2164 | "dependencies": {
2165 | "is-glob": "^4.0.3"
2166 | },
2167 | "engines": {
2168 | "node": ">=10.13.0"
2169 | }
2170 | },
2171 | "node_modules/globals": {
2172 | "version": "14.0.0",
2173 | "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
2174 | "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
2175 | "dev": true,
2176 | "license": "MIT",
2177 | "peer": true,
2178 | "engines": {
2179 | "node": ">=18"
2180 | },
2181 | "funding": {
2182 | "url": "https://github.com/sponsors/sindresorhus"
2183 | }
2184 | },
2185 | "node_modules/globby": {
2186 | "version": "11.1.0",
2187 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
2188 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
2189 | "dev": true,
2190 | "license": "MIT",
2191 | "dependencies": {
2192 | "array-union": "^2.1.0",
2193 | "dir-glob": "^3.0.1",
2194 | "fast-glob": "^3.2.9",
2195 | "ignore": "^5.2.0",
2196 | "merge2": "^1.4.1",
2197 | "slash": "^3.0.0"
2198 | },
2199 | "engines": {
2200 | "node": ">=10"
2201 | },
2202 | "funding": {
2203 | "url": "https://github.com/sponsors/sindresorhus"
2204 | }
2205 | },
2206 | "node_modules/graphemer": {
2207 | "version": "1.4.0",
2208 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
2209 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
2210 | "dev": true,
2211 | "license": "MIT"
2212 | },
2213 | "node_modules/has-flag": {
2214 | "version": "4.0.0",
2215 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2216 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2217 | "dev": true,
2218 | "license": "MIT",
2219 | "engines": {
2220 | "node": ">=8"
2221 | }
2222 | },
2223 | "node_modules/ignore": {
2224 | "version": "5.3.2",
2225 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
2226 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
2227 | "dev": true,
2228 | "license": "MIT",
2229 | "engines": {
2230 | "node": ">= 4"
2231 | }
2232 | },
2233 | "node_modules/import-fresh": {
2234 | "version": "3.3.0",
2235 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
2236 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
2237 | "dev": true,
2238 | "license": "MIT",
2239 | "dependencies": {
2240 | "parent-module": "^1.0.0",
2241 | "resolve-from": "^4.0.0"
2242 | },
2243 | "engines": {
2244 | "node": ">=6"
2245 | },
2246 | "funding": {
2247 | "url": "https://github.com/sponsors/sindresorhus"
2248 | }
2249 | },
2250 | "node_modules/imurmurhash": {
2251 | "version": "0.1.4",
2252 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2253 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
2254 | "dev": true,
2255 | "license": "MIT",
2256 | "engines": {
2257 | "node": ">=0.8.19"
2258 | }
2259 | },
2260 | "node_modules/inflight": {
2261 | "version": "1.0.6",
2262 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2263 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
2264 | "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
2265 | "dev": true,
2266 | "license": "ISC",
2267 | "dependencies": {
2268 | "once": "^1.3.0",
2269 | "wrappy": "1"
2270 | }
2271 | },
2272 | "node_modules/inherits": {
2273 | "version": "2.0.4",
2274 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2275 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2276 | "dev": true,
2277 | "license": "ISC"
2278 | },
2279 | "node_modules/is-extglob": {
2280 | "version": "2.1.1",
2281 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2282 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2283 | "dev": true,
2284 | "license": "MIT",
2285 | "engines": {
2286 | "node": ">=0.10.0"
2287 | }
2288 | },
2289 | "node_modules/is-fullwidth-code-point": {
2290 | "version": "3.0.0",
2291 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2292 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2293 | "dev": true,
2294 | "license": "MIT",
2295 | "engines": {
2296 | "node": ">=8"
2297 | }
2298 | },
2299 | "node_modules/is-glob": {
2300 | "version": "4.0.3",
2301 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2302 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2303 | "dev": true,
2304 | "license": "MIT",
2305 | "dependencies": {
2306 | "is-extglob": "^2.1.1"
2307 | },
2308 | "engines": {
2309 | "node": ">=0.10.0"
2310 | }
2311 | },
2312 | "node_modules/is-number": {
2313 | "version": "7.0.0",
2314 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2315 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2316 | "dev": true,
2317 | "license": "MIT",
2318 | "engines": {
2319 | "node": ">=0.12.0"
2320 | }
2321 | },
2322 | "node_modules/is-path-inside": {
2323 | "version": "3.0.3",
2324 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
2325 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
2326 | "dev": true,
2327 | "license": "MIT",
2328 | "engines": {
2329 | "node": ">=8"
2330 | }
2331 | },
2332 | "node_modules/isexe": {
2333 | "version": "2.0.0",
2334 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2335 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
2336 | "dev": true,
2337 | "license": "ISC"
2338 | },
2339 | "node_modules/js-yaml": {
2340 | "version": "4.1.0",
2341 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2342 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2343 | "dev": true,
2344 | "license": "MIT",
2345 | "dependencies": {
2346 | "argparse": "^2.0.1"
2347 | },
2348 | "bin": {
2349 | "js-yaml": "bin/js-yaml.js"
2350 | }
2351 | },
2352 | "node_modules/json-buffer": {
2353 | "version": "3.0.1",
2354 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
2355 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
2356 | "dev": true,
2357 | "license": "MIT"
2358 | },
2359 | "node_modules/json-schema-traverse": {
2360 | "version": "0.4.1",
2361 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2362 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2363 | "dev": true,
2364 | "license": "MIT"
2365 | },
2366 | "node_modules/json-stable-stringify-without-jsonify": {
2367 | "version": "1.0.1",
2368 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2369 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
2370 | "dev": true,
2371 | "license": "MIT"
2372 | },
2373 | "node_modules/keyv": {
2374 | "version": "4.5.4",
2375 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
2376 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
2377 | "dev": true,
2378 | "license": "MIT",
2379 | "dependencies": {
2380 | "json-buffer": "3.0.1"
2381 | }
2382 | },
2383 | "node_modules/kleur": {
2384 | "version": "4.1.5",
2385 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
2386 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
2387 | "dev": true,
2388 | "license": "MIT",
2389 | "engines": {
2390 | "node": ">=6"
2391 | }
2392 | },
2393 | "node_modules/levn": {
2394 | "version": "0.4.1",
2395 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
2396 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
2397 | "dev": true,
2398 | "license": "MIT",
2399 | "dependencies": {
2400 | "prelude-ls": "^1.2.1",
2401 | "type-check": "~0.4.0"
2402 | },
2403 | "engines": {
2404 | "node": ">= 0.8.0"
2405 | }
2406 | },
2407 | "node_modules/locate-path": {
2408 | "version": "6.0.0",
2409 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2410 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2411 | "dev": true,
2412 | "license": "MIT",
2413 | "dependencies": {
2414 | "p-locate": "^5.0.0"
2415 | },
2416 | "engines": {
2417 | "node": ">=10"
2418 | },
2419 | "funding": {
2420 | "url": "https://github.com/sponsors/sindresorhus"
2421 | }
2422 | },
2423 | "node_modules/lodash.merge": {
2424 | "version": "4.6.2",
2425 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
2426 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
2427 | "dev": true,
2428 | "license": "MIT"
2429 | },
2430 | "node_modules/loupe": {
2431 | "version": "3.1.3",
2432 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
2433 | "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
2434 | "dev": true,
2435 | "license": "MIT"
2436 | },
2437 | "node_modules/magic-string": {
2438 | "version": "0.30.17",
2439 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
2440 | "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
2441 | "dev": true,
2442 | "license": "MIT",
2443 | "dependencies": {
2444 | "@jridgewell/sourcemap-codec": "^1.5.0"
2445 | }
2446 | },
2447 | "node_modules/merge2": {
2448 | "version": "1.4.1",
2449 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
2450 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
2451 | "dev": true,
2452 | "license": "MIT",
2453 | "engines": {
2454 | "node": ">= 8"
2455 | }
2456 | },
2457 | "node_modules/micromatch": {
2458 | "version": "4.0.8",
2459 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
2460 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
2461 | "dev": true,
2462 | "license": "MIT",
2463 | "dependencies": {
2464 | "braces": "^3.0.3",
2465 | "picomatch": "^2.3.1"
2466 | },
2467 | "engines": {
2468 | "node": ">=8.6"
2469 | }
2470 | },
2471 | "node_modules/minimatch": {
2472 | "version": "3.1.2",
2473 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2474 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2475 | "dev": true,
2476 | "license": "ISC",
2477 | "dependencies": {
2478 | "brace-expansion": "^1.1.7"
2479 | },
2480 | "engines": {
2481 | "node": "*"
2482 | }
2483 | },
2484 | "node_modules/ms": {
2485 | "version": "2.1.3",
2486 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2487 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2488 | "dev": true,
2489 | "license": "MIT"
2490 | },
2491 | "node_modules/nanoid": {
2492 | "version": "3.3.11",
2493 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
2494 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
2495 | "dev": true,
2496 | "funding": [
2497 | {
2498 | "type": "github",
2499 | "url": "https://github.com/sponsors/ai"
2500 | }
2501 | ],
2502 | "license": "MIT",
2503 | "bin": {
2504 | "nanoid": "bin/nanoid.cjs"
2505 | },
2506 | "engines": {
2507 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2508 | }
2509 | },
2510 | "node_modules/natural-compare": {
2511 | "version": "1.4.0",
2512 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2513 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2514 | "dev": true,
2515 | "license": "MIT"
2516 | },
2517 | "node_modules/once": {
2518 | "version": "1.4.0",
2519 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2520 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2521 | "dev": true,
2522 | "license": "ISC",
2523 | "dependencies": {
2524 | "wrappy": "1"
2525 | }
2526 | },
2527 | "node_modules/optionator": {
2528 | "version": "0.9.4",
2529 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
2530 | "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
2531 | "dev": true,
2532 | "license": "MIT",
2533 | "dependencies": {
2534 | "deep-is": "^0.1.3",
2535 | "fast-levenshtein": "^2.0.6",
2536 | "levn": "^0.4.1",
2537 | "prelude-ls": "^1.2.1",
2538 | "type-check": "^0.4.0",
2539 | "word-wrap": "^1.2.5"
2540 | },
2541 | "engines": {
2542 | "node": ">= 0.8.0"
2543 | }
2544 | },
2545 | "node_modules/p-limit": {
2546 | "version": "3.1.0",
2547 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2548 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2549 | "dev": true,
2550 | "license": "MIT",
2551 | "dependencies": {
2552 | "yocto-queue": "^0.1.0"
2553 | },
2554 | "engines": {
2555 | "node": ">=10"
2556 | },
2557 | "funding": {
2558 | "url": "https://github.com/sponsors/sindresorhus"
2559 | }
2560 | },
2561 | "node_modules/p-locate": {
2562 | "version": "5.0.0",
2563 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2564 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2565 | "dev": true,
2566 | "license": "MIT",
2567 | "dependencies": {
2568 | "p-limit": "^3.0.2"
2569 | },
2570 | "engines": {
2571 | "node": ">=10"
2572 | },
2573 | "funding": {
2574 | "url": "https://github.com/sponsors/sindresorhus"
2575 | }
2576 | },
2577 | "node_modules/parent-module": {
2578 | "version": "1.0.1",
2579 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2580 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2581 | "dev": true,
2582 | "license": "MIT",
2583 | "dependencies": {
2584 | "callsites": "^3.0.0"
2585 | },
2586 | "engines": {
2587 | "node": ">=6"
2588 | }
2589 | },
2590 | "node_modules/path-exists": {
2591 | "version": "4.0.0",
2592 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2593 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2594 | "dev": true,
2595 | "license": "MIT",
2596 | "engines": {
2597 | "node": ">=8"
2598 | }
2599 | },
2600 | "node_modules/path-is-absolute": {
2601 | "version": "1.0.1",
2602 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2603 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2604 | "dev": true,
2605 | "license": "MIT",
2606 | "engines": {
2607 | "node": ">=0.10.0"
2608 | }
2609 | },
2610 | "node_modules/path-key": {
2611 | "version": "3.1.1",
2612 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2613 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2614 | "dev": true,
2615 | "license": "MIT",
2616 | "engines": {
2617 | "node": ">=8"
2618 | }
2619 | },
2620 | "node_modules/path-type": {
2621 | "version": "4.0.0",
2622 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
2623 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
2624 | "dev": true,
2625 | "license": "MIT",
2626 | "engines": {
2627 | "node": ">=8"
2628 | }
2629 | },
2630 | "node_modules/pathe": {
2631 | "version": "2.0.3",
2632 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
2633 | "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
2634 | "dev": true,
2635 | "license": "MIT"
2636 | },
2637 | "node_modules/pathval": {
2638 | "version": "2.0.0",
2639 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
2640 | "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
2641 | "dev": true,
2642 | "license": "MIT",
2643 | "engines": {
2644 | "node": ">= 14.16"
2645 | }
2646 | },
2647 | "node_modules/picocolors": {
2648 | "version": "1.1.1",
2649 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
2650 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
2651 | "dev": true,
2652 | "license": "ISC"
2653 | },
2654 | "node_modules/picomatch": {
2655 | "version": "2.3.1",
2656 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2657 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2658 | "dev": true,
2659 | "license": "MIT",
2660 | "engines": {
2661 | "node": ">=8.6"
2662 | },
2663 | "funding": {
2664 | "url": "https://github.com/sponsors/jonschlinkert"
2665 | }
2666 | },
2667 | "node_modules/postcss": {
2668 | "version": "8.5.3",
2669 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
2670 | "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
2671 | "dev": true,
2672 | "funding": [
2673 | {
2674 | "type": "opencollective",
2675 | "url": "https://opencollective.com/postcss/"
2676 | },
2677 | {
2678 | "type": "tidelift",
2679 | "url": "https://tidelift.com/funding/github/npm/postcss"
2680 | },
2681 | {
2682 | "type": "github",
2683 | "url": "https://github.com/sponsors/ai"
2684 | }
2685 | ],
2686 | "license": "MIT",
2687 | "dependencies": {
2688 | "nanoid": "^3.3.8",
2689 | "picocolors": "^1.1.1",
2690 | "source-map-js": "^1.2.1"
2691 | },
2692 | "engines": {
2693 | "node": "^10 || ^12 || >=14"
2694 | }
2695 | },
2696 | "node_modules/prelude-ls": {
2697 | "version": "1.2.1",
2698 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2699 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2700 | "dev": true,
2701 | "license": "MIT",
2702 | "engines": {
2703 | "node": ">= 0.8.0"
2704 | }
2705 | },
2706 | "node_modules/punycode": {
2707 | "version": "2.3.1",
2708 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
2709 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
2710 | "dev": true,
2711 | "license": "MIT",
2712 | "engines": {
2713 | "node": ">=6"
2714 | }
2715 | },
2716 | "node_modules/queue-microtask": {
2717 | "version": "1.2.3",
2718 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2719 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2720 | "dev": true,
2721 | "funding": [
2722 | {
2723 | "type": "github",
2724 | "url": "https://github.com/sponsors/feross"
2725 | },
2726 | {
2727 | "type": "patreon",
2728 | "url": "https://www.patreon.com/feross"
2729 | },
2730 | {
2731 | "type": "consulting",
2732 | "url": "https://feross.org/support"
2733 | }
2734 | ],
2735 | "license": "MIT"
2736 | },
2737 | "node_modules/require-directory": {
2738 | "version": "2.1.1",
2739 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
2740 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
2741 | "dev": true,
2742 | "license": "MIT",
2743 | "engines": {
2744 | "node": ">=0.10.0"
2745 | }
2746 | },
2747 | "node_modules/resolve-from": {
2748 | "version": "4.0.0",
2749 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2750 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2751 | "dev": true,
2752 | "license": "MIT",
2753 | "engines": {
2754 | "node": ">=4"
2755 | }
2756 | },
2757 | "node_modules/reusify": {
2758 | "version": "1.0.4",
2759 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2760 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2761 | "dev": true,
2762 | "license": "MIT",
2763 | "engines": {
2764 | "iojs": ">=1.0.0",
2765 | "node": ">=0.10.0"
2766 | }
2767 | },
2768 | "node_modules/rimraf": {
2769 | "version": "3.0.2",
2770 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2771 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2772 | "deprecated": "Rimraf versions prior to v4 are no longer supported",
2773 | "dev": true,
2774 | "license": "ISC",
2775 | "dependencies": {
2776 | "glob": "^7.1.3"
2777 | },
2778 | "bin": {
2779 | "rimraf": "bin.js"
2780 | },
2781 | "funding": {
2782 | "url": "https://github.com/sponsors/isaacs"
2783 | }
2784 | },
2785 | "node_modules/rollup": {
2786 | "version": "4.37.0",
2787 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.37.0.tgz",
2788 | "integrity": "sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==",
2789 | "dev": true,
2790 | "license": "MIT",
2791 | "dependencies": {
2792 | "@types/estree": "1.0.6"
2793 | },
2794 | "bin": {
2795 | "rollup": "dist/bin/rollup"
2796 | },
2797 | "engines": {
2798 | "node": ">=18.0.0",
2799 | "npm": ">=8.0.0"
2800 | },
2801 | "optionalDependencies": {
2802 | "@rollup/rollup-android-arm-eabi": "4.37.0",
2803 | "@rollup/rollup-android-arm64": "4.37.0",
2804 | "@rollup/rollup-darwin-arm64": "4.37.0",
2805 | "@rollup/rollup-darwin-x64": "4.37.0",
2806 | "@rollup/rollup-freebsd-arm64": "4.37.0",
2807 | "@rollup/rollup-freebsd-x64": "4.37.0",
2808 | "@rollup/rollup-linux-arm-gnueabihf": "4.37.0",
2809 | "@rollup/rollup-linux-arm-musleabihf": "4.37.0",
2810 | "@rollup/rollup-linux-arm64-gnu": "4.37.0",
2811 | "@rollup/rollup-linux-arm64-musl": "4.37.0",
2812 | "@rollup/rollup-linux-loongarch64-gnu": "4.37.0",
2813 | "@rollup/rollup-linux-powerpc64le-gnu": "4.37.0",
2814 | "@rollup/rollup-linux-riscv64-gnu": "4.37.0",
2815 | "@rollup/rollup-linux-riscv64-musl": "4.37.0",
2816 | "@rollup/rollup-linux-s390x-gnu": "4.37.0",
2817 | "@rollup/rollup-linux-x64-gnu": "4.37.0",
2818 | "@rollup/rollup-linux-x64-musl": "4.37.0",
2819 | "@rollup/rollup-win32-arm64-msvc": "4.37.0",
2820 | "@rollup/rollup-win32-ia32-msvc": "4.37.0",
2821 | "@rollup/rollup-win32-x64-msvc": "4.37.0",
2822 | "fsevents": "~2.3.2"
2823 | }
2824 | },
2825 | "node_modules/run-parallel": {
2826 | "version": "1.2.0",
2827 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2828 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2829 | "dev": true,
2830 | "funding": [
2831 | {
2832 | "type": "github",
2833 | "url": "https://github.com/sponsors/feross"
2834 | },
2835 | {
2836 | "type": "patreon",
2837 | "url": "https://www.patreon.com/feross"
2838 | },
2839 | {
2840 | "type": "consulting",
2841 | "url": "https://feross.org/support"
2842 | }
2843 | ],
2844 | "license": "MIT",
2845 | "dependencies": {
2846 | "queue-microtask": "^1.2.2"
2847 | }
2848 | },
2849 | "node_modules/semver": {
2850 | "version": "7.6.3",
2851 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
2852 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
2853 | "dev": true,
2854 | "license": "ISC",
2855 | "bin": {
2856 | "semver": "bin/semver.js"
2857 | },
2858 | "engines": {
2859 | "node": ">=10"
2860 | }
2861 | },
2862 | "node_modules/shebang-command": {
2863 | "version": "2.0.0",
2864 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2865 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2866 | "dev": true,
2867 | "license": "MIT",
2868 | "dependencies": {
2869 | "shebang-regex": "^3.0.0"
2870 | },
2871 | "engines": {
2872 | "node": ">=8"
2873 | }
2874 | },
2875 | "node_modules/shebang-regex": {
2876 | "version": "3.0.0",
2877 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2878 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2879 | "dev": true,
2880 | "license": "MIT",
2881 | "engines": {
2882 | "node": ">=8"
2883 | }
2884 | },
2885 | "node_modules/siginfo": {
2886 | "version": "2.0.0",
2887 | "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
2888 | "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
2889 | "dev": true,
2890 | "license": "ISC"
2891 | },
2892 | "node_modules/slash": {
2893 | "version": "3.0.0",
2894 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2895 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
2896 | "dev": true,
2897 | "license": "MIT",
2898 | "engines": {
2899 | "node": ">=8"
2900 | }
2901 | },
2902 | "node_modules/smartbundle": {
2903 | "version": "0.14.1",
2904 | "resolved": "https://registry.npmjs.org/smartbundle/-/smartbundle-0.14.1.tgz",
2905 | "integrity": "sha512-NMgjC7LBIw9SteclqMM8A3MSfdkDzR0LoQfp5eYIZjJfi4cVK9cPzFbxmuOGyp1DL/moFOIxf/urqsNrunFOfw==",
2906 | "dev": true,
2907 | "license": "MIT",
2908 | "dependencies": {
2909 | "semver": "^7.6.3",
2910 | "vite": "^6.0.7",
2911 | "yargs": "^17.7.2",
2912 | "youch": "4.1.0-beta.5",
2913 | "zod": "^3.24.1"
2914 | },
2915 | "bin": {
2916 | "smartbundle": "__bin__/smartbundle.js"
2917 | },
2918 | "peerDependencies": {
2919 | "@babel/core": "^7.26.0",
2920 | "typescript": "^5.0.0",
2921 | "vitest": "^3.0.0"
2922 | },
2923 | "peerDependenciesMeta": {
2924 | "@babel/core": {
2925 | "optional": true
2926 | },
2927 | "typescript": {
2928 | "optional": true
2929 | },
2930 | "vitest": {
2931 | "optional": true
2932 | }
2933 | }
2934 | },
2935 | "node_modules/source-map-js": {
2936 | "version": "1.2.1",
2937 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2938 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2939 | "dev": true,
2940 | "license": "BSD-3-Clause",
2941 | "engines": {
2942 | "node": ">=0.10.0"
2943 | }
2944 | },
2945 | "node_modules/stackback": {
2946 | "version": "0.0.2",
2947 | "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
2948 | "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
2949 | "dev": true,
2950 | "license": "MIT"
2951 | },
2952 | "node_modules/std-env": {
2953 | "version": "3.8.1",
2954 | "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.1.tgz",
2955 | "integrity": "sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==",
2956 | "dev": true,
2957 | "license": "MIT"
2958 | },
2959 | "node_modules/string-width": {
2960 | "version": "4.2.3",
2961 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2962 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2963 | "dev": true,
2964 | "license": "MIT",
2965 | "dependencies": {
2966 | "emoji-regex": "^8.0.0",
2967 | "is-fullwidth-code-point": "^3.0.0",
2968 | "strip-ansi": "^6.0.1"
2969 | },
2970 | "engines": {
2971 | "node": ">=8"
2972 | }
2973 | },
2974 | "node_modules/strip-ansi": {
2975 | "version": "6.0.1",
2976 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2977 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2978 | "dev": true,
2979 | "license": "MIT",
2980 | "dependencies": {
2981 | "ansi-regex": "^5.0.1"
2982 | },
2983 | "engines": {
2984 | "node": ">=8"
2985 | }
2986 | },
2987 | "node_modules/strip-json-comments": {
2988 | "version": "3.1.1",
2989 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2990 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2991 | "dev": true,
2992 | "license": "MIT",
2993 | "engines": {
2994 | "node": ">=8"
2995 | },
2996 | "funding": {
2997 | "url": "https://github.com/sponsors/sindresorhus"
2998 | }
2999 | },
3000 | "node_modules/supports-color": {
3001 | "version": "7.2.0",
3002 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3003 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3004 | "dev": true,
3005 | "license": "MIT",
3006 | "dependencies": {
3007 | "has-flag": "^4.0.0"
3008 | },
3009 | "engines": {
3010 | "node": ">=8"
3011 | }
3012 | },
3013 | "node_modules/text-table": {
3014 | "version": "0.2.0",
3015 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3016 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
3017 | "dev": true,
3018 | "license": "MIT"
3019 | },
3020 | "node_modules/tinybench": {
3021 | "version": "2.9.0",
3022 | "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
3023 | "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
3024 | "dev": true,
3025 | "license": "MIT"
3026 | },
3027 | "node_modules/tinyexec": {
3028 | "version": "0.3.2",
3029 | "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
3030 | "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
3031 | "dev": true,
3032 | "license": "MIT"
3033 | },
3034 | "node_modules/tinypool": {
3035 | "version": "1.0.2",
3036 | "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
3037 | "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
3038 | "dev": true,
3039 | "license": "MIT",
3040 | "engines": {
3041 | "node": "^18.0.0 || >=20.0.0"
3042 | }
3043 | },
3044 | "node_modules/tinyrainbow": {
3045 | "version": "2.0.0",
3046 | "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
3047 | "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
3048 | "dev": true,
3049 | "license": "MIT",
3050 | "engines": {
3051 | "node": ">=14.0.0"
3052 | }
3053 | },
3054 | "node_modules/tinyspy": {
3055 | "version": "3.0.2",
3056 | "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
3057 | "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
3058 | "dev": true,
3059 | "license": "MIT",
3060 | "engines": {
3061 | "node": ">=14.0.0"
3062 | }
3063 | },
3064 | "node_modules/to-regex-range": {
3065 | "version": "5.0.1",
3066 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3067 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3068 | "dev": true,
3069 | "license": "MIT",
3070 | "dependencies": {
3071 | "is-number": "^7.0.0"
3072 | },
3073 | "engines": {
3074 | "node": ">=8.0"
3075 | }
3076 | },
3077 | "node_modules/ts-api-utils": {
3078 | "version": "1.4.3",
3079 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
3080 | "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
3081 | "dev": true,
3082 | "license": "MIT",
3083 | "engines": {
3084 | "node": ">=16"
3085 | },
3086 | "peerDependencies": {
3087 | "typescript": ">=4.2.0"
3088 | }
3089 | },
3090 | "node_modules/type-check": {
3091 | "version": "0.4.0",
3092 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
3093 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
3094 | "dev": true,
3095 | "license": "MIT",
3096 | "dependencies": {
3097 | "prelude-ls": "^1.2.1"
3098 | },
3099 | "engines": {
3100 | "node": ">= 0.8.0"
3101 | }
3102 | },
3103 | "node_modules/type-fest": {
3104 | "version": "0.20.2",
3105 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
3106 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
3107 | "dev": true,
3108 | "license": "(MIT OR CC0-1.0)",
3109 | "engines": {
3110 | "node": ">=10"
3111 | },
3112 | "funding": {
3113 | "url": "https://github.com/sponsors/sindresorhus"
3114 | }
3115 | },
3116 | "node_modules/typescript": {
3117 | "version": "5.8.2",
3118 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
3119 | "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
3120 | "dev": true,
3121 | "license": "Apache-2.0",
3122 | "bin": {
3123 | "tsc": "bin/tsc",
3124 | "tsserver": "bin/tsserver"
3125 | },
3126 | "engines": {
3127 | "node": ">=14.17"
3128 | }
3129 | },
3130 | "node_modules/uri-js": {
3131 | "version": "4.4.1",
3132 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3133 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3134 | "dev": true,
3135 | "license": "BSD-2-Clause",
3136 | "dependencies": {
3137 | "punycode": "^2.1.0"
3138 | }
3139 | },
3140 | "node_modules/vite": {
3141 | "version": "6.2.3",
3142 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.3.tgz",
3143 | "integrity": "sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==",
3144 | "dev": true,
3145 | "license": "MIT",
3146 | "dependencies": {
3147 | "esbuild": "^0.25.0",
3148 | "postcss": "^8.5.3",
3149 | "rollup": "^4.30.1"
3150 | },
3151 | "bin": {
3152 | "vite": "bin/vite.js"
3153 | },
3154 | "engines": {
3155 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
3156 | },
3157 | "funding": {
3158 | "url": "https://github.com/vitejs/vite?sponsor=1"
3159 | },
3160 | "optionalDependencies": {
3161 | "fsevents": "~2.3.3"
3162 | },
3163 | "peerDependencies": {
3164 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
3165 | "jiti": ">=1.21.0",
3166 | "less": "*",
3167 | "lightningcss": "^1.21.0",
3168 | "sass": "*",
3169 | "sass-embedded": "*",
3170 | "stylus": "*",
3171 | "sugarss": "*",
3172 | "terser": "^5.16.0",
3173 | "tsx": "^4.8.1",
3174 | "yaml": "^2.4.2"
3175 | },
3176 | "peerDependenciesMeta": {
3177 | "@types/node": {
3178 | "optional": true
3179 | },
3180 | "jiti": {
3181 | "optional": true
3182 | },
3183 | "less": {
3184 | "optional": true
3185 | },
3186 | "lightningcss": {
3187 | "optional": true
3188 | },
3189 | "sass": {
3190 | "optional": true
3191 | },
3192 | "sass-embedded": {
3193 | "optional": true
3194 | },
3195 | "stylus": {
3196 | "optional": true
3197 | },
3198 | "sugarss": {
3199 | "optional": true
3200 | },
3201 | "terser": {
3202 | "optional": true
3203 | },
3204 | "tsx": {
3205 | "optional": true
3206 | },
3207 | "yaml": {
3208 | "optional": true
3209 | }
3210 | }
3211 | },
3212 | "node_modules/vite-node": {
3213 | "version": "3.0.9",
3214 | "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.9.tgz",
3215 | "integrity": "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==",
3216 | "dev": true,
3217 | "license": "MIT",
3218 | "dependencies": {
3219 | "cac": "^6.7.14",
3220 | "debug": "^4.4.0",
3221 | "es-module-lexer": "^1.6.0",
3222 | "pathe": "^2.0.3",
3223 | "vite": "^5.0.0 || ^6.0.0"
3224 | },
3225 | "bin": {
3226 | "vite-node": "vite-node.mjs"
3227 | },
3228 | "engines": {
3229 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
3230 | },
3231 | "funding": {
3232 | "url": "https://opencollective.com/vitest"
3233 | }
3234 | },
3235 | "node_modules/vitest": {
3236 | "version": "3.0.9",
3237 | "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.9.tgz",
3238 | "integrity": "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==",
3239 | "dev": true,
3240 | "license": "MIT",
3241 | "dependencies": {
3242 | "@vitest/expect": "3.0.9",
3243 | "@vitest/mocker": "3.0.9",
3244 | "@vitest/pretty-format": "^3.0.9",
3245 | "@vitest/runner": "3.0.9",
3246 | "@vitest/snapshot": "3.0.9",
3247 | "@vitest/spy": "3.0.9",
3248 | "@vitest/utils": "3.0.9",
3249 | "chai": "^5.2.0",
3250 | "debug": "^4.4.0",
3251 | "expect-type": "^1.1.0",
3252 | "magic-string": "^0.30.17",
3253 | "pathe": "^2.0.3",
3254 | "std-env": "^3.8.0",
3255 | "tinybench": "^2.9.0",
3256 | "tinyexec": "^0.3.2",
3257 | "tinypool": "^1.0.2",
3258 | "tinyrainbow": "^2.0.0",
3259 | "vite": "^5.0.0 || ^6.0.0",
3260 | "vite-node": "3.0.9",
3261 | "why-is-node-running": "^2.3.0"
3262 | },
3263 | "bin": {
3264 | "vitest": "vitest.mjs"
3265 | },
3266 | "engines": {
3267 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
3268 | },
3269 | "funding": {
3270 | "url": "https://opencollective.com/vitest"
3271 | },
3272 | "peerDependencies": {
3273 | "@edge-runtime/vm": "*",
3274 | "@types/debug": "^4.1.12",
3275 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
3276 | "@vitest/browser": "3.0.9",
3277 | "@vitest/ui": "3.0.9",
3278 | "happy-dom": "*",
3279 | "jsdom": "*"
3280 | },
3281 | "peerDependenciesMeta": {
3282 | "@edge-runtime/vm": {
3283 | "optional": true
3284 | },
3285 | "@types/debug": {
3286 | "optional": true
3287 | },
3288 | "@types/node": {
3289 | "optional": true
3290 | },
3291 | "@vitest/browser": {
3292 | "optional": true
3293 | },
3294 | "@vitest/ui": {
3295 | "optional": true
3296 | },
3297 | "happy-dom": {
3298 | "optional": true
3299 | },
3300 | "jsdom": {
3301 | "optional": true
3302 | }
3303 | }
3304 | },
3305 | "node_modules/which": {
3306 | "version": "2.0.2",
3307 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3308 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3309 | "dev": true,
3310 | "license": "ISC",
3311 | "dependencies": {
3312 | "isexe": "^2.0.0"
3313 | },
3314 | "bin": {
3315 | "node-which": "bin/node-which"
3316 | },
3317 | "engines": {
3318 | "node": ">= 8"
3319 | }
3320 | },
3321 | "node_modules/why-is-node-running": {
3322 | "version": "2.3.0",
3323 | "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
3324 | "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
3325 | "dev": true,
3326 | "license": "MIT",
3327 | "dependencies": {
3328 | "siginfo": "^2.0.0",
3329 | "stackback": "0.0.2"
3330 | },
3331 | "bin": {
3332 | "why-is-node-running": "cli.js"
3333 | },
3334 | "engines": {
3335 | "node": ">=8"
3336 | }
3337 | },
3338 | "node_modules/word-wrap": {
3339 | "version": "1.2.5",
3340 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
3341 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
3342 | "dev": true,
3343 | "license": "MIT",
3344 | "engines": {
3345 | "node": ">=0.10.0"
3346 | }
3347 | },
3348 | "node_modules/wrap-ansi": {
3349 | "version": "7.0.0",
3350 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3351 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3352 | "dev": true,
3353 | "license": "MIT",
3354 | "dependencies": {
3355 | "ansi-styles": "^4.0.0",
3356 | "string-width": "^4.1.0",
3357 | "strip-ansi": "^6.0.0"
3358 | },
3359 | "engines": {
3360 | "node": ">=10"
3361 | },
3362 | "funding": {
3363 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
3364 | }
3365 | },
3366 | "node_modules/wrappy": {
3367 | "version": "1.0.2",
3368 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3369 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
3370 | "dev": true,
3371 | "license": "ISC"
3372 | },
3373 | "node_modules/y18n": {
3374 | "version": "5.0.8",
3375 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
3376 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
3377 | "dev": true,
3378 | "license": "ISC",
3379 | "engines": {
3380 | "node": ">=10"
3381 | }
3382 | },
3383 | "node_modules/yargs": {
3384 | "version": "17.7.2",
3385 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
3386 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
3387 | "dev": true,
3388 | "license": "MIT",
3389 | "dependencies": {
3390 | "cliui": "^8.0.1",
3391 | "escalade": "^3.1.1",
3392 | "get-caller-file": "^2.0.5",
3393 | "require-directory": "^2.1.1",
3394 | "string-width": "^4.2.3",
3395 | "y18n": "^5.0.5",
3396 | "yargs-parser": "^21.1.1"
3397 | },
3398 | "engines": {
3399 | "node": ">=12"
3400 | }
3401 | },
3402 | "node_modules/yargs-parser": {
3403 | "version": "21.1.1",
3404 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
3405 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
3406 | "dev": true,
3407 | "license": "ISC",
3408 | "engines": {
3409 | "node": ">=12"
3410 | }
3411 | },
3412 | "node_modules/yocto-queue": {
3413 | "version": "0.1.0",
3414 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3415 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3416 | "dev": true,
3417 | "license": "MIT",
3418 | "engines": {
3419 | "node": ">=10"
3420 | },
3421 | "funding": {
3422 | "url": "https://github.com/sponsors/sindresorhus"
3423 | }
3424 | },
3425 | "node_modules/youch": {
3426 | "version": "4.1.0-beta.5",
3427 | "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.5.tgz",
3428 | "integrity": "sha512-92+bvKtAjm18S2o+IP0aLBpLtzY332Ji9geNLp07cLgHsK3aHVjWrg2eyE5LIKMv6j+GWu+Ehx4My7BTXxMbsA==",
3429 | "dev": true,
3430 | "license": "MIT",
3431 | "dependencies": {
3432 | "@poppinss/dumper": "^0.6.2",
3433 | "@speed-highlight/core": "^1.2.7",
3434 | "cookie": "^1.0.2",
3435 | "youch-core": "^0.3.1"
3436 | },
3437 | "engines": {
3438 | "node": ">=20.6.0"
3439 | }
3440 | },
3441 | "node_modules/youch-core": {
3442 | "version": "0.3.2",
3443 | "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.2.tgz",
3444 | "integrity": "sha512-fusrlIMLeRvTFYLUjJ9KzlGC3N+6MOPJ68HNj/yJv2nz7zq8t4HEviLms2gkdRPUS7F5rZ5n+pYx9r88m6IE1g==",
3445 | "dev": true,
3446 | "license": "MIT",
3447 | "dependencies": {
3448 | "@poppinss/exception": "^1.2.0",
3449 | "error-stack-parser-es": "^1.0.5"
3450 | },
3451 | "engines": {
3452 | "node": ">=18"
3453 | }
3454 | },
3455 | "node_modules/zod": {
3456 | "version": "3.24.1",
3457 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz",
3458 | "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==",
3459 | "dev": true,
3460 | "license": "MIT",
3461 | "funding": {
3462 | "url": "https://github.com/sponsors/colinhacks"
3463 | }
3464 | }
3465 | }
3466 | }
3467 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eslint-plugin-react-component-name",
3 | "private": true,
4 | "version": "0.1.0",
5 | "type": "module",
6 | "description": "Eslint plugin for converting decorated anonymous functions to named functions.",
7 | "exports": "./src/index.ts",
8 | "scripts": {
9 | "build": "smartbundle",
10 | "publish": "tsc && vitest run && smartbundle && cd dist && npm publish --access=public",
11 | "test": "vitest"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "git+https://github.com/artalar/eslint-plugin-react-component-name.git"
16 | },
17 | "keywords": [
18 | "react",
19 | "eslint",
20 | "react-eslint"
21 | ],
22 | "author": "artalar",
23 | "license": "MIT",
24 | "bugs": {
25 | "url": "https://github.com/artalar/eslint-plugin-react-component-name/issues"
26 | },
27 | "homepage": "https://github.com/artalar/eslint-plugin-react-component-name#readme",
28 | "dependencies": {
29 | "@types/eslint": "^8.56.12"
30 | },
31 | "devDependencies": {
32 | "@typescript-eslint/eslint-plugin": "^7.18.0",
33 | "@typescript-eslint/parser": "^7.18.0",
34 | "@typescript-eslint/rule-tester": "^7.18.0",
35 | "eslint": "^8.57.1",
36 | "smartbundle": "^0.14.1",
37 | "typescript": "^5.8.2",
38 | "vitest": "^3.0.9"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import reactComponentNameRule from "./rules/react-component-name.js";
2 | import type {ESLint} from "eslint";
3 |
4 | export const rules = {
5 | "react-component-name": reactComponentNameRule,
6 | };
7 |
8 | export const flatPlugin = {
9 | meta: {
10 | name: "react-component-name",
11 | version: "0.1.0",
12 | },
13 | rules,
14 | } satisfies ESLint.Plugin;
15 |
16 | export const configs = {
17 | recommended: {
18 | parserOptions: {
19 | ecmaFeatures: {
20 | jsx: true,
21 | },
22 | },
23 | rules: {
24 | "react-component-name/react-component-name": [
25 | 2,
26 | { targets: ["memo", "forwardRef"] },
27 | ],
28 | },
29 | },
30 |
31 | flat: {
32 | recommended: {
33 | plugins: {
34 | 'react-component-name': flatPlugin,
35 | },
36 | rules: {
37 | "react-component-name/react-component-name": [
38 | 2,
39 | { targets: ["memo", "forwardRef"] },
40 | ],
41 | },
42 | languageOptions: {
43 | parserOptions: {
44 | ecmaFeatures: {
45 | jsx: true,
46 | },
47 | },
48 | },
49 | },
50 | },
51 | } satisfies {
52 | recommended: import('eslint').Linter.LegacyConfig,
53 | flat: {
54 | recommended: import('eslint').Linter.FlatConfig,
55 | }
56 | };
57 |
--------------------------------------------------------------------------------
/src/rules/react-component-name.test.ts:
--------------------------------------------------------------------------------
1 | import { RuleTester } from "@typescript-eslint/rule-tester";
2 | import * as vitest from "vitest";
3 | import rule from "./react-component-name.js";
4 |
5 | RuleTester.afterAll = vitest.afterAll;
6 | RuleTester.it = vitest.it;
7 | RuleTester.itOnly = vitest.it.only;
8 | RuleTester.describe = vitest.describe;
9 |
10 | const ruleTester = new RuleTester({
11 | parser: "@typescript-eslint/parser",
12 | parserOptions: {
13 | ecmaVersion: 2020,
14 | sourceType: "module",
15 | ecmaFeatures: {
16 | jsx: true,
17 | },
18 | },
19 | });
20 |
21 | const options = [{ targets: ["memo", "forwardRef", "observer"] }];
22 | const errors = [{ messageId: "noAnonymousFunction" }];
23 |
24 | ruleTester.run(
25 | "react-component-name",
26 | // @ts-ignore TODO
27 | rule,
28 | {
29 | valid: [
30 | {
31 | code: "const MyComponent = () => ;",
32 | options,
33 | },
34 | {
35 | code: "const MyComponent = React.memo(function MyComponent() { return ; });",
36 | options,
37 | },
38 | {
39 | code: "const MyComponent = React.forwardRef(function MyComponent() { return ; });",
40 | options,
41 | },
42 | {
43 | code: "const MyComponent = observer(function MyComponent() { return ; });",
44 | options,
45 | },
46 | {
47 | code: "const MyComponent = observer(SomeOtherComponent);",
48 | options,
49 | },
50 | {
51 | code: "export default memo(function MyComponent() { return ; });",
52 | options,
53 | },
54 | {
55 | code: "const MyComponent = memo(forwardRef(SomeOtherComponent));",
56 | options,
57 | },
58 | {
59 | code: "const MyComponent = memo(forwardRef(function MyComponent() { return ; }));",
60 | options,
61 | },
62 | ],
63 | invalid: [
64 | {
65 | code: "const MyComponent = React.memo(() => );",
66 | options,
67 | errors,
68 | output:
69 | "const MyComponent = React.memo(function MyComponent() { return ; });",
70 | },
71 | {
72 | code: "const MyComponent = React.forwardRef((props, ref) => );",
73 | options,
74 | errors,
75 | output:
76 | "const MyComponent = React.forwardRef(function MyComponent(props, ref) { return ; });",
77 | },
78 | {
79 | code: "const MyComponent = observer(function Lalala(props) { return {props.text}
; });",
80 | options,
81 | errors,
82 | output:
83 | "const MyComponent = observer(function MyComponent(props) { return {props.text}
; });",
84 | },
85 | {
86 | code: "const MyComponent = observer(() => { return ; });",
87 | options,
88 | errors,
89 | output:
90 | "const MyComponent = observer(function MyComponent() { return ; });",
91 | },
92 | {
93 | code: "export default observer(function () { return ; });",
94 | options,
95 | errors,
96 | },
97 | {
98 | code: `const MyComponent = observer(
99 | ({text}: {text: string}) => {text}
,
100 | );`,
101 | options,
102 | errors,
103 | output: `const MyComponent = observer(
104 | function MyComponent({text}: {text: string}) { return {text}
; },
105 | );`,
106 | },
107 | {
108 | code: "const MyComponent = memo(forwardRef((props, ref) => ));",
109 | options,
110 | errors,
111 | output:
112 | "const MyComponent = memo(forwardRef(function MyComponent(props, ref) { return ; }));",
113 | },
114 | ],
115 | }
116 | );
117 |
--------------------------------------------------------------------------------
/src/rules/react-component-name.ts:
--------------------------------------------------------------------------------
1 | import type { Rule } from "eslint";
2 | import type { FunctionExpression, ArrowFunctionExpression } from "estree";
3 |
4 | const handler =
5 | (context: Rule.RuleContext, target: string) =>
6 | (node: FunctionExpression | ArrowFunctionExpression): void => {
7 | // @ts-ignore TODO
8 | let parent = node.parent?.parent;
9 | while (parent && parent.type !== "VariableDeclarator") {
10 | parent = parent.parent;
11 | }
12 | // @ts-ignore TODO
13 | const parentVarName = parent?.id?.name;
14 |
15 | // @ts-ignore TODO
16 | const functionName = node.id?.name;
17 |
18 | if (parentVarName ? functionName !== parentVarName : !functionName) {
19 | context.report({
20 | node,
21 | messageId: "noAnonymousFunction",
22 | fix:
23 | parentVarName &&
24 | ((fixer) => {
25 | const sourceCode = context.getSourceCode();
26 | const newName = parentVarName;
27 | const params = node.params
28 | .map((param) => sourceCode.getText(param))
29 | .join(", ");
30 |
31 | if (node.type === "ArrowFunctionExpression") {
32 | const arrowBody = sourceCode.getText(node.body);
33 | const needsBrackets = node.body.type !== "BlockStatement";
34 | const newBody = needsBrackets
35 | ? `{ return ${arrowBody}; }`
36 | : arrowBody;
37 | return fixer.replaceText(
38 | node,
39 | `function ${newName}(${params}) ${newBody}`
40 | );
41 | }
42 |
43 | const functionBody = sourceCode.getText(node.body);
44 | return fixer.replaceText(
45 | node,
46 | `function ${newName}(${params}) ${functionBody}`
47 | );
48 | }),
49 | });
50 | }
51 | };
52 |
53 | const create: Rule.RuleModule["create"] = (context) => {
54 | const options = context.options[0] as { targets: string[] } | undefined;
55 | const targets = options?.targets || ["memo", "forwardRef"];
56 |
57 | const rules: Rule.RuleListener = {};
58 | for (const target of targets) {
59 | const selector = `CallExpression[callee.name="${target}"] > :function, CallExpression[callee.object.name="React"][callee.property.name="${target}"] > :function`;
60 | rules[selector] = handler(context, target);
61 | }
62 |
63 | return rules;
64 | };
65 |
66 | const rule = {
67 | create,
68 | meta: {
69 | type: "problem",
70 | docs: {
71 | description:
72 | "Ensure named functions are used with specific React helpers",
73 | category: "Best Practices",
74 | recommended: true,
75 | },
76 | messages: {
77 | noAnonymousFunction:
78 | "Function should have a name matching its parent variable.",
79 | },
80 | fixable: "code",
81 | schema: [
82 | {
83 | type: "object",
84 | properties: {
85 | targets: {
86 | type: "array",
87 | items: { type: "string" },
88 | description:
89 | "List of a component decorators to enforce named functions.",
90 | },
91 | },
92 | additionalProperties: false,
93 | },
94 | ],
95 | },
96 | } satisfies Rule.RuleModule;
97 |
98 | export default rule;
99 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": "src",
4 | "target": "ESNext",
5 | "module": "NodeNext",
6 | "moduleResolution": "NodeNext",
7 | "declaration": true,
8 | "strict": true,
9 | "allowSyntheticDefaultImports": true,
10 | "esModuleInterop": true,
11 | "noUncheckedIndexedAccess": true,
12 | "noEmit": true,
13 | "skipLibCheck": true,
14 | "verbatimModuleSyntax": true
15 | },
16 | "exclude": ["node_modules", "dist"]
17 | }
18 |
--------------------------------------------------------------------------------