···
1
1
+
on:
2
2
+
push:
3
3
+
branches: [master]
4
4
+
paths:
5
5
+
- "website/**"
6
6
+
- ".github/workflows/website.yml"
7
7
+
workflow_dispatch:
8
8
+
name: Website
9
9
+
jobs:
10
10
+
publish:
11
11
+
name: "Build and Publish Image"
12
12
+
runs-on: ubuntu-latest
13
13
+
permissions:
14
14
+
contents: read
15
15
+
packages: write
16
16
+
steps:
17
17
+
- uses: actions/checkout@v4
18
18
+
- uses: docker/setup-qemu-action@v3
19
19
+
- uses: docker/setup-buildx-action@v3
20
20
+
- name: Log in to GHCR
21
21
+
uses: docker/login-action@v3
22
22
+
with:
23
23
+
registry: ghcr.io
24
24
+
username: ${{ github.actor }}
25
25
+
password: ${{ secrets.GITHUB_TOKEN }}
26
26
+
- name: Extract image metadata
27
27
+
id: meta
28
28
+
uses: docker/metadata-action@v5
29
29
+
with:
30
30
+
images: ghcr.io/${{ github.repository_owner }}/switchyard-website
31
31
+
tags: |
32
32
+
type=raw,value=latest
33
33
+
type=sha
34
34
+
- name: Build and push
35
35
+
uses: docker/build-push-action@v6
36
36
+
with:
37
37
+
context: website
38
38
+
platforms: linux/amd64,linux/arm64
39
39
+
push: true
40
40
+
tags: ${{ steps.meta.outputs.tags }}
41
41
+
labels: ${{ steps.meta.outputs.labels }}
···
1
1
+
node_modules
2
2
+
dist
···
1
1
+
node_modules
2
2
+
dist
3
3
+
public/og-image.png
···
1
1
+
FROM node:22-alpine AS build
2
2
+
WORKDIR /app
3
3
+
COPY package.json package-lock.json ./
4
4
+
RUN npm ci
5
5
+
COPY . .
6
6
+
RUN npm run build
7
7
+
8
8
+
FROM nginx:alpine
9
9
+
COPY --from=build /app/dist /usr/share/nginx/html
10
10
+
EXPOSE 80
···
1
1
+
# Switchyard Website
2
2
+
3
3
+
Landing page for [Switchyard](https://github.com/alyraffauf/switchyard), a rules-based URL router for Linux.
4
4
+
5
5
+
Built with React + Vite. Published as a container image to `ghcr.io/alyraffauf/switchyard-website`.
6
6
+
7
7
+
## Development
8
8
+
9
9
+
```bash
10
10
+
npm install
11
11
+
npm run dev
12
12
+
```
13
13
+
14
14
+
## Build
15
15
+
16
16
+
```bash
17
17
+
npm run build
18
18
+
```
19
19
+
20
20
+
Outputs to `dist/`.
21
21
+
22
22
+
## Container
23
23
+
24
24
+
```bash
25
25
+
docker build -t switchyard-website .
26
26
+
docker run --rm -p 8080:80 switchyard-website
27
27
+
```
···
1
1
+
import js from '@eslint/js'
2
2
+
import globals from 'globals'
3
3
+
import reactHooks from 'eslint-plugin-react-hooks'
4
4
+
import reactRefresh from 'eslint-plugin-react-refresh'
5
5
+
import tseslint from 'typescript-eslint'
6
6
+
import { defineConfig, globalIgnores } from 'eslint/config'
7
7
+
8
8
+
export default defineConfig([
9
9
+
globalIgnores(['dist']),
10
10
+
{
11
11
+
files: ['**/*.{ts,tsx}'],
12
12
+
extends: [
13
13
+
js.configs.recommended,
14
14
+
tseslint.configs.recommended,
15
15
+
reactHooks.configs.flat.recommended,
16
16
+
reactRefresh.configs.vite,
17
17
+
],
18
18
+
languageOptions: {
19
19
+
ecmaVersion: 2020,
20
20
+
globals: globals.browser,
21
21
+
},
22
22
+
},
23
23
+
])
···
1
1
+
<!doctype html>
2
2
+
<html lang="en">
3
3
+
<head>
4
4
+
<meta charset="UTF-8" />
5
5
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
+
<title>Switchyard - A Rules-Based Browser Launcher for Linux</title>
7
7
+
<meta
8
8
+
name="description"
9
9
+
content="Work links in Chrome. Personal links in Firefox."
10
10
+
/>
11
11
+
12
12
+
<!-- Favicon -->
13
13
+
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
14
14
+
<link rel="apple-touch-icon" href="/icon.svg" />
15
15
+
16
16
+
<!-- Open Graph / Twitter -->
17
17
+
<meta property="og:type" content="website" />
18
18
+
<meta property="og:url" content="https://switchyard.aly.codes/" />
19
19
+
<meta
20
20
+
property="og:title"
21
21
+
content="Switchyard - A Rules-Based Browser Launcher for Linux"
22
22
+
/>
23
23
+
<meta
24
24
+
property="og:description"
25
25
+
content="Work links in Chrome. Personal links in Firefox."
26
26
+
/>
27
27
+
<meta
28
28
+
property="og:image"
29
29
+
content="https://switchyard.aly.codes/og-image.png"
30
30
+
/>
31
31
+
<meta name="twitter:card" content="summary_large_image" />
32
32
+
33
33
+
<!-- Additional SEO -->
34
34
+
<meta name="theme-color" content="#4f895d" />
35
35
+
<link rel="canonical" href="https://switchyard.aly.codes/" />
36
36
+
</head>
37
37
+
<body>
38
38
+
<div id="root"></div>
39
39
+
<script type="module" src="/src/main.tsx"></script>
40
40
+
</body>
41
41
+
</html>
···
1
1
+
{
2
2
+
"name": "website",
3
3
+
"version": "0.0.0",
4
4
+
"lockfileVersion": 3,
5
5
+
"requires": true,
6
6
+
"packages": {
7
7
+
"": {
8
8
+
"name": "website",
9
9
+
"version": "0.0.0",
10
10
+
"dependencies": {
11
11
+
"react": "^19.2.0",
12
12
+
"react-dom": "^19.2.0"
13
13
+
},
14
14
+
"devDependencies": {
15
15
+
"@eslint/js": "^9.39.1",
16
16
+
"@resvg/resvg-js": "^2.6.2",
17
17
+
"@tailwindcss/vite": "^4.1.18",
18
18
+
"@types/node": "^24.10.1",
19
19
+
"@types/react": "^19.2.5",
20
20
+
"@types/react-dom": "^19.2.3",
21
21
+
"@vitejs/plugin-react": "^5.1.1",
22
22
+
"eslint": "^9.39.1",
23
23
+
"eslint-plugin-react-hooks": "^7.0.1",
24
24
+
"eslint-plugin-react-refresh": "^0.4.24",
25
25
+
"globals": "^16.5.0",
26
26
+
"satori": "^0.19.1",
27
27
+
"tailwindcss": "^4.1.18",
28
28
+
"typescript": "~5.9.3",
29
29
+
"typescript-eslint": "^8.46.4",
30
30
+
"vite": "^7.2.4"
31
31
+
}
32
32
+
},
33
33
+
"node_modules/@babel/code-frame": {
34
34
+
"version": "7.28.6",
35
35
+
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz",
36
36
+
"integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==",
37
37
+
"dev": true,
38
38
+
"license": "MIT",
39
39
+
"dependencies": {
40
40
+
"@babel/helper-validator-identifier": "^7.28.5",
41
41
+
"js-tokens": "^4.0.0",
42
42
+
"picocolors": "^1.1.1"
43
43
+
},
44
44
+
"engines": {
45
45
+
"node": ">=6.9.0"
46
46
+
}
47
47
+
},
48
48
+
"node_modules/@babel/compat-data": {
49
49
+
"version": "7.28.6",
50
50
+
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz",
51
51
+
"integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==",
52
52
+
"dev": true,
53
53
+
"license": "MIT",
54
54
+
"engines": {
55
55
+
"node": ">=6.9.0"
56
56
+
}
57
57
+
},
58
58
+
"node_modules/@babel/core": {
59
59
+
"version": "7.28.6",
60
60
+
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz",
61
61
+
"integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==",
62
62
+
"dev": true,
63
63
+
"license": "MIT",
64
64
+
"dependencies": {
65
65
+
"@babel/code-frame": "^7.28.6",
66
66
+
"@babel/generator": "^7.28.6",
67
67
+
"@babel/helper-compilation-targets": "^7.28.6",
68
68
+
"@babel/helper-module-transforms": "^7.28.6",
69
69
+
"@babel/helpers": "^7.28.6",
70
70
+
"@babel/parser": "^7.28.6",
71
71
+
"@babel/template": "^7.28.6",
72
72
+
"@babel/traverse": "^7.28.6",
73
73
+
"@babel/types": "^7.28.6",
74
74
+
"@jridgewell/remapping": "^2.3.5",
75
75
+
"convert-source-map": "^2.0.0",
76
76
+
"debug": "^4.1.0",
77
77
+
"gensync": "^1.0.0-beta.2",
78
78
+
"json5": "^2.2.3",
79
79
+
"semver": "^6.3.1"
80
80
+
},
81
81
+
"engines": {
82
82
+
"node": ">=6.9.0"
83
83
+
},
84
84
+
"funding": {
85
85
+
"type": "opencollective",
86
86
+
"url": "https://opencollective.com/babel"
87
87
+
}
88
88
+
},
89
89
+
"node_modules/@babel/generator": {
90
90
+
"version": "7.28.6",
91
91
+
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz",
92
92
+
"integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==",
93
93
+
"dev": true,
94
94
+
"license": "MIT",
95
95
+
"dependencies": {
96
96
+
"@babel/parser": "^7.28.6",
97
97
+
"@babel/types": "^7.28.6",
98
98
+
"@jridgewell/gen-mapping": "^0.3.12",
99
99
+
"@jridgewell/trace-mapping": "^0.3.28",
100
100
+
"jsesc": "^3.0.2"
101
101
+
},
102
102
+
"engines": {
103
103
+
"node": ">=6.9.0"
104
104
+
}
105
105
+
},
106
106
+
"node_modules/@babel/helper-compilation-targets": {
107
107
+
"version": "7.28.6",
108
108
+
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
109
109
+
"integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
110
110
+
"dev": true,
111
111
+
"license": "MIT",
112
112
+
"dependencies": {
113
113
+
"@babel/compat-data": "^7.28.6",
114
114
+
"@babel/helper-validator-option": "^7.27.1",
115
115
+
"browserslist": "^4.24.0",
116
116
+
"lru-cache": "^5.1.1",
117
117
+
"semver": "^6.3.1"
118
118
+
},
119
119
+
"engines": {
120
120
+
"node": ">=6.9.0"
121
121
+
}
122
122
+
},
123
123
+
"node_modules/@babel/helper-globals": {
124
124
+
"version": "7.28.0",
125
125
+
"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
126
126
+
"integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
127
127
+
"dev": true,
128
128
+
"license": "MIT",
129
129
+
"engines": {
130
130
+
"node": ">=6.9.0"
131
131
+
}
132
132
+
},
133
133
+
"node_modules/@babel/helper-module-imports": {
134
134
+
"version": "7.28.6",
135
135
+
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
136
136
+
"integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
137
137
+
"dev": true,
138
138
+
"license": "MIT",
139
139
+
"dependencies": {
140
140
+
"@babel/traverse": "^7.28.6",
141
141
+
"@babel/types": "^7.28.6"
142
142
+
},
143
143
+
"engines": {
144
144
+
"node": ">=6.9.0"
145
145
+
}
146
146
+
},
147
147
+
"node_modules/@babel/helper-module-transforms": {
148
148
+
"version": "7.28.6",
149
149
+
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
150
150
+
"integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
151
151
+
"dev": true,
152
152
+
"license": "MIT",
153
153
+
"dependencies": {
154
154
+
"@babel/helper-module-imports": "^7.28.6",
155
155
+
"@babel/helper-validator-identifier": "^7.28.5",
156
156
+
"@babel/traverse": "^7.28.6"
157
157
+
},
158
158
+
"engines": {
159
159
+
"node": ">=6.9.0"
160
160
+
},
161
161
+
"peerDependencies": {
162
162
+
"@babel/core": "^7.0.0"
163
163
+
}
164
164
+
},
165
165
+
"node_modules/@babel/helper-plugin-utils": {
166
166
+
"version": "7.28.6",
167
167
+
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
168
168
+
"integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
169
169
+
"dev": true,
170
170
+
"license": "MIT",
171
171
+
"engines": {
172
172
+
"node": ">=6.9.0"
173
173
+
}
174
174
+
},
175
175
+
"node_modules/@babel/helper-string-parser": {
176
176
+
"version": "7.27.1",
177
177
+
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
178
178
+
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
179
179
+
"dev": true,
180
180
+
"license": "MIT",
181
181
+
"engines": {
182
182
+
"node": ">=6.9.0"
183
183
+
}
184
184
+
},
185
185
+
"node_modules/@babel/helper-validator-identifier": {
186
186
+
"version": "7.28.5",
187
187
+
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
188
188
+
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
189
189
+
"dev": true,
190
190
+
"license": "MIT",
191
191
+
"engines": {
192
192
+
"node": ">=6.9.0"
193
193
+
}
194
194
+
},
195
195
+
"node_modules/@babel/helper-validator-option": {
196
196
+
"version": "7.27.1",
197
197
+
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
198
198
+
"integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
199
199
+
"dev": true,
200
200
+
"license": "MIT",
201
201
+
"engines": {
202
202
+
"node": ">=6.9.0"
203
203
+
}
204
204
+
},
205
205
+
"node_modules/@babel/helpers": {
206
206
+
"version": "7.28.6",
207
207
+
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz",
208
208
+
"integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==",
209
209
+
"dev": true,
210
210
+
"license": "MIT",
211
211
+
"dependencies": {
212
212
+
"@babel/template": "^7.28.6",
213
213
+
"@babel/types": "^7.28.6"
214
214
+
},
215
215
+
"engines": {
216
216
+
"node": ">=6.9.0"
217
217
+
}
218
218
+
},
219
219
+
"node_modules/@babel/parser": {
220
220
+
"version": "7.28.6",
221
221
+
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz",
222
222
+
"integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
223
223
+
"dev": true,
224
224
+
"license": "MIT",
225
225
+
"dependencies": {
226
226
+
"@babel/types": "^7.28.6"
227
227
+
},
228
228
+
"bin": {
229
229
+
"parser": "bin/babel-parser.js"
230
230
+
},
231
231
+
"engines": {
232
232
+
"node": ">=6.0.0"
233
233
+
}
234
234
+
},
235
235
+
"node_modules/@babel/plugin-transform-react-jsx-self": {
236
236
+
"version": "7.27.1",
237
237
+
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
238
238
+
"integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
239
239
+
"dev": true,
240
240
+
"license": "MIT",
241
241
+
"dependencies": {
242
242
+
"@babel/helper-plugin-utils": "^7.27.1"
243
243
+
},
244
244
+
"engines": {
245
245
+
"node": ">=6.9.0"
246
246
+
},
247
247
+
"peerDependencies": {
248
248
+
"@babel/core": "^7.0.0-0"
249
249
+
}
250
250
+
},
251
251
+
"node_modules/@babel/plugin-transform-react-jsx-source": {
252
252
+
"version": "7.27.1",
253
253
+
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
254
254
+
"integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
255
255
+
"dev": true,
256
256
+
"license": "MIT",
257
257
+
"dependencies": {
258
258
+
"@babel/helper-plugin-utils": "^7.27.1"
259
259
+
},
260
260
+
"engines": {
261
261
+
"node": ">=6.9.0"
262
262
+
},
263
263
+
"peerDependencies": {
264
264
+
"@babel/core": "^7.0.0-0"
265
265
+
}
266
266
+
},
267
267
+
"node_modules/@babel/template": {
268
268
+
"version": "7.28.6",
269
269
+
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
270
270
+
"integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
271
271
+
"dev": true,
272
272
+
"license": "MIT",
273
273
+
"dependencies": {
274
274
+
"@babel/code-frame": "^7.28.6",
275
275
+
"@babel/parser": "^7.28.6",
276
276
+
"@babel/types": "^7.28.6"
277
277
+
},
278
278
+
"engines": {
279
279
+
"node": ">=6.9.0"
280
280
+
}
281
281
+
},
282
282
+
"node_modules/@babel/traverse": {
283
283
+
"version": "7.28.6",
284
284
+
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz",
285
285
+
"integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==",
286
286
+
"dev": true,
287
287
+
"license": "MIT",
288
288
+
"dependencies": {
289
289
+
"@babel/code-frame": "^7.28.6",
290
290
+
"@babel/generator": "^7.28.6",
291
291
+
"@babel/helper-globals": "^7.28.0",
292
292
+
"@babel/parser": "^7.28.6",
293
293
+
"@babel/template": "^7.28.6",
294
294
+
"@babel/types": "^7.28.6",
295
295
+
"debug": "^4.3.1"
296
296
+
},
297
297
+
"engines": {
298
298
+
"node": ">=6.9.0"
299
299
+
}
300
300
+
},
301
301
+
"node_modules/@babel/types": {
302
302
+
"version": "7.28.6",
303
303
+
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz",
304
304
+
"integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
305
305
+
"dev": true,
306
306
+
"license": "MIT",
307
307
+
"dependencies": {
308
308
+
"@babel/helper-string-parser": "^7.27.1",
309
309
+
"@babel/helper-validator-identifier": "^7.28.5"
310
310
+
},
311
311
+
"engines": {
312
312
+
"node": ">=6.9.0"
313
313
+
}
314
314
+
},
315
315
+
"node_modules/@esbuild/aix-ppc64": {
316
316
+
"version": "0.27.2",
317
317
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz",
318
318
+
"integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==",
319
319
+
"cpu": [
320
320
+
"ppc64"
321
321
+
],
322
322
+
"dev": true,
323
323
+
"license": "MIT",
324
324
+
"optional": true,
325
325
+
"os": [
326
326
+
"aix"
327
327
+
],
328
328
+
"engines": {
329
329
+
"node": ">=18"
330
330
+
}
331
331
+
},
332
332
+
"node_modules/@esbuild/android-arm": {
333
333
+
"version": "0.27.2",
334
334
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz",
335
335
+
"integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==",
336
336
+
"cpu": [
337
337
+
"arm"
338
338
+
],
339
339
+
"dev": true,
340
340
+
"license": "MIT",
341
341
+
"optional": true,
342
342
+
"os": [
343
343
+
"android"
344
344
+
],
345
345
+
"engines": {
346
346
+
"node": ">=18"
347
347
+
}
348
348
+
},
349
349
+
"node_modules/@esbuild/android-arm64": {
350
350
+
"version": "0.27.2",
351
351
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz",
352
352
+
"integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==",
353
353
+
"cpu": [
354
354
+
"arm64"
355
355
+
],
356
356
+
"dev": true,
357
357
+
"license": "MIT",
358
358
+
"optional": true,
359
359
+
"os": [
360
360
+
"android"
361
361
+
],
362
362
+
"engines": {
363
363
+
"node": ">=18"
364
364
+
}
365
365
+
},
366
366
+
"node_modules/@esbuild/android-x64": {
367
367
+
"version": "0.27.2",
368
368
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz",
369
369
+
"integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==",
370
370
+
"cpu": [
371
371
+
"x64"
372
372
+
],
373
373
+
"dev": true,
374
374
+
"license": "MIT",
375
375
+
"optional": true,
376
376
+
"os": [
377
377
+
"android"
378
378
+
],
379
379
+
"engines": {
380
380
+
"node": ">=18"
381
381
+
}
382
382
+
},
383
383
+
"node_modules/@esbuild/darwin-arm64": {
384
384
+
"version": "0.27.2",
385
385
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz",
386
386
+
"integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==",
387
387
+
"cpu": [
388
388
+
"arm64"
389
389
+
],
390
390
+
"dev": true,
391
391
+
"license": "MIT",
392
392
+
"optional": true,
393
393
+
"os": [
394
394
+
"darwin"
395
395
+
],
396
396
+
"engines": {
397
397
+
"node": ">=18"
398
398
+
}
399
399
+
},
400
400
+
"node_modules/@esbuild/darwin-x64": {
401
401
+
"version": "0.27.2",
402
402
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz",
403
403
+
"integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==",
404
404
+
"cpu": [
405
405
+
"x64"
406
406
+
],
407
407
+
"dev": true,
408
408
+
"license": "MIT",
409
409
+
"optional": true,
410
410
+
"os": [
411
411
+
"darwin"
412
412
+
],
413
413
+
"engines": {
414
414
+
"node": ">=18"
415
415
+
}
416
416
+
},
417
417
+
"node_modules/@esbuild/freebsd-arm64": {
418
418
+
"version": "0.27.2",
419
419
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz",
420
420
+
"integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==",
421
421
+
"cpu": [
422
422
+
"arm64"
423
423
+
],
424
424
+
"dev": true,
425
425
+
"license": "MIT",
426
426
+
"optional": true,
427
427
+
"os": [
428
428
+
"freebsd"
429
429
+
],
430
430
+
"engines": {
431
431
+
"node": ">=18"
432
432
+
}
433
433
+
},
434
434
+
"node_modules/@esbuild/freebsd-x64": {
435
435
+
"version": "0.27.2",
436
436
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz",
437
437
+
"integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==",
438
438
+
"cpu": [
439
439
+
"x64"
440
440
+
],
441
441
+
"dev": true,
442
442
+
"license": "MIT",
443
443
+
"optional": true,
444
444
+
"os": [
445
445
+
"freebsd"
446
446
+
],
447
447
+
"engines": {
448
448
+
"node": ">=18"
449
449
+
}
450
450
+
},
451
451
+
"node_modules/@esbuild/linux-arm": {
452
452
+
"version": "0.27.2",
453
453
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz",
454
454
+
"integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==",
455
455
+
"cpu": [
456
456
+
"arm"
457
457
+
],
458
458
+
"dev": true,
459
459
+
"license": "MIT",
460
460
+
"optional": true,
461
461
+
"os": [
462
462
+
"linux"
463
463
+
],
464
464
+
"engines": {
465
465
+
"node": ">=18"
466
466
+
}
467
467
+
},
468
468
+
"node_modules/@esbuild/linux-arm64": {
469
469
+
"version": "0.27.2",
470
470
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz",
471
471
+
"integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==",
472
472
+
"cpu": [
473
473
+
"arm64"
474
474
+
],
475
475
+
"dev": true,
476
476
+
"license": "MIT",
477
477
+
"optional": true,
478
478
+
"os": [
479
479
+
"linux"
480
480
+
],
481
481
+
"engines": {
482
482
+
"node": ">=18"
483
483
+
}
484
484
+
},
485
485
+
"node_modules/@esbuild/linux-ia32": {
486
486
+
"version": "0.27.2",
487
487
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz",
488
488
+
"integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==",
489
489
+
"cpu": [
490
490
+
"ia32"
491
491
+
],
492
492
+
"dev": true,
493
493
+
"license": "MIT",
494
494
+
"optional": true,
495
495
+
"os": [
496
496
+
"linux"
497
497
+
],
498
498
+
"engines": {
499
499
+
"node": ">=18"
500
500
+
}
501
501
+
},
502
502
+
"node_modules/@esbuild/linux-loong64": {
503
503
+
"version": "0.27.2",
504
504
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz",
505
505
+
"integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==",
506
506
+
"cpu": [
507
507
+
"loong64"
508
508
+
],
509
509
+
"dev": true,
510
510
+
"license": "MIT",
511
511
+
"optional": true,
512
512
+
"os": [
513
513
+
"linux"
514
514
+
],
515
515
+
"engines": {
516
516
+
"node": ">=18"
517
517
+
}
518
518
+
},
519
519
+
"node_modules/@esbuild/linux-mips64el": {
520
520
+
"version": "0.27.2",
521
521
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz",
522
522
+
"integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==",
523
523
+
"cpu": [
524
524
+
"mips64el"
525
525
+
],
526
526
+
"dev": true,
527
527
+
"license": "MIT",
528
528
+
"optional": true,
529
529
+
"os": [
530
530
+
"linux"
531
531
+
],
532
532
+
"engines": {
533
533
+
"node": ">=18"
534
534
+
}
535
535
+
},
536
536
+
"node_modules/@esbuild/linux-ppc64": {
537
537
+
"version": "0.27.2",
538
538
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz",
539
539
+
"integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==",
540
540
+
"cpu": [
541
541
+
"ppc64"
542
542
+
],
543
543
+
"dev": true,
544
544
+
"license": "MIT",
545
545
+
"optional": true,
546
546
+
"os": [
547
547
+
"linux"
548
548
+
],
549
549
+
"engines": {
550
550
+
"node": ">=18"
551
551
+
}
552
552
+
},
553
553
+
"node_modules/@esbuild/linux-riscv64": {
554
554
+
"version": "0.27.2",
555
555
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz",
556
556
+
"integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==",
557
557
+
"cpu": [
558
558
+
"riscv64"
559
559
+
],
560
560
+
"dev": true,
561
561
+
"license": "MIT",
562
562
+
"optional": true,
563
563
+
"os": [
564
564
+
"linux"
565
565
+
],
566
566
+
"engines": {
567
567
+
"node": ">=18"
568
568
+
}
569
569
+
},
570
570
+
"node_modules/@esbuild/linux-s390x": {
571
571
+
"version": "0.27.2",
572
572
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz",
573
573
+
"integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==",
574
574
+
"cpu": [
575
575
+
"s390x"
576
576
+
],
577
577
+
"dev": true,
578
578
+
"license": "MIT",
579
579
+
"optional": true,
580
580
+
"os": [
581
581
+
"linux"
582
582
+
],
583
583
+
"engines": {
584
584
+
"node": ">=18"
585
585
+
}
586
586
+
},
587
587
+
"node_modules/@esbuild/linux-x64": {
588
588
+
"version": "0.27.2",
589
589
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz",
590
590
+
"integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==",
591
591
+
"cpu": [
592
592
+
"x64"
593
593
+
],
594
594
+
"dev": true,
595
595
+
"license": "MIT",
596
596
+
"optional": true,
597
597
+
"os": [
598
598
+
"linux"
599
599
+
],
600
600
+
"engines": {
601
601
+
"node": ">=18"
602
602
+
}
603
603
+
},
604
604
+
"node_modules/@esbuild/netbsd-arm64": {
605
605
+
"version": "0.27.2",
606
606
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz",
607
607
+
"integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==",
608
608
+
"cpu": [
609
609
+
"arm64"
610
610
+
],
611
611
+
"dev": true,
612
612
+
"license": "MIT",
613
613
+
"optional": true,
614
614
+
"os": [
615
615
+
"netbsd"
616
616
+
],
617
617
+
"engines": {
618
618
+
"node": ">=18"
619
619
+
}
620
620
+
},
621
621
+
"node_modules/@esbuild/netbsd-x64": {
622
622
+
"version": "0.27.2",
623
623
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz",
624
624
+
"integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==",
625
625
+
"cpu": [
626
626
+
"x64"
627
627
+
],
628
628
+
"dev": true,
629
629
+
"license": "MIT",
630
630
+
"optional": true,
631
631
+
"os": [
632
632
+
"netbsd"
633
633
+
],
634
634
+
"engines": {
635
635
+
"node": ">=18"
636
636
+
}
637
637
+
},
638
638
+
"node_modules/@esbuild/openbsd-arm64": {
639
639
+
"version": "0.27.2",
640
640
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz",
641
641
+
"integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==",
642
642
+
"cpu": [
643
643
+
"arm64"
644
644
+
],
645
645
+
"dev": true,
646
646
+
"license": "MIT",
647
647
+
"optional": true,
648
648
+
"os": [
649
649
+
"openbsd"
650
650
+
],
651
651
+
"engines": {
652
652
+
"node": ">=18"
653
653
+
}
654
654
+
},
655
655
+
"node_modules/@esbuild/openbsd-x64": {
656
656
+
"version": "0.27.2",
657
657
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz",
658
658
+
"integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==",
659
659
+
"cpu": [
660
660
+
"x64"
661
661
+
],
662
662
+
"dev": true,
663
663
+
"license": "MIT",
664
664
+
"optional": true,
665
665
+
"os": [
666
666
+
"openbsd"
667
667
+
],
668
668
+
"engines": {
669
669
+
"node": ">=18"
670
670
+
}
671
671
+
},
672
672
+
"node_modules/@esbuild/openharmony-arm64": {
673
673
+
"version": "0.27.2",
674
674
+
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz",
675
675
+
"integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==",
676
676
+
"cpu": [
677
677
+
"arm64"
678
678
+
],
679
679
+
"dev": true,
680
680
+
"license": "MIT",
681
681
+
"optional": true,
682
682
+
"os": [
683
683
+
"openharmony"
684
684
+
],
685
685
+
"engines": {
686
686
+
"node": ">=18"
687
687
+
}
688
688
+
},
689
689
+
"node_modules/@esbuild/sunos-x64": {
690
690
+
"version": "0.27.2",
691
691
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz",
692
692
+
"integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==",
693
693
+
"cpu": [
694
694
+
"x64"
695
695
+
],
696
696
+
"dev": true,
697
697
+
"license": "MIT",
698
698
+
"optional": true,
699
699
+
"os": [
700
700
+
"sunos"
701
701
+
],
702
702
+
"engines": {
703
703
+
"node": ">=18"
704
704
+
}
705
705
+
},
706
706
+
"node_modules/@esbuild/win32-arm64": {
707
707
+
"version": "0.27.2",
708
708
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz",
709
709
+
"integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==",
710
710
+
"cpu": [
711
711
+
"arm64"
712
712
+
],
713
713
+
"dev": true,
714
714
+
"license": "MIT",
715
715
+
"optional": true,
716
716
+
"os": [
717
717
+
"win32"
718
718
+
],
719
719
+
"engines": {
720
720
+
"node": ">=18"
721
721
+
}
722
722
+
},
723
723
+
"node_modules/@esbuild/win32-ia32": {
724
724
+
"version": "0.27.2",
725
725
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz",
726
726
+
"integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==",
727
727
+
"cpu": [
728
728
+
"ia32"
729
729
+
],
730
730
+
"dev": true,
731
731
+
"license": "MIT",
732
732
+
"optional": true,
733
733
+
"os": [
734
734
+
"win32"
735
735
+
],
736
736
+
"engines": {
737
737
+
"node": ">=18"
738
738
+
}
739
739
+
},
740
740
+
"node_modules/@esbuild/win32-x64": {
741
741
+
"version": "0.27.2",
742
742
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz",
743
743
+
"integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==",
744
744
+
"cpu": [
745
745
+
"x64"
746
746
+
],
747
747
+
"dev": true,
748
748
+
"license": "MIT",
749
749
+
"optional": true,
750
750
+
"os": [
751
751
+
"win32"
752
752
+
],
753
753
+
"engines": {
754
754
+
"node": ">=18"
755
755
+
}
756
756
+
},
757
757
+
"node_modules/@eslint-community/eslint-utils": {
758
758
+
"version": "4.9.1",
759
759
+
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
760
760
+
"integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
761
761
+
"dev": true,
762
762
+
"license": "MIT",
763
763
+
"dependencies": {
764
764
+
"eslint-visitor-keys": "^3.4.3"
765
765
+
},
766
766
+
"engines": {
767
767
+
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
768
768
+
},
769
769
+
"funding": {
770
770
+
"url": "https://opencollective.com/eslint"
771
771
+
},
772
772
+
"peerDependencies": {
773
773
+
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
774
774
+
}
775
775
+
},
776
776
+
"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
777
777
+
"version": "3.4.3",
778
778
+
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
779
779
+
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
780
780
+
"dev": true,
781
781
+
"license": "Apache-2.0",
782
782
+
"engines": {
783
783
+
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
784
784
+
},
785
785
+
"funding": {
786
786
+
"url": "https://opencollective.com/eslint"
787
787
+
}
788
788
+
},
789
789
+
"node_modules/@eslint-community/regexpp": {
790
790
+
"version": "4.12.2",
791
791
+
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
792
792
+
"integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
793
793
+
"dev": true,
794
794
+
"license": "MIT",
795
795
+
"engines": {
796
796
+
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
797
797
+
}
798
798
+
},
799
799
+
"node_modules/@eslint/config-array": {
800
800
+
"version": "0.21.1",
801
801
+
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
802
802
+
"integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
803
803
+
"dev": true,
804
804
+
"license": "Apache-2.0",
805
805
+
"dependencies": {
806
806
+
"@eslint/object-schema": "^2.1.7",
807
807
+
"debug": "^4.3.1",
808
808
+
"minimatch": "^3.1.2"
809
809
+
},
810
810
+
"engines": {
811
811
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
812
812
+
}
813
813
+
},
814
814
+
"node_modules/@eslint/config-helpers": {
815
815
+
"version": "0.4.2",
816
816
+
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
817
817
+
"integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
818
818
+
"dev": true,
819
819
+
"license": "Apache-2.0",
820
820
+
"dependencies": {
821
821
+
"@eslint/core": "^0.17.0"
822
822
+
},
823
823
+
"engines": {
824
824
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
825
825
+
}
826
826
+
},
827
827
+
"node_modules/@eslint/core": {
828
828
+
"version": "0.17.0",
829
829
+
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
830
830
+
"integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
831
831
+
"dev": true,
832
832
+
"license": "Apache-2.0",
833
833
+
"dependencies": {
834
834
+
"@types/json-schema": "^7.0.15"
835
835
+
},
836
836
+
"engines": {
837
837
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
838
838
+
}
839
839
+
},
840
840
+
"node_modules/@eslint/eslintrc": {
841
841
+
"version": "3.3.3",
842
842
+
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz",
843
843
+
"integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==",
844
844
+
"dev": true,
845
845
+
"license": "MIT",
846
846
+
"dependencies": {
847
847
+
"ajv": "^6.12.4",
848
848
+
"debug": "^4.3.2",
849
849
+
"espree": "^10.0.1",
850
850
+
"globals": "^14.0.0",
851
851
+
"ignore": "^5.2.0",
852
852
+
"import-fresh": "^3.2.1",
853
853
+
"js-yaml": "^4.1.1",
854
854
+
"minimatch": "^3.1.2",
855
855
+
"strip-json-comments": "^3.1.1"
856
856
+
},
857
857
+
"engines": {
858
858
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
859
859
+
},
860
860
+
"funding": {
861
861
+
"url": "https://opencollective.com/eslint"
862
862
+
}
863
863
+
},
864
864
+
"node_modules/@eslint/eslintrc/node_modules/globals": {
865
865
+
"version": "14.0.0",
866
866
+
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
867
867
+
"integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
868
868
+
"dev": true,
869
869
+
"license": "MIT",
870
870
+
"engines": {
871
871
+
"node": ">=18"
872
872
+
},
873
873
+
"funding": {
874
874
+
"url": "https://github.com/sponsors/sindresorhus"
875
875
+
}
876
876
+
},
877
877
+
"node_modules/@eslint/js": {
878
878
+
"version": "9.39.2",
879
879
+
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz",
880
880
+
"integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==",
881
881
+
"dev": true,
882
882
+
"license": "MIT",
883
883
+
"engines": {
884
884
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
885
885
+
},
886
886
+
"funding": {
887
887
+
"url": "https://eslint.org/donate"
888
888
+
}
889
889
+
},
890
890
+
"node_modules/@eslint/object-schema": {
891
891
+
"version": "2.1.7",
892
892
+
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
893
893
+
"integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
894
894
+
"dev": true,
895
895
+
"license": "Apache-2.0",
896
896
+
"engines": {
897
897
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
898
898
+
}
899
899
+
},
900
900
+
"node_modules/@eslint/plugin-kit": {
901
901
+
"version": "0.4.1",
902
902
+
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
903
903
+
"integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
904
904
+
"dev": true,
905
905
+
"license": "Apache-2.0",
906
906
+
"dependencies": {
907
907
+
"@eslint/core": "^0.17.0",
908
908
+
"levn": "^0.4.1"
909
909
+
},
910
910
+
"engines": {
911
911
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
912
912
+
}
913
913
+
},
914
914
+
"node_modules/@humanfs/core": {
915
915
+
"version": "0.19.1",
916
916
+
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
917
917
+
"integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
918
918
+
"dev": true,
919
919
+
"license": "Apache-2.0",
920
920
+
"engines": {
921
921
+
"node": ">=18.18.0"
922
922
+
}
923
923
+
},
924
924
+
"node_modules/@humanfs/node": {
925
925
+
"version": "0.16.7",
926
926
+
"resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
927
927
+
"integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
928
928
+
"dev": true,
929
929
+
"license": "Apache-2.0",
930
930
+
"dependencies": {
931
931
+
"@humanfs/core": "^0.19.1",
932
932
+
"@humanwhocodes/retry": "^0.4.0"
933
933
+
},
934
934
+
"engines": {
935
935
+
"node": ">=18.18.0"
936
936
+
}
937
937
+
},
938
938
+
"node_modules/@humanwhocodes/module-importer": {
939
939
+
"version": "1.0.1",
940
940
+
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
941
941
+
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
942
942
+
"dev": true,
943
943
+
"license": "Apache-2.0",
944
944
+
"engines": {
945
945
+
"node": ">=12.22"
946
946
+
},
947
947
+
"funding": {
948
948
+
"type": "github",
949
949
+
"url": "https://github.com/sponsors/nzakas"
950
950
+
}
951
951
+
},
952
952
+
"node_modules/@humanwhocodes/retry": {
953
953
+
"version": "0.4.3",
954
954
+
"resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
955
955
+
"integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
956
956
+
"dev": true,
957
957
+
"license": "Apache-2.0",
958
958
+
"engines": {
959
959
+
"node": ">=18.18"
960
960
+
},
961
961
+
"funding": {
962
962
+
"type": "github",
963
963
+
"url": "https://github.com/sponsors/nzakas"
964
964
+
}
965
965
+
},
966
966
+
"node_modules/@jridgewell/gen-mapping": {
967
967
+
"version": "0.3.13",
968
968
+
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
969
969
+
"integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
970
970
+
"dev": true,
971
971
+
"license": "MIT",
972
972
+
"dependencies": {
973
973
+
"@jridgewell/sourcemap-codec": "^1.5.0",
974
974
+
"@jridgewell/trace-mapping": "^0.3.24"
975
975
+
}
976
976
+
},
977
977
+
"node_modules/@jridgewell/remapping": {
978
978
+
"version": "2.3.5",
979
979
+
"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
980
980
+
"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
981
981
+
"dev": true,
982
982
+
"license": "MIT",
983
983
+
"dependencies": {
984
984
+
"@jridgewell/gen-mapping": "^0.3.5",
985
985
+
"@jridgewell/trace-mapping": "^0.3.24"
986
986
+
}
987
987
+
},
988
988
+
"node_modules/@jridgewell/resolve-uri": {
989
989
+
"version": "3.1.2",
990
990
+
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
991
991
+
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
992
992
+
"dev": true,
993
993
+
"license": "MIT",
994
994
+
"engines": {
995
995
+
"node": ">=6.0.0"
996
996
+
}
997
997
+
},
998
998
+
"node_modules/@jridgewell/sourcemap-codec": {
999
999
+
"version": "1.5.5",
1000
1000
+
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
1001
1001
+
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
1002
1002
+
"dev": true,
1003
1003
+
"license": "MIT"
1004
1004
+
},
1005
1005
+
"node_modules/@jridgewell/trace-mapping": {
1006
1006
+
"version": "0.3.31",
1007
1007
+
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
1008
1008
+
"integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
1009
1009
+
"dev": true,
1010
1010
+
"license": "MIT",
1011
1011
+
"dependencies": {
1012
1012
+
"@jridgewell/resolve-uri": "^3.1.0",
1013
1013
+
"@jridgewell/sourcemap-codec": "^1.4.14"
1014
1014
+
}
1015
1015
+
},
1016
1016
+
"node_modules/@resvg/resvg-js": {
1017
1017
+
"version": "2.6.2",
1018
1018
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.2.tgz",
1019
1019
+
"integrity": "sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==",
1020
1020
+
"dev": true,
1021
1021
+
"license": "MPL-2.0",
1022
1022
+
"engines": {
1023
1023
+
"node": ">= 10"
1024
1024
+
},
1025
1025
+
"optionalDependencies": {
1026
1026
+
"@resvg/resvg-js-android-arm-eabi": "2.6.2",
1027
1027
+
"@resvg/resvg-js-android-arm64": "2.6.2",
1028
1028
+
"@resvg/resvg-js-darwin-arm64": "2.6.2",
1029
1029
+
"@resvg/resvg-js-darwin-x64": "2.6.2",
1030
1030
+
"@resvg/resvg-js-linux-arm-gnueabihf": "2.6.2",
1031
1031
+
"@resvg/resvg-js-linux-arm64-gnu": "2.6.2",
1032
1032
+
"@resvg/resvg-js-linux-arm64-musl": "2.6.2",
1033
1033
+
"@resvg/resvg-js-linux-x64-gnu": "2.6.2",
1034
1034
+
"@resvg/resvg-js-linux-x64-musl": "2.6.2",
1035
1035
+
"@resvg/resvg-js-win32-arm64-msvc": "2.6.2",
1036
1036
+
"@resvg/resvg-js-win32-ia32-msvc": "2.6.2",
1037
1037
+
"@resvg/resvg-js-win32-x64-msvc": "2.6.2"
1038
1038
+
}
1039
1039
+
},
1040
1040
+
"node_modules/@resvg/resvg-js-android-arm-eabi": {
1041
1041
+
"version": "2.6.2",
1042
1042
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.6.2.tgz",
1043
1043
+
"integrity": "sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==",
1044
1044
+
"cpu": [
1045
1045
+
"arm"
1046
1046
+
],
1047
1047
+
"dev": true,
1048
1048
+
"license": "MPL-2.0",
1049
1049
+
"optional": true,
1050
1050
+
"os": [
1051
1051
+
"android"
1052
1052
+
],
1053
1053
+
"engines": {
1054
1054
+
"node": ">= 10"
1055
1055
+
}
1056
1056
+
},
1057
1057
+
"node_modules/@resvg/resvg-js-android-arm64": {
1058
1058
+
"version": "2.6.2",
1059
1059
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.6.2.tgz",
1060
1060
+
"integrity": "sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==",
1061
1061
+
"cpu": [
1062
1062
+
"arm64"
1063
1063
+
],
1064
1064
+
"dev": true,
1065
1065
+
"license": "MPL-2.0",
1066
1066
+
"optional": true,
1067
1067
+
"os": [
1068
1068
+
"android"
1069
1069
+
],
1070
1070
+
"engines": {
1071
1071
+
"node": ">= 10"
1072
1072
+
}
1073
1073
+
},
1074
1074
+
"node_modules/@resvg/resvg-js-darwin-arm64": {
1075
1075
+
"version": "2.6.2",
1076
1076
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.6.2.tgz",
1077
1077
+
"integrity": "sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==",
1078
1078
+
"cpu": [
1079
1079
+
"arm64"
1080
1080
+
],
1081
1081
+
"dev": true,
1082
1082
+
"license": "MPL-2.0",
1083
1083
+
"optional": true,
1084
1084
+
"os": [
1085
1085
+
"darwin"
1086
1086
+
],
1087
1087
+
"engines": {
1088
1088
+
"node": ">= 10"
1089
1089
+
}
1090
1090
+
},
1091
1091
+
"node_modules/@resvg/resvg-js-darwin-x64": {
1092
1092
+
"version": "2.6.2",
1093
1093
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.6.2.tgz",
1094
1094
+
"integrity": "sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==",
1095
1095
+
"cpu": [
1096
1096
+
"x64"
1097
1097
+
],
1098
1098
+
"dev": true,
1099
1099
+
"license": "MPL-2.0",
1100
1100
+
"optional": true,
1101
1101
+
"os": [
1102
1102
+
"darwin"
1103
1103
+
],
1104
1104
+
"engines": {
1105
1105
+
"node": ">= 10"
1106
1106
+
}
1107
1107
+
},
1108
1108
+
"node_modules/@resvg/resvg-js-linux-arm-gnueabihf": {
1109
1109
+
"version": "2.6.2",
1110
1110
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.6.2.tgz",
1111
1111
+
"integrity": "sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==",
1112
1112
+
"cpu": [
1113
1113
+
"arm"
1114
1114
+
],
1115
1115
+
"dev": true,
1116
1116
+
"license": "MPL-2.0",
1117
1117
+
"optional": true,
1118
1118
+
"os": [
1119
1119
+
"linux"
1120
1120
+
],
1121
1121
+
"engines": {
1122
1122
+
"node": ">= 10"
1123
1123
+
}
1124
1124
+
},
1125
1125
+
"node_modules/@resvg/resvg-js-linux-arm64-gnu": {
1126
1126
+
"version": "2.6.2",
1127
1127
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.6.2.tgz",
1128
1128
+
"integrity": "sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==",
1129
1129
+
"cpu": [
1130
1130
+
"arm64"
1131
1131
+
],
1132
1132
+
"dev": true,
1133
1133
+
"license": "MPL-2.0",
1134
1134
+
"optional": true,
1135
1135
+
"os": [
1136
1136
+
"linux"
1137
1137
+
],
1138
1138
+
"engines": {
1139
1139
+
"node": ">= 10"
1140
1140
+
}
1141
1141
+
},
1142
1142
+
"node_modules/@resvg/resvg-js-linux-arm64-musl": {
1143
1143
+
"version": "2.6.2",
1144
1144
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.6.2.tgz",
1145
1145
+
"integrity": "sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==",
1146
1146
+
"cpu": [
1147
1147
+
"arm64"
1148
1148
+
],
1149
1149
+
"dev": true,
1150
1150
+
"license": "MPL-2.0",
1151
1151
+
"optional": true,
1152
1152
+
"os": [
1153
1153
+
"linux"
1154
1154
+
],
1155
1155
+
"engines": {
1156
1156
+
"node": ">= 10"
1157
1157
+
}
1158
1158
+
},
1159
1159
+
"node_modules/@resvg/resvg-js-linux-x64-gnu": {
1160
1160
+
"version": "2.6.2",
1161
1161
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.6.2.tgz",
1162
1162
+
"integrity": "sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==",
1163
1163
+
"cpu": [
1164
1164
+
"x64"
1165
1165
+
],
1166
1166
+
"dev": true,
1167
1167
+
"license": "MPL-2.0",
1168
1168
+
"optional": true,
1169
1169
+
"os": [
1170
1170
+
"linux"
1171
1171
+
],
1172
1172
+
"engines": {
1173
1173
+
"node": ">= 10"
1174
1174
+
}
1175
1175
+
},
1176
1176
+
"node_modules/@resvg/resvg-js-linux-x64-musl": {
1177
1177
+
"version": "2.6.2",
1178
1178
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.6.2.tgz",
1179
1179
+
"integrity": "sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==",
1180
1180
+
"cpu": [
1181
1181
+
"x64"
1182
1182
+
],
1183
1183
+
"dev": true,
1184
1184
+
"license": "MPL-2.0",
1185
1185
+
"optional": true,
1186
1186
+
"os": [
1187
1187
+
"linux"
1188
1188
+
],
1189
1189
+
"engines": {
1190
1190
+
"node": ">= 10"
1191
1191
+
}
1192
1192
+
},
1193
1193
+
"node_modules/@resvg/resvg-js-win32-arm64-msvc": {
1194
1194
+
"version": "2.6.2",
1195
1195
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.6.2.tgz",
1196
1196
+
"integrity": "sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==",
1197
1197
+
"cpu": [
1198
1198
+
"arm64"
1199
1199
+
],
1200
1200
+
"dev": true,
1201
1201
+
"license": "MPL-2.0",
1202
1202
+
"optional": true,
1203
1203
+
"os": [
1204
1204
+
"win32"
1205
1205
+
],
1206
1206
+
"engines": {
1207
1207
+
"node": ">= 10"
1208
1208
+
}
1209
1209
+
},
1210
1210
+
"node_modules/@resvg/resvg-js-win32-ia32-msvc": {
1211
1211
+
"version": "2.6.2",
1212
1212
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.6.2.tgz",
1213
1213
+
"integrity": "sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==",
1214
1214
+
"cpu": [
1215
1215
+
"ia32"
1216
1216
+
],
1217
1217
+
"dev": true,
1218
1218
+
"license": "MPL-2.0",
1219
1219
+
"optional": true,
1220
1220
+
"os": [
1221
1221
+
"win32"
1222
1222
+
],
1223
1223
+
"engines": {
1224
1224
+
"node": ">= 10"
1225
1225
+
}
1226
1226
+
},
1227
1227
+
"node_modules/@resvg/resvg-js-win32-x64-msvc": {
1228
1228
+
"version": "2.6.2",
1229
1229
+
"resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.6.2.tgz",
1230
1230
+
"integrity": "sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==",
1231
1231
+
"cpu": [
1232
1232
+
"x64"
1233
1233
+
],
1234
1234
+
"dev": true,
1235
1235
+
"license": "MPL-2.0",
1236
1236
+
"optional": true,
1237
1237
+
"os": [
1238
1238
+
"win32"
1239
1239
+
],
1240
1240
+
"engines": {
1241
1241
+
"node": ">= 10"
1242
1242
+
}
1243
1243
+
},
1244
1244
+
"node_modules/@rolldown/pluginutils": {
1245
1245
+
"version": "1.0.0-beta.53",
1246
1246
+
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz",
1247
1247
+
"integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==",
1248
1248
+
"dev": true,
1249
1249
+
"license": "MIT"
1250
1250
+
},
1251
1251
+
"node_modules/@rollup/rollup-android-arm-eabi": {
1252
1252
+
"version": "4.55.3",
1253
1253
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.3.tgz",
1254
1254
+
"integrity": "sha512-qyX8+93kK/7R5BEXPC2PjUt0+fS/VO2BVHjEHyIEWiYn88rcRBHmdLgoJjktBltgAf+NY7RfCGB1SoyKS/p9kg==",
1255
1255
+
"cpu": [
1256
1256
+
"arm"
1257
1257
+
],
1258
1258
+
"dev": true,
1259
1259
+
"license": "MIT",
1260
1260
+
"optional": true,
1261
1261
+
"os": [
1262
1262
+
"android"
1263
1263
+
]
1264
1264
+
},
1265
1265
+
"node_modules/@rollup/rollup-android-arm64": {
1266
1266
+
"version": "4.55.3",
1267
1267
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.3.tgz",
1268
1268
+
"integrity": "sha512-6sHrL42bjt5dHQzJ12Q4vMKfN+kUnZ0atHHnv4V0Wd9JMTk7FDzSY35+7qbz3ypQYMBPANbpGK7JpnWNnhGt8g==",
1269
1269
+
"cpu": [
1270
1270
+
"arm64"
1271
1271
+
],
1272
1272
+
"dev": true,
1273
1273
+
"license": "MIT",
1274
1274
+
"optional": true,
1275
1275
+
"os": [
1276
1276
+
"android"
1277
1277
+
]
1278
1278
+
},
1279
1279
+
"node_modules/@rollup/rollup-darwin-arm64": {
1280
1280
+
"version": "4.55.3",
1281
1281
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.3.tgz",
1282
1282
+
"integrity": "sha512-1ht2SpGIjEl2igJ9AbNpPIKzb1B5goXOcmtD0RFxnwNuMxqkR6AUaaErZz+4o+FKmzxcSNBOLrzsICZVNYa1Rw==",
1283
1283
+
"cpu": [
1284
1284
+
"arm64"
1285
1285
+
],
1286
1286
+
"dev": true,
1287
1287
+
"license": "MIT",
1288
1288
+
"optional": true,
1289
1289
+
"os": [
1290
1290
+
"darwin"
1291
1291
+
]
1292
1292
+
},
1293
1293
+
"node_modules/@rollup/rollup-darwin-x64": {
1294
1294
+
"version": "4.55.3",
1295
1295
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.3.tgz",
1296
1296
+
"integrity": "sha512-FYZ4iVunXxtT+CZqQoPVwPhH7549e/Gy7PIRRtq4t5f/vt54pX6eG9ebttRH6QSH7r/zxAFA4EZGlQ0h0FvXiA==",
1297
1297
+
"cpu": [
1298
1298
+
"x64"
1299
1299
+
],
1300
1300
+
"dev": true,
1301
1301
+
"license": "MIT",
1302
1302
+
"optional": true,
1303
1303
+
"os": [
1304
1304
+
"darwin"
1305
1305
+
]
1306
1306
+
},
1307
1307
+
"node_modules/@rollup/rollup-freebsd-arm64": {
1308
1308
+
"version": "4.55.3",
1309
1309
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.3.tgz",
1310
1310
+
"integrity": "sha512-M/mwDCJ4wLsIgyxv2Lj7Len+UMHd4zAXu4GQ2UaCdksStglWhP61U3uowkaYBQBhVoNpwx5Hputo8eSqM7K82Q==",
1311
1311
+
"cpu": [
1312
1312
+
"arm64"
1313
1313
+
],
1314
1314
+
"dev": true,
1315
1315
+
"license": "MIT",
1316
1316
+
"optional": true,
1317
1317
+
"os": [
1318
1318
+
"freebsd"
1319
1319
+
]
1320
1320
+
},
1321
1321
+
"node_modules/@rollup/rollup-freebsd-x64": {
1322
1322
+
"version": "4.55.3",
1323
1323
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.3.tgz",
1324
1324
+
"integrity": "sha512-5jZT2c7jBCrMegKYTYTpni8mg8y3uY8gzeq2ndFOANwNuC/xJbVAoGKR9LhMDA0H3nIhvaqUoBEuJoICBudFrA==",
1325
1325
+
"cpu": [
1326
1326
+
"x64"
1327
1327
+
],
1328
1328
+
"dev": true,
1329
1329
+
"license": "MIT",
1330
1330
+
"optional": true,
1331
1331
+
"os": [
1332
1332
+
"freebsd"
1333
1333
+
]
1334
1334
+
},
1335
1335
+
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
1336
1336
+
"version": "4.55.3",
1337
1337
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.3.tgz",
1338
1338
+
"integrity": "sha512-YeGUhkN1oA+iSPzzhEjVPS29YbViOr8s4lSsFaZKLHswgqP911xx25fPOyE9+khmN6W4VeM0aevbDp4kkEoHiA==",
1339
1339
+
"cpu": [
1340
1340
+
"arm"
1341
1341
+
],
1342
1342
+
"dev": true,
1343
1343
+
"license": "MIT",
1344
1344
+
"optional": true,
1345
1345
+
"os": [
1346
1346
+
"linux"
1347
1347
+
]
1348
1348
+
},
1349
1349
+
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
1350
1350
+
"version": "4.55.3",
1351
1351
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.3.tgz",
1352
1352
+
"integrity": "sha512-eo0iOIOvcAlWB3Z3eh8pVM8hZ0oVkK3AjEM9nSrkSug2l15qHzF3TOwT0747omI6+CJJvl7drwZepT+re6Fy/w==",
1353
1353
+
"cpu": [
1354
1354
+
"arm"
1355
1355
+
],
1356
1356
+
"dev": true,
1357
1357
+
"license": "MIT",
1358
1358
+
"optional": true,
1359
1359
+
"os": [
1360
1360
+
"linux"
1361
1361
+
]
1362
1362
+
},
1363
1363
+
"node_modules/@rollup/rollup-linux-arm64-gnu": {
1364
1364
+
"version": "4.55.3",
1365
1365
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.3.tgz",
1366
1366
+
"integrity": "sha512-DJay3ep76bKUDImmn//W5SvpjRN5LmK/ntWyeJs/dcnwiiHESd3N4uteK9FDLf0S0W8E6Y0sVRXpOCoQclQqNg==",
1367
1367
+
"cpu": [
1368
1368
+
"arm64"
1369
1369
+
],
1370
1370
+
"dev": true,
1371
1371
+
"license": "MIT",
1372
1372
+
"optional": true,
1373
1373
+
"os": [
1374
1374
+
"linux"
1375
1375
+
]
1376
1376
+
},
1377
1377
+
"node_modules/@rollup/rollup-linux-arm64-musl": {
1378
1378
+
"version": "4.55.3",
1379
1379
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.3.tgz",
1380
1380
+
"integrity": "sha512-BKKWQkY2WgJ5MC/ayvIJTHjy0JUGb5efaHCUiG/39sSUvAYRBaO3+/EK0AZT1RF3pSj86O24GLLik9mAYu0IJg==",
1381
1381
+
"cpu": [
1382
1382
+
"arm64"
1383
1383
+
],
1384
1384
+
"dev": true,
1385
1385
+
"license": "MIT",
1386
1386
+
"optional": true,
1387
1387
+
"os": [
1388
1388
+
"linux"
1389
1389
+
]
1390
1390
+
},
1391
1391
+
"node_modules/@rollup/rollup-linux-loong64-gnu": {
1392
1392
+
"version": "4.55.3",
1393
1393
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.3.tgz",
1394
1394
+
"integrity": "sha512-Q9nVlWtKAG7ISW80OiZGxTr6rYtyDSkauHUtvkQI6TNOJjFvpj4gcH+KaJihqYInnAzEEUetPQubRwHef4exVg==",
1395
1395
+
"cpu": [
1396
1396
+
"loong64"
1397
1397
+
],
1398
1398
+
"dev": true,
1399
1399
+
"license": "MIT",
1400
1400
+
"optional": true,
1401
1401
+
"os": [
1402
1402
+
"linux"
1403
1403
+
]
1404
1404
+
},
1405
1405
+
"node_modules/@rollup/rollup-linux-loong64-musl": {
1406
1406
+
"version": "4.55.3",
1407
1407
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.3.tgz",
1408
1408
+
"integrity": "sha512-2H5LmhzrpC4fFRNwknzmmTvvyJPHwESoJgyReXeFoYYuIDfBhP29TEXOkCJE/KxHi27mj7wDUClNq78ue3QEBQ==",
1409
1409
+
"cpu": [
1410
1410
+
"loong64"
1411
1411
+
],
1412
1412
+
"dev": true,
1413
1413
+
"license": "MIT",
1414
1414
+
"optional": true,
1415
1415
+
"os": [
1416
1416
+
"linux"
1417
1417
+
]
1418
1418
+
},
1419
1419
+
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
1420
1420
+
"version": "4.55.3",
1421
1421
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.3.tgz",
1422
1422
+
"integrity": "sha512-9S542V0ie9LCTznPYlvaeySwBeIEa7rDBgLHKZ5S9DBgcqdJYburabm8TqiqG6mrdTzfV5uttQRHcbKff9lWtA==",
1423
1423
+
"cpu": [
1424
1424
+
"ppc64"
1425
1425
+
],
1426
1426
+
"dev": true,
1427
1427
+
"license": "MIT",
1428
1428
+
"optional": true,
1429
1429
+
"os": [
1430
1430
+
"linux"
1431
1431
+
]
1432
1432
+
},
1433
1433
+
"node_modules/@rollup/rollup-linux-ppc64-musl": {
1434
1434
+
"version": "4.55.3",
1435
1435
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.3.tgz",
1436
1436
+
"integrity": "sha512-ukxw+YH3XXpcezLgbJeasgxyTbdpnNAkrIlFGDl7t+pgCxZ89/6n1a+MxlY7CegU+nDgrgdqDelPRNQ/47zs0g==",
1437
1437
+
"cpu": [
1438
1438
+
"ppc64"
1439
1439
+
],
1440
1440
+
"dev": true,
1441
1441
+
"license": "MIT",
1442
1442
+
"optional": true,
1443
1443
+
"os": [
1444
1444
+
"linux"
1445
1445
+
]
1446
1446
+
},
1447
1447
+
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
1448
1448
+
"version": "4.55.3",
1449
1449
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.3.tgz",
1450
1450
+
"integrity": "sha512-Iauw9UsTTvlF++FhghFJjqYxyXdggXsOqGpFBylaRopVpcbfyIIsNvkf9oGwfgIcf57z3m8+/oSYTo6HutBFNw==",
1451
1451
+
"cpu": [
1452
1452
+
"riscv64"
1453
1453
+
],
1454
1454
+
"dev": true,
1455
1455
+
"license": "MIT",
1456
1456
+
"optional": true,
1457
1457
+
"os": [
1458
1458
+
"linux"
1459
1459
+
]
1460
1460
+
},
1461
1461
+
"node_modules/@rollup/rollup-linux-riscv64-musl": {
1462
1462
+
"version": "4.55.3",
1463
1463
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.3.tgz",
1464
1464
+
"integrity": "sha512-3OqKAHSEQXKdq9mQ4eajqUgNIK27VZPW3I26EP8miIzuKzCJ3aW3oEn2pzF+4/Hj/Moc0YDsOtBgT5bZ56/vcA==",
1465
1465
+
"cpu": [
1466
1466
+
"riscv64"
1467
1467
+
],
1468
1468
+
"dev": true,
1469
1469
+
"license": "MIT",
1470
1470
+
"optional": true,
1471
1471
+
"os": [
1472
1472
+
"linux"
1473
1473
+
]
1474
1474
+
},
1475
1475
+
"node_modules/@rollup/rollup-linux-s390x-gnu": {
1476
1476
+
"version": "4.55.3",
1477
1477
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.3.tgz",
1478
1478
+
"integrity": "sha512-0CM8dSVzVIaqMcXIFej8zZrSFLnGrAE8qlNbbHfTw1EEPnFTg1U1ekI0JdzjPyzSfUsHWtodilQQG/RA55berA==",
1479
1479
+
"cpu": [
1480
1480
+
"s390x"
1481
1481
+
],
1482
1482
+
"dev": true,
1483
1483
+
"license": "MIT",
1484
1484
+
"optional": true,
1485
1485
+
"os": [
1486
1486
+
"linux"
1487
1487
+
]
1488
1488
+
},
1489
1489
+
"node_modules/@rollup/rollup-linux-x64-gnu": {
1490
1490
+
"version": "4.55.3",
1491
1491
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.3.tgz",
1492
1492
+
"integrity": "sha512-+fgJE12FZMIgBaKIAGd45rxf+5ftcycANJRWk8Vz0NnMTM5rADPGuRFTYar+Mqs560xuART7XsX2lSACa1iOmQ==",
1493
1493
+
"cpu": [
1494
1494
+
"x64"
1495
1495
+
],
1496
1496
+
"dev": true,
1497
1497
+
"license": "MIT",
1498
1498
+
"optional": true,
1499
1499
+
"os": [
1500
1500
+
"linux"
1501
1501
+
]
1502
1502
+
},
1503
1503
+
"node_modules/@rollup/rollup-linux-x64-musl": {
1504
1504
+
"version": "4.55.3",
1505
1505
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.3.tgz",
1506
1506
+
"integrity": "sha512-tMD7NnbAolWPzQlJQJjVFh/fNH3K/KnA7K8gv2dJWCwwnaK6DFCYST1QXYWfu5V0cDwarWC8Sf/cfMHniNq21A==",
1507
1507
+
"cpu": [
1508
1508
+
"x64"
1509
1509
+
],
1510
1510
+
"dev": true,
1511
1511
+
"license": "MIT",
1512
1512
+
"optional": true,
1513
1513
+
"os": [
1514
1514
+
"linux"
1515
1515
+
]
1516
1516
+
},
1517
1517
+
"node_modules/@rollup/rollup-openbsd-x64": {
1518
1518
+
"version": "4.55.3",
1519
1519
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.3.tgz",
1520
1520
+
"integrity": "sha512-u5KsqxOxjEeIbn7bUK1MPM34jrnPwjeqgyin4/N6e/KzXKfpE9Mi0nCxcQjaM9lLmPcHmn/xx1yOjgTMtu1jWQ==",
1521
1521
+
"cpu": [
1522
1522
+
"x64"
1523
1523
+
],
1524
1524
+
"dev": true,
1525
1525
+
"license": "MIT",
1526
1526
+
"optional": true,
1527
1527
+
"os": [
1528
1528
+
"openbsd"
1529
1529
+
]
1530
1530
+
},
1531
1531
+
"node_modules/@rollup/rollup-openharmony-arm64": {
1532
1532
+
"version": "4.55.3",
1533
1533
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.3.tgz",
1534
1534
+
"integrity": "sha512-vo54aXwjpTtsAnb3ca7Yxs9t2INZg7QdXN/7yaoG7nPGbOBXYXQY41Km+S1Ov26vzOAzLcAjmMdjyEqS1JkVhw==",
1535
1535
+
"cpu": [
1536
1536
+
"arm64"
1537
1537
+
],
1538
1538
+
"dev": true,
1539
1539
+
"license": "MIT",
1540
1540
+
"optional": true,
1541
1541
+
"os": [
1542
1542
+
"openharmony"
1543
1543
+
]
1544
1544
+
},
1545
1545
+
"node_modules/@rollup/rollup-win32-arm64-msvc": {
1546
1546
+
"version": "4.55.3",
1547
1547
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.3.tgz",
1548
1548
+
"integrity": "sha512-HI+PIVZ+m+9AgpnY3pt6rinUdRYrGHvmVdsNQ4odNqQ/eRF78DVpMR7mOq7nW06QxpczibwBmeQzB68wJ+4W4A==",
1549
1549
+
"cpu": [
1550
1550
+
"arm64"
1551
1551
+
],
1552
1552
+
"dev": true,
1553
1553
+
"license": "MIT",
1554
1554
+
"optional": true,
1555
1555
+
"os": [
1556
1556
+
"win32"
1557
1557
+
]
1558
1558
+
},
1559
1559
+
"node_modules/@rollup/rollup-win32-ia32-msvc": {
1560
1560
+
"version": "4.55.3",
1561
1561
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.3.tgz",
1562
1562
+
"integrity": "sha512-vRByotbdMo3Wdi+8oC2nVxtc3RkkFKrGaok+a62AT8lz/YBuQjaVYAS5Zcs3tPzW43Vsf9J0wehJbUY5xRSekA==",
1563
1563
+
"cpu": [
1564
1564
+
"ia32"
1565
1565
+
],
1566
1566
+
"dev": true,
1567
1567
+
"license": "MIT",
1568
1568
+
"optional": true,
1569
1569
+
"os": [
1570
1570
+
"win32"
1571
1571
+
]
1572
1572
+
},
1573
1573
+
"node_modules/@rollup/rollup-win32-x64-gnu": {
1574
1574
+
"version": "4.55.3",
1575
1575
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.3.tgz",
1576
1576
+
"integrity": "sha512-POZHq7UeuzMJljC5NjKi8vKMFN6/5EOqcX1yGntNLp7rUTpBAXQ1hW8kWPFxYLv07QMcNM75xqVLGPWQq6TKFA==",
1577
1577
+
"cpu": [
1578
1578
+
"x64"
1579
1579
+
],
1580
1580
+
"dev": true,
1581
1581
+
"license": "MIT",
1582
1582
+
"optional": true,
1583
1583
+
"os": [
1584
1584
+
"win32"
1585
1585
+
]
1586
1586
+
},
1587
1587
+
"node_modules/@rollup/rollup-win32-x64-msvc": {
1588
1588
+
"version": "4.55.3",
1589
1589
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.3.tgz",
1590
1590
+
"integrity": "sha512-aPFONczE4fUFKNXszdvnd2GqKEYQdV5oEsIbKPujJmWlCI9zEsv1Otig8RKK+X9bed9gFUN6LAeN4ZcNuu4zjg==",
1591
1591
+
"cpu": [
1592
1592
+
"x64"
1593
1593
+
],
1594
1594
+
"dev": true,
1595
1595
+
"license": "MIT",
1596
1596
+
"optional": true,
1597
1597
+
"os": [
1598
1598
+
"win32"
1599
1599
+
]
1600
1600
+
},
1601
1601
+
"node_modules/@shuding/opentype.js": {
1602
1602
+
"version": "1.4.0-beta.0",
1603
1603
+
"resolved": "https://registry.npmjs.org/@shuding/opentype.js/-/opentype.js-1.4.0-beta.0.tgz",
1604
1604
+
"integrity": "sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==",
1605
1605
+
"dev": true,
1606
1606
+
"license": "MIT",
1607
1607
+
"dependencies": {
1608
1608
+
"fflate": "^0.7.3",
1609
1609
+
"string.prototype.codepointat": "^0.2.1"
1610
1610
+
},
1611
1611
+
"bin": {
1612
1612
+
"ot": "bin/ot"
1613
1613
+
},
1614
1614
+
"engines": {
1615
1615
+
"node": ">= 8.0.0"
1616
1616
+
}
1617
1617
+
},
1618
1618
+
"node_modules/@tailwindcss/node": {
1619
1619
+
"version": "4.1.18",
1620
1620
+
"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz",
1621
1621
+
"integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==",
1622
1622
+
"dev": true,
1623
1623
+
"license": "MIT",
1624
1624
+
"dependencies": {
1625
1625
+
"@jridgewell/remapping": "^2.3.4",
1626
1626
+
"enhanced-resolve": "^5.18.3",
1627
1627
+
"jiti": "^2.6.1",
1628
1628
+
"lightningcss": "1.30.2",
1629
1629
+
"magic-string": "^0.30.21",
1630
1630
+
"source-map-js": "^1.2.1",
1631
1631
+
"tailwindcss": "4.1.18"
1632
1632
+
}
1633
1633
+
},
1634
1634
+
"node_modules/@tailwindcss/oxide": {
1635
1635
+
"version": "4.1.18",
1636
1636
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz",
1637
1637
+
"integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==",
1638
1638
+
"dev": true,
1639
1639
+
"license": "MIT",
1640
1640
+
"engines": {
1641
1641
+
"node": ">= 10"
1642
1642
+
},
1643
1643
+
"optionalDependencies": {
1644
1644
+
"@tailwindcss/oxide-android-arm64": "4.1.18",
1645
1645
+
"@tailwindcss/oxide-darwin-arm64": "4.1.18",
1646
1646
+
"@tailwindcss/oxide-darwin-x64": "4.1.18",
1647
1647
+
"@tailwindcss/oxide-freebsd-x64": "4.1.18",
1648
1648
+
"@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18",
1649
1649
+
"@tailwindcss/oxide-linux-arm64-gnu": "4.1.18",
1650
1650
+
"@tailwindcss/oxide-linux-arm64-musl": "4.1.18",
1651
1651
+
"@tailwindcss/oxide-linux-x64-gnu": "4.1.18",
1652
1652
+
"@tailwindcss/oxide-linux-x64-musl": "4.1.18",
1653
1653
+
"@tailwindcss/oxide-wasm32-wasi": "4.1.18",
1654
1654
+
"@tailwindcss/oxide-win32-arm64-msvc": "4.1.18",
1655
1655
+
"@tailwindcss/oxide-win32-x64-msvc": "4.1.18"
1656
1656
+
}
1657
1657
+
},
1658
1658
+
"node_modules/@tailwindcss/oxide-android-arm64": {
1659
1659
+
"version": "4.1.18",
1660
1660
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz",
1661
1661
+
"integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==",
1662
1662
+
"cpu": [
1663
1663
+
"arm64"
1664
1664
+
],
1665
1665
+
"dev": true,
1666
1666
+
"license": "MIT",
1667
1667
+
"optional": true,
1668
1668
+
"os": [
1669
1669
+
"android"
1670
1670
+
],
1671
1671
+
"engines": {
1672
1672
+
"node": ">= 10"
1673
1673
+
}
1674
1674
+
},
1675
1675
+
"node_modules/@tailwindcss/oxide-darwin-arm64": {
1676
1676
+
"version": "4.1.18",
1677
1677
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz",
1678
1678
+
"integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==",
1679
1679
+
"cpu": [
1680
1680
+
"arm64"
1681
1681
+
],
1682
1682
+
"dev": true,
1683
1683
+
"license": "MIT",
1684
1684
+
"optional": true,
1685
1685
+
"os": [
1686
1686
+
"darwin"
1687
1687
+
],
1688
1688
+
"engines": {
1689
1689
+
"node": ">= 10"
1690
1690
+
}
1691
1691
+
},
1692
1692
+
"node_modules/@tailwindcss/oxide-darwin-x64": {
1693
1693
+
"version": "4.1.18",
1694
1694
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz",
1695
1695
+
"integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==",
1696
1696
+
"cpu": [
1697
1697
+
"x64"
1698
1698
+
],
1699
1699
+
"dev": true,
1700
1700
+
"license": "MIT",
1701
1701
+
"optional": true,
1702
1702
+
"os": [
1703
1703
+
"darwin"
1704
1704
+
],
1705
1705
+
"engines": {
1706
1706
+
"node": ">= 10"
1707
1707
+
}
1708
1708
+
},
1709
1709
+
"node_modules/@tailwindcss/oxide-freebsd-x64": {
1710
1710
+
"version": "4.1.18",
1711
1711
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz",
1712
1712
+
"integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==",
1713
1713
+
"cpu": [
1714
1714
+
"x64"
1715
1715
+
],
1716
1716
+
"dev": true,
1717
1717
+
"license": "MIT",
1718
1718
+
"optional": true,
1719
1719
+
"os": [
1720
1720
+
"freebsd"
1721
1721
+
],
1722
1722
+
"engines": {
1723
1723
+
"node": ">= 10"
1724
1724
+
}
1725
1725
+
},
1726
1726
+
"node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
1727
1727
+
"version": "4.1.18",
1728
1728
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz",
1729
1729
+
"integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==",
1730
1730
+
"cpu": [
1731
1731
+
"arm"
1732
1732
+
],
1733
1733
+
"dev": true,
1734
1734
+
"license": "MIT",
1735
1735
+
"optional": true,
1736
1736
+
"os": [
1737
1737
+
"linux"
1738
1738
+
],
1739
1739
+
"engines": {
1740
1740
+
"node": ">= 10"
1741
1741
+
}
1742
1742
+
},
1743
1743
+
"node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
1744
1744
+
"version": "4.1.18",
1745
1745
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz",
1746
1746
+
"integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==",
1747
1747
+
"cpu": [
1748
1748
+
"arm64"
1749
1749
+
],
1750
1750
+
"dev": true,
1751
1751
+
"license": "MIT",
1752
1752
+
"optional": true,
1753
1753
+
"os": [
1754
1754
+
"linux"
1755
1755
+
],
1756
1756
+
"engines": {
1757
1757
+
"node": ">= 10"
1758
1758
+
}
1759
1759
+
},
1760
1760
+
"node_modules/@tailwindcss/oxide-linux-arm64-musl": {
1761
1761
+
"version": "4.1.18",
1762
1762
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz",
1763
1763
+
"integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==",
1764
1764
+
"cpu": [
1765
1765
+
"arm64"
1766
1766
+
],
1767
1767
+
"dev": true,
1768
1768
+
"license": "MIT",
1769
1769
+
"optional": true,
1770
1770
+
"os": [
1771
1771
+
"linux"
1772
1772
+
],
1773
1773
+
"engines": {
1774
1774
+
"node": ">= 10"
1775
1775
+
}
1776
1776
+
},
1777
1777
+
"node_modules/@tailwindcss/oxide-linux-x64-gnu": {
1778
1778
+
"version": "4.1.18",
1779
1779
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz",
1780
1780
+
"integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==",
1781
1781
+
"cpu": [
1782
1782
+
"x64"
1783
1783
+
],
1784
1784
+
"dev": true,
1785
1785
+
"license": "MIT",
1786
1786
+
"optional": true,
1787
1787
+
"os": [
1788
1788
+
"linux"
1789
1789
+
],
1790
1790
+
"engines": {
1791
1791
+
"node": ">= 10"
1792
1792
+
}
1793
1793
+
},
1794
1794
+
"node_modules/@tailwindcss/oxide-linux-x64-musl": {
1795
1795
+
"version": "4.1.18",
1796
1796
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz",
1797
1797
+
"integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==",
1798
1798
+
"cpu": [
1799
1799
+
"x64"
1800
1800
+
],
1801
1801
+
"dev": true,
1802
1802
+
"license": "MIT",
1803
1803
+
"optional": true,
1804
1804
+
"os": [
1805
1805
+
"linux"
1806
1806
+
],
1807
1807
+
"engines": {
1808
1808
+
"node": ">= 10"
1809
1809
+
}
1810
1810
+
},
1811
1811
+
"node_modules/@tailwindcss/oxide-wasm32-wasi": {
1812
1812
+
"version": "4.1.18",
1813
1813
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz",
1814
1814
+
"integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==",
1815
1815
+
"bundleDependencies": [
1816
1816
+
"@napi-rs/wasm-runtime",
1817
1817
+
"@emnapi/core",
1818
1818
+
"@emnapi/runtime",
1819
1819
+
"@tybys/wasm-util",
1820
1820
+
"@emnapi/wasi-threads",
1821
1821
+
"tslib"
1822
1822
+
],
1823
1823
+
"cpu": [
1824
1824
+
"wasm32"
1825
1825
+
],
1826
1826
+
"dev": true,
1827
1827
+
"license": "MIT",
1828
1828
+
"optional": true,
1829
1829
+
"dependencies": {
1830
1830
+
"@emnapi/core": "^1.7.1",
1831
1831
+
"@emnapi/runtime": "^1.7.1",
1832
1832
+
"@emnapi/wasi-threads": "^1.1.0",
1833
1833
+
"@napi-rs/wasm-runtime": "^1.1.0",
1834
1834
+
"@tybys/wasm-util": "^0.10.1",
1835
1835
+
"tslib": "^2.4.0"
1836
1836
+
},
1837
1837
+
"engines": {
1838
1838
+
"node": ">=14.0.0"
1839
1839
+
}
1840
1840
+
},
1841
1841
+
"node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
1842
1842
+
"version": "4.1.18",
1843
1843
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz",
1844
1844
+
"integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==",
1845
1845
+
"cpu": [
1846
1846
+
"arm64"
1847
1847
+
],
1848
1848
+
"dev": true,
1849
1849
+
"license": "MIT",
1850
1850
+
"optional": true,
1851
1851
+
"os": [
1852
1852
+
"win32"
1853
1853
+
],
1854
1854
+
"engines": {
1855
1855
+
"node": ">= 10"
1856
1856
+
}
1857
1857
+
},
1858
1858
+
"node_modules/@tailwindcss/oxide-win32-x64-msvc": {
1859
1859
+
"version": "4.1.18",
1860
1860
+
"resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz",
1861
1861
+
"integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==",
1862
1862
+
"cpu": [
1863
1863
+
"x64"
1864
1864
+
],
1865
1865
+
"dev": true,
1866
1866
+
"license": "MIT",
1867
1867
+
"optional": true,
1868
1868
+
"os": [
1869
1869
+
"win32"
1870
1870
+
],
1871
1871
+
"engines": {
1872
1872
+
"node": ">= 10"
1873
1873
+
}
1874
1874
+
},
1875
1875
+
"node_modules/@tailwindcss/vite": {
1876
1876
+
"version": "4.1.18",
1877
1877
+
"resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz",
1878
1878
+
"integrity": "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==",
1879
1879
+
"dev": true,
1880
1880
+
"license": "MIT",
1881
1881
+
"dependencies": {
1882
1882
+
"@tailwindcss/node": "4.1.18",
1883
1883
+
"@tailwindcss/oxide": "4.1.18",
1884
1884
+
"tailwindcss": "4.1.18"
1885
1885
+
},
1886
1886
+
"peerDependencies": {
1887
1887
+
"vite": "^5.2.0 || ^6 || ^7"
1888
1888
+
}
1889
1889
+
},
1890
1890
+
"node_modules/@types/babel__core": {
1891
1891
+
"version": "7.20.5",
1892
1892
+
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
1893
1893
+
"integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
1894
1894
+
"dev": true,
1895
1895
+
"license": "MIT",
1896
1896
+
"dependencies": {
1897
1897
+
"@babel/parser": "^7.20.7",
1898
1898
+
"@babel/types": "^7.20.7",
1899
1899
+
"@types/babel__generator": "*",
1900
1900
+
"@types/babel__template": "*",
1901
1901
+
"@types/babel__traverse": "*"
1902
1902
+
}
1903
1903
+
},
1904
1904
+
"node_modules/@types/babel__generator": {
1905
1905
+
"version": "7.27.0",
1906
1906
+
"resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
1907
1907
+
"integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
1908
1908
+
"dev": true,
1909
1909
+
"license": "MIT",
1910
1910
+
"dependencies": {
1911
1911
+
"@babel/types": "^7.0.0"
1912
1912
+
}
1913
1913
+
},
1914
1914
+
"node_modules/@types/babel__template": {
1915
1915
+
"version": "7.4.4",
1916
1916
+
"resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
1917
1917
+
"integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
1918
1918
+
"dev": true,
1919
1919
+
"license": "MIT",
1920
1920
+
"dependencies": {
1921
1921
+
"@babel/parser": "^7.1.0",
1922
1922
+
"@babel/types": "^7.0.0"
1923
1923
+
}
1924
1924
+
},
1925
1925
+
"node_modules/@types/babel__traverse": {
1926
1926
+
"version": "7.28.0",
1927
1927
+
"resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
1928
1928
+
"integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
1929
1929
+
"dev": true,
1930
1930
+
"license": "MIT",
1931
1931
+
"dependencies": {
1932
1932
+
"@babel/types": "^7.28.2"
1933
1933
+
}
1934
1934
+
},
1935
1935
+
"node_modules/@types/estree": {
1936
1936
+
"version": "1.0.8",
1937
1937
+
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1938
1938
+
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1939
1939
+
"dev": true,
1940
1940
+
"license": "MIT"
1941
1941
+
},
1942
1942
+
"node_modules/@types/json-schema": {
1943
1943
+
"version": "7.0.15",
1944
1944
+
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
1945
1945
+
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
1946
1946
+
"dev": true,
1947
1947
+
"license": "MIT"
1948
1948
+
},
1949
1949
+
"node_modules/@types/node": {
1950
1950
+
"version": "24.10.9",
1951
1951
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.9.tgz",
1952
1952
+
"integrity": "sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==",
1953
1953
+
"dev": true,
1954
1954
+
"license": "MIT",
1955
1955
+
"dependencies": {
1956
1956
+
"undici-types": "~7.16.0"
1957
1957
+
}
1958
1958
+
},
1959
1959
+
"node_modules/@types/react": {
1960
1960
+
"version": "19.2.9",
1961
1961
+
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.9.tgz",
1962
1962
+
"integrity": "sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==",
1963
1963
+
"dev": true,
1964
1964
+
"license": "MIT",
1965
1965
+
"dependencies": {
1966
1966
+
"csstype": "^3.2.2"
1967
1967
+
}
1968
1968
+
},
1969
1969
+
"node_modules/@types/react-dom": {
1970
1970
+
"version": "19.2.3",
1971
1971
+
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
1972
1972
+
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
1973
1973
+
"dev": true,
1974
1974
+
"license": "MIT",
1975
1975
+
"peerDependencies": {
1976
1976
+
"@types/react": "^19.2.0"
1977
1977
+
}
1978
1978
+
},
1979
1979
+
"node_modules/@typescript-eslint/eslint-plugin": {
1980
1980
+
"version": "8.53.1",
1981
1981
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.1.tgz",
1982
1982
+
"integrity": "sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==",
1983
1983
+
"dev": true,
1984
1984
+
"license": "MIT",
1985
1985
+
"dependencies": {
1986
1986
+
"@eslint-community/regexpp": "^4.12.2",
1987
1987
+
"@typescript-eslint/scope-manager": "8.53.1",
1988
1988
+
"@typescript-eslint/type-utils": "8.53.1",
1989
1989
+
"@typescript-eslint/utils": "8.53.1",
1990
1990
+
"@typescript-eslint/visitor-keys": "8.53.1",
1991
1991
+
"ignore": "^7.0.5",
1992
1992
+
"natural-compare": "^1.4.0",
1993
1993
+
"ts-api-utils": "^2.4.0"
1994
1994
+
},
1995
1995
+
"engines": {
1996
1996
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1997
1997
+
},
1998
1998
+
"funding": {
1999
1999
+
"type": "opencollective",
2000
2000
+
"url": "https://opencollective.com/typescript-eslint"
2001
2001
+
},
2002
2002
+
"peerDependencies": {
2003
2003
+
"@typescript-eslint/parser": "^8.53.1",
2004
2004
+
"eslint": "^8.57.0 || ^9.0.0",
2005
2005
+
"typescript": ">=4.8.4 <6.0.0"
2006
2006
+
}
2007
2007
+
},
2008
2008
+
"node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
2009
2009
+
"version": "7.0.5",
2010
2010
+
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
2011
2011
+
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
2012
2012
+
"dev": true,
2013
2013
+
"license": "MIT",
2014
2014
+
"engines": {
2015
2015
+
"node": ">= 4"
2016
2016
+
}
2017
2017
+
},
2018
2018
+
"node_modules/@typescript-eslint/parser": {
2019
2019
+
"version": "8.53.1",
2020
2020
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz",
2021
2021
+
"integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==",
2022
2022
+
"dev": true,
2023
2023
+
"license": "MIT",
2024
2024
+
"dependencies": {
2025
2025
+
"@typescript-eslint/scope-manager": "8.53.1",
2026
2026
+
"@typescript-eslint/types": "8.53.1",
2027
2027
+
"@typescript-eslint/typescript-estree": "8.53.1",
2028
2028
+
"@typescript-eslint/visitor-keys": "8.53.1",
2029
2029
+
"debug": "^4.4.3"
2030
2030
+
},
2031
2031
+
"engines": {
2032
2032
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2033
2033
+
},
2034
2034
+
"funding": {
2035
2035
+
"type": "opencollective",
2036
2036
+
"url": "https://opencollective.com/typescript-eslint"
2037
2037
+
},
2038
2038
+
"peerDependencies": {
2039
2039
+
"eslint": "^8.57.0 || ^9.0.0",
2040
2040
+
"typescript": ">=4.8.4 <6.0.0"
2041
2041
+
}
2042
2042
+
},
2043
2043
+
"node_modules/@typescript-eslint/project-service": {
2044
2044
+
"version": "8.53.1",
2045
2045
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz",
2046
2046
+
"integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==",
2047
2047
+
"dev": true,
2048
2048
+
"license": "MIT",
2049
2049
+
"dependencies": {
2050
2050
+
"@typescript-eslint/tsconfig-utils": "^8.53.1",
2051
2051
+
"@typescript-eslint/types": "^8.53.1",
2052
2052
+
"debug": "^4.4.3"
2053
2053
+
},
2054
2054
+
"engines": {
2055
2055
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2056
2056
+
},
2057
2057
+
"funding": {
2058
2058
+
"type": "opencollective",
2059
2059
+
"url": "https://opencollective.com/typescript-eslint"
2060
2060
+
},
2061
2061
+
"peerDependencies": {
2062
2062
+
"typescript": ">=4.8.4 <6.0.0"
2063
2063
+
}
2064
2064
+
},
2065
2065
+
"node_modules/@typescript-eslint/scope-manager": {
2066
2066
+
"version": "8.53.1",
2067
2067
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz",
2068
2068
+
"integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==",
2069
2069
+
"dev": true,
2070
2070
+
"license": "MIT",
2071
2071
+
"dependencies": {
2072
2072
+
"@typescript-eslint/types": "8.53.1",
2073
2073
+
"@typescript-eslint/visitor-keys": "8.53.1"
2074
2074
+
},
2075
2075
+
"engines": {
2076
2076
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2077
2077
+
},
2078
2078
+
"funding": {
2079
2079
+
"type": "opencollective",
2080
2080
+
"url": "https://opencollective.com/typescript-eslint"
2081
2081
+
}
2082
2082
+
},
2083
2083
+
"node_modules/@typescript-eslint/tsconfig-utils": {
2084
2084
+
"version": "8.53.1",
2085
2085
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz",
2086
2086
+
"integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==",
2087
2087
+
"dev": true,
2088
2088
+
"license": "MIT",
2089
2089
+
"engines": {
2090
2090
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2091
2091
+
},
2092
2092
+
"funding": {
2093
2093
+
"type": "opencollective",
2094
2094
+
"url": "https://opencollective.com/typescript-eslint"
2095
2095
+
},
2096
2096
+
"peerDependencies": {
2097
2097
+
"typescript": ">=4.8.4 <6.0.0"
2098
2098
+
}
2099
2099
+
},
2100
2100
+
"node_modules/@typescript-eslint/type-utils": {
2101
2101
+
"version": "8.53.1",
2102
2102
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.1.tgz",
2103
2103
+
"integrity": "sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==",
2104
2104
+
"dev": true,
2105
2105
+
"license": "MIT",
2106
2106
+
"dependencies": {
2107
2107
+
"@typescript-eslint/types": "8.53.1",
2108
2108
+
"@typescript-eslint/typescript-estree": "8.53.1",
2109
2109
+
"@typescript-eslint/utils": "8.53.1",
2110
2110
+
"debug": "^4.4.3",
2111
2111
+
"ts-api-utils": "^2.4.0"
2112
2112
+
},
2113
2113
+
"engines": {
2114
2114
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2115
2115
+
},
2116
2116
+
"funding": {
2117
2117
+
"type": "opencollective",
2118
2118
+
"url": "https://opencollective.com/typescript-eslint"
2119
2119
+
},
2120
2120
+
"peerDependencies": {
2121
2121
+
"eslint": "^8.57.0 || ^9.0.0",
2122
2122
+
"typescript": ">=4.8.4 <6.0.0"
2123
2123
+
}
2124
2124
+
},
2125
2125
+
"node_modules/@typescript-eslint/types": {
2126
2126
+
"version": "8.53.1",
2127
2127
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz",
2128
2128
+
"integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==",
2129
2129
+
"dev": true,
2130
2130
+
"license": "MIT",
2131
2131
+
"engines": {
2132
2132
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2133
2133
+
},
2134
2134
+
"funding": {
2135
2135
+
"type": "opencollective",
2136
2136
+
"url": "https://opencollective.com/typescript-eslint"
2137
2137
+
}
2138
2138
+
},
2139
2139
+
"node_modules/@typescript-eslint/typescript-estree": {
2140
2140
+
"version": "8.53.1",
2141
2141
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz",
2142
2142
+
"integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==",
2143
2143
+
"dev": true,
2144
2144
+
"license": "MIT",
2145
2145
+
"dependencies": {
2146
2146
+
"@typescript-eslint/project-service": "8.53.1",
2147
2147
+
"@typescript-eslint/tsconfig-utils": "8.53.1",
2148
2148
+
"@typescript-eslint/types": "8.53.1",
2149
2149
+
"@typescript-eslint/visitor-keys": "8.53.1",
2150
2150
+
"debug": "^4.4.3",
2151
2151
+
"minimatch": "^9.0.5",
2152
2152
+
"semver": "^7.7.3",
2153
2153
+
"tinyglobby": "^0.2.15",
2154
2154
+
"ts-api-utils": "^2.4.0"
2155
2155
+
},
2156
2156
+
"engines": {
2157
2157
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2158
2158
+
},
2159
2159
+
"funding": {
2160
2160
+
"type": "opencollective",
2161
2161
+
"url": "https://opencollective.com/typescript-eslint"
2162
2162
+
},
2163
2163
+
"peerDependencies": {
2164
2164
+
"typescript": ">=4.8.4 <6.0.0"
2165
2165
+
}
2166
2166
+
},
2167
2167
+
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
2168
2168
+
"version": "2.0.2",
2169
2169
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
2170
2170
+
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
2171
2171
+
"dev": true,
2172
2172
+
"license": "MIT",
2173
2173
+
"dependencies": {
2174
2174
+
"balanced-match": "^1.0.0"
2175
2175
+
}
2176
2176
+
},
2177
2177
+
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
2178
2178
+
"version": "9.0.5",
2179
2179
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
2180
2180
+
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
2181
2181
+
"dev": true,
2182
2182
+
"license": "ISC",
2183
2183
+
"dependencies": {
2184
2184
+
"brace-expansion": "^2.0.1"
2185
2185
+
},
2186
2186
+
"engines": {
2187
2187
+
"node": ">=16 || 14 >=14.17"
2188
2188
+
},
2189
2189
+
"funding": {
2190
2190
+
"url": "https://github.com/sponsors/isaacs"
2191
2191
+
}
2192
2192
+
},
2193
2193
+
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
2194
2194
+
"version": "7.7.3",
2195
2195
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
2196
2196
+
"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
2197
2197
+
"dev": true,
2198
2198
+
"license": "ISC",
2199
2199
+
"bin": {
2200
2200
+
"semver": "bin/semver.js"
2201
2201
+
},
2202
2202
+
"engines": {
2203
2203
+
"node": ">=10"
2204
2204
+
}
2205
2205
+
},
2206
2206
+
"node_modules/@typescript-eslint/utils": {
2207
2207
+
"version": "8.53.1",
2208
2208
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.1.tgz",
2209
2209
+
"integrity": "sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==",
2210
2210
+
"dev": true,
2211
2211
+
"license": "MIT",
2212
2212
+
"dependencies": {
2213
2213
+
"@eslint-community/eslint-utils": "^4.9.1",
2214
2214
+
"@typescript-eslint/scope-manager": "8.53.1",
2215
2215
+
"@typescript-eslint/types": "8.53.1",
2216
2216
+
"@typescript-eslint/typescript-estree": "8.53.1"
2217
2217
+
},
2218
2218
+
"engines": {
2219
2219
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2220
2220
+
},
2221
2221
+
"funding": {
2222
2222
+
"type": "opencollective",
2223
2223
+
"url": "https://opencollective.com/typescript-eslint"
2224
2224
+
},
2225
2225
+
"peerDependencies": {
2226
2226
+
"eslint": "^8.57.0 || ^9.0.0",
2227
2227
+
"typescript": ">=4.8.4 <6.0.0"
2228
2228
+
}
2229
2229
+
},
2230
2230
+
"node_modules/@typescript-eslint/visitor-keys": {
2231
2231
+
"version": "8.53.1",
2232
2232
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz",
2233
2233
+
"integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==",
2234
2234
+
"dev": true,
2235
2235
+
"license": "MIT",
2236
2236
+
"dependencies": {
2237
2237
+
"@typescript-eslint/types": "8.53.1",
2238
2238
+
"eslint-visitor-keys": "^4.2.1"
2239
2239
+
},
2240
2240
+
"engines": {
2241
2241
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2242
2242
+
},
2243
2243
+
"funding": {
2244
2244
+
"type": "opencollective",
2245
2245
+
"url": "https://opencollective.com/typescript-eslint"
2246
2246
+
}
2247
2247
+
},
2248
2248
+
"node_modules/@vitejs/plugin-react": {
2249
2249
+
"version": "5.1.2",
2250
2250
+
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz",
2251
2251
+
"integrity": "sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==",
2252
2252
+
"dev": true,
2253
2253
+
"license": "MIT",
2254
2254
+
"dependencies": {
2255
2255
+
"@babel/core": "^7.28.5",
2256
2256
+
"@babel/plugin-transform-react-jsx-self": "^7.27.1",
2257
2257
+
"@babel/plugin-transform-react-jsx-source": "^7.27.1",
2258
2258
+
"@rolldown/pluginutils": "1.0.0-beta.53",
2259
2259
+
"@types/babel__core": "^7.20.5",
2260
2260
+
"react-refresh": "^0.18.0"
2261
2261
+
},
2262
2262
+
"engines": {
2263
2263
+
"node": "^20.19.0 || >=22.12.0"
2264
2264
+
},
2265
2265
+
"peerDependencies": {
2266
2266
+
"vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
2267
2267
+
}
2268
2268
+
},
2269
2269
+
"node_modules/acorn": {
2270
2270
+
"version": "8.15.0",
2271
2271
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
2272
2272
+
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
2273
2273
+
"dev": true,
2274
2274
+
"license": "MIT",
2275
2275
+
"bin": {
2276
2276
+
"acorn": "bin/acorn"
2277
2277
+
},
2278
2278
+
"engines": {
2279
2279
+
"node": ">=0.4.0"
2280
2280
+
}
2281
2281
+
},
2282
2282
+
"node_modules/acorn-jsx": {
2283
2283
+
"version": "5.3.2",
2284
2284
+
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
2285
2285
+
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
2286
2286
+
"dev": true,
2287
2287
+
"license": "MIT",
2288
2288
+
"peerDependencies": {
2289
2289
+
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
2290
2290
+
}
2291
2291
+
},
2292
2292
+
"node_modules/ajv": {
2293
2293
+
"version": "6.12.6",
2294
2294
+
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
2295
2295
+
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
2296
2296
+
"dev": true,
2297
2297
+
"license": "MIT",
2298
2298
+
"dependencies": {
2299
2299
+
"fast-deep-equal": "^3.1.1",
2300
2300
+
"fast-json-stable-stringify": "^2.0.0",
2301
2301
+
"json-schema-traverse": "^0.4.1",
2302
2302
+
"uri-js": "^4.2.2"
2303
2303
+
},
2304
2304
+
"funding": {
2305
2305
+
"type": "github",
2306
2306
+
"url": "https://github.com/sponsors/epoberezkin"
2307
2307
+
}
2308
2308
+
},
2309
2309
+
"node_modules/ansi-styles": {
2310
2310
+
"version": "4.3.0",
2311
2311
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2312
2312
+
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2313
2313
+
"dev": true,
2314
2314
+
"license": "MIT",
2315
2315
+
"dependencies": {
2316
2316
+
"color-convert": "^2.0.1"
2317
2317
+
},
2318
2318
+
"engines": {
2319
2319
+
"node": ">=8"
2320
2320
+
},
2321
2321
+
"funding": {
2322
2322
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
2323
2323
+
}
2324
2324
+
},
2325
2325
+
"node_modules/argparse": {
2326
2326
+
"version": "2.0.1",
2327
2327
+
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
2328
2328
+
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
2329
2329
+
"dev": true,
2330
2330
+
"license": "Python-2.0"
2331
2331
+
},
2332
2332
+
"node_modules/balanced-match": {
2333
2333
+
"version": "1.0.2",
2334
2334
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2335
2335
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2336
2336
+
"dev": true,
2337
2337
+
"license": "MIT"
2338
2338
+
},
2339
2339
+
"node_modules/base64-js": {
2340
2340
+
"version": "0.0.8",
2341
2341
+
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz",
2342
2342
+
"integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==",
2343
2343
+
"dev": true,
2344
2344
+
"license": "MIT",
2345
2345
+
"engines": {
2346
2346
+
"node": ">= 0.4"
2347
2347
+
}
2348
2348
+
},
2349
2349
+
"node_modules/baseline-browser-mapping": {
2350
2350
+
"version": "2.9.16",
2351
2351
+
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.16.tgz",
2352
2352
+
"integrity": "sha512-KeUZdBuxngy825i8xvzaK1Ncnkx0tBmb3k8DkEuqjKRkmtvNTjey2ZsNeh8Dw4lfKvbCOu9oeNx2TKm2vHqcRw==",
2353
2353
+
"dev": true,
2354
2354
+
"license": "Apache-2.0",
2355
2355
+
"bin": {
2356
2356
+
"baseline-browser-mapping": "dist/cli.js"
2357
2357
+
}
2358
2358
+
},
2359
2359
+
"node_modules/brace-expansion": {
2360
2360
+
"version": "1.1.12",
2361
2361
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
2362
2362
+
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
2363
2363
+
"dev": true,
2364
2364
+
"license": "MIT",
2365
2365
+
"dependencies": {
2366
2366
+
"balanced-match": "^1.0.0",
2367
2367
+
"concat-map": "0.0.1"
2368
2368
+
}
2369
2369
+
},
2370
2370
+
"node_modules/browserslist": {
2371
2371
+
"version": "4.28.1",
2372
2372
+
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
2373
2373
+
"integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
2374
2374
+
"dev": true,
2375
2375
+
"funding": [
2376
2376
+
{
2377
2377
+
"type": "opencollective",
2378
2378
+
"url": "https://opencollective.com/browserslist"
2379
2379
+
},
2380
2380
+
{
2381
2381
+
"type": "tidelift",
2382
2382
+
"url": "https://tidelift.com/funding/github/npm/browserslist"
2383
2383
+
},
2384
2384
+
{
2385
2385
+
"type": "github",
2386
2386
+
"url": "https://github.com/sponsors/ai"
2387
2387
+
}
2388
2388
+
],
2389
2389
+
"license": "MIT",
2390
2390
+
"dependencies": {
2391
2391
+
"baseline-browser-mapping": "^2.9.0",
2392
2392
+
"caniuse-lite": "^1.0.30001759",
2393
2393
+
"electron-to-chromium": "^1.5.263",
2394
2394
+
"node-releases": "^2.0.27",
2395
2395
+
"update-browserslist-db": "^1.2.0"
2396
2396
+
},
2397
2397
+
"bin": {
2398
2398
+
"browserslist": "cli.js"
2399
2399
+
},
2400
2400
+
"engines": {
2401
2401
+
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
2402
2402
+
}
2403
2403
+
},
2404
2404
+
"node_modules/callsites": {
2405
2405
+
"version": "3.1.0",
2406
2406
+
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
2407
2407
+
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
2408
2408
+
"dev": true,
2409
2409
+
"license": "MIT",
2410
2410
+
"engines": {
2411
2411
+
"node": ">=6"
2412
2412
+
}
2413
2413
+
},
2414
2414
+
"node_modules/camelize": {
2415
2415
+
"version": "1.0.1",
2416
2416
+
"resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz",
2417
2417
+
"integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==",
2418
2418
+
"dev": true,
2419
2419
+
"license": "MIT",
2420
2420
+
"funding": {
2421
2421
+
"url": "https://github.com/sponsors/ljharb"
2422
2422
+
}
2423
2423
+
},
2424
2424
+
"node_modules/caniuse-lite": {
2425
2425
+
"version": "1.0.30001765",
2426
2426
+
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz",
2427
2427
+
"integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==",
2428
2428
+
"dev": true,
2429
2429
+
"funding": [
2430
2430
+
{
2431
2431
+
"type": "opencollective",
2432
2432
+
"url": "https://opencollective.com/browserslist"
2433
2433
+
},
2434
2434
+
{
2435
2435
+
"type": "tidelift",
2436
2436
+
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
2437
2437
+
},
2438
2438
+
{
2439
2439
+
"type": "github",
2440
2440
+
"url": "https://github.com/sponsors/ai"
2441
2441
+
}
2442
2442
+
],
2443
2443
+
"license": "CC-BY-4.0"
2444
2444
+
},
2445
2445
+
"node_modules/chalk": {
2446
2446
+
"version": "4.1.2",
2447
2447
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2448
2448
+
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2449
2449
+
"dev": true,
2450
2450
+
"license": "MIT",
2451
2451
+
"dependencies": {
2452
2452
+
"ansi-styles": "^4.1.0",
2453
2453
+
"supports-color": "^7.1.0"
2454
2454
+
},
2455
2455
+
"engines": {
2456
2456
+
"node": ">=10"
2457
2457
+
},
2458
2458
+
"funding": {
2459
2459
+
"url": "https://github.com/chalk/chalk?sponsor=1"
2460
2460
+
}
2461
2461
+
},
2462
2462
+
"node_modules/color-convert": {
2463
2463
+
"version": "2.0.1",
2464
2464
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2465
2465
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2466
2466
+
"dev": true,
2467
2467
+
"license": "MIT",
2468
2468
+
"dependencies": {
2469
2469
+
"color-name": "~1.1.4"
2470
2470
+
},
2471
2471
+
"engines": {
2472
2472
+
"node": ">=7.0.0"
2473
2473
+
}
2474
2474
+
},
2475
2475
+
"node_modules/color-name": {
2476
2476
+
"version": "1.1.4",
2477
2477
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2478
2478
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2479
2479
+
"dev": true,
2480
2480
+
"license": "MIT"
2481
2481
+
},
2482
2482
+
"node_modules/concat-map": {
2483
2483
+
"version": "0.0.1",
2484
2484
+
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2485
2485
+
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
2486
2486
+
"dev": true,
2487
2487
+
"license": "MIT"
2488
2488
+
},
2489
2489
+
"node_modules/convert-source-map": {
2490
2490
+
"version": "2.0.0",
2491
2491
+
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
2492
2492
+
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
2493
2493
+
"dev": true,
2494
2494
+
"license": "MIT"
2495
2495
+
},
2496
2496
+
"node_modules/cross-spawn": {
2497
2497
+
"version": "7.0.6",
2498
2498
+
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
2499
2499
+
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
2500
2500
+
"dev": true,
2501
2501
+
"license": "MIT",
2502
2502
+
"dependencies": {
2503
2503
+
"path-key": "^3.1.0",
2504
2504
+
"shebang-command": "^2.0.0",
2505
2505
+
"which": "^2.0.1"
2506
2506
+
},
2507
2507
+
"engines": {
2508
2508
+
"node": ">= 8"
2509
2509
+
}
2510
2510
+
},
2511
2511
+
"node_modules/css-background-parser": {
2512
2512
+
"version": "0.1.0",
2513
2513
+
"resolved": "https://registry.npmjs.org/css-background-parser/-/css-background-parser-0.1.0.tgz",
2514
2514
+
"integrity": "sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==",
2515
2515
+
"dev": true,
2516
2516
+
"license": "MIT"
2517
2517
+
},
2518
2518
+
"node_modules/css-box-shadow": {
2519
2519
+
"version": "1.0.0-3",
2520
2520
+
"resolved": "https://registry.npmjs.org/css-box-shadow/-/css-box-shadow-1.0.0-3.tgz",
2521
2521
+
"integrity": "sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==",
2522
2522
+
"dev": true,
2523
2523
+
"license": "MIT"
2524
2524
+
},
2525
2525
+
"node_modules/css-color-keywords": {
2526
2526
+
"version": "1.0.0",
2527
2527
+
"resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
2528
2528
+
"integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==",
2529
2529
+
"dev": true,
2530
2530
+
"license": "ISC",
2531
2531
+
"engines": {
2532
2532
+
"node": ">=4"
2533
2533
+
}
2534
2534
+
},
2535
2535
+
"node_modules/css-gradient-parser": {
2536
2536
+
"version": "0.0.17",
2537
2537
+
"resolved": "https://registry.npmjs.org/css-gradient-parser/-/css-gradient-parser-0.0.17.tgz",
2538
2538
+
"integrity": "sha512-w2Xy9UMMwlKtou0vlRnXvWglPAceXCTtcmVSo8ZBUvqCV5aXEFP/PC6d+I464810I9FT++UACwTD5511bmGPUg==",
2539
2539
+
"dev": true,
2540
2540
+
"license": "MIT",
2541
2541
+
"engines": {
2542
2542
+
"node": ">=16"
2543
2543
+
}
2544
2544
+
},
2545
2545
+
"node_modules/css-to-react-native": {
2546
2546
+
"version": "3.2.0",
2547
2547
+
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz",
2548
2548
+
"integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==",
2549
2549
+
"dev": true,
2550
2550
+
"license": "MIT",
2551
2551
+
"dependencies": {
2552
2552
+
"camelize": "^1.0.0",
2553
2553
+
"css-color-keywords": "^1.0.0",
2554
2554
+
"postcss-value-parser": "^4.0.2"
2555
2555
+
}
2556
2556
+
},
2557
2557
+
"node_modules/csstype": {
2558
2558
+
"version": "3.2.3",
2559
2559
+
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
2560
2560
+
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
2561
2561
+
"dev": true,
2562
2562
+
"license": "MIT"
2563
2563
+
},
2564
2564
+
"node_modules/debug": {
2565
2565
+
"version": "4.4.3",
2566
2566
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
2567
2567
+
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
2568
2568
+
"dev": true,
2569
2569
+
"license": "MIT",
2570
2570
+
"dependencies": {
2571
2571
+
"ms": "^2.1.3"
2572
2572
+
},
2573
2573
+
"engines": {
2574
2574
+
"node": ">=6.0"
2575
2575
+
},
2576
2576
+
"peerDependenciesMeta": {
2577
2577
+
"supports-color": {
2578
2578
+
"optional": true
2579
2579
+
}
2580
2580
+
}
2581
2581
+
},
2582
2582
+
"node_modules/deep-is": {
2583
2583
+
"version": "0.1.4",
2584
2584
+
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
2585
2585
+
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
2586
2586
+
"dev": true,
2587
2587
+
"license": "MIT"
2588
2588
+
},
2589
2589
+
"node_modules/detect-libc": {
2590
2590
+
"version": "2.1.2",
2591
2591
+
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
2592
2592
+
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
2593
2593
+
"dev": true,
2594
2594
+
"license": "Apache-2.0",
2595
2595
+
"engines": {
2596
2596
+
"node": ">=8"
2597
2597
+
}
2598
2598
+
},
2599
2599
+
"node_modules/electron-to-chromium": {
2600
2600
+
"version": "1.5.267",
2601
2601
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
2602
2602
+
"integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
2603
2603
+
"dev": true,
2604
2604
+
"license": "ISC"
2605
2605
+
},
2606
2606
+
"node_modules/emoji-regex-xs": {
2607
2607
+
"version": "2.0.1",
2608
2608
+
"resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-2.0.1.tgz",
2609
2609
+
"integrity": "sha512-1QFuh8l7LqUcKe24LsPUNzjrzJQ7pgRwp1QMcZ5MX6mFplk2zQ08NVCM84++1cveaUUYtcCYHmeFEuNg16sU4g==",
2610
2610
+
"dev": true,
2611
2611
+
"license": "MIT",
2612
2612
+
"engines": {
2613
2613
+
"node": ">=10.0.0"
2614
2614
+
}
2615
2615
+
},
2616
2616
+
"node_modules/enhanced-resolve": {
2617
2617
+
"version": "5.18.4",
2618
2618
+
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz",
2619
2619
+
"integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==",
2620
2620
+
"dev": true,
2621
2621
+
"license": "MIT",
2622
2622
+
"dependencies": {
2623
2623
+
"graceful-fs": "^4.2.4",
2624
2624
+
"tapable": "^2.2.0"
2625
2625
+
},
2626
2626
+
"engines": {
2627
2627
+
"node": ">=10.13.0"
2628
2628
+
}
2629
2629
+
},
2630
2630
+
"node_modules/esbuild": {
2631
2631
+
"version": "0.27.2",
2632
2632
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz",
2633
2633
+
"integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==",
2634
2634
+
"dev": true,
2635
2635
+
"hasInstallScript": true,
2636
2636
+
"license": "MIT",
2637
2637
+
"bin": {
2638
2638
+
"esbuild": "bin/esbuild"
2639
2639
+
},
2640
2640
+
"engines": {
2641
2641
+
"node": ">=18"
2642
2642
+
},
2643
2643
+
"optionalDependencies": {
2644
2644
+
"@esbuild/aix-ppc64": "0.27.2",
2645
2645
+
"@esbuild/android-arm": "0.27.2",
2646
2646
+
"@esbuild/android-arm64": "0.27.2",
2647
2647
+
"@esbuild/android-x64": "0.27.2",
2648
2648
+
"@esbuild/darwin-arm64": "0.27.2",
2649
2649
+
"@esbuild/darwin-x64": "0.27.2",
2650
2650
+
"@esbuild/freebsd-arm64": "0.27.2",
2651
2651
+
"@esbuild/freebsd-x64": "0.27.2",
2652
2652
+
"@esbuild/linux-arm": "0.27.2",
2653
2653
+
"@esbuild/linux-arm64": "0.27.2",
2654
2654
+
"@esbuild/linux-ia32": "0.27.2",
2655
2655
+
"@esbuild/linux-loong64": "0.27.2",
2656
2656
+
"@esbuild/linux-mips64el": "0.27.2",
2657
2657
+
"@esbuild/linux-ppc64": "0.27.2",
2658
2658
+
"@esbuild/linux-riscv64": "0.27.2",
2659
2659
+
"@esbuild/linux-s390x": "0.27.2",
2660
2660
+
"@esbuild/linux-x64": "0.27.2",
2661
2661
+
"@esbuild/netbsd-arm64": "0.27.2",
2662
2662
+
"@esbuild/netbsd-x64": "0.27.2",
2663
2663
+
"@esbuild/openbsd-arm64": "0.27.2",
2664
2664
+
"@esbuild/openbsd-x64": "0.27.2",
2665
2665
+
"@esbuild/openharmony-arm64": "0.27.2",
2666
2666
+
"@esbuild/sunos-x64": "0.27.2",
2667
2667
+
"@esbuild/win32-arm64": "0.27.2",
2668
2668
+
"@esbuild/win32-ia32": "0.27.2",
2669
2669
+
"@esbuild/win32-x64": "0.27.2"
2670
2670
+
}
2671
2671
+
},
2672
2672
+
"node_modules/escalade": {
2673
2673
+
"version": "3.2.0",
2674
2674
+
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
2675
2675
+
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
2676
2676
+
"dev": true,
2677
2677
+
"license": "MIT",
2678
2678
+
"engines": {
2679
2679
+
"node": ">=6"
2680
2680
+
}
2681
2681
+
},
2682
2682
+
"node_modules/escape-html": {
2683
2683
+
"version": "1.0.3",
2684
2684
+
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
2685
2685
+
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
2686
2686
+
"dev": true,
2687
2687
+
"license": "MIT"
2688
2688
+
},
2689
2689
+
"node_modules/escape-string-regexp": {
2690
2690
+
"version": "4.0.0",
2691
2691
+
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
2692
2692
+
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
2693
2693
+
"dev": true,
2694
2694
+
"license": "MIT",
2695
2695
+
"engines": {
2696
2696
+
"node": ">=10"
2697
2697
+
},
2698
2698
+
"funding": {
2699
2699
+
"url": "https://github.com/sponsors/sindresorhus"
2700
2700
+
}
2701
2701
+
},
2702
2702
+
"node_modules/eslint": {
2703
2703
+
"version": "9.39.2",
2704
2704
+
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz",
2705
2705
+
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
2706
2706
+
"dev": true,
2707
2707
+
"license": "MIT",
2708
2708
+
"dependencies": {
2709
2709
+
"@eslint-community/eslint-utils": "^4.8.0",
2710
2710
+
"@eslint-community/regexpp": "^4.12.1",
2711
2711
+
"@eslint/config-array": "^0.21.1",
2712
2712
+
"@eslint/config-helpers": "^0.4.2",
2713
2713
+
"@eslint/core": "^0.17.0",
2714
2714
+
"@eslint/eslintrc": "^3.3.1",
2715
2715
+
"@eslint/js": "9.39.2",
2716
2716
+
"@eslint/plugin-kit": "^0.4.1",
2717
2717
+
"@humanfs/node": "^0.16.6",
2718
2718
+
"@humanwhocodes/module-importer": "^1.0.1",
2719
2719
+
"@humanwhocodes/retry": "^0.4.2",
2720
2720
+
"@types/estree": "^1.0.6",
2721
2721
+
"ajv": "^6.12.4",
2722
2722
+
"chalk": "^4.0.0",
2723
2723
+
"cross-spawn": "^7.0.6",
2724
2724
+
"debug": "^4.3.2",
2725
2725
+
"escape-string-regexp": "^4.0.0",
2726
2726
+
"eslint-scope": "^8.4.0",
2727
2727
+
"eslint-visitor-keys": "^4.2.1",
2728
2728
+
"espree": "^10.4.0",
2729
2729
+
"esquery": "^1.5.0",
2730
2730
+
"esutils": "^2.0.2",
2731
2731
+
"fast-deep-equal": "^3.1.3",
2732
2732
+
"file-entry-cache": "^8.0.0",
2733
2733
+
"find-up": "^5.0.0",
2734
2734
+
"glob-parent": "^6.0.2",
2735
2735
+
"ignore": "^5.2.0",
2736
2736
+
"imurmurhash": "^0.1.4",
2737
2737
+
"is-glob": "^4.0.0",
2738
2738
+
"json-stable-stringify-without-jsonify": "^1.0.1",
2739
2739
+
"lodash.merge": "^4.6.2",
2740
2740
+
"minimatch": "^3.1.2",
2741
2741
+
"natural-compare": "^1.4.0",
2742
2742
+
"optionator": "^0.9.3"
2743
2743
+
},
2744
2744
+
"bin": {
2745
2745
+
"eslint": "bin/eslint.js"
2746
2746
+
},
2747
2747
+
"engines": {
2748
2748
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2749
2749
+
},
2750
2750
+
"funding": {
2751
2751
+
"url": "https://eslint.org/donate"
2752
2752
+
},
2753
2753
+
"peerDependencies": {
2754
2754
+
"jiti": "*"
2755
2755
+
},
2756
2756
+
"peerDependenciesMeta": {
2757
2757
+
"jiti": {
2758
2758
+
"optional": true
2759
2759
+
}
2760
2760
+
}
2761
2761
+
},
2762
2762
+
"node_modules/eslint-plugin-react-hooks": {
2763
2763
+
"version": "7.0.1",
2764
2764
+
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz",
2765
2765
+
"integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==",
2766
2766
+
"dev": true,
2767
2767
+
"license": "MIT",
2768
2768
+
"dependencies": {
2769
2769
+
"@babel/core": "^7.24.4",
2770
2770
+
"@babel/parser": "^7.24.4",
2771
2771
+
"hermes-parser": "^0.25.1",
2772
2772
+
"zod": "^3.25.0 || ^4.0.0",
2773
2773
+
"zod-validation-error": "^3.5.0 || ^4.0.0"
2774
2774
+
},
2775
2775
+
"engines": {
2776
2776
+
"node": ">=18"
2777
2777
+
},
2778
2778
+
"peerDependencies": {
2779
2779
+
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
2780
2780
+
}
2781
2781
+
},
2782
2782
+
"node_modules/eslint-plugin-react-refresh": {
2783
2783
+
"version": "0.4.26",
2784
2784
+
"resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz",
2785
2785
+
"integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==",
2786
2786
+
"dev": true,
2787
2787
+
"license": "MIT",
2788
2788
+
"peerDependencies": {
2789
2789
+
"eslint": ">=8.40"
2790
2790
+
}
2791
2791
+
},
2792
2792
+
"node_modules/eslint-scope": {
2793
2793
+
"version": "8.4.0",
2794
2794
+
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
2795
2795
+
"integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
2796
2796
+
"dev": true,
2797
2797
+
"license": "BSD-2-Clause",
2798
2798
+
"dependencies": {
2799
2799
+
"esrecurse": "^4.3.0",
2800
2800
+
"estraverse": "^5.2.0"
2801
2801
+
},
2802
2802
+
"engines": {
2803
2803
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2804
2804
+
},
2805
2805
+
"funding": {
2806
2806
+
"url": "https://opencollective.com/eslint"
2807
2807
+
}
2808
2808
+
},
2809
2809
+
"node_modules/eslint-visitor-keys": {
2810
2810
+
"version": "4.2.1",
2811
2811
+
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
2812
2812
+
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
2813
2813
+
"dev": true,
2814
2814
+
"license": "Apache-2.0",
2815
2815
+
"engines": {
2816
2816
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2817
2817
+
},
2818
2818
+
"funding": {
2819
2819
+
"url": "https://opencollective.com/eslint"
2820
2820
+
}
2821
2821
+
},
2822
2822
+
"node_modules/espree": {
2823
2823
+
"version": "10.4.0",
2824
2824
+
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
2825
2825
+
"integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
2826
2826
+
"dev": true,
2827
2827
+
"license": "BSD-2-Clause",
2828
2828
+
"dependencies": {
2829
2829
+
"acorn": "^8.15.0",
2830
2830
+
"acorn-jsx": "^5.3.2",
2831
2831
+
"eslint-visitor-keys": "^4.2.1"
2832
2832
+
},
2833
2833
+
"engines": {
2834
2834
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2835
2835
+
},
2836
2836
+
"funding": {
2837
2837
+
"url": "https://opencollective.com/eslint"
2838
2838
+
}
2839
2839
+
},
2840
2840
+
"node_modules/esquery": {
2841
2841
+
"version": "1.7.0",
2842
2842
+
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
2843
2843
+
"integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
2844
2844
+
"dev": true,
2845
2845
+
"license": "BSD-3-Clause",
2846
2846
+
"dependencies": {
2847
2847
+
"estraverse": "^5.1.0"
2848
2848
+
},
2849
2849
+
"engines": {
2850
2850
+
"node": ">=0.10"
2851
2851
+
}
2852
2852
+
},
2853
2853
+
"node_modules/esrecurse": {
2854
2854
+
"version": "4.3.0",
2855
2855
+
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
2856
2856
+
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
2857
2857
+
"dev": true,
2858
2858
+
"license": "BSD-2-Clause",
2859
2859
+
"dependencies": {
2860
2860
+
"estraverse": "^5.2.0"
2861
2861
+
},
2862
2862
+
"engines": {
2863
2863
+
"node": ">=4.0"
2864
2864
+
}
2865
2865
+
},
2866
2866
+
"node_modules/estraverse": {
2867
2867
+
"version": "5.3.0",
2868
2868
+
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
2869
2869
+
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
2870
2870
+
"dev": true,
2871
2871
+
"license": "BSD-2-Clause",
2872
2872
+
"engines": {
2873
2873
+
"node": ">=4.0"
2874
2874
+
}
2875
2875
+
},
2876
2876
+
"node_modules/esutils": {
2877
2877
+
"version": "2.0.3",
2878
2878
+
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
2879
2879
+
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
2880
2880
+
"dev": true,
2881
2881
+
"license": "BSD-2-Clause",
2882
2882
+
"engines": {
2883
2883
+
"node": ">=0.10.0"
2884
2884
+
}
2885
2885
+
},
2886
2886
+
"node_modules/fast-deep-equal": {
2887
2887
+
"version": "3.1.3",
2888
2888
+
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2889
2889
+
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
2890
2890
+
"dev": true,
2891
2891
+
"license": "MIT"
2892
2892
+
},
2893
2893
+
"node_modules/fast-json-stable-stringify": {
2894
2894
+
"version": "2.1.0",
2895
2895
+
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
2896
2896
+
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
2897
2897
+
"dev": true,
2898
2898
+
"license": "MIT"
2899
2899
+
},
2900
2900
+
"node_modules/fast-levenshtein": {
2901
2901
+
"version": "2.0.6",
2902
2902
+
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
2903
2903
+
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
2904
2904
+
"dev": true,
2905
2905
+
"license": "MIT"
2906
2906
+
},
2907
2907
+
"node_modules/fdir": {
2908
2908
+
"version": "6.5.0",
2909
2909
+
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
2910
2910
+
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
2911
2911
+
"dev": true,
2912
2912
+
"license": "MIT",
2913
2913
+
"engines": {
2914
2914
+
"node": ">=12.0.0"
2915
2915
+
},
2916
2916
+
"peerDependencies": {
2917
2917
+
"picomatch": "^3 || ^4"
2918
2918
+
},
2919
2919
+
"peerDependenciesMeta": {
2920
2920
+
"picomatch": {
2921
2921
+
"optional": true
2922
2922
+
}
2923
2923
+
}
2924
2924
+
},
2925
2925
+
"node_modules/fflate": {
2926
2926
+
"version": "0.7.4",
2927
2927
+
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz",
2928
2928
+
"integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==",
2929
2929
+
"dev": true,
2930
2930
+
"license": "MIT"
2931
2931
+
},
2932
2932
+
"node_modules/file-entry-cache": {
2933
2933
+
"version": "8.0.0",
2934
2934
+
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
2935
2935
+
"integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
2936
2936
+
"dev": true,
2937
2937
+
"license": "MIT",
2938
2938
+
"dependencies": {
2939
2939
+
"flat-cache": "^4.0.0"
2940
2940
+
},
2941
2941
+
"engines": {
2942
2942
+
"node": ">=16.0.0"
2943
2943
+
}
2944
2944
+
},
2945
2945
+
"node_modules/find-up": {
2946
2946
+
"version": "5.0.0",
2947
2947
+
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
2948
2948
+
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
2949
2949
+
"dev": true,
2950
2950
+
"license": "MIT",
2951
2951
+
"dependencies": {
2952
2952
+
"locate-path": "^6.0.0",
2953
2953
+
"path-exists": "^4.0.0"
2954
2954
+
},
2955
2955
+
"engines": {
2956
2956
+
"node": ">=10"
2957
2957
+
},
2958
2958
+
"funding": {
2959
2959
+
"url": "https://github.com/sponsors/sindresorhus"
2960
2960
+
}
2961
2961
+
},
2962
2962
+
"node_modules/flat-cache": {
2963
2963
+
"version": "4.0.1",
2964
2964
+
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
2965
2965
+
"integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
2966
2966
+
"dev": true,
2967
2967
+
"license": "MIT",
2968
2968
+
"dependencies": {
2969
2969
+
"flatted": "^3.2.9",
2970
2970
+
"keyv": "^4.5.4"
2971
2971
+
},
2972
2972
+
"engines": {
2973
2973
+
"node": ">=16"
2974
2974
+
}
2975
2975
+
},
2976
2976
+
"node_modules/flatted": {
2977
2977
+
"version": "3.3.3",
2978
2978
+
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
2979
2979
+
"integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
2980
2980
+
"dev": true,
2981
2981
+
"license": "ISC"
2982
2982
+
},
2983
2983
+
"node_modules/fsevents": {
2984
2984
+
"version": "2.3.3",
2985
2985
+
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
2986
2986
+
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
2987
2987
+
"dev": true,
2988
2988
+
"hasInstallScript": true,
2989
2989
+
"license": "MIT",
2990
2990
+
"optional": true,
2991
2991
+
"os": [
2992
2992
+
"darwin"
2993
2993
+
],
2994
2994
+
"engines": {
2995
2995
+
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
2996
2996
+
}
2997
2997
+
},
2998
2998
+
"node_modules/gensync": {
2999
2999
+
"version": "1.0.0-beta.2",
3000
3000
+
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
3001
3001
+
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
3002
3002
+
"dev": true,
3003
3003
+
"license": "MIT",
3004
3004
+
"engines": {
3005
3005
+
"node": ">=6.9.0"
3006
3006
+
}
3007
3007
+
},
3008
3008
+
"node_modules/glob-parent": {
3009
3009
+
"version": "6.0.2",
3010
3010
+
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
3011
3011
+
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
3012
3012
+
"dev": true,
3013
3013
+
"license": "ISC",
3014
3014
+
"dependencies": {
3015
3015
+
"is-glob": "^4.0.3"
3016
3016
+
},
3017
3017
+
"engines": {
3018
3018
+
"node": ">=10.13.0"
3019
3019
+
}
3020
3020
+
},
3021
3021
+
"node_modules/globals": {
3022
3022
+
"version": "16.5.0",
3023
3023
+
"resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz",
3024
3024
+
"integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==",
3025
3025
+
"dev": true,
3026
3026
+
"license": "MIT",
3027
3027
+
"engines": {
3028
3028
+
"node": ">=18"
3029
3029
+
},
3030
3030
+
"funding": {
3031
3031
+
"url": "https://github.com/sponsors/sindresorhus"
3032
3032
+
}
3033
3033
+
},
3034
3034
+
"node_modules/graceful-fs": {
3035
3035
+
"version": "4.2.11",
3036
3036
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
3037
3037
+
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
3038
3038
+
"dev": true,
3039
3039
+
"license": "ISC"
3040
3040
+
},
3041
3041
+
"node_modules/has-flag": {
3042
3042
+
"version": "4.0.0",
3043
3043
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3044
3044
+
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3045
3045
+
"dev": true,
3046
3046
+
"license": "MIT",
3047
3047
+
"engines": {
3048
3048
+
"node": ">=8"
3049
3049
+
}
3050
3050
+
},
3051
3051
+
"node_modules/hermes-estree": {
3052
3052
+
"version": "0.25.1",
3053
3053
+
"resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz",
3054
3054
+
"integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==",
3055
3055
+
"dev": true,
3056
3056
+
"license": "MIT"
3057
3057
+
},
3058
3058
+
"node_modules/hermes-parser": {
3059
3059
+
"version": "0.25.1",
3060
3060
+
"resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz",
3061
3061
+
"integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==",
3062
3062
+
"dev": true,
3063
3063
+
"license": "MIT",
3064
3064
+
"dependencies": {
3065
3065
+
"hermes-estree": "0.25.1"
3066
3066
+
}
3067
3067
+
},
3068
3068
+
"node_modules/hex-rgb": {
3069
3069
+
"version": "4.3.0",
3070
3070
+
"resolved": "https://registry.npmjs.org/hex-rgb/-/hex-rgb-4.3.0.tgz",
3071
3071
+
"integrity": "sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==",
3072
3072
+
"dev": true,
3073
3073
+
"license": "MIT",
3074
3074
+
"engines": {
3075
3075
+
"node": ">=6"
3076
3076
+
},
3077
3077
+
"funding": {
3078
3078
+
"url": "https://github.com/sponsors/sindresorhus"
3079
3079
+
}
3080
3080
+
},
3081
3081
+
"node_modules/ignore": {
3082
3082
+
"version": "5.3.2",
3083
3083
+
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
3084
3084
+
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
3085
3085
+
"dev": true,
3086
3086
+
"license": "MIT",
3087
3087
+
"engines": {
3088
3088
+
"node": ">= 4"
3089
3089
+
}
3090
3090
+
},
3091
3091
+
"node_modules/import-fresh": {
3092
3092
+
"version": "3.3.1",
3093
3093
+
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
3094
3094
+
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
3095
3095
+
"dev": true,
3096
3096
+
"license": "MIT",
3097
3097
+
"dependencies": {
3098
3098
+
"parent-module": "^1.0.0",
3099
3099
+
"resolve-from": "^4.0.0"
3100
3100
+
},
3101
3101
+
"engines": {
3102
3102
+
"node": ">=6"
3103
3103
+
},
3104
3104
+
"funding": {
3105
3105
+
"url": "https://github.com/sponsors/sindresorhus"
3106
3106
+
}
3107
3107
+
},
3108
3108
+
"node_modules/imurmurhash": {
3109
3109
+
"version": "0.1.4",
3110
3110
+
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
3111
3111
+
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
3112
3112
+
"dev": true,
3113
3113
+
"license": "MIT",
3114
3114
+
"engines": {
3115
3115
+
"node": ">=0.8.19"
3116
3116
+
}
3117
3117
+
},
3118
3118
+
"node_modules/is-extglob": {
3119
3119
+
"version": "2.1.1",
3120
3120
+
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
3121
3121
+
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
3122
3122
+
"dev": true,
3123
3123
+
"license": "MIT",
3124
3124
+
"engines": {
3125
3125
+
"node": ">=0.10.0"
3126
3126
+
}
3127
3127
+
},
3128
3128
+
"node_modules/is-glob": {
3129
3129
+
"version": "4.0.3",
3130
3130
+
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
3131
3131
+
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
3132
3132
+
"dev": true,
3133
3133
+
"license": "MIT",
3134
3134
+
"dependencies": {
3135
3135
+
"is-extglob": "^2.1.1"
3136
3136
+
},
3137
3137
+
"engines": {
3138
3138
+
"node": ">=0.10.0"
3139
3139
+
}
3140
3140
+
},
3141
3141
+
"node_modules/isexe": {
3142
3142
+
"version": "2.0.0",
3143
3143
+
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
3144
3144
+
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
3145
3145
+
"dev": true,
3146
3146
+
"license": "ISC"
3147
3147
+
},
3148
3148
+
"node_modules/jiti": {
3149
3149
+
"version": "2.6.1",
3150
3150
+
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
3151
3151
+
"integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
3152
3152
+
"dev": true,
3153
3153
+
"license": "MIT",
3154
3154
+
"bin": {
3155
3155
+
"jiti": "lib/jiti-cli.mjs"
3156
3156
+
}
3157
3157
+
},
3158
3158
+
"node_modules/js-tokens": {
3159
3159
+
"version": "4.0.0",
3160
3160
+
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
3161
3161
+
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
3162
3162
+
"dev": true,
3163
3163
+
"license": "MIT"
3164
3164
+
},
3165
3165
+
"node_modules/js-yaml": {
3166
3166
+
"version": "4.1.1",
3167
3167
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
3168
3168
+
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
3169
3169
+
"dev": true,
3170
3170
+
"license": "MIT",
3171
3171
+
"dependencies": {
3172
3172
+
"argparse": "^2.0.1"
3173
3173
+
},
3174
3174
+
"bin": {
3175
3175
+
"js-yaml": "bin/js-yaml.js"
3176
3176
+
}
3177
3177
+
},
3178
3178
+
"node_modules/jsesc": {
3179
3179
+
"version": "3.1.0",
3180
3180
+
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
3181
3181
+
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
3182
3182
+
"dev": true,
3183
3183
+
"license": "MIT",
3184
3184
+
"bin": {
3185
3185
+
"jsesc": "bin/jsesc"
3186
3186
+
},
3187
3187
+
"engines": {
3188
3188
+
"node": ">=6"
3189
3189
+
}
3190
3190
+
},
3191
3191
+
"node_modules/json-buffer": {
3192
3192
+
"version": "3.0.1",
3193
3193
+
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
3194
3194
+
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
3195
3195
+
"dev": true,
3196
3196
+
"license": "MIT"
3197
3197
+
},
3198
3198
+
"node_modules/json-schema-traverse": {
3199
3199
+
"version": "0.4.1",
3200
3200
+
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
3201
3201
+
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
3202
3202
+
"dev": true,
3203
3203
+
"license": "MIT"
3204
3204
+
},
3205
3205
+
"node_modules/json-stable-stringify-without-jsonify": {
3206
3206
+
"version": "1.0.1",
3207
3207
+
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
3208
3208
+
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
3209
3209
+
"dev": true,
3210
3210
+
"license": "MIT"
3211
3211
+
},
3212
3212
+
"node_modules/json5": {
3213
3213
+
"version": "2.2.3",
3214
3214
+
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
3215
3215
+
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
3216
3216
+
"dev": true,
3217
3217
+
"license": "MIT",
3218
3218
+
"bin": {
3219
3219
+
"json5": "lib/cli.js"
3220
3220
+
},
3221
3221
+
"engines": {
3222
3222
+
"node": ">=6"
3223
3223
+
}
3224
3224
+
},
3225
3225
+
"node_modules/keyv": {
3226
3226
+
"version": "4.5.4",
3227
3227
+
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
3228
3228
+
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
3229
3229
+
"dev": true,
3230
3230
+
"license": "MIT",
3231
3231
+
"dependencies": {
3232
3232
+
"json-buffer": "3.0.1"
3233
3233
+
}
3234
3234
+
},
3235
3235
+
"node_modules/levn": {
3236
3236
+
"version": "0.4.1",
3237
3237
+
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
3238
3238
+
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
3239
3239
+
"dev": true,
3240
3240
+
"license": "MIT",
3241
3241
+
"dependencies": {
3242
3242
+
"prelude-ls": "^1.2.1",
3243
3243
+
"type-check": "~0.4.0"
3244
3244
+
},
3245
3245
+
"engines": {
3246
3246
+
"node": ">= 0.8.0"
3247
3247
+
}
3248
3248
+
},
3249
3249
+
"node_modules/lightningcss": {
3250
3250
+
"version": "1.30.2",
3251
3251
+
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz",
3252
3252
+
"integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==",
3253
3253
+
"dev": true,
3254
3254
+
"license": "MPL-2.0",
3255
3255
+
"dependencies": {
3256
3256
+
"detect-libc": "^2.0.3"
3257
3257
+
},
3258
3258
+
"engines": {
3259
3259
+
"node": ">= 12.0.0"
3260
3260
+
},
3261
3261
+
"funding": {
3262
3262
+
"type": "opencollective",
3263
3263
+
"url": "https://opencollective.com/parcel"
3264
3264
+
},
3265
3265
+
"optionalDependencies": {
3266
3266
+
"lightningcss-android-arm64": "1.30.2",
3267
3267
+
"lightningcss-darwin-arm64": "1.30.2",
3268
3268
+
"lightningcss-darwin-x64": "1.30.2",
3269
3269
+
"lightningcss-freebsd-x64": "1.30.2",
3270
3270
+
"lightningcss-linux-arm-gnueabihf": "1.30.2",
3271
3271
+
"lightningcss-linux-arm64-gnu": "1.30.2",
3272
3272
+
"lightningcss-linux-arm64-musl": "1.30.2",
3273
3273
+
"lightningcss-linux-x64-gnu": "1.30.2",
3274
3274
+
"lightningcss-linux-x64-musl": "1.30.2",
3275
3275
+
"lightningcss-win32-arm64-msvc": "1.30.2",
3276
3276
+
"lightningcss-win32-x64-msvc": "1.30.2"
3277
3277
+
}
3278
3278
+
},
3279
3279
+
"node_modules/lightningcss-android-arm64": {
3280
3280
+
"version": "1.30.2",
3281
3281
+
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz",
3282
3282
+
"integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==",
3283
3283
+
"cpu": [
3284
3284
+
"arm64"
3285
3285
+
],
3286
3286
+
"dev": true,
3287
3287
+
"license": "MPL-2.0",
3288
3288
+
"optional": true,
3289
3289
+
"os": [
3290
3290
+
"android"
3291
3291
+
],
3292
3292
+
"engines": {
3293
3293
+
"node": ">= 12.0.0"
3294
3294
+
},
3295
3295
+
"funding": {
3296
3296
+
"type": "opencollective",
3297
3297
+
"url": "https://opencollective.com/parcel"
3298
3298
+
}
3299
3299
+
},
3300
3300
+
"node_modules/lightningcss-darwin-arm64": {
3301
3301
+
"version": "1.30.2",
3302
3302
+
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz",
3303
3303
+
"integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==",
3304
3304
+
"cpu": [
3305
3305
+
"arm64"
3306
3306
+
],
3307
3307
+
"dev": true,
3308
3308
+
"license": "MPL-2.0",
3309
3309
+
"optional": true,
3310
3310
+
"os": [
3311
3311
+
"darwin"
3312
3312
+
],
3313
3313
+
"engines": {
3314
3314
+
"node": ">= 12.0.0"
3315
3315
+
},
3316
3316
+
"funding": {
3317
3317
+
"type": "opencollective",
3318
3318
+
"url": "https://opencollective.com/parcel"
3319
3319
+
}
3320
3320
+
},
3321
3321
+
"node_modules/lightningcss-darwin-x64": {
3322
3322
+
"version": "1.30.2",
3323
3323
+
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz",
3324
3324
+
"integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==",
3325
3325
+
"cpu": [
3326
3326
+
"x64"
3327
3327
+
],
3328
3328
+
"dev": true,
3329
3329
+
"license": "MPL-2.0",
3330
3330
+
"optional": true,
3331
3331
+
"os": [
3332
3332
+
"darwin"
3333
3333
+
],
3334
3334
+
"engines": {
3335
3335
+
"node": ">= 12.0.0"
3336
3336
+
},
3337
3337
+
"funding": {
3338
3338
+
"type": "opencollective",
3339
3339
+
"url": "https://opencollective.com/parcel"
3340
3340
+
}
3341
3341
+
},
3342
3342
+
"node_modules/lightningcss-freebsd-x64": {
3343
3343
+
"version": "1.30.2",
3344
3344
+
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz",
3345
3345
+
"integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==",
3346
3346
+
"cpu": [
3347
3347
+
"x64"
3348
3348
+
],
3349
3349
+
"dev": true,
3350
3350
+
"license": "MPL-2.0",
3351
3351
+
"optional": true,
3352
3352
+
"os": [
3353
3353
+
"freebsd"
3354
3354
+
],
3355
3355
+
"engines": {
3356
3356
+
"node": ">= 12.0.0"
3357
3357
+
},
3358
3358
+
"funding": {
3359
3359
+
"type": "opencollective",
3360
3360
+
"url": "https://opencollective.com/parcel"
3361
3361
+
}
3362
3362
+
},
3363
3363
+
"node_modules/lightningcss-linux-arm-gnueabihf": {
3364
3364
+
"version": "1.30.2",
3365
3365
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz",
3366
3366
+
"integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==",
3367
3367
+
"cpu": [
3368
3368
+
"arm"
3369
3369
+
],
3370
3370
+
"dev": true,
3371
3371
+
"license": "MPL-2.0",
3372
3372
+
"optional": true,
3373
3373
+
"os": [
3374
3374
+
"linux"
3375
3375
+
],
3376
3376
+
"engines": {
3377
3377
+
"node": ">= 12.0.0"
3378
3378
+
},
3379
3379
+
"funding": {
3380
3380
+
"type": "opencollective",
3381
3381
+
"url": "https://opencollective.com/parcel"
3382
3382
+
}
3383
3383
+
},
3384
3384
+
"node_modules/lightningcss-linux-arm64-gnu": {
3385
3385
+
"version": "1.30.2",
3386
3386
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz",
3387
3387
+
"integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==",
3388
3388
+
"cpu": [
3389
3389
+
"arm64"
3390
3390
+
],
3391
3391
+
"dev": true,
3392
3392
+
"license": "MPL-2.0",
3393
3393
+
"optional": true,
3394
3394
+
"os": [
3395
3395
+
"linux"
3396
3396
+
],
3397
3397
+
"engines": {
3398
3398
+
"node": ">= 12.0.0"
3399
3399
+
},
3400
3400
+
"funding": {
3401
3401
+
"type": "opencollective",
3402
3402
+
"url": "https://opencollective.com/parcel"
3403
3403
+
}
3404
3404
+
},
3405
3405
+
"node_modules/lightningcss-linux-arm64-musl": {
3406
3406
+
"version": "1.30.2",
3407
3407
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz",
3408
3408
+
"integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==",
3409
3409
+
"cpu": [
3410
3410
+
"arm64"
3411
3411
+
],
3412
3412
+
"dev": true,
3413
3413
+
"license": "MPL-2.0",
3414
3414
+
"optional": true,
3415
3415
+
"os": [
3416
3416
+
"linux"
3417
3417
+
],
3418
3418
+
"engines": {
3419
3419
+
"node": ">= 12.0.0"
3420
3420
+
},
3421
3421
+
"funding": {
3422
3422
+
"type": "opencollective",
3423
3423
+
"url": "https://opencollective.com/parcel"
3424
3424
+
}
3425
3425
+
},
3426
3426
+
"node_modules/lightningcss-linux-x64-gnu": {
3427
3427
+
"version": "1.30.2",
3428
3428
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz",
3429
3429
+
"integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==",
3430
3430
+
"cpu": [
3431
3431
+
"x64"
3432
3432
+
],
3433
3433
+
"dev": true,
3434
3434
+
"license": "MPL-2.0",
3435
3435
+
"optional": true,
3436
3436
+
"os": [
3437
3437
+
"linux"
3438
3438
+
],
3439
3439
+
"engines": {
3440
3440
+
"node": ">= 12.0.0"
3441
3441
+
},
3442
3442
+
"funding": {
3443
3443
+
"type": "opencollective",
3444
3444
+
"url": "https://opencollective.com/parcel"
3445
3445
+
}
3446
3446
+
},
3447
3447
+
"node_modules/lightningcss-linux-x64-musl": {
3448
3448
+
"version": "1.30.2",
3449
3449
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz",
3450
3450
+
"integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==",
3451
3451
+
"cpu": [
3452
3452
+
"x64"
3453
3453
+
],
3454
3454
+
"dev": true,
3455
3455
+
"license": "MPL-2.0",
3456
3456
+
"optional": true,
3457
3457
+
"os": [
3458
3458
+
"linux"
3459
3459
+
],
3460
3460
+
"engines": {
3461
3461
+
"node": ">= 12.0.0"
3462
3462
+
},
3463
3463
+
"funding": {
3464
3464
+
"type": "opencollective",
3465
3465
+
"url": "https://opencollective.com/parcel"
3466
3466
+
}
3467
3467
+
},
3468
3468
+
"node_modules/lightningcss-win32-arm64-msvc": {
3469
3469
+
"version": "1.30.2",
3470
3470
+
"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz",
3471
3471
+
"integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==",
3472
3472
+
"cpu": [
3473
3473
+
"arm64"
3474
3474
+
],
3475
3475
+
"dev": true,
3476
3476
+
"license": "MPL-2.0",
3477
3477
+
"optional": true,
3478
3478
+
"os": [
3479
3479
+
"win32"
3480
3480
+
],
3481
3481
+
"engines": {
3482
3482
+
"node": ">= 12.0.0"
3483
3483
+
},
3484
3484
+
"funding": {
3485
3485
+
"type": "opencollective",
3486
3486
+
"url": "https://opencollective.com/parcel"
3487
3487
+
}
3488
3488
+
},
3489
3489
+
"node_modules/lightningcss-win32-x64-msvc": {
3490
3490
+
"version": "1.30.2",
3491
3491
+
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz",
3492
3492
+
"integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==",
3493
3493
+
"cpu": [
3494
3494
+
"x64"
3495
3495
+
],
3496
3496
+
"dev": true,
3497
3497
+
"license": "MPL-2.0",
3498
3498
+
"optional": true,
3499
3499
+
"os": [
3500
3500
+
"win32"
3501
3501
+
],
3502
3502
+
"engines": {
3503
3503
+
"node": ">= 12.0.0"
3504
3504
+
},
3505
3505
+
"funding": {
3506
3506
+
"type": "opencollective",
3507
3507
+
"url": "https://opencollective.com/parcel"
3508
3508
+
}
3509
3509
+
},
3510
3510
+
"node_modules/linebreak": {
3511
3511
+
"version": "1.1.0",
3512
3512
+
"resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.1.0.tgz",
3513
3513
+
"integrity": "sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==",
3514
3514
+
"dev": true,
3515
3515
+
"license": "MIT",
3516
3516
+
"dependencies": {
3517
3517
+
"base64-js": "0.0.8",
3518
3518
+
"unicode-trie": "^2.0.0"
3519
3519
+
}
3520
3520
+
},
3521
3521
+
"node_modules/locate-path": {
3522
3522
+
"version": "6.0.0",
3523
3523
+
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
3524
3524
+
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
3525
3525
+
"dev": true,
3526
3526
+
"license": "MIT",
3527
3527
+
"dependencies": {
3528
3528
+
"p-locate": "^5.0.0"
3529
3529
+
},
3530
3530
+
"engines": {
3531
3531
+
"node": ">=10"
3532
3532
+
},
3533
3533
+
"funding": {
3534
3534
+
"url": "https://github.com/sponsors/sindresorhus"
3535
3535
+
}
3536
3536
+
},
3537
3537
+
"node_modules/lodash.merge": {
3538
3538
+
"version": "4.6.2",
3539
3539
+
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
3540
3540
+
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
3541
3541
+
"dev": true,
3542
3542
+
"license": "MIT"
3543
3543
+
},
3544
3544
+
"node_modules/lru-cache": {
3545
3545
+
"version": "5.1.1",
3546
3546
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
3547
3547
+
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
3548
3548
+
"dev": true,
3549
3549
+
"license": "ISC",
3550
3550
+
"dependencies": {
3551
3551
+
"yallist": "^3.0.2"
3552
3552
+
}
3553
3553
+
},
3554
3554
+
"node_modules/magic-string": {
3555
3555
+
"version": "0.30.21",
3556
3556
+
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
3557
3557
+
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
3558
3558
+
"dev": true,
3559
3559
+
"license": "MIT",
3560
3560
+
"dependencies": {
3561
3561
+
"@jridgewell/sourcemap-codec": "^1.5.5"
3562
3562
+
}
3563
3563
+
},
3564
3564
+
"node_modules/minimatch": {
3565
3565
+
"version": "3.1.2",
3566
3566
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3567
3567
+
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3568
3568
+
"dev": true,
3569
3569
+
"license": "ISC",
3570
3570
+
"dependencies": {
3571
3571
+
"brace-expansion": "^1.1.7"
3572
3572
+
},
3573
3573
+
"engines": {
3574
3574
+
"node": "*"
3575
3575
+
}
3576
3576
+
},
3577
3577
+
"node_modules/ms": {
3578
3578
+
"version": "2.1.3",
3579
3579
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
3580
3580
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
3581
3581
+
"dev": true,
3582
3582
+
"license": "MIT"
3583
3583
+
},
3584
3584
+
"node_modules/nanoid": {
3585
3585
+
"version": "3.3.11",
3586
3586
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
3587
3587
+
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
3588
3588
+
"dev": true,
3589
3589
+
"funding": [
3590
3590
+
{
3591
3591
+
"type": "github",
3592
3592
+
"url": "https://github.com/sponsors/ai"
3593
3593
+
}
3594
3594
+
],
3595
3595
+
"license": "MIT",
3596
3596
+
"bin": {
3597
3597
+
"nanoid": "bin/nanoid.cjs"
3598
3598
+
},
3599
3599
+
"engines": {
3600
3600
+
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
3601
3601
+
}
3602
3602
+
},
3603
3603
+
"node_modules/natural-compare": {
3604
3604
+
"version": "1.4.0",
3605
3605
+
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
3606
3606
+
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
3607
3607
+
"dev": true,
3608
3608
+
"license": "MIT"
3609
3609
+
},
3610
3610
+
"node_modules/node-releases": {
3611
3611
+
"version": "2.0.27",
3612
3612
+
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
3613
3613
+
"integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
3614
3614
+
"dev": true,
3615
3615
+
"license": "MIT"
3616
3616
+
},
3617
3617
+
"node_modules/optionator": {
3618
3618
+
"version": "0.9.4",
3619
3619
+
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
3620
3620
+
"integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
3621
3621
+
"dev": true,
3622
3622
+
"license": "MIT",
3623
3623
+
"dependencies": {
3624
3624
+
"deep-is": "^0.1.3",
3625
3625
+
"fast-levenshtein": "^2.0.6",
3626
3626
+
"levn": "^0.4.1",
3627
3627
+
"prelude-ls": "^1.2.1",
3628
3628
+
"type-check": "^0.4.0",
3629
3629
+
"word-wrap": "^1.2.5"
3630
3630
+
},
3631
3631
+
"engines": {
3632
3632
+
"node": ">= 0.8.0"
3633
3633
+
}
3634
3634
+
},
3635
3635
+
"node_modules/p-limit": {
3636
3636
+
"version": "3.1.0",
3637
3637
+
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
3638
3638
+
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
3639
3639
+
"dev": true,
3640
3640
+
"license": "MIT",
3641
3641
+
"dependencies": {
3642
3642
+
"yocto-queue": "^0.1.0"
3643
3643
+
},
3644
3644
+
"engines": {
3645
3645
+
"node": ">=10"
3646
3646
+
},
3647
3647
+
"funding": {
3648
3648
+
"url": "https://github.com/sponsors/sindresorhus"
3649
3649
+
}
3650
3650
+
},
3651
3651
+
"node_modules/p-locate": {
3652
3652
+
"version": "5.0.0",
3653
3653
+
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
3654
3654
+
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
3655
3655
+
"dev": true,
3656
3656
+
"license": "MIT",
3657
3657
+
"dependencies": {
3658
3658
+
"p-limit": "^3.0.2"
3659
3659
+
},
3660
3660
+
"engines": {
3661
3661
+
"node": ">=10"
3662
3662
+
},
3663
3663
+
"funding": {
3664
3664
+
"url": "https://github.com/sponsors/sindresorhus"
3665
3665
+
}
3666
3666
+
},
3667
3667
+
"node_modules/pako": {
3668
3668
+
"version": "0.2.9",
3669
3669
+
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
3670
3670
+
"integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
3671
3671
+
"dev": true,
3672
3672
+
"license": "MIT"
3673
3673
+
},
3674
3674
+
"node_modules/parent-module": {
3675
3675
+
"version": "1.0.1",
3676
3676
+
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
3677
3677
+
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
3678
3678
+
"dev": true,
3679
3679
+
"license": "MIT",
3680
3680
+
"dependencies": {
3681
3681
+
"callsites": "^3.0.0"
3682
3682
+
},
3683
3683
+
"engines": {
3684
3684
+
"node": ">=6"
3685
3685
+
}
3686
3686
+
},
3687
3687
+
"node_modules/parse-css-color": {
3688
3688
+
"version": "0.2.1",
3689
3689
+
"resolved": "https://registry.npmjs.org/parse-css-color/-/parse-css-color-0.2.1.tgz",
3690
3690
+
"integrity": "sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==",
3691
3691
+
"dev": true,
3692
3692
+
"license": "MIT",
3693
3693
+
"dependencies": {
3694
3694
+
"color-name": "^1.1.4",
3695
3695
+
"hex-rgb": "^4.1.0"
3696
3696
+
}
3697
3697
+
},
3698
3698
+
"node_modules/path-exists": {
3699
3699
+
"version": "4.0.0",
3700
3700
+
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
3701
3701
+
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
3702
3702
+
"dev": true,
3703
3703
+
"license": "MIT",
3704
3704
+
"engines": {
3705
3705
+
"node": ">=8"
3706
3706
+
}
3707
3707
+
},
3708
3708
+
"node_modules/path-key": {
3709
3709
+
"version": "3.1.1",
3710
3710
+
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3711
3711
+
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3712
3712
+
"dev": true,
3713
3713
+
"license": "MIT",
3714
3714
+
"engines": {
3715
3715
+
"node": ">=8"
3716
3716
+
}
3717
3717
+
},
3718
3718
+
"node_modules/picocolors": {
3719
3719
+
"version": "1.1.1",
3720
3720
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
3721
3721
+
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
3722
3722
+
"dev": true,
3723
3723
+
"license": "ISC"
3724
3724
+
},
3725
3725
+
"node_modules/picomatch": {
3726
3726
+
"version": "4.0.3",
3727
3727
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
3728
3728
+
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
3729
3729
+
"dev": true,
3730
3730
+
"license": "MIT",
3731
3731
+
"engines": {
3732
3732
+
"node": ">=12"
3733
3733
+
},
3734
3734
+
"funding": {
3735
3735
+
"url": "https://github.com/sponsors/jonschlinkert"
3736
3736
+
}
3737
3737
+
},
3738
3738
+
"node_modules/postcss": {
3739
3739
+
"version": "8.5.6",
3740
3740
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
3741
3741
+
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
3742
3742
+
"dev": true,
3743
3743
+
"funding": [
3744
3744
+
{
3745
3745
+
"type": "opencollective",
3746
3746
+
"url": "https://opencollective.com/postcss/"
3747
3747
+
},
3748
3748
+
{
3749
3749
+
"type": "tidelift",
3750
3750
+
"url": "https://tidelift.com/funding/github/npm/postcss"
3751
3751
+
},
3752
3752
+
{
3753
3753
+
"type": "github",
3754
3754
+
"url": "https://github.com/sponsors/ai"
3755
3755
+
}
3756
3756
+
],
3757
3757
+
"license": "MIT",
3758
3758
+
"dependencies": {
3759
3759
+
"nanoid": "^3.3.11",
3760
3760
+
"picocolors": "^1.1.1",
3761
3761
+
"source-map-js": "^1.2.1"
3762
3762
+
},
3763
3763
+
"engines": {
3764
3764
+
"node": "^10 || ^12 || >=14"
3765
3765
+
}
3766
3766
+
},
3767
3767
+
"node_modules/postcss-value-parser": {
3768
3768
+
"version": "4.2.0",
3769
3769
+
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
3770
3770
+
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
3771
3771
+
"dev": true,
3772
3772
+
"license": "MIT"
3773
3773
+
},
3774
3774
+
"node_modules/prelude-ls": {
3775
3775
+
"version": "1.2.1",
3776
3776
+
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
3777
3777
+
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
3778
3778
+
"dev": true,
3779
3779
+
"license": "MIT",
3780
3780
+
"engines": {
3781
3781
+
"node": ">= 0.8.0"
3782
3782
+
}
3783
3783
+
},
3784
3784
+
"node_modules/punycode": {
3785
3785
+
"version": "2.3.1",
3786
3786
+
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
3787
3787
+
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
3788
3788
+
"dev": true,
3789
3789
+
"license": "MIT",
3790
3790
+
"engines": {
3791
3791
+
"node": ">=6"
3792
3792
+
}
3793
3793
+
},
3794
3794
+
"node_modules/react": {
3795
3795
+
"version": "19.2.3",
3796
3796
+
"resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz",
3797
3797
+
"integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==",
3798
3798
+
"license": "MIT",
3799
3799
+
"engines": {
3800
3800
+
"node": ">=0.10.0"
3801
3801
+
}
3802
3802
+
},
3803
3803
+
"node_modules/react-dom": {
3804
3804
+
"version": "19.2.3",
3805
3805
+
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz",
3806
3806
+
"integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==",
3807
3807
+
"license": "MIT",
3808
3808
+
"dependencies": {
3809
3809
+
"scheduler": "^0.27.0"
3810
3810
+
},
3811
3811
+
"peerDependencies": {
3812
3812
+
"react": "^19.2.3"
3813
3813
+
}
3814
3814
+
},
3815
3815
+
"node_modules/react-refresh": {
3816
3816
+
"version": "0.18.0",
3817
3817
+
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz",
3818
3818
+
"integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==",
3819
3819
+
"dev": true,
3820
3820
+
"license": "MIT",
3821
3821
+
"engines": {
3822
3822
+
"node": ">=0.10.0"
3823
3823
+
}
3824
3824
+
},
3825
3825
+
"node_modules/resolve-from": {
3826
3826
+
"version": "4.0.0",
3827
3827
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
3828
3828
+
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
3829
3829
+
"dev": true,
3830
3830
+
"license": "MIT",
3831
3831
+
"engines": {
3832
3832
+
"node": ">=4"
3833
3833
+
}
3834
3834
+
},
3835
3835
+
"node_modules/rollup": {
3836
3836
+
"version": "4.55.3",
3837
3837
+
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.3.tgz",
3838
3838
+
"integrity": "sha512-y9yUpfQvetAjiDLtNMf1hL9NXchIJgWt6zIKeoB+tCd3npX08Eqfzg60V9DhIGVMtQ0AlMkFw5xa+AQ37zxnAA==",
3839
3839
+
"dev": true,
3840
3840
+
"license": "MIT",
3841
3841
+
"dependencies": {
3842
3842
+
"@types/estree": "1.0.8"
3843
3843
+
},
3844
3844
+
"bin": {
3845
3845
+
"rollup": "dist/bin/rollup"
3846
3846
+
},
3847
3847
+
"engines": {
3848
3848
+
"node": ">=18.0.0",
3849
3849
+
"npm": ">=8.0.0"
3850
3850
+
},
3851
3851
+
"optionalDependencies": {
3852
3852
+
"@rollup/rollup-android-arm-eabi": "4.55.3",
3853
3853
+
"@rollup/rollup-android-arm64": "4.55.3",
3854
3854
+
"@rollup/rollup-darwin-arm64": "4.55.3",
3855
3855
+
"@rollup/rollup-darwin-x64": "4.55.3",
3856
3856
+
"@rollup/rollup-freebsd-arm64": "4.55.3",
3857
3857
+
"@rollup/rollup-freebsd-x64": "4.55.3",
3858
3858
+
"@rollup/rollup-linux-arm-gnueabihf": "4.55.3",
3859
3859
+
"@rollup/rollup-linux-arm-musleabihf": "4.55.3",
3860
3860
+
"@rollup/rollup-linux-arm64-gnu": "4.55.3",
3861
3861
+
"@rollup/rollup-linux-arm64-musl": "4.55.3",
3862
3862
+
"@rollup/rollup-linux-loong64-gnu": "4.55.3",
3863
3863
+
"@rollup/rollup-linux-loong64-musl": "4.55.3",
3864
3864
+
"@rollup/rollup-linux-ppc64-gnu": "4.55.3",
3865
3865
+
"@rollup/rollup-linux-ppc64-musl": "4.55.3",
3866
3866
+
"@rollup/rollup-linux-riscv64-gnu": "4.55.3",
3867
3867
+
"@rollup/rollup-linux-riscv64-musl": "4.55.3",
3868
3868
+
"@rollup/rollup-linux-s390x-gnu": "4.55.3",
3869
3869
+
"@rollup/rollup-linux-x64-gnu": "4.55.3",
3870
3870
+
"@rollup/rollup-linux-x64-musl": "4.55.3",
3871
3871
+
"@rollup/rollup-openbsd-x64": "4.55.3",
3872
3872
+
"@rollup/rollup-openharmony-arm64": "4.55.3",
3873
3873
+
"@rollup/rollup-win32-arm64-msvc": "4.55.3",
3874
3874
+
"@rollup/rollup-win32-ia32-msvc": "4.55.3",
3875
3875
+
"@rollup/rollup-win32-x64-gnu": "4.55.3",
3876
3876
+
"@rollup/rollup-win32-x64-msvc": "4.55.3",
3877
3877
+
"fsevents": "~2.3.2"
3878
3878
+
}
3879
3879
+
},
3880
3880
+
"node_modules/satori": {
3881
3881
+
"version": "0.19.1",
3882
3882
+
"resolved": "https://registry.npmjs.org/satori/-/satori-0.19.1.tgz",
3883
3883
+
"integrity": "sha512-/XaT/JiWLfNlgjlQdde4wXB1/6F+FEze9c3OW2QIH0ywsfOrY57YOetgESWyOFHW3JfEQ6dJAo2U9Xwb7+DDAw==",
3884
3884
+
"dev": true,
3885
3885
+
"license": "MPL-2.0",
3886
3886
+
"dependencies": {
3887
3887
+
"@shuding/opentype.js": "1.4.0-beta.0",
3888
3888
+
"css-background-parser": "^0.1.0",
3889
3889
+
"css-box-shadow": "1.0.0-3",
3890
3890
+
"css-gradient-parser": "^0.0.17",
3891
3891
+
"css-to-react-native": "^3.0.0",
3892
3892
+
"emoji-regex-xs": "^2.0.1",
3893
3893
+
"escape-html": "^1.0.3",
3894
3894
+
"linebreak": "^1.1.0",
3895
3895
+
"parse-css-color": "^0.2.1",
3896
3896
+
"postcss-value-parser": "^4.2.0",
3897
3897
+
"yoga-layout": "^3.2.1"
3898
3898
+
},
3899
3899
+
"engines": {
3900
3900
+
"node": ">=16"
3901
3901
+
}
3902
3902
+
},
3903
3903
+
"node_modules/scheduler": {
3904
3904
+
"version": "0.27.0",
3905
3905
+
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
3906
3906
+
"integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
3907
3907
+
"license": "MIT"
3908
3908
+
},
3909
3909
+
"node_modules/semver": {
3910
3910
+
"version": "6.3.1",
3911
3911
+
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
3912
3912
+
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
3913
3913
+
"dev": true,
3914
3914
+
"license": "ISC",
3915
3915
+
"bin": {
3916
3916
+
"semver": "bin/semver.js"
3917
3917
+
}
3918
3918
+
},
3919
3919
+
"node_modules/shebang-command": {
3920
3920
+
"version": "2.0.0",
3921
3921
+
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3922
3922
+
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3923
3923
+
"dev": true,
3924
3924
+
"license": "MIT",
3925
3925
+
"dependencies": {
3926
3926
+
"shebang-regex": "^3.0.0"
3927
3927
+
},
3928
3928
+
"engines": {
3929
3929
+
"node": ">=8"
3930
3930
+
}
3931
3931
+
},
3932
3932
+
"node_modules/shebang-regex": {
3933
3933
+
"version": "3.0.0",
3934
3934
+
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3935
3935
+
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3936
3936
+
"dev": true,
3937
3937
+
"license": "MIT",
3938
3938
+
"engines": {
3939
3939
+
"node": ">=8"
3940
3940
+
}
3941
3941
+
},
3942
3942
+
"node_modules/source-map-js": {
3943
3943
+
"version": "1.2.1",
3944
3944
+
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
3945
3945
+
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
3946
3946
+
"dev": true,
3947
3947
+
"license": "BSD-3-Clause",
3948
3948
+
"engines": {
3949
3949
+
"node": ">=0.10.0"
3950
3950
+
}
3951
3951
+
},
3952
3952
+
"node_modules/string.prototype.codepointat": {
3953
3953
+
"version": "0.2.1",
3954
3954
+
"resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
3955
3955
+
"integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==",
3956
3956
+
"dev": true,
3957
3957
+
"license": "MIT"
3958
3958
+
},
3959
3959
+
"node_modules/strip-json-comments": {
3960
3960
+
"version": "3.1.1",
3961
3961
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
3962
3962
+
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
3963
3963
+
"dev": true,
3964
3964
+
"license": "MIT",
3965
3965
+
"engines": {
3966
3966
+
"node": ">=8"
3967
3967
+
},
3968
3968
+
"funding": {
3969
3969
+
"url": "https://github.com/sponsors/sindresorhus"
3970
3970
+
}
3971
3971
+
},
3972
3972
+
"node_modules/supports-color": {
3973
3973
+
"version": "7.2.0",
3974
3974
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3975
3975
+
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3976
3976
+
"dev": true,
3977
3977
+
"license": "MIT",
3978
3978
+
"dependencies": {
3979
3979
+
"has-flag": "^4.0.0"
3980
3980
+
},
3981
3981
+
"engines": {
3982
3982
+
"node": ">=8"
3983
3983
+
}
3984
3984
+
},
3985
3985
+
"node_modules/tailwindcss": {
3986
3986
+
"version": "4.1.18",
3987
3987
+
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz",
3988
3988
+
"integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==",
3989
3989
+
"dev": true,
3990
3990
+
"license": "MIT"
3991
3991
+
},
3992
3992
+
"node_modules/tapable": {
3993
3993
+
"version": "2.3.0",
3994
3994
+
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
3995
3995
+
"integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==",
3996
3996
+
"dev": true,
3997
3997
+
"license": "MIT",
3998
3998
+
"engines": {
3999
3999
+
"node": ">=6"
4000
4000
+
},
4001
4001
+
"funding": {
4002
4002
+
"type": "opencollective",
4003
4003
+
"url": "https://opencollective.com/webpack"
4004
4004
+
}
4005
4005
+
},
4006
4006
+
"node_modules/tiny-inflate": {
4007
4007
+
"version": "1.0.3",
4008
4008
+
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
4009
4009
+
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
4010
4010
+
"dev": true,
4011
4011
+
"license": "MIT"
4012
4012
+
},
4013
4013
+
"node_modules/tinyglobby": {
4014
4014
+
"version": "0.2.15",
4015
4015
+
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
4016
4016
+
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
4017
4017
+
"dev": true,
4018
4018
+
"license": "MIT",
4019
4019
+
"dependencies": {
4020
4020
+
"fdir": "^6.5.0",
4021
4021
+
"picomatch": "^4.0.3"
4022
4022
+
},
4023
4023
+
"engines": {
4024
4024
+
"node": ">=12.0.0"
4025
4025
+
},
4026
4026
+
"funding": {
4027
4027
+
"url": "https://github.com/sponsors/SuperchupuDev"
4028
4028
+
}
4029
4029
+
},
4030
4030
+
"node_modules/ts-api-utils": {
4031
4031
+
"version": "2.4.0",
4032
4032
+
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz",
4033
4033
+
"integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==",
4034
4034
+
"dev": true,
4035
4035
+
"license": "MIT",
4036
4036
+
"engines": {
4037
4037
+
"node": ">=18.12"
4038
4038
+
},
4039
4039
+
"peerDependencies": {
4040
4040
+
"typescript": ">=4.8.4"
4041
4041
+
}
4042
4042
+
},
4043
4043
+
"node_modules/type-check": {
4044
4044
+
"version": "0.4.0",
4045
4045
+
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
4046
4046
+
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
4047
4047
+
"dev": true,
4048
4048
+
"license": "MIT",
4049
4049
+
"dependencies": {
4050
4050
+
"prelude-ls": "^1.2.1"
4051
4051
+
},
4052
4052
+
"engines": {
4053
4053
+
"node": ">= 0.8.0"
4054
4054
+
}
4055
4055
+
},
4056
4056
+
"node_modules/typescript": {
4057
4057
+
"version": "5.9.3",
4058
4058
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
4059
4059
+
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
4060
4060
+
"dev": true,
4061
4061
+
"license": "Apache-2.0",
4062
4062
+
"bin": {
4063
4063
+
"tsc": "bin/tsc",
4064
4064
+
"tsserver": "bin/tsserver"
4065
4065
+
},
4066
4066
+
"engines": {
4067
4067
+
"node": ">=14.17"
4068
4068
+
}
4069
4069
+
},
4070
4070
+
"node_modules/typescript-eslint": {
4071
4071
+
"version": "8.53.1",
4072
4072
+
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.1.tgz",
4073
4073
+
"integrity": "sha512-gB+EVQfP5RDElh9ittfXlhZJdjSU4jUSTyE2+ia8CYyNvet4ElfaLlAIqDvQV9JPknKx0jQH1racTYe/4LaLSg==",
4074
4074
+
"dev": true,
4075
4075
+
"license": "MIT",
4076
4076
+
"dependencies": {
4077
4077
+
"@typescript-eslint/eslint-plugin": "8.53.1",
4078
4078
+
"@typescript-eslint/parser": "8.53.1",
4079
4079
+
"@typescript-eslint/typescript-estree": "8.53.1",
4080
4080
+
"@typescript-eslint/utils": "8.53.1"
4081
4081
+
},
4082
4082
+
"engines": {
4083
4083
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
4084
4084
+
},
4085
4085
+
"funding": {
4086
4086
+
"type": "opencollective",
4087
4087
+
"url": "https://opencollective.com/typescript-eslint"
4088
4088
+
},
4089
4089
+
"peerDependencies": {
4090
4090
+
"eslint": "^8.57.0 || ^9.0.0",
4091
4091
+
"typescript": ">=4.8.4 <6.0.0"
4092
4092
+
}
4093
4093
+
},
4094
4094
+
"node_modules/undici-types": {
4095
4095
+
"version": "7.16.0",
4096
4096
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
4097
4097
+
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
4098
4098
+
"dev": true,
4099
4099
+
"license": "MIT"
4100
4100
+
},
4101
4101
+
"node_modules/unicode-trie": {
4102
4102
+
"version": "2.0.0",
4103
4103
+
"resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz",
4104
4104
+
"integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==",
4105
4105
+
"dev": true,
4106
4106
+
"license": "MIT",
4107
4107
+
"dependencies": {
4108
4108
+
"pako": "^0.2.5",
4109
4109
+
"tiny-inflate": "^1.0.0"
4110
4110
+
}
4111
4111
+
},
4112
4112
+
"node_modules/update-browserslist-db": {
4113
4113
+
"version": "1.2.3",
4114
4114
+
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
4115
4115
+
"integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
4116
4116
+
"dev": true,
4117
4117
+
"funding": [
4118
4118
+
{
4119
4119
+
"type": "opencollective",
4120
4120
+
"url": "https://opencollective.com/browserslist"
4121
4121
+
},
4122
4122
+
{
4123
4123
+
"type": "tidelift",
4124
4124
+
"url": "https://tidelift.com/funding/github/npm/browserslist"
4125
4125
+
},
4126
4126
+
{
4127
4127
+
"type": "github",
4128
4128
+
"url": "https://github.com/sponsors/ai"
4129
4129
+
}
4130
4130
+
],
4131
4131
+
"license": "MIT",
4132
4132
+
"dependencies": {
4133
4133
+
"escalade": "^3.2.0",
4134
4134
+
"picocolors": "^1.1.1"
4135
4135
+
},
4136
4136
+
"bin": {
4137
4137
+
"update-browserslist-db": "cli.js"
4138
4138
+
},
4139
4139
+
"peerDependencies": {
4140
4140
+
"browserslist": ">= 4.21.0"
4141
4141
+
}
4142
4142
+
},
4143
4143
+
"node_modules/uri-js": {
4144
4144
+
"version": "4.4.1",
4145
4145
+
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
4146
4146
+
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
4147
4147
+
"dev": true,
4148
4148
+
"license": "BSD-2-Clause",
4149
4149
+
"dependencies": {
4150
4150
+
"punycode": "^2.1.0"
4151
4151
+
}
4152
4152
+
},
4153
4153
+
"node_modules/vite": {
4154
4154
+
"version": "7.3.1",
4155
4155
+
"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz",
4156
4156
+
"integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==",
4157
4157
+
"dev": true,
4158
4158
+
"license": "MIT",
4159
4159
+
"dependencies": {
4160
4160
+
"esbuild": "^0.27.0",
4161
4161
+
"fdir": "^6.5.0",
4162
4162
+
"picomatch": "^4.0.3",
4163
4163
+
"postcss": "^8.5.6",
4164
4164
+
"rollup": "^4.43.0",
4165
4165
+
"tinyglobby": "^0.2.15"
4166
4166
+
},
4167
4167
+
"bin": {
4168
4168
+
"vite": "bin/vite.js"
4169
4169
+
},
4170
4170
+
"engines": {
4171
4171
+
"node": "^20.19.0 || >=22.12.0"
4172
4172
+
},
4173
4173
+
"funding": {
4174
4174
+
"url": "https://github.com/vitejs/vite?sponsor=1"
4175
4175
+
},
4176
4176
+
"optionalDependencies": {
4177
4177
+
"fsevents": "~2.3.3"
4178
4178
+
},
4179
4179
+
"peerDependencies": {
4180
4180
+
"@types/node": "^20.19.0 || >=22.12.0",
4181
4181
+
"jiti": ">=1.21.0",
4182
4182
+
"less": "^4.0.0",
4183
4183
+
"lightningcss": "^1.21.0",
4184
4184
+
"sass": "^1.70.0",
4185
4185
+
"sass-embedded": "^1.70.0",
4186
4186
+
"stylus": ">=0.54.8",
4187
4187
+
"sugarss": "^5.0.0",
4188
4188
+
"terser": "^5.16.0",
4189
4189
+
"tsx": "^4.8.1",
4190
4190
+
"yaml": "^2.4.2"
4191
4191
+
},
4192
4192
+
"peerDependenciesMeta": {
4193
4193
+
"@types/node": {
4194
4194
+
"optional": true
4195
4195
+
},
4196
4196
+
"jiti": {
4197
4197
+
"optional": true
4198
4198
+
},
4199
4199
+
"less": {
4200
4200
+
"optional": true
4201
4201
+
},
4202
4202
+
"lightningcss": {
4203
4203
+
"optional": true
4204
4204
+
},
4205
4205
+
"sass": {
4206
4206
+
"optional": true
4207
4207
+
},
4208
4208
+
"sass-embedded": {
4209
4209
+
"optional": true
4210
4210
+
},
4211
4211
+
"stylus": {
4212
4212
+
"optional": true
4213
4213
+
},
4214
4214
+
"sugarss": {
4215
4215
+
"optional": true
4216
4216
+
},
4217
4217
+
"terser": {
4218
4218
+
"optional": true
4219
4219
+
},
4220
4220
+
"tsx": {
4221
4221
+
"optional": true
4222
4222
+
},
4223
4223
+
"yaml": {
4224
4224
+
"optional": true
4225
4225
+
}
4226
4226
+
}
4227
4227
+
},
4228
4228
+
"node_modules/which": {
4229
4229
+
"version": "2.0.2",
4230
4230
+
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
4231
4231
+
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
4232
4232
+
"dev": true,
4233
4233
+
"license": "ISC",
4234
4234
+
"dependencies": {
4235
4235
+
"isexe": "^2.0.0"
4236
4236
+
},
4237
4237
+
"bin": {
4238
4238
+
"node-which": "bin/node-which"
4239
4239
+
},
4240
4240
+
"engines": {
4241
4241
+
"node": ">= 8"
4242
4242
+
}
4243
4243
+
},
4244
4244
+
"node_modules/word-wrap": {
4245
4245
+
"version": "1.2.5",
4246
4246
+
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
4247
4247
+
"integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
4248
4248
+
"dev": true,
4249
4249
+
"license": "MIT",
4250
4250
+
"engines": {
4251
4251
+
"node": ">=0.10.0"
4252
4252
+
}
4253
4253
+
},
4254
4254
+
"node_modules/yallist": {
4255
4255
+
"version": "3.1.1",
4256
4256
+
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
4257
4257
+
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
4258
4258
+
"dev": true,
4259
4259
+
"license": "ISC"
4260
4260
+
},
4261
4261
+
"node_modules/yocto-queue": {
4262
4262
+
"version": "0.1.0",
4263
4263
+
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
4264
4264
+
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
4265
4265
+
"dev": true,
4266
4266
+
"license": "MIT",
4267
4267
+
"engines": {
4268
4268
+
"node": ">=10"
4269
4269
+
},
4270
4270
+
"funding": {
4271
4271
+
"url": "https://github.com/sponsors/sindresorhus"
4272
4272
+
}
4273
4273
+
},
4274
4274
+
"node_modules/yoga-layout": {
4275
4275
+
"version": "3.2.1",
4276
4276
+
"resolved": "https://registry.npmjs.org/yoga-layout/-/yoga-layout-3.2.1.tgz",
4277
4277
+
"integrity": "sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==",
4278
4278
+
"dev": true,
4279
4279
+
"license": "MIT"
4280
4280
+
},
4281
4281
+
"node_modules/zod": {
4282
4282
+
"version": "4.3.5",
4283
4283
+
"resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz",
4284
4284
+
"integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==",
4285
4285
+
"dev": true,
4286
4286
+
"license": "MIT",
4287
4287
+
"funding": {
4288
4288
+
"url": "https://github.com/sponsors/colinhacks"
4289
4289
+
}
4290
4290
+
},
4291
4291
+
"node_modules/zod-validation-error": {
4292
4292
+
"version": "4.0.2",
4293
4293
+
"resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz",
4294
4294
+
"integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==",
4295
4295
+
"dev": true,
4296
4296
+
"license": "MIT",
4297
4297
+
"engines": {
4298
4298
+
"node": ">=18.0.0"
4299
4299
+
},
4300
4300
+
"peerDependencies": {
4301
4301
+
"zod": "^3.25.0 || ^4.0.0"
4302
4302
+
}
4303
4303
+
}
4304
4304
+
}
4305
4305
+
}
···
1
1
+
{
2
2
+
"name": "website",
3
3
+
"private": true,
4
4
+
"version": "0.0.0",
5
5
+
"type": "module",
6
6
+
"scripts": {
7
7
+
"dev": "vite",
8
8
+
"build": "npx tsx scripts/generate-og-image.tsx && tsc -b && vite build",
9
9
+
"lint": "eslint .",
10
10
+
"preview": "vite preview",
11
11
+
"generate-og": "npx tsx scripts/generate-og-image.tsx"
12
12
+
},
13
13
+
"dependencies": {
14
14
+
"react": "^19.2.0",
15
15
+
"react-dom": "^19.2.0"
16
16
+
},
17
17
+
"devDependencies": {
18
18
+
"@eslint/js": "^9.39.1",
19
19
+
"@resvg/resvg-js": "^2.6.2",
20
20
+
"@tailwindcss/vite": "^4.1.18",
21
21
+
"@types/node": "^24.10.1",
22
22
+
"@types/react": "^19.2.5",
23
23
+
"@types/react-dom": "^19.2.3",
24
24
+
"@vitejs/plugin-react": "^5.1.1",
25
25
+
"eslint": "^9.39.1",
26
26
+
"eslint-plugin-react-hooks": "^7.0.1",
27
27
+
"eslint-plugin-react-refresh": "^0.4.24",
28
28
+
"globals": "^16.5.0",
29
29
+
"satori": "^0.19.1",
30
30
+
"tailwindcss": "^4.1.18",
31
31
+
"typescript": "~5.9.3",
32
32
+
"typescript-eslint": "^8.46.4",
33
33
+
"vite": "^7.2.4"
34
34
+
}
35
35
+
}
···
1
1
+
<?xml version="1.0" encoding="UTF-8"?>
2
2
+
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1024 1024">
3
3
+
<defs>
4
4
+
<style>
5
5
+
.cls-1 {
6
6
+
fill: url(#linear-gradient);
7
7
+
}
8
8
+
9
9
+
.cls-2 {
10
10
+
fill: #fff;
11
11
+
}
12
12
+
</style>
13
13
+
<linearGradient id="linear-gradient" x1="205.42" y1="205.42" x2="846.69" y2="846.69" gradientUnits="userSpaceOnUse">
14
14
+
<stop offset="0" stop-color="#6dd791"/>
15
15
+
<stop offset="1" stop-color="#366946"/>
16
16
+
</linearGradient>
17
17
+
</defs>
18
18
+
<rect class="cls-1" x="0" y="0" width="1024" height="1024" rx="512" ry="512"/>
19
19
+
<g>
20
20
+
<path class="cls-2" d="M737.91,324.02c-12.21,3-24.19,6.98-35.87,11.92-28.55,12.08-54.2,29.37-76.24,51.41-21.36,21.36-38.27,46.12-50.29,73.63,12.32,14.08,19.79,32.49,19.79,52.62,0,29.45-15.99,55.22-39.74,69.11v222.6c142.22-21.05,251.36-143.64,251.36-291.72,0-72.19-25.94-138.32-69-189.58Z"/>
21
21
+
<path class="cls-2" d="M512,393.76c14.27-24.76,31.73-47.53,52.2-68,28.12-28.12,60.58-50.58,96.58-66.84-43.68-25.57-94.51-40.23-148.78-40.23s-105.1,14.66-148.78,40.23c36,16.27,68.46,38.73,96.58,66.84,20.47,20.47,37.93,43.24,52.2,68Z"/>
22
22
+
<path class="cls-2" d="M435.29,513.6c0-17.66,5.75-33.99,15.48-47.24-.38-.92-.76-1.84-1.15-2.76-12.08-28.55-29.37-54.2-51.41-76.24-22.04-22.04-47.69-39.34-76.24-51.41-11.68-4.94-23.66-8.92-35.87-11.92-43.06,51.26-69,117.39-69,189.58,0,148.08,109.14,270.66,251.36,291.72v-226.9c-20.07-14.55-33.16-38.18-33.16-64.81Z"/>
23
23
+
<circle class="cls-2" cx="515.24" cy="514.23" r="29.86" transform="translate(-104.36 132.13) rotate(-13.28)"/>
24
24
+
</g>
25
25
+
</svg>
···
1
1
+
import React from "react";
2
2
+
import satori from "satori";
3
3
+
import { Resvg } from "@resvg/resvg-js";
4
4
+
import { readFileSync, writeFileSync } from "fs";
5
5
+
import { join, dirname } from "path";
6
6
+
import { fileURLToPath } from "url";
7
7
+
8
8
+
const __dirname = dirname(fileURLToPath(import.meta.url));
9
9
+
const rootDir = join(__dirname, "..");
10
10
+
11
11
+
// Dark mode colors from index.css
12
12
+
const colors = {
13
13
+
primary: "#6ab377",
14
14
+
bg: "#0f1410",
15
15
+
bgAlt: "#151c17",
16
16
+
text: "#e8ebe9",
17
17
+
textMuted: "#a0a8a2",
18
18
+
};
19
19
+
20
20
+
async function loadFont(url: string): Promise<ArrayBuffer> {
21
21
+
const response = await fetch(url);
22
22
+
return response.arrayBuffer();
23
23
+
}
24
24
+
25
25
+
async function generateOgImage() {
26
26
+
const [fontRegular, fontBold] = await Promise.all([
27
27
+
loadFont(
28
28
+
"https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZ9hjp-Ek-_EeA.woff",
29
29
+
),
30
30
+
loadFont(
31
31
+
"https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZ9hjp-Ek-_EeA.woff",
32
32
+
),
33
33
+
]);
34
34
+
35
35
+
const iconSrc = `data:image/svg+xml,${encodeURIComponent(
36
36
+
readFileSync(join(rootDir, "public/icon.svg"), "utf-8"),
37
37
+
)}`;
38
38
+
39
39
+
const svg = await satori(
40
40
+
<div
41
41
+
style={{
42
42
+
height: "100%",
43
43
+
width: "100%",
44
44
+
display: "flex",
45
45
+
flexDirection: "column",
46
46
+
alignItems: "center",
47
47
+
justifyContent: "center",
48
48
+
background: `linear-gradient(135deg, ${colors.bg} 0%, ${colors.bgAlt} 100%)`,
49
49
+
fontFamily: "Inter",
50
50
+
}}
51
51
+
>
52
52
+
<div
53
53
+
style={{
54
54
+
display: "flex",
55
55
+
alignItems: "center",
56
56
+
gap: "24px",
57
57
+
marginBottom: "24px",
58
58
+
}}
59
59
+
>
60
60
+
<img src={iconSrc} width={100} height={100} />
61
61
+
<span
62
62
+
style={{
63
63
+
fontSize: 80,
64
64
+
fontWeight: 700,
65
65
+
color: colors.text,
66
66
+
letterSpacing: "-0.02em",
67
67
+
}}
68
68
+
>
69
69
+
Switchyard
70
70
+
</span>
71
71
+
</div>
72
72
+
<div
73
73
+
style={{
74
74
+
fontSize: 36,
75
75
+
fontWeight: 500,
76
76
+
color: colors.textMuted,
77
77
+
marginBottom: "32px",
78
78
+
}}
79
79
+
>
80
80
+
A rules-based browser launcher for Linux.
81
81
+
</div>
82
82
+
<div
83
83
+
style={{
84
84
+
display: "flex",
85
85
+
padding: "12px 28px",
86
86
+
background: colors.primary,
87
87
+
color: "#ffffff",
88
88
+
borderRadius: "12px",
89
89
+
fontSize: 24,
90
90
+
fontWeight: 600,
91
91
+
}}
92
92
+
>
93
93
+
Download Now
94
94
+
</div>
95
95
+
</div>,
96
96
+
{
97
97
+
width: 1200,
98
98
+
height: 630,
99
99
+
fonts: [
100
100
+
{ name: "Inter", data: fontRegular, weight: 400, style: "normal" },
101
101
+
{ name: "Inter", data: fontRegular, weight: 500, style: "normal" },
102
102
+
{ name: "Inter", data: fontBold, weight: 700, style: "normal" },
103
103
+
],
104
104
+
},
105
105
+
);
106
106
+
107
107
+
const resvg = new Resvg(svg, { fitTo: { mode: "width", value: 1200 } });
108
108
+
const pngBuffer = resvg.render().asPng();
109
109
+
110
110
+
writeFileSync(join(rootDir, "public/og-image.png"), pngBuffer);
111
111
+
console.log("Generated public/og-image.png");
112
112
+
}
113
113
+
114
114
+
generateOgImage().catch(console.error);
···
1
1
+
import { useState, useEffect } from "react";
2
2
+
import icon from "/icon.svg";
3
3
+
import { Icon } from "./components/Icon";
4
4
+
import { screenshots } from "./data/screenshots";
5
5
+
import { features } from "./data/features";
6
6
+
import { heroButtons } from "./data/heroButtons";
7
7
+
import { showcases } from "./data/showcases";
8
8
+
import { installOptions } from "./data/installOptions";
9
9
+
import { footerLinks } from "./data/footerLinks";
10
10
+
import { DEV_URL } from "./data/urls";
11
11
+
12
12
+
function App() {
13
13
+
const [lightboxSrc, setLightboxSrc] = useState<string | null>(null);
14
14
+
15
15
+
// Close lightbox on Escape key
16
16
+
useEffect(() => {
17
17
+
const handleKeyDown = (e: KeyboardEvent) => {
18
18
+
if (e.key === "Escape") setLightboxSrc(null);
19
19
+
};
20
20
+
if (lightboxSrc) {
21
21
+
document.addEventListener("keydown", handleKeyDown);
22
22
+
return () => document.removeEventListener("keydown", handleKeyDown);
23
23
+
}
24
24
+
}, [lightboxSrc]);
25
25
+
26
26
+
const openLightbox = (src: string) => setLightboxSrc(src);
27
27
+
28
28
+
return (
29
29
+
<>
30
30
+
{/* Hero */}
31
31
+
<section className="min-h-screen flex items-center bg-gradient-to-br from-bg to-bg-alt relative overflow-hidden">
32
32
+
{/* Background decoration */}
33
33
+
<div className="absolute -top-1/2 -right-1/5 w-4/5 h-[200%] bg-[radial-gradient(ellipse,rgba(79,137,93,0.08)_0%,transparent_70%)] pointer-events-none" />
34
34
+
35
35
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-16 items-center max-w-[1200px] mx-auto px-4 md:px-8 py-8 md:py-16 relative z-10">
36
36
+
<div className="contents md:block text-center md:text-left">
37
37
+
<div className="flex items-center gap-3 md:gap-4 justify-center md:justify-start mb-4 order-1">
38
38
+
<img
39
39
+
src={icon}
40
40
+
alt=""
41
41
+
className="w-14 h-14 md:w-[72px] md:h-[72px] shrink-0"
42
42
+
/>
43
43
+
<h1 className="text-3xl md:text-[3.5rem] font-bold leading-tight tracking-tight bg-gradient-to-br from-text to-text-muted bg-clip-text text-transparent">
44
44
+
Switchyard
45
45
+
</h1>
46
46
+
</div>
47
47
+
<p className="text-lg md:text-xl text-text-muted font-medium mb-4 order-3">
48
48
+
A rules-based browser launcher for Linux.
49
49
+
</p>
50
50
+
<p className="text-base md:text-lg text-text-muted leading-relaxed mb-4 max-w-[480px] mx-auto md:mx-0 order-4">
51
51
+
Work links in Chrome. Personal links in Firefox.
52
52
+
</p>
53
53
+
<div className="inline-block px-3 py-2 md:px-4 md:py-2 bg-primary/10 text-primary rounded-full text-sm font-semibold mb-4 md:mb-8 order-5">
54
54
+
100% Free & Open Source
55
55
+
</div>
56
56
+
<div className="flex flex-col md:flex-row gap-3 md:gap-4 items-center md:items-start justify-center md:justify-start order-6">
57
57
+
{heroButtons.map((btn) => (
58
58
+
<a
59
59
+
key={btn.label}
60
60
+
href={btn.href}
61
61
+
className={`inline-flex items-center gap-2.5 px-6 py-3.5 rounded-xl font-semibold text-base transition-all duration-200 w-full md:w-auto max-w-[260px] justify-center focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 ${
62
62
+
btn.primary
63
63
+
? "bg-primary text-white shadow-primary hover:bg-primary-light hover:-translate-y-0.5 hover:shadow-primary-hover"
64
64
+
: "bg-transparent text-text border-2 border-border hover:border-primary hover:text-primary"
65
65
+
}`}
66
66
+
>
67
67
+
{btn.icon && (
68
68
+
<Icon name={btn.icon} filled className="w-5 h-5" />
69
69
+
)}
70
70
+
{btn.label}
71
71
+
</a>
72
72
+
))}
73
73
+
</div>
74
74
+
</div>
75
75
+
<div className="order-2 md:order-none">
76
76
+
<img
77
77
+
src={screenshots[0].src}
78
78
+
alt={screenshots[0].alt}
79
79
+
onClick={() => openLightbox(screenshots[0].src)}
80
80
+
role="button"
81
81
+
tabIndex={0}
82
82
+
onKeyDown={(e) =>
83
83
+
e.key === "Enter" && openLightbox(screenshots[0].src)
84
84
+
}
85
85
+
className="w-full max-w-[280px] md:max-w-[480px] h-auto rounded-xl md:rounded-2xl shadow-lg border border-border cursor-pointer transition-transform duration-300 hover:scale-[1.02] focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 mx-auto"
86
86
+
/>
87
87
+
</div>
88
88
+
</div>
89
89
+
</section>
90
90
+
91
91
+
{/* Features */}
92
92
+
<section className="py-12 md:py-20 bg-bg">
93
93
+
<div className="max-w-[1100px] mx-auto px-4 md:px-8">
94
94
+
<h2 className="text-2xl md:text-3xl font-bold text-center mb-8 md:mb-10 tracking-tight">
95
95
+
Key Features
96
96
+
</h2>
97
97
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-10 max-w-[400px] md:max-w-none mx-auto">
98
98
+
{features.map((feature) => (
99
99
+
<div key={feature.title} className="text-center p-4 md:p-8">
100
100
+
<div className="w-11 h-11 md:w-12 md:h-12 mx-auto mb-4 bg-gradient-to-br from-primary to-primary-dark rounded-xl flex items-center justify-center text-white">
101
101
+
<Icon name={feature.icon} className="w-5 h-5 md:w-6 md:h-6" />
102
102
+
</div>
103
103
+
<h3 className="text-base md:text-lg font-bold mb-2">
104
104
+
{feature.title}
105
105
+
</h3>
106
106
+
<p className="text-text-muted text-sm leading-relaxed">
107
107
+
{feature.description}
108
108
+
</p>
109
109
+
</div>
110
110
+
))}
111
111
+
</div>
112
112
+
</div>
113
113
+
</section>
114
114
+
115
115
+
{/* Showcases */}
116
116
+
{showcases.map((showcase, index) => (
117
117
+
<section
118
118
+
key={showcase.title}
119
119
+
className={`py-12 md:py-20 ${index % 2 === 0 ? "bg-bg-alt" : "bg-bg"}`}
120
120
+
>
121
121
+
<div
122
122
+
className={`grid grid-cols-1 md:grid-cols-[1.2fr_1fr] gap-6 md:gap-16 items-center max-w-[1200px] mx-auto px-4 md:px-8 ${
123
123
+
index % 2 !== 0
124
124
+
? "md:[direction:rtl] md:[&>*]:[direction:ltr]"
125
125
+
: ""
126
126
+
}`}
127
127
+
>
128
128
+
{showcase.screenshot && (
129
129
+
<img
130
130
+
src={showcase.screenshot.src}
131
131
+
alt={showcase.screenshot.alt}
132
132
+
onClick={() => openLightbox(showcase.screenshot!.src)}
133
133
+
role="button"
134
134
+
tabIndex={0}
135
135
+
onKeyDown={(e) =>
136
136
+
e.key === "Enter" && openLightbox(showcase.screenshot!.src)
137
137
+
}
138
138
+
className="w-full max-w-[600px] h-auto rounded-xl md:rounded-2xl border border-border shadow-lg cursor-pointer transition-transform duration-300 hover:scale-[1.02] focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 mx-auto order-first md:order-none"
139
139
+
/>
140
140
+
)}
141
141
+
{showcase.code && (
142
142
+
<pre className="bg-bg-alt rounded-xl p-4 md:p-6 overflow-x-auto shadow-default border border-border">
143
143
+
<code className="font-mono text-xs md:text-sm leading-relaxed text-text">
144
144
+
{showcase.code}
145
145
+
</code>
146
146
+
</pre>
147
147
+
)}
148
148
+
<div className="text-center md:text-left">
149
149
+
<h2 className="text-xl md:text-2xl font-bold mb-4 tracking-tight">
150
150
+
{showcase.title}
151
151
+
</h2>
152
152
+
<p className="text-text-muted text-base leading-relaxed max-w-[400px] mx-auto md:mx-0">
153
153
+
{showcase.description}
154
154
+
</p>
155
155
+
</div>
156
156
+
</div>
157
157
+
</section>
158
158
+
))}
159
159
+
160
160
+
{/* Installation */}
161
161
+
<section
162
162
+
className={`py-12 md:py-20 ${(showcases.length - 1) % 2 === 0 ? "bg-bg" : "bg-bg-alt"}`}
163
163
+
id="install"
164
164
+
>
165
165
+
<div className="max-w-[1100px] mx-auto px-4 md:px-8">
166
166
+
<h2 className="text-2xl md:text-3xl font-bold text-center mb-8 md:mb-10 tracking-tight">
167
167
+
Get Started
168
168
+
</h2>
169
169
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 max-w-[400px] md:max-w-[900px] mx-auto">
170
170
+
{installOptions.map((option) => (
171
171
+
<div
172
172
+
key={option.title}
173
173
+
className="bg-bg p-5 md:p-8 rounded-2xl border border-border transition-all duration-300 hover:shadow-default hover:-translate-y-0.5"
174
174
+
>
175
175
+
<div className="w-9 h-9 md:w-10 md:h-10 mb-4 text-primary">
176
176
+
<Icon name={option.icon} filled className="w-full h-full" />
177
177
+
</div>
178
178
+
<h3 className="text-base md:text-lg font-bold mb-1">
179
179
+
{option.title}
180
180
+
</h3>
181
181
+
<p className="text-text-muted text-sm mb-4">
182
182
+
{option.description}
183
183
+
</p>
184
184
+
{"command" in option ? (
185
185
+
<code className="block bg-bg-alt px-3 py-3 md:px-4 rounded-xl text-xs font-mono overflow-x-auto border border-border">
186
186
+
{option.command}
187
187
+
</code>
188
188
+
) : (
189
189
+
<a
190
190
+
href={option.link}
191
191
+
className="block bg-primary text-white px-4 py-3 rounded-xl text-sm font-semibold text-center transition-colors duration-200 hover:bg-primary-light hover:text-white focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2"
192
192
+
>
193
193
+
{option.linkText}
194
194
+
</a>
195
195
+
)}
196
196
+
</div>
197
197
+
))}
198
198
+
</div>
199
199
+
</div>
200
200
+
</section>
201
201
+
202
202
+
{/* Footer */}
203
203
+
<footer
204
204
+
className={`py-8 md:py-12 ${(showcases.length - 1) % 2 === 0 ? "bg-bg-alt" : "bg-bg"}`}
205
205
+
>
206
206
+
<div className="max-w-[1100px] mx-auto px-4 md:px-8 flex flex-col items-center gap-5">
207
207
+
<div className="flex items-center gap-3 font-semibold text-lg">
208
208
+
<img src={icon} alt="Switchyard" className="w-8 h-8" />
209
209
+
<span>Switchyard</span>
210
210
+
</div>
211
211
+
<nav className="flex gap-6 md:gap-8">
212
212
+
{footerLinks.map((link) => (
213
213
+
<a
214
214
+
key={link.label}
215
215
+
href={link.href}
216
216
+
className="text-text-muted text-sm hover:text-primary"
217
217
+
>
218
218
+
{link.label}
219
219
+
</a>
220
220
+
))}
221
221
+
</nav>
222
222
+
<p className="text-text-light text-sm">
223
223
+
Made by{" "}
224
224
+
<a
225
225
+
href={DEV_URL}
226
226
+
className="text-text-muted hover:text-primary transition-colors"
227
227
+
>
228
228
+
Aly Raffauf
229
229
+
</a>{" "}
230
230
+
· GPL-3.0-or-later
231
231
+
</p>
232
232
+
</div>
233
233
+
</footer>
234
234
+
235
235
+
{/* Lightbox */}
236
236
+
{lightboxSrc && (
237
237
+
<div
238
238
+
className="fixed inset-0 bg-black/90 flex items-center justify-center z-[1000] cursor-pointer backdrop-blur-sm"
239
239
+
onClick={() => setLightboxSrc(null)}
240
240
+
role="dialog"
241
241
+
aria-modal="true"
242
242
+
aria-label="Image preview"
243
243
+
>
244
244
+
<img
245
245
+
src={lightboxSrc}
246
246
+
alt="Screenshot preview"
247
247
+
className="max-w-[90vw] md:max-w-[90vw] max-h-[85vh] md:max-h-[90vh] rounded-lg md:rounded-xl shadow-lg"
248
248
+
/>
249
249
+
</div>
250
250
+
)}
251
251
+
</>
252
252
+
);
253
253
+
}
254
254
+
255
255
+
export default App;
···
1
1
+
const icons = {
2
2
+
github: (
3
3
+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
4
4
+
),
5
5
+
heart: (
6
6
+
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
7
7
+
),
8
8
+
checkCircle: <path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" />,
9
9
+
bolt: <path d="M13 10V3L4 14h7v7l9-11h-7z" />,
10
10
+
sliders: (
11
11
+
<path d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4" />
12
12
+
),
13
13
+
nixos: (
14
14
+
<path d="M7.352 1.592l-1.364.002L5.32 2.75l1.557 2.713-3.137-.008-1.32 2.34H14.11l-1.353-2.332-3.192-.006-2.214-3.865zm6.175 0l-2.687.025 5.846 10.127 1.341-2.34-1.59-2.765 2.24-3.85-.683-1.182h-1.336l-1.57 2.705-1.56-2.72zm6.887 4.195l-5.846 10.125 2.696-.008 1.601-2.76 4.453.016.682-1.183-.666-1.157-3.13-.008L21.778 8.1l-1.365-2.313zM9.432 8.086l-2.696.008-1.601 2.76-4.453-.016L0 12.02l.666 1.157 3.13.008-1.575 2.71 1.365 2.315L9.432 8.086zM7.33 12.25l-.006.01-.002-.004-1.342 2.34 1.59 2.765-2.24 3.85.684 1.182H7.35l.004-.006h.001l1.567-2.698 1.558 2.72 2.688-.026-.004-.006h.01L7.33 12.25zm2.55 3.93l1.354 2.332 3.192.006 2.215 3.865 1.363-.002.668-1.156-1.557-2.713 3.137.008 1.32-2.34H9.881Z" />
15
15
+
),
16
16
+
flatpak: (
17
17
+
<path d="M12 0c-.556 0-1.111.144-1.61.432l-7.603 4.39a3.217 3.217 0 0 0-1.61 2.788v8.78c0 1.151.612 2.212 1.61 2.788l7.603 4.39a3.217 3.217 0 0 0 3.22 0l7.603-4.39a3.217 3.217 0 0 0 1.61-2.788V7.61a3.217 3.217 0 0 0-1.61-2.788L13.61.432A3.218 3.218 0 0 0 12 0Zm0 2.358c.15 0 .299.039.431.115l7.604 4.39c.132.077.24.187.315.316L12 12v9.642a.863.863 0 0 1-.431-.116l-7.604-4.39a.866.866 0 0 1-.431-.746V7.61c0-.153.041-.302.116-.43L12 12Z" />
18
18
+
),
19
19
+
download: (
20
20
+
<path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 14l-4-4h2.5V8h3v4H16l-4 4z" />
21
21
+
),
22
22
+
link: (
23
23
+
<path d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" />
24
24
+
),
25
25
+
shuffle: (
26
26
+
<path d="M16 3h5v5m0-5l-6 6m-2 8l8 8m0-5v5h-5M4 4l5 5m11 11l-5-5M4 20l5-5" />
27
27
+
),
28
28
+
star: (
29
29
+
<path d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" />
30
30
+
),
31
31
+
zap: <path d="M13 10V3L4 14h7v7l9-11h-7z" />,
32
32
+
} as const;
33
33
+
34
34
+
export type IconName = keyof typeof icons;
35
35
+
36
36
+
export function Icon({
37
37
+
name,
38
38
+
filled = false,
39
39
+
className,
40
40
+
}: {
41
41
+
name: IconName;
42
42
+
filled?: boolean;
43
43
+
className?: string;
44
44
+
}) {
45
45
+
return (
46
46
+
<svg
47
47
+
className={className}
48
48
+
viewBox="0 0 24 24"
49
49
+
fill={filled ? "currentColor" : "none"}
50
50
+
stroke={filled ? undefined : "currentColor"}
51
51
+
strokeWidth={filled ? undefined : 2}
52
52
+
>
53
53
+
{icons[name]}
54
54
+
</svg>
55
55
+
);
56
56
+
}
···
1
1
+
import type { Feature } from "../types";
2
2
+
3
3
+
export const features: Feature[] = [
4
4
+
{
5
5
+
icon: "checkCircle",
6
6
+
title: "Automatic Routing",
7
7
+
description:
8
8
+
"Create rules by domain or regex. Links open in the right browser automatically.",
9
9
+
},
10
10
+
{
11
11
+
icon: "sliders",
12
12
+
title: "Browser Launcher",
13
13
+
description:
14
14
+
"No matching rule? Launch a browser with a quick keystroke or mouse click.",
15
15
+
},
16
16
+
{
17
17
+
icon: "shuffle",
18
18
+
title: "Link Redirections",
19
19
+
description:
20
20
+
"Rewrite URLs before they open. Strip trackers, swap domains, and more.",
21
21
+
},
22
22
+
{
23
23
+
icon: "link",
24
24
+
title: "Custom URLs",
25
25
+
description:
26
26
+
"Encode rules directly with switchyard:// links. Perfect for notes and to-dos.",
27
27
+
},
28
28
+
{
29
29
+
icon: "star",
30
30
+
title: "Favorite Browser",
31
31
+
description:
32
32
+
"Pin your favorite browser to appear first and act as fallback.",
33
33
+
},
34
34
+
{
35
35
+
icon: "zap",
36
36
+
title: "Fast & Native",
37
37
+
description:
38
38
+
"A native GNOME app that launches instantly. No background services.",
39
39
+
},
40
40
+
];
···
1
1
+
import type { HeroButton } from "../types";
2
2
+
import { DONATE_URL, FLATHUB_URL, REPO_URL } from "./urls";
3
3
+
4
4
+
export const heroButtons: HeroButton[] = [
5
5
+
{
6
6
+
href: FLATHUB_URL,
7
7
+
label: "Flathub",
8
8
+
icon: "flatpak",
9
9
+
primary: true,
10
10
+
},
11
11
+
{
12
12
+
href: REPO_URL,
13
13
+
label: "GitHub",
14
14
+
icon: "github",
15
15
+
primary: true,
16
16
+
},
17
17
+
{
18
18
+
href: DONATE_URL,
19
19
+
label: "Donate",
20
20
+
icon: "heart",
21
21
+
},
22
22
+
];
···
1
1
+
import type { InstallOption } from "../types";
2
2
+
3
3
+
const REPO_URL = "https://github.com/alyraffauf/switchyard";
4
4
+
const FLATHUB_URL = "https://flathub.org/apps/io.github.alyraffauf.Switchyard";
5
5
+
6
6
+
export const installOptions: InstallOption[] = [
7
7
+
{
8
8
+
icon: "flatpak",
9
9
+
title: "Flatpak",
10
10
+
description: "Recommended for most users",
11
11
+
link: FLATHUB_URL,
12
12
+
linkText: "View on Flathub",
13
13
+
},
14
14
+
{
15
15
+
icon: "nixos",
16
16
+
title: "Nix Flake",
17
17
+
description: "Run directly or add to your config",
18
18
+
command: "nix run github:alyraffauf/switchyard",
19
19
+
},
20
20
+
{
21
21
+
icon: "github",
22
22
+
title: "Build from Source",
23
23
+
description: "Requires Go 1.24+ and GTK4",
24
24
+
link: REPO_URL,
25
25
+
linkText: "View on GitHub",
26
26
+
},
27
27
+
];
···
1
1
+
import type { Screenshot } from "../types";
2
2
+
3
3
+
const SCREENSHOTS_BASE = `https://raw.githubusercontent.com/alyraffauf/switchyard/master/data/screenshots`;
4
4
+
5
5
+
export const screenshots: Screenshot[] = [
6
6
+
{
7
7
+
src: `${SCREENSHOTS_BASE}/launcher.png`,
8
8
+
alt: "Browser launcher",
9
9
+
},
10
10
+
{
11
11
+
src: `${SCREENSHOTS_BASE}/browser-rules.png`,
12
12
+
alt: "Browser rules panel",
13
13
+
},
14
14
+
{
15
15
+
src: `${SCREENSHOTS_BASE}/link-redirections.png`,
16
16
+
alt: "Link redirections panel",
17
17
+
},
18
18
+
{
19
19
+
src: `${SCREENSHOTS_BASE}/edit-rules.png`,
20
20
+
alt: "Rule editor",
21
21
+
},
22
22
+
];
···
1
1
+
import type { Showcase } from "../types";
2
2
+
import { screenshots } from "./screenshots";
3
3
+
4
4
+
export const showcases: Showcase[] = [
5
5
+
{
6
6
+
screenshot: screenshots[1],
7
7
+
title: "Point-and-Click Setup",
8
8
+
description:
9
9
+
"Create and manage rules with a clean, native interface. No config files required—just point and click.",
10
10
+
},
11
11
+
{
12
12
+
screenshot: screenshots[2],
13
13
+
title: "Your Links, Your Way",
14
14
+
description:
15
15
+
"Take control of every link you open. Strip tracking parameters and enforce privacy-friendly frontends automatically.",
16
16
+
},
17
17
+
{
18
18
+
code: `[[rules]]
19
19
+
name = "Video Sites"
20
20
+
logic = "any"
21
21
+
browser = "brave-browser.desktop"
22
22
+
23
23
+
[[rules.conditions]]
24
24
+
type = "domain"
25
25
+
pattern = "youtube.com"
26
26
+
27
27
+
[[rules.conditions]]
28
28
+
type = "domain"
29
29
+
pattern = "twitch.tv"`,
30
30
+
title: "Plain Text Configuration",
31
31
+
description:
32
32
+
"Prefer text editors? Define rules in a simple TOML file. Easy to version control, share, and back up.",
33
33
+
},
34
34
+
];
···
1
1
+
export const REPO_URL = "https://github.com/alyraffauf/switchyard";
2
2
+
export const DONATE_URL = "https://ko-fi.com/alyraffauf";
3
3
+
export const FLATHUB_URL =
4
4
+
"https://flathub.org/apps/io.github.alyraffauf.Switchyard";
5
5
+
export const DEV_URL = "https://aly.codes";
···
1
1
+
@import "tailwindcss";
2
2
+
3
3
+
@theme {
4
4
+
--color-primary: #4f895d;
5
5
+
--color-primary-light: #5a9d6a;
6
6
+
--color-primary-dark: #3d6b48;
7
7
+
--color-bg: #ffffff;
8
8
+
--color-bg-alt: #f8faf8;
9
9
+
--color-text: #1a1a1a;
10
10
+
--color-text-muted: #555555;
11
11
+
--color-text-light: #888888;
12
12
+
--color-border: #e0e0e0;
13
13
+
--shadow-default: 0 4px 24px rgba(0, 0, 0, 0.08);
14
14
+
--shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.12);
15
15
+
--shadow-primary: 0 4px 14px rgba(79, 137, 93, 0.35);
16
16
+
--shadow-primary-hover: 0 6px 20px rgba(79, 137, 93, 0.4);
17
17
+
--font-sans:
18
18
+
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
19
19
+
Arial, sans-serif;
20
20
+
--font-mono: "SF Mono", Monaco, "Cascadia Code", "Fira Code", monospace;
21
21
+
}
22
22
+
23
23
+
@media (prefers-color-scheme: dark) {
24
24
+
@theme {
25
25
+
--color-primary: #6ab377;
26
26
+
--color-primary-light: #7ec48a;
27
27
+
--color-primary-dark: #5a9d6a;
28
28
+
--color-bg: #0f1410;
29
29
+
--color-bg-alt: #151c17;
30
30
+
--color-text: #e8ebe9;
31
31
+
--color-text-muted: #a0a8a2;
32
32
+
--color-text-light: #6a726c;
33
33
+
--color-border: #2a3530;
34
34
+
}
35
35
+
}
36
36
+
37
37
+
html {
38
38
+
scroll-behavior: smooth;
39
39
+
}
40
40
+
41
41
+
body {
42
42
+
font-family: var(--font-sans);
43
43
+
background: var(--color-bg);
44
44
+
color: var(--color-text);
45
45
+
-webkit-font-smoothing: antialiased;
46
46
+
}
···
1
1
+
import { StrictMode } from "react";
2
2
+
import { createRoot } from "react-dom/client";
3
3
+
import "./index.css";
4
4
+
import App from "./App.tsx";
5
5
+
6
6
+
createRoot(document.getElementById("root")!).render(
7
7
+
<StrictMode>
8
8
+
<App />
9
9
+
</StrictMode>,
10
10
+
);
···
1
1
+
import type { IconName } from "./components/Icon";
2
2
+
3
3
+
export interface Screenshot {
4
4
+
src: string;
5
5
+
alt: string;
6
6
+
}
7
7
+
8
8
+
export interface Feature {
9
9
+
icon: IconName;
10
10
+
title: string;
11
11
+
description: string;
12
12
+
}
13
13
+
14
14
+
export interface HeroButton {
15
15
+
href: string;
16
16
+
label: string;
17
17
+
icon?: IconName;
18
18
+
primary?: boolean;
19
19
+
}
20
20
+
21
21
+
interface InstallOptionCommand {
22
22
+
icon: IconName;
23
23
+
title: string;
24
24
+
description: string;
25
25
+
command: string;
26
26
+
}
27
27
+
28
28
+
interface InstallOptionLink {
29
29
+
icon: IconName;
30
30
+
title: string;
31
31
+
description: string;
32
32
+
link: string;
33
33
+
linkText: string;
34
34
+
}
35
35
+
36
36
+
export type InstallOption = InstallOptionCommand | InstallOptionLink;
37
37
+
38
38
+
export interface Showcase {
39
39
+
screenshot?: Screenshot;
40
40
+
code?: string;
41
41
+
title: string;
42
42
+
description: string;
43
43
+
}
44
44
+
45
45
+
export interface FooterLink {
46
46
+
href: string;
47
47
+
label: string;
48
48
+
}
···
1
1
+
{
2
2
+
"compilerOptions": {
3
3
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
4
+
"target": "ES2022",
5
5
+
"useDefineForClassFields": true,
6
6
+
"lib": ["ES2022", "DOM", "DOM.Iterable"],
7
7
+
"module": "ESNext",
8
8
+
"types": ["vite/client"],
9
9
+
"skipLibCheck": true,
10
10
+
11
11
+
/* Bundler mode */
12
12
+
"moduleResolution": "bundler",
13
13
+
"allowImportingTsExtensions": true,
14
14
+
"verbatimModuleSyntax": true,
15
15
+
"moduleDetection": "force",
16
16
+
"noEmit": true,
17
17
+
"jsx": "react-jsx",
18
18
+
19
19
+
/* Linting */
20
20
+
"strict": true,
21
21
+
"noUnusedLocals": true,
22
22
+
"noUnusedParameters": true,
23
23
+
"erasableSyntaxOnly": true,
24
24
+
"noFallthroughCasesInSwitch": true,
25
25
+
"noUncheckedSideEffectImports": true
26
26
+
},
27
27
+
"include": ["src"]
28
28
+
}
···
1
1
+
{
2
2
+
"files": [],
3
3
+
"references": [
4
4
+
{ "path": "./tsconfig.app.json" },
5
5
+
{ "path": "./tsconfig.node.json" }
6
6
+
]
7
7
+
}
···
1
1
+
{
2
2
+
"compilerOptions": {
3
3
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
4
+
"target": "ES2023",
5
5
+
"lib": ["ES2023"],
6
6
+
"module": "ESNext",
7
7
+
"types": ["node"],
8
8
+
"skipLibCheck": true,
9
9
+
10
10
+
/* Bundler mode */
11
11
+
"moduleResolution": "bundler",
12
12
+
"allowImportingTsExtensions": true,
13
13
+
"verbatimModuleSyntax": true,
14
14
+
"moduleDetection": "force",
15
15
+
"noEmit": true,
16
16
+
17
17
+
/* Linting */
18
18
+
"strict": true,
19
19
+
"noUnusedLocals": true,
20
20
+
"noUnusedParameters": true,
21
21
+
"erasableSyntaxOnly": true,
22
22
+
"noFallthroughCasesInSwitch": true,
23
23
+
"noUncheckedSideEffectImports": true
24
24
+
},
25
25
+
"include": ["vite.config.ts"]
26
26
+
}
···
1
1
+
import { defineConfig } from "vite";
2
2
+
import react from "@vitejs/plugin-react";
3
3
+
import tailwindcss from "@tailwindcss/vite";
4
4
+
5
5
+
// https://vite.dev/config/
6
6
+
export default defineConfig({
7
7
+
plugins: [react(), tailwindcss()],
8
8
+
base: "/",
9
9
+
});