├── .eslintrc.json ├── .gitignore ├── README.md ├── app ├── components │ ├── footer.tsx │ ├── illustration.tsx │ ├── region.tsx │ └── regions.ts ├── edge │ └── page.tsx ├── favicon.ico ├── globals.css ├── layout.tsx ├── nav.tsx ├── node-streaming │ └── page.tsx ├── node │ └── page.tsx ├── opengraph-image.png ├── page.tsx └── parse-vercel-id.ts ├── next-env.d.ts ├── next.config.js ├── package.json ├── pnpm-lock.yaml ├── public ├── bg-dark.png └── bg-light.png └── 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 | .vscode 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | .pnpm-debug.log* 28 | 29 | # local env files 30 | .env*.local 31 | 32 | # vercel 33 | .vercel 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Next.js on the Edge 2 | 3 | > [!WARNING] 4 | > Edge Functions have been deprecated. We recommend using the full Node.js runtime with Fluid compute instead. [Learn more here](https://www.youtube.com/watch?v=G-ngjNfMnvE) or [read the docs](https://vercel.com/docs/functions/fluid-compute). Functions using Fluid retain the benefits of Edge Functions, without the downsides of the limited Edge runtime. Further, most workloads have 1-3 regions for their data storage, where you should co-locate your compute. Ensure your Vercel Function region is the same as your database. 5 | -------------------------------------------------------------------------------- /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/region.tsx: -------------------------------------------------------------------------------- 1 | import { regions } from './regions'; 2 | 3 | export function Region({ region }: { region: string }) { 4 | const name = regions[region] || 'Unknown'; 5 | return ( 6 | 7 | {name} ({region}) 8 | 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /app/components/regions.ts: -------------------------------------------------------------------------------- 1 | export const regions: Record = { 2 | sfo1: 'San Francisco', 3 | iad1: 'Washington, D.C.', 4 | pdx1: 'Portland', 5 | cle1: 'Cleveland', 6 | gru1: 'São Paulo', 7 | hkg1: 'Hong Kong', 8 | hnd1: 'Tokyo', 9 | icn1: 'Seoul', 10 | kix1: 'Osaka', 11 | sin1: 'Singapore', 12 | bom1: 'Mumbai', 13 | syd1: 'Sydney', 14 | cdg1: 'Paris', 15 | arn1: 'Stockholm', 16 | dub1: 'Dublin', 17 | lhr1: 'London', 18 | fra1: 'Frankfurt', 19 | cpt1: 'Cape Town', 20 | dev1: 'localhost', 21 | }; 22 | -------------------------------------------------------------------------------- /app/edge/page.tsx: -------------------------------------------------------------------------------- 1 | import { headers } from 'next/headers'; 2 | import { Footer } from '../components/footer'; 3 | import { Region } from '../components/region'; 4 | import { Illustration } from '../components/illustration'; 5 | import { parseVercelId } from '../parse-vercel-id'; 6 | 7 | export const runtime = 'edge'; 8 | 9 | export default function Page() { 10 | const headersList = headers(); 11 | const { proxyRegion, computeRegion } = parseVercelId( 12 | headersList.get('x-vercel-id') 13 | ); 14 | const date = new Date().toISOString(); 15 | 16 | return ( 17 | <> 18 |
19 | 20 |
21 |
22 | Proxy Region 23 | 24 |
25 |
26 | Compute Region 27 | 28 |
29 |
30 |
31 | 32 | 44 | 45 | ); 46 | } 47 | -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vercel-labs/next-on-the-edge/a730521109482fddb9716a40f9c4e01bf543c531/app/favicon.ico -------------------------------------------------------------------------------- /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 | ::selection { 58 | background: var(--remix); 59 | color: var(--bg); 60 | } 61 | 62 | @media (prefers-color-scheme: dark) { 63 | body { 64 | --fg: white; 65 | --bg: black; 66 | 67 | --accents-8: #fafafa; 68 | --accents-7: #eaeaea; 69 | --accents-6: #999999; 70 | --accents-5: #888888; 71 | --accents-4: #666666; 72 | --accents-3: #444444; 73 | --accents-2: #333333; 74 | --accents-1: #111111; 75 | 76 | --nav-border: #44444480; 77 | --nav-background: #000; 78 | --nav-text-active: #fff; 79 | --nav-pill: radial-gradient(#505050 0%, #292929 100%); 80 | 81 | background-image: url(/bg-dark.png); 82 | } 83 | } 84 | 85 | /* main */ 86 | 87 | body a { 88 | border-radius: 3px; 89 | } 90 | 91 | body a:focus-visible { 92 | box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--accents-4); 93 | outline: 0; 94 | text-decoration: none; 95 | } 96 | 97 | main { 98 | display: flex; 99 | align-items: center; 100 | justify-content: center; 101 | flex-direction: column; 102 | position: relative; 103 | width: 100%; 104 | height: 100%; 105 | max-width: 720px; 106 | margin: 0 auto; 107 | overflow: hidden; 108 | } 109 | 110 | .gradient { 111 | position: fixed; 112 | top: 0; 113 | right: 0; 114 | z-index: -1; 115 | pointer-events: none; 116 | } 117 | 118 | .gradient[data-theme='dark'] { 119 | display: none; 120 | } 121 | 122 | .illustration { 123 | width: 100%; 124 | min-width: 480px; 125 | position: absolute; 126 | top: 50%; 127 | transform: translateY(-50%); 128 | pointer-events: none; 129 | } 130 | 131 | .illustration[data-theme='dark'] { 132 | display: none; 133 | } 134 | 135 | .meta { 136 | display: grid; 137 | grid-template-columns: repeat(2, 1fr); 138 | align-items: center; 139 | justify-content: center; 140 | width: 100%; 141 | gap: 0px; 142 | margin-top: 40vh; 143 | } 144 | 145 | .info { 146 | display: flex; 147 | flex-direction: column; 148 | align-items: center; 149 | text-align: center; 150 | gap: 12px; 151 | } 152 | 153 | .info span { 154 | white-space: nowrap; 155 | display: flex; 156 | width: fit-content; 157 | align-items: center; 158 | gap: 8px; 159 | font-size: clamp(14px, 2vw, 16px); 160 | color: var(--accents-5); 161 | } 162 | 163 | .info span.region strong { 164 | color: var(--fg); 165 | } 166 | 167 | .info span svg { 168 | width: 18px; 169 | height: 18px; 170 | } 171 | 172 | .info strong { 173 | line-height: 1.2; 174 | font-size: clamp(18px, 5vw, 40px); 175 | } 176 | 177 | @keyframes spin { 178 | 0% { 179 | transform: rotate(0deg); 180 | } 181 | 100% { 182 | transform: rotate(-360deg); 183 | } 184 | } 185 | 186 | @keyframes scale { 187 | 0% { 188 | opacity: 0; 189 | } 190 | 100% { 191 | opacity: var(--circle-opacity); 192 | } 193 | } 194 | 195 | .illustration circle { 196 | opacity: 0; 197 | animation: scale 0.5s ease forwards; 198 | } 199 | 200 | .illustration circle[data-index='0'] { 201 | animation-delay: 0.1s; 202 | } 203 | 204 | .illustration circle[data-index='1'] { 205 | animation-delay: 0.2s; 206 | } 207 | 208 | .illustration circle[data-index='2'] { 209 | animation-delay: 0.3s; 210 | } 211 | 212 | .illustration circle[data-index='3'] { 213 | animation-delay: 0.4s; 214 | } 215 | 216 | .illustration circle[data-index='4'] { 217 | animation-delay: 0.5s; 218 | } 219 | 220 | .orbit { 221 | opacity: 0; 222 | animation: scale 1s ease forwards; 223 | } 224 | 225 | .orbit[data-index='0'] { 226 | animation-delay: 0.5s; 227 | } 228 | 229 | .orbit[data-index='1'] { 230 | animation-delay: 0.6s; 231 | } 232 | 233 | .orbit[data-index='2'] { 234 | animation-delay: 0.25s; 235 | } 236 | 237 | .orbit[data-index='3'] { 238 | animation-delay: 0.3s; 239 | } 240 | 241 | .orbit[data-index='4'] { 242 | animation-delay: 0.6s; 243 | } 244 | 245 | .illustration .orbits { 246 | transform-origin: center center; 247 | } 248 | 249 | .illustration .orbits > g { 250 | animation: spin 60s linear both infinite; 251 | } 252 | 253 | .illustration .orbits > g:nth-child(2) { 254 | animation-duration: 80s; 255 | } 256 | 257 | .illustration .orbits > g:nth-child(3) { 258 | animation-duration: 100s; 259 | } 260 | 261 | .illustration .orbits > g:nth-child(4) { 262 | animation-duration: 120s; 263 | } 264 | 265 | /* footer */ 266 | 267 | footer { 268 | display: flex; 269 | justify-content: space-between; 270 | align-items: flex-end; 271 | position: relative; 272 | bottom: 0; 273 | left: 0; 274 | width: 100%; 275 | text-align: center; 276 | padding: 48px; 277 | box-sizing: border-box; 278 | font-size: 16px; 279 | } 280 | 281 | footer p { 282 | line-height: 20px; 283 | color: var(--accents-7); 284 | } 285 | 286 | footer a { 287 | height: fit-content; 288 | } 289 | 290 | footer a:hover { 291 | text-decoration: hover; 292 | } 293 | 294 | footer .details { 295 | display: flex; 296 | flex-direction: column; 297 | gap: 12px; 298 | font-size: inherit; 299 | color: var(--fg); 300 | } 301 | 302 | footer .details a { 303 | color: inherit; 304 | text-decoration-color: var(--mono8); 305 | text-decoration-thickness: 1px; 306 | text-underline-offset: 3px; 307 | } 308 | 309 | footer .source { 310 | display: flex; 311 | align-items: center; 312 | justify-content: flex-end; 313 | gap: 8px; 314 | font-size: inherit; 315 | color: var(--accents-8); 316 | text-decoration: none; 317 | } 318 | 319 | .vercel { 320 | height: 24px; 321 | } 322 | 323 | /* nav */ 324 | 325 | nav { 326 | top: 0; 327 | margin-top: 64px; 328 | font-size: 14px; 329 | position: fixed; 330 | width: fit-content; 331 | z-index: 10; 332 | left: 50%; 333 | transform: translateX(-50%); 334 | max-width: 100%; 335 | 336 | border: 1px solid var(--accents-2); 337 | border-radius: 9999px; 338 | box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); 339 | position: relative; 340 | z-index: 10; 341 | } 342 | 343 | nav:after { 344 | content: ''; 345 | background: linear-gradient( 346 | to left, 347 | var(--accents-2) 20%, 348 | var(--accents-2) 44%, 349 | var(--accents-6) 50%, 350 | var(--accents-3) 60%, 351 | var(--accents-2) 63%, 352 | var(--accents-2) 100% 353 | ); 354 | z-index: -1; 355 | background-position-x: var(--x); 356 | background-size: 200% auto; 357 | position: absolute; 358 | border-radius: inherit; 359 | bottom: -1px; 360 | left: 0; 361 | width: 100%; 362 | height: 100%; 363 | transition: background-position-x 600ms ease; 364 | } 365 | 366 | .nav-switcher { 367 | width: 100%; 368 | overflow-x: auto; 369 | overflow-y: hidden; 370 | border-radius: inherit; 371 | display: flex; 372 | padding: 4px; 373 | background: var(--accents-1); 374 | } 375 | 376 | .nav-link { 377 | display: flex; 378 | align-items: center; 379 | border-radius: inherit; 380 | height: 32px; 381 | border: 0; 382 | font-family: var(--font-sans); 383 | padding: 0 16px; 384 | font-size: 14px; 385 | background: transparent; 386 | color: var(--accents-5); 387 | position: relative; 388 | cursor: pointer; 389 | transition: color 150ms ease; 390 | text-decoration: none; 391 | white-space: nowrap; 392 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 393 | } 394 | 395 | .nav-link.active { 396 | color: var(--accents-8); 397 | text-shadow: 1px 1px 12px rgba(255, 255, 255, 0.4); 398 | } 399 | 400 | .nav-link:focus-visible { 401 | outline: 0; 402 | box-shadow: 0 0 0 2px var(--accents-4); 403 | } 404 | 405 | .nav-stroke { 406 | background: linear-gradient( 407 | 90deg, 408 | rgba(0, 0, 0, 0), 409 | var(--accents-4) 20%, 410 | var(--accents-2) 67.19%, 411 | rgba(0, 0, 0, 0) 412 | ); 413 | height: 1px; 414 | position: absolute; 415 | top: -1px; 416 | width: 90%; 417 | left: 32px; 418 | z-index: -1; 419 | } 420 | 421 | .nav-glow { 422 | background: white; 423 | width: 50%; 424 | height: 50px; 425 | border-radius: inherit; 426 | position: absolute; 427 | z-index: 1; 428 | filter: blur(7px); 429 | bottom: -52px; 430 | left: 25%; 431 | } 432 | 433 | .nav-pill { 434 | position: absolute; 435 | width: 100%; 436 | height: 100%; 437 | top: 0; 438 | left: 0; 439 | border-radius: inherit; 440 | background: rgba(255, 255, 255, 0.08); 441 | } 442 | 443 | @media (max-width: 420px) { 444 | .nav-link { 445 | padding: 0 12px; 446 | } 447 | } 448 | 449 | @media (hover: hover) and (pointer: fine) { 450 | .nav-link:hover { 451 | color: var(--nav-text-active); 452 | } 453 | } 454 | 455 | @media (prefers-color-scheme: light) { 456 | nav:after { 457 | display: none; 458 | } 459 | 460 | .nav-stroke { 461 | opacity: 0.2; 462 | } 463 | 464 | nav { 465 | border: 1px solid rgba(0, 0, 0, 0.12); 466 | background-clip: padding-box; 467 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.05); 468 | } 469 | 470 | .nav-switcher { 471 | background: rgba(255, 255, 255, 0.1); 472 | backdrop-filter: blur(16px); 473 | } 474 | 475 | .nav-pill { 476 | background: radial-gradient( 477 | 132.5% 137.28% at 69.9% 88.75%, 478 | #dadada 0%, 479 | #f1f1f1 100% 480 | ); 481 | } 482 | 483 | .nav-link { 484 | color: var(--accents-3); 485 | } 486 | } 487 | 488 | @media (prefers-color-scheme: dark) { 489 | .gradient[data-theme='dark'] { 490 | display: block; 491 | } 492 | .gradient[data-theme='light'] { 493 | display: none; 494 | } 495 | .details p:nth-of-type(2) { 496 | color: var(--accents-5); 497 | } 498 | .illustration[data-theme='dark'] { 499 | display: block; 500 | } 501 | .illustration[data-theme='light'] { 502 | display: none; 503 | } 504 | } 505 | 506 | @media (max-width: 960px) { 507 | footer { 508 | flex-direction: column; 509 | align-items: center; 510 | gap: 16px; 511 | padding: 32px 16px; 512 | font-size: 13px; 513 | } 514 | 515 | footer [data-break] { 516 | display: block; 517 | } 518 | 519 | .source svg { 520 | width: 16px; 521 | height: 16px; 522 | } 523 | 524 | .source { 525 | margin-top: 4px; 526 | } 527 | 528 | nav { 529 | margin-top: 32px; 530 | } 531 | } 532 | 533 | @media (max-width: 600px) { 534 | .meta { 535 | gap: 8px; 536 | } 537 | 538 | footer { 539 | gap: 12px; 540 | } 541 | 542 | .info { 543 | gap: 8px; 544 | } 545 | 546 | .info span svg { 547 | width: 14px; 548 | height: 14px; 549 | } 550 | 551 | .vercel, 552 | .vercel svg { 553 | height: 18px; 554 | } 555 | } 556 | 557 | .note { 558 | font-size: 12px; 559 | color: var(--accents-4); 560 | max-width: 320px; 561 | text-align: center; 562 | top: 0; 563 | margin-top: 12px; 564 | position: fixed; 565 | z-index: 10; 566 | left: 50%; 567 | transform: translateX(-50%); 568 | position: relative; 569 | } 570 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | import './globals.css'; 2 | import NavigationSwitcher from './nav'; 3 | 4 | export const metadata = { 5 | title: 'Next.js on the Edge', 6 | description: 'HTML, dynamically rendered in a city near you', 7 | twitter: { 8 | card: 'summary_large_image', 9 | title: 'Next.js on the Edge', 10 | description: 'HTML, dynamically rendered in a city near you', 11 | creator: '@nextjs', 12 | }, 13 | themeColor: '#FFF', 14 | }; 15 | 16 | export default function RootLayout({ 17 | children, 18 | }: { 19 | children: React.ReactNode; 20 | }) { 21 | return ( 22 | 23 | 24 | 25 | {children} 26 | 27 | 28 | ); 29 | } 30 | -------------------------------------------------------------------------------- /app/nav.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { motion } from 'framer-motion'; 4 | import { usePathname } from 'next/navigation'; 5 | import Link from 'next/link'; 6 | import clsx from 'clsx'; 7 | 8 | const SECTION_DATA = [ 9 | { label: 'Edge (Streaming)', href: '/', x: '100%' }, 10 | { label: 'Edge', href: '/edge', x: '62%' }, 11 | { label: 'Node.js (Streaming)', href: '/node-streaming', x: '38%' }, 12 | { label: 'Node.js', href: '/node', x: '0%' }, 13 | ]; 14 | 15 | export default function NavigationSwitcher() { 16 | const pathname = usePathname(); 17 | const activeSection = SECTION_DATA.find( 18 | (section) => section.href === pathname 19 | ); 20 | 21 | const buttons = SECTION_DATA.map((section) => { 22 | return ( 23 | 31 |
{section.label}
32 | {section.href === pathname ? ( 33 | <> 34 | 47 | 58 | 59 | ) : null} 60 | 61 | ); 62 | }); 63 | return ( 64 | <> 65 | 77 |

78 | Note: This demo simulates a slow database or backend connection to 79 | demonstrate streaming. 80 |

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