├── .eslintrc.json
├── .gitignore
├── README.md
├── app
├── [location]
│ ├── opengraph-image.tsx
│ └── page.tsx
├── api
│ └── weather
│ │ └── route.ts
├── components
│ ├── footer.tsx
│ ├── illustration.tsx
│ └── page-data.tsx
├── favicon.ico
├── fonts
│ └── ClashDisplay-Semibold.otf
├── globals.css
├── layout.tsx
├── lib
│ └── utils.ts
├── opengraph-image.png
└── page.tsx
├── package.json
├── pnpm-lock.yaml
├── public
├── .well-known
│ └── ai-plugin.json
├── bg-dark.png
├── bg-light.png
├── logo.png
├── logo.svg
├── next.svg
├── openapi.json
└── vercel.svg
└── tsconfig.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env
29 | .env*.local
30 |
31 | # vercel
32 | .vercel
33 |
34 | # typescript
35 | *.tsbuildinfo
36 | next-env.d.ts
37 |
38 | # misc
39 | .vscode
40 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
WeatherGPT
6 |
7 |
8 | A ChatGPT Plugin starter template built with Next.js 13 App Router, Edge Functions, and Vercel
9 |
10 |
11 |
12 | Introduction ·
13 | Features ·
14 | Try the Plugin ·
15 | Deploy Your Own ·
16 | Read the blog post
17 |
18 |
19 |
20 | ## Introduction
21 |
22 | WeatherGPT is a ChatGPT Plugin to get the weather of any given location.
23 |
24 | https://user-images.githubusercontent.com/28986134/231841036-80da6d5b-b1dd-46e8-881e-4034529bcd1e.mp4
25 |
26 |
27 |
28 | It can also make appropriate recommendations of what outfits to wear given the weather.
29 |
30 | 
31 |
32 | ## Features
33 |
34 | - AI-Plugin & OpenAPI JSON specs
35 | - Returns a link to a dynamic Next.js route
36 | - Nextjs 13 App Router
37 | - Edge Route Handlers for returning weather data
38 | - Metadata API for SEO tags
39 | - `ImageResponse` API for dynamic OG images at the edge
40 |
41 | ## Try the Plugin
42 |
43 | If you have access to Plugins, you can try this plugin out!
44 |
45 | 1. Go to the Plugin Store
46 | 2. Click "Install an unverified plugin"
47 | 3. Enter "weathergpt.vercel.app"
48 | 4. Click "Install".
49 |
50 | https://user-images.githubusercontent.com/28986134/231842599-ab80ccc2-b1c2-4d24-bdfc-c023eebdf320.mp4
51 |
52 | ## Deploy Your Own
53 |
54 | You can deploy your own hosted version of this plugin to Vercel with one-click:
55 |
56 | [](https://vercel.com/new/clone?demo-title=WeatherGPT+%E2%80%93%C2%A0ChatGPT+Plugin+Starter&demo-description=The+ultimate+ChatGPT+Plugin+starter+template.+WeatherGPT+is+a+ChatGPT+Plugin+to+get+the+weather+of+any+given+location.&demo-url=https%3A%2F%2Fweathergpt.vercel.app%2F&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F7Ft2fS9gtS9XtxUNVJJENP%2F04a68855bda0524982d3c15cbd2628ac%2FCleanShot_2023-04-13_at_12.37.09.png&project-name=WeatherGPT+%E2%80%93%C2%A0ChatGPT+Plugin+Starter&repository-name=weathergpt&repository-url=https%3A%2F%2Fgithub.com%2Fsteven-tey%2Fweathergpt&from=templates&skippable-integrations=1&env=WEATHER_API_KEY&envDescription=Get+your+WeatherAPI+key+here%3A&envLink=https%3A%2F%2Fwww.weatherapi.com%2F&teamCreateStatus=hidden)
57 |
58 | Once you're done, don't forget to change all instances of `weathergpt.vercel.app` in the codebase to your app's URL:
59 |
60 | 
61 |
62 | To add your newly deployed Plugin to ChatGPT, follow the steps from [Try the Plugin](#try-the-plugin) above, but instead of clicking on "Install an unverified plugin", select "Develop your own plugin" instead. Note that you'll need access to develop ChatGPT Plugins to be able to do this.
63 |
64 | 
65 |
66 |
--------------------------------------------------------------------------------
/app/[location]/opengraph-image.tsx:
--------------------------------------------------------------------------------
1 | import { ImageResponse } from "next/server";
2 | import { getWeatherData } from "../lib/utils";
3 |
4 | export const runtime = "edge";
5 |
6 | const stats = [
7 | {
8 | name: "TEMPERATURE",
9 | attr: "temp_c",
10 | unit: "°C",
11 | },
12 | {
13 | name: "WIND",
14 | attr: "wind_mph",
15 | unit: "mph",
16 | },
17 | {
18 | name: "HUMIDITY",
19 | attr: "humidity",
20 | unit: "%",
21 | },
22 | ];
23 |
24 | export default async function LocationOG({
25 | params,
26 | }: {
27 | params: { location: string };
28 | }) {
29 | const clashData = await fetch(
30 | new URL("../fonts/ClashDisplay-Semibold.otf", import.meta.url)
31 | ).then((res) => res.arrayBuffer());
32 |
33 | const data = await getWeatherData(params.location);
34 |
35 | return new ImageResponse(
36 | (
37 |
54 |
63 | ⛅
64 |
65 |
66 |
73 | {data.location.name} Weather Data
74 |
75 |
82 | {stats.map(({ name, attr, unit }) => (
83 |
87 |
94 | {name}
95 |
96 |
97 | {data.current[attr]}
98 | {unit}
99 |
100 |
101 | ))}
102 |
103 |
104 |
105 | ),
106 | {
107 | width: 1200,
108 | height: 600,
109 | fonts: [
110 | {
111 | name: "Clash",
112 | data: clashData,
113 | },
114 | ],
115 | emoji: "blobmoji",
116 | }
117 | );
118 | }
119 |
--------------------------------------------------------------------------------
/app/[location]/page.tsx:
--------------------------------------------------------------------------------
1 | import { PageData } from "../components/page-data";
2 | import { getWeatherData } from "../lib/utils";
3 |
4 | export const runtime = "edge";
5 |
6 | export async function generateMetadata({
7 | params,
8 | }: {
9 | params: { location: string };
10 | }) {
11 | const data = await getWeatherData(params.location);
12 |
13 | return {
14 | title: `${data.location.name} Weather Data - WeatherGPT`,
15 | description:
16 | "WeatherGPT is a ChatGPT Plugin to get the weather of any given location. Built with Next.js and server from Vercel's Edge Network.",
17 | twitter: {
18 | card: "summary_large_image",
19 | title: `${data.location.name} Weather Data - WeatherGPT`,
20 | description:
21 | "WeatherGPT is a ChatGPT Plugin to get the weather of any given location. Built with Next.js and server from Vercel's Edge Network.",
22 | creator: "@steventey",
23 | },
24 | themeColor: "#FFF",
25 | };
26 | }
27 |
28 | export default async function Location({
29 | params,
30 | }: {
31 | params: { location: string };
32 | }) {
33 | const data = await getWeatherData(params.location);
34 |
35 | return ;
36 | }
37 |
--------------------------------------------------------------------------------
/app/api/weather/route.ts:
--------------------------------------------------------------------------------
1 | import { NextRequest, NextResponse } from "next/server";
2 | import { geolocation } from "@vercel/edge";
3 | import { getWeatherData } from "@/app/lib/utils";
4 |
5 | export const runtime = "edge";
6 |
7 | export async function GET(req: NextRequest) {
8 | let location = req.nextUrl.searchParams.get("location");
9 | if (!location) {
10 | const { city } = geolocation(req);
11 | location = city || "San Francisco";
12 | }
13 |
14 | const response = await getWeatherData(location);
15 |
16 | return NextResponse.json({
17 | ...response,
18 | infoLink: `https://weathergpt.vercel.app/${encodeURIComponent(location)}`,
19 | });
20 | }
21 |
--------------------------------------------------------------------------------
/app/components/footer.tsx:
--------------------------------------------------------------------------------
1 | export function Footer({ children }: React.PropsWithChildren<{}>) {
2 | return (
3 |
80 | );
81 | }
82 |
--------------------------------------------------------------------------------
/app/components/illustration.tsx:
--------------------------------------------------------------------------------
1 | const ILLUSTRATION_ARIA_LABEL =
2 | "Vercel and Next.js logos side-by-side, surrounded by multiple growing ellipses with orbiting circles on top.";
3 |
4 | export function Illustration() {
5 | return (
6 | <>
7 |
22 |
30 |
38 |
46 |
54 |
62 |
77 |
92 |
107 |
122 |
137 |
138 |
145 |
146 |
157 |
161 |
162 |
163 |
167 |
171 |
175 |
176 |
177 |
178 |
186 |
187 |
188 |
189 |
197 |
198 |
199 |
200 |
208 |
209 |
210 |
211 |
219 |
220 |
221 |
222 |
223 |
231 |
232 |
233 |
234 |
235 |
243 |
244 |
245 |
246 |
254 |
255 |
256 |
257 |
258 |
263 |
264 |
265 |
266 |
281 |
288 |
295 |
302 |
309 |
316 |
320 |
321 |
328 |
329 |
333 |
334 |
341 |
342 |
346 |
347 |
354 |
355 |
359 |
360 |
367 |
368 |
372 |
373 |
380 |
381 |
382 |
389 |
400 |
404 |
405 |
406 |
412 |
416 |
420 |
421 |
422 |
431 |
432 |
437 |
438 |
439 |
440 |
444 |
449 |
450 |
459 |
460 |
465 |
466 |
467 |
468 |
472 |
477 |
478 |
487 |
488 |
493 |
494 |
495 |
496 |
500 |
505 |
506 |
515 |
516 |
521 |
522 |
523 |
524 |
528 |
533 |
534 |
543 |
544 |
549 |
550 |
551 |
552 |
556 |
561 |
562 |
570 |
571 |
572 |
573 |
581 |
582 |
583 |
584 |
592 |
593 |
594 |
595 |
603 |
604 |
605 |
606 |
607 |
615 |
616 |
617 |
618 |
619 |
627 |
628 |
629 |
630 |
638 |
639 |
640 |
641 |
642 |
643 | >
644 | );
645 | }
646 |
--------------------------------------------------------------------------------
/app/components/page-data.tsx:
--------------------------------------------------------------------------------
1 | import { Illustration } from "./illustration";
2 | import { Footer } from "./footer";
3 |
4 | export function PageData({ data }: { data: any }) {
5 | const date = new Date().toISOString();
6 | return (
7 | <>
8 |
9 |
15 | Deploy your own to Vercel
16 |
17 | WeatherGPT
18 |
19 | ChatGPT Plugin to get the weather of any given location
20 |
21 |
22 |
23 |
24 | Your Location
25 |
26 | {data.location.name}
27 |
28 |
29 |
30 | Current Temperature
31 |
32 | {data.current.temp_c}°C / {data.current.temp_f}°F
33 |
34 |
35 |
36 |
37 |
38 |
50 | >
51 | );
52 | }
53 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/steven-tey/weathergpt/dabf3866fcf61db3dae3f00bdd2666f2a92f4775/app/favicon.ico
--------------------------------------------------------------------------------
/app/fonts/ClashDisplay-Semibold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/steven-tey/weathergpt/dabf3866fcf61db3dae3f00bdd2666f2a92f4775/app/fonts/ClashDisplay-Semibold.otf
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | html,
2 | body {
3 | height: 100%;
4 | }
5 |
6 | *,
7 | *::before,
8 | *::after {
9 | box-sizing: border-box;
10 | -webkit-font-smoothing: antialiased;
11 | -moz-osx-font-smoothing: grayscale;
12 | }
13 |
14 | body {
15 | --fg: black;
16 | --bg: white;
17 | --remix: #2f77d1;
18 |
19 | --accents-1: #fafafa;
20 | --accents-2: #eaeaea;
21 | --accents-3: #999999;
22 | --accents-4: #888888;
23 | --accents-5: #666666;
24 | --accents-6: #444444;
25 | --accents-7: #333333;
26 | --accents-8: #111111;
27 |
28 | --nav-border: #bebebe80;
29 | --nav-background: #fff;
30 | --nav-text: #999;
31 | --nav-text-active: #000;
32 | --nav-pill: radial-gradient(#dadada 0%, #f1f1f1 100%);
33 | --root-padding: 16px;
34 |
35 | display: flex;
36 | flex-direction: column;
37 | margin: 0;
38 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
39 | Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
40 | background: var(--bg);
41 | color: var(--fg);
42 | padding: 0 var(--root-padding);
43 | background-image: url(/bg-light.png);
44 | background-size: cover;
45 | background-position: center center;
46 | background-repeat: no-repeat;
47 | }
48 |
49 | h1,
50 | h2,
51 | h3,
52 | h4,
53 | p {
54 | margin: 0;
55 | }
56 |
57 | h1 {
58 | font-size: 60px;
59 | }
60 |
61 | .description {
62 | font-size: 20px;
63 | color: var(--accents-5);
64 | margin-top: 10px;
65 | text-align: center;
66 | }
67 |
68 | .pill {
69 | border-radius: 9999px;
70 | border: solid 1px var(--accents-2);
71 | background: var(--accents-2);
72 | font-weight: 600;
73 | font-size: 14px;
74 | color: var(--accents-7);
75 | text-decoration: none;
76 | padding: 8px 16px;
77 | margin-bottom: 8px;
78 | }
79 |
80 | .pill:hover {
81 | filter: brightness(0.96);
82 | transition: filter 0.2s ease;
83 | }
84 |
85 | ::selection {
86 | background: var(--remix);
87 | color: var(--bg);
88 | }
89 |
90 | @media (prefers-color-scheme: dark) {
91 | body {
92 | --fg: white;
93 | --bg: black;
94 |
95 | --accents-8: #fafafa;
96 | --accents-7: #eaeaea;
97 | --accents-6: #999999;
98 | --accents-5: #888888;
99 | --accents-4: #666666;
100 | --accents-3: #444444;
101 | --accents-2: #333333;
102 | --accents-1: #111111;
103 |
104 | --nav-border: #44444480;
105 | --nav-background: #000;
106 | --nav-text-active: #fff;
107 | --nav-pill: radial-gradient(#505050 0%, #292929 100%);
108 |
109 | background-image: url(/bg-dark.png);
110 | }
111 | }
112 |
113 | /* main */
114 |
115 | body a {
116 | border-radius: 3px;
117 | }
118 |
119 | body a:focus-visible {
120 | box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--accents-4);
121 | outline: 0;
122 | text-decoration: none;
123 | }
124 |
125 | main {
126 | display: flex;
127 | align-items: center;
128 | justify-content: center;
129 | flex-direction: column;
130 | position: relative;
131 | width: 100%;
132 | height: 100%;
133 | max-width: 720px;
134 | margin: 0 auto;
135 | overflow: hidden;
136 | }
137 |
138 | .gradient {
139 | position: fixed;
140 | top: 0;
141 | right: 0;
142 | z-index: -1;
143 | pointer-events: none;
144 | }
145 |
146 | .gradient[data-theme="dark"] {
147 | display: none;
148 | }
149 |
150 | .illustration {
151 | width: 100%;
152 | min-width: 480px;
153 | position: absolute;
154 | top: 50%;
155 | transform: translateY(-50%);
156 | pointer-events: none;
157 | }
158 |
159 | .illustration[data-theme="dark"] {
160 | display: none;
161 | }
162 |
163 | .meta {
164 | display: grid;
165 | grid-template-columns: repeat(2, 1fr);
166 | align-items: center;
167 | justify-content: center;
168 | width: 100%;
169 | gap: 0px;
170 | margin-top: 40vh;
171 | }
172 |
173 | .info {
174 | display: flex;
175 | flex-direction: column;
176 | align-items: center;
177 | text-align: center;
178 | gap: 12px;
179 | }
180 |
181 | .info span {
182 | white-space: nowrap;
183 | display: flex;
184 | width: fit-content;
185 | align-items: center;
186 | gap: 8px;
187 | font-size: clamp(14px, 2vw, 16px);
188 | color: var(--accents-5);
189 | }
190 |
191 | .info span.region strong {
192 | color: var(--fg);
193 | }
194 |
195 | .info span svg {
196 | width: 18px;
197 | height: 18px;
198 | }
199 |
200 | .info strong {
201 | line-height: 1.2;
202 | font-size: clamp(18px, 5vw, 40px);
203 | }
204 |
205 | @keyframes spin {
206 | 0% {
207 | transform: rotate(0deg);
208 | }
209 | 100% {
210 | transform: rotate(-360deg);
211 | }
212 | }
213 |
214 | @keyframes scale {
215 | 0% {
216 | opacity: 0;
217 | }
218 | 100% {
219 | opacity: var(--circle-opacity);
220 | }
221 | }
222 |
223 | .illustration circle {
224 | opacity: 0;
225 | animation: scale 0.5s ease forwards;
226 | }
227 |
228 | .illustration circle[data-index="0"] {
229 | animation-delay: 0.1s;
230 | }
231 |
232 | .illustration circle[data-index="1"] {
233 | animation-delay: 0.2s;
234 | }
235 |
236 | .illustration circle[data-index="2"] {
237 | animation-delay: 0.3s;
238 | }
239 |
240 | .illustration circle[data-index="3"] {
241 | animation-delay: 0.4s;
242 | }
243 |
244 | .illustration circle[data-index="4"] {
245 | animation-delay: 0.5s;
246 | }
247 |
248 | .orbit {
249 | opacity: 0;
250 | animation: scale 1s ease forwards;
251 | }
252 |
253 | .orbit[data-index="0"] {
254 | animation-delay: 0.5s;
255 | }
256 |
257 | .orbit[data-index="1"] {
258 | animation-delay: 0.6s;
259 | }
260 |
261 | .orbit[data-index="2"] {
262 | animation-delay: 0.25s;
263 | }
264 |
265 | .orbit[data-index="3"] {
266 | animation-delay: 0.3s;
267 | }
268 |
269 | .orbit[data-index="4"] {
270 | animation-delay: 0.6s;
271 | }
272 |
273 | .illustration .orbits {
274 | transform-origin: center center;
275 | }
276 |
277 | .illustration .orbits > g {
278 | animation: spin 60s linear both infinite;
279 | }
280 |
281 | .illustration .orbits > g:nth-child(2) {
282 | animation-duration: 80s;
283 | }
284 |
285 | .illustration .orbits > g:nth-child(3) {
286 | animation-duration: 100s;
287 | }
288 |
289 | .illustration .orbits > g:nth-child(4) {
290 | animation-duration: 120s;
291 | }
292 |
293 | /* footer */
294 |
295 | footer {
296 | display: flex;
297 | justify-content: space-between;
298 | align-items: flex-end;
299 | position: relative;
300 | bottom: 0;
301 | left: 0;
302 | width: 100%;
303 | text-align: center;
304 | padding: 48px;
305 | box-sizing: border-box;
306 | font-size: 16px;
307 | }
308 |
309 | footer p {
310 | line-height: 20px;
311 | color: var(--accents-7);
312 | }
313 |
314 | footer a {
315 | height: fit-content;
316 | }
317 |
318 | footer a:hover {
319 | text-decoration: hover;
320 | }
321 |
322 | footer .details {
323 | display: flex;
324 | flex-direction: column;
325 | gap: 12px;
326 | font-size: inherit;
327 | color: var(--fg);
328 | }
329 |
330 | footer .details a {
331 | color: inherit;
332 | text-decoration-color: var(--mono8);
333 | text-decoration-thickness: 1px;
334 | text-underline-offset: 3px;
335 | }
336 |
337 | footer .source {
338 | display: flex;
339 | align-items: center;
340 | justify-content: flex-end;
341 | gap: 8px;
342 | font-size: inherit;
343 | color: var(--accents-8);
344 | text-decoration: none;
345 | }
346 |
347 | .vercel {
348 | height: 24px;
349 | }
350 |
351 | /* nav */
352 |
353 | nav {
354 | top: 0;
355 | margin-top: 64px;
356 | font-size: 14px;
357 | position: fixed;
358 | width: fit-content;
359 | z-index: 10;
360 | left: 50%;
361 | transform: translateX(-50%);
362 | max-width: 100%;
363 |
364 | border: 1px solid var(--accents-2);
365 | border-radius: 9999px;
366 | box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
367 | position: relative;
368 | z-index: 10;
369 | }
370 |
371 | nav:after {
372 | content: "";
373 | background: linear-gradient(
374 | to left,
375 | var(--accents-2) 20%,
376 | var(--accents-2) 44%,
377 | var(--accents-6) 50%,
378 | var(--accents-3) 60%,
379 | var(--accents-2) 63%,
380 | var(--accents-2) 100%
381 | );
382 | z-index: -1;
383 | background-position-x: var(--x);
384 | background-size: 200% auto;
385 | position: absolute;
386 | border-radius: inherit;
387 | bottom: -1px;
388 | left: 0;
389 | width: 100%;
390 | height: 100%;
391 | transition: background-position-x 600ms ease;
392 | }
393 |
394 | .nav-switcher {
395 | width: 100%;
396 | overflow-x: auto;
397 | overflow-y: hidden;
398 | border-radius: inherit;
399 | display: flex;
400 | padding: 4px;
401 | background: var(--accents-1);
402 | }
403 |
404 | .nav-link {
405 | display: flex;
406 | align-items: center;
407 | border-radius: inherit;
408 | height: 32px;
409 | border: 0;
410 | font-family: var(--font-sans);
411 | padding: 0 16px;
412 | font-size: 14px;
413 | background: transparent;
414 | color: var(--accents-5);
415 | position: relative;
416 | cursor: pointer;
417 | transition: color 150ms ease;
418 | text-decoration: none;
419 | white-space: nowrap;
420 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
421 | }
422 |
423 | .nav-link.active {
424 | color: var(--accents-8);
425 | text-shadow: 1px 1px 12px rgba(255, 255, 255, 0.4);
426 | }
427 |
428 | .nav-link:focus-visible {
429 | outline: 0;
430 | box-shadow: 0 0 0 2px var(--accents-4);
431 | }
432 |
433 | .nav-stroke {
434 | background: linear-gradient(
435 | 90deg,
436 | rgba(0, 0, 0, 0),
437 | var(--accents-4) 20%,
438 | var(--accents-2) 67.19%,
439 | rgba(0, 0, 0, 0)
440 | );
441 | height: 1px;
442 | position: absolute;
443 | top: -1px;
444 | width: 90%;
445 | left: 32px;
446 | z-index: -1;
447 | }
448 |
449 | .nav-glow {
450 | background: white;
451 | width: 50%;
452 | height: 50px;
453 | border-radius: inherit;
454 | position: absolute;
455 | z-index: 1;
456 | filter: blur(7px);
457 | bottom: -52px;
458 | left: 25%;
459 | }
460 |
461 | .nav-pill {
462 | position: absolute;
463 | width: 100%;
464 | height: 100%;
465 | top: 0;
466 | left: 0;
467 | border-radius: inherit;
468 | background: rgba(255, 255, 255, 0.08);
469 | }
470 |
471 | @media (max-width: 420px) {
472 | .nav-link {
473 | padding: 0 12px;
474 | }
475 | }
476 |
477 | @media (hover: hover) and (pointer: fine) {
478 | .nav-link:hover {
479 | color: var(--nav-text-active);
480 | }
481 | }
482 |
483 | @media (prefers-color-scheme: light) {
484 | nav:after {
485 | display: none;
486 | }
487 |
488 | .nav-stroke {
489 | opacity: 0.2;
490 | }
491 |
492 | nav {
493 | border: 1px solid rgba(0, 0, 0, 0.12);
494 | background-clip: padding-box;
495 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.05);
496 | }
497 |
498 | .nav-switcher {
499 | background: rgba(255, 255, 255, 0.1);
500 | backdrop-filter: blur(16px);
501 | }
502 |
503 | .nav-pill {
504 | background: radial-gradient(
505 | 132.5% 137.28% at 69.9% 88.75%,
506 | #dadada 0%,
507 | #f1f1f1 100%
508 | );
509 | }
510 |
511 | .nav-link {
512 | color: var(--accents-3);
513 | }
514 | }
515 |
516 | @media (prefers-color-scheme: dark) {
517 | .gradient[data-theme="dark"] {
518 | display: block;
519 | }
520 | .gradient[data-theme="light"] {
521 | display: none;
522 | }
523 | .details p:nth-of-type(2) {
524 | color: var(--accents-5);
525 | }
526 | .illustration[data-theme="dark"] {
527 | display: block;
528 | }
529 | .illustration[data-theme="light"] {
530 | display: none;
531 | }
532 | }
533 |
534 | @media (max-width: 960px) {
535 | footer {
536 | flex-direction: column;
537 | align-items: center;
538 | gap: 16px;
539 | padding: 32px 16px;
540 | font-size: 13px;
541 | }
542 |
543 | footer [data-break] {
544 | display: block;
545 | }
546 |
547 | .source svg {
548 | width: 16px;
549 | height: 16px;
550 | }
551 |
552 | .source {
553 | margin-top: 4px;
554 | }
555 |
556 | nav {
557 | margin-top: 32px;
558 | }
559 | }
560 |
561 | @media (max-width: 600px) {
562 | .meta {
563 | gap: 8px;
564 | }
565 |
566 | footer {
567 | gap: 12px;
568 | }
569 |
570 | .info {
571 | gap: 8px;
572 | }
573 |
574 | .info span svg {
575 | width: 14px;
576 | height: 14px;
577 | }
578 |
579 | .vercel,
580 | .vercel svg {
581 | height: 18px;
582 | }
583 | }
584 |
585 | .note {
586 | font-size: 12px;
587 | color: var(--accents-4);
588 | max-width: 320px;
589 | text-align: center;
590 | top: 0;
591 | margin-top: 12px;
592 | position: fixed;
593 | z-index: 10;
594 | left: 50%;
595 | transform: translateX(-50%);
596 | position: relative;
597 | }
598 |
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import "./globals.css";
2 | import { Analytics } from "@vercel/analytics/react";
3 |
4 | export const metadata = {
5 | title: "WeatherGPT - ChatGPT Plugin to get the weather of any given location",
6 | description:
7 | "WeatherGPT is a ChatGPT Plugin to get the weather of any given location. Built with Next.js and served from Vercel's Edge Network.",
8 | twitter: {
9 | card: "summary_large_image",
10 | title:
11 | "WeatherGPT - ChatGPT Plugin to get the weather of any given location",
12 | description:
13 | "WeatherGPT is a ChatGPT Plugin to get the weather of any given location. Built with Next.js and served from Vercel's Edge Network.",
14 | creator: "@steventey",
15 | },
16 | metadataBase: new URL("https://weathergpt.vercel.app"),
17 | themeColor: "#FFF",
18 | };
19 |
20 | export default function RootLayout({
21 | children,
22 | }: {
23 | children: React.ReactNode;
24 | }) {
25 | return (
26 |
27 |
28 | {children}
29 |
30 |
31 |
32 | );
33 | }
34 |
--------------------------------------------------------------------------------
/app/lib/utils.ts:
--------------------------------------------------------------------------------
1 | export async function getWeatherData(location: string) {
2 | return fetch(
3 | `http://api.weatherapi.com/v1/current.json?key=${process.env.WEATHER_API_KEY}&q=${location}&aqi=no`,
4 | { next: { revalidate: 60 } }
5 | ).then((res) => res.json());
6 | }
7 |
--------------------------------------------------------------------------------
/app/opengraph-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/steven-tey/weathergpt/dabf3866fcf61db3dae3f00bdd2666f2a92f4775/app/opengraph-image.png
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | import { headers } from "next/headers";
2 | import { getWeatherData } from "./lib/utils";
3 | import { PageData } from "./components/page-data";
4 |
5 | export const runtime = "edge";
6 |
7 | export default async function Page() {
8 | const parsedCity = headers().get("x-vercel-ip-city");
9 | const city =
10 | !parsedCity || parsedCity === "null" ? "San Francisco" : parsedCity;
11 | const data = await getWeatherData(city);
12 |
13 | return ;
14 | }
15 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "weathergpt",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "@types/node": "18.15.11",
13 | "@types/react": "18.0.35",
14 | "@types/react-dom": "18.0.11",
15 | "@vercel/analytics": "^0.1.11",
16 | "@vercel/edge": "^0.3.2",
17 | "eslint": "8.38.0",
18 | "eslint-config-next": "13.3.0",
19 | "fs": "0.0.1-security",
20 | "next": "13.4.1",
21 | "react": "18.2.0",
22 | "react-dom": "18.2.0",
23 | "typescript": "5.0.4"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: 5.4
2 |
3 | specifiers:
4 | '@types/node': 18.15.11
5 | '@types/react': 18.0.35
6 | '@types/react-dom': 18.0.11
7 | '@vercel/analytics': ^0.1.11
8 | '@vercel/edge': ^0.3.2
9 | eslint: 8.38.0
10 | eslint-config-next: 13.3.0
11 | fs: 0.0.1-security
12 | next: 13.4.1
13 | react: 18.2.0
14 | react-dom: 18.2.0
15 | typescript: 5.0.4
16 |
17 | dependencies:
18 | '@types/node': 18.15.11
19 | '@types/react': 18.0.35
20 | '@types/react-dom': 18.0.11
21 | '@vercel/analytics': 0.1.11_react@18.2.0
22 | '@vercel/edge': 0.3.2
23 | eslint: 8.38.0
24 | eslint-config-next: 13.3.0_voubu7prgxjfsfbgx5d4sqnwiy
25 | fs: 0.0.1-security
26 | next: 13.4.1_biqbaboplfbrettd7655fr4n2y
27 | react: 18.2.0
28 | react-dom: 18.2.0_react@18.2.0
29 | typescript: 5.0.4
30 |
31 | packages:
32 |
33 | /@babel/runtime/7.21.0:
34 | resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==}
35 | engines: {node: '>=6.9.0'}
36 | dependencies:
37 | regenerator-runtime: 0.13.11
38 | dev: false
39 |
40 | /@eslint-community/eslint-utils/4.4.0_eslint@8.38.0:
41 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
42 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
43 | peerDependencies:
44 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
45 | dependencies:
46 | eslint: 8.38.0
47 | eslint-visitor-keys: 3.4.0
48 | dev: false
49 |
50 | /@eslint-community/regexpp/4.5.0:
51 | resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==}
52 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
53 | dev: false
54 |
55 | /@eslint/eslintrc/2.0.2:
56 | resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==}
57 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
58 | dependencies:
59 | ajv: 6.12.6
60 | debug: 4.3.4
61 | espree: 9.5.1
62 | globals: 13.20.0
63 | ignore: 5.2.4
64 | import-fresh: 3.3.0
65 | js-yaml: 4.1.0
66 | minimatch: 3.1.2
67 | strip-json-comments: 3.1.1
68 | transitivePeerDependencies:
69 | - supports-color
70 | dev: false
71 |
72 | /@eslint/js/8.38.0:
73 | resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==}
74 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
75 | dev: false
76 |
77 | /@humanwhocodes/config-array/0.11.8:
78 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
79 | engines: {node: '>=10.10.0'}
80 | dependencies:
81 | '@humanwhocodes/object-schema': 1.2.1
82 | debug: 4.3.4
83 | minimatch: 3.1.2
84 | transitivePeerDependencies:
85 | - supports-color
86 | dev: false
87 |
88 | /@humanwhocodes/module-importer/1.0.1:
89 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
90 | engines: {node: '>=12.22'}
91 | dev: false
92 |
93 | /@humanwhocodes/object-schema/1.2.1:
94 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
95 | dev: false
96 |
97 | /@next/env/13.4.1:
98 | resolution: {integrity: sha512-eD6WCBMFjLFooLM19SIhSkWBHtaFrZFfg2Cxnyl3vS3DAdFRfnx5TY2RxlkuKXdIRCC0ySbtK9JXXt8qLCqzZg==}
99 | dev: false
100 |
101 | /@next/eslint-plugin-next/13.3.0:
102 | resolution: {integrity: sha512-wuGN5qSEjSgcq9fVkH0Y/qIPFjnZtW3ZPwfjJOn7l/rrf6y8J24h/lo61kwqunTyzZJm/ETGfGVU9PUs8cnzEA==}
103 | dependencies:
104 | glob: 7.1.7
105 | dev: false
106 |
107 | /@next/swc-darwin-arm64/13.4.1:
108 | resolution: {integrity: sha512-eF8ARHtYfnoYtDa6xFHriUKA/Mfj/cCbmKb3NofeKhMccs65G6/loZ15a6wYCCx4rPAd6x4t1WmVYtri7EdeBg==}
109 | engines: {node: '>= 10'}
110 | cpu: [arm64]
111 | os: [darwin]
112 | requiresBuild: true
113 | dev: false
114 | optional: true
115 |
116 | /@next/swc-darwin-x64/13.4.1:
117 | resolution: {integrity: sha512-7cmDgF9tGWTgn5Gw+vP17miJbH4wcraMHDCOHTYWkO/VeKT73dUWG23TNRLfgtCNSPgH4V5B4uLHoZTanx9bAw==}
118 | engines: {node: '>= 10'}
119 | cpu: [x64]
120 | os: [darwin]
121 | requiresBuild: true
122 | dev: false
123 | optional: true
124 |
125 | /@next/swc-linux-arm64-gnu/13.4.1:
126 | resolution: {integrity: sha512-qwJqmCri2ie8aTtE5gjTSr8S6O8B67KCYgVZhv9gKH44yvc/zXbAY8u23QGULsYOyh1islWE5sWfQNLOj9iryg==}
127 | engines: {node: '>= 10'}
128 | cpu: [arm64]
129 | os: [linux]
130 | requiresBuild: true
131 | dev: false
132 | optional: true
133 |
134 | /@next/swc-linux-arm64-musl/13.4.1:
135 | resolution: {integrity: sha512-qcC54tWNGDv/VVIFkazxhqH1Bnagjfs4enzELVRlUOoJPD2BGJTPI7z08pQPbbgxLtRiu8gl2mXvpB8WlOkMeA==}
136 | engines: {node: '>= 10'}
137 | cpu: [arm64]
138 | os: [linux]
139 | requiresBuild: true
140 | dev: false
141 | optional: true
142 |
143 | /@next/swc-linux-x64-gnu/13.4.1:
144 | resolution: {integrity: sha512-9TeWFlpLsBosZ+tsm/rWBaMwt5It9tPH8m3nawZqFUUrZyGRfGcI67js774vtx0k3rL9qbyY6+3pw9BCVpaYUA==}
145 | engines: {node: '>= 10'}
146 | cpu: [x64]
147 | os: [linux]
148 | requiresBuild: true
149 | dev: false
150 | optional: true
151 |
152 | /@next/swc-linux-x64-musl/13.4.1:
153 | resolution: {integrity: sha512-sNDGaWmSqTS4QRUzw61wl4mVPeSqNIr1OOjLlQTRuyInxMxtqImRqdvzDvFTlDfdeUMU/DZhWGYoHrXLlZXe6A==}
154 | engines: {node: '>= 10'}
155 | cpu: [x64]
156 | os: [linux]
157 | requiresBuild: true
158 | dev: false
159 | optional: true
160 |
161 | /@next/swc-win32-arm64-msvc/13.4.1:
162 | resolution: {integrity: sha512-+CXZC7u1iXdLRudecoUYbhbsXpglYv8KFYsFxKBPn7kg+bk7eJo738wAA4jXIl8grTF2mPdmO93JOQym+BlYGA==}
163 | engines: {node: '>= 10'}
164 | cpu: [arm64]
165 | os: [win32]
166 | requiresBuild: true
167 | dev: false
168 | optional: true
169 |
170 | /@next/swc-win32-ia32-msvc/13.4.1:
171 | resolution: {integrity: sha512-vIoXVVc7UYO68VwVMDKwJC2+HqAZQtCYiVlApyKEeIPIQpz2gpufzGxk1z3/gwrJt/kJ5CDZjlhYDCzd3hdz+g==}
172 | engines: {node: '>= 10'}
173 | cpu: [ia32]
174 | os: [win32]
175 | requiresBuild: true
176 | dev: false
177 | optional: true
178 |
179 | /@next/swc-win32-x64-msvc/13.4.1:
180 | resolution: {integrity: sha512-n8V5ImLQZibKTu10UUdI3nIeTLkliEXe628qxqW9v8My3BAH2a7H0SaCqkV2OgqFnn8sG1wxKYw9/SNJ632kSA==}
181 | engines: {node: '>= 10'}
182 | cpu: [x64]
183 | os: [win32]
184 | requiresBuild: true
185 | dev: false
186 | optional: true
187 |
188 | /@nodelib/fs.scandir/2.1.5:
189 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
190 | engines: {node: '>= 8'}
191 | dependencies:
192 | '@nodelib/fs.stat': 2.0.5
193 | run-parallel: 1.2.0
194 | dev: false
195 |
196 | /@nodelib/fs.stat/2.0.5:
197 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
198 | engines: {node: '>= 8'}
199 | dev: false
200 |
201 | /@nodelib/fs.walk/1.2.8:
202 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
203 | engines: {node: '>= 8'}
204 | dependencies:
205 | '@nodelib/fs.scandir': 2.1.5
206 | fastq: 1.15.0
207 | dev: false
208 |
209 | /@pkgr/utils/2.3.1:
210 | resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==}
211 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
212 | dependencies:
213 | cross-spawn: 7.0.3
214 | is-glob: 4.0.3
215 | open: 8.4.2
216 | picocolors: 1.0.0
217 | tiny-glob: 0.2.9
218 | tslib: 2.5.0
219 | dev: false
220 |
221 | /@rushstack/eslint-patch/1.2.0:
222 | resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==}
223 | dev: false
224 |
225 | /@swc/helpers/0.5.1:
226 | resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
227 | dependencies:
228 | tslib: 2.5.0
229 | dev: false
230 |
231 | /@types/json5/0.0.29:
232 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
233 | dev: false
234 |
235 | /@types/node/18.15.11:
236 | resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==}
237 | dev: false
238 |
239 | /@types/prop-types/15.7.5:
240 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
241 | dev: false
242 |
243 | /@types/react-dom/18.0.11:
244 | resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==}
245 | dependencies:
246 | '@types/react': 18.0.35
247 | dev: false
248 |
249 | /@types/react/18.0.35:
250 | resolution: {integrity: sha512-6Laome31HpetaIUGFWl1VQ3mdSImwxtFZ39rh059a1MNnKGqBpC88J6NJ8n/Is3Qx7CefDGLgf/KhN/sYCf7ag==}
251 | dependencies:
252 | '@types/prop-types': 15.7.5
253 | '@types/scheduler': 0.16.3
254 | csstype: 3.1.2
255 | dev: false
256 |
257 | /@types/scheduler/0.16.3:
258 | resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
259 | dev: false
260 |
261 | /@typescript-eslint/parser/5.58.0_voubu7prgxjfsfbgx5d4sqnwiy:
262 | resolution: {integrity: sha512-ixaM3gRtlfrKzP8N6lRhBbjTow1t6ztfBvQNGuRM8qH1bjFFXIJ35XY+FC0RRBKn3C6cT+7VW1y8tNm7DwPHDQ==}
263 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
264 | peerDependencies:
265 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
266 | typescript: '*'
267 | peerDependenciesMeta:
268 | typescript:
269 | optional: true
270 | dependencies:
271 | '@typescript-eslint/scope-manager': 5.58.0
272 | '@typescript-eslint/types': 5.58.0
273 | '@typescript-eslint/typescript-estree': 5.58.0_typescript@5.0.4
274 | debug: 4.3.4
275 | eslint: 8.38.0
276 | typescript: 5.0.4
277 | transitivePeerDependencies:
278 | - supports-color
279 | dev: false
280 |
281 | /@typescript-eslint/scope-manager/5.58.0:
282 | resolution: {integrity: sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==}
283 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
284 | dependencies:
285 | '@typescript-eslint/types': 5.58.0
286 | '@typescript-eslint/visitor-keys': 5.58.0
287 | dev: false
288 |
289 | /@typescript-eslint/types/5.58.0:
290 | resolution: {integrity: sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==}
291 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
292 | dev: false
293 |
294 | /@typescript-eslint/typescript-estree/5.58.0_typescript@5.0.4:
295 | resolution: {integrity: sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==}
296 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
297 | peerDependencies:
298 | typescript: '*'
299 | peerDependenciesMeta:
300 | typescript:
301 | optional: true
302 | dependencies:
303 | '@typescript-eslint/types': 5.58.0
304 | '@typescript-eslint/visitor-keys': 5.58.0
305 | debug: 4.3.4
306 | globby: 11.1.0
307 | is-glob: 4.0.3
308 | semver: 7.4.0
309 | tsutils: 3.21.0_typescript@5.0.4
310 | typescript: 5.0.4
311 | transitivePeerDependencies:
312 | - supports-color
313 | dev: false
314 |
315 | /@typescript-eslint/visitor-keys/5.58.0:
316 | resolution: {integrity: sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==}
317 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
318 | dependencies:
319 | '@typescript-eslint/types': 5.58.0
320 | eslint-visitor-keys: 3.4.0
321 | dev: false
322 |
323 | /@vercel/analytics/0.1.11_react@18.2.0:
324 | resolution: {integrity: sha512-mj5CPR02y0BRs1tN3oZcBNAX9a8NxsIUl9vElDPcqxnMfP0RbRc9fI9Ud7+QDg/1Izvt5uMumsr+6YsmVHcyuw==}
325 | peerDependencies:
326 | react: ^16.8||^17||^18
327 | dependencies:
328 | react: 18.2.0
329 | dev: false
330 |
331 | /@vercel/edge/0.3.2:
332 | resolution: {integrity: sha512-+Vmzzdj5bRdLkBUERJEMkm1pgBDoMrcyDZLRjCWQskOTpi9NfAyu5RU42y4XxpPBwHpuRzkk6lpGa1g3c1Xw2w==}
333 | dev: false
334 |
335 | /acorn-jsx/5.3.2_acorn@8.8.2:
336 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
337 | peerDependencies:
338 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
339 | dependencies:
340 | acorn: 8.8.2
341 | dev: false
342 |
343 | /acorn/8.8.2:
344 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
345 | engines: {node: '>=0.4.0'}
346 | hasBin: true
347 | dev: false
348 |
349 | /ajv/6.12.6:
350 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
351 | dependencies:
352 | fast-deep-equal: 3.1.3
353 | fast-json-stable-stringify: 2.1.0
354 | json-schema-traverse: 0.4.1
355 | uri-js: 4.4.1
356 | dev: false
357 |
358 | /ansi-regex/5.0.1:
359 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
360 | engines: {node: '>=8'}
361 | dev: false
362 |
363 | /ansi-styles/4.3.0:
364 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
365 | engines: {node: '>=8'}
366 | dependencies:
367 | color-convert: 2.0.1
368 | dev: false
369 |
370 | /argparse/2.0.1:
371 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
372 | dev: false
373 |
374 | /aria-query/5.1.3:
375 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
376 | dependencies:
377 | deep-equal: 2.2.0
378 | dev: false
379 |
380 | /array-buffer-byte-length/1.0.0:
381 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
382 | dependencies:
383 | call-bind: 1.0.2
384 | is-array-buffer: 3.0.2
385 | dev: false
386 |
387 | /array-includes/3.1.6:
388 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
389 | engines: {node: '>= 0.4'}
390 | dependencies:
391 | call-bind: 1.0.2
392 | define-properties: 1.2.0
393 | es-abstract: 1.21.2
394 | get-intrinsic: 1.2.0
395 | is-string: 1.0.7
396 | dev: false
397 |
398 | /array-union/2.1.0:
399 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
400 | engines: {node: '>=8'}
401 | dev: false
402 |
403 | /array.prototype.flat/1.3.1:
404 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
405 | engines: {node: '>= 0.4'}
406 | dependencies:
407 | call-bind: 1.0.2
408 | define-properties: 1.2.0
409 | es-abstract: 1.21.2
410 | es-shim-unscopables: 1.0.0
411 | dev: false
412 |
413 | /array.prototype.flatmap/1.3.1:
414 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==}
415 | engines: {node: '>= 0.4'}
416 | dependencies:
417 | call-bind: 1.0.2
418 | define-properties: 1.2.0
419 | es-abstract: 1.21.2
420 | es-shim-unscopables: 1.0.0
421 | dev: false
422 |
423 | /array.prototype.tosorted/1.1.1:
424 | resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==}
425 | dependencies:
426 | call-bind: 1.0.2
427 | define-properties: 1.2.0
428 | es-abstract: 1.21.2
429 | es-shim-unscopables: 1.0.0
430 | get-intrinsic: 1.2.0
431 | dev: false
432 |
433 | /ast-types-flow/0.0.7:
434 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
435 | dev: false
436 |
437 | /available-typed-arrays/1.0.5:
438 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
439 | engines: {node: '>= 0.4'}
440 | dev: false
441 |
442 | /axe-core/4.6.3:
443 | resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==}
444 | engines: {node: '>=4'}
445 | dev: false
446 |
447 | /axobject-query/3.1.1:
448 | resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==}
449 | dependencies:
450 | deep-equal: 2.2.0
451 | dev: false
452 |
453 | /balanced-match/1.0.2:
454 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
455 | dev: false
456 |
457 | /brace-expansion/1.1.11:
458 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
459 | dependencies:
460 | balanced-match: 1.0.2
461 | concat-map: 0.0.1
462 | dev: false
463 |
464 | /braces/3.0.2:
465 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
466 | engines: {node: '>=8'}
467 | dependencies:
468 | fill-range: 7.0.1
469 | dev: false
470 |
471 | /busboy/1.6.0:
472 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
473 | engines: {node: '>=10.16.0'}
474 | dependencies:
475 | streamsearch: 1.1.0
476 | dev: false
477 |
478 | /call-bind/1.0.2:
479 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
480 | dependencies:
481 | function-bind: 1.1.1
482 | get-intrinsic: 1.2.0
483 | dev: false
484 |
485 | /callsites/3.1.0:
486 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
487 | engines: {node: '>=6'}
488 | dev: false
489 |
490 | /caniuse-lite/1.0.30001478:
491 | resolution: {integrity: sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==}
492 | dev: false
493 |
494 | /chalk/4.1.2:
495 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
496 | engines: {node: '>=10'}
497 | dependencies:
498 | ansi-styles: 4.3.0
499 | supports-color: 7.2.0
500 | dev: false
501 |
502 | /client-only/0.0.1:
503 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
504 | dev: false
505 |
506 | /color-convert/2.0.1:
507 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
508 | engines: {node: '>=7.0.0'}
509 | dependencies:
510 | color-name: 1.1.4
511 | dev: false
512 |
513 | /color-name/1.1.4:
514 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
515 | dev: false
516 |
517 | /concat-map/0.0.1:
518 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
519 | dev: false
520 |
521 | /cross-spawn/7.0.3:
522 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
523 | engines: {node: '>= 8'}
524 | dependencies:
525 | path-key: 3.1.1
526 | shebang-command: 2.0.0
527 | which: 2.0.2
528 | dev: false
529 |
530 | /csstype/3.1.2:
531 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
532 | dev: false
533 |
534 | /damerau-levenshtein/1.0.8:
535 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
536 | dev: false
537 |
538 | /debug/3.2.7:
539 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
540 | dependencies:
541 | ms: 2.1.3
542 | dev: false
543 |
544 | /debug/4.3.4:
545 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
546 | engines: {node: '>=6.0'}
547 | peerDependencies:
548 | supports-color: '*'
549 | peerDependenciesMeta:
550 | supports-color:
551 | optional: true
552 | dependencies:
553 | ms: 2.1.2
554 | dev: false
555 |
556 | /deep-equal/2.2.0:
557 | resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==}
558 | dependencies:
559 | call-bind: 1.0.2
560 | es-get-iterator: 1.1.3
561 | get-intrinsic: 1.2.0
562 | is-arguments: 1.1.1
563 | is-array-buffer: 3.0.2
564 | is-date-object: 1.0.5
565 | is-regex: 1.1.4
566 | is-shared-array-buffer: 1.0.2
567 | isarray: 2.0.5
568 | object-is: 1.1.5
569 | object-keys: 1.1.1
570 | object.assign: 4.1.4
571 | regexp.prototype.flags: 1.4.3
572 | side-channel: 1.0.4
573 | which-boxed-primitive: 1.0.2
574 | which-collection: 1.0.1
575 | which-typed-array: 1.1.9
576 | dev: false
577 |
578 | /deep-is/0.1.4:
579 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
580 | dev: false
581 |
582 | /define-lazy-prop/2.0.0:
583 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
584 | engines: {node: '>=8'}
585 | dev: false
586 |
587 | /define-properties/1.2.0:
588 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==}
589 | engines: {node: '>= 0.4'}
590 | dependencies:
591 | has-property-descriptors: 1.0.0
592 | object-keys: 1.1.1
593 | dev: false
594 |
595 | /dir-glob/3.0.1:
596 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
597 | engines: {node: '>=8'}
598 | dependencies:
599 | path-type: 4.0.0
600 | dev: false
601 |
602 | /doctrine/2.1.0:
603 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
604 | engines: {node: '>=0.10.0'}
605 | dependencies:
606 | esutils: 2.0.3
607 | dev: false
608 |
609 | /doctrine/3.0.0:
610 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
611 | engines: {node: '>=6.0.0'}
612 | dependencies:
613 | esutils: 2.0.3
614 | dev: false
615 |
616 | /emoji-regex/9.2.2:
617 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
618 | dev: false
619 |
620 | /enhanced-resolve/5.12.0:
621 | resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==}
622 | engines: {node: '>=10.13.0'}
623 | dependencies:
624 | graceful-fs: 4.2.11
625 | tapable: 2.2.1
626 | dev: false
627 |
628 | /es-abstract/1.21.2:
629 | resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
630 | engines: {node: '>= 0.4'}
631 | dependencies:
632 | array-buffer-byte-length: 1.0.0
633 | available-typed-arrays: 1.0.5
634 | call-bind: 1.0.2
635 | es-set-tostringtag: 2.0.1
636 | es-to-primitive: 1.2.1
637 | function.prototype.name: 1.1.5
638 | get-intrinsic: 1.2.0
639 | get-symbol-description: 1.0.0
640 | globalthis: 1.0.3
641 | gopd: 1.0.1
642 | has: 1.0.3
643 | has-property-descriptors: 1.0.0
644 | has-proto: 1.0.1
645 | has-symbols: 1.0.3
646 | internal-slot: 1.0.5
647 | is-array-buffer: 3.0.2
648 | is-callable: 1.2.7
649 | is-negative-zero: 2.0.2
650 | is-regex: 1.1.4
651 | is-shared-array-buffer: 1.0.2
652 | is-string: 1.0.7
653 | is-typed-array: 1.1.10
654 | is-weakref: 1.0.2
655 | object-inspect: 1.12.3
656 | object-keys: 1.1.1
657 | object.assign: 4.1.4
658 | regexp.prototype.flags: 1.4.3
659 | safe-regex-test: 1.0.0
660 | string.prototype.trim: 1.2.7
661 | string.prototype.trimend: 1.0.6
662 | string.prototype.trimstart: 1.0.6
663 | typed-array-length: 1.0.4
664 | unbox-primitive: 1.0.2
665 | which-typed-array: 1.1.9
666 | dev: false
667 |
668 | /es-get-iterator/1.1.3:
669 | resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
670 | dependencies:
671 | call-bind: 1.0.2
672 | get-intrinsic: 1.2.0
673 | has-symbols: 1.0.3
674 | is-arguments: 1.1.1
675 | is-map: 2.0.2
676 | is-set: 2.0.2
677 | is-string: 1.0.7
678 | isarray: 2.0.5
679 | stop-iteration-iterator: 1.0.0
680 | dev: false
681 |
682 | /es-set-tostringtag/2.0.1:
683 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
684 | engines: {node: '>= 0.4'}
685 | dependencies:
686 | get-intrinsic: 1.2.0
687 | has: 1.0.3
688 | has-tostringtag: 1.0.0
689 | dev: false
690 |
691 | /es-shim-unscopables/1.0.0:
692 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
693 | dependencies:
694 | has: 1.0.3
695 | dev: false
696 |
697 | /es-to-primitive/1.2.1:
698 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
699 | engines: {node: '>= 0.4'}
700 | dependencies:
701 | is-callable: 1.2.7
702 | is-date-object: 1.0.5
703 | is-symbol: 1.0.4
704 | dev: false
705 |
706 | /escape-string-regexp/4.0.0:
707 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
708 | engines: {node: '>=10'}
709 | dev: false
710 |
711 | /eslint-config-next/13.3.0_voubu7prgxjfsfbgx5d4sqnwiy:
712 | resolution: {integrity: sha512-6YEwmFBX0VjBd3ODGW9df0Is0FLaRFdMN8eAahQG9CN6LjQ28J8AFr19ngxqMSg7Qv6Uca/3VeeBosJh1bzu0w==}
713 | peerDependencies:
714 | eslint: ^7.23.0 || ^8.0.0
715 | typescript: '>=3.3.1'
716 | peerDependenciesMeta:
717 | typescript:
718 | optional: true
719 | dependencies:
720 | '@next/eslint-plugin-next': 13.3.0
721 | '@rushstack/eslint-patch': 1.2.0
722 | '@typescript-eslint/parser': 5.58.0_voubu7prgxjfsfbgx5d4sqnwiy
723 | eslint: 8.38.0
724 | eslint-import-resolver-node: 0.3.7
725 | eslint-import-resolver-typescript: 3.5.5_cshkc2qhcu55b7r3t6b6lfgcxm
726 | eslint-plugin-import: 2.27.5_eslint@8.38.0
727 | eslint-plugin-jsx-a11y: 6.7.1_eslint@8.38.0
728 | eslint-plugin-react: 7.32.2_eslint@8.38.0
729 | eslint-plugin-react-hooks: 4.6.0_eslint@8.38.0
730 | typescript: 5.0.4
731 | transitivePeerDependencies:
732 | - supports-color
733 | dev: false
734 |
735 | /eslint-import-resolver-node/0.3.7:
736 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
737 | dependencies:
738 | debug: 3.2.7
739 | is-core-module: 2.12.0
740 | resolve: 1.22.2
741 | dev: false
742 |
743 | /eslint-import-resolver-typescript/3.5.5_cshkc2qhcu55b7r3t6b6lfgcxm:
744 | resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==}
745 | engines: {node: ^14.18.0 || >=16.0.0}
746 | peerDependencies:
747 | eslint: '*'
748 | eslint-plugin-import: '*'
749 | dependencies:
750 | debug: 4.3.4
751 | enhanced-resolve: 5.12.0
752 | eslint: 8.38.0
753 | eslint-module-utils: 2.7.4_eslint@8.38.0
754 | eslint-plugin-import: 2.27.5_eslint@8.38.0
755 | get-tsconfig: 4.5.0
756 | globby: 13.1.4
757 | is-core-module: 2.12.0
758 | is-glob: 4.0.3
759 | synckit: 0.8.5
760 | transitivePeerDependencies:
761 | - supports-color
762 | dev: false
763 |
764 | /eslint-module-utils/2.7.4_eslint@8.38.0:
765 | resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
766 | engines: {node: '>=4'}
767 | peerDependencies:
768 | eslint: '*'
769 | peerDependenciesMeta:
770 | eslint:
771 | optional: true
772 | dependencies:
773 | debug: 3.2.7
774 | eslint: 8.38.0
775 | dev: false
776 |
777 | /eslint-plugin-import/2.27.5_eslint@8.38.0:
778 | resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
779 | engines: {node: '>=4'}
780 | peerDependencies:
781 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
782 | dependencies:
783 | array-includes: 3.1.6
784 | array.prototype.flat: 1.3.1
785 | array.prototype.flatmap: 1.3.1
786 | debug: 3.2.7
787 | doctrine: 2.1.0
788 | eslint: 8.38.0
789 | eslint-import-resolver-node: 0.3.7
790 | eslint-module-utils: 2.7.4_eslint@8.38.0
791 | has: 1.0.3
792 | is-core-module: 2.12.0
793 | is-glob: 4.0.3
794 | minimatch: 3.1.2
795 | object.values: 1.1.6
796 | resolve: 1.22.2
797 | semver: 6.3.0
798 | tsconfig-paths: 3.14.2
799 | dev: false
800 |
801 | /eslint-plugin-jsx-a11y/6.7.1_eslint@8.38.0:
802 | resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==}
803 | engines: {node: '>=4.0'}
804 | peerDependencies:
805 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
806 | dependencies:
807 | '@babel/runtime': 7.21.0
808 | aria-query: 5.1.3
809 | array-includes: 3.1.6
810 | array.prototype.flatmap: 1.3.1
811 | ast-types-flow: 0.0.7
812 | axe-core: 4.6.3
813 | axobject-query: 3.1.1
814 | damerau-levenshtein: 1.0.8
815 | emoji-regex: 9.2.2
816 | eslint: 8.38.0
817 | has: 1.0.3
818 | jsx-ast-utils: 3.3.3
819 | language-tags: 1.0.5
820 | minimatch: 3.1.2
821 | object.entries: 1.1.6
822 | object.fromentries: 2.0.6
823 | semver: 6.3.0
824 | dev: false
825 |
826 | /eslint-plugin-react-hooks/4.6.0_eslint@8.38.0:
827 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
828 | engines: {node: '>=10'}
829 | peerDependencies:
830 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
831 | dependencies:
832 | eslint: 8.38.0
833 | dev: false
834 |
835 | /eslint-plugin-react/7.32.2_eslint@8.38.0:
836 | resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
837 | engines: {node: '>=4'}
838 | peerDependencies:
839 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
840 | dependencies:
841 | array-includes: 3.1.6
842 | array.prototype.flatmap: 1.3.1
843 | array.prototype.tosorted: 1.1.1
844 | doctrine: 2.1.0
845 | eslint: 8.38.0
846 | estraverse: 5.3.0
847 | jsx-ast-utils: 3.3.3
848 | minimatch: 3.1.2
849 | object.entries: 1.1.6
850 | object.fromentries: 2.0.6
851 | object.hasown: 1.1.2
852 | object.values: 1.1.6
853 | prop-types: 15.8.1
854 | resolve: 2.0.0-next.4
855 | semver: 6.3.0
856 | string.prototype.matchall: 4.0.8
857 | dev: false
858 |
859 | /eslint-scope/7.1.1:
860 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
861 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
862 | dependencies:
863 | esrecurse: 4.3.0
864 | estraverse: 5.3.0
865 | dev: false
866 |
867 | /eslint-visitor-keys/3.4.0:
868 | resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==}
869 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
870 | dev: false
871 |
872 | /eslint/8.38.0:
873 | resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==}
874 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
875 | hasBin: true
876 | dependencies:
877 | '@eslint-community/eslint-utils': 4.4.0_eslint@8.38.0
878 | '@eslint-community/regexpp': 4.5.0
879 | '@eslint/eslintrc': 2.0.2
880 | '@eslint/js': 8.38.0
881 | '@humanwhocodes/config-array': 0.11.8
882 | '@humanwhocodes/module-importer': 1.0.1
883 | '@nodelib/fs.walk': 1.2.8
884 | ajv: 6.12.6
885 | chalk: 4.1.2
886 | cross-spawn: 7.0.3
887 | debug: 4.3.4
888 | doctrine: 3.0.0
889 | escape-string-regexp: 4.0.0
890 | eslint-scope: 7.1.1
891 | eslint-visitor-keys: 3.4.0
892 | espree: 9.5.1
893 | esquery: 1.5.0
894 | esutils: 2.0.3
895 | fast-deep-equal: 3.1.3
896 | file-entry-cache: 6.0.1
897 | find-up: 5.0.0
898 | glob-parent: 6.0.2
899 | globals: 13.20.0
900 | grapheme-splitter: 1.0.4
901 | ignore: 5.2.4
902 | import-fresh: 3.3.0
903 | imurmurhash: 0.1.4
904 | is-glob: 4.0.3
905 | is-path-inside: 3.0.3
906 | js-sdsl: 4.4.0
907 | js-yaml: 4.1.0
908 | json-stable-stringify-without-jsonify: 1.0.1
909 | levn: 0.4.1
910 | lodash.merge: 4.6.2
911 | minimatch: 3.1.2
912 | natural-compare: 1.4.0
913 | optionator: 0.9.1
914 | strip-ansi: 6.0.1
915 | strip-json-comments: 3.1.1
916 | text-table: 0.2.0
917 | transitivePeerDependencies:
918 | - supports-color
919 | dev: false
920 |
921 | /espree/9.5.1:
922 | resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==}
923 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
924 | dependencies:
925 | acorn: 8.8.2
926 | acorn-jsx: 5.3.2_acorn@8.8.2
927 | eslint-visitor-keys: 3.4.0
928 | dev: false
929 |
930 | /esquery/1.5.0:
931 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
932 | engines: {node: '>=0.10'}
933 | dependencies:
934 | estraverse: 5.3.0
935 | dev: false
936 |
937 | /esrecurse/4.3.0:
938 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
939 | engines: {node: '>=4.0'}
940 | dependencies:
941 | estraverse: 5.3.0
942 | dev: false
943 |
944 | /estraverse/5.3.0:
945 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
946 | engines: {node: '>=4.0'}
947 | dev: false
948 |
949 | /esutils/2.0.3:
950 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
951 | engines: {node: '>=0.10.0'}
952 | dev: false
953 |
954 | /fast-deep-equal/3.1.3:
955 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
956 | dev: false
957 |
958 | /fast-glob/3.2.12:
959 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
960 | engines: {node: '>=8.6.0'}
961 | dependencies:
962 | '@nodelib/fs.stat': 2.0.5
963 | '@nodelib/fs.walk': 1.2.8
964 | glob-parent: 5.1.2
965 | merge2: 1.4.1
966 | micromatch: 4.0.5
967 | dev: false
968 |
969 | /fast-json-stable-stringify/2.1.0:
970 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
971 | dev: false
972 |
973 | /fast-levenshtein/2.0.6:
974 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
975 | dev: false
976 |
977 | /fastq/1.15.0:
978 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
979 | dependencies:
980 | reusify: 1.0.4
981 | dev: false
982 |
983 | /file-entry-cache/6.0.1:
984 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
985 | engines: {node: ^10.12.0 || >=12.0.0}
986 | dependencies:
987 | flat-cache: 3.0.4
988 | dev: false
989 |
990 | /fill-range/7.0.1:
991 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
992 | engines: {node: '>=8'}
993 | dependencies:
994 | to-regex-range: 5.0.1
995 | dev: false
996 |
997 | /find-up/5.0.0:
998 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
999 | engines: {node: '>=10'}
1000 | dependencies:
1001 | locate-path: 6.0.0
1002 | path-exists: 4.0.0
1003 | dev: false
1004 |
1005 | /flat-cache/3.0.4:
1006 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
1007 | engines: {node: ^10.12.0 || >=12.0.0}
1008 | dependencies:
1009 | flatted: 3.2.7
1010 | rimraf: 3.0.2
1011 | dev: false
1012 |
1013 | /flatted/3.2.7:
1014 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
1015 | dev: false
1016 |
1017 | /for-each/0.3.3:
1018 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
1019 | dependencies:
1020 | is-callable: 1.2.7
1021 | dev: false
1022 |
1023 | /fs.realpath/1.0.0:
1024 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1025 | dev: false
1026 |
1027 | /fs/0.0.1-security:
1028 | resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
1029 | dev: false
1030 |
1031 | /function-bind/1.1.1:
1032 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1033 | dev: false
1034 |
1035 | /function.prototype.name/1.1.5:
1036 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==}
1037 | engines: {node: '>= 0.4'}
1038 | dependencies:
1039 | call-bind: 1.0.2
1040 | define-properties: 1.2.0
1041 | es-abstract: 1.21.2
1042 | functions-have-names: 1.2.3
1043 | dev: false
1044 |
1045 | /functions-have-names/1.2.3:
1046 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1047 | dev: false
1048 |
1049 | /get-intrinsic/1.2.0:
1050 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
1051 | dependencies:
1052 | function-bind: 1.1.1
1053 | has: 1.0.3
1054 | has-symbols: 1.0.3
1055 | dev: false
1056 |
1057 | /get-symbol-description/1.0.0:
1058 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
1059 | engines: {node: '>= 0.4'}
1060 | dependencies:
1061 | call-bind: 1.0.2
1062 | get-intrinsic: 1.2.0
1063 | dev: false
1064 |
1065 | /get-tsconfig/4.5.0:
1066 | resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==}
1067 | dev: false
1068 |
1069 | /glob-parent/5.1.2:
1070 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1071 | engines: {node: '>= 6'}
1072 | dependencies:
1073 | is-glob: 4.0.3
1074 | dev: false
1075 |
1076 | /glob-parent/6.0.2:
1077 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1078 | engines: {node: '>=10.13.0'}
1079 | dependencies:
1080 | is-glob: 4.0.3
1081 | dev: false
1082 |
1083 | /glob/7.1.7:
1084 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
1085 | dependencies:
1086 | fs.realpath: 1.0.0
1087 | inflight: 1.0.6
1088 | inherits: 2.0.4
1089 | minimatch: 3.1.2
1090 | once: 1.4.0
1091 | path-is-absolute: 1.0.1
1092 | dev: false
1093 |
1094 | /glob/7.2.3:
1095 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1096 | dependencies:
1097 | fs.realpath: 1.0.0
1098 | inflight: 1.0.6
1099 | inherits: 2.0.4
1100 | minimatch: 3.1.2
1101 | once: 1.4.0
1102 | path-is-absolute: 1.0.1
1103 | dev: false
1104 |
1105 | /globals/13.20.0:
1106 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
1107 | engines: {node: '>=8'}
1108 | dependencies:
1109 | type-fest: 0.20.2
1110 | dev: false
1111 |
1112 | /globalthis/1.0.3:
1113 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
1114 | engines: {node: '>= 0.4'}
1115 | dependencies:
1116 | define-properties: 1.2.0
1117 | dev: false
1118 |
1119 | /globalyzer/0.1.0:
1120 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
1121 | dev: false
1122 |
1123 | /globby/11.1.0:
1124 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1125 | engines: {node: '>=10'}
1126 | dependencies:
1127 | array-union: 2.1.0
1128 | dir-glob: 3.0.1
1129 | fast-glob: 3.2.12
1130 | ignore: 5.2.4
1131 | merge2: 1.4.1
1132 | slash: 3.0.0
1133 | dev: false
1134 |
1135 | /globby/13.1.4:
1136 | resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==}
1137 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
1138 | dependencies:
1139 | dir-glob: 3.0.1
1140 | fast-glob: 3.2.12
1141 | ignore: 5.2.4
1142 | merge2: 1.4.1
1143 | slash: 4.0.0
1144 | dev: false
1145 |
1146 | /globrex/0.1.2:
1147 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
1148 | dev: false
1149 |
1150 | /gopd/1.0.1:
1151 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
1152 | dependencies:
1153 | get-intrinsic: 1.2.0
1154 | dev: false
1155 |
1156 | /graceful-fs/4.2.11:
1157 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1158 | dev: false
1159 |
1160 | /grapheme-splitter/1.0.4:
1161 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
1162 | dev: false
1163 |
1164 | /has-bigints/1.0.2:
1165 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
1166 | dev: false
1167 |
1168 | /has-flag/4.0.0:
1169 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1170 | engines: {node: '>=8'}
1171 | dev: false
1172 |
1173 | /has-property-descriptors/1.0.0:
1174 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
1175 | dependencies:
1176 | get-intrinsic: 1.2.0
1177 | dev: false
1178 |
1179 | /has-proto/1.0.1:
1180 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
1181 | engines: {node: '>= 0.4'}
1182 | dev: false
1183 |
1184 | /has-symbols/1.0.3:
1185 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1186 | engines: {node: '>= 0.4'}
1187 | dev: false
1188 |
1189 | /has-tostringtag/1.0.0:
1190 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
1191 | engines: {node: '>= 0.4'}
1192 | dependencies:
1193 | has-symbols: 1.0.3
1194 | dev: false
1195 |
1196 | /has/1.0.3:
1197 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1198 | engines: {node: '>= 0.4.0'}
1199 | dependencies:
1200 | function-bind: 1.1.1
1201 | dev: false
1202 |
1203 | /ignore/5.2.4:
1204 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
1205 | engines: {node: '>= 4'}
1206 | dev: false
1207 |
1208 | /import-fresh/3.3.0:
1209 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1210 | engines: {node: '>=6'}
1211 | dependencies:
1212 | parent-module: 1.0.1
1213 | resolve-from: 4.0.0
1214 | dev: false
1215 |
1216 | /imurmurhash/0.1.4:
1217 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1218 | engines: {node: '>=0.8.19'}
1219 | dev: false
1220 |
1221 | /inflight/1.0.6:
1222 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1223 | dependencies:
1224 | once: 1.4.0
1225 | wrappy: 1.0.2
1226 | dev: false
1227 |
1228 | /inherits/2.0.4:
1229 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1230 | dev: false
1231 |
1232 | /internal-slot/1.0.5:
1233 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==}
1234 | engines: {node: '>= 0.4'}
1235 | dependencies:
1236 | get-intrinsic: 1.2.0
1237 | has: 1.0.3
1238 | side-channel: 1.0.4
1239 | dev: false
1240 |
1241 | /is-arguments/1.1.1:
1242 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
1243 | engines: {node: '>= 0.4'}
1244 | dependencies:
1245 | call-bind: 1.0.2
1246 | has-tostringtag: 1.0.0
1247 | dev: false
1248 |
1249 | /is-array-buffer/3.0.2:
1250 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
1251 | dependencies:
1252 | call-bind: 1.0.2
1253 | get-intrinsic: 1.2.0
1254 | is-typed-array: 1.1.10
1255 | dev: false
1256 |
1257 | /is-bigint/1.0.4:
1258 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1259 | dependencies:
1260 | has-bigints: 1.0.2
1261 | dev: false
1262 |
1263 | /is-boolean-object/1.1.2:
1264 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1265 | engines: {node: '>= 0.4'}
1266 | dependencies:
1267 | call-bind: 1.0.2
1268 | has-tostringtag: 1.0.0
1269 | dev: false
1270 |
1271 | /is-callable/1.2.7:
1272 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
1273 | engines: {node: '>= 0.4'}
1274 | dev: false
1275 |
1276 | /is-core-module/2.12.0:
1277 | resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==}
1278 | dependencies:
1279 | has: 1.0.3
1280 | dev: false
1281 |
1282 | /is-date-object/1.0.5:
1283 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1284 | engines: {node: '>= 0.4'}
1285 | dependencies:
1286 | has-tostringtag: 1.0.0
1287 | dev: false
1288 |
1289 | /is-docker/2.2.1:
1290 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
1291 | engines: {node: '>=8'}
1292 | hasBin: true
1293 | dev: false
1294 |
1295 | /is-extglob/2.1.1:
1296 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1297 | engines: {node: '>=0.10.0'}
1298 | dev: false
1299 |
1300 | /is-glob/4.0.3:
1301 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1302 | engines: {node: '>=0.10.0'}
1303 | dependencies:
1304 | is-extglob: 2.1.1
1305 | dev: false
1306 |
1307 | /is-map/2.0.2:
1308 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
1309 | dev: false
1310 |
1311 | /is-negative-zero/2.0.2:
1312 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
1313 | engines: {node: '>= 0.4'}
1314 | dev: false
1315 |
1316 | /is-number-object/1.0.7:
1317 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1318 | engines: {node: '>= 0.4'}
1319 | dependencies:
1320 | has-tostringtag: 1.0.0
1321 | dev: false
1322 |
1323 | /is-number/7.0.0:
1324 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1325 | engines: {node: '>=0.12.0'}
1326 | dev: false
1327 |
1328 | /is-path-inside/3.0.3:
1329 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1330 | engines: {node: '>=8'}
1331 | dev: false
1332 |
1333 | /is-regex/1.1.4:
1334 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1335 | engines: {node: '>= 0.4'}
1336 | dependencies:
1337 | call-bind: 1.0.2
1338 | has-tostringtag: 1.0.0
1339 | dev: false
1340 |
1341 | /is-set/2.0.2:
1342 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
1343 | dev: false
1344 |
1345 | /is-shared-array-buffer/1.0.2:
1346 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
1347 | dependencies:
1348 | call-bind: 1.0.2
1349 | dev: false
1350 |
1351 | /is-string/1.0.7:
1352 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1353 | engines: {node: '>= 0.4'}
1354 | dependencies:
1355 | has-tostringtag: 1.0.0
1356 | dev: false
1357 |
1358 | /is-symbol/1.0.4:
1359 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1360 | engines: {node: '>= 0.4'}
1361 | dependencies:
1362 | has-symbols: 1.0.3
1363 | dev: false
1364 |
1365 | /is-typed-array/1.1.10:
1366 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==}
1367 | engines: {node: '>= 0.4'}
1368 | dependencies:
1369 | available-typed-arrays: 1.0.5
1370 | call-bind: 1.0.2
1371 | for-each: 0.3.3
1372 | gopd: 1.0.1
1373 | has-tostringtag: 1.0.0
1374 | dev: false
1375 |
1376 | /is-weakmap/2.0.1:
1377 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
1378 | dev: false
1379 |
1380 | /is-weakref/1.0.2:
1381 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1382 | dependencies:
1383 | call-bind: 1.0.2
1384 | dev: false
1385 |
1386 | /is-weakset/2.0.2:
1387 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
1388 | dependencies:
1389 | call-bind: 1.0.2
1390 | get-intrinsic: 1.2.0
1391 | dev: false
1392 |
1393 | /is-wsl/2.2.0:
1394 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
1395 | engines: {node: '>=8'}
1396 | dependencies:
1397 | is-docker: 2.2.1
1398 | dev: false
1399 |
1400 | /isarray/2.0.5:
1401 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1402 | dev: false
1403 |
1404 | /isexe/2.0.0:
1405 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1406 | dev: false
1407 |
1408 | /js-sdsl/4.4.0:
1409 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==}
1410 | dev: false
1411 |
1412 | /js-tokens/4.0.0:
1413 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1414 | dev: false
1415 |
1416 | /js-yaml/4.1.0:
1417 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1418 | hasBin: true
1419 | dependencies:
1420 | argparse: 2.0.1
1421 | dev: false
1422 |
1423 | /json-schema-traverse/0.4.1:
1424 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1425 | dev: false
1426 |
1427 | /json-stable-stringify-without-jsonify/1.0.1:
1428 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1429 | dev: false
1430 |
1431 | /json5/1.0.2:
1432 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
1433 | hasBin: true
1434 | dependencies:
1435 | minimist: 1.2.8
1436 | dev: false
1437 |
1438 | /jsx-ast-utils/3.3.3:
1439 | resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==}
1440 | engines: {node: '>=4.0'}
1441 | dependencies:
1442 | array-includes: 3.1.6
1443 | object.assign: 4.1.4
1444 | dev: false
1445 |
1446 | /language-subtag-registry/0.3.22:
1447 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
1448 | dev: false
1449 |
1450 | /language-tags/1.0.5:
1451 | resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==}
1452 | dependencies:
1453 | language-subtag-registry: 0.3.22
1454 | dev: false
1455 |
1456 | /levn/0.4.1:
1457 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1458 | engines: {node: '>= 0.8.0'}
1459 | dependencies:
1460 | prelude-ls: 1.2.1
1461 | type-check: 0.4.0
1462 | dev: false
1463 |
1464 | /locate-path/6.0.0:
1465 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1466 | engines: {node: '>=10'}
1467 | dependencies:
1468 | p-locate: 5.0.0
1469 | dev: false
1470 |
1471 | /lodash.merge/4.6.2:
1472 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1473 | dev: false
1474 |
1475 | /loose-envify/1.4.0:
1476 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1477 | hasBin: true
1478 | dependencies:
1479 | js-tokens: 4.0.0
1480 | dev: false
1481 |
1482 | /lru-cache/6.0.0:
1483 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1484 | engines: {node: '>=10'}
1485 | dependencies:
1486 | yallist: 4.0.0
1487 | dev: false
1488 |
1489 | /merge2/1.4.1:
1490 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1491 | engines: {node: '>= 8'}
1492 | dev: false
1493 |
1494 | /micromatch/4.0.5:
1495 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1496 | engines: {node: '>=8.6'}
1497 | dependencies:
1498 | braces: 3.0.2
1499 | picomatch: 2.3.1
1500 | dev: false
1501 |
1502 | /minimatch/3.1.2:
1503 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1504 | dependencies:
1505 | brace-expansion: 1.1.11
1506 | dev: false
1507 |
1508 | /minimist/1.2.8:
1509 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
1510 | dev: false
1511 |
1512 | /ms/2.1.2:
1513 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1514 | dev: false
1515 |
1516 | /ms/2.1.3:
1517 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1518 | dev: false
1519 |
1520 | /nanoid/3.3.6:
1521 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
1522 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1523 | hasBin: true
1524 | dev: false
1525 |
1526 | /natural-compare/1.4.0:
1527 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1528 | dev: false
1529 |
1530 | /next/13.4.1_biqbaboplfbrettd7655fr4n2y:
1531 | resolution: {integrity: sha512-JBw2kAIyhKDpjhEWvNVoFeIzNp9xNxg8wrthDOtMctfn3EpqGCmW0FSviNyGgOSOSn6zDaX48pmvbdf6X2W9xA==}
1532 | engines: {node: '>=16.8.0'}
1533 | hasBin: true
1534 | peerDependencies:
1535 | '@opentelemetry/api': ^1.1.0
1536 | fibers: '>= 3.1.0'
1537 | node-sass: ^6.0.0 || ^7.0.0
1538 | react: ^18.2.0
1539 | react-dom: ^18.2.0
1540 | sass: ^1.3.0
1541 | peerDependenciesMeta:
1542 | '@opentelemetry/api':
1543 | optional: true
1544 | fibers:
1545 | optional: true
1546 | node-sass:
1547 | optional: true
1548 | sass:
1549 | optional: true
1550 | dependencies:
1551 | '@next/env': 13.4.1
1552 | '@swc/helpers': 0.5.1
1553 | busboy: 1.6.0
1554 | caniuse-lite: 1.0.30001478
1555 | postcss: 8.4.14
1556 | react: 18.2.0
1557 | react-dom: 18.2.0_react@18.2.0
1558 | styled-jsx: 5.1.1_react@18.2.0
1559 | zod: 3.21.4
1560 | optionalDependencies:
1561 | '@next/swc-darwin-arm64': 13.4.1
1562 | '@next/swc-darwin-x64': 13.4.1
1563 | '@next/swc-linux-arm64-gnu': 13.4.1
1564 | '@next/swc-linux-arm64-musl': 13.4.1
1565 | '@next/swc-linux-x64-gnu': 13.4.1
1566 | '@next/swc-linux-x64-musl': 13.4.1
1567 | '@next/swc-win32-arm64-msvc': 13.4.1
1568 | '@next/swc-win32-ia32-msvc': 13.4.1
1569 | '@next/swc-win32-x64-msvc': 13.4.1
1570 | transitivePeerDependencies:
1571 | - '@babel/core'
1572 | - babel-plugin-macros
1573 | dev: false
1574 |
1575 | /object-assign/4.1.1:
1576 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1577 | engines: {node: '>=0.10.0'}
1578 | dev: false
1579 |
1580 | /object-inspect/1.12.3:
1581 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
1582 | dev: false
1583 |
1584 | /object-is/1.1.5:
1585 | resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==}
1586 | engines: {node: '>= 0.4'}
1587 | dependencies:
1588 | call-bind: 1.0.2
1589 | define-properties: 1.2.0
1590 | dev: false
1591 |
1592 | /object-keys/1.1.1:
1593 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1594 | engines: {node: '>= 0.4'}
1595 | dev: false
1596 |
1597 | /object.assign/4.1.4:
1598 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
1599 | engines: {node: '>= 0.4'}
1600 | dependencies:
1601 | call-bind: 1.0.2
1602 | define-properties: 1.2.0
1603 | has-symbols: 1.0.3
1604 | object-keys: 1.1.1
1605 | dev: false
1606 |
1607 | /object.entries/1.1.6:
1608 | resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==}
1609 | engines: {node: '>= 0.4'}
1610 | dependencies:
1611 | call-bind: 1.0.2
1612 | define-properties: 1.2.0
1613 | es-abstract: 1.21.2
1614 | dev: false
1615 |
1616 | /object.fromentries/2.0.6:
1617 | resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==}
1618 | engines: {node: '>= 0.4'}
1619 | dependencies:
1620 | call-bind: 1.0.2
1621 | define-properties: 1.2.0
1622 | es-abstract: 1.21.2
1623 | dev: false
1624 |
1625 | /object.hasown/1.1.2:
1626 | resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
1627 | dependencies:
1628 | define-properties: 1.2.0
1629 | es-abstract: 1.21.2
1630 | dev: false
1631 |
1632 | /object.values/1.1.6:
1633 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
1634 | engines: {node: '>= 0.4'}
1635 | dependencies:
1636 | call-bind: 1.0.2
1637 | define-properties: 1.2.0
1638 | es-abstract: 1.21.2
1639 | dev: false
1640 |
1641 | /once/1.4.0:
1642 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1643 | dependencies:
1644 | wrappy: 1.0.2
1645 | dev: false
1646 |
1647 | /open/8.4.2:
1648 | resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
1649 | engines: {node: '>=12'}
1650 | dependencies:
1651 | define-lazy-prop: 2.0.0
1652 | is-docker: 2.2.1
1653 | is-wsl: 2.2.0
1654 | dev: false
1655 |
1656 | /optionator/0.9.1:
1657 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1658 | engines: {node: '>= 0.8.0'}
1659 | dependencies:
1660 | deep-is: 0.1.4
1661 | fast-levenshtein: 2.0.6
1662 | levn: 0.4.1
1663 | prelude-ls: 1.2.1
1664 | type-check: 0.4.0
1665 | word-wrap: 1.2.3
1666 | dev: false
1667 |
1668 | /p-limit/3.1.0:
1669 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1670 | engines: {node: '>=10'}
1671 | dependencies:
1672 | yocto-queue: 0.1.0
1673 | dev: false
1674 |
1675 | /p-locate/5.0.0:
1676 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1677 | engines: {node: '>=10'}
1678 | dependencies:
1679 | p-limit: 3.1.0
1680 | dev: false
1681 |
1682 | /parent-module/1.0.1:
1683 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1684 | engines: {node: '>=6'}
1685 | dependencies:
1686 | callsites: 3.1.0
1687 | dev: false
1688 |
1689 | /path-exists/4.0.0:
1690 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1691 | engines: {node: '>=8'}
1692 | dev: false
1693 |
1694 | /path-is-absolute/1.0.1:
1695 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1696 | engines: {node: '>=0.10.0'}
1697 | dev: false
1698 |
1699 | /path-key/3.1.1:
1700 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1701 | engines: {node: '>=8'}
1702 | dev: false
1703 |
1704 | /path-parse/1.0.7:
1705 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1706 | dev: false
1707 |
1708 | /path-type/4.0.0:
1709 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1710 | engines: {node: '>=8'}
1711 | dev: false
1712 |
1713 | /picocolors/1.0.0:
1714 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1715 | dev: false
1716 |
1717 | /picomatch/2.3.1:
1718 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1719 | engines: {node: '>=8.6'}
1720 | dev: false
1721 |
1722 | /postcss/8.4.14:
1723 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
1724 | engines: {node: ^10 || ^12 || >=14}
1725 | dependencies:
1726 | nanoid: 3.3.6
1727 | picocolors: 1.0.0
1728 | source-map-js: 1.0.2
1729 | dev: false
1730 |
1731 | /prelude-ls/1.2.1:
1732 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1733 | engines: {node: '>= 0.8.0'}
1734 | dev: false
1735 |
1736 | /prop-types/15.8.1:
1737 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1738 | dependencies:
1739 | loose-envify: 1.4.0
1740 | object-assign: 4.1.1
1741 | react-is: 16.13.1
1742 | dev: false
1743 |
1744 | /punycode/2.3.0:
1745 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
1746 | engines: {node: '>=6'}
1747 | dev: false
1748 |
1749 | /queue-microtask/1.2.3:
1750 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1751 | dev: false
1752 |
1753 | /react-dom/18.2.0_react@18.2.0:
1754 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
1755 | peerDependencies:
1756 | react: ^18.2.0
1757 | dependencies:
1758 | loose-envify: 1.4.0
1759 | react: 18.2.0
1760 | scheduler: 0.23.0
1761 | dev: false
1762 |
1763 | /react-is/16.13.1:
1764 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
1765 | dev: false
1766 |
1767 | /react/18.2.0:
1768 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
1769 | engines: {node: '>=0.10.0'}
1770 | dependencies:
1771 | loose-envify: 1.4.0
1772 | dev: false
1773 |
1774 | /regenerator-runtime/0.13.11:
1775 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
1776 | dev: false
1777 |
1778 | /regexp.prototype.flags/1.4.3:
1779 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==}
1780 | engines: {node: '>= 0.4'}
1781 | dependencies:
1782 | call-bind: 1.0.2
1783 | define-properties: 1.2.0
1784 | functions-have-names: 1.2.3
1785 | dev: false
1786 |
1787 | /resolve-from/4.0.0:
1788 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1789 | engines: {node: '>=4'}
1790 | dev: false
1791 |
1792 | /resolve/1.22.2:
1793 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
1794 | hasBin: true
1795 | dependencies:
1796 | is-core-module: 2.12.0
1797 | path-parse: 1.0.7
1798 | supports-preserve-symlinks-flag: 1.0.0
1799 | dev: false
1800 |
1801 | /resolve/2.0.0-next.4:
1802 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==}
1803 | hasBin: true
1804 | dependencies:
1805 | is-core-module: 2.12.0
1806 | path-parse: 1.0.7
1807 | supports-preserve-symlinks-flag: 1.0.0
1808 | dev: false
1809 |
1810 | /reusify/1.0.4:
1811 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1812 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1813 | dev: false
1814 |
1815 | /rimraf/3.0.2:
1816 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1817 | hasBin: true
1818 | dependencies:
1819 | glob: 7.2.3
1820 | dev: false
1821 |
1822 | /run-parallel/1.2.0:
1823 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1824 | dependencies:
1825 | queue-microtask: 1.2.3
1826 | dev: false
1827 |
1828 | /safe-regex-test/1.0.0:
1829 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
1830 | dependencies:
1831 | call-bind: 1.0.2
1832 | get-intrinsic: 1.2.0
1833 | is-regex: 1.1.4
1834 | dev: false
1835 |
1836 | /scheduler/0.23.0:
1837 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
1838 | dependencies:
1839 | loose-envify: 1.4.0
1840 | dev: false
1841 |
1842 | /semver/6.3.0:
1843 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
1844 | hasBin: true
1845 | dev: false
1846 |
1847 | /semver/7.4.0:
1848 | resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==}
1849 | engines: {node: '>=10'}
1850 | hasBin: true
1851 | dependencies:
1852 | lru-cache: 6.0.0
1853 | dev: false
1854 |
1855 | /shebang-command/2.0.0:
1856 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1857 | engines: {node: '>=8'}
1858 | dependencies:
1859 | shebang-regex: 3.0.0
1860 | dev: false
1861 |
1862 | /shebang-regex/3.0.0:
1863 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1864 | engines: {node: '>=8'}
1865 | dev: false
1866 |
1867 | /side-channel/1.0.4:
1868 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
1869 | dependencies:
1870 | call-bind: 1.0.2
1871 | get-intrinsic: 1.2.0
1872 | object-inspect: 1.12.3
1873 | dev: false
1874 |
1875 | /slash/3.0.0:
1876 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1877 | engines: {node: '>=8'}
1878 | dev: false
1879 |
1880 | /slash/4.0.0:
1881 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
1882 | engines: {node: '>=12'}
1883 | dev: false
1884 |
1885 | /source-map-js/1.0.2:
1886 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1887 | engines: {node: '>=0.10.0'}
1888 | dev: false
1889 |
1890 | /stop-iteration-iterator/1.0.0:
1891 | resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
1892 | engines: {node: '>= 0.4'}
1893 | dependencies:
1894 | internal-slot: 1.0.5
1895 | dev: false
1896 |
1897 | /streamsearch/1.1.0:
1898 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
1899 | engines: {node: '>=10.0.0'}
1900 | dev: false
1901 |
1902 | /string.prototype.matchall/4.0.8:
1903 | resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==}
1904 | dependencies:
1905 | call-bind: 1.0.2
1906 | define-properties: 1.2.0
1907 | es-abstract: 1.21.2
1908 | get-intrinsic: 1.2.0
1909 | has-symbols: 1.0.3
1910 | internal-slot: 1.0.5
1911 | regexp.prototype.flags: 1.4.3
1912 | side-channel: 1.0.4
1913 | dev: false
1914 |
1915 | /string.prototype.trim/1.2.7:
1916 | resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==}
1917 | engines: {node: '>= 0.4'}
1918 | dependencies:
1919 | call-bind: 1.0.2
1920 | define-properties: 1.2.0
1921 | es-abstract: 1.21.2
1922 | dev: false
1923 |
1924 | /string.prototype.trimend/1.0.6:
1925 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
1926 | dependencies:
1927 | call-bind: 1.0.2
1928 | define-properties: 1.2.0
1929 | es-abstract: 1.21.2
1930 | dev: false
1931 |
1932 | /string.prototype.trimstart/1.0.6:
1933 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
1934 | dependencies:
1935 | call-bind: 1.0.2
1936 | define-properties: 1.2.0
1937 | es-abstract: 1.21.2
1938 | dev: false
1939 |
1940 | /strip-ansi/6.0.1:
1941 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1942 | engines: {node: '>=8'}
1943 | dependencies:
1944 | ansi-regex: 5.0.1
1945 | dev: false
1946 |
1947 | /strip-bom/3.0.0:
1948 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
1949 | engines: {node: '>=4'}
1950 | dev: false
1951 |
1952 | /strip-json-comments/3.1.1:
1953 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1954 | engines: {node: '>=8'}
1955 | dev: false
1956 |
1957 | /styled-jsx/5.1.1_react@18.2.0:
1958 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
1959 | engines: {node: '>= 12.0.0'}
1960 | peerDependencies:
1961 | '@babel/core': '*'
1962 | babel-plugin-macros: '*'
1963 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
1964 | peerDependenciesMeta:
1965 | '@babel/core':
1966 | optional: true
1967 | babel-plugin-macros:
1968 | optional: true
1969 | dependencies:
1970 | client-only: 0.0.1
1971 | react: 18.2.0
1972 | dev: false
1973 |
1974 | /supports-color/7.2.0:
1975 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1976 | engines: {node: '>=8'}
1977 | dependencies:
1978 | has-flag: 4.0.0
1979 | dev: false
1980 |
1981 | /supports-preserve-symlinks-flag/1.0.0:
1982 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1983 | engines: {node: '>= 0.4'}
1984 | dev: false
1985 |
1986 | /synckit/0.8.5:
1987 | resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==}
1988 | engines: {node: ^14.18.0 || >=16.0.0}
1989 | dependencies:
1990 | '@pkgr/utils': 2.3.1
1991 | tslib: 2.5.0
1992 | dev: false
1993 |
1994 | /tapable/2.2.1:
1995 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
1996 | engines: {node: '>=6'}
1997 | dev: false
1998 |
1999 | /text-table/0.2.0:
2000 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2001 | dev: false
2002 |
2003 | /tiny-glob/0.2.9:
2004 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
2005 | dependencies:
2006 | globalyzer: 0.1.0
2007 | globrex: 0.1.2
2008 | dev: false
2009 |
2010 | /to-regex-range/5.0.1:
2011 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2012 | engines: {node: '>=8.0'}
2013 | dependencies:
2014 | is-number: 7.0.0
2015 | dev: false
2016 |
2017 | /tsconfig-paths/3.14.2:
2018 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
2019 | dependencies:
2020 | '@types/json5': 0.0.29
2021 | json5: 1.0.2
2022 | minimist: 1.2.8
2023 | strip-bom: 3.0.0
2024 | dev: false
2025 |
2026 | /tslib/1.14.1:
2027 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
2028 | dev: false
2029 |
2030 | /tslib/2.5.0:
2031 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
2032 | dev: false
2033 |
2034 | /tsutils/3.21.0_typescript@5.0.4:
2035 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
2036 | engines: {node: '>= 6'}
2037 | peerDependencies:
2038 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
2039 | dependencies:
2040 | tslib: 1.14.1
2041 | typescript: 5.0.4
2042 | dev: false
2043 |
2044 | /type-check/0.4.0:
2045 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2046 | engines: {node: '>= 0.8.0'}
2047 | dependencies:
2048 | prelude-ls: 1.2.1
2049 | dev: false
2050 |
2051 | /type-fest/0.20.2:
2052 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
2053 | engines: {node: '>=10'}
2054 | dev: false
2055 |
2056 | /typed-array-length/1.0.4:
2057 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
2058 | dependencies:
2059 | call-bind: 1.0.2
2060 | for-each: 0.3.3
2061 | is-typed-array: 1.1.10
2062 | dev: false
2063 |
2064 | /typescript/5.0.4:
2065 | resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
2066 | engines: {node: '>=12.20'}
2067 | hasBin: true
2068 | dev: false
2069 |
2070 | /unbox-primitive/1.0.2:
2071 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
2072 | dependencies:
2073 | call-bind: 1.0.2
2074 | has-bigints: 1.0.2
2075 | has-symbols: 1.0.3
2076 | which-boxed-primitive: 1.0.2
2077 | dev: false
2078 |
2079 | /uri-js/4.4.1:
2080 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2081 | dependencies:
2082 | punycode: 2.3.0
2083 | dev: false
2084 |
2085 | /which-boxed-primitive/1.0.2:
2086 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
2087 | dependencies:
2088 | is-bigint: 1.0.4
2089 | is-boolean-object: 1.1.2
2090 | is-number-object: 1.0.7
2091 | is-string: 1.0.7
2092 | is-symbol: 1.0.4
2093 | dev: false
2094 |
2095 | /which-collection/1.0.1:
2096 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
2097 | dependencies:
2098 | is-map: 2.0.2
2099 | is-set: 2.0.2
2100 | is-weakmap: 2.0.1
2101 | is-weakset: 2.0.2
2102 | dev: false
2103 |
2104 | /which-typed-array/1.1.9:
2105 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
2106 | engines: {node: '>= 0.4'}
2107 | dependencies:
2108 | available-typed-arrays: 1.0.5
2109 | call-bind: 1.0.2
2110 | for-each: 0.3.3
2111 | gopd: 1.0.1
2112 | has-tostringtag: 1.0.0
2113 | is-typed-array: 1.1.10
2114 | dev: false
2115 |
2116 | /which/2.0.2:
2117 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2118 | engines: {node: '>= 8'}
2119 | hasBin: true
2120 | dependencies:
2121 | isexe: 2.0.0
2122 | dev: false
2123 |
2124 | /word-wrap/1.2.3:
2125 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
2126 | engines: {node: '>=0.10.0'}
2127 | dev: false
2128 |
2129 | /wrappy/1.0.2:
2130 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
2131 | dev: false
2132 |
2133 | /yallist/4.0.0:
2134 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
2135 | dev: false
2136 |
2137 | /yocto-queue/0.1.0:
2138 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2139 | engines: {node: '>=10'}
2140 | dev: false
2141 |
2142 | /zod/3.21.4:
2143 | resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
2144 | dev: false
2145 |
--------------------------------------------------------------------------------
/public/.well-known/ai-plugin.json:
--------------------------------------------------------------------------------
1 | {
2 | "schema_version": "v1",
3 | "name_for_model": "WeatherGPT",
4 | "name_for_human": "WeatherGPT",
5 | "description_for_human": "Get current weather information for a specific location.",
6 | "description_for_model": "Use the WeatherGPT plugin to automatically fetch current weather information for a specific location when it's being generated by the ChatGPT assistant. The plugin will return weather data, including temperature, wind speed, humidity, and other relevant information, as well as a link to a page that has all the information. Links will always be returned and should be shown to the user. The weather data can be used to provide users with up-to-date and accurate weather information for their desired location.",
7 | "api": {
8 | "type": "openapi",
9 | "url": "https://weathergpt.vercel.app/openapi.json",
10 | "has_user_authentication": false
11 | },
12 | "auth": {
13 | "type": "none"
14 | },
15 | "logo_url": "https://weathergpt.vercel.app/logo.png",
16 | "contact_email": "stey@vercel.com",
17 | "legal_info_url": "https://weathergpt.vercel.app/legal"
18 | }
19 |
--------------------------------------------------------------------------------
/public/bg-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/steven-tey/weathergpt/dabf3866fcf61db3dae3f00bdd2666f2a92f4775/public/bg-dark.png
--------------------------------------------------------------------------------
/public/bg-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/steven-tey/weathergpt/dabf3866fcf61db3dae3f00bdd2666f2a92f4775/public/bg-light.png
--------------------------------------------------------------------------------
/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/steven-tey/weathergpt/dabf3866fcf61db3dae3f00bdd2666f2a92f4775/public/logo.png
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/openapi.json:
--------------------------------------------------------------------------------
1 | {
2 | "openapi": "3.0.0",
3 | "info": {
4 | "title": "Weather API",
5 | "version": "1.0.0"
6 | },
7 | "paths": {
8 | "/api/weather": {
9 | "get": {
10 | "summary": "Get current weather information",
11 | "operationId": "checkWeatherUsingGET",
12 | "parameters": [
13 | {
14 | "name": "location",
15 | "in": "query",
16 | "required": true,
17 | "description": "Location for which to retrieve weather information.",
18 | "schema": {
19 | "type": "string"
20 | }
21 | }
22 | ],
23 | "responses": {
24 | "200": {
25 | "description": "Current weather information",
26 | "content": {
27 | "application/json": {
28 | "schema": {
29 | "type": "object",
30 | "properties": {
31 | "location": {
32 | "type": "object",
33 | "properties": {
34 | "name": { "type": "string" },
35 | "region": { "type": "string" },
36 | "country": { "type": "string" },
37 | "lat": { "type": "number" },
38 | "lon": { "type": "number" },
39 | "tz_id": { "type": "string" },
40 | "localtime_epoch": { "type": "integer" },
41 | "localtime": { "type": "string" }
42 | }
43 | },
44 | "current": {
45 | "type": "object",
46 | "properties": {
47 | "last_updated": {
48 | "type": "string",
49 | "description": "Local time when the real time data was updated"
50 | },
51 | "last_updated_epoch": {
52 | "type": "integer",
53 | "description": "Local time when the real time data was updated in unix time"
54 | },
55 | "temp_c": {
56 | "type": "number",
57 | "description": "Temperature in celsius"
58 | },
59 | "temp_f": {
60 | "type": "number",
61 | "description": "Temperature in fahrenheit"
62 | },
63 | "is_day": {
64 | "type": "integer",
65 | "description": "1 = Yes 0 = No, Whether to show day condition icon or night icon"
66 | },
67 | "condition": {
68 | "type": "object",
69 | "properties": {
70 | "text": {
71 | "type": "string",
72 | "description": "Weather condition text"
73 | },
74 | "icon": {
75 | "type": "string",
76 | "description": "Weather icon url"
77 | },
78 | "code": {
79 | "type": "integer",
80 | "description": "Weather condition unique code"
81 | }
82 | }
83 | },
84 | "wind_mph": {
85 | "type": "number",
86 | "description": "Wind speed in miles per hour"
87 | },
88 | "wind_kph": {
89 | "type": "number",
90 | "description": "Wind speed in kilometer per hour"
91 | },
92 | "wind_degree": {
93 | "type": "integer",
94 | "description": "Wind direction in degrees"
95 | },
96 | "wind_dir": {
97 | "type": "string",
98 | "description": "Wind direction as 16 point compass, e.g., NSW"
99 | },
100 | "pressure_mb": {
101 | "type": "number",
102 | "description": "Pressure in millibars"
103 | },
104 | "pressure_in": {
105 | "type": "number",
106 | "description": "Pressure in inches"
107 | },
108 | "precip_mm": {
109 | "type": "number",
110 | "description": "Precipitation amount in millimeters"
111 | },
112 | "precip_in": {
113 | "type": "number",
114 | "description": "Precipitation amount in inches"
115 | },
116 | "humidity": {
117 | "type": "integer",
118 | "description": "Humidity as percentage"
119 | },
120 | "cloud": {
121 | "type": "integer",
122 | "description": "Cloud cover as percentage"
123 | },
124 | "feelslike_c": {
125 | "type": "number",
126 | "description": "Feels like temperature in celsius"
127 | },
128 | "feelslike_f": {
129 | "type": "number",
130 | "description": "Feels like temperature in fahrenheit"
131 | },
132 | "vis_km": {
133 | "type": "number",
134 | "description": "Visibility in kilometers"
135 | },
136 | "vis_miles": {
137 | "type": "number",
138 | "description": "Visibility in miles"
139 | },
140 | "uv": { "type": "number", "description": "UV Index" },
141 | "gust_mph": {
142 | "type": "number",
143 | "description": "Wind gust in miles per hour"
144 | },
145 | "gust_kph": {
146 | "type": "number",
147 | "description": "Wind gust in kilometer per hour"
148 | }
149 | }
150 | },
151 | "infoLink": {
152 | "type": "string",
153 | "format": "uri",
154 | "description": "A link to a page with more information about the location's weather in the format https://weathergpt.vercel.app/{location}."
155 | }
156 | }
157 | }
158 | }
159 | }
160 | }
161 | }
162 | }
163 | }
164 | }
165 | }
166 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "incremental": true,
17 | "plugins": [
18 | {
19 | "name": "next"
20 | }
21 | ],
22 | "paths": {
23 | "@/*": ["./*"]
24 | }
25 | },
26 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
27 | "exclude": ["node_modules"]
28 | }
29 |
--------------------------------------------------------------------------------