├── .eslintrc.json
├── src
├── app
│ ├── favicon.ico
│ ├── server-example
│ │ ├── loading.tsx
│ │ ├── code
│ │ │ ├── page.tsx
│ │ │ └── ServerExampleCodeView.tsx
│ │ ├── page.tsx
│ │ └── ServerExampleView.tsx
│ ├── client-example
│ │ ├── page.tsx
│ │ └── ClientExampleView.tsx
│ ├── globals.css
│ ├── Header.tsx
│ ├── page.tsx
│ └── layout.tsx
├── components
│ ├── FullScreenLoader.tsx
│ ├── DisableBodyScroll.tsx
│ ├── Link.tsx
│ ├── Logo.tsx
│ ├── GitHubButton.tsx
│ ├── BoxLoader.tsx
│ ├── Spotify.tsx
│ ├── Players
│ │ ├── SoundCloud.tsx
│ │ ├── AmazonMusic.tsx
│ │ ├── Deezer.tsx
│ │ ├── Spotify.tsx
│ │ ├── YouTubeVideo.tsx
│ │ └── AppleMusic.tsx
│ ├── GistView.tsx
│ ├── SongPlayer.tsx
│ ├── SongCard.tsx
│ └── modals
│ │ └── ModalRoot.tsx
├── lib
│ └── server
│ │ ├── fetchSong.tsx
│ │ ├── fetchSongs.tsx
│ │ └── contentful.tsx
├── interfaces
│ └── contentful.interfaces.tsx
└── assets
│ └── svg
│ ├── github.svg
│ └── designly-logo-trans.svg
├── postcss.config.js
├── next.config.js
├── .prettierrc
├── .gitignore
├── public
├── vercel.svg
└── next.svg
├── tailwind.config.ts
├── tsconfig.json
├── package.json
├── README.md
└── pnpm-lock.yaml
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/src/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/designly1/nextjs14-data-fetching-examples/HEAD/src/app/favicon.ico
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | images: {
4 | domains: ['localhost', 'cdn.designly.biz'],
5 | },
6 |
7 | }
8 |
9 | module.exports = nextConfig
10 |
--------------------------------------------------------------------------------
/src/app/server-example/loading.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import BoxLoader from '@/components/BoxLoader';
3 |
4 | export default function LoadingDeployments() {
5 | return ;
6 | }
7 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "tabWidth": 4,
4 | "useTabs": true,
5 | "semi": true,
6 | "singleQuote": true,
7 | "trailingComma": "all",
8 | "bracketSpacing": true,
9 | "jsxBracketSameLine": false,
10 | "arrowParens": "avoid",
11 | "quoteProps": "as-needed"
12 | }
13 |
--------------------------------------------------------------------------------
/src/components/FullScreenLoader.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export default function FullScreenLoader() {
4 | return (
5 |
8 | );
9 | }
10 |
--------------------------------------------------------------------------------
/src/app/client-example/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import BoxLoader from '@/components/BoxLoader';
3 |
4 | import dynamic from 'next/dynamic';
5 | const ClientExampleView = dynamic(() => import('./ClientExampleView'), {
6 | loading: () => ,
7 | ssr: false,
8 | });
9 |
10 | export default function ClientExamplePage() {
11 | return ;
12 | }
13 |
--------------------------------------------------------------------------------
/src/app/server-example/code/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import BoxLoader from '@/components/BoxLoader';
3 |
4 | import dynamic from 'next/dynamic';
5 | const ServerExampleCodeView = dynamic(() => import('./ServerExampleCodeView'), {
6 | loading: () => ,
7 | ssr: false,
8 | });
9 |
10 | export default function ServerExampleCodePage() {
11 | return ;
12 | }
13 |
--------------------------------------------------------------------------------
/src/components/DisableBodyScroll.tsx:
--------------------------------------------------------------------------------
1 | // @/components/DisableBodyScroll.js
2 | import React, { Component } from 'react';
3 | class DisableBodyScroll extends Component {
4 | componentDidMount() {
5 | document.body.classList.add('scroll-locked');
6 | }
7 | componentWillUnmount() {
8 | document.body.classList.remove('scroll-locked');
9 | }
10 | render() {
11 | return false;
12 | }
13 | }
14 | export default DisableBodyScroll;
15 |
--------------------------------------------------------------------------------
/src/app/server-example/code/ServerExampleCodeView.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import GistView from '@/components/GistView';
5 |
6 | import { useRouter } from 'nextjs13-progress';
7 |
8 | export default function ServerExampleCodeView() {
9 | const router = useRouter();
10 |
11 | const handleClose = () => {
12 | router.push('/server-example');
13 | };
14 |
15 | return ;
16 | }
17 |
--------------------------------------------------------------------------------
/src/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | .angled-div {
6 | position: fixed;
7 | width: 200px;
8 | height: 200px;
9 | top: -100px;
10 | right: -100px;
11 | background-color: #3498db;
12 | color: white;
13 | text-align: center;
14 | box-sizing: border-box;
15 | transform: rotate(-45deg);
16 | cursor: pointer;
17 | }
18 |
19 | .angled-div > div {
20 | transform: rotate(45deg);
21 | position: absolute;
22 | padding: 5px;
23 | top: 32%;
24 | }
25 |
--------------------------------------------------------------------------------
/src/components/Link.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Link as L } from 'nextjs13-progress';
3 |
4 | /**
5 | *
6 | * This is a wrapper around the Next.js Link component.
7 | * temporary hack until nextjs13-progress is updated to support TypeScript 5
8 | */
9 |
10 | interface LinkProps {
11 | href: string;
12 | className?: string;
13 | target?: string;
14 | children: React.ReactNode;
15 | }
16 |
17 | export default function Link(props: LinkProps) {
18 | return ;
19 | }
20 |
--------------------------------------------------------------------------------
/src/components/Logo.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Image from 'next/image';
3 |
4 | import logo from '@/assets/svg/designly-logo-trans.svg';
5 |
6 | interface Props {
7 | width?: number;
8 | }
9 |
10 | const origWidth = 300;
11 | const origHeight = 100;
12 |
13 | export default function Logo(props: Props) {
14 | const { width = origWidth } = props;
15 | const height = (origHeight / origWidth) * width;
16 |
17 | return ;
18 | }
19 |
--------------------------------------------------------------------------------
/src/app/server-example/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import BoxLoader from '@/components/BoxLoader';
3 |
4 | import dynamic from 'next/dynamic';
5 | const ServerExampleView = dynamic(() => import('./ServerExampleView'), {
6 | loading: () => ,
7 | });
8 |
9 | import fetchSongs from '@/lib/server/fetchSongs';
10 |
11 | export default async function ServerExamplePage() {
12 | const songs = await fetchSongs();
13 |
14 | return ;
15 | }
16 |
--------------------------------------------------------------------------------
/src/components/GitHubButton.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Link from './Link';
3 | import Image from 'next/image';
4 |
5 | import githubIcon from '@/assets/svg/github.svg';
6 |
7 | export default function GitHubButton() {
8 | return (
9 |
14 |
15 |
16 |
17 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/src/lib/server/fetchSong.tsx:
--------------------------------------------------------------------------------
1 | 'use server';
2 |
3 | import { getSong, mapSongDetails } from './contentful';
4 |
5 | export default async function fetchSong(slug: string) {
6 | try {
7 | // simulate network delay
8 | await new Promise(resolve => setTimeout(resolve, 2000));
9 | const song = await getSong(slug);
10 | if (!song) throw new Error('Failed to fetch song');
11 |
12 | return mapSongDetails(song);
13 | } catch (err: any) {
14 | console.error(err);
15 | throw new Error('Failed to fetch song');
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.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 | .yarn/install-state.gz
8 |
9 | # testing
10 | /coverage
11 |
12 | # next.js
13 | /.next/
14 | /out/
15 |
16 | # production
17 | /build
18 |
19 | # misc
20 | .DS_Store
21 | *.pem
22 |
23 | # debug
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 |
28 | # local env files
29 | .env*.local
30 |
31 | # vercel
32 | .vercel
33 |
34 | # typescript
35 | *.tsbuildinfo
36 | next-env.d.ts
37 |
--------------------------------------------------------------------------------
/src/app/Header.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Link from '@/components/Link';
3 | import Logo from '@/components/Logo';
4 |
5 | export default function Header() {
6 | return (
7 |
8 |
9 |
10 |
11 | Visit Designly.biz
12 | Visit Designly Blog
13 |
14 | );
15 | }
16 |
--------------------------------------------------------------------------------
/src/app/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Link from '@/components/Link';
3 |
4 | export default function MainPage() {
5 | return (
6 |
7 |
Next.js 14 Data Fetching Examples
8 |
9 | Server Fetching Example
10 |
11 |
12 | Client Fetching Example
13 |
14 |
15 | );
16 | }
17 |
--------------------------------------------------------------------------------
/src/lib/server/fetchSongs.tsx:
--------------------------------------------------------------------------------
1 | 'use server';
2 |
3 | import { getSongs, mapSongs } from './contentful';
4 |
5 | import { I_SongItem } from '@/interfaces/contentful.interfaces';
6 |
7 | export default async function fetchSongs(): Promise {
8 | try {
9 | // simulate network delay
10 | await new Promise((resolve) => setTimeout(resolve, 2000));
11 | const songs = await getSongs();
12 | if (!songs) throw new Error('Failed to fetch songs');
13 |
14 | return mapSongs(songs);
15 | } catch (err: any) {
16 | console.error(err);
17 | throw new Error('Failed to fetch songs');
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/components/BoxLoader.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | interface Props {
4 | message?: string;
5 | lightMode?: boolean;
6 | }
7 |
8 | export default function BoxLoader(props: Props) {
9 | const { message = 'Loading...', lightMode = false } = props;
10 | return (
11 |
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | import type { Config } from 'tailwindcss';
2 |
3 | const config: Config = {
4 | content: [
5 | './src/pages/**/*.{js,ts,jsx,tsx,mdx}',
6 | './src/components/**/*.{js,ts,jsx,tsx,mdx}',
7 | './src/app/**/*.{js,ts,jsx,tsx,mdx}',
8 | ],
9 | theme: {
10 | extend: {
11 | backgroundImage: {
12 | 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
13 | 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
14 | },
15 | },
16 | },
17 | plugins: [require('daisyui')],
18 | daisyui: {
19 | themes: ['business'],
20 | },
21 | };
22 | export default config;
23 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "noEmit": true,
9 | "esModuleInterop": true,
10 | "module": "esnext",
11 | "moduleResolution": "bundler",
12 | "resolveJsonModule": true,
13 | "isolatedModules": true,
14 | "jsx": "preserve",
15 | "incremental": true,
16 | "plugins": [
17 | {
18 | "name": "next"
19 | }
20 | ],
21 | "paths": {
22 | "@/*": ["./src/*"]
23 | }
24 | },
25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
26 | "exclude": ["node_modules"]
27 | }
28 |
--------------------------------------------------------------------------------
/src/components/Spotify.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | interface Props {
4 | url: string;
5 | className?: string;
6 | }
7 |
8 | export default function Spotify(props: Props) {
9 | const { url, className } = props;
10 |
11 |
12 | const classes = [
13 | 'rounded-xl',
14 | 'border-0',
15 | ];
16 |
17 | if (className) {
18 | classes.push(className);
19 | }
20 |
21 | return (
22 |
30 | )
31 | }
32 |
--------------------------------------------------------------------------------
/src/components/Players/SoundCloud.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ModalRoot from '@/components/modals/ModalRoot';
3 | import Embed from 'react-embed';
4 |
5 | interface Props {
6 | url: string;
7 | className?: string;
8 | show: boolean;
9 | setShow: React.Dispatch>;
10 | }
11 |
12 | export default function SoundCloud(props: Props) {
13 | const { url, className, show, setShow } = props;
14 |
15 | return (
16 |
17 |
18 |
19 | setShow(false)}
22 | >
23 | Close
24 |
25 |
26 |
27 | );
28 | }
29 |
--------------------------------------------------------------------------------
/src/components/Players/AmazonMusic.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ModalRoot from '@/components/modals/ModalRoot';
3 |
4 | interface Props {
5 | url: string;
6 | className?: string;
7 | show: boolean;
8 | setShow: React.Dispatch>;
9 | }
10 |
11 | export default function AmazonMusic(props: Props) {
12 | const { url, className, show, setShow } = props;
13 |
14 | return (
15 |
16 |
17 |
23 | setShow(false)}
26 | >
27 | Close
28 |
29 |
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/src/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import type { Metadata } from 'next';
2 | import { Inter } from 'next/font/google';
3 | import './globals.css';
4 |
5 | import { Next13NProgress } from 'nextjs13-progress';
6 | import GitHubButton from '@/components/GitHubButton';
7 | import Header from './Header';
8 |
9 | const inter = Inter({ subsets: ['latin'] });
10 |
11 | export const metadata: Metadata = {
12 | title: 'Next.js 14 Data Fetching Examples | Designly',
13 | description: 'Next.js 14 Data Fetching Examples | Designly',
14 | };
15 |
16 | export default function RootLayout({ children }: { children: React.ReactNode }) {
17 | return (
18 |
19 |
20 |
21 |
22 |
23 | {children}
24 |
25 |
26 |
27 |
28 | );
29 | }
30 |
--------------------------------------------------------------------------------
/src/components/Players/Deezer.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ModalRoot from '@/components/modals/ModalRoot';
3 |
4 | interface Props {
5 | url: string;
6 | className?: string;
7 | show: boolean;
8 | setShow: React.Dispatch>;
9 | }
10 |
11 | export default function Deezer(props: Props) {
12 | const { url, className, show, setShow } = props;
13 |
14 | return (
15 |
16 |
17 |
25 | setShow(false)}
28 | >
29 | Close
30 |
31 |
32 |
33 | );
34 | }
35 |
--------------------------------------------------------------------------------
/src/components/GistView.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import Gist from 'react-gist';
5 | import DisableBodyScroll from './DisableBodyScroll';
6 |
7 | import { FaTimes } from 'react-icons/fa';
8 |
9 | interface Props {
10 | id: string;
11 | setShow: React.Dispatch> | (() => void);
12 | }
13 |
14 | export default function GistView(props: Props) {
15 | const { id, setShow } = props;
16 |
17 | return (
18 | <>
19 |
20 |
setShow(false)}>
21 |
22 |
23 |
29 |
30 |
31 |
32 |
33 | >
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nextjs14-data-fetching-examples",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "contentful": "^10.6.16",
13 | "daisyui": "^4.5.0",
14 | "framer-motion": "^10.17.12",
15 | "next": "14.0.4",
16 | "nextjs13-progress": "^1.2.5",
17 | "react": "^18.2.0",
18 | "react-dom": "^18.2.0",
19 | "react-embed": "^3.7.0",
20 | "react-gist": "^1.2.4",
21 | "react-icons": "^4.12.0",
22 | "swr": "^2.2.4"
23 | },
24 | "devDependencies": {
25 | "@types/node": "^20.10.8",
26 | "@types/react": "^18.2.47",
27 | "@types/react-dom": "^18.2.18",
28 | "autoprefixer": "^10.4.16",
29 | "eslint": "^8.56.0",
30 | "eslint-config-next": "14.0.4",
31 | "postcss": "^8.4.33",
32 | "tailwindcss": "^3.4.1",
33 | "typescript": "^5.3.3"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/components/Players/Spotify.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ModalRoot from '@/components/modals/ModalRoot';
3 |
4 | interface Props {
5 | url: string;
6 | className?: string;
7 | show: boolean;
8 | setShow: React.Dispatch> | (() => void);
9 | }
10 |
11 | export default function Spotify(props: Props) {
12 | const { url, className, show, setShow } = props;
13 |
14 | return (
15 |
16 |
17 |
25 | setShow(false)}
28 | >
29 | Close
30 |
31 |
32 |
33 | );
34 | }
35 |
--------------------------------------------------------------------------------
/src/app/server-example/ServerExampleView.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Link from '@/components/Link';
3 | import SongCard from '@/components/SongCard';
4 |
5 | import { I_SongItem } from '@/interfaces/contentful.interfaces';
6 |
7 | import { BiCodeAlt } from 'react-icons/bi';
8 |
9 | interface Props {
10 | songs: I_SongItem[];
11 | }
12 |
13 | export default function ServerExampleView(props: Props) {
14 | const { songs } = props;
15 | return (
16 |
17 |
Server Example
18 |
19 |
20 | Go Back
21 |
22 |
23 |
24 | Show Code
25 |
26 |
27 | {songs.map((song, i) => (
28 |
29 | ))}
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/src/components/Players/YouTubeVideo.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ModalRoot from '@/components/modals/ModalRoot';
3 |
4 | interface Props {
5 | url: string;
6 | className?: string;
7 | show: boolean;
8 | setShow: React.Dispatch>;
9 | }
10 |
11 | export default function YouTubeVideo(props: Props) {
12 | const { url, className, show, setShow } = props;
13 |
14 | return (
15 |
16 |
17 |
26 | setShow(false)}
29 | >
30 | Close
31 |
32 |
33 |
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/src/components/Players/AppleMusic.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ModalRoot from '@/components/modals/ModalRoot';
3 |
4 | interface Props {
5 | url: string;
6 | className?: string;
7 | show: boolean;
8 | setShow: React.Dispatch>;
9 | }
10 |
11 | export default function AppleMusic(props: Props) {
12 | const { url, className, show, setShow } = props;
13 |
14 | return (
15 |
16 |
17 |
24 | setShow(false)}
27 | >
28 | Close
29 |
30 |
31 |
32 | );
33 | }
34 |
--------------------------------------------------------------------------------
/src/components/SongPlayer.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import FullScreenLoader from './FullScreenLoader';
5 |
6 | import dynamic from 'next/dynamic';
7 | const Spotify = dynamic(() => import('./Players/Spotify'), {
8 | loading: () => ,
9 | });
10 | const SoundCloud = dynamic(() => import('./Players/SoundCloud'), {
11 | loading: () => ,
12 | });
13 |
14 | import fetchSong from '@/lib/server/fetchSong';
15 | import useSWR from 'swr';
16 |
17 | interface Props {
18 | slug: string;
19 | show: boolean;
20 | setShow: React.Dispatch> | (() => void);
21 | }
22 |
23 | export default function SongPlayer(props: Props) {
24 | const { slug, show, setShow } = props;
25 | const { data: song, error, isLoading } = useSWR(slug, fetchSong);
26 |
27 | if (isLoading) {
28 | return ;
29 | }
30 |
31 | if (!song) return Failed to load song
;
32 |
33 | if (song.spotifyUrl) {
34 | return ;
35 | } else {
36 | return ;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/SongCard.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React, { useState } from 'react';
4 | import Image from 'next/image';
5 | import SongPlayer from './SongPlayer';
6 |
7 | import { FaPlay } from 'react-icons/fa';
8 |
9 | import { I_SongItem } from '@/interfaces/contentful.interfaces';
10 |
11 | const SongCard = (props: { song: I_SongItem }) => {
12 | const { song } = props;
13 |
14 | const [selectedSong, setSelectedSong] = useState('');
15 | const [showPlayer, setShowPlayer] = useState(false);
16 |
17 | const handlePlay = (slug: string) => {
18 | setSelectedSong(slug);
19 | setShowPlayer(true);
20 | };
21 |
22 | return (
23 | <>
24 |
25 |
32 |
33 |
34 |
{song.title}
35 |
36 |
{song.duration}
37 |
handlePlay(song.slug)}>
38 |
39 |
40 |
41 |
42 |
43 |
44 | {showPlayer ? : null}
45 | >
46 | );
47 | };
48 |
49 | export default SongCard;
50 |
--------------------------------------------------------------------------------
/src/components/modals/ModalRoot.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { AnimatePresence, motion } from 'framer-motion';
3 | import GistView from '../GistView';
4 |
5 | import { FaTimesCircle } from 'react-icons/fa';
6 |
7 | interface Props {
8 | className?: string;
9 | children?: React.ReactNode;
10 | show: boolean;
11 | setShow: React.Dispatch>;
12 | clickBgToClose?: boolean;
13 | }
14 |
15 | export default function ModalRoot(props: Props) {
16 | const { className, children, show, setShow, clickBgToClose = false } = props;
17 | const classes = ['fixed top-0 right-0 bottom-0 left-0 z-50 bg-black/80 flex items-center justify-center px-4'];
18 | if (className) classes.push(className);
19 |
20 | const [showCode, setShowCode] = useState(false);
21 |
22 | return (
23 |
24 | {show ? (
25 | clickBgToClose && setShow(false)}
32 | >
33 |
34 | setShow(false)}
37 | >
38 |
39 |
40 |
41 | {children}
42 | setShowCode(true)}>
43 | Show Code
44 |
45 | {showCode ? : null}
46 |
47 | ) : null}
48 |
49 | );
50 | }
51 |
--------------------------------------------------------------------------------
/src/app/client-example/ClientExampleView.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React, { useState } from 'react';
4 | import Link from '@/components/Link';
5 | import BoxLoader from '@/components/BoxLoader';
6 | import SongCard from '@/components/SongCard';
7 | import GistView from '@/components/GistView';
8 |
9 | import useSwr from 'swr';
10 | import fetchSongs from '@/lib/server/fetchSongs';
11 |
12 | import { LuRefreshCcw } from 'react-icons/lu';
13 | import { BiCodeAlt } from 'react-icons/bi';
14 |
15 | export default function ClientExampleView() {
16 | const { data: songs, isLoading, isValidating, mutate } = useSwr('songs', fetchSongs);
17 | const [showCode, setShowCode] = useState(false);
18 |
19 | if (isLoading) {
20 | return ;
21 | }
22 |
23 | if (!songs) {
24 | return Failed to load songs
;
25 | }
26 |
27 | return (
28 | <>
29 |
30 |
Client Example
31 |
32 |
33 | Go Back
34 |
35 |
mutate()}>
36 |
37 | {isValidating ?
:
}
38 |
39 | Refresh
40 |
41 |
setShowCode(!showCode)}>
42 |
43 | Show Code
44 |
45 |
46 | {songs.map((song, i) => (
47 |
48 | ))}
49 |
50 | {showCode ? : null}
51 | >
52 | );
53 | }
54 |
--------------------------------------------------------------------------------
/src/interfaces/contentful.interfaces.tsx:
--------------------------------------------------------------------------------
1 | export interface I_SongItem {
2 | id: string;
3 | title: string;
4 | slug: string;
5 | releaseDate: string;
6 | duration: string;
7 | genre: string;
8 | }
9 |
10 | export interface I_SongDetails extends I_SongItem {
11 | soundCloudUrl: string;
12 | spotifyUrl: string;
13 | appleMusicUrl: string;
14 | deezerUrl: string;
15 | youTubeVideoUrl: string;
16 | amazonMusicUrl: string;
17 | createdAt: string;
18 | updatedAt: string;
19 | }
20 |
21 | export interface I_Song {
22 | metadata: I_Metadata;
23 | sys: I_System;
24 | fields: I_SongFields;
25 | }
26 |
27 | export interface I_AlbumItem {
28 | id: string;
29 | title: string;
30 | slug: string;
31 | releaseDate: string;
32 | genre: string;
33 | }
34 |
35 | export interface I_AlbumDetails extends I_AlbumItem {
36 | artist: string;
37 | soundCloudUrl: string;
38 | createdAt: string;
39 | updatedAt: string;
40 | }
41 |
42 | export interface I_Album {
43 | metadata: I_Metadata;
44 | sys: I_System;
45 | fields: I_AlbumsFields;
46 | }
47 |
48 | export interface I_AlbumsFields {
49 | title: string;
50 | slug: string;
51 | genre: I_Genre;
52 | artist: I_Artist;
53 | releaseDate: string;
54 | soundCloudUrl: string;
55 | }
56 |
57 | interface I_Metadata {
58 | tags: any[];
59 | }
60 |
61 | interface I_System {
62 | space: I_Link;
63 | id: string;
64 | type: string;
65 | createdAt: string;
66 | updatedAt: string;
67 | environment: I_Link;
68 | revision: number;
69 | contentType: I_Link;
70 | locale: string;
71 | }
72 |
73 | interface I_Link {
74 | sys: {
75 | type: string;
76 | linkType: string;
77 | id: string;
78 | };
79 | }
80 |
81 | interface I_SongFields {
82 | title: string;
83 | slug: string;
84 | artist: I_Artist;
85 | genre?: I_Genre;
86 | releaseDate: string;
87 | duration: string;
88 | soundCloudUrl: string;
89 | spotifyUrl?: string;
90 | appleMusicUrl?: string;
91 | deezerUrl?: string;
92 | youTubeVideoUrl?: string;
93 | amazonMusicUrl?: string;
94 | }
95 |
96 | interface I_Artist {
97 | metadata: I_Metadata;
98 | sys: I_System;
99 | fields: I_ArtistFields;
100 | }
101 |
102 | interface I_ArtistFields {
103 | name: string;
104 | slug: string;
105 | image: I_Image;
106 | bio: string;
107 | url: string;
108 | }
109 |
110 | interface I_Image {
111 | metadata: I_Metadata;
112 | sys: I_System;
113 | fields: I_ImageFields;
114 | }
115 |
116 | interface I_ImageFields {
117 | title: string;
118 | description: string;
119 | file: I_FileDetails;
120 | }
121 |
122 | interface I_FileDetails {
123 | url: string;
124 | details: {
125 | size: number;
126 | image: {
127 | width: number;
128 | height: number;
129 | };
130 | };
131 | fileName: string;
132 | contentType: string;
133 | }
134 |
135 | interface I_Genre {
136 | metadata: I_Metadata;
137 | sys: I_System;
138 | fields: {
139 | name: string;
140 | };
141 | }
142 |
--------------------------------------------------------------------------------
/src/assets/svg/github.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
30 |
32 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/src/lib/server/contentful.tsx:
--------------------------------------------------------------------------------
1 | import { Entry, EntryCollection, createClient } from 'contentful';
2 |
3 | import {
4 | I_Song,
5 | I_SongItem,
6 | I_SongDetails,
7 | I_Album,
8 | I_AlbumDetails,
9 | I_AlbumItem,
10 | } from '@/interfaces/contentful.interfaces';
11 |
12 | type ContentfulConfig = {
13 | space: string;
14 | accessToken: string;
15 | };
16 |
17 | const clientConfig: ContentfulConfig = {
18 | space: process.env.CONTENTFUL_SPACE_ID!,
19 | accessToken: process.env.CONTENTFUL_TOKEN!,
20 | };
21 |
22 | const client = createClient(clientConfig);
23 |
24 | interface LinkObject {
25 | 'en-US': {
26 | sys: {
27 | type: string;
28 | linkType: string;
29 | id: string;
30 | };
31 | };
32 | }
33 |
34 | export function createLinkObject(id: string): LinkObject {
35 | return {
36 | 'en-US': {
37 | sys: {
38 | type: 'Link',
39 | linkType: 'Entry',
40 | id: id,
41 | },
42 | },
43 | };
44 | }
45 |
46 | export async function getEntry(contentType: string, slug: string) {
47 | const entries = await client.getEntries({
48 | content_type: contentType,
49 | 'fields.slug': slug,
50 | });
51 | if (entries.items.length > 0) return entries;
52 | console.log(`Error getting Entries.`);
53 | }
54 |
55 | export async function getSlugs(contentType: string) {
56 | const entries = await client.getEntries({
57 | content_type: contentType,
58 | select: ['fields.slug'],
59 | });
60 | if (entries.items) {
61 | let slugs: string[] = [];
62 | entries.items.forEach((entry: any) => {
63 | slugs.push(entry.fields.slug);
64 | });
65 | return slugs;
66 | }
67 | console.log(`Error getting Entries for.`);
68 | }
69 |
70 | export async function getSongs(skip?: number, limit?: number) {
71 | const config: any = {
72 | content_type: 'song',
73 | order: '-fields.releaseDate,fields.trackNumber',
74 | };
75 | if (skip !== null) config.skip = skip;
76 | if (limit !== null) config.limit = limit;
77 |
78 | const entries = await client.getEntries(config);
79 | if (entries.items) {
80 | //@ts-ignore
81 | return entries.items as I_Song[];
82 | }
83 | console.log(`Error getting Entries.`);
84 | }
85 |
86 | export async function getSong(slug: string) {
87 | const entries = await client.getEntries({
88 | content_type: 'song',
89 | 'fields.slug': slug,
90 | });
91 |
92 | // @ts-ignore
93 | if (entries.items.length > 0) return entries.items[0] as I_Song;
94 | console.log(`Error getting Entries.`);
95 | }
96 |
97 | export async function getAlbums(skip?: number, limit?: number) {
98 | const config: any = {
99 | content_type: 'album',
100 | order: '-fields.releaseDate',
101 | };
102 | if (skip !== null) config.skip = skip;
103 | if (limit !== null) config.limit = limit;
104 |
105 | const entries = await client.getEntries(config);
106 | if (entries.items) {
107 | //@ts-ignore
108 | return entries.items as I_Album[];
109 | }
110 | console.log(`Error getting Entries.`);
111 | }
112 |
113 | export async function getAlbum(slug: string) {
114 | const entries = await client.getEntries({
115 | content_type: 'album',
116 | 'fields.slug': slug,
117 | });
118 |
119 | // @ts-ignore
120 | if (entries.items.length > 0) return entries.items[0] as I_Album;
121 | console.log(`Error getting Entries.`);
122 | }
123 |
124 | export function mapAlbums(albums: I_Album[]) {
125 | return albums.map(album => {
126 | return {
127 | id: album.sys.id,
128 | title: album.fields.title,
129 | slug: album.fields.slug,
130 | releaseDate: album.fields.releaseDate,
131 | genre: album.fields.genre?.fields.name ?? '',
132 | } as I_AlbumItem;
133 | }) as I_AlbumItem[];
134 | }
135 |
136 | export function mapAlbumDetails(album: I_Album) {
137 | return {
138 | id: album.sys.id,
139 | title: album.fields.title,
140 | slug: album.fields.slug,
141 | releaseDate: album.fields.releaseDate,
142 | genre: album.fields.genre?.fields.name ?? '',
143 | artist: album.fields.artist?.fields.name ?? '',
144 | soundCloudUrl: album.fields.soundCloudUrl,
145 | createdAt: album.sys.createdAt,
146 | updatedAt: album.sys.updatedAt,
147 | } as I_AlbumDetails;
148 | }
149 |
150 | export async function getAlbumTracks(album: string) {
151 | const config: any = {
152 | content_type: 'song',
153 | order: 'fields.trackNumber',
154 | 'fields.album.sys.contentType.sys.id': 'album',
155 | 'fields.album.fields.title[match]': album,
156 | };
157 |
158 | const entries = await client.getEntries(config);
159 | if (entries.items) {
160 | return entries.items;
161 | }
162 | console.log(`Error getting Entries.`);
163 | }
164 |
165 | export async function getPostsMeta(skip?: number, limit?: number) {
166 | const config: any = {
167 | content_type: 'blogPost',
168 | select: 'sys,fields.title,fields.slug,fields.publishDate,fields.thumb,fields.coverImage,fields.excerpt,fields.tags',
169 | order: '-fields.publishDate',
170 | };
171 | if (skip !== null) config.skip = skip;
172 | if (limit !== null) config.limit = limit;
173 |
174 | const entries = await client.getEntries(config);
175 | if (entries.items) {
176 | return entries.items;
177 | }
178 | console.log(`Error getting Entries.`);
179 | }
180 |
181 | export async function getPosts(skip?: number, limit?: number, ignoreSlug?: string) {
182 | const config: any = {
183 | content_type: 'blogPost',
184 | order: '-fields.publishDate',
185 | };
186 | if (skip !== null) config.skip = skip;
187 | if (limit !== null) config.limit = limit;
188 | if (ignoreSlug) config['fields.slug[ne]'] = ignoreSlug;
189 |
190 | const entries = await client.getEntries(config);
191 | if (entries.items) {
192 | return entries.items;
193 | }
194 | console.log(`Error getting Entries.`);
195 | }
196 |
197 | export async function getPostsBySlug(skip?: number, limit?: number, slug?: string) {
198 | const config: any = {
199 | content_type: 'blogPost',
200 | order: '-fields.publishDate',
201 | };
202 | if (skip !== null) config.skip = skip;
203 | if (limit !== null) config.limit = limit;
204 | if (slug) {
205 | config['fields.category.sys.contentType.sys.id'] = 'blogCategory';
206 | config['fields.category.fields.slug'] = slug;
207 | }
208 |
209 | const entries = await client.getEntries(config);
210 | if (entries.items) {
211 | return entries.items;
212 | }
213 | console.log(`Error getting Entries.`);
214 | }
215 |
216 | export async function getCategories() {
217 | const config: any = {
218 | content_type: 'blogCategory',
219 | order: 'fields.name',
220 | };
221 |
222 | const entries = await client.getEntries(config);
223 | if (entries.items) {
224 | return entries.items;
225 | }
226 | console.log(`Error getting Entries.`);
227 | }
228 |
229 | export function contentfulImageData(imgObj: any) {
230 | return {
231 | url: 'https:' + imgObj.fields.file.url,
232 | alt: imgObj.fields.title,
233 | description: imgObj.fields.description,
234 | };
235 | }
236 |
237 | export function contentfulDate(str: string): string {
238 | const dateAr = str.split('-');
239 | const newDate = `${dateAr[1]}/${dateAr[2]}/${dateAr[0]}`;
240 | const date = new Date(newDate);
241 | const options = { year: 'numeric', month: 'long', day: 'numeric' } as const;
242 | return date.toLocaleDateString('en-US', options);
243 | }
244 |
245 | export const mapSong = (song: I_Song) => {
246 | const songItem: I_SongItem = {
247 | id: song.sys.id,
248 | title: song.fields.title,
249 | slug: song.fields.slug,
250 | releaseDate: song.fields.releaseDate,
251 | genre: song.fields.genre?.fields.name ?? '',
252 | duration: song.fields.duration,
253 | };
254 | return songItem;
255 | };
256 |
257 | export const mapSongDetails = (song: I_Song) => {
258 | const songItem: I_SongDetails = {
259 | id: song.sys.id,
260 | title: song.fields.title,
261 | slug: song.fields.slug,
262 | releaseDate: song.fields.releaseDate,
263 | genre: song.fields.genre?.fields.name ?? '',
264 | duration: song.fields.duration,
265 | soundCloudUrl: song.fields.soundCloudUrl,
266 | spotifyUrl: song.fields?.spotifyUrl ?? '',
267 | appleMusicUrl: song.fields?.appleMusicUrl ?? '',
268 | deezerUrl: song.fields?.deezerUrl ?? '',
269 | youTubeVideoUrl: song.fields?.youTubeVideoUrl ?? '',
270 | amazonMusicUrl: song.fields?.amazonMusicUrl ?? '',
271 | createdAt: song.sys.createdAt,
272 | updatedAt: song.sys.updatedAt,
273 | };
274 | return songItem;
275 | };
276 |
277 | export const mapSongs = (songs: I_Song[]) => {
278 | return songs.map(mapSong);
279 | };
280 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Welcome to the cutting-edge world of web development! In this blog post, we will delve into the exciting realm of data fetching paradigms in Next.js 14, a popular React framework that has been revolutionizing how developers build user interfaces and handle data. With the introduction of server components and enhanced data fetching techniques, Next.js 14 offers developers more flexibility and power in building dynamic, efficient, and scalable web applications.
2 |
3 | We will focus on two key data fetching paradigms that are pivotal to modern web development:
4 |
5 | 1. **Fetching in a Server Component Using a Server Action**: This paradigm leverages the server-side capabilities of Next.js to fetch data. We'll explore how server components can efficiently retrieve data directly from the server, bypassing the need for client-side fetching and thus improving performance and reducing bandwidth usage.
6 |
7 | 2. **Fetching in a Client Component Using a Server Action in Combination with SWR**: In contrast to the first paradigm, this approach involves fetching data in client components. We'll discuss how to utilize server actions in combination with Stale-While-Revalidate (SWR), a strategy that provides a smooth user experience by immediately showing cached data (stale), then updating it with fresh data from the server (revalidate). This method is ideal for dynamic data that changes frequently, ensuring that users always have the most up-to-date information.
8 |
9 | The code samples in this tutorial are from a demo project I created. The full code is available on GitHub (links at the bottom).
10 |
11 | ## Server-side Fetching
12 |
13 | In Next.js 14, server-side fetching optimizes data management and enhances user experience, especially when handling heavy UI components. Let's explore this through an example:
14 |
15 | #### The `page.tsx` Component
16 |
17 | - **Functionality**: `page.tsx` initiates the data fetching process. It imports a server action, `fetchSongs()`, which fetches data from the server, reducing client-side load.
18 | - **Loading Component**: While data is being fetched, `loading.tsx` displays a "Loading songs" message, keeping users informed about the process.
19 |
20 | ```jsx
21 | // page.tsx
22 | import React from 'react';
23 | import BoxLoader from '@/components/BoxLoader';
24 |
25 | import dynamic from 'next/dynamic';
26 | const ServerExampleView = dynamic(() => import('./ServerExampleView'), {
27 | loading: () => ,
28 | });
29 |
30 | import fetchSongs from '@/lib/server/fetchSongs';
31 |
32 | export default async function ServerExamplePage() {
33 | const songs = await fetchSongs();
34 |
35 | return ;
36 | }
37 | ```
38 |
39 | ```jsx
40 | // loading.tsx
41 | import React from 'react';
42 | import BoxLoader from '@/components/BoxLoader';
43 |
44 | export default function LoadingDeployments() {
45 | return ;
46 | }
47 | ```
48 | #### Dynamic Rendering with Next.js
49 |
50 | - **Transition Phases**: After fetching data, we use Next.js's `dynamic` to transition from the loading message to displaying the songs. During this, users see a "Loading UI" message, essential for heavy UI components.
51 | - **Performance Benefits**: This server-side fetching, combined with dynamic rendering, significantly improves performance. It ensures faster load times and a responsive UI, enhancing the overall user experience.
52 |
53 | ```jsx
54 | // ServerExampleView.tsx
55 | import React from 'react';
56 | import Link from '@/components/Link';
57 | import SongCard from '@/components/SongCard';
58 |
59 | import { I_SongItem } from '@/interfaces/contentful.interfaces';
60 |
61 | import { BiCodeAlt } from 'react-icons/bi';
62 |
63 | interface Props {
64 | songs: I_SongItem[];
65 | }
66 |
67 | export default function ServerExampleView(props: Props) {
68 | const { songs } = props;
69 | return (
70 |
71 |
Server Example
72 |
73 |
74 | Go Back
75 |
76 |
77 |
78 | Show Code
79 |
80 |
81 | {songs.map((song, i) => (
82 |
83 | ))}
84 |
85 | );
86 | }
87 | ```
88 |
89 | This is a powerful approach for efficient data management and optimized UI rendering. This technique is particularly valuable for applications with complex UI components, offering a seamless and responsive user experience.
90 |
91 | ## Client-side Fetching
92 |
93 | Next.js 14 not only excels in server-side data fetching but also provides robust client-side fetching capabilities. This section will illustrate how to effectively use client components in combination with SWR (Stale-While-Revalidate) for dynamic data handling. Unlike the server-side example, here the fetching process occurs directly within the client component.
94 |
95 | #### Setting Up the Client Component
96 |
97 | Our example utilizes a client component, which we clearly distinguish by placing a 'use client' directive at the top of the file. This directive signals Next.js to treat this component specifically for client-side operations.
98 |
99 | - **Dynamic Component Loading**: Similar to the server-side example, we employ Next.js's `dynamic` to load our client view. This dynamic loading is key in managing the rendering process based on the data availability.
100 |
101 | - **Integrating SWR**: The unique aspect of this client-side approach is the integration of SWR for fetching data. SWR is a strategy that first shows cached (stale) data, then updates it with fresh data from the server (revalidate). In our case, it calls the server action directly within the client component, handling data fetching and updating seamlessly.
102 |
103 | ```jsx
104 | 'use client';
105 | // ClientExampleView.tsx
106 |
107 | import React, { useState } from 'react';
108 | import Link from '@/components/Link';
109 | import BoxLoader from '@/components/BoxLoader';
110 | import SongCard from '@/components/SongCard';
111 | import GistView from '@/components/GistView';
112 |
113 | import useSwr from 'swr';
114 | import fetchSongs from '@/lib/server/fetchSongs';
115 |
116 | import { LuRefreshCcw } from 'react-icons/lu';
117 | import { BiCodeAlt } from 'react-icons/bi';
118 |
119 | export default function ClientExampleView() {
120 | const { data: songs, isLoading, isValidating, mutate } = useSwr('songs', fetchSongs);
121 | const [showCode, setShowCode] = useState(false);
122 |
123 | if (isLoading) {
124 | return ;
125 | }
126 |
127 | if (!songs) {
128 | return Failed to load songs
;
129 | }
130 |
131 | return (
132 | <>
133 |
134 |
Client Example
135 |
136 |
137 | Go Back
138 |
139 |
mutate()}>
140 |
141 | {isValidating ?
:
}
142 |
143 | Refresh
144 |
145 |
setShowCode(!showCode)}>
146 |
147 | Show Code
148 |
149 |
150 | {songs.map((song, i) => (
151 |
152 | ))}
153 |
154 | {showCode ? : null}
155 | >
156 | );
157 | }
158 | ```
159 |
160 | #### Conditional Rendering and User Experience
161 |
162 | - **Loader Implementation**: As the SWR fetches the songs, we conditionally render a loader, displaying a "Loading Songs" message. This ensures that users are aware of the ongoing data fetching process.
163 |
164 | - **Order of Loading Messages**: Interestingly, in this client-side fetching scenario, the user first encounters a "Loading UI" message while the component loads. Once the component is ready, the "Loading Songs" message appears during the data fetching phase. This sequence is the reverse of what we observed in the server-side example.
165 |
166 |
167 | #### Performance Comparison
168 |
169 | - **Experience and Load Time**: Upon testing, we observe that the user experience and load time between the server-side and client-side examples are quite similar. While the server-side approach might hold a slight advantage in certain scenarios, the client-side fetching with SWR provides a highly responsive and efficient data handling experience.
170 |
171 | Client-side fetching in Next.js 14, particularly with the use of SWR and dynamic client components, offers a powerful and flexible approach for managing data in real-time. This method enhances the user experience by ensuring that the UI is always responsive and up-to-date with the latest data, making it a valuable tool in the modern web developer's arsenal.
172 |
173 | ---
174 |
175 | ## Embracing the Future of Data Fetching in Next.js 14
176 |
177 | It's clear that Next.js offers powerful and versatile solutions for handling data in modern web applications. Through our examples of server-side and client-side fetching, we've seen how this framework adapts to different requirements, offering developers the flexibility to choose the most efficient approach based on their specific use case.
178 |
179 | ### Key Takeaways
180 |
181 | - **Server-side vs. Client-side Fetching**: The server-side fetching approach, with its focus on performance and efficiency, is ideal for applications with heavy UI components. In contrast, client-side fetching using SWR offers a more dynamic and real-time data handling experience, especially beneficial for applications requiring frequent data updates.
182 |
183 | - **Performance and User Experience**: Both paradigms provide excellent performance and user experience, with server-side fetching having a slight edge in load times. However, the choice between them should be based on the specific needs of your application and the nature of the data being handled.
184 |
185 | - **Flexibility of Next.js 14**: These paradigms highlight the flexibility of Next.js 14 in catering to diverse development scenarios. Whether it's server-side efficiency or client-side dynamism, Next.js provides the tools to create responsive, efficient, and user-friendly web applications.
186 |
187 |
188 | ### Moving Forward
189 |
190 | As web technologies continue to evolve, staying abreast of these advancements is crucial. Next.js 14, with its innovative data fetching techniques, stands at the forefront of this evolution, empowering developers to build more sophisticated and performant web applications.
191 |
192 | We encourage you to experiment with these paradigms in your projects. Explore the possibilities, measure the performance impacts, and tailor your approach to best suit your application's needs. With Next.js 14, the future of web development is not just about building applications; it's about creating experiences that are as efficient as they are engaging.
193 |
194 | ---
195 |
196 | ## Links
197 |
198 | 1. [GitHub Repo](https://github.com/designly1/nextjs14-data-fetching-examples)
199 | 2. [Demo Site](https://nextjs14-data-fetching-examples.vercel.app/)
200 |
201 | ---
202 |
203 | Thank you for taking the time to read my article and I hope you found it useful (or at the very least, mildly entertaining). For more great information about web dev, systems administration and cloud computing, please read the [Designly Blog](https://blog.designly.biz). Also, please leave your comments! I love to hear thoughts from my readers.
204 |
205 | If you want to support me, please follow me on [Spotify](https://open.spotify.com/album/2fq9S51ULwPmRM6EdCJAaJ?si=USeZDsmYSKSaGpcrSJJsGg)!
206 |
207 | Also, be sure to check out my new app called [Snoozle](https://snoozle.io)! It's an app that generates bedtime stories for kids using AI and it's completely free to use!
208 |
209 | Looking for a web developer? I'm available for hire! To inquire, please fill out a [contact form](https://designly.biz/contact).
--------------------------------------------------------------------------------
/src/assets/svg/designly-logo-trans.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
9 |
10 |
11 |
12 |
13 |
52 |
53 |
54 |
60 |
81 |
87 |
107 |
121 |
124 |
137 |
138 |
139 |
140 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | contentful:
9 | specifier: ^10.6.16
10 | version: 10.6.16
11 | daisyui:
12 | specifier: ^4.5.0
13 | version: 4.5.0(postcss@8.4.33)
14 | framer-motion:
15 | specifier: ^10.17.12
16 | version: 10.17.12(react-dom@18.2.0)(react@18.2.0)
17 | next:
18 | specifier: 14.0.4
19 | version: 14.0.4(react-dom@18.2.0)(react@18.2.0)
20 | nextjs13-progress:
21 | specifier: ^1.2.5
22 | version: 1.2.5(next@14.0.4)(react@18.2.0)
23 | react:
24 | specifier: ^18.2.0
25 | version: 18.2.0
26 | react-dom:
27 | specifier: ^18.2.0
28 | version: 18.2.0(react@18.2.0)
29 | react-embed:
30 | specifier: ^3.7.0
31 | version: 3.7.0(react-dom@18.2.0)(react@18.2.0)
32 | react-gist:
33 | specifier: ^1.2.4
34 | version: 1.2.4(react@18.2.0)
35 | react-icons:
36 | specifier: ^4.12.0
37 | version: 4.12.0(react@18.2.0)
38 | swr:
39 | specifier: ^2.2.4
40 | version: 2.2.4(react@18.2.0)
41 |
42 | devDependencies:
43 | '@types/node':
44 | specifier: ^20.10.8
45 | version: 20.10.8
46 | '@types/react':
47 | specifier: ^18.2.47
48 | version: 18.2.47
49 | '@types/react-dom':
50 | specifier: ^18.2.18
51 | version: 18.2.18
52 | autoprefixer:
53 | specifier: ^10.4.16
54 | version: 10.4.16(postcss@8.4.33)
55 | eslint:
56 | specifier: ^8.56.0
57 | version: 8.56.0
58 | eslint-config-next:
59 | specifier: 14.0.4
60 | version: 14.0.4(eslint@8.56.0)(typescript@5.3.3)
61 | postcss:
62 | specifier: ^8.4.33
63 | version: 8.4.33
64 | tailwindcss:
65 | specifier: ^3.4.1
66 | version: 3.4.1
67 | typescript:
68 | specifier: ^5.3.3
69 | version: 5.3.3
70 |
71 | packages:
72 |
73 | /@aashutoshrathi/word-wrap@1.2.6:
74 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
75 | engines: {node: '>=0.10.0'}
76 | dev: true
77 |
78 | /@alloc/quick-lru@5.2.0:
79 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
80 | engines: {node: '>=10'}
81 | dev: true
82 |
83 | /@babel/runtime@7.23.8:
84 | resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==}
85 | engines: {node: '>=6.9.0'}
86 | dependencies:
87 | regenerator-runtime: 0.14.1
88 |
89 | /@contentful/rich-text-types@16.3.0:
90 | resolution: {integrity: sha512-OfQmAu5bxE0CgQA3WlUleVej+ifFG/iXmB2DmUl4EyWyFue1aiIvfjxQhcDRSH4n1jUNMJ6L1wInZL8uV5m3TQ==}
91 | engines: {node: '>=6.0.0'}
92 | dev: false
93 |
94 | /@emotion/is-prop-valid@0.8.8:
95 | resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==}
96 | requiresBuild: true
97 | dependencies:
98 | '@emotion/memoize': 0.7.4
99 | dev: false
100 | optional: true
101 |
102 | /@emotion/memoize@0.7.4:
103 | resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==}
104 | requiresBuild: true
105 | dev: false
106 | optional: true
107 |
108 | /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
109 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
110 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
111 | peerDependencies:
112 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
113 | dependencies:
114 | eslint: 8.56.0
115 | eslint-visitor-keys: 3.4.3
116 | dev: true
117 |
118 | /@eslint-community/regexpp@4.10.0:
119 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
120 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
121 | dev: true
122 |
123 | /@eslint/eslintrc@2.1.4:
124 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
125 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
126 | dependencies:
127 | ajv: 6.12.6
128 | debug: 4.3.4
129 | espree: 9.6.1
130 | globals: 13.24.0
131 | ignore: 5.3.0
132 | import-fresh: 3.3.0
133 | js-yaml: 4.1.0
134 | minimatch: 3.1.2
135 | strip-json-comments: 3.1.1
136 | transitivePeerDependencies:
137 | - supports-color
138 | dev: true
139 |
140 | /@eslint/js@8.56.0:
141 | resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
142 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
143 | dev: true
144 |
145 | /@humanwhocodes/config-array@0.11.13:
146 | resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
147 | engines: {node: '>=10.10.0'}
148 | dependencies:
149 | '@humanwhocodes/object-schema': 2.0.1
150 | debug: 4.3.4
151 | minimatch: 3.1.2
152 | transitivePeerDependencies:
153 | - supports-color
154 | dev: true
155 |
156 | /@humanwhocodes/module-importer@1.0.1:
157 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
158 | engines: {node: '>=12.22'}
159 | dev: true
160 |
161 | /@humanwhocodes/object-schema@2.0.1:
162 | resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
163 | dev: true
164 |
165 | /@isaacs/cliui@8.0.2:
166 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
167 | engines: {node: '>=12'}
168 | dependencies:
169 | string-width: 5.1.2
170 | string-width-cjs: /string-width@4.2.3
171 | strip-ansi: 7.1.0
172 | strip-ansi-cjs: /strip-ansi@6.0.1
173 | wrap-ansi: 8.1.0
174 | wrap-ansi-cjs: /wrap-ansi@7.0.0
175 | dev: true
176 |
177 | /@jridgewell/gen-mapping@0.3.3:
178 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
179 | engines: {node: '>=6.0.0'}
180 | dependencies:
181 | '@jridgewell/set-array': 1.1.2
182 | '@jridgewell/sourcemap-codec': 1.4.15
183 | '@jridgewell/trace-mapping': 0.3.20
184 | dev: true
185 |
186 | /@jridgewell/resolve-uri@3.1.1:
187 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
188 | engines: {node: '>=6.0.0'}
189 | dev: true
190 |
191 | /@jridgewell/set-array@1.1.2:
192 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
193 | engines: {node: '>=6.0.0'}
194 | dev: true
195 |
196 | /@jridgewell/sourcemap-codec@1.4.15:
197 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
198 |
199 | /@jridgewell/trace-mapping@0.3.20:
200 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
201 | dependencies:
202 | '@jridgewell/resolve-uri': 3.1.1
203 | '@jridgewell/sourcemap-codec': 1.4.15
204 | dev: true
205 |
206 | /@next/env@14.0.4:
207 | resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==}
208 | dev: false
209 |
210 | /@next/eslint-plugin-next@14.0.4:
211 | resolution: {integrity: sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==}
212 | dependencies:
213 | glob: 7.1.7
214 | dev: true
215 |
216 | /@next/swc-darwin-arm64@14.0.4:
217 | resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==}
218 | engines: {node: '>= 10'}
219 | cpu: [arm64]
220 | os: [darwin]
221 | requiresBuild: true
222 | dev: false
223 | optional: true
224 |
225 | /@next/swc-darwin-x64@14.0.4:
226 | resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==}
227 | engines: {node: '>= 10'}
228 | cpu: [x64]
229 | os: [darwin]
230 | requiresBuild: true
231 | dev: false
232 | optional: true
233 |
234 | /@next/swc-linux-arm64-gnu@14.0.4:
235 | resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==}
236 | engines: {node: '>= 10'}
237 | cpu: [arm64]
238 | os: [linux]
239 | requiresBuild: true
240 | dev: false
241 | optional: true
242 |
243 | /@next/swc-linux-arm64-musl@14.0.4:
244 | resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==}
245 | engines: {node: '>= 10'}
246 | cpu: [arm64]
247 | os: [linux]
248 | requiresBuild: true
249 | dev: false
250 | optional: true
251 |
252 | /@next/swc-linux-x64-gnu@14.0.4:
253 | resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==}
254 | engines: {node: '>= 10'}
255 | cpu: [x64]
256 | os: [linux]
257 | requiresBuild: true
258 | dev: false
259 | optional: true
260 |
261 | /@next/swc-linux-x64-musl@14.0.4:
262 | resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==}
263 | engines: {node: '>= 10'}
264 | cpu: [x64]
265 | os: [linux]
266 | requiresBuild: true
267 | dev: false
268 | optional: true
269 |
270 | /@next/swc-win32-arm64-msvc@14.0.4:
271 | resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==}
272 | engines: {node: '>= 10'}
273 | cpu: [arm64]
274 | os: [win32]
275 | requiresBuild: true
276 | dev: false
277 | optional: true
278 |
279 | /@next/swc-win32-ia32-msvc@14.0.4:
280 | resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==}
281 | engines: {node: '>= 10'}
282 | cpu: [ia32]
283 | os: [win32]
284 | requiresBuild: true
285 | dev: false
286 | optional: true
287 |
288 | /@next/swc-win32-x64-msvc@14.0.4:
289 | resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==}
290 | engines: {node: '>= 10'}
291 | cpu: [x64]
292 | os: [win32]
293 | requiresBuild: true
294 | dev: false
295 | optional: true
296 |
297 | /@nodelib/fs.scandir@2.1.5:
298 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
299 | engines: {node: '>= 8'}
300 | dependencies:
301 | '@nodelib/fs.stat': 2.0.5
302 | run-parallel: 1.2.0
303 | dev: true
304 |
305 | /@nodelib/fs.stat@2.0.5:
306 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
307 | engines: {node: '>= 8'}
308 | dev: true
309 |
310 | /@nodelib/fs.walk@1.2.8:
311 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
312 | engines: {node: '>= 8'}
313 | dependencies:
314 | '@nodelib/fs.scandir': 2.1.5
315 | fastq: 1.16.0
316 | dev: true
317 |
318 | /@pkgjs/parseargs@0.11.0:
319 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
320 | engines: {node: '>=14'}
321 | requiresBuild: true
322 | dev: true
323 | optional: true
324 |
325 | /@rushstack/eslint-patch@1.6.1:
326 | resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==}
327 | dev: true
328 |
329 | /@swc/helpers@0.5.2:
330 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
331 | dependencies:
332 | tslib: 2.6.2
333 | dev: false
334 |
335 | /@types/js-cookie@2.2.7:
336 | resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
337 | dev: false
338 |
339 | /@types/json5@0.0.29:
340 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
341 | dev: true
342 |
343 | /@types/node@20.10.8:
344 | resolution: {integrity: sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==}
345 | dependencies:
346 | undici-types: 5.26.5
347 | dev: true
348 |
349 | /@types/nprogress@0.2.3:
350 | resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==}
351 | dev: false
352 |
353 | /@types/prop-types@15.7.11:
354 | resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==}
355 | dev: true
356 |
357 | /@types/react-dom@18.2.18:
358 | resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==}
359 | dependencies:
360 | '@types/react': 18.2.47
361 | dev: true
362 |
363 | /@types/react@18.2.47:
364 | resolution: {integrity: sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==}
365 | dependencies:
366 | '@types/prop-types': 15.7.11
367 | '@types/scheduler': 0.16.8
368 | csstype: 3.1.3
369 | dev: true
370 |
371 | /@types/scheduler@0.16.8:
372 | resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==}
373 | dev: true
374 |
375 | /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3):
376 | resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==}
377 | engines: {node: ^16.0.0 || >=18.0.0}
378 | peerDependencies:
379 | eslint: ^7.0.0 || ^8.0.0
380 | typescript: '*'
381 | peerDependenciesMeta:
382 | typescript:
383 | optional: true
384 | dependencies:
385 | '@typescript-eslint/scope-manager': 6.18.1
386 | '@typescript-eslint/types': 6.18.1
387 | '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3)
388 | '@typescript-eslint/visitor-keys': 6.18.1
389 | debug: 4.3.4
390 | eslint: 8.56.0
391 | typescript: 5.3.3
392 | transitivePeerDependencies:
393 | - supports-color
394 | dev: true
395 |
396 | /@typescript-eslint/scope-manager@6.18.1:
397 | resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==}
398 | engines: {node: ^16.0.0 || >=18.0.0}
399 | dependencies:
400 | '@typescript-eslint/types': 6.18.1
401 | '@typescript-eslint/visitor-keys': 6.18.1
402 | dev: true
403 |
404 | /@typescript-eslint/types@6.18.1:
405 | resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==}
406 | engines: {node: ^16.0.0 || >=18.0.0}
407 | dev: true
408 |
409 | /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3):
410 | resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==}
411 | engines: {node: ^16.0.0 || >=18.0.0}
412 | peerDependencies:
413 | typescript: '*'
414 | peerDependenciesMeta:
415 | typescript:
416 | optional: true
417 | dependencies:
418 | '@typescript-eslint/types': 6.18.1
419 | '@typescript-eslint/visitor-keys': 6.18.1
420 | debug: 4.3.4
421 | globby: 11.1.0
422 | is-glob: 4.0.3
423 | minimatch: 9.0.3
424 | semver: 7.5.4
425 | ts-api-utils: 1.0.3(typescript@5.3.3)
426 | typescript: 5.3.3
427 | transitivePeerDependencies:
428 | - supports-color
429 | dev: true
430 |
431 | /@typescript-eslint/visitor-keys@6.18.1:
432 | resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==}
433 | engines: {node: ^16.0.0 || >=18.0.0}
434 | dependencies:
435 | '@typescript-eslint/types': 6.18.1
436 | eslint-visitor-keys: 3.4.3
437 | dev: true
438 |
439 | /@ungap/structured-clone@1.2.0:
440 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
441 | dev: true
442 |
443 | /@xobotyi/scrollbar-width@1.9.5:
444 | resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==}
445 | dev: false
446 |
447 | /acorn-jsx@5.3.2(acorn@8.11.3):
448 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
449 | peerDependencies:
450 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
451 | dependencies:
452 | acorn: 8.11.3
453 | dev: true
454 |
455 | /acorn@8.11.3:
456 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
457 | engines: {node: '>=0.4.0'}
458 | hasBin: true
459 | dev: true
460 |
461 | /ajv@6.12.6:
462 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
463 | dependencies:
464 | fast-deep-equal: 3.1.3
465 | fast-json-stable-stringify: 2.1.0
466 | json-schema-traverse: 0.4.1
467 | uri-js: 4.4.1
468 | dev: true
469 |
470 | /ansi-regex@5.0.1:
471 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
472 | engines: {node: '>=8'}
473 | dev: true
474 |
475 | /ansi-regex@6.0.1:
476 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
477 | engines: {node: '>=12'}
478 | dev: true
479 |
480 | /ansi-styles@4.3.0:
481 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
482 | engines: {node: '>=8'}
483 | dependencies:
484 | color-convert: 2.0.1
485 | dev: true
486 |
487 | /ansi-styles@6.2.1:
488 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
489 | engines: {node: '>=12'}
490 | dev: true
491 |
492 | /any-promise@1.3.0:
493 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
494 | dev: true
495 |
496 | /anymatch@3.1.3:
497 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
498 | engines: {node: '>= 8'}
499 | dependencies:
500 | normalize-path: 3.0.0
501 | picomatch: 2.3.1
502 | dev: true
503 |
504 | /arg@5.0.2:
505 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
506 | dev: true
507 |
508 | /argparse@2.0.1:
509 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
510 | dev: true
511 |
512 | /aria-query@5.3.0:
513 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
514 | dependencies:
515 | dequal: 2.0.3
516 | dev: true
517 |
518 | /array-buffer-byte-length@1.0.0:
519 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
520 | dependencies:
521 | call-bind: 1.0.5
522 | is-array-buffer: 3.0.2
523 | dev: true
524 |
525 | /array-includes@3.1.7:
526 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
527 | engines: {node: '>= 0.4'}
528 | dependencies:
529 | call-bind: 1.0.5
530 | define-properties: 1.2.1
531 | es-abstract: 1.22.3
532 | get-intrinsic: 1.2.2
533 | is-string: 1.0.7
534 | dev: true
535 |
536 | /array-union@2.1.0:
537 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
538 | engines: {node: '>=8'}
539 | dev: true
540 |
541 | /array.prototype.findlastindex@1.2.3:
542 | resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
543 | engines: {node: '>= 0.4'}
544 | dependencies:
545 | call-bind: 1.0.5
546 | define-properties: 1.2.1
547 | es-abstract: 1.22.3
548 | es-shim-unscopables: 1.0.2
549 | get-intrinsic: 1.2.2
550 | dev: true
551 |
552 | /array.prototype.flat@1.3.2:
553 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
554 | engines: {node: '>= 0.4'}
555 | dependencies:
556 | call-bind: 1.0.5
557 | define-properties: 1.2.1
558 | es-abstract: 1.22.3
559 | es-shim-unscopables: 1.0.2
560 | dev: true
561 |
562 | /array.prototype.flatmap@1.3.2:
563 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
564 | engines: {node: '>= 0.4'}
565 | dependencies:
566 | call-bind: 1.0.5
567 | define-properties: 1.2.1
568 | es-abstract: 1.22.3
569 | es-shim-unscopables: 1.0.2
570 | dev: true
571 |
572 | /array.prototype.tosorted@1.1.2:
573 | resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==}
574 | dependencies:
575 | call-bind: 1.0.5
576 | define-properties: 1.2.1
577 | es-abstract: 1.22.3
578 | es-shim-unscopables: 1.0.2
579 | get-intrinsic: 1.2.2
580 | dev: true
581 |
582 | /arraybuffer.prototype.slice@1.0.2:
583 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
584 | engines: {node: '>= 0.4'}
585 | dependencies:
586 | array-buffer-byte-length: 1.0.0
587 | call-bind: 1.0.5
588 | define-properties: 1.2.1
589 | es-abstract: 1.22.3
590 | get-intrinsic: 1.2.2
591 | is-array-buffer: 3.0.2
592 | is-shared-array-buffer: 1.0.2
593 | dev: true
594 |
595 | /ast-types-flow@0.0.8:
596 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
597 | dev: true
598 |
599 | /asynciterator.prototype@1.0.0:
600 | resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
601 | dependencies:
602 | has-symbols: 1.0.3
603 | dev: true
604 |
605 | /asynckit@0.4.0:
606 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
607 | dev: false
608 |
609 | /autoprefixer@10.4.16(postcss@8.4.33):
610 | resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
611 | engines: {node: ^10 || ^12 || >=14}
612 | hasBin: true
613 | peerDependencies:
614 | postcss: ^8.1.0
615 | dependencies:
616 | browserslist: 4.22.2
617 | caniuse-lite: 1.0.30001576
618 | fraction.js: 4.3.7
619 | normalize-range: 0.1.2
620 | picocolors: 1.0.0
621 | postcss: 8.4.33
622 | postcss-value-parser: 4.2.0
623 | dev: true
624 |
625 | /available-typed-arrays@1.0.5:
626 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
627 | engines: {node: '>= 0.4'}
628 | dev: true
629 |
630 | /axe-core@4.7.0:
631 | resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
632 | engines: {node: '>=4'}
633 | dev: true
634 |
635 | /axios@1.6.5:
636 | resolution: {integrity: sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==}
637 | dependencies:
638 | follow-redirects: 1.15.4
639 | form-data: 4.0.0
640 | proxy-from-env: 1.1.0
641 | transitivePeerDependencies:
642 | - debug
643 | dev: false
644 |
645 | /axobject-query@3.2.1:
646 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
647 | dependencies:
648 | dequal: 2.0.3
649 | dev: true
650 |
651 | /balanced-match@1.0.2:
652 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
653 | dev: true
654 |
655 | /binary-extensions@2.2.0:
656 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
657 | engines: {node: '>=8'}
658 | dev: true
659 |
660 | /brace-expansion@1.1.11:
661 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
662 | dependencies:
663 | balanced-match: 1.0.2
664 | concat-map: 0.0.1
665 | dev: true
666 |
667 | /brace-expansion@2.0.1:
668 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
669 | dependencies:
670 | balanced-match: 1.0.2
671 | dev: true
672 |
673 | /braces@3.0.2:
674 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
675 | engines: {node: '>=8'}
676 | dependencies:
677 | fill-range: 7.0.1
678 | dev: true
679 |
680 | /browserslist@4.22.2:
681 | resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
682 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
683 | hasBin: true
684 | dependencies:
685 | caniuse-lite: 1.0.30001576
686 | electron-to-chromium: 1.4.626
687 | node-releases: 2.0.14
688 | update-browserslist-db: 1.0.13(browserslist@4.22.2)
689 | dev: true
690 |
691 | /busboy@1.6.0:
692 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
693 | engines: {node: '>=10.16.0'}
694 | dependencies:
695 | streamsearch: 1.1.0
696 | dev: false
697 |
698 | /call-bind@1.0.5:
699 | resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
700 | dependencies:
701 | function-bind: 1.1.2
702 | get-intrinsic: 1.2.2
703 | set-function-length: 1.1.1
704 |
705 | /callsites@3.1.0:
706 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
707 | engines: {node: '>=6'}
708 | dev: true
709 |
710 | /camelcase-css@2.0.1:
711 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
712 | engines: {node: '>= 6'}
713 |
714 | /caniuse-lite@1.0.30001576:
715 | resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==}
716 |
717 | /chalk@4.1.2:
718 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
719 | engines: {node: '>=10'}
720 | dependencies:
721 | ansi-styles: 4.3.0
722 | supports-color: 7.2.0
723 | dev: true
724 |
725 | /chokidar@3.5.3:
726 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
727 | engines: {node: '>= 8.10.0'}
728 | dependencies:
729 | anymatch: 3.1.3
730 | braces: 3.0.2
731 | glob-parent: 5.1.2
732 | is-binary-path: 2.1.0
733 | is-glob: 4.0.3
734 | normalize-path: 3.0.0
735 | readdirp: 3.6.0
736 | optionalDependencies:
737 | fsevents: 2.3.3
738 | dev: true
739 |
740 | /client-only@0.0.1:
741 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
742 | dev: false
743 |
744 | /color-convert@2.0.1:
745 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
746 | engines: {node: '>=7.0.0'}
747 | dependencies:
748 | color-name: 1.1.4
749 | dev: true
750 |
751 | /color-name@1.1.4:
752 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
753 | dev: true
754 |
755 | /combined-stream@1.0.8:
756 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
757 | engines: {node: '>= 0.8'}
758 | dependencies:
759 | delayed-stream: 1.0.0
760 | dev: false
761 |
762 | /commander@4.1.1:
763 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
764 | engines: {node: '>= 6'}
765 | dev: true
766 |
767 | /concat-map@0.0.1:
768 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
769 | dev: true
770 |
771 | /contentful-resolve-response@1.8.1:
772 | resolution: {integrity: sha512-VXGK2c8dBIGcRCknqudKmkDr2PzsUYfjLN6hhx71T09UzoXOdA/c0kfDhsf/BBCBWPWcLaUgaJEFU0lCo45TSg==}
773 | engines: {node: '>=4.7.2'}
774 | dependencies:
775 | fast-copy: 2.1.7
776 | dev: false
777 |
778 | /contentful-sdk-core@8.1.2:
779 | resolution: {integrity: sha512-XZvX2JMJF4YiICXLrHFv59KBHaQJ6ElqAP8gSNgnCu4x+pPG7Y1bC2JMNOiyAgJuGQGVUOcNZ5PmK+tsNEayYw==}
780 | engines: {node: '>=12'}
781 | dependencies:
782 | fast-copy: 2.1.7
783 | lodash.isplainobject: 4.0.6
784 | lodash.isstring: 4.0.1
785 | p-throttle: 4.1.1
786 | qs: 6.11.2
787 | dev: false
788 |
789 | /contentful@10.6.16:
790 | resolution: {integrity: sha512-3PF4VQAWOhy7CiGYm4KtQn9AN81p77BgSCDQNndFfWdggs6/b2wMWXkmN1UGSJI7OKBRpbiy12mNrr7SrvuVIA==}
791 | engines: {node: '>=12'}
792 | dependencies:
793 | '@contentful/rich-text-types': 16.3.0
794 | axios: 1.6.5
795 | contentful-resolve-response: 1.8.1
796 | contentful-sdk-core: 8.1.2
797 | json-stringify-safe: 5.0.1
798 | type-fest: 4.9.0
799 | transitivePeerDependencies:
800 | - debug
801 | dev: false
802 |
803 | /copy-to-clipboard@3.3.3:
804 | resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
805 | dependencies:
806 | toggle-selection: 1.0.6
807 | dev: false
808 |
809 | /cross-spawn@7.0.3:
810 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
811 | engines: {node: '>= 8'}
812 | dependencies:
813 | path-key: 3.1.1
814 | shebang-command: 2.0.0
815 | which: 2.0.2
816 | dev: true
817 |
818 | /css-in-js-utils@3.1.0:
819 | resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
820 | dependencies:
821 | hyphenate-style-name: 1.0.4
822 | dev: false
823 |
824 | /css-selector-tokenizer@0.8.0:
825 | resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==}
826 | dependencies:
827 | cssesc: 3.0.0
828 | fastparse: 1.1.2
829 | dev: false
830 |
831 | /css-tree@1.1.3:
832 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
833 | engines: {node: '>=8.0.0'}
834 | dependencies:
835 | mdn-data: 2.0.14
836 | source-map: 0.6.1
837 | dev: false
838 |
839 | /cssesc@3.0.0:
840 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
841 | engines: {node: '>=4'}
842 | hasBin: true
843 |
844 | /csstype@3.1.3:
845 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
846 |
847 | /culori@3.3.0:
848 | resolution: {integrity: sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==}
849 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
850 | dev: false
851 |
852 | /daisyui@4.5.0(postcss@8.4.33):
853 | resolution: {integrity: sha512-RWQCPQ0vBUaxGy768O7Ku8SRQgwdoto1lDzuKeVOcMtYghuSbUY7NoPoMK+k8JH4s1J02OvpNAgtB9MeKpZIwg==}
854 | engines: {node: '>=16.9.0'}
855 | dependencies:
856 | css-selector-tokenizer: 0.8.0
857 | culori: 3.3.0
858 | picocolors: 1.0.0
859 | postcss-js: 4.0.1(postcss@8.4.33)
860 | transitivePeerDependencies:
861 | - postcss
862 | dev: false
863 |
864 | /damerau-levenshtein@1.0.8:
865 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
866 | dev: true
867 |
868 | /debug@2.6.9:
869 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
870 | peerDependencies:
871 | supports-color: '*'
872 | peerDependenciesMeta:
873 | supports-color:
874 | optional: true
875 | dependencies:
876 | ms: 2.0.0
877 | dev: false
878 |
879 | /debug@3.2.7:
880 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
881 | peerDependencies:
882 | supports-color: '*'
883 | peerDependenciesMeta:
884 | supports-color:
885 | optional: true
886 | dependencies:
887 | ms: 2.1.3
888 | dev: true
889 |
890 | /debug@4.3.4:
891 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
892 | engines: {node: '>=6.0'}
893 | peerDependencies:
894 | supports-color: '*'
895 | peerDependenciesMeta:
896 | supports-color:
897 | optional: true
898 | dependencies:
899 | ms: 2.1.2
900 | dev: true
901 |
902 | /decode-uri-component@0.2.2:
903 | resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
904 | engines: {node: '>=0.10'}
905 | dev: false
906 |
907 | /deep-is@0.1.4:
908 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
909 | dev: true
910 |
911 | /deepmerge@4.3.1:
912 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
913 | engines: {node: '>=0.10.0'}
914 | dev: false
915 |
916 | /define-data-property@1.1.1:
917 | resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
918 | engines: {node: '>= 0.4'}
919 | dependencies:
920 | get-intrinsic: 1.2.2
921 | gopd: 1.0.1
922 | has-property-descriptors: 1.0.1
923 |
924 | /define-properties@1.2.1:
925 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
926 | engines: {node: '>= 0.4'}
927 | dependencies:
928 | define-data-property: 1.1.1
929 | has-property-descriptors: 1.0.1
930 | object-keys: 1.1.1
931 | dev: true
932 |
933 | /delayed-stream@1.0.0:
934 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
935 | engines: {node: '>=0.4.0'}
936 | dev: false
937 |
938 | /dequal@2.0.3:
939 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
940 | engines: {node: '>=6'}
941 | dev: true
942 |
943 | /didyoumean@1.2.2:
944 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
945 | dev: true
946 |
947 | /dir-glob@3.0.1:
948 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
949 | engines: {node: '>=8'}
950 | dependencies:
951 | path-type: 4.0.0
952 | dev: true
953 |
954 | /dlv@1.1.3:
955 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
956 | dev: true
957 |
958 | /doctrine@2.1.0:
959 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
960 | engines: {node: '>=0.10.0'}
961 | dependencies:
962 | esutils: 2.0.3
963 | dev: true
964 |
965 | /doctrine@3.0.0:
966 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
967 | engines: {node: '>=6.0.0'}
968 | dependencies:
969 | esutils: 2.0.3
970 | dev: true
971 |
972 | /eastasianwidth@0.2.0:
973 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
974 | dev: true
975 |
976 | /electron-to-chromium@1.4.626:
977 | resolution: {integrity: sha512-f7/be56VjRRQk+Ric6PmIrEtPcIqsn3tElyAu9Sh6egha2VLJ82qwkcOdcnT06W+Pb6RUulV1ckzrGbKzVcTHg==}
978 | dev: true
979 |
980 | /emoji-regex@8.0.0:
981 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
982 | dev: true
983 |
984 | /emoji-regex@9.2.2:
985 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
986 | dev: true
987 |
988 | /enhanced-resolve@5.15.0:
989 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
990 | engines: {node: '>=10.13.0'}
991 | dependencies:
992 | graceful-fs: 4.2.11
993 | tapable: 2.2.1
994 | dev: true
995 |
996 | /error-stack-parser@2.1.4:
997 | resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
998 | dependencies:
999 | stackframe: 1.3.4
1000 | dev: false
1001 |
1002 | /es-abstract@1.22.3:
1003 | resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
1004 | engines: {node: '>= 0.4'}
1005 | dependencies:
1006 | array-buffer-byte-length: 1.0.0
1007 | arraybuffer.prototype.slice: 1.0.2
1008 | available-typed-arrays: 1.0.5
1009 | call-bind: 1.0.5
1010 | es-set-tostringtag: 2.0.2
1011 | es-to-primitive: 1.2.1
1012 | function.prototype.name: 1.1.6
1013 | get-intrinsic: 1.2.2
1014 | get-symbol-description: 1.0.0
1015 | globalthis: 1.0.3
1016 | gopd: 1.0.1
1017 | has-property-descriptors: 1.0.1
1018 | has-proto: 1.0.1
1019 | has-symbols: 1.0.3
1020 | hasown: 2.0.0
1021 | internal-slot: 1.0.6
1022 | is-array-buffer: 3.0.2
1023 | is-callable: 1.2.7
1024 | is-negative-zero: 2.0.2
1025 | is-regex: 1.1.4
1026 | is-shared-array-buffer: 1.0.2
1027 | is-string: 1.0.7
1028 | is-typed-array: 1.1.12
1029 | is-weakref: 1.0.2
1030 | object-inspect: 1.13.1
1031 | object-keys: 1.1.1
1032 | object.assign: 4.1.5
1033 | regexp.prototype.flags: 1.5.1
1034 | safe-array-concat: 1.0.1
1035 | safe-regex-test: 1.0.1
1036 | string.prototype.trim: 1.2.8
1037 | string.prototype.trimend: 1.0.7
1038 | string.prototype.trimstart: 1.0.7
1039 | typed-array-buffer: 1.0.0
1040 | typed-array-byte-length: 1.0.0
1041 | typed-array-byte-offset: 1.0.0
1042 | typed-array-length: 1.0.4
1043 | unbox-primitive: 1.0.2
1044 | which-typed-array: 1.1.13
1045 | dev: true
1046 |
1047 | /es-iterator-helpers@1.0.15:
1048 | resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==}
1049 | dependencies:
1050 | asynciterator.prototype: 1.0.0
1051 | call-bind: 1.0.5
1052 | define-properties: 1.2.1
1053 | es-abstract: 1.22.3
1054 | es-set-tostringtag: 2.0.2
1055 | function-bind: 1.1.2
1056 | get-intrinsic: 1.2.2
1057 | globalthis: 1.0.3
1058 | has-property-descriptors: 1.0.1
1059 | has-proto: 1.0.1
1060 | has-symbols: 1.0.3
1061 | internal-slot: 1.0.6
1062 | iterator.prototype: 1.1.2
1063 | safe-array-concat: 1.0.1
1064 | dev: true
1065 |
1066 | /es-set-tostringtag@2.0.2:
1067 | resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
1068 | engines: {node: '>= 0.4'}
1069 | dependencies:
1070 | get-intrinsic: 1.2.2
1071 | has-tostringtag: 1.0.0
1072 | hasown: 2.0.0
1073 | dev: true
1074 |
1075 | /es-shim-unscopables@1.0.2:
1076 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
1077 | dependencies:
1078 | hasown: 2.0.0
1079 | dev: true
1080 |
1081 | /es-to-primitive@1.2.1:
1082 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
1083 | engines: {node: '>= 0.4'}
1084 | dependencies:
1085 | is-callable: 1.2.7
1086 | is-date-object: 1.0.5
1087 | is-symbol: 1.0.4
1088 | dev: true
1089 |
1090 | /escalade@3.1.1:
1091 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
1092 | engines: {node: '>=6'}
1093 | dev: true
1094 |
1095 | /escape-string-regexp@4.0.0:
1096 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1097 | engines: {node: '>=10'}
1098 | dev: true
1099 |
1100 | /eslint-config-next@14.0.4(eslint@8.56.0)(typescript@5.3.3):
1101 | resolution: {integrity: sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==}
1102 | peerDependencies:
1103 | eslint: ^7.23.0 || ^8.0.0
1104 | typescript: '>=3.3.1'
1105 | peerDependenciesMeta:
1106 | typescript:
1107 | optional: true
1108 | dependencies:
1109 | '@next/eslint-plugin-next': 14.0.4
1110 | '@rushstack/eslint-patch': 1.6.1
1111 | '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
1112 | eslint: 8.56.0
1113 | eslint-import-resolver-node: 0.3.9
1114 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0)
1115 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1116 | eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0)
1117 | eslint-plugin-react: 7.33.2(eslint@8.56.0)
1118 | eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0)
1119 | typescript: 5.3.3
1120 | transitivePeerDependencies:
1121 | - eslint-import-resolver-webpack
1122 | - supports-color
1123 | dev: true
1124 |
1125 | /eslint-import-resolver-node@0.3.9:
1126 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
1127 | dependencies:
1128 | debug: 3.2.7
1129 | is-core-module: 2.13.1
1130 | resolve: 1.22.8
1131 | transitivePeerDependencies:
1132 | - supports-color
1133 | dev: true
1134 |
1135 | /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0):
1136 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
1137 | engines: {node: ^14.18.0 || >=16.0.0}
1138 | peerDependencies:
1139 | eslint: '*'
1140 | eslint-plugin-import: '*'
1141 | dependencies:
1142 | debug: 4.3.4
1143 | enhanced-resolve: 5.15.0
1144 | eslint: 8.56.0
1145 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1146 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1147 | fast-glob: 3.3.2
1148 | get-tsconfig: 4.7.2
1149 | is-core-module: 2.13.1
1150 | is-glob: 4.0.3
1151 | transitivePeerDependencies:
1152 | - '@typescript-eslint/parser'
1153 | - eslint-import-resolver-node
1154 | - eslint-import-resolver-webpack
1155 | - supports-color
1156 | dev: true
1157 |
1158 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
1159 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
1160 | engines: {node: '>=4'}
1161 | peerDependencies:
1162 | '@typescript-eslint/parser': '*'
1163 | eslint: '*'
1164 | eslint-import-resolver-node: '*'
1165 | eslint-import-resolver-typescript: '*'
1166 | eslint-import-resolver-webpack: '*'
1167 | peerDependenciesMeta:
1168 | '@typescript-eslint/parser':
1169 | optional: true
1170 | eslint:
1171 | optional: true
1172 | eslint-import-resolver-node:
1173 | optional: true
1174 | eslint-import-resolver-typescript:
1175 | optional: true
1176 | eslint-import-resolver-webpack:
1177 | optional: true
1178 | dependencies:
1179 | '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
1180 | debug: 3.2.7
1181 | eslint: 8.56.0
1182 | eslint-import-resolver-node: 0.3.9
1183 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0)
1184 | transitivePeerDependencies:
1185 | - supports-color
1186 | dev: true
1187 |
1188 | /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
1189 | resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
1190 | engines: {node: '>=4'}
1191 | peerDependencies:
1192 | '@typescript-eslint/parser': '*'
1193 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
1194 | peerDependenciesMeta:
1195 | '@typescript-eslint/parser':
1196 | optional: true
1197 | dependencies:
1198 | '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3)
1199 | array-includes: 3.1.7
1200 | array.prototype.findlastindex: 1.2.3
1201 | array.prototype.flat: 1.3.2
1202 | array.prototype.flatmap: 1.3.2
1203 | debug: 3.2.7
1204 | doctrine: 2.1.0
1205 | eslint: 8.56.0
1206 | eslint-import-resolver-node: 0.3.9
1207 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1208 | hasown: 2.0.0
1209 | is-core-module: 2.13.1
1210 | is-glob: 4.0.3
1211 | minimatch: 3.1.2
1212 | object.fromentries: 2.0.7
1213 | object.groupby: 1.0.1
1214 | object.values: 1.1.7
1215 | semver: 6.3.1
1216 | tsconfig-paths: 3.15.0
1217 | transitivePeerDependencies:
1218 | - eslint-import-resolver-typescript
1219 | - eslint-import-resolver-webpack
1220 | - supports-color
1221 | dev: true
1222 |
1223 | /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0):
1224 | resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
1225 | engines: {node: '>=4.0'}
1226 | peerDependencies:
1227 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
1228 | dependencies:
1229 | '@babel/runtime': 7.23.8
1230 | aria-query: 5.3.0
1231 | array-includes: 3.1.7
1232 | array.prototype.flatmap: 1.3.2
1233 | ast-types-flow: 0.0.8
1234 | axe-core: 4.7.0
1235 | axobject-query: 3.2.1
1236 | damerau-levenshtein: 1.0.8
1237 | emoji-regex: 9.2.2
1238 | es-iterator-helpers: 1.0.15
1239 | eslint: 8.56.0
1240 | hasown: 2.0.0
1241 | jsx-ast-utils: 3.3.5
1242 | language-tags: 1.0.9
1243 | minimatch: 3.1.2
1244 | object.entries: 1.1.7
1245 | object.fromentries: 2.0.7
1246 | dev: true
1247 |
1248 | /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0):
1249 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
1250 | engines: {node: '>=10'}
1251 | peerDependencies:
1252 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
1253 | dependencies:
1254 | eslint: 8.56.0
1255 | dev: true
1256 |
1257 | /eslint-plugin-react@7.33.2(eslint@8.56.0):
1258 | resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
1259 | engines: {node: '>=4'}
1260 | peerDependencies:
1261 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
1262 | dependencies:
1263 | array-includes: 3.1.7
1264 | array.prototype.flatmap: 1.3.2
1265 | array.prototype.tosorted: 1.1.2
1266 | doctrine: 2.1.0
1267 | es-iterator-helpers: 1.0.15
1268 | eslint: 8.56.0
1269 | estraverse: 5.3.0
1270 | jsx-ast-utils: 3.3.5
1271 | minimatch: 3.1.2
1272 | object.entries: 1.1.7
1273 | object.fromentries: 2.0.7
1274 | object.hasown: 1.1.3
1275 | object.values: 1.1.7
1276 | prop-types: 15.8.1
1277 | resolve: 2.0.0-next.5
1278 | semver: 6.3.1
1279 | string.prototype.matchall: 4.0.10
1280 | dev: true
1281 |
1282 | /eslint-scope@7.2.2:
1283 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
1284 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1285 | dependencies:
1286 | esrecurse: 4.3.0
1287 | estraverse: 5.3.0
1288 | dev: true
1289 |
1290 | /eslint-visitor-keys@3.4.3:
1291 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1292 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1293 | dev: true
1294 |
1295 | /eslint@8.56.0:
1296 | resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
1297 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1298 | hasBin: true
1299 | dependencies:
1300 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
1301 | '@eslint-community/regexpp': 4.10.0
1302 | '@eslint/eslintrc': 2.1.4
1303 | '@eslint/js': 8.56.0
1304 | '@humanwhocodes/config-array': 0.11.13
1305 | '@humanwhocodes/module-importer': 1.0.1
1306 | '@nodelib/fs.walk': 1.2.8
1307 | '@ungap/structured-clone': 1.2.0
1308 | ajv: 6.12.6
1309 | chalk: 4.1.2
1310 | cross-spawn: 7.0.3
1311 | debug: 4.3.4
1312 | doctrine: 3.0.0
1313 | escape-string-regexp: 4.0.0
1314 | eslint-scope: 7.2.2
1315 | eslint-visitor-keys: 3.4.3
1316 | espree: 9.6.1
1317 | esquery: 1.5.0
1318 | esutils: 2.0.3
1319 | fast-deep-equal: 3.1.3
1320 | file-entry-cache: 6.0.1
1321 | find-up: 5.0.0
1322 | glob-parent: 6.0.2
1323 | globals: 13.24.0
1324 | graphemer: 1.4.0
1325 | ignore: 5.3.0
1326 | imurmurhash: 0.1.4
1327 | is-glob: 4.0.3
1328 | is-path-inside: 3.0.3
1329 | js-yaml: 4.1.0
1330 | json-stable-stringify-without-jsonify: 1.0.1
1331 | levn: 0.4.1
1332 | lodash.merge: 4.6.2
1333 | minimatch: 3.1.2
1334 | natural-compare: 1.4.0
1335 | optionator: 0.9.3
1336 | strip-ansi: 6.0.1
1337 | text-table: 0.2.0
1338 | transitivePeerDependencies:
1339 | - supports-color
1340 | dev: true
1341 |
1342 | /espree@9.6.1:
1343 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
1344 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1345 | dependencies:
1346 | acorn: 8.11.3
1347 | acorn-jsx: 5.3.2(acorn@8.11.3)
1348 | eslint-visitor-keys: 3.4.3
1349 | dev: true
1350 |
1351 | /esquery@1.5.0:
1352 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1353 | engines: {node: '>=0.10'}
1354 | dependencies:
1355 | estraverse: 5.3.0
1356 | dev: true
1357 |
1358 | /esrecurse@4.3.0:
1359 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1360 | engines: {node: '>=4.0'}
1361 | dependencies:
1362 | estraverse: 5.3.0
1363 | dev: true
1364 |
1365 | /estraverse@5.3.0:
1366 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1367 | engines: {node: '>=4.0'}
1368 | dev: true
1369 |
1370 | /esutils@2.0.3:
1371 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1372 | engines: {node: '>=0.10.0'}
1373 | dev: true
1374 |
1375 | /fast-copy@2.1.7:
1376 | resolution: {integrity: sha512-ozrGwyuCTAy7YgFCua8rmqmytECYk/JYAMXcswOcm0qvGoE3tPb7ivBeIHTOK2DiapBhDZgacIhzhQIKU5TCfA==}
1377 | dev: false
1378 |
1379 | /fast-deep-equal@3.1.3:
1380 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1381 |
1382 | /fast-glob@3.3.2:
1383 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
1384 | engines: {node: '>=8.6.0'}
1385 | dependencies:
1386 | '@nodelib/fs.stat': 2.0.5
1387 | '@nodelib/fs.walk': 1.2.8
1388 | glob-parent: 5.1.2
1389 | merge2: 1.4.1
1390 | micromatch: 4.0.5
1391 | dev: true
1392 |
1393 | /fast-json-stable-stringify@2.1.0:
1394 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1395 | dev: true
1396 |
1397 | /fast-levenshtein@2.0.6:
1398 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1399 | dev: true
1400 |
1401 | /fast-loops@1.1.3:
1402 | resolution: {integrity: sha512-8EZzEP0eKkEEVX+drtd9mtuQ+/QrlfW/5MlwcwK5Nds6EkZ/tRzEexkzUY2mIssnAyVLT+TKHuRXmFNNXYUd6g==}
1403 | dev: false
1404 |
1405 | /fast-shallow-equal@1.0.0:
1406 | resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==}
1407 | dev: false
1408 |
1409 | /fastest-stable-stringify@2.0.2:
1410 | resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==}
1411 | dev: false
1412 |
1413 | /fastparse@1.1.2:
1414 | resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==}
1415 | dev: false
1416 |
1417 | /fastq@1.16.0:
1418 | resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==}
1419 | dependencies:
1420 | reusify: 1.0.4
1421 | dev: true
1422 |
1423 | /file-entry-cache@6.0.1:
1424 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1425 | engines: {node: ^10.12.0 || >=12.0.0}
1426 | dependencies:
1427 | flat-cache: 3.2.0
1428 | dev: true
1429 |
1430 | /fill-range@7.0.1:
1431 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1432 | engines: {node: '>=8'}
1433 | dependencies:
1434 | to-regex-range: 5.0.1
1435 | dev: true
1436 |
1437 | /find-up@5.0.0:
1438 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1439 | engines: {node: '>=10'}
1440 | dependencies:
1441 | locate-path: 6.0.0
1442 | path-exists: 4.0.0
1443 | dev: true
1444 |
1445 | /flat-cache@3.2.0:
1446 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
1447 | engines: {node: ^10.12.0 || >=12.0.0}
1448 | dependencies:
1449 | flatted: 3.2.9
1450 | keyv: 4.5.4
1451 | rimraf: 3.0.2
1452 | dev: true
1453 |
1454 | /flatted@3.2.9:
1455 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
1456 | dev: true
1457 |
1458 | /follow-redirects@1.15.4:
1459 | resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==}
1460 | engines: {node: '>=4.0'}
1461 | peerDependencies:
1462 | debug: '*'
1463 | peerDependenciesMeta:
1464 | debug:
1465 | optional: true
1466 | dev: false
1467 |
1468 | /for-each@0.3.3:
1469 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
1470 | dependencies:
1471 | is-callable: 1.2.7
1472 | dev: true
1473 |
1474 | /foreground-child@3.1.1:
1475 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
1476 | engines: {node: '>=14'}
1477 | dependencies:
1478 | cross-spawn: 7.0.3
1479 | signal-exit: 4.1.0
1480 | dev: true
1481 |
1482 | /form-data@4.0.0:
1483 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
1484 | engines: {node: '>= 6'}
1485 | dependencies:
1486 | asynckit: 0.4.0
1487 | combined-stream: 1.0.8
1488 | mime-types: 2.1.35
1489 | dev: false
1490 |
1491 | /fraction.js@4.3.7:
1492 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
1493 | dev: true
1494 |
1495 | /framer-motion@10.17.12(react-dom@18.2.0)(react@18.2.0):
1496 | resolution: {integrity: sha512-6aaBLN2EgH/GilXwOzEalTfw5Rx9DTQJJjTrxq5bfDbGtPCzXz2GCN6ePGRpTi1ZGugLHxdU273h38ENbcdFKQ==}
1497 | peerDependencies:
1498 | react: ^18.0.0
1499 | react-dom: ^18.0.0
1500 | peerDependenciesMeta:
1501 | react:
1502 | optional: true
1503 | react-dom:
1504 | optional: true
1505 | dependencies:
1506 | react: 18.2.0
1507 | react-dom: 18.2.0(react@18.2.0)
1508 | tslib: 2.6.2
1509 | optionalDependencies:
1510 | '@emotion/is-prop-valid': 0.8.8
1511 | dev: false
1512 |
1513 | /fs.realpath@1.0.0:
1514 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1515 | dev: true
1516 |
1517 | /fsevents@2.3.3:
1518 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1519 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1520 | os: [darwin]
1521 | requiresBuild: true
1522 | dev: true
1523 | optional: true
1524 |
1525 | /function-bind@1.1.2:
1526 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
1527 |
1528 | /function.prototype.name@1.1.6:
1529 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
1530 | engines: {node: '>= 0.4'}
1531 | dependencies:
1532 | call-bind: 1.0.5
1533 | define-properties: 1.2.1
1534 | es-abstract: 1.22.3
1535 | functions-have-names: 1.2.3
1536 | dev: true
1537 |
1538 | /functions-have-names@1.2.3:
1539 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1540 | dev: true
1541 |
1542 | /get-intrinsic@1.2.2:
1543 | resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
1544 | dependencies:
1545 | function-bind: 1.1.2
1546 | has-proto: 1.0.1
1547 | has-symbols: 1.0.3
1548 | hasown: 2.0.0
1549 |
1550 | /get-symbol-description@1.0.0:
1551 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
1552 | engines: {node: '>= 0.4'}
1553 | dependencies:
1554 | call-bind: 1.0.5
1555 | get-intrinsic: 1.2.2
1556 | dev: true
1557 |
1558 | /get-tsconfig@4.7.2:
1559 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
1560 | dependencies:
1561 | resolve-pkg-maps: 1.0.0
1562 | dev: true
1563 |
1564 | /glob-parent@5.1.2:
1565 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1566 | engines: {node: '>= 6'}
1567 | dependencies:
1568 | is-glob: 4.0.3
1569 | dev: true
1570 |
1571 | /glob-parent@6.0.2:
1572 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1573 | engines: {node: '>=10.13.0'}
1574 | dependencies:
1575 | is-glob: 4.0.3
1576 | dev: true
1577 |
1578 | /glob-to-regexp@0.4.1:
1579 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
1580 | dev: false
1581 |
1582 | /glob@10.3.10:
1583 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
1584 | engines: {node: '>=16 || 14 >=14.17'}
1585 | hasBin: true
1586 | dependencies:
1587 | foreground-child: 3.1.1
1588 | jackspeak: 2.3.6
1589 | minimatch: 9.0.3
1590 | minipass: 7.0.4
1591 | path-scurry: 1.10.1
1592 | dev: true
1593 |
1594 | /glob@7.1.7:
1595 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
1596 | dependencies:
1597 | fs.realpath: 1.0.0
1598 | inflight: 1.0.6
1599 | inherits: 2.0.4
1600 | minimatch: 3.1.2
1601 | once: 1.4.0
1602 | path-is-absolute: 1.0.1
1603 | dev: true
1604 |
1605 | /glob@7.2.3:
1606 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1607 | dependencies:
1608 | fs.realpath: 1.0.0
1609 | inflight: 1.0.6
1610 | inherits: 2.0.4
1611 | minimatch: 3.1.2
1612 | once: 1.4.0
1613 | path-is-absolute: 1.0.1
1614 | dev: true
1615 |
1616 | /globals@13.24.0:
1617 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
1618 | engines: {node: '>=8'}
1619 | dependencies:
1620 | type-fest: 0.20.2
1621 | dev: true
1622 |
1623 | /globalthis@1.0.3:
1624 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
1625 | engines: {node: '>= 0.4'}
1626 | dependencies:
1627 | define-properties: 1.2.1
1628 | dev: true
1629 |
1630 | /globby@11.1.0:
1631 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1632 | engines: {node: '>=10'}
1633 | dependencies:
1634 | array-union: 2.1.0
1635 | dir-glob: 3.0.1
1636 | fast-glob: 3.3.2
1637 | ignore: 5.3.0
1638 | merge2: 1.4.1
1639 | slash: 3.0.0
1640 | dev: true
1641 |
1642 | /gopd@1.0.1:
1643 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
1644 | dependencies:
1645 | get-intrinsic: 1.2.2
1646 |
1647 | /graceful-fs@4.2.11:
1648 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1649 |
1650 | /graphemer@1.4.0:
1651 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1652 | dev: true
1653 |
1654 | /has-bigints@1.0.2:
1655 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
1656 | dev: true
1657 |
1658 | /has-flag@4.0.0:
1659 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1660 | engines: {node: '>=8'}
1661 | dev: true
1662 |
1663 | /has-property-descriptors@1.0.1:
1664 | resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
1665 | dependencies:
1666 | get-intrinsic: 1.2.2
1667 |
1668 | /has-proto@1.0.1:
1669 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
1670 | engines: {node: '>= 0.4'}
1671 |
1672 | /has-symbols@1.0.3:
1673 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1674 | engines: {node: '>= 0.4'}
1675 |
1676 | /has-tostringtag@1.0.0:
1677 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
1678 | engines: {node: '>= 0.4'}
1679 | dependencies:
1680 | has-symbols: 1.0.3
1681 | dev: true
1682 |
1683 | /hasown@2.0.0:
1684 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
1685 | engines: {node: '>= 0.4'}
1686 | dependencies:
1687 | function-bind: 1.1.2
1688 |
1689 | /hyphenate-style-name@1.0.4:
1690 | resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==}
1691 | dev: false
1692 |
1693 | /ignore@5.3.0:
1694 | resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
1695 | engines: {node: '>= 4'}
1696 | dev: true
1697 |
1698 | /import-fresh@3.3.0:
1699 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1700 | engines: {node: '>=6'}
1701 | dependencies:
1702 | parent-module: 1.0.1
1703 | resolve-from: 4.0.0
1704 | dev: true
1705 |
1706 | /imurmurhash@0.1.4:
1707 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1708 | engines: {node: '>=0.8.19'}
1709 | dev: true
1710 |
1711 | /inflight@1.0.6:
1712 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1713 | dependencies:
1714 | once: 1.4.0
1715 | wrappy: 1.0.2
1716 | dev: true
1717 |
1718 | /inherits@2.0.4:
1719 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1720 | dev: true
1721 |
1722 | /inline-style-prefixer@7.0.0:
1723 | resolution: {integrity: sha512-I7GEdScunP1dQ6IM2mQWh6v0mOYdYmH3Bp31UecKdrcUgcURTcctSe1IECdUznSHKSmsHtjrT3CwCPI1pyxfUQ==}
1724 | dependencies:
1725 | css-in-js-utils: 3.1.0
1726 | fast-loops: 1.1.3
1727 | dev: false
1728 |
1729 | /internal-slot@1.0.6:
1730 | resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
1731 | engines: {node: '>= 0.4'}
1732 | dependencies:
1733 | get-intrinsic: 1.2.2
1734 | hasown: 2.0.0
1735 | side-channel: 1.0.4
1736 | dev: true
1737 |
1738 | /is-array-buffer@3.0.2:
1739 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
1740 | dependencies:
1741 | call-bind: 1.0.5
1742 | get-intrinsic: 1.2.2
1743 | is-typed-array: 1.1.12
1744 | dev: true
1745 |
1746 | /is-async-function@2.0.0:
1747 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
1748 | engines: {node: '>= 0.4'}
1749 | dependencies:
1750 | has-tostringtag: 1.0.0
1751 | dev: true
1752 |
1753 | /is-bigint@1.0.4:
1754 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1755 | dependencies:
1756 | has-bigints: 1.0.2
1757 | dev: true
1758 |
1759 | /is-binary-path@2.1.0:
1760 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1761 | engines: {node: '>=8'}
1762 | dependencies:
1763 | binary-extensions: 2.2.0
1764 | dev: true
1765 |
1766 | /is-boolean-object@1.1.2:
1767 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1768 | engines: {node: '>= 0.4'}
1769 | dependencies:
1770 | call-bind: 1.0.5
1771 | has-tostringtag: 1.0.0
1772 | dev: true
1773 |
1774 | /is-callable@1.2.7:
1775 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
1776 | engines: {node: '>= 0.4'}
1777 | dev: true
1778 |
1779 | /is-core-module@2.13.1:
1780 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
1781 | dependencies:
1782 | hasown: 2.0.0
1783 | dev: true
1784 |
1785 | /is-date-object@1.0.5:
1786 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1787 | engines: {node: '>= 0.4'}
1788 | dependencies:
1789 | has-tostringtag: 1.0.0
1790 | dev: true
1791 |
1792 | /is-extglob@2.1.1:
1793 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1794 | engines: {node: '>=0.10.0'}
1795 | dev: true
1796 |
1797 | /is-finalizationregistry@1.0.2:
1798 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
1799 | dependencies:
1800 | call-bind: 1.0.5
1801 | dev: true
1802 |
1803 | /is-fullwidth-code-point@3.0.0:
1804 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1805 | engines: {node: '>=8'}
1806 | dev: true
1807 |
1808 | /is-generator-function@1.0.10:
1809 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1810 | engines: {node: '>= 0.4'}
1811 | dependencies:
1812 | has-tostringtag: 1.0.0
1813 | dev: true
1814 |
1815 | /is-glob@4.0.3:
1816 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1817 | engines: {node: '>=0.10.0'}
1818 | dependencies:
1819 | is-extglob: 2.1.1
1820 | dev: true
1821 |
1822 | /is-map@2.0.2:
1823 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
1824 | dev: true
1825 |
1826 | /is-negative-zero@2.0.2:
1827 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
1828 | engines: {node: '>= 0.4'}
1829 | dev: true
1830 |
1831 | /is-number-object@1.0.7:
1832 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1833 | engines: {node: '>= 0.4'}
1834 | dependencies:
1835 | has-tostringtag: 1.0.0
1836 | dev: true
1837 |
1838 | /is-number@7.0.0:
1839 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1840 | engines: {node: '>=0.12.0'}
1841 | dev: true
1842 |
1843 | /is-path-inside@3.0.3:
1844 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1845 | engines: {node: '>=8'}
1846 | dev: true
1847 |
1848 | /is-regex@1.1.4:
1849 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1850 | engines: {node: '>= 0.4'}
1851 | dependencies:
1852 | call-bind: 1.0.5
1853 | has-tostringtag: 1.0.0
1854 | dev: true
1855 |
1856 | /is-set@2.0.2:
1857 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
1858 | dev: true
1859 |
1860 | /is-shared-array-buffer@1.0.2:
1861 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
1862 | dependencies:
1863 | call-bind: 1.0.5
1864 | dev: true
1865 |
1866 | /is-string@1.0.7:
1867 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1868 | engines: {node: '>= 0.4'}
1869 | dependencies:
1870 | has-tostringtag: 1.0.0
1871 | dev: true
1872 |
1873 | /is-symbol@1.0.4:
1874 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1875 | engines: {node: '>= 0.4'}
1876 | dependencies:
1877 | has-symbols: 1.0.3
1878 | dev: true
1879 |
1880 | /is-typed-array@1.1.12:
1881 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
1882 | engines: {node: '>= 0.4'}
1883 | dependencies:
1884 | which-typed-array: 1.1.13
1885 | dev: true
1886 |
1887 | /is-weakmap@2.0.1:
1888 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
1889 | dev: true
1890 |
1891 | /is-weakref@1.0.2:
1892 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1893 | dependencies:
1894 | call-bind: 1.0.5
1895 | dev: true
1896 |
1897 | /is-weakset@2.0.2:
1898 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
1899 | dependencies:
1900 | call-bind: 1.0.5
1901 | get-intrinsic: 1.2.2
1902 | dev: true
1903 |
1904 | /isarray@2.0.5:
1905 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1906 | dev: true
1907 |
1908 | /isexe@2.0.0:
1909 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1910 | dev: true
1911 |
1912 | /iterator.prototype@1.1.2:
1913 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
1914 | dependencies:
1915 | define-properties: 1.2.1
1916 | get-intrinsic: 1.2.2
1917 | has-symbols: 1.0.3
1918 | reflect.getprototypeof: 1.0.4
1919 | set-function-name: 2.0.1
1920 | dev: true
1921 |
1922 | /jackspeak@2.3.6:
1923 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
1924 | engines: {node: '>=14'}
1925 | dependencies:
1926 | '@isaacs/cliui': 8.0.2
1927 | optionalDependencies:
1928 | '@pkgjs/parseargs': 0.11.0
1929 | dev: true
1930 |
1931 | /jiti@1.21.0:
1932 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
1933 | hasBin: true
1934 | dev: true
1935 |
1936 | /js-cookie@2.2.1:
1937 | resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
1938 | dev: false
1939 |
1940 | /js-tokens@4.0.0:
1941 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1942 |
1943 | /js-yaml@4.1.0:
1944 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1945 | hasBin: true
1946 | dependencies:
1947 | argparse: 2.0.1
1948 | dev: true
1949 |
1950 | /json-buffer@3.0.1:
1951 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1952 | dev: true
1953 |
1954 | /json-schema-traverse@0.4.1:
1955 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1956 | dev: true
1957 |
1958 | /json-stable-stringify-without-jsonify@1.0.1:
1959 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1960 | dev: true
1961 |
1962 | /json-stringify-safe@5.0.1:
1963 | resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
1964 | dev: false
1965 |
1966 | /json5@1.0.2:
1967 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
1968 | hasBin: true
1969 | dependencies:
1970 | minimist: 1.2.8
1971 | dev: true
1972 |
1973 | /jsx-ast-utils@3.3.5:
1974 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
1975 | engines: {node: '>=4.0'}
1976 | dependencies:
1977 | array-includes: 3.1.7
1978 | array.prototype.flat: 1.3.2
1979 | object.assign: 4.1.5
1980 | object.values: 1.1.7
1981 | dev: true
1982 |
1983 | /keyv@4.5.4:
1984 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1985 | dependencies:
1986 | json-buffer: 3.0.1
1987 | dev: true
1988 |
1989 | /language-subtag-registry@0.3.22:
1990 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
1991 | dev: true
1992 |
1993 | /language-tags@1.0.9:
1994 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
1995 | engines: {node: '>=0.10'}
1996 | dependencies:
1997 | language-subtag-registry: 0.3.22
1998 | dev: true
1999 |
2000 | /levn@0.4.1:
2001 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
2002 | engines: {node: '>= 0.8.0'}
2003 | dependencies:
2004 | prelude-ls: 1.2.1
2005 | type-check: 0.4.0
2006 | dev: true
2007 |
2008 | /lilconfig@2.1.0:
2009 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
2010 | engines: {node: '>=10'}
2011 | dev: true
2012 |
2013 | /lilconfig@3.0.0:
2014 | resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==}
2015 | engines: {node: '>=14'}
2016 | dev: true
2017 |
2018 | /lines-and-columns@1.2.4:
2019 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
2020 | dev: true
2021 |
2022 | /load-script@1.0.0:
2023 | resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==}
2024 | dev: false
2025 |
2026 | /locate-path@6.0.0:
2027 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
2028 | engines: {node: '>=10'}
2029 | dependencies:
2030 | p-locate: 5.0.0
2031 | dev: true
2032 |
2033 | /lodash.isplainobject@4.0.6:
2034 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
2035 | dev: false
2036 |
2037 | /lodash.isstring@4.0.1:
2038 | resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
2039 | dev: false
2040 |
2041 | /lodash.merge@4.6.2:
2042 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
2043 | dev: true
2044 |
2045 | /loose-envify@1.4.0:
2046 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
2047 | hasBin: true
2048 | dependencies:
2049 | js-tokens: 4.0.0
2050 |
2051 | /lru-cache@10.1.0:
2052 | resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==}
2053 | engines: {node: 14 || >=16.14}
2054 | dev: true
2055 |
2056 | /lru-cache@6.0.0:
2057 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2058 | engines: {node: '>=10'}
2059 | dependencies:
2060 | yallist: 4.0.0
2061 | dev: true
2062 |
2063 | /mdn-data@2.0.14:
2064 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
2065 | dev: false
2066 |
2067 | /merge2@1.4.1:
2068 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2069 | engines: {node: '>= 8'}
2070 | dev: true
2071 |
2072 | /micromatch@4.0.5:
2073 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2074 | engines: {node: '>=8.6'}
2075 | dependencies:
2076 | braces: 3.0.2
2077 | picomatch: 2.3.1
2078 | dev: true
2079 |
2080 | /mime-db@1.52.0:
2081 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
2082 | engines: {node: '>= 0.6'}
2083 | dev: false
2084 |
2085 | /mime-types@2.1.35:
2086 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
2087 | engines: {node: '>= 0.6'}
2088 | dependencies:
2089 | mime-db: 1.52.0
2090 | dev: false
2091 |
2092 | /minimatch@3.1.2:
2093 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2094 | dependencies:
2095 | brace-expansion: 1.1.11
2096 | dev: true
2097 |
2098 | /minimatch@9.0.3:
2099 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
2100 | engines: {node: '>=16 || 14 >=14.17'}
2101 | dependencies:
2102 | brace-expansion: 2.0.1
2103 | dev: true
2104 |
2105 | /minimist@1.2.8:
2106 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
2107 | dev: true
2108 |
2109 | /minipass@7.0.4:
2110 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
2111 | engines: {node: '>=16 || 14 >=14.17'}
2112 | dev: true
2113 |
2114 | /ms@2.0.0:
2115 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
2116 | dev: false
2117 |
2118 | /ms@2.1.2:
2119 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2120 | dev: true
2121 |
2122 | /ms@2.1.3:
2123 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
2124 | dev: true
2125 |
2126 | /mz@2.7.0:
2127 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
2128 | dependencies:
2129 | any-promise: 1.3.0
2130 | object-assign: 4.1.1
2131 | thenify-all: 1.6.0
2132 | dev: true
2133 |
2134 | /nano-css@5.6.1(react-dom@18.2.0)(react@18.2.0):
2135 | resolution: {integrity: sha512-T2Mhc//CepkTa3X4pUhKgbEheJHYAxD0VptuqFhDbGMUWVV2m+lkNiW/Ieuj35wrfC8Zm0l7HvssQh7zcEttSw==}
2136 | peerDependencies:
2137 | react: '*'
2138 | react-dom: '*'
2139 | dependencies:
2140 | '@jridgewell/sourcemap-codec': 1.4.15
2141 | css-tree: 1.1.3
2142 | csstype: 3.1.3
2143 | fastest-stable-stringify: 2.0.2
2144 | inline-style-prefixer: 7.0.0
2145 | react: 18.2.0
2146 | react-dom: 18.2.0(react@18.2.0)
2147 | rtl-css-js: 1.16.1
2148 | stacktrace-js: 2.0.2
2149 | stylis: 4.3.1
2150 | dev: false
2151 |
2152 | /nanoid@3.3.7:
2153 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
2154 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2155 | hasBin: true
2156 |
2157 | /natural-compare@1.4.0:
2158 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
2159 | dev: true
2160 |
2161 | /next@14.0.4(react-dom@18.2.0)(react@18.2.0):
2162 | resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==}
2163 | engines: {node: '>=18.17.0'}
2164 | hasBin: true
2165 | peerDependencies:
2166 | '@opentelemetry/api': ^1.1.0
2167 | react: ^18.2.0
2168 | react-dom: ^18.2.0
2169 | sass: ^1.3.0
2170 | peerDependenciesMeta:
2171 | '@opentelemetry/api':
2172 | optional: true
2173 | sass:
2174 | optional: true
2175 | dependencies:
2176 | '@next/env': 14.0.4
2177 | '@swc/helpers': 0.5.2
2178 | busboy: 1.6.0
2179 | caniuse-lite: 1.0.30001576
2180 | graceful-fs: 4.2.11
2181 | postcss: 8.4.31
2182 | react: 18.2.0
2183 | react-dom: 18.2.0(react@18.2.0)
2184 | styled-jsx: 5.1.1(react@18.2.0)
2185 | watchpack: 2.4.0
2186 | optionalDependencies:
2187 | '@next/swc-darwin-arm64': 14.0.4
2188 | '@next/swc-darwin-x64': 14.0.4
2189 | '@next/swc-linux-arm64-gnu': 14.0.4
2190 | '@next/swc-linux-arm64-musl': 14.0.4
2191 | '@next/swc-linux-x64-gnu': 14.0.4
2192 | '@next/swc-linux-x64-musl': 14.0.4
2193 | '@next/swc-win32-arm64-msvc': 14.0.4
2194 | '@next/swc-win32-ia32-msvc': 14.0.4
2195 | '@next/swc-win32-x64-msvc': 14.0.4
2196 | transitivePeerDependencies:
2197 | - '@babel/core'
2198 | - babel-plugin-macros
2199 | dev: false
2200 |
2201 | /nextjs13-progress@1.2.5(next@14.0.4)(react@18.2.0):
2202 | resolution: {integrity: sha512-tgDpIy1mYSLzqnZ84GqMBrftHvgaIVURNza/HuFxVgKBoXD+4do2tOtg/ksNR/GfmTRuNTvyyeZrhJyt1DCAzQ==}
2203 | peerDependencies:
2204 | next: '>=13.4'
2205 | react: '>=17.0.0'
2206 | dependencies:
2207 | '@types/nprogress': 0.2.3
2208 | next: 14.0.4(react-dom@18.2.0)(react@18.2.0)
2209 | nprogress: 0.2.0
2210 | prop-types: 15.8.1
2211 | react: 18.2.0
2212 | dev: false
2213 |
2214 | /node-releases@2.0.14:
2215 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
2216 | dev: true
2217 |
2218 | /normalize-path@3.0.0:
2219 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
2220 | engines: {node: '>=0.10.0'}
2221 | dev: true
2222 |
2223 | /normalize-range@0.1.2:
2224 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
2225 | engines: {node: '>=0.10.0'}
2226 | dev: true
2227 |
2228 | /nprogress@0.2.0:
2229 | resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
2230 | dev: false
2231 |
2232 | /object-assign@4.1.1:
2233 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2234 | engines: {node: '>=0.10.0'}
2235 |
2236 | /object-hash@3.0.0:
2237 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
2238 | engines: {node: '>= 6'}
2239 | dev: true
2240 |
2241 | /object-inspect@1.13.1:
2242 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
2243 |
2244 | /object-keys@1.1.1:
2245 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
2246 | engines: {node: '>= 0.4'}
2247 | dev: true
2248 |
2249 | /object.assign@4.1.5:
2250 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
2251 | engines: {node: '>= 0.4'}
2252 | dependencies:
2253 | call-bind: 1.0.5
2254 | define-properties: 1.2.1
2255 | has-symbols: 1.0.3
2256 | object-keys: 1.1.1
2257 | dev: true
2258 |
2259 | /object.entries@1.1.7:
2260 | resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
2261 | engines: {node: '>= 0.4'}
2262 | dependencies:
2263 | call-bind: 1.0.5
2264 | define-properties: 1.2.1
2265 | es-abstract: 1.22.3
2266 | dev: true
2267 |
2268 | /object.fromentries@2.0.7:
2269 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
2270 | engines: {node: '>= 0.4'}
2271 | dependencies:
2272 | call-bind: 1.0.5
2273 | define-properties: 1.2.1
2274 | es-abstract: 1.22.3
2275 | dev: true
2276 |
2277 | /object.groupby@1.0.1:
2278 | resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
2279 | dependencies:
2280 | call-bind: 1.0.5
2281 | define-properties: 1.2.1
2282 | es-abstract: 1.22.3
2283 | get-intrinsic: 1.2.2
2284 | dev: true
2285 |
2286 | /object.hasown@1.1.3:
2287 | resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
2288 | dependencies:
2289 | define-properties: 1.2.1
2290 | es-abstract: 1.22.3
2291 | dev: true
2292 |
2293 | /object.values@1.1.7:
2294 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
2295 | engines: {node: '>= 0.4'}
2296 | dependencies:
2297 | call-bind: 1.0.5
2298 | define-properties: 1.2.1
2299 | es-abstract: 1.22.3
2300 | dev: true
2301 |
2302 | /once@1.4.0:
2303 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2304 | dependencies:
2305 | wrappy: 1.0.2
2306 | dev: true
2307 |
2308 | /optionator@0.9.3:
2309 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
2310 | engines: {node: '>= 0.8.0'}
2311 | dependencies:
2312 | '@aashutoshrathi/word-wrap': 1.2.6
2313 | deep-is: 0.1.4
2314 | fast-levenshtein: 2.0.6
2315 | levn: 0.4.1
2316 | prelude-ls: 1.2.1
2317 | type-check: 0.4.0
2318 | dev: true
2319 |
2320 | /p-limit@3.1.0:
2321 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
2322 | engines: {node: '>=10'}
2323 | dependencies:
2324 | yocto-queue: 0.1.0
2325 | dev: true
2326 |
2327 | /p-locate@5.0.0:
2328 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
2329 | engines: {node: '>=10'}
2330 | dependencies:
2331 | p-limit: 3.1.0
2332 | dev: true
2333 |
2334 | /p-throttle@4.1.1:
2335 | resolution: {integrity: sha512-TuU8Ato+pRTPJoDzYD4s7ocJYcNSEZRvlxoq3hcPI2kZDZ49IQ1Wkj7/gDJc3X7XiEAAvRGtDzdXJI0tC3IL1g==}
2336 | engines: {node: '>=10'}
2337 | dev: false
2338 |
2339 | /p4-css@1.5.1(react-dom@18.2.0)(react@18.2.0):
2340 | resolution: {integrity: sha512-CRyakHYb77Hw9UbMdZ/nQi/roS9C9ahvl5FfCKUhVPtpCcTyOnYNwtFQ8VgcBXybT3nwil61TE/ujH6b5kNDDg==}
2341 | peerDependencies:
2342 | react: '*'
2343 | dependencies:
2344 | nano-css: 5.6.1(react-dom@18.2.0)(react@18.2.0)
2345 | react: 18.2.0
2346 | transitivePeerDependencies:
2347 | - react-dom
2348 | dev: false
2349 |
2350 | /parent-module@1.0.1:
2351 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
2352 | engines: {node: '>=6'}
2353 | dependencies:
2354 | callsites: 3.1.0
2355 | dev: true
2356 |
2357 | /path-exists@4.0.0:
2358 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2359 | engines: {node: '>=8'}
2360 | dev: true
2361 |
2362 | /path-is-absolute@1.0.1:
2363 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
2364 | engines: {node: '>=0.10.0'}
2365 | dev: true
2366 |
2367 | /path-key@3.1.1:
2368 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2369 | engines: {node: '>=8'}
2370 | dev: true
2371 |
2372 | /path-parse@1.0.7:
2373 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2374 | dev: true
2375 |
2376 | /path-scurry@1.10.1:
2377 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
2378 | engines: {node: '>=16 || 14 >=14.17'}
2379 | dependencies:
2380 | lru-cache: 10.1.0
2381 | minipass: 7.0.4
2382 | dev: true
2383 |
2384 | /path-type@4.0.0:
2385 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
2386 | engines: {node: '>=8'}
2387 | dev: true
2388 |
2389 | /picocolors@1.0.0:
2390 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
2391 |
2392 | /picomatch@2.3.1:
2393 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2394 | engines: {node: '>=8.6'}
2395 | dev: true
2396 |
2397 | /pify@2.3.0:
2398 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
2399 | engines: {node: '>=0.10.0'}
2400 | dev: true
2401 |
2402 | /pirates@4.0.6:
2403 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
2404 | engines: {node: '>= 6'}
2405 | dev: true
2406 |
2407 | /postcss-import@15.1.0(postcss@8.4.33):
2408 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
2409 | engines: {node: '>=14.0.0'}
2410 | peerDependencies:
2411 | postcss: ^8.0.0
2412 | dependencies:
2413 | postcss: 8.4.33
2414 | postcss-value-parser: 4.2.0
2415 | read-cache: 1.0.0
2416 | resolve: 1.22.8
2417 | dev: true
2418 |
2419 | /postcss-js@4.0.1(postcss@8.4.33):
2420 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
2421 | engines: {node: ^12 || ^14 || >= 16}
2422 | peerDependencies:
2423 | postcss: ^8.4.21
2424 | dependencies:
2425 | camelcase-css: 2.0.1
2426 | postcss: 8.4.33
2427 |
2428 | /postcss-load-config@4.0.2(postcss@8.4.33):
2429 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
2430 | engines: {node: '>= 14'}
2431 | peerDependencies:
2432 | postcss: '>=8.0.9'
2433 | ts-node: '>=9.0.0'
2434 | peerDependenciesMeta:
2435 | postcss:
2436 | optional: true
2437 | ts-node:
2438 | optional: true
2439 | dependencies:
2440 | lilconfig: 3.0.0
2441 | postcss: 8.4.33
2442 | yaml: 2.3.4
2443 | dev: true
2444 |
2445 | /postcss-nested@6.0.1(postcss@8.4.33):
2446 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
2447 | engines: {node: '>=12.0'}
2448 | peerDependencies:
2449 | postcss: ^8.2.14
2450 | dependencies:
2451 | postcss: 8.4.33
2452 | postcss-selector-parser: 6.0.15
2453 | dev: true
2454 |
2455 | /postcss-selector-parser@6.0.15:
2456 | resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
2457 | engines: {node: '>=4'}
2458 | dependencies:
2459 | cssesc: 3.0.0
2460 | util-deprecate: 1.0.2
2461 | dev: true
2462 |
2463 | /postcss-value-parser@4.2.0:
2464 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
2465 | dev: true
2466 |
2467 | /postcss@8.4.31:
2468 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
2469 | engines: {node: ^10 || ^12 || >=14}
2470 | dependencies:
2471 | nanoid: 3.3.7
2472 | picocolors: 1.0.0
2473 | source-map-js: 1.0.2
2474 | dev: false
2475 |
2476 | /postcss@8.4.33:
2477 | resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==}
2478 | engines: {node: ^10 || ^12 || >=14}
2479 | dependencies:
2480 | nanoid: 3.3.7
2481 | picocolors: 1.0.0
2482 | source-map-js: 1.0.2
2483 |
2484 | /prelude-ls@1.2.1:
2485 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
2486 | engines: {node: '>= 0.8.0'}
2487 | dev: true
2488 |
2489 | /prop-types@15.7.2:
2490 | resolution: {integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==}
2491 | dependencies:
2492 | loose-envify: 1.4.0
2493 | object-assign: 4.1.1
2494 | react-is: 16.13.1
2495 | dev: false
2496 |
2497 | /prop-types@15.8.1:
2498 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
2499 | dependencies:
2500 | loose-envify: 1.4.0
2501 | object-assign: 4.1.1
2502 | react-is: 16.13.1
2503 |
2504 | /proxy-from-env@1.1.0:
2505 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
2506 | dev: false
2507 |
2508 | /punycode@2.3.1:
2509 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
2510 | engines: {node: '>=6'}
2511 | dev: true
2512 |
2513 | /qs@6.11.2:
2514 | resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==}
2515 | engines: {node: '>=0.6'}
2516 | dependencies:
2517 | side-channel: 1.0.4
2518 | dev: false
2519 |
2520 | /query-string@5.1.1:
2521 | resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==}
2522 | engines: {node: '>=0.10.0'}
2523 | dependencies:
2524 | decode-uri-component: 0.2.2
2525 | object-assign: 4.1.1
2526 | strict-uri-encode: 1.1.0
2527 | dev: false
2528 |
2529 | /queue-microtask@1.2.3:
2530 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2531 | dev: true
2532 |
2533 | /react-dom@18.2.0(react@18.2.0):
2534 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
2535 | peerDependencies:
2536 | react: ^18.2.0
2537 | dependencies:
2538 | loose-envify: 1.4.0
2539 | react: 18.2.0
2540 | scheduler: 0.23.0
2541 | dev: false
2542 |
2543 | /react-embed@3.7.0(react-dom@18.2.0)(react@18.2.0):
2544 | resolution: {integrity: sha512-Mqaje4PB28vGiGLqq7S8Qey8j4rlQeXvTOTduoEmSRN6zmS5fDUwO/Oz0utuMhSoY9lgdInT61bho/lwFihYkA==}
2545 | peerDependencies:
2546 | react: '*'
2547 | react-dom: '*'
2548 | dependencies:
2549 | p4-css: 1.5.1(react-dom@18.2.0)(react@18.2.0)
2550 | react: 18.2.0
2551 | react-dom: 18.2.0(react@18.2.0)
2552 | react-instagram-embed: 1.5.0(react-dom@18.2.0)(react@18.2.0)
2553 | react-player: 1.15.3(react@18.2.0)
2554 | react-simple-player: 1.1.0(react-dom@18.2.0)(react@18.2.0)
2555 | react-youtube: 7.14.0(react@18.2.0)
2556 | scriptjs: 2.5.9
2557 | transitivePeerDependencies:
2558 | - supports-color
2559 | dev: false
2560 |
2561 | /react-gist@1.2.4(react@18.2.0):
2562 | resolution: {integrity: sha512-uDgPJ08IJsl/7auK3CS53JKGC1P/X7tNCzo9k0r6D/5l+ilsxE1+SAaylJCh0aeyZoJOoxQikKU+MHsAvA9iFw==}
2563 | peerDependencies:
2564 | react: 0.14.x || ^15.0.0-rc || ^16.0.0-rc || ^17.0.0-rc
2565 | dependencies:
2566 | react: 18.2.0
2567 | dev: false
2568 |
2569 | /react-icons@4.12.0(react@18.2.0):
2570 | resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==}
2571 | peerDependencies:
2572 | react: '*'
2573 | dependencies:
2574 | react: 18.2.0
2575 | dev: false
2576 |
2577 | /react-instagram-embed@1.5.0(react-dom@18.2.0)(react@18.2.0):
2578 | resolution: {integrity: sha512-8HGBHjK4k6xJjActGLll22TCE8G9GI6aIlb7r8UJB9MYMnJpk15SuAQOoAeujb4pkOQGlWgfU3TW7R+97dp8mg==}
2579 | peerDependencies:
2580 | react: ^16.0.0 || ^15.0.0 || ~0.14.0
2581 | react-dom: ^16.0.0 || ^15.0.0 || ~0.14.0
2582 | dependencies:
2583 | query-string: 5.1.1
2584 | react: 18.2.0
2585 | react-dom: 18.2.0(react@18.2.0)
2586 | dev: false
2587 |
2588 | /react-is@16.13.1:
2589 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2590 |
2591 | /react-player@1.15.3(react@18.2.0):
2592 | resolution: {integrity: sha512-8fc0R1AipFIy7l4lKgnIg+gMU2IY32ZMxxBlINjXAq/YnN3HUP3hOaE+aQ0lQv+a1/MMZgbekWD86ZGDO7kB8g==}
2593 | peerDependencies:
2594 | react: '*'
2595 | dependencies:
2596 | deepmerge: 4.3.1
2597 | load-script: 1.0.0
2598 | prop-types: 15.8.1
2599 | react: 18.2.0
2600 | dev: false
2601 |
2602 | /react-simple-player@1.1.0(react-dom@18.2.0)(react@18.2.0):
2603 | resolution: {integrity: sha512-uvfEcBZre21TcjTZ9G0Q5mDOdKYKfiB2EM6pvJ1gSrFKpJQgXPTpJ1zXqiY+L74y/c1TgYOg2b12mGCibFRajA==}
2604 | peerDependencies:
2605 | react: '*'
2606 | react-dom: '*'
2607 | dependencies:
2608 | p4-css: 1.5.1(react-dom@18.2.0)(react@18.2.0)
2609 | react: 18.2.0
2610 | react-dom: 18.2.0(react@18.2.0)
2611 | react-use: 17.4.2(react-dom@18.2.0)(react@18.2.0)
2612 | dev: false
2613 |
2614 | /react-universal-interface@0.6.2(react@18.2.0)(tslib@2.6.2):
2615 | resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
2616 | peerDependencies:
2617 | react: '*'
2618 | tslib: '*'
2619 | dependencies:
2620 | react: 18.2.0
2621 | tslib: 2.6.2
2622 | dev: false
2623 |
2624 | /react-use@17.4.2(react-dom@18.2.0)(react@18.2.0):
2625 | resolution: {integrity: sha512-1jPtmWLD8OJJNYCdYLJEH/HM+bPDfJuyGwCYeJFgPmWY8ttwpgZnW5QnzgM55CYUByUiTjHxsGOnEpLl6yQaoQ==}
2626 | peerDependencies:
2627 | react: '*'
2628 | react-dom: '*'
2629 | dependencies:
2630 | '@types/js-cookie': 2.2.7
2631 | '@xobotyi/scrollbar-width': 1.9.5
2632 | copy-to-clipboard: 3.3.3
2633 | fast-deep-equal: 3.1.3
2634 | fast-shallow-equal: 1.0.0
2635 | js-cookie: 2.2.1
2636 | nano-css: 5.6.1(react-dom@18.2.0)(react@18.2.0)
2637 | react: 18.2.0
2638 | react-dom: 18.2.0(react@18.2.0)
2639 | react-universal-interface: 0.6.2(react@18.2.0)(tslib@2.6.2)
2640 | resize-observer-polyfill: 1.5.1
2641 | screenfull: 5.2.0
2642 | set-harmonic-interval: 1.0.1
2643 | throttle-debounce: 3.0.1
2644 | ts-easing: 0.2.0
2645 | tslib: 2.6.2
2646 | dev: false
2647 |
2648 | /react-youtube@7.14.0(react@18.2.0):
2649 | resolution: {integrity: sha512-SUHZ4F4pd1EHmQu0CV0KSQvAs5KHOT5cfYaq4WLCcDbU8fBo1ouTXaAOIASWbrz8fHwg+G1evfoSIYpV2AwSAg==}
2650 | engines: {node: '>= 10.x'}
2651 | peerDependencies:
2652 | react: '>=0.14.1'
2653 | dependencies:
2654 | fast-deep-equal: 3.1.3
2655 | prop-types: 15.7.2
2656 | react: 18.2.0
2657 | youtube-player: 5.5.2
2658 | transitivePeerDependencies:
2659 | - supports-color
2660 | dev: false
2661 |
2662 | /react@18.2.0:
2663 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
2664 | engines: {node: '>=0.10.0'}
2665 | dependencies:
2666 | loose-envify: 1.4.0
2667 | dev: false
2668 |
2669 | /read-cache@1.0.0:
2670 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
2671 | dependencies:
2672 | pify: 2.3.0
2673 | dev: true
2674 |
2675 | /readdirp@3.6.0:
2676 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
2677 | engines: {node: '>=8.10.0'}
2678 | dependencies:
2679 | picomatch: 2.3.1
2680 | dev: true
2681 |
2682 | /reflect.getprototypeof@1.0.4:
2683 | resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==}
2684 | engines: {node: '>= 0.4'}
2685 | dependencies:
2686 | call-bind: 1.0.5
2687 | define-properties: 1.2.1
2688 | es-abstract: 1.22.3
2689 | get-intrinsic: 1.2.2
2690 | globalthis: 1.0.3
2691 | which-builtin-type: 1.1.3
2692 | dev: true
2693 |
2694 | /regenerator-runtime@0.14.1:
2695 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
2696 |
2697 | /regexp.prototype.flags@1.5.1:
2698 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
2699 | engines: {node: '>= 0.4'}
2700 | dependencies:
2701 | call-bind: 1.0.5
2702 | define-properties: 1.2.1
2703 | set-function-name: 2.0.1
2704 | dev: true
2705 |
2706 | /resize-observer-polyfill@1.5.1:
2707 | resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
2708 | dev: false
2709 |
2710 | /resolve-from@4.0.0:
2711 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2712 | engines: {node: '>=4'}
2713 | dev: true
2714 |
2715 | /resolve-pkg-maps@1.0.0:
2716 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
2717 | dev: true
2718 |
2719 | /resolve@1.22.8:
2720 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
2721 | hasBin: true
2722 | dependencies:
2723 | is-core-module: 2.13.1
2724 | path-parse: 1.0.7
2725 | supports-preserve-symlinks-flag: 1.0.0
2726 | dev: true
2727 |
2728 | /resolve@2.0.0-next.5:
2729 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
2730 | hasBin: true
2731 | dependencies:
2732 | is-core-module: 2.13.1
2733 | path-parse: 1.0.7
2734 | supports-preserve-symlinks-flag: 1.0.0
2735 | dev: true
2736 |
2737 | /reusify@1.0.4:
2738 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2739 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2740 | dev: true
2741 |
2742 | /rimraf@3.0.2:
2743 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
2744 | hasBin: true
2745 | dependencies:
2746 | glob: 7.2.3
2747 | dev: true
2748 |
2749 | /rtl-css-js@1.16.1:
2750 | resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==}
2751 | dependencies:
2752 | '@babel/runtime': 7.23.8
2753 | dev: false
2754 |
2755 | /run-parallel@1.2.0:
2756 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2757 | dependencies:
2758 | queue-microtask: 1.2.3
2759 | dev: true
2760 |
2761 | /safe-array-concat@1.0.1:
2762 | resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
2763 | engines: {node: '>=0.4'}
2764 | dependencies:
2765 | call-bind: 1.0.5
2766 | get-intrinsic: 1.2.2
2767 | has-symbols: 1.0.3
2768 | isarray: 2.0.5
2769 | dev: true
2770 |
2771 | /safe-regex-test@1.0.1:
2772 | resolution: {integrity: sha512-Y5NejJTTliTyY4H7sipGqY+RX5P87i3F7c4Rcepy72nq+mNLhIsD0W4c7kEmduMDQCSqtPsXPlSTsFhh2LQv+g==}
2773 | engines: {node: '>= 0.4'}
2774 | dependencies:
2775 | call-bind: 1.0.5
2776 | get-intrinsic: 1.2.2
2777 | is-regex: 1.1.4
2778 | dev: true
2779 |
2780 | /scheduler@0.23.0:
2781 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
2782 | dependencies:
2783 | loose-envify: 1.4.0
2784 | dev: false
2785 |
2786 | /screenfull@5.2.0:
2787 | resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
2788 | engines: {node: '>=0.10.0'}
2789 | dev: false
2790 |
2791 | /scriptjs@2.5.9:
2792 | resolution: {integrity: sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg==}
2793 | dev: false
2794 |
2795 | /semver@6.3.1:
2796 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
2797 | hasBin: true
2798 | dev: true
2799 |
2800 | /semver@7.5.4:
2801 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
2802 | engines: {node: '>=10'}
2803 | hasBin: true
2804 | dependencies:
2805 | lru-cache: 6.0.0
2806 | dev: true
2807 |
2808 | /set-function-length@1.1.1:
2809 | resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==}
2810 | engines: {node: '>= 0.4'}
2811 | dependencies:
2812 | define-data-property: 1.1.1
2813 | get-intrinsic: 1.2.2
2814 | gopd: 1.0.1
2815 | has-property-descriptors: 1.0.1
2816 |
2817 | /set-function-name@2.0.1:
2818 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
2819 | engines: {node: '>= 0.4'}
2820 | dependencies:
2821 | define-data-property: 1.1.1
2822 | functions-have-names: 1.2.3
2823 | has-property-descriptors: 1.0.1
2824 | dev: true
2825 |
2826 | /set-harmonic-interval@1.0.1:
2827 | resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==}
2828 | engines: {node: '>=6.9'}
2829 | dev: false
2830 |
2831 | /shebang-command@2.0.0:
2832 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2833 | engines: {node: '>=8'}
2834 | dependencies:
2835 | shebang-regex: 3.0.0
2836 | dev: true
2837 |
2838 | /shebang-regex@3.0.0:
2839 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2840 | engines: {node: '>=8'}
2841 | dev: true
2842 |
2843 | /side-channel@1.0.4:
2844 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
2845 | dependencies:
2846 | call-bind: 1.0.5
2847 | get-intrinsic: 1.2.2
2848 | object-inspect: 1.13.1
2849 |
2850 | /signal-exit@4.1.0:
2851 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
2852 | engines: {node: '>=14'}
2853 | dev: true
2854 |
2855 | /sister@3.0.2:
2856 | resolution: {integrity: sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==}
2857 | dev: false
2858 |
2859 | /slash@3.0.0:
2860 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
2861 | engines: {node: '>=8'}
2862 | dev: true
2863 |
2864 | /source-map-js@1.0.2:
2865 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
2866 | engines: {node: '>=0.10.0'}
2867 |
2868 | /source-map@0.5.6:
2869 | resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==}
2870 | engines: {node: '>=0.10.0'}
2871 | dev: false
2872 |
2873 | /source-map@0.6.1:
2874 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
2875 | engines: {node: '>=0.10.0'}
2876 | dev: false
2877 |
2878 | /stack-generator@2.0.10:
2879 | resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==}
2880 | dependencies:
2881 | stackframe: 1.3.4
2882 | dev: false
2883 |
2884 | /stackframe@1.3.4:
2885 | resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==}
2886 | dev: false
2887 |
2888 | /stacktrace-gps@3.1.2:
2889 | resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==}
2890 | dependencies:
2891 | source-map: 0.5.6
2892 | stackframe: 1.3.4
2893 | dev: false
2894 |
2895 | /stacktrace-js@2.0.2:
2896 | resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==}
2897 | dependencies:
2898 | error-stack-parser: 2.1.4
2899 | stack-generator: 2.0.10
2900 | stacktrace-gps: 3.1.2
2901 | dev: false
2902 |
2903 | /streamsearch@1.1.0:
2904 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
2905 | engines: {node: '>=10.0.0'}
2906 | dev: false
2907 |
2908 | /strict-uri-encode@1.1.0:
2909 | resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==}
2910 | engines: {node: '>=0.10.0'}
2911 | dev: false
2912 |
2913 | /string-width@4.2.3:
2914 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
2915 | engines: {node: '>=8'}
2916 | dependencies:
2917 | emoji-regex: 8.0.0
2918 | is-fullwidth-code-point: 3.0.0
2919 | strip-ansi: 6.0.1
2920 | dev: true
2921 |
2922 | /string-width@5.1.2:
2923 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
2924 | engines: {node: '>=12'}
2925 | dependencies:
2926 | eastasianwidth: 0.2.0
2927 | emoji-regex: 9.2.2
2928 | strip-ansi: 7.1.0
2929 | dev: true
2930 |
2931 | /string.prototype.matchall@4.0.10:
2932 | resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
2933 | dependencies:
2934 | call-bind: 1.0.5
2935 | define-properties: 1.2.1
2936 | es-abstract: 1.22.3
2937 | get-intrinsic: 1.2.2
2938 | has-symbols: 1.0.3
2939 | internal-slot: 1.0.6
2940 | regexp.prototype.flags: 1.5.1
2941 | set-function-name: 2.0.1
2942 | side-channel: 1.0.4
2943 | dev: true
2944 |
2945 | /string.prototype.trim@1.2.8:
2946 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
2947 | engines: {node: '>= 0.4'}
2948 | dependencies:
2949 | call-bind: 1.0.5
2950 | define-properties: 1.2.1
2951 | es-abstract: 1.22.3
2952 | dev: true
2953 |
2954 | /string.prototype.trimend@1.0.7:
2955 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
2956 | dependencies:
2957 | call-bind: 1.0.5
2958 | define-properties: 1.2.1
2959 | es-abstract: 1.22.3
2960 | dev: true
2961 |
2962 | /string.prototype.trimstart@1.0.7:
2963 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
2964 | dependencies:
2965 | call-bind: 1.0.5
2966 | define-properties: 1.2.1
2967 | es-abstract: 1.22.3
2968 | dev: true
2969 |
2970 | /strip-ansi@6.0.1:
2971 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2972 | engines: {node: '>=8'}
2973 | dependencies:
2974 | ansi-regex: 5.0.1
2975 | dev: true
2976 |
2977 | /strip-ansi@7.1.0:
2978 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
2979 | engines: {node: '>=12'}
2980 | dependencies:
2981 | ansi-regex: 6.0.1
2982 | dev: true
2983 |
2984 | /strip-bom@3.0.0:
2985 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
2986 | engines: {node: '>=4'}
2987 | dev: true
2988 |
2989 | /strip-json-comments@3.1.1:
2990 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
2991 | engines: {node: '>=8'}
2992 | dev: true
2993 |
2994 | /styled-jsx@5.1.1(react@18.2.0):
2995 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
2996 | engines: {node: '>= 12.0.0'}
2997 | peerDependencies:
2998 | '@babel/core': '*'
2999 | babel-plugin-macros: '*'
3000 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
3001 | peerDependenciesMeta:
3002 | '@babel/core':
3003 | optional: true
3004 | babel-plugin-macros:
3005 | optional: true
3006 | dependencies:
3007 | client-only: 0.0.1
3008 | react: 18.2.0
3009 | dev: false
3010 |
3011 | /stylis@4.3.1:
3012 | resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==}
3013 | dev: false
3014 |
3015 | /sucrase@3.35.0:
3016 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
3017 | engines: {node: '>=16 || 14 >=14.17'}
3018 | hasBin: true
3019 | dependencies:
3020 | '@jridgewell/gen-mapping': 0.3.3
3021 | commander: 4.1.1
3022 | glob: 10.3.10
3023 | lines-and-columns: 1.2.4
3024 | mz: 2.7.0
3025 | pirates: 4.0.6
3026 | ts-interface-checker: 0.1.13
3027 | dev: true
3028 |
3029 | /supports-color@7.2.0:
3030 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
3031 | engines: {node: '>=8'}
3032 | dependencies:
3033 | has-flag: 4.0.0
3034 | dev: true
3035 |
3036 | /supports-preserve-symlinks-flag@1.0.0:
3037 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
3038 | engines: {node: '>= 0.4'}
3039 | dev: true
3040 |
3041 | /swr@2.2.4(react@18.2.0):
3042 | resolution: {integrity: sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==}
3043 | peerDependencies:
3044 | react: ^16.11.0 || ^17.0.0 || ^18.0.0
3045 | dependencies:
3046 | client-only: 0.0.1
3047 | react: 18.2.0
3048 | use-sync-external-store: 1.2.0(react@18.2.0)
3049 | dev: false
3050 |
3051 | /tailwindcss@3.4.1:
3052 | resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
3053 | engines: {node: '>=14.0.0'}
3054 | hasBin: true
3055 | dependencies:
3056 | '@alloc/quick-lru': 5.2.0
3057 | arg: 5.0.2
3058 | chokidar: 3.5.3
3059 | didyoumean: 1.2.2
3060 | dlv: 1.1.3
3061 | fast-glob: 3.3.2
3062 | glob-parent: 6.0.2
3063 | is-glob: 4.0.3
3064 | jiti: 1.21.0
3065 | lilconfig: 2.1.0
3066 | micromatch: 4.0.5
3067 | normalize-path: 3.0.0
3068 | object-hash: 3.0.0
3069 | picocolors: 1.0.0
3070 | postcss: 8.4.33
3071 | postcss-import: 15.1.0(postcss@8.4.33)
3072 | postcss-js: 4.0.1(postcss@8.4.33)
3073 | postcss-load-config: 4.0.2(postcss@8.4.33)
3074 | postcss-nested: 6.0.1(postcss@8.4.33)
3075 | postcss-selector-parser: 6.0.15
3076 | resolve: 1.22.8
3077 | sucrase: 3.35.0
3078 | transitivePeerDependencies:
3079 | - ts-node
3080 | dev: true
3081 |
3082 | /tapable@2.2.1:
3083 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
3084 | engines: {node: '>=6'}
3085 | dev: true
3086 |
3087 | /text-table@0.2.0:
3088 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
3089 | dev: true
3090 |
3091 | /thenify-all@1.6.0:
3092 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
3093 | engines: {node: '>=0.8'}
3094 | dependencies:
3095 | thenify: 3.3.1
3096 | dev: true
3097 |
3098 | /thenify@3.3.1:
3099 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
3100 | dependencies:
3101 | any-promise: 1.3.0
3102 | dev: true
3103 |
3104 | /throttle-debounce@3.0.1:
3105 | resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==}
3106 | engines: {node: '>=10'}
3107 | dev: false
3108 |
3109 | /to-regex-range@5.0.1:
3110 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
3111 | engines: {node: '>=8.0'}
3112 | dependencies:
3113 | is-number: 7.0.0
3114 | dev: true
3115 |
3116 | /toggle-selection@1.0.6:
3117 | resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
3118 | dev: false
3119 |
3120 | /ts-api-utils@1.0.3(typescript@5.3.3):
3121 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
3122 | engines: {node: '>=16.13.0'}
3123 | peerDependencies:
3124 | typescript: '>=4.2.0'
3125 | dependencies:
3126 | typescript: 5.3.3
3127 | dev: true
3128 |
3129 | /ts-easing@0.2.0:
3130 | resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
3131 | dev: false
3132 |
3133 | /ts-interface-checker@0.1.13:
3134 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
3135 | dev: true
3136 |
3137 | /tsconfig-paths@3.15.0:
3138 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
3139 | dependencies:
3140 | '@types/json5': 0.0.29
3141 | json5: 1.0.2
3142 | minimist: 1.2.8
3143 | strip-bom: 3.0.0
3144 | dev: true
3145 |
3146 | /tslib@2.6.2:
3147 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
3148 | dev: false
3149 |
3150 | /type-check@0.4.0:
3151 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
3152 | engines: {node: '>= 0.8.0'}
3153 | dependencies:
3154 | prelude-ls: 1.2.1
3155 | dev: true
3156 |
3157 | /type-fest@0.20.2:
3158 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
3159 | engines: {node: '>=10'}
3160 | dev: true
3161 |
3162 | /type-fest@4.9.0:
3163 | resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==}
3164 | engines: {node: '>=16'}
3165 | dev: false
3166 |
3167 | /typed-array-buffer@1.0.0:
3168 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
3169 | engines: {node: '>= 0.4'}
3170 | dependencies:
3171 | call-bind: 1.0.5
3172 | get-intrinsic: 1.2.2
3173 | is-typed-array: 1.1.12
3174 | dev: true
3175 |
3176 | /typed-array-byte-length@1.0.0:
3177 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
3178 | engines: {node: '>= 0.4'}
3179 | dependencies:
3180 | call-bind: 1.0.5
3181 | for-each: 0.3.3
3182 | has-proto: 1.0.1
3183 | is-typed-array: 1.1.12
3184 | dev: true
3185 |
3186 | /typed-array-byte-offset@1.0.0:
3187 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
3188 | engines: {node: '>= 0.4'}
3189 | dependencies:
3190 | available-typed-arrays: 1.0.5
3191 | call-bind: 1.0.5
3192 | for-each: 0.3.3
3193 | has-proto: 1.0.1
3194 | is-typed-array: 1.1.12
3195 | dev: true
3196 |
3197 | /typed-array-length@1.0.4:
3198 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
3199 | dependencies:
3200 | call-bind: 1.0.5
3201 | for-each: 0.3.3
3202 | is-typed-array: 1.1.12
3203 | dev: true
3204 |
3205 | /typescript@5.3.3:
3206 | resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
3207 | engines: {node: '>=14.17'}
3208 | hasBin: true
3209 | dev: true
3210 |
3211 | /unbox-primitive@1.0.2:
3212 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
3213 | dependencies:
3214 | call-bind: 1.0.5
3215 | has-bigints: 1.0.2
3216 | has-symbols: 1.0.3
3217 | which-boxed-primitive: 1.0.2
3218 | dev: true
3219 |
3220 | /undici-types@5.26.5:
3221 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
3222 | dev: true
3223 |
3224 | /update-browserslist-db@1.0.13(browserslist@4.22.2):
3225 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
3226 | hasBin: true
3227 | peerDependencies:
3228 | browserslist: '>= 4.21.0'
3229 | dependencies:
3230 | browserslist: 4.22.2
3231 | escalade: 3.1.1
3232 | picocolors: 1.0.0
3233 | dev: true
3234 |
3235 | /uri-js@4.4.1:
3236 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
3237 | dependencies:
3238 | punycode: 2.3.1
3239 | dev: true
3240 |
3241 | /use-sync-external-store@1.2.0(react@18.2.0):
3242 | resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
3243 | peerDependencies:
3244 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
3245 | dependencies:
3246 | react: 18.2.0
3247 | dev: false
3248 |
3249 | /util-deprecate@1.0.2:
3250 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
3251 | dev: true
3252 |
3253 | /watchpack@2.4.0:
3254 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
3255 | engines: {node: '>=10.13.0'}
3256 | dependencies:
3257 | glob-to-regexp: 0.4.1
3258 | graceful-fs: 4.2.11
3259 | dev: false
3260 |
3261 | /which-boxed-primitive@1.0.2:
3262 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
3263 | dependencies:
3264 | is-bigint: 1.0.4
3265 | is-boolean-object: 1.1.2
3266 | is-number-object: 1.0.7
3267 | is-string: 1.0.7
3268 | is-symbol: 1.0.4
3269 | dev: true
3270 |
3271 | /which-builtin-type@1.1.3:
3272 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
3273 | engines: {node: '>= 0.4'}
3274 | dependencies:
3275 | function.prototype.name: 1.1.6
3276 | has-tostringtag: 1.0.0
3277 | is-async-function: 2.0.0
3278 | is-date-object: 1.0.5
3279 | is-finalizationregistry: 1.0.2
3280 | is-generator-function: 1.0.10
3281 | is-regex: 1.1.4
3282 | is-weakref: 1.0.2
3283 | isarray: 2.0.5
3284 | which-boxed-primitive: 1.0.2
3285 | which-collection: 1.0.1
3286 | which-typed-array: 1.1.13
3287 | dev: true
3288 |
3289 | /which-collection@1.0.1:
3290 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
3291 | dependencies:
3292 | is-map: 2.0.2
3293 | is-set: 2.0.2
3294 | is-weakmap: 2.0.1
3295 | is-weakset: 2.0.2
3296 | dev: true
3297 |
3298 | /which-typed-array@1.1.13:
3299 | resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
3300 | engines: {node: '>= 0.4'}
3301 | dependencies:
3302 | available-typed-arrays: 1.0.5
3303 | call-bind: 1.0.5
3304 | for-each: 0.3.3
3305 | gopd: 1.0.1
3306 | has-tostringtag: 1.0.0
3307 | dev: true
3308 |
3309 | /which@2.0.2:
3310 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3311 | engines: {node: '>= 8'}
3312 | hasBin: true
3313 | dependencies:
3314 | isexe: 2.0.0
3315 | dev: true
3316 |
3317 | /wrap-ansi@7.0.0:
3318 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
3319 | engines: {node: '>=10'}
3320 | dependencies:
3321 | ansi-styles: 4.3.0
3322 | string-width: 4.2.3
3323 | strip-ansi: 6.0.1
3324 | dev: true
3325 |
3326 | /wrap-ansi@8.1.0:
3327 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
3328 | engines: {node: '>=12'}
3329 | dependencies:
3330 | ansi-styles: 6.2.1
3331 | string-width: 5.1.2
3332 | strip-ansi: 7.1.0
3333 | dev: true
3334 |
3335 | /wrappy@1.0.2:
3336 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
3337 | dev: true
3338 |
3339 | /yallist@4.0.0:
3340 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3341 | dev: true
3342 |
3343 | /yaml@2.3.4:
3344 | resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
3345 | engines: {node: '>= 14'}
3346 | dev: true
3347 |
3348 | /yocto-queue@0.1.0:
3349 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
3350 | engines: {node: '>=10'}
3351 | dev: true
3352 |
3353 | /youtube-player@5.5.2:
3354 | resolution: {integrity: sha512-ZGtsemSpXnDky2AUYWgxjaopgB+shFHgXVpiJFeNB5nWEugpW1KWYDaHKuLqh2b67r24GtP6HoSW5swvf0fFIQ==}
3355 | dependencies:
3356 | debug: 2.6.9
3357 | load-script: 1.0.0
3358 | sister: 3.0.2
3359 | transitivePeerDependencies:
3360 | - supports-color
3361 | dev: false
3362 |
--------------------------------------------------------------------------------